计算机操作系统第四版期末复习知识点汇总附习题Word格式文档下载.docx
《计算机操作系统第四版期末复习知识点汇总附习题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《计算机操作系统第四版期末复习知识点汇总附习题Word格式文档下载.docx(56页珍藏版)》请在冰豆网上搜索。
单处理机系统,微观上交替运行
并行:
多处理机系统,微观上同时运行
(二)引入进程
进程:
在系统中能独立运行并作为资源分配的基本单位,由机器指令、数据和堆栈等组成,能独立运行的活动实体
特点:
用进程就可以并发执行了
二、共享
(一)互斥共享方式
例子:
临界资源,打印机、磁带机
你要先申请才能获得资源
(二)同时访问方式
微观上还是并发
多用户磁盘设备
条件:
系统允许进程并发、系统能有效管理资源
三、虚拟
(一)时分复用技术(利用空闲时间服务其他用户)
虚拟处理机技术:
分身之术
虚拟设备:
又是分身之术,骗用户以为有专人服务
时分复用:
速度:
≤1/N
(二)空分复用技术
将程序、电话线分成若干部分,然后各部分分时进入内存运行
空分复用:
空间:
四、异步
因为要并发,所以需要一个机制调度进程
④操作系统主要功能
一、处理机管理功能
(一)进程控制
要并发,就要进程、要进程,就要管理
(二)进程同步
进程互斥方式:
临界资源要互斥
进程同步方式:
合作完成共同任务,同步机构要协调先后次序(信号量控制)
(三)进程通信
对合作进程而言,需要交换信息。
当他们处于同一计算机系统时,通常采用直接通信的方式。
输入进程、计算进程、打印进程,需要信息交换
(四)调度
作业调度:
选择作业、建立进程、分配资源、插入就绪队列
进程调度:
从就绪队列中选出进程,分配CPU
二、存储器管理功能
(一)内存分配
任务:
分配空间、减少碎片、追加内存空间
方式:
静态分配,装入内存时确定,不允许追加、不允许移动;
动态分配,允许追加、允许移动
(二)内存保护
任务1:
每道程序只在自己的内存空间运行,互不干扰
任务2:
不允许用户程序访问操作系统程序和数据、也不允许用户程序转移到非共享的其他用户程序中执行
(三)地址映射
存储器要负责地址映射,在硬件支持下完成
(四)内存扩充
用虚拟存储技术,从逻辑上扩充内存容量
请求-调入功能
置换功能
三、设备管理功能
完成用户进程的I/O请求:
分配I/O设备,完成I/O操作
提高CPU和I/O利用率:
提高I/O速度,方便用户使用I/O设备
(一)缓冲管理
在内存中设置缓冲区(CPU高速性和I/O低速性)
单缓冲机制、双向同时传送数据的双缓冲机制、多个设备共同使用的公用“缓冲池”机制
(二)设备分配
在系统中设置“设备控制表”、“控制器控制表”等数据结构,用于记录设备和控制器等标识符和状态。
根据表就知道指定设备当前是否可用、忙碌。
分配时,针对不同设备要有不同“分配方式”,对独占设备还要考虑分配后是否安全
(三)设备处理
CPU向设备控制器发出I/O命令,要求完成I/O操作、反之,CPU接收控制器发出的中断请求,并响应.处理
四、文件管理功能
管理用户、系统文件,方便使用;
保证安全性
(一)文件储存空间管理
背景:
多用户环境下,用户自己管理文件存储,会困难和低效
为每个文件分配外存空间、提高外存利用率、进而提高存取速度
系统中设置数据结构,记录文件存储空间使用情况,以供分配时参考
任务3:
分配和回收
(二)目录管理
为每个文件建立目录项,包括文件名、属性、物理位置等,以实现按名存取
实现文件共享。
提供目录查询手段
(三)文件读/写管理和保护
文件读/写管理:
根据用户请求,从外存中读取数据,或将数据写入外存
文件保护:
防止未经核准的用户存取文件、防止冒名顶替存取文件、防止以不正确方式使用文件
五、操作系统与用户之间的接口
(一)用户接口
方便用户直接.间接控制自己的作业
联机用户接口:
等待用户键入命令
脱机用户接口:
一开始就提供作业说明书,直到作业结束语句
图形用户接口:
移动鼠标选择菜单项
(二)程序接口
旧系统用汇编语言写,所以只有汇编语言的才能直接使用系统调用;
如果是高级语言,就用一一对应的库函数
六、现代操作系统的新功能
(一)系统安全
确保存储和传送数据的保密性、完整性和系统可用性,要用几种技术
技术:
认证技术、密码技术、访问控制技术、反病毒技术
(二)网络的功能和服务
功能:
网络通信、资源管理、应用互操作
(三)支持多媒体
接纳控制功能、实时调度、多媒体文件的存储
⑤OS结构设计
一、传统操作系统结构
(一)无结构操作系统
又名:
整体系统结构
(二)模块化结构OS
基本概念:
模块-接口法
有模块、子模块、接口
模块独立性:
标准:
内聚性越高,模块独立性越高、耦合度越低,模块独立性越高
提高设计正确性.可理解性和可维护性、增强可适应性、加快加速过程
接口难以满足需求、无序
(三)分层式结构OS
有序分层,自底向上法铺设中间层
易保证系统正确性、易扩充和易维护
系统效率降低
二、客户/服务器模式(Client/ServerModel)简介
(一)客户/服务器模式的由来、组成和类型
组成:
客户机、服务器、网络系统
(二)客户/服务器之间的交互
客户发送请求消息、服务器接收消息、服务器回送消息、客户机接收消息
(三)客户/服务器模式的优点
数据分布处理和存储、便于集中管理、灵活性和可扩充性、易于改编应用软件
三、面向对象的程序设计
(一)OOP的基本概念
抽象,具体事物为对象
对象:
封装好
对象类:
创建多个相似对象
继承:
继承父类,增加部分
(二)OOP的优点
“重用”提高产品质量和生产率、使系统具有更好的易修改性和易扩展性、易于保证系统“正确性”和“可靠性”
四、微内核OS结构
支持多处理机
卡内基·
梅隆的MachOS、Windows2000/XP
(一)基本概念
足够小的内核、基于C/S模式、应用“机制与策略分离”原理、采用OOP技术
(二)基本功能
进程管理、低级存储器管理、中断和陷入处理
(三)优点
提高可扩展性、增强可靠性、可移植性强、提供对分布式系统的支持、融入OOP
(四)缺点
效率降低
第二章进程描述与控制
①前趋图与程序执行
一、前趋图与程序执行
(一)前趋图
前一个做完,才到后一个做、禁止循环
二、顺序执行
一个跟一个
顺序、封闭(独占资源)、可再现
三、并发执行
互不依赖才能并发执行
间断、失去封闭、不可再现
②进程的描述
一、进程的定义和特征
进程实体:
程序段、相关的数据段和PCB
定义:
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
动态、并发、独立、异步
二、进程的基本状态及转换
进程的三基态:
就绪(只欠CPU)、执行、阻塞(因故无法继续执行)
三态转换:
如图
新增两态:
创建状态、终止状态
五态转换:
三、挂起操作和进程状态的转换
挂起原因:
终端用户需要、父进程请求、负荷调节、操作系统需要
引入挂起后的三态转换:
引入挂起后的五态转换:
四、进程管理中的数据结构
用于管理控制的数据结构:
每个资源、进程都有一个数据结构用于表征实体——资源信息表、进程信息表,包括:
标识、描述、状态等和一批指针,通过指针能够链接成队列,便于查找
分类:
内存表、设备表、文件表、进程表
PCB的作用:
作为独立运行基本单位的标识、能实现间断运行、提供进程管理所需的信息、实现与其他进程的同步与通信
PCB的信息:
进程标识符(内外部)、处理机状态、进程调度信息、进程控制信息
PCB组织方式:
线性方式、链接方式、索引方式
③进程控制
一、操作系统内核
常驻内存的模块
目的:
保护软件、提高OS运行效率
系统态、管态、内核态:
高特权、访问所有寄存器.存储区、传统OS都在系统态运行
用户态、目态:
低特权、执行指定指令.访问指定寄存器和存储区
支撑功能:
中断处理、时钟管理、原语操作
资源管理功能:
进程管理、存储器管理、设备管理
二、进程的创建
层次结构:
UNIX有父子关系,Windows只有控制与被控制关系
进程图:
描述家庭关系的图
引起创建进程的事件:
用户登录、作业调度、提供服务(譬如打印)、应用请求
进程的创建:
申请空白PCB、分配物理.逻辑资源、初始化PCB、如果能插入就绪,就插
三、进程的终止
引起进程终止的事件:
正常结束、异常结束、外界干预
进程的终止过程:
根据标识符、终止执行.立即调度、子孙终止、资源归还、移出队列
四、进程的阻塞与唤醒
引起进程阻塞和唤醒的事件:
向系统请求共享资源失败、等待某操作完成、新数据尚未到达、等待新任务到达
进行阻塞过程:
发生上述的某事件,就进入block过程,主动将状态改为阻塞,PCB插入阻塞队列(分类插入),处理机分配给另一就绪进程,切换,并保留被阻塞进程的处理机状态
进程唤醒过程:
由释放资源的进程调用wakeup原语,即移出阻塞队列,合作/相关的进程中安排wakeup
五、进程的挂起与激活
进程的挂起:
活动→静止,suspend原语进程正在执行,就转向调度程序重新调度
进程的激活过程:
从外存调入active原语到内存,检查进程现行状态,静止→活动
抢占调度策略:
静止就绪进程→就绪队列,比较当前进程优先度,有机会立即剥夺当前进程运行
④进程同步
能够并发、改善利用率、提高吞吐量、但使系统复杂
一、进程同步的基本概念
制约关系:
间接相互制约关系、直接相互制约关系
间接相互制约关系:
互斥共享
直接相互制约关系:
合作共享,异步性要做好
临界资源:
生产者-消费者问题、
临界区、:
进入区、临界区、退出区、剩余区
同步机制应遵循的规则:
空闲让进、忙则等待、有限等待、让权等待
二、硬件同步机制
关中断:
缺点多:
滥用关中断.造成严重后果、关中断时间过长、不适用于多CPU系统(因为一个处理器关中断并不能防止进程在其他处理器上执行相同的临界段代码)
Test-and-Set:
不断测试lock,如果是FALSE,就进入临界区,并lock==TRUE;
否则测试到TS(s)==TRUE
Swap指令:
一直等,直到key==TRUE
但以上都不符合“让权等待”原则
三、信号量机制
整形信号量:
S≤0,就一直等,直到释放互斥资源
记录型信号量:
整形信号量不符合“让权等待”原则。
如果有资源,就分配,如果无,就插入阻塞队列;
释放资源,如果有等待,就激活
AND型信号量:
一口气全分配
信号量集:
有多个信号量(S信号量,至少要t个,每次分配d个)
四、信号量的应用
利用信号量实现进程互斥:
mutex=(-1,0,1)=(无,一临一阻队,一临一信队)
利用信号量实现前趋关系:
需要的信号量被占用了,就这样实现
五、管程机制
为解决信号量机制分散、容易死锁的问题,发明新同步工具——管程
定义一个数据结构和能为并发进程所执行(在该数据结构上)的一组操作,这组操作能同步进程和改变管程中的数据
管程名称、数据结构的说明、对数据结构进行操作的过程、初始化的语句
特性:
模块化、抽象数据类型、信息掩蔽
管程与进程不同:
都有数据结构,一个公.一个私、管程操作同步.初始化.进程顺序执行、管程为解决互斥资源.进程实现并发性、进程调用管程.进程主动.管程被动、管程不能并发.进程能并发、管程是OS的一个资源管理模块.进程有动态性
条件变量:
增加一个条件变量,万一发生意外,在管程中被挂起或被阻塞,下一个进程都可以继续执行
⑤经典进程的同步问题
一、生产者-消费者问题
记录型信号量解决:
如果缓冲区空,而且能够获取信号量,就投放产品;
如果缓冲区有产品,而且能够获取信号量,就消费
AND信号量解决:
管程解决:
利用管程只有一个进程能够使用的属性
二、哲学家进餐问题
先拿左.后那右、先放左.后放右
解决死锁:
最多4人取筷子、先检查.有左右筷子才能取、奇左右.偶右左
三、读者-写者问题
可以多读一、一旦开始写.就不能读或写
读操作:
等rmutex就是为了改readcount→无人读?
看看是否在写.等wmutex→readcount++→自增完成.rmutex还你→读读读→等rmutex为了自减readcount→无人读?
可以写了.还你wmutex
写操作:
等wmutex.即无读无写→写完.还你wmutex
利用信号量集机制:
读:
限制reader个数→如果mx是1.就读→最后释放一个reader个数
写:
如果mx是1.并且读者数为0.就写→写完释放mx
⑥进程通信
一、进程通信类型
共享存储器系统:
某些数据结构和共享存储区、管道通信系统、消息传递系统、C-S系统
二、消息传递通信的实现方式
(一)直接消息传递系统
1.直接通信原语:
对称寻址方式、非对称寻址方式
2.消息格式:
较短的减少系统处理和存储的开销、较长可以方便
3.进程同步方式:
发塞收塞(进程间紧密同步.无缓冲)、发通收塞(平常状态)、发通收通(发生某事件无法继续运行)、(无发塞收通)
4.通信链路:
用“建立连接”原语建立通信链路.用完拆、用“发送命令”原语建立链路,还分单向和双向
(二)信箱通信(间接)
1.定义:
是数据结构.分信箱头和信箱体
2.原语:
创建和撤销.发送和接收
3.类型:
私用、公用(操作系统创建)、共享(进程创建)
4.进程之间的关系:
一对一、多对一、一对多、多对多
三、直接消息传递系统实例
消息缓冲队列通信机制中的数据结构:
利用数据结构式消息缓冲区、在PCB增加有关通信的数据项
原语:
设置发送区、申请PCB(B)的缓冲区i、复制到缓冲区、插入消息队列、移出消息队列、复制到接收区、释放缓冲区
⑦线程的基本概念
就是为了提高程序并发执行的程度
一、线程的引入
进程的两个基本属性:
进程是一个可拥有资源的独立单位、进程同时是一个可独立调度和分派的基本单位
进程并发执行所需的时空开销:
创建进程、撤销进程、进程切换
线程——作为调度和分派的基本单位:
线程轻装上阵
二、线程与进程比较
调度的基本单位:
线程是调度和分派的基本单位、跨进程,会切换进程
并发性:
线程的合作.能够并发
拥有资源:
有TCB.但只是必不可少、保证独立运行的资源
独立性:
同一进程的不同线程共享进程的内存地址空间和资源
系统开销:
因为轻装.所以减少开销、提升速度
支持多处理机系统:
对多线程进程,多个线程可以分配到多个处理机上
三、线程的状态和线程控制块
线程运行的三个状态:
和进程一样
线程控制块TCB:
标识符、一组寄存器、运行状态、优先级、线程专有存储区、信号屏蔽、堆栈指针
多线程OS中的进程属性:
进程是可拥有资源的基本单位、多个线程可并发执行、进程已不是可执行的实体
⑧线程的实现
一、线程的实现方式
内核支持线程KLT:
内核调度同一进程多个线程并行执行、一个线程阻塞.其他线程占有处理机、支持小数据结构和堆栈.切换较快开销小、内核本身采用多线程技术.提高系统执行速度和效率
用户级线程ULT:
无需内核.节省模式切换的开销、调度算法进程专用、与OS无关.甚至可以在操作系统平台实现
一个线程阻塞.同进程的其他线程都会塞、只有一个CPU.只有一个线程能执行、按进程分配.不公平
组合方式:
多对一模型:
开销小、缺点:
一塞进程全塞、只有一线程访问内核、多线程不能同时在多个处理机上运行
一对一模型:
一个用户级线程映射到一个内核支持线程
多对多模型:
一对一和多对一的结合
二、线程的实现
内核支持线程的实现:
创建线程、保存信息、调度和切换线程、撤销线程、回收资源
用户级线程的实现:
运行时系统:
用于管理和控制线程的函数的集合,这些函数驻留用户空间.并作为用户级线程与内核之间的接口
内核控制线程:
连接到LWP,连接到LWP的线程才能与内核通信
三、线程的创建和终止
线程的创建:
初始化线程、创建后返回线程标识符
线程的终止:
终止线程用函数或系统调用终止操作.但有些线程被建立就会一直执行。
大多数OS,线程被中止后并不立即释放所占资源,只有“其他线程”执行分离函数才会分离资源,才能被其他线程利用。
虽然未释放的资源也可以被其他线程使用,但要有个“等待线程终止”的连接命令作保险.否则一直阻塞
第三章处理机调度与死锁
①处理机调度的层次和调度算法的目标
作业可能要经历多级处理机调度
一、处理机调度层次
(一)高级调度(长程调度/作业调度)
对象是作业、决定将外存中处于后备队列的作业调入内存.创建进程和分配资源.并放入就绪队列、主要存在于多道批处理系统,分时和实时系统不设置高级调度
(二)低级调度(进程调度/短程调度)
对象是进程(/内核级线程)、决定就绪队列哪个进程获得处理机、多道批.分时和实时都要配置
(三)中级调度(内存调度)(存储器的对换功能)
对象是暂时不能运行的进程、把这些进程调到外存.设为挂起状态、一有条件.稍微有空就变为就绪状态
★分级按运行频率划分
二、处理机调度算法的目标
(一)共同目标
提高资源利用率、公平、平衡、策略强制执行
(二)批处理系统目标
处理机利用率高、平均周转时间短、系统吞吐量高
(三)分时系统目标
响应时间快、均衡性
(四)实时系统目标
截止时间保证、可预测性
②作业与作业调度
一、批处理系统中的作业
(一)作业和作业步
作业:
包括程序.数据和作业说明书、在批处理系统.作业是基本单位从外存调入内存
作业步:
独立步骤
(二)作业控制块(JCB)
包括作业标识、用户名称、用户账号、作业类型、作业状态、调度信息、资源需求、资源使用情况等
流程:
进入系统→创建JCB→根据类型放到后备队列等待调度→入内存→根据JCB和作业说明书控制→完成→回收资源.撤销JCB
(三)作业运行的三个阶段和三种状态
收容阶段-后备状态、运行阶段-运行状态、完成阶段-完成状态
二、作业调度的主要任务
也叫:
接纳调度
考虑:
接纳多少作业、接纳哪些作业
三、先来先服务FCFS和短作业优先SJF调度算法
(一)先来先服务FCFS
就这样.完成或阻塞才分配到其他进程、实际中和其他算法结合使用
有利于长作业(进程),不利于短作业(进程)
(二)短作业优先SJF
实际用得多、要预知作业运行时间、长作业、紧迫作业不利、无人机交互
四、优先级调度算法和高响应比优先调度算法
(一)优先级调度算法
外部赋予作业优先级
(二)高响应比优先调度算法
集的优点.兼顾长作业、但要做相应比计算.增加系统开销(Exp.做过类似)
③进程调度
一、进程调度的任务、机制和方式
(一)进程调度的任务
保存处理机的现场信息、按某种算法选取进程、把处理器分配给进程
(二)进程调度机制
排队器:
插入就绪队列
分配器:
从就绪队列取出.分配处理机
上下文切换器:
保存、装入新的CPU现场信息等内容
(三)进程调度方式
非抢占方式:
只有完成或因某事无法继续运行、I/O、执行了原语操作如block,才会引起进程调度
简单、开销小、适用大多数批处理系统
抢占方式:
对分时系统而言.有人机交互、对实时系统而言.能满足任务需求
主要原则:
优先权原则、短进程优先原则、时间片原则
二、轮转调度算法
(一)轮转法(RR)的基本原理
按FCFS策略排成就绪队列,每隔一定时间就产生一次中断
(二)进程切换时机
时间片未用完就完成:
马上调度队首进程.启动新时间片
时间片完还没完成:
中断.进程被调到就绪队列队尾
(三)时间片大小的确定
太短有利于短进程、太长退化为FCFS算法.要计算平均周转时间(带权周转时间)
三、优先级调度算法
(一)优先级调度算法的类型
非抢占式和抢占式
(二)优先级的类型
确定优先级的依据:
静态优先级:
进程类型(系统进程优先权高于用户进程优先权)、进程对资源的需求(少则优先)、用户需求(紧迫程度、花费)
动态优先级:
先赋予优先级,随着进程推进或等待时间增加而改变
四、多队列调度算法
将一条就绪队列拆分成多条,各有各调度算法
五、多级反馈队列调度算法
(一)调度机制
多条就绪队列、队列内使用FCFS算法.一个时间片未完成就放到下一个队列的末尾.最后一个队列用RR方式、按队列优先级调度.前队列空才到本队列运行
(二)调度算法的性能
终端型用户、短批处理作业用户、长批处理作业用户
六、基于公平原则调度算法
(一)保证调度算法
保证处理机公平分配
跟踪进程已经执行的处理时间、该时间除以n、计算实际处理时间和应获得时间之比、比较比率、比率最低的获得处理机
(二)公平分享调度算法
考虑多用户
④实时调度
实时系统有两种实时任务——HRT和SRT
一、实现实时调度的基本条件
(一)提供必要信息
就绪时间、开始截止和完成截止时间、处理时间、资源要求、优先级
(二)系统处理能力强
(处理时间i/周期时间i)总和≤1.未考虑任务切换花费的时间还应该留有余地
提高系统处理能力的途径:
单处理机系统增强处理能力.显着减少每个任务的处理时间、多处理机系统.就变成(处理时间i/周期时间i)总和≤N
(三)采用抢占式调度机制
执行完关键程序和临界区后,能及时将自己阻塞起来,以释放处理机
(四)具有快速切换机制
对中断的快速响应能力、快速的任务分派能力
二、实时调度算法的分类
根据任务性质:
H/S
根据调度方式:
非抢占式/抢占式
(一)非抢占式调度算法
轮转、优先调度,不适合实时系统。
进程