《2022年操作系统重点知识总结 .pdf》由会员分享,可在线阅读,更多相关《2022年操作系统重点知识总结 .pdf(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、学习必备欢迎下载第一章 引论1、操作系统定义(P1)操作系统是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。是一组控制和管理计算机硬件和软件资源、合理地对各类作业进行调度以及方便用户使用的程序的集合。2、操作系统的作用(P2)1. OS 作为用户与计算机硬件系统之间的接口2. OS 作为计算机系统资源的管理者3. OS 实现了对计算机资源的抽象3、推动操作系统发展的主要动力(P4)1. 不断提高计算机资源的利用率2. 方便用户3. 器件的不断更新迭代4. 计算机体系结构的不断发展4、多道批处理系统的特征及优缺点(P8)特征:多道性、无序性、调度性优点:1. 资源利用率高2. 系统吞吐
2、量大缺点:1. 平均周转时间长2. 无交互能力(单道、多道都是)5、分时系统和实时系统特征的比较(P12)1. 多路性(实时系统的多路性主要表现在系统周期性地对多路信息的采集、以及对多个对象或多个执行机制进行控制。分时系统中的多路性则和用户有关,时多时少。 )2. 独立性3. 及时性 :(实时系统对及时性的要求更严格,实时控制系统以控制对象要求的开始截止时间或完成截止时间来确定。)4. 交互性 :实时系统的交互性仅限于访问某些专用服务程序。5. 可靠性 :实时系统对可靠性的要求更高,否则经济损失及后果无法预料。6、操作系统的基本特征(P14)(并发、共享、虚拟和异步其中并发特征是操作系统最重要
3、的特征是其他特征的前提)1. 并发性2. 共享性 (互斥共享方式、同时访问方式)3. 虚拟性 (时分复用技术 (虚拟处理机技术、虚拟设备技术) 、空分复用技术(虚拟磁盘技术、虚拟存储器技术) )4. 异步性(进程的异步性: 进程是以人们不可预知的速度向前推进的)7、操作系统的主要功能(P18)1. 处理机管理功能(进程控制( 1、进程互斥方式:进程或者线程在对临界资源进行访问时,应采取互斥方式;2、进程同步方式:相互合作去完成共同任务的诸进程货线程)、进程通信、 调度(作业调度、进程调度) )2. 存储器管理功能(内存分配、内存保护、地址映射、内存扩充)3. 设备管理功能 (缓冲管理、 设备分
4、配、 设备处理)4. 文件管理功能 (文件存储空间的管理、目录管理、文件的读/写管理和保护)5. 用户接口 (命令接口 (联机用户接口、脱机用户接口)、程序接口、图形接口)第二章进程管理1、程序顺序执行时的特征(P34)1. 顺序性 :严格按照程序所规定的次序执行。2. 封闭性 :程序在封闭环境下运行,系统中所有资源的状态只有本程序才能改变它。3. 可再现性 :只要初始条件相同,无论怎样执行,其结果都是相同的。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 21 页学习必备欢迎下载2、程序并发执行时的特征(提高了系统吞吐量)(P36)1
5、. 间断性 :并发执行的实体之间相互制约,造成程序的执行出现间断,而不连续。2. 非封闭性 :多个程序共享系统资源,因而其状态有多个程序改变,从而失去封闭性。3. 不可再现性 : 封闭性的失去必然导致不可再现性。3、进程及其特征(P37)进程 是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。进程是程序的一次执行进程实体 :由程序段、相关的数据段和PCB构成特征 :结构特征动态性( 进程最基本的特征)并发性( 引人进程的目的:为了使其进程实体能和其他的进程实体并发执行;而程序(没有建立PCB)不能并发执行)独立性异步性4、进程的基本状态及其转换图(P38)1. 就绪 (Ready)
6、状态2. 执行状态3. 阻塞状态(典型事例:请求I/O、申请缓冲空间等)就 绪阻 塞执 行时 间 片 完进 程 调 度I/O完 成I/O请 求5、引入挂起状态的原因(P39)1. 终端用户的请求2. 父进程请求3. 负荷调节的需要4. 操作系统的需要6、具有挂起状态的进程状态及其转换图活动就绪静止就绪执行挂起激活释放挂起活动阻塞静止阻塞挂起激活释放请求I/O7、进程控制块及其作用(P41)PCB 是一种数据结构,是进程实体的一部分,记录了操作系统所需的、用于描述进程的当前情况以及控制进程运行的全部信息。作用:1. 使一个在多道程序环境下不能独立运行的程序 (含数据 ),成为一个能独立运行的基本
7、单位,一个能与其它进程并发执行的进程。或者说,OS是根据PCB 来对并发执行的进程进行控制和管理的。2. PCB 是进程存在与否的唯一标志,随着进程的建立而建立 ,随着进程的撤消而撤消。创建进程就是创建 PCB。 。 。8、进程之间的两种制约关系(P48)1. 间接制约竞争资源进程互斥2. 直接制约相互合作进程同步9、临界资源(P48)OS 中把一次只能被一个进程使用的资源成为精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 21 页学习必备欢迎下载临界资源。10、临界区(P50)进程中访问临界资源的那段代码称为临界区。11、同步机构应遵
8、循的规则(P50)空闲让进、忙则等待、有限等待、让权等待12、利用信号量实现前驱关系算法P( 54 ) P( 55 ) 13、经典同步算法(生产者消费者问题, 哲学家就餐问题和读者写者问题)略14、进程通信的类型(P65)低级:信号量进程通信共享存储器系统(基于共享数据结构 或存储区 的通信方式)高级消息传递系统(直接、间接)管道通信系统(必须提供的协调能力:互斥、同步、确定对方是否存在)15、线程的定义(P72)现代 OS 引入的比进程更小的可以独立运行、调度的基本单位,是轻型实体,不拥有资源 。16、线程和进程比较线程又称为轻型进程, 通常一个进程都拥有若干个线程,至少也有一个(多线程OS
9、 中的进程不是一个可执行的实体)1、调度 :传统 OS 中,进程是拥有资源的基本单位, 独立调度、 分派的基本单位。 引入线程后,则把线程作为调度和分派的基本单位,而进程作为拥有资源的基本单位2、并发性 :引入线程的OS 中,进程之间可以并发执行,在一个进程中的多个线程之间也可以;这样使得OS 具有更好的并发性,从而能更加有效的提高系统资源的利用率和吞吐量3、拥有资源 :线程不能拥有资源4、系统开销 :就切换代价而言,进程远高于线程17、线程的属性(P73)1. 轻型实体2. 独立调度和分派的基本单位3. 可并发执行4. 共享进程资源第三章处理机调度与死锁1、高级调度(P84)又称为 作业调度
10、 。即从外存的后备队列中选择一个作业,为它 创建进程 ,分配 必要的 资源 ,并将新进程 插入 主存的 就绪队列 上。注意: 分时系统和实时系统无作业调度。JCB(作业控制块) ;是作业在系统中存在的标志,其中保存了系统对作业进行管理和调度所需的全部信息2、低级调度(P86)又称 进程调度 或短程调度 , 即从就绪队列中选择一个进程进入运行状态(非抢占方式、可抢占方式) 。调度的对象是进程(多批道处理、分时、实时三种类型的OS 中都有)3、中级调度(P87)中程调度为了提高内存利用率和系统吞吐量(引入目的) ,为此,应使那些暂时不能运行的进程不再占用内存资源,而将它们调至外存。适当时机再将其调
11、回内存。这种调度称为中级调度。4、进程调度的两种方式(P86)1、非抢占方式(一旦给进程分配处理机,一直让他运行下去,直到完成再把处理机分配给其他进程 )2、抢占方式( 允许调度程序根据某些原则去暂停某个正在执行的进程,将已分配给该进程的处理机重新分配给另一个进程)精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 21 页学习必备欢迎下载5、抢占的原则(P87)1. 优先权原则2. 短作业(进程)优先原则3. 时间片原则6、操作系统选择调度方式和调度算法的若干准则(P90)1. 面向用户的准则 (周转时间短、 响应时间快、截止时间的保证、
12、优先权准则)2. 面向系统的准则 (系统吞吐量高、 处理机利用率好、各类资源的平衡利用)7、周转时间(P92)周转时间:是指从作业被提交给系统开始,到作业完成为止的这段时间间隔周转时间= 完成时间- 到达时间待权周转时间= 周转时间/ 服务时间8、针对各种调度算法(先来先服务,短进程优先,优先权) ,计算周转时间、带权周转时间 , 平均周转时间、平均带权周转时间9、吞吐量指在单位时间内系统所完成的作业数10、多级反馈队列调度算法的原理、性能该算法用于 进程调度 , 主要是为解决前面各种进程调度算法存在的各种不同问题而设计的一种考虑综合因素的调度算法。其思想如下:1、设置多个就绪队列,不同队列具
13、有不同优先级,第一个队列优先级最高,以后次之。给不同队列分配不同大小的时间片,第一个队列最小,以后次之(皆为前者的二倍)。有的系统也将最后一级队列不划分时间片。2、当有一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS(先来先服务)原则排队等待调度。当轮到该进程执行时,如果它能在该时间片内完成,便可准备撤离系统;若不能则将它放在第二列的队尾。 。 。 。 。 。3、仅当前一级队列为空时才调度下一级队列中的进程。算法采用抢占式调度策略。执行的进程在规定的时间片内为执行完毕,则进入下一级队列的队尾,新进程则进入第一级队列的队尾。性能: (较好的性能, 能满足各种类型的用户)1、终端型作业
14、用户2、短批处理作业用户3、长批处理作业用户11、死锁、产生死锁原因、必要条件(P103)死锁 是指两个或多个进程由于资源竞争 而造成的一种僵局,若无外力作用,这些进程将永远无法向前推进。产生死锁的 原因 :1. 竞争资源 (可剥夺和非剥夺性资源、竞争非剥夺性资源、竞争临时性资源)2. 进程推进顺序非法(请求和释放资源的顺序不当)必要条件 :1. 互斥条件:进程间必须互斥使用某些资源才可能产生死锁。2. 请求保持条件:进程已经占有至少一个资源,但又提出了新的资源请求。3. 不剥夺条件:进程已经获得的资源不能被剥夺。4. 环路等待条件:在发生死锁时,必然存在一个进程资源环形链。12、处理死锁的基
15、本方法(P105)1. 预防死锁 :通过设置某些限制条件,破坏四个必要条件中的一个或几个。该方法比较简单,但由于限制条件过于严格,往往导致系统资源利用率和吞吐量低。2. 避免死锁 :不需事先预防,但在资源的动态分配时,用某种方法防止系统进入不安全状态,从而避免死锁 。该方法比较难于实现,但往往可获得较高资源利用率和系统吞吐量。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 21 页学习必备欢迎下载3. 死锁的检测与解除:允许系统产生死锁,但能及时检测出来,并通过某些措施解除。该方法实现难度最大,但往往可获得较好的资源利用率和系统吞吐量。
16、13、预防死锁的方法(P106)预防死锁的方法是使四个必要条件中的第2、3、4 个条件不能成立, 来避免发生死锁。 至于必要条件 1,因为他是由设备固有性能决定的,不仅不能改变,还应加以保证。 (互斥条件破坏不了)1. 摒弃“请求和保持”条件:资源静态分配2. 摒弃“不剥夺”条件:资源的动态分配3. 摒弃“环路等待”条件:资源有序分配14、安全状态(P107)所谓 安全状态 ,是指系统能按某种进程顺序(P1, P2, ,Pn)(称P1, P2, , Pn序列为安全序列),来为每个进程Pi 分配其所需资源,直至满足每个进程对资源的最大需求 ,使每个进程都可顺利地完成 。如果系统无法找到这样一个安
17、全序列,则称系统处于不安全状态。15、银行家算法P( 109 ) 16、死锁定理(P113)S状态是死锁的 充分条件 是,当且仅当 S 状态的资源分配图是不可完全简化的。该充分条件被称为死锁定理第四章 存储器管理1、程序装入的方式(P119)1. 绝对装入方式 : 完全按照目标程序中所给定的地址装入内存,即目标程序中使用的是绝对地址。该 绝对地址 既可在编译或汇编是给出,也可由程序员直接赋予。2. 可重定位装入方式: 通常是把在装入时对目标程序中指令和数据的修改过程称为重定位。又因为地址变换通常是在装入时一次完成的,以后不再改变,故称为 静态重定位3. 动态运行时装入方式: 在这种方式下动态运
18、行时的装入程序,在把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正要执行时才进行。因此,装入内存后的所有地址都仍是相对地址。显然为使指令的执行不受影响,进行这种地址的动态转换,就必须有专门的硬件机构解决2、重定位、静态重定位、动态重定位(P119)重定位 :我们把装入时对目标程序中的指令地址和数据地址的修改过程称为重定位。静态重定位 :如果重定位是在装入时由装入程序一次性完成的,则称为静态重定位。动态重定位 :在这种方式下动态运行时的装入程序,在把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真
19、正要执行时才进行。3、内存的连续分配方式有哪些?(P121)1. 单一连续分配(单道)2. 固定分区分配3. 动态(可变式)分区分配4. 可重定位分区分配4、动态分区分配算法(P123)1. 首次适应算法2. 循环首次适应算法3. 最佳适应算法4. 最坏适应算法5. 快速适应算法5、对换技术(P129)对换技术 ,是指把内存中 暂时不能运行 的进程或者 暂时不用 的程序和数据调出到外存上,以便腾出足够的内存空间,再把 已具备运行条件的进程或进程所需的程序和数据调入内存的方法。6、紧凑或拼接技术(P127)紧凑技术 ,是指通过移动内存中作业的位置,把原先分散的小分区拼接成一个大分区的方法。在每次
20、拼接后,都必须对移动了的程序或数据进行重定位精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 21 页学习必备欢迎下载7、基本分页管理原理、地址变换过程P( 130) 8、分段系统的基本原理、地址变换过程P( 136 ) 9、分页与分段的主要区别(P138)1. 页是信息的物理单位,分页是为了实现离散分配方式,以消减内存的外零头,提高内存利用率,分页是由于系统管理的需要而不是用户的需要。段则是信息的逻辑单位,分段的目的 是为了能更好地满足用户的需要。2. 页的大小固定且由系统决定;而 段的长度却不固定 , 取决于 用户所编写的程序。3.
21、分页的作业地址空间是一维 的,即单一的线性地址空间;而分段的作业地址空间则是二维的。10、虚拟存储器的定义、特征(P143)定义: 虚拟存储器就是仅把作业的一部分装入内存便可运行的存储器系统,具体说就是指 具有请求调入功能 和置换功能 ,能从逻辑上对内存容量进行扩充的一种存储器系统。特性:1. 离散性 :即非连续性,这是实现虚拟存储器管理技术的 前提 ;2. 多次性 :一个作业被分成多次调入内存;3. 对换性 :允许在作业运行过程中换入、换出;4. 虚拟性 :能够从逻辑上扩充内存容量。11、页面置换算法:计算缺页次数、 置换次数、缺页率、置换率P( 150 ) 第五章 设备管理1、设备管理的对
22、象:设备、设备控制器、通道2、I/O 控制方式及发展宗旨(P167)I/O 系统是用于实现数据的输入,输出及数据存储的系统I/O 控制方式 :1. 程序 I/O 方式(忙等待方式)2. 中断驱动I/O 方式3. 直接存储器访问DMA 控制方式4. I/O 通道控制方式发展宗旨:尽量较少主机对I/O 控制的干预, 把主机从繁杂的 I/O 控制事务中解脱出来,以便更多的去完成数据处理任务。3、缓冲引入的原因(P172)1. 缓和 CPU与 I/O 设备间速度不匹配的矛盾。2. 减少对 CPU 的中断频率,放宽对 CPU 中断响应时间的限制。3. 提高 CPU 和 I/O 设备之间的并行性。4、设备
23、独立性应用程序独立于具体使用的物理设备叫设备独立性,也称为设备无关性。5、SPOOLING原理、 组成、 特点、 共享打印机原理(P190)SPOOLING原理: 在联机情况下实现的外围操作与 CPU 对数据的处理同时进行,称为 假脱机操作,又叫Spooling。Spooling 系统的 组成 :1. 输入井和输出井2. 输入缓冲区和输出缓冲区(为了缓和CPU与磁盘之间速度不匹配的矛盾)3. 输入进程和输出进程4. 请求打印队列SPOOLing 系统的 特点 :1. 提高了 I/O 的速度。2. 将独占设备改造为共享设备。3. 实现了虚拟设备功能。共享打印机原理:精选学习资料 - - - -
24、- - - - - 名师归纳总结 - - - - - - -第 6 页,共 21 页学习必备欢迎下载共享打印机技术已被广泛地用于多用户系统和局域网络中。当用户进程请求打印输出时,SPOOLing 系统同意为它打印输出,但并不真正立即把打印机分配给该用户进程,而只为它做两件事:1. 由输出进程在输出井中为之申请一个空闲磁盘块区,并将要打印的数据送入其中;2. 输出进程再为用户进程申请一张空白的用户请求打印表, 并将用户的打印要求填入其中,再将该表挂到请求打印队列上。6、磁盘访问时间包括什么?(P193)1. 寻道时间Ts 2. 旋转延迟时间T3. 传输时间Tt 7、磁盘调度算法:计算平均寻道长度
25、P ( 194 ) 第六章 文件管理1、文件文件是指由创建者所定义的、具有文件名的一组相关元素的集合,可分为 有结构文件 和无结构文件 两种。在有结构的文件中,文件由若干个相关记录组成;而无结构文件则被看成是一个字符流。文件在文件系统中是一个最大的数据单位,它描述了一个对象集。2、文件的逻辑结构及分类(P208)文件的 逻辑结构 分为两大类:1. 有结构文件 :即 记录式文件 ;记录的长度分为 定长记录 和变长记录2. 无结构文件 : 即流式文件 (被看成字符流) 。3、文件的物理结构及分类(P213)文件的 物理结构 直接与外存分配方式有关。 可分为:1. 连续分配 方式时的 顺序式文件结构
26、。2. 链接分配 方式时的 链接式文件结构。3. 索引分配 方式时的 索引式文件结构。4、文件外存分配方式(P213)1. 连续分配 。2. 链接分配 。3. 索引分配。5、文件目录,目录查询方式文件目录 是一种数据结构,用于标识系统中的文件及其物理地址,供检索时使用,是文件数据块的有序集合 。目录查询方式 :1. 线性检索法2. Hash 方法6、目录管理的要求1. 实现“按名存取” 。2. 提高对目录的检索速度。3. 文件共享。4. 允许文件重名。7、文件控制块为了能对一个文件进行正确的存取,必须为文件设置用于 描述 和控制 的数据结构 ,称之为 文件控制块(包含三大信息:基本信息、存取控
27、制信息、使用信息)8、索引节点概念,为什么引入索引节点?索引节点 : 采用将文件名与文件描述信息分开的办法,将文件描述信息单独形成一个数据结构叫索引节点 简称 i 节点 。引入原因 :由于检索目录文件只用到文件名,即用不到该文件的描述信息,且在检索目录时索引节点不用调入内存,从而大大节省了系统开销。9、文件存储空间的管理方法1. 空闲表法2. 空闲链表法3. 位示图法4. 成组链接法(空闲表法和空闲链表法都不适合大型文件系统)精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 21 页学习必备欢迎下载10、成组链接法的空闲盘块组织、分配回收
28、过程1004003993013001003002992022012991004003992013019907999790179007899780179997901空闲盘块号栈S.free019899(1) 顺序扫描位示图,从中找出一个或一组其值为“ 0”的二进制位 (“0”表示空闲时 )。(2) 将所找到的一个或一组二进制位,转换成与之相应的盘块号。假定找到的其值为“0”的二进制位,位于位示图的第i 行、第 j 列,则其相应的盘块号应按下式计算:b=n(i-1)+j 式中,n 代表每行的位数。(3) 修改位示图,令mapi,j =1。空闲盘块的分配与回收:当系统要为用户分配文件所需的盘块时,首
29、先检查空闲盘块号栈是否上锁,如未上锁,便从栈顶取出一空闲盘块号,将与之对应的盘块分配给用户,然后将栈顶指针下移一格。若该盘块号已是栈底,即 S.free(0),这是当前栈中最后一个可分配的盘块号。由于在该盘块号所对应的盘块中记有下一组可用的盘块号,因此,须调用磁盘读过程,将栈底盘块号所对应盘块的内容读入栈中,作为新的盘块号栈的内容,并把原栈底对应的盘块分配出去。在系统回收空闲盘块时, 将回收盘块的盘块号记入空闲盘块号栈的顶部,并执行空闲盘块数加 1 操作。当栈中空闲盘块号数目已达100时,表示栈已满,便将现有栈中的100 个盘块号,记入新回收的盘块中,再将其盘块号作为新栈底。第七章操作系统接口
30、1、操作系统接口分为用户接口和程序接口(概念)。用户接口包括命令接口、图形接口等。2、程序接口程序接口是由一组系统调用组成。系统调用是在 OS 核心设置的一组实现系统功能的子程序(过程) 。第八章网络操作系统1、网络操作系统的功能数据通信,网络资源共享,应用互操作,网络管理应用互操作包括:信息互通性和信息互用性。在 Internet 下,主要利用TCP/IP 协议实现信息的互通性。2、网络操作系统提供的服务:域名服务,目录服务,Web 服务3、目录管理记录了网络中的三大资源物理设备,网络服务和用户的名字,属性和位置。精选学习资料 - - - - - - - - - 名师归纳总结 - - - -
31、 - - -第 8 页,共 21 页学习必备欢迎下载1、进程同步互斥问题* 信号量类型:整型 (忙等待 )、记录型、 AND 型、一般信号量集解决的问题:1、描述前趋关系:根据前趋图,各边分别设置信号量,初值为0;若某边从某节点出发,在此节点操作后, 对该边对应信号量作signal 操作;若某边指向某节点,在此节点操作前,对该边对应信号量作 wait 错作;Var a,b,c,d,e,f,g,h,i,j: semaphore:=0,0,0,0,0,0,0,0; begin parbegin begin S1; signal(a); signal(b); end; begin wait(a);
32、S2; signal(c); signal(d); end; begin wait(b); S3; signal(e);signal(f); end; begin wait(c); S4;signal(g); end; begin wait(d); S5;signal(h); end; begin wait(e); S6; signal(i); end; begin wait(f); S7; signal(j); end; begin wait(g); wait(h); wait(i); wait(j); S8; end; parend end 2、进程互斥问题(资源共享)* 根据临界资源的种
33、类设置信号量的个数,初值为各临界资源的可用数量;* 在访问临界资源前,对对应信号量作 wait 操作;在访问结束后作signal 操作,即将临界区放在wait 和 signal 之间。3、进程同步(相互合作)* 为同步双方设置各自的信号量,初值为其初始状态可用的资源数(故该信号量称为资源信号量或私有信号量);* 同步双方任一进程在进入临界区之前,应先对自己的信号量执行wait()操作,以测试是否有自己可用的资源。若有资源可用,则进入临界区,否则阻塞;同步双方任一进程离开临界区后,应对合作方(对方 ) 的信号量执行signal()操作,以通知 (若对方处于阻塞状态,则唤醒它)对方已有资源可用 (
34、对方已可进入临界区)。* 有一个阅览室,共有100 个座位,读者进入时必须先在一张登记表上登记,该表为每一个座位列一表目,包括座号和读者姓名等, 读者离开时要消掉登记的信息,试用 wait,signal 原语描述各个进程之间的同步互斥关系。Var s,mutax: semaphore:=100,1;Reader:BeginRepeatWait(s);Wait(mutex);登记;Signal(mutex);阅览图书;Wait(mutex);取消登记;Signal(mutex);Signal(s);Until fasleend精选学习资料 - - - - - - - - - 名师归纳总结 - -
35、 - - - - -第 9 页,共 21 页学习必备欢迎下载桌上有一个盘子,每次只能放一个水果,爸爸专向盘中放苹果,妈妈专向盘中放橘子,儿子专等吃盘里的桔子,女儿专等吃盘里的苹果。只要盘子空,爸爸妈妈可向盘中放水果,仅当盘中有自己需要的水果时,儿子或女儿可从中取出,请给出他们四人之间的同步关系程序。VAR s,so,sa:semaphore :=1,0,0;/s表示盘空, so表示橘子, sa表示苹果。parbegin Father:begin repeat wait(s); put apple(); signal(sa); until false end Mother:begin repea
36、t wait(s); put orange(); signal(so); until false end Son:beginrepaetwait(so);eat orange();signal(s);until falseenddaughter:begin repeatwait(sa);eat apple();signal(s);until falseendparend2设公共汽车上有一位司机和一位售票员,它们的活动如下:司机:启动车辆,行车,到站停车,售票员:售票;到站开门,关门请分析司机与售票员之间的同步关系,如何用PV 操作实现。答:为了安全起见,显然要求:关车门后才能启动车辆;到站停车
37、后才能开车门。所以司机和售票员在到站、开门、关门、启动车辆这几个活动之间存在着同步关系。用两个信号量S1、S2 分别表示可以开车和可以开门,S1 的初值为 1, S2 的初值为 0。用 PV 操作实现司机进程和售票员进程同步的算法描述如下:司机:P(S1) ;启动车辆;正常行车;到站停车;V(S2) ;售票员:售票;P(S2) ;精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 21 页学习必备欢迎下载开车门;关车门;V(S1) ;生产者消费者问题三个进程两个缓冲区俩俩合作(下页);设自行车生产车间有两个货架,货架 A 可以存放 8 个
38、车架,货架B 可以存放 20 个车轮;又设有4 个工人,他们的活动是重复劳动,分别为:工人1 加工一个车架放入货架A 中;工人2、3 分别加工车轮放入货架B 中(每人每次放入1 个车轮);工人 4 从货架 A 中取一个车架,再从货架B 中取两个车轮,组装成一辆自行车。试用PV 操作实现四个工人的合作1、系统中有是三个进程GET,PRO 和 PUT,共用两个缓冲区BUF1 和 BUF2 。假设 BUF1 中最多可放 8 个信息,BUF2 中最多可放5 个信息。GET进程负责不断地将信息送入BUF1 中,PRO 进程负责从 BUF1 中取出信息进行处理,并将处理结果送到 BUF2 中,PUT 进程
39、负责从BUF2 中读取结果并输出。试用wait、signal 原语( P、V 操作)实现GET,PRO,PUT 进程之间的同步算法。1、 var:mutex1,mutex2,empty1,empty2,full11 ,full2:=1,1,8,5,0,0;GET:begin(repeat wait(empty1); wait(mutex1); 送入 BUF1;; signal(mutex1); signal(full); until false end PRO:begin repeat wait(full1); wait(mutex1); 从 BUF1 中取信息加工 ; signal(mute
40、x1); signal(empty1); wait(empty2); wait(mutex2); 将加工后的信息放入BUF2; signal(mutex2); signal(full2); until false end PUT:begin repeat wait(full2); wait(mutex2); 从 BUF2 中取信息输出 ; signal(mutex2); signal(empty2); until false end 【分析】设置资源信号量和互斥信号量如下:信号量 Aempty 表示货架 A 的空位数,其初值为8;信号量 Afull 表示货架 A 上存放的车架数,其初值为0;信
41、号量 Bempty 表示货架 B 的空位数,其初值为20;信号量 Bfull 表示货架 B 上存放的车轮数,其初值为0;信号量 mutex 用于互斥(初值为 1) 。Var Aempty,Afull,Bempty,Bfull,mutex:semaphore; Aempty.value:=8; Afull.value:=0; Bempty.value:=20;Bfull.value:=0; mutext.value:=1; 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 21 页学习必备欢迎下载wheelcount:integer:=0
42、; Begin parbegin worker1:begin repeat 生产一个车架;wait(Aempty);/ 看看货架A 上是否有空位置车架放到货架A 上;signal(Afull);/ 货架A 上的车架数增 1,并通知工人4 until false; end Worker2,3:begin repeat 生产一个车轮;wait(Bempty);/ 看看货架B 上是否有空位置wait(mutex); 将车轮放到货架B 上;signal(mutex); signal(Bfull);/ 货架 B 上的车轮数增1,并通知工人4 until false; end Worker4:begin
43、repeat wait(Afull);wait(Bfull);wait(Bfull); 取一个车架和两个车轮;signal(Aempty);signal(Bempty);signal(Bempty); 组装一辆自行车;until false end parend end 哲学家就餐问题(非死锁算法)至多允许 4 个哲学家同时取左边的筷子,这样能至少保证一个哲学家能就餐,并在用毕后释放他用过的两只筷子,从而使更多的哲学家能够进餐。(请学生考虑算法的描述)仅当哲学家左右两只筷子均可用时,才允许他拿起筷子进餐。 (用AND信号量机制)规定奇数号哲学家先拿左边筷子,然后再拿右边筷子;而偶数号哲学家先拿
44、右边筷子,然后再拿左边筷子。( 1 )var chopstick:array0, ,4 of semaphore := 1,1,1,1,1; Sm:semaphore := 4; begin repeat wait(Sm); wait(chopsticki); wait(chopstick(i+1) mod 5); eat; signal(chopsticki); signal(chopstick(i+1) mod 5); signal(Sm); think; until false End (2)var chopstick:array0,4 of semaphore := 1,1,1,1,1
45、; 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 21 页学习必备欢迎下载begin repeat swait(chopsticki ,chopstick(i+1) mod 5); eat; ssignal(chopsticki ,chopstick(i+1) mod 5); think; until false end (3) var chopstick:array0,4 of semaphore := 1,1,1,1,1; begin repeat if i mod 2=0 then begin wait(chopsticki)
46、; wait(chopstick(i+1) mod 5); end; else begin wait(chopstick(i+1) mod 5); wait(chopsticki); end; eat; signal(chopsticki); signal(chopstick(i+1) mod 5); think; until false End 读者写者问题 及变形 -独木桥问题假定有如下独木桥问题:过桥时,同一方向的行人可连续过桥,当某一方有人过桥时,另一方向的行人必须等待;当某一方向无人过桥时,另一方向的行人可以过桥。试用信号量机制解决。答案:(1) 将独木桥的两个方向分别标记为A 和
47、B。 用整型变量countA 和 countB 分别 表示 A、B 方向上已在独木桥上的行人数。初值为0。需要设置三个初值都为1 的互斥信号量: SA 用来实现对 countA 的互斥访问,SB 用来实现对countB 的互斥访问, mutex 用来实现对独木桥的互斥使用。(2) A 方向行人过桥:Begin P(SA); countA=countA+1; if (countA= =1) P(mutex); V(SA); 过桥;(SA); countA=countA-1; if(countA= =0) V(mutex); V(SA); End B 方向行人过桥:Begin P(SB); cou
48、ntB=countB+1; if (countB= =1) P(mutex); V(SB); 过桥;P(SB); countB=countB-1; if(countB= =0) V(mutex); V(SB); End 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 21 页学习必备欢迎下载处理机调度算法:1. 先来先服务调度算法该算法既可用于作业调度又可用于进程调度,用于前者时,每次调度都是从外存后备队列中选择一个或多个作业,将它们调入内存,为它们分配资源、创建进程,然后将新建进程放入就绪队列。用于后者时,每次调度时从就绪队列中选择
49、一个最先进入该队列的进程, 把处理机分配给它, 使其运行。FCFS 算法的特点如下:?利于长作业 (进程),而不利于短作业(进程)?利于 CPU 繁忙型作业(进程) ,而不利于 IO 型繁忙作业(进程)?作业平均等待时间长?系统吞吐量不高2. 短作业 (进程 )优先调度算法短作业 (进程 )优先调度算法SJ(P)F,是指对短作业或短进程优先调度的算法。它们可以分别用于作业调度和进程调度。 短作业优先 (SJF)的调度算法, 是从后备队列中选择一个或若干个估计运行时间最短的作业 ,将它们调入内存运行。而短进程优先(SPF)调度算法,则是从就绪队列中选出一估计运行时间最短的进程,将处理机分配给它,
50、使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时,再重新调度该算法的特点如下:?能有效降低作业平均等待时间? 能提高系统吞吐量? 对长作业不利? 未考虑作业的紧迫程度,因而不能保证紧迫型作业或进程得到及时处理。由于作业或进程的长短是根据用户所提供的估计执行时间而定,因而不免存在差异。3.高优先权优先调度算法1)非抢占式优先权算法2)抢占式优先权算法【例3-3】设有一个最多可有两道作业同时装入内存执行的批处理系统,作业调度采用最短作业优先调度算法,进程调度采用抢占式静态优先权调度算法,今有如下纯计算型作业序列(表中所列进程优先数中,数值越小优先权越高) :精选学习资料 - - -