操作系统复习.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《操作系统复习.docx》由会员分享,可在线阅读,更多相关《操作系统复习.docx(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、操作系统复习 1、 P25 复习题 1.11.81 计算机的 4 个主要组成部分 处理器 控制计算机的操作,执行数据处理功能 内存 存储数据和程序 输入 / 输出模块 在计算机和外部环境之间移动数据 系统总线 为处理器、内存和输入 / 输出模块提供通信的设施2 处理器寄存器的两张主要类别 用户可见寄存器 可以由机器语言应用,一般对所有程序都可用 控制和状态寄存器 用于控制处理器操作的寄存器,大部分此类寄存器对用户不可见 一条机器指令能够指定的四种不同操作 处理器 - 存储器 处理器 -I/O 数据处理 控制 中断的定义 处理器接收到内部或外部的信号之后,放下手头正在做的工作,处理一些其他工作,
2、之后再回来继续做之前的工作的行为。 多中断的处理方式是 第一种方式是当正在处理一个中断时,禁止再发生中断 第二种方法是定义中断优先级,允许高优先级中断打断低优先级中断处理程序的运行内存层次的各个元素间的特征是神马 定义寄存器 - 高速缓存 - 主存 - 外存的级别由高到低,则从上往下 每一位价格递减、容量递增、存取时间递增、处理器访问存储器的频率递减神马是高速缓存 为了解决处理器和内存之间速度不匹配,利用局部性原理,在处理器和内存之间提供一个容量小而速度快的存储器,称作高速缓存。 I/0 操作的三种技术 可编程 I/O 当处理器执行程序并遇到一个与 I/0 相关指令时,它通过给相应的 I/0
3、模块发命令来执行这个指令。可编程 I/0 要求处理器在执行 I/0 指令后,还要定期检查 I/O 模块的状态,以确定 I/O 操作是否完成。 中断驱动 I/O 处理器给模块发 I/O 命令,然后继续做一些其他有用的工作,当 I/O 模块准备好与处理器交换数据时,它打断处理器的执行并请求服务。处理器和前面一些执行数据传送,再恢复正常的执行。 DMA 直接内存存取 当处理器要读写一块数据时,它给 DMA 模块产生一条命令,之后处理器继续其他工作。 DMA 负责存储器与 I/0 之间数据传送。直到整个传送完成后, DMA 再发一个中断信号给处理器,表明传送已完成。2、 操作系统概述1 实地址和虚地址
4、的区别虚地址就是虚拟存储器中的地址,而虚拟存储器是允许程序从逻辑的角度访问存储器,而不考虑物理内存上可用的空间数量。实地址就是实际的内存中的地址。使用中,虚地址和实地址之间存在着动态的映射,当虚地址中内容在实际内存中不存在时,由存储管理硬件载入这块内容到内存。2 单体内核和微内核的区别单体内核指操作系统应提供的功能由一个大内核提供(这些功能包括调度、文件系统、网络、设备驱动器、存储管理),典型情况下,这个大内核作为一个进程实现,所有元素共享相同的地址空间。微内核体系下则只给内核分配一些最基本的功能(包括地址空间、进程间通信、基本的调度),其他操作系统的服务都是由运行在用户态下与其他应用程序类似
5、的进程提供。3 执行上下文又称进程状态,是操作系统用来管理和控制进程所需的内部数据,包括了操作系统管理进程以及处理器正确执行进程所需要的全部信息。 4 时间片轮转在固定时间间隔内,当前用户被剥夺处理器的使用权,另一用户被载入。5 特权指令只能在内核态下由操作系统执行的指令,用户程序希望执行特权指令时应请求操作系统为自己执行。3 、进程描述和控制 五状态进程图形 P79 五种状态 新建 就绪 运行 阻塞 退出 六种转换 新建 就绪 操作系统准备好接纳一个进程时 就绪 运行 调度器选择一个处于就绪态的进程运行 运行 退出 进程完成 取消 运行 就绪 到“允许不中断的最大时间段” / 被其他进程抢占
6、 / 自愿释放 运行 阻塞 进程请求一个它必须等待的事件 阻塞 就绪 进程等待的事件发生 有挂起的进程状态转换图 七种状态 新建 就绪 运行 阻塞 就绪 / 挂起 阻塞 / 挂起 退出 十三种转换 新建 就绪 允许进入:同上 新建 就绪 / 挂起 允许进入:内存不足 就绪 / 挂起 就绪 激活:内存中没有处于就绪态的进程 / 就绪 / 挂起态的进程比所有就绪态进程优先级都高 就绪 就绪 / 挂起 挂起:为了释放内存 / 处于阻塞态的高优先级进程即将就绪 就绪 运行 分派:同上 运行 退出 释放:同上 运行 就绪 超时(不是很准确):同上 运行 阻塞 事件等待:同上 阻塞 就绪 事件发生:同上
7、阻塞 阻塞 / 挂起 挂起 内存中没有就绪进程,换出以让出空间 阻塞 / 挂起 阻塞 激活:最高优先级即将就绪进程被优先激活 阻塞 / 挂起 就绪 / 挂起 事件发生:同上 运行 就绪 / 挂起 挂起:挂起队列中高优先级就绪,直接换入抢占 哪些事件会导致创建一个进程 a) 新的批处理作业 b) 交互登陆 c) 操作系统因为提供一项服务而创建 d) 由现有进程派生 什么是交换,其目的是 交换:当内存中没有处于就绪态的进程时,操作系统就把被阻塞的进程换出到磁盘中的挂起队列,此后,操作系统取出挂起队列中的另一个进程,或者接受一个新进程的请求,将其纳入到内存中运行。 为了应对内存中所有进程都在阻塞的情
8、况(考虑 I/O 速度比处理器慢很多),在这种情况下提升处理器运行效率。 操作系统创建一个新进程的步骤 a) 给新进程分配一个唯一的进程标识符 b) 给进程分配空间 c) 初始化 PCB d) 设置正确的连接 e) 创建或扩充其他数据解雇 进程切换的步骤 a) 保存处理器上下文环境 b) 更新 PCB c) 将 PCB 移至相应的队列 d) 选择一个进程执行 e) 更新所选进程的 PCB f) 更新内存管理的数据结构、 g) 恢复所选进程最近一次被切出时的上下文环境 习题 3.2 灰常有歧义的一道题目 能确认的就是 运行态最大值是 B ,就绪挂起、阻塞挂起的最大值都没有限制 各个状态的最小值都
9、为 0 有歧义的是内存中的两个状态 就绪态和阻塞态 个人倾向于理解为题目中没有涉及虚拟内存(毕竟它根本没提到操作系统),而我们要考虑虚拟内存,这样答案就是没有限制 ( 这个和 ” 官方答案“一致,强调虚拟内存意义,即使一个进程整个内存都放不下,它也可以就绪的,即 C 无约束作用 ) 不过说到底,“在任何时候内存最多容纳 C 个进程”这句话就很有歧义,进程又不是一样大的。 4 、线程、对称多处理和微内核 两种线程 用户级线程 ULT 所有有关线程的管理工作都是由应用程序实现,内核意识不到线程的存在 内核级线程 KLT 有关线程的管理工作都是由内核实现,应用程序中没有管理线程的代码,只有一个到内核
10、线程设施的 API 列举使用线程相对于使用进程的好处 i) 时间花费少,具体包括创建新线程、线程切换、终止线程都少。 Ii) 通信便利高效,进程间通信需要内核介入,而一个进程内的线程共享内存和文件,直接可以通信 列举微内核操作系统和单体内核操作系统 7 个优点和可能存在的缺点 优点: i) 一致接口 ii) 可扩展性 iii) 灵活性 iv) 可移植性 v) 可靠性 vi) 分布式系统支持 vii) 适用于面向对象操作系统环境 可能存在的缺点: 性能问题 通过微内核构造和发送消息,接受应答并解码所花费的时间比进行一次系统调用的时间要多。5 、并发性:互斥和同步 名词解释 临界区 要被多个进程访
11、问的一个不可共享资源称为临界资源,使用临界资源的那一部分程序称为程序的临界区。 死锁 一组进程,当其中每一进程都因等待某一事件而被阻塞,而这事件仅可能由其他进程促发,则发生死锁。 互斥 一次只允许一个程序在临界区中,即一个进程在使用不可共享资源过程中一直拥有资源的控制权。 竞争条件 竞争条件发生在多个进程或线程读写数据时,其最终结果依赖于多个进程的指令执行顺序。2 生产者、消费者问题 图 5.11基本:有一个活多个生产者生产某种类型的数据,并放置在缓冲区中,有一个消费者从缓冲区中取数据,每次取一项。要避免对缓冲区的重复操作,并保证缓冲区已满时,生产者不向中加入数据(这个 MS 暂时不考虑, 5
12、.11 么);缓冲区为空时,消费者不会移走数据。个人思考:i) 为什么要使用两个信号量,主要是要完成两个功能,即不重复操作 信号量 s 是做一个临界区保护;缓冲区为空时,消费者不移走数据 信号量 delay + 计数量 n 实现。(这必须要用两个信号量才够!)ii) Delay + n 的实现方法之所以错了, 就是由于这两个之间存在“间隙”, n 存在的目的是作为不能多次计数的二元信号量 delay 的补充,而它的变化与 delay 变化的不同步导致了错误。(生产者程序插在了消费者 n 和 if(n = 0) semWaitB(delay) 之间)iii) 5.11 中用一般信号量 n 取代了
13、 delay + n 的组合,自然消除了这个问题iv) 在 P153 中也提到了, wait 的顺序很重要。鉴于顺序的随机性,其实直接看 wait signal 的位置关系既可以发现会不会有死锁3 读者写者问题 图 5.22 5.23 基本:有一个多个进程共享的数据区,这个数据区可以是一个文件或一块内存,甚至是一组寄存器,有一些进程只读取这个数据区中的数据,有一些只写。条件如下: i) 任意多进程可以同时读 ii) 一次只有一个可以写 iii) 写时禁止读个人思考:i) 对于读者优先,比较简单 , wsem 用于所有进程之间互斥, readcount 则避免读进程之间互斥, x 用于对 rea
14、dcount 相关操作进行临界区保护。ii) 写者优先比较实际一点,但复杂度。其实也不是很复杂x 、 readcount 、 wsem 用途不变y 用于保护 writecount, writecount 用于在有写进程等待(至少一个即可 )的情况下禁止读z 则保证 rsem 上永远只有一个读进程在等待这么看真的不复杂,但这些信号量放置的位置 (wait signal) 要很小心4 习题 5.4 不管这是神马语言了,直接 C 语言写了 ( 这里认为通用的信号量 = 二元信号量 )信号量声明Semaphore sa = 1, sb = 0 , b_end_flg = 0;A 部分:semWait(
15、sa);if (b_end_flg = 0) semSignal(sb); Else semSignal(sa); B 部分:semWait(sb);b_end_flg = 1;semSignal(sa);. MS 所有 pv 就是 .p(sa) .v(sa) 这样进行上锁和解锁。6 、死锁和饥饿 死锁发生的 4 个条件 :互斥 一个资源一次只能被一个进程使用持有并等待 一个进程持有已分配资源的同时,等待分配其他资源不可剥夺 资源在被进程持有时不可被强制剥夺循环等待 存在一个进程链,使得每一个进程至少占有一个此链中下一个进程所等待的资源如何预防占有并等待条件 进程一次性请求所有需要资源,并阻塞
16、直至所有请求都被满足。如何防止不可抢占 当进程的资源请求被拒绝时,它必须释放它最初占有的资源,如有必要,可再次一次请求这些资源;一个进程请求当前被另一进程占有的一个资源,操作系统可以抢占另一进程,要求它释放资源(要求任意两进程优先级不同)。如何防止循环等待 定义资源类型的线性顺序,如果一个进程已分配到 R 类型资源,则它后面请求的资源只能是 R 类型之后的。2 习题 6.5 画资源分配图 a) 暂时理解为随便算b) 资源分配图是对多线程中运行的一个时间点状态的描述,所以要说明死锁的可能性只需要构造一个这样的时间点并画图(内含闭环)即可。针对本题,其实只要画 T1 、 T2 、 T3时间点为 T
17、1 拥有 s1 请求 s2 T2 拥有 s2 、 s4( 可不画 ) 请求 s5 T3 拥有 s5 、 s6( 可不画 ) 请求 s1 习题 6.6 死锁检测就是 189 页的算法1) 标记 Aij 中全零行 这样的进程不可能导致死锁,直接标记2) 初始化 A 的计数变量 W3) 后面类似银行家算法,就是找一个 Ri 小于 W 的,走掉(标记),释放资源(将 Ai 加到 W 中去),回头继续找满足条件 Ri最后没有满足条件 Ri 了,就看是不是所有进程都标记了,都标记了,就没有问题;所有没标记的都是要死锁的。习题 6.11 银行家算法总需求量 Cij 一定,总可用量 R 一定,银行家算法的目的
18、在于规范过程中每次申请资源请求(申请资源后会导致 Aij ,即剩余请求量 Rij = Cij - Aij 和剩余资源量 A ,如存在这个 A 可以完全消化 Rij, 则为安全状态,否则,不安全 这次的自愿申请无效)a) 基本的 b ) c) d) ( a) 中先算出 A 和 Rij 可以减少一点计算量 ) 注意题目中给出的是 R B 可以 c 不行 d 显然不行 7 、内存管理1 重定位,为什么要重定位进程的能力 程序被传出到磁盘之后,重新载入内存时可以放置在与之前不同的一个位置。(也可以说还包括压缩) 为什么 交换的需求实际存在,而如果要求进程换入时放置的位置必须和换出前一致,会对内存的使用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 复习
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内