一、选择题(20分)
操作系统功能
文件管理、处理机管理、存储器管理、文件管理
进程交换数据方法
共享存储:静态存储,基于数据结构的共享;动态存储,基于存储区的共享
消息传递:直接通信方式:进程直接指出传递对象,低级通信;间接通信方式:进程需要通过信箱作为中间处理进行通信,高级通信方式
管道通信:半双工,必须把前面的写了才能写后面,先读前面的才能读后面,FIFO
当读空,阻塞读进程;写满,阻塞写进程
进程不同状态之间转换的理解
运行态、阻塞态、就绪态(基本状态)、创建态、终止态
运行态-》阻塞态(主动)申请io
运行态-》就绪态:时间片,被抢占
进程各种调度算法实质的理解
先进先出FIFO 非抢占式 优点:公平 缺点:带权周转时间长、对长作业有利短作业不利
短作业优先SJF 抢占式、非抢占式 优点:平均周转时间短,可能饥饿
高相应比优先HRRN (服务时间+等待时间)/等待时间,结合spf和fifo优点
时间片轮转rr 抢占式 优点:公平 缺点:频繁切换进程、对优先级没有区分
时间片过短:轮流进入就绪队列,频繁切换进程;时间片过长:退化成fifo
优先级调度:据任务紧急程度设优先级,静态优先级,动态优先级
多级反馈队列调度算法:设多级就绪队列,缺点:饥饿
死锁与安全状态的理解
死锁是两个及两个以上的进程同时发生死锁
条件:互斥条件、请求保持条件、循环等待条件、不可剥夺条件
措施:死锁预防、死锁避免、死锁检测
在死锁避免中,能找到一个安全序列(安全序列是系统按这种序列分配资源,每个进程都能顺利完成)就是处于安全状态,死锁一定是非安全状态
PV操作同步机制中信号量的取值计算
线程理解
线程是处理机调度的单位,多个cpu中线程可以占用不同的cpu,线程本身不拥有资源,线程在同一进程内切换开销小,在进程间切换开销大,也有阻塞、运行、就绪的状态,因为是共享内存地址,同一进程中的线程运行过程中不需要系统的干预
存储管理中碎片
内部碎片:分配给进程中的内存区域中有些没有用上
外部碎片:分配给某些空闲分区太小而难以利用
请求分页存储理解
每当访问的页面不存在内存时,便产生一个缺页中断,后有操作系统缺页中断程序处理缺页中断
内存抖动理解
进程频繁访问的页面数高于可用物理块的页面数
页面频繁的调入调出
DMA方式
Io-》内存,内存-》io;在一个总线周期结束后,传输单位是块
SPOOLING系统理解
磁盘读取数据各种指标影响
文件存储空间管理
文件系统多级目录结构
系统调用
操作系统安全问题
二、填空题(共20分)
1.操作系统内核态、用户态及其转换理解
2.虚拟机器
3.低级调度
4.PCB理解
5.I/O逻辑功能理解
6.文件保护访问权限管理
7.安全机制
8.整型信号量理解
9.哲学家进餐问题
10.内核程序临界区理解
三、简答题(24分)
涉及的知识点,但问题不会这么问,理解了才能答的完整。
进程概念、进程特点、进程之间关系理解
进程是进程实体的运行过程,是系统分配资源和调用的独立单元
特点:动态性是进程的基本特征
并发性:同一个内存中可以有多个进程,进程间并发执行
异步性:进程以不可预知的速度向前进行,可能造成不确定性,因此操作系统需要有相应的进程同步机制
独立性:进程是被独立的分配资源,独立进行
结构性:进程中有进程控制块pcb这一数据结构记录了进程的相关信息
制约关系
并发(直接制约关系)为了完成用户任务的各个进程之间,需要协调工作次序而等待产生的制约关系
互斥(间接制约关系)进程之间竞争独占型资源而产生的制约关系
虚拟内存作用及问题理解
虚拟内存对地址空间的重映射是,将原内存地址映射到一个更大的地址空间,新的地址空间大于内存的部分由磁盘充当
内存隔离:虚拟通过将每个进程的地址空间映射到独立的虚拟内存地址空间,实现了内存隔离,当一个进程出现崩溃或者内存访问错误的时候,不会影响其他进程的正常运行,这有利于操作系统的稳定性
多任务处理:
虚拟内存使多个程序同时运行,使每个程序都认为它是在独占内存,这为多任务处理提供基础
高效使用物理内存
虚拟内存允许进程申请超过内存的空间,不必一次性地将数据载入到物理内存当中,操作系统根据程序需求将数据从硬盘逐段加载到内存中,提高内存利用率
起到缓存的作用,提高进程访问磁盘速度
死锁及解决办法理解
死锁预防
互斥条件:可以用spooling技术将独占型资源转变成共享资源,在大多数情况无法改变进程的互斥条件,反而还需要保护这种特性,因为互斥是资源独占使用的属性,不能作为预防死锁的措施,互斥不是执行的特性
不可剥夺条件:若不能获得所需的全部资源就释放当前所拥有的资源,或者是强行剥夺
循环等待条件:顺序循环分配,给资源添加编号,按编号从高到低,必须按编号递增顺序请求资源
请求保持条件:运行前一次申请所有的所需资源
死锁避免:使用银行家算法,若能找到一个安全序列则不会死锁
死锁检测:用资源分配图保存资源的请求和分配,在图中找到不被阻塞且不是孤点的点,将其所连的边全部去除,使其成为孤点
死锁解除:资源剥夺法,挂起死锁进程,抢占其资源分配
撤销进程法,强制撤销终止
进程回退法,设置还原点
设备管理方法理解
Io层次结构
应用程序结构
程序独立性
程序驱动
中断程序处理
硬件
Io通信方式
直接通信方式:cpu轮询检查io的操作情况,等待一直io传输完成
中断处理方式:cpu发送io指令,设备启动程序查询设备控制器的设备状态,若设备忙则阻塞,若空闲则进行io操作。设备启动程序将相应信息写到设备控制表,cpu可以分配给其他进程使用。完成io操作后,设备控制器发出中断请求,中断cpu当前任务,进程中断处理,cpu确定是哪个引起的中断,转移到对应的设备处理程序。
Dma方式:cpu发出io指令,将io任务委托给dma后,cpu转去执行其他任务。Dma收到后,以每次一字的方式将每个数据块存入或存储内存,而不经过cpu寄存器,传输完成后,dma向cpu发出中断信号,cpu收到后进行中断处理
通道控制方式:在主存开辟io缓存区,将缓冲区首址和字节数送到通道中,将初始通道地址写入某固定单元,通道接受到启动信号后,从主存取出通道地址字,根据通道指令启动设备,通道根据通道指令进行数据传输,直到传输字节数为0,传输结束,执行完毕,向设备发出结束命令,向cpu发出中断请求
设备分配应考虑设备的固有属性、设备分配算法、设备分配安全性(安全分配方式)(不安全分配方式)
设备分配方式:静态分配、动态分配
设备分配的数据结构:设备控制表dct、控制器控制表coct、通道控制表chct、系统设备表sdt
设备分配步骤:
根据进程请求的物理设备名查询系统控制表
根据系统控制表查找设备控制表,若设备忙,则挂到设备等待队列
根据设备控制表查找控制器控制表,若设备忙,则挂到控制器等待队列
根据控制器控制表查找通道控制表,若设备忙,则挂到通道等待队列
只有设备、控制器、通道都分配成功才算设备分配成功
磁盘调度算法理解
先来先服务fcfs,依据进程请求的访问磁盘的先后顺序进行调度
最短寻找时间优先sstf,依据距离磁头的最近的进程的远近距离进行调度,优先处理距离磁头最近的磁道
Scan电梯算法,只有磁头移动到最外侧磁道后才向内进行移动,移动到最内侧才向外侧移动
Look算法,磁头移动只需移动并服务玩最后一个磁道就可以返回,
- scan算法,磁头仅沿某一确定方向进行移动,当移动到端点,迅速返回到起始段而不进行服务。
C-look算法,若磁头移动的方向已经没有请求,就迅速返回,只需返回到有磁道请求的位置。
银行家算法理解
先判断当前是否处于安全状态,能否找到一个安全序列
-
- 若能,则对进程在某一时间申请的资源数与可分配资源数、需要资源数进行比较,若超过,则报错, 若不满足,则阻塞等待
- 若小于则先进行分配,然后再坚持分配后是否是安全状态,若分配后不是安全状态则收回分配的资源,若是则继续进行下去。
假设请求的资源是request,request>need报错返回,request>avaliable阻塞等待
若request<=need,request<=avaliable则
Avaliable=avaliable-request
Need=need-request
Allocation=allocation+request
分配之后使用安全检查算法检查是否处于安全状态能否找到安全序列
若不能则收回:
Avaliable=avaliable+request
Need=need+request
Allocation=allocation-request
安全检查算法
设work(j:m)为临时工作量,初始work=avaliable,N={1,2,...,n}
寻找j满足need(j)<=work
Work=work+allocation,N=N-{j}
n为空,则返回表面系统安全,n不为空系统不安全
四、综合题(36分)
1.进程逻辑地址到内存地址转换的理解及计算
2.死锁检测及计算
3.PV操作,给出具体的应用场景,要求写不同进程的同步代码。
有的小点没有进一步展开