操作系统——第三章 处理机调度与死锁

高级调度

        又称作业调度、长程调度、接纳调度。根据某种算法把外存处于后备序列的作业调入内存。批处理系统需要有作业调度,分时和实时系统无需此调度

        每次作业都需要做以下两个决定:接纳多少作业,接纳哪些作业

        高级调度有以下三个属性:多道程序度(多少个作业可以同时进行)、周转时间(作业提交到作业完成的时间间隔)、吞吐量(值时间单位系统完成的作业量)

        响应比=(等待时间+要求服务时间)/要求服务时间=响应时间/要求服务时间

        主要用于批处理系统,目的是最大限度的发挥资源的利用率和保持相同内的各种活动的充分并行

低级调度

        又称为进程调度、短程调度;调度的对象是进程,是最基本的调度,批处理、分时、实时三种类型的OS都必须配置。用于决定就绪队列的哪个进程应该获得处理机,然后由分派进程分配处理机给对应进程,调度方式分为抢占式和非抢占式

        三个基本机制:排队器(提高进程调度效率,事先排成队列)、分派器(进行上下文切换,分配处理机)、上下文切换机制(当对处理机进行切换时,会发生两对上下文切换操作)

        低级调度功能:按某种算法选取进程,保存处理机现场,把处理器分配给进程

        非抢占式:新就绪的进程进入队列,上一个进程仍继续,指导完成进程才进行切换(优:算法简单、开销小;缺:紧急任务无法及时响应,短进程后到需要等待长进程结束)

        抢占式:若有更为重要或紧迫 的进程进入就绪队列,立即暂停上一个进程,执行新进程。抢占原则:时间片原则、优先权原则、短作业优先原则(优:防止长进程长时间占用,更公平,满足严格实时性;缺:开销较大、算法复杂)

中级调度

        又称为中程调度,目的是为了提高内存利用率和相同吞吐量

        具体实现:把那些暂时不能运行的进程从内存转到外存,此时进程的状态称之为就绪驻外存状态或挂起状态;当这些进程有具备了运行条件,由从外存移到内存,并将其状态修改为就绪状态

处理机调度的层次

仅有进程调度的调度队列模型(分时系统)

        在分时系统中,通常仅设有进程调度,系统把这些进程组成一个就绪队列;每个进程在执行时无外乎四字情况:CPU正在执行;在给定时间内完成;在给定时间片内未完成,进入队尾;因为某件事阻塞

具有高级与低级调度的调度队列模型

        在批处理系统中,不仅需要进程调度,还需要作业调度;在批处理系统中,通常用高优先权队列,将优先权高的进程往前放;且根据阻塞原因不同设置了多个阻塞队列

同时具有三级调度的调度队列模型

        在OS中引入中级调度后,进程的就绪就分为了内存就绪与外存就绪;同样,阻塞进一步分成内存阻塞和外存阻塞;通过操作,可以将内存就绪转为外存就绪,将内存阻塞转化为外存阻塞;在中级调度下,又可用使外村就绪转为内存就绪

调度的目标

        提高处理机的利用率;

        提高系统吞吐量;

        尽量减少进程的响应时间;

        防止进程长期得不到运行

算法准则

        面向用户的准则:周转时间短、响应时间快、截止时间的保证、优先权准则

        面向系统的准则:系统吞吐量高、处理机利用率高、各类资源的平衡利用

引起进程调度的因素

        正在执行的进程执行完毕,或者因为发生某事件而不能继续执行

        执行中的进程因为提出I/O请求而暂停执行

        在进程通信或同步过程中执行了某种原语操作

进程切换的基本步骤

        保存进程的上下文环境

        更新当前运行进程的控制块内容,将状态改为就绪或者阻塞

        将进程控制块一如相应队列

        改变需要投入运行进程的控制块内容,将状态改为运行状态

        恢复需要投入运行进程的上下文环境

##  进程切换:一个进程占用处理机执行完,换另一个进程占用处理机的行为 ##

##  进程调度:把处理机分给不同进程  ##

##  调度程序:实现分配处理机的程序  ##

##  进程的上下文:在执行切换时的现场  ##

##  并发:一个CPU交替执行多个程序;极大的提高资源使用率  ##

调度算法

        先来先服务(FCFS)

                先进入系统者先调度;即启动等待时间最长的作业/进程

                优点:有利于长作业;有利于CPU繁忙型作业

                缺点:不利于短作业,特别是晚来的短进程;不利于I/O繁忙型作业

                ##  用于批处理系统,不适于分时系统  ##

        短作业优先调度算法(SJF/SPF)

                以要求运行时间长短进行调度,即启动要求运行时间最短的作业,分别用于作业调度和进程调度

                优点:能够有效降低作业/进程的平均等待时间;提高系统吞吐量

                缺点:对长作业不利,可能使其长时间不调度;未考虑到作业紧迫性;根据用户估计的执行时间来确定,不一定是真正的短作业优先;无法实现人机交互

        最短剩余时间优先算法(SRT)

                当一个新进程加入时,比较谁后续的服务时间更短就执行谁,若二者相当,则执行原进程,否则执行剩余时间少的进程

##  周转时间=完成时间-到达时间  ##

##  带权周转时间=周转时间/要求服务时间  ##

##  等待时间=周转时间-服务时间  ##

        优先权调度算法(PSA)

                静态优先权(抢占/非抢占):优:简单易行,开销小;缺:不够精确

                动态优先权(抢占/非抢占)(HRRN):介于FCFS和SJF之间的折中算法,增加了系统开销

##  动态优先权=(等待时间+要求服务时间)/要求服务时间  ##

        时间片轮转法

                系统将所有就绪进程按先来先服务原则,排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片;难点是,时间片大小的确定,太大退化为FCFS,太小系统开销过大;对于短的,计算型进程有利,但是对于I/O型进程不利

        多级队列调度算法

                前台的就绪队列是交互性作业的进程,采用时间片轮转;后台的就绪队列是批处理作业的进程,采用优先权或短作业优先算法——优先调度前台,前台无进程可运行,才调度后台

        多级反馈序列

                 设置多个就绪队列,并为各个队列赋予不同的优先级--一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则排队等待调度,调度完成若进程结束则撤离系统,反之放入下一级队列末尾--仅当第1~(i-1) 队列均空时,才会调度第i队列中的进程运行

##  不需要指导进程执行所需的时间  ##

        基于公平原则的调度算法

                保证调度算法

                        保证的是绝对运行时间,即启动后在某个时间段内必须获得多少运行时间。

                公平分享调度算法

                        按照用户数量平均分配时间,而不是进程间平均分配

                

实时调度系统

        硬实时系统:硬实时系统有一个刚性的、不可改变的时间限制,不允许任何超出时限的错误

        软实时系统:软实时系统的时限是柔性灵活的,它可以容忍偶然的超时错误。

##  二者差别:软实时只能提供统计意义上的实时  ##

实现实时系统的基本条件

         提供必要的调度信息:就绪时间、开始截止时间、完成截止时间、处理时间、资源要求、优先级

        系统处理能力强

        采用抢占式调度机制

        具有快速切换机制:具有快速响应外部中断的能力、快速的任务分派能力

实时调度算法

        非抢占式轮转调度算法:队首运行,完毕后放置于队尾,不断循环

        非抢占式优先权调度算法:对于有严格要求的任务赋予较高优先级

        基于时钟中断的抢占式优先权调度算法

        立即抢占的优先权调度算法

常用的几种实时调度算法

        最早截止时间优先算法(EDF):任务开始截止时间越早优先级越高;按照截止时间的早晚进行队列排序;

        最低松弛度优先算法(LLF):松弛度=完成截止时间–剩余运行时间–当前时间;该算法主要用于抢占调度方式----当松弛度等于0时进行抢占

优先级倒置

        即高优先级进程被低优先级进程延迟或阻塞

产生死锁的原因与必要条件

        死锁:指多个进程因竞争资源或相互通信而造成的一种僵局,都在等待着对方释放出自己所需的资源,但同时又不释放出自己已经占有的资源,若无外力作用,这些进程都将永远无法向前推进。

         产生原因:资源竞争;进程顺序推进不当

        产生死锁的必要条件:互斥、请求和保持条件、不剥夺条件、环路等待条件(有环路不一定死锁!)

        处理死锁的基本方法

                预防死锁:易于实现、资源利用率和吞吐量降低

                避免死锁:较弱限制条件可获得较高系统资源利用率和吞吐量,但有一定的实现难度

                检测死锁:通过设置检测机构,检测出死锁后解除

                解除死锁:常常撤销或者挂起进程,回收资源

预防死锁

        预防死锁的方法是使四个必要条件中的第2、3、4条件之一不能成立

        摒弃“请求和保持”条件

                1.系统要求所有进程一次性申请所需的全部资源,只要有一种资源不能满足,那么就不会进行资源分配;优:简单、易于实现且安全;缺:资源浪费严重、进程延迟运行

                2.允许一个进程只获得运行初期所需的资源后便开始运行,过程中逐步释放已分配的使用完毕的资源,在请求新的所需资源;优:更快的完成任务,提高设备利用率,减少饥饿概率

        摒弃“不剥夺”条件

                一个已经保持了某些资源的进程,在自己的请求得不到满足时,必须释放已保持的所有资源,后续在进行重新申请;优:摒弃了“不剥夺”条件;缺:实现复杂,代价大,延长了周转时间,增加了系统开销,降低了系统吞吐量

        摒弃“环路等待”条件

                系统将按照资源是否常用为资源编号,资源请求必须从低号到高号,资源释放要从高号到低号;优:资源利用率和吞吐量较前两者改善;缺:限制了新设备类型的增加;因进程使用各类资源顺序与系统规定不同而造成了资源的浪费;限制了用户简单、自主的编程

避免死锁

        安全状态:是指系统能按某种进程顺序来为每个进程Pi分配其所需资源,直至满足每个进程对资源的最大需求,使每个进程都可顺利地完成。如果系统无法找到这样一个安全序列,则称系统处于不安全状态

##  不安全状态不等于死锁状态,但是进入不安全有概率死锁  ##

##  避免死锁的关键在于,如何准确的预测是否会出现死锁,最具代表性的就是银行家算法  ##

死锁的检测与解除

        资源分配图

        先看系统还剩下多少资源没分配,再看有哪些进程是不阻塞---把不阻塞的进程的所有边都去掉,形成一个孤立的点,再把系统分配给这个进程的资源回收回来---看剩下的进程有哪些是不阻塞的,然后又把它们逐个变成孤立的点---最后,所有的资源和进程都变成孤立的点。这样的图就叫做“可完全简化”。如果一个图可完全简化,则不会产生死锁;如果一个图不可完全简化(即:图中还有“边”存在),则会产生死锁。这就是“死锁定理”。

        死锁解除

                剥夺资源:从其它进程剥夺足够数量的资源给死锁进程,以解除死锁状态

                撤销进程:最简单的撤消进程的方法,是使全部死锁进程都夭折掉;或者按照某种顺序逐个地撤消进程,直至有足够的资源可用,使死锁状态消除为止

按照解除死锁复杂度递增的顺序列出解除死锁的方法

        撤消死锁进程

        把死锁进程恢复到前一个检查点,重新执行每个进程

        按照某种原则逐个选择死锁进程进行撤消,直到解除系统死锁。

        按照某种原则逐个剥夺进程资源,直到解除死锁

## 第3、4方法需要选择代价最小的进程:花费时间最少、产生输出最少、未执行部分最多、以获得资源最少、优先级最低  ##

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对考试很有帮助的.......... 《计算机操作系统》期末复习指导 第一章 计算机操作系统概述 1、操作系统的概念 操作系统(Operating System,OS),是一种软件,属于系统软件; 1、科普的观点 操作系统是计算机系统的管理和控制中心,它依照设计者制定的各种调度策略组织和管理计算机系统资源,使之能高效地运行。 2、功能的观点 操作系统是一个计算机资源管理系统,它负责计算机系统的全部资源的分配、控制、调度和回收。 3、用户的观点 操作系统是计算机与用户之间的接口,用户通过这种接口使用计算机。 4、软件的观点 操作系统是程序和数据结构的集合。 5、管理的观点 操作系统是计算机硬件和软件资源的合理而协调的管理者。 6、 操作系统是一个大型的程序系统,它负责计算机的全部软、硬件资源的分配、调度工作,控制并协调并发活动,实现信息的存取和保护。它提供用户接口,使用户获得良好的工作环境。操作系统使整个计算机系统实现了高效率和高度自动化。 2、操作系统的生成和五大类型 生成:产生最适合自己工作环境的OS内核(kernel)。既方便用户,又使系统开销尽量小;生成的配置过程如UNIX中newconfig命令;DOS中config.sys文件;维护由系统管理员负责。 操作系统的五大类型是批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统。 多道程序设计:即在系统内(内存)同时存放并运行几道相互独立的程序。 多道程序设计的基础:是将运行过程进一步细化成几个小的步骤,从而实现宏观上的并行。但从微观上看,内存中的多道程序轮流地或分时地占用处理机,交替执行。 多道程序系统 ≠ 多重处理系统 ≠ 多用户 ≠ 多终端 多道是指内存中驻留多个程序或一个程序的多个程序段,因此,多用户系统一定是采用多道技术。而多道系统不一定是多用户系统。多重处理系统一般指多CPU系统。当然,一个CPU的系统采用分时技术可以为多用户服务。多用户的关键技术是在用户之间要有保密保安措施。终端指用户使用的硬件设备,即使一个终端也可为多用户使用,例如,银行的自动取款机(ATM)。 •分时与实时 分时技术:把CPU的时间分成很短的时间片(例如,几十至几百毫秒)工作。随着时间片的时间减少,对换时间所占的比例随之增大。随着用户数目的不断增加,这种矛盾会越来越突出。 实时是指计算机对于外来信息能够以足够快的速度进行处理,并在被控对象允许的时间范围内做出快速反应。交互作用能力较差。 3、操作系统的五大功能 •作业管理:包括任务管理、界面管理、人机交互、图形界面、语音控制和虚拟现实等; •文件管理:又称为信息管理; •存储管理:实质是对存储“空间”的管理,主要指对内存的管理; •设备管理:实质是对硬件设备的管理,其中包括对输入输出设备的分配、启动、完成和回收; •进程管理:又称处理机管理,实质上是对处理机执行“时间”的管理,即如何将CPU真正合理地分配给每个任务。 4、表征操作系统的属性 主要有:响应比,并发性,信息的共享、保密与保护,可扩充性、可移植性、可读性、可“生成”性,安全可靠性,可测试性等。 第二章 用户与操作系统的接口 1、基本概念 作业(Job)是让计算机完成一件事或任务,可大可小,可多可少。 作业步(Job steps) :作业顺序执行的工作单元。 作业流(Job Stream) :作业步的控制流程。 作业类别:终端交互作业、批处理作业。 2、用户界面 三代用户界面: •第一代用户界面:操作命令和系统调用在一维空间(命令行界面); •第二代用户界面:图形界面在二维空间(图形界面); •第三代用户界面:虚拟现实在三维空间(虚拟现实的界面元素)。 3、传统的人机接口 •操作命令 联机(键盘操作命令)、脱机(作业控制语言) 用户组合自编(Shell语言):DOS Shell;UNIX ;BShell、CShell等 •系统调用(System Call) 4、作业输入输出方式 •输入输出方式:脱机、直接耦合(交互联机) •SPOOLing:联机外围同时操作,假脱机(排队转储,设备虚拟技术) 5、作业调度 •作业调度的功能: (1)采用JCB(作业控制块)表格,记录各作业状况; (2)按选定的算法,从后备作业队列中选出一部分(多道)或一个作业投入运行; (3)为被选中的作业做好运行前的准备工作。例如建立相应的执行进程和分配系统资源; (4)作业运行结束的善后处理工作。 •作业调度算法: (1)先来先服务(FCFS) 作业平均周转时间=∑(作业完成时刻i-作业提交时刻i)/n个作业 (2)最短作业优先:在作业内容参差很不均衡时有合理性 (3)“响应比”最高的优先 “响应(系数)比”:作业响应时间(等待和运行)/作业运行时间 (4)定时轮转法(按时间片):适合作业不定的情况 (5)优先数法:急事先办的原则 第三章进程及处理机管理 1、为什么要引入“进程” (1)进程调度属于低级处理机管理,即确定系统中哪个进程将获得CPU;而作业调度属于高级处理机管理,即确定系统中哪些作业将获得CPU。 (2)进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。 (3)引入进程的意义是描述多道程序设计系统中程序的动态执行过程。 2、进程的定义及特征 (1)程序和进程的区别 (2)进程的五个基本特征:动态性、并发性、独立性、制约性、结构性 3、进程调度 (1)进程的三个基本状态及转换 三个基本状态是等待、执行和就绪,在一定的条件下,进程的状态将发生转换。 (2)进程调度算法 主要有先来先服务(FCFS)、时间片轮转法、多级反馈轮转法、优先数法。 (3)进程控制块(PCB)是进程存在的唯一标志,它描述了进程的动态性。 4、进程通信 (1)进程的同步与互斥 一般来说同步反映了进程之间的协作性质,往往指有几个进程共同完成一个任务时在时间次序上的某种限制,进程相互之间各自的存在及作用,通过交换信息完成通信。如接力比赛中一组队员使用接力棒等。 进程互斥体现了进程之间对资源的竞争关系,这时进程相互之间不一定清楚其它进程情况,往往指多个任务多个进程间的通讯制约,因而使用更广泛。如打篮球时双方挣抢篮板球等。 (2)临界区 并发进程中与共享资源有关的程序段定义为临界区。进入临界区的准则是:①一次只准一个进程进入临界区;②本进程结束负责通知下一进程;③进程调度,不能阻塞。 (3)原语 原语是不可中断的过程。 •加/开(LOCK/UNLOCK)原语 优点是实现互斥简单;缺点是效率很低。 •信号量(Semaphore)及PV操作 PV操作能够实现对临界区的管理要求。它由P操作原语和V操作原语组成,对信号量进行操作,具体定义如下: P(S):①将信号量S的值减1,即S=S-1; ②如果S 0,则该进程继续执行;否则该进程置为等待状态,排入等待队列。 V(S):①将信号量S的值加1,即S=S+1; ②如果S>0,则该进程继续执行;否则释放队列中第一个等待信号量的进程。 信号量的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。信号量的值与相应资源的使用情况有关。当它的值大于0时,表示当前可用资源的数量;当它的值小于0时,其绝对值表示等待使用该资源的进程个数。注意信号量的值仅能由PV操作来改变。 一般来说,信号量S 0时,S表示可用资源的数量。执行一次P操作意味着请求分配一个单位资源,因此S的值减1;当S<0时,表示已经没有可用资源,请求者必须等待别的进程释放该类资源,它才能运行下去。而执行一个V操作意味着释放一个单位资源,因此S的值加1;若S 0,表示有某些进程正在等待该资源,因此要唤醒一个等待状态的进程,使之运行下去。 •消息缓冲通信原语 高级通信原语,用于一组信息发送(Send)与读取(Read)。 5、 (1)的概念 是两个或两个以上的进程中的每一个,都在等待其中另一个进程释放资源而被封,它们都无法向前推进,称这种现象为现象。 产生的原因是共享资源有限,多个进程对共享资源的竞争,而且操作不当。 (2)产生的四个必要条件是资源互斥使用、保持和等待、非剥夺性、循环等待。 (3)解决的方法 一般有的预防,即破坏产生的四个必要条件中的一个或多个,使系统绝不会进入状态;的避免,即在资源动态分配的过程中使用某种办法防止系统进人状态;和允许系统产生,然后使用检测算法及时地发现并解除它。 安全状态、安全系列、银行家算法等 第四章 存储管理 1、存储管理使用的基本概念 •逻辑地址与物理地址 在具有地址变换机构的计算机中,允许程序中编排的地址和信息实际存放在内存中的地址有所不同。前者叫逻辑(相对)地址,后者叫物理(绝对)地址。 •重定位:将逻辑地址转换为物理地址。 •虚拟存储管理 虚存是由操作系统调度,采用内外存的交换技术,各道程序在必需使用时调入内存,不用的调出内存,这样好象内存容量不受限制。 虚存的特点: (1)虚存容量不是无限的,极端情况受内存和外存可利用的总容量限制; (2)虚存容量还受计算机总线地址结构限制; (3)速度和容量的“时空”矛盾,虛存量的“扩大”是以牺牲CPU工作时间以及内外存交换时间为代价的。 •存储管理的目的及功能 目的是方便用户,提高内存资源的利用率,实现内存共享。 功能主要有内存的分配和管理、内存的扩充技术、内存保护技术 2、分区分配存储管理 分为固定分区、可变分区、可重定位分区、多重分区。 内存“扩充”技术: •交换:由操作系统做,用户不知道。 •覆盖:由用户控制,操作系统提供覆盖机制。 内存保护技术: ---保护系统工作区和用户作业区,特别是如何防止系统区被破坏。方法有存储保护键、界限寄存器 3、请求页式存储管理 (1)页式存储管理实现原理 基于程序在运行时不需要一开始都装入内存(局部性原理),更不应该把最近较长一段时间内不用的程序装入内存。 (2)页表的作用是将逻辑页号转换为物理块号。 (3)页面淘汰算法 先进先出算法(FIFO)、循环检测法、最近最少使用页面先淘汰(LRU)、最不经常使用的页面先淘汰(LFU)、最近没有使用页面先淘汰(NUR)、最优淘汰算法(OPT)等。 (4)页式存储管理的优、缺点 优点: •虛存量大,适合多道程序运行,用户不必担心内存不够的调度操作; •内存利用率高,不常用的页面尽量不留在内存; •不要求作业连续存放,有效地解决了“碎片”问题。与分区式相比,不需移动作业;与多重分区比,无零星碎片产生。 缺点: •要处理页面中断、缺页中断处理等,系统开销较大; •有可能产生“抖动”; •地址变换机构复杂,为提高速度采用硬件实现,增加了机器成本。 4、段式、段页式存储管理 段式、页式存储管理的对比。 段页式存储管理特点: •每一段分若干页,再按页式管理,页间不要求连续; •用分段方法分配管理作业,用分页方法分配管理内存; •兼有段式和页式管理的优点,系统复杂和开销增大,一般在大型机器上才使用。 第五章文件管理 1、文件管理任务与功能 任务:把存储、检索、共享和保护文件的手段,提供给操作系统本身和用户,以达到方便用户和提高资源利用率的目的。 功能: ---分配与管理外存 ---提供合适的存储方法 ---文件共享、保护,解决命名冲突 文件组织结构:文件、文件元素、文件系统 •文件系统 = 文件管理程序(文件和目录的集合)+ 它所管理的全部文件; •文件系统是用户与外存的接口; •为用户提供统一方法(以数据记录的逻辑单位),访问存储在物理介质上的信息。 2、文件分类 (1)按文件性质与用途分:系统文件、库文件、用户文件 (2)按操作保护分:只读文件、可读可写文件、可执行文件 (3)按使用情况分:临时文件、永久文件、档案文件 (4)按用户观点分:普通文件、目录文件、特殊文件 (5)按存取的物理结构分:顺序(连续)文件、链接文件、索引文件 (6)按文件的逻辑存储结构分:有结构文件、无结构文件 (7)按文件中的数据形式分:源文件、目标文件 3、文件的逻辑结构和物理结构 •文件的逻辑结构 ---从用户观点看 ---按文件名及记录号存取文件,是一维、连续的字符序列,方便存储、检索或加工 ---文件由若干个逻辑记录组成,并加以命名或编号 •文件的物理结构 又称文件的存储结构,是指文件在外存上的存储组织形式,是与存储介质的存储性能有关; 空闲空间的管理方法主要有:空闲表法、空闲(自由)链表法、成组链接法 4、文件目录 (1)文件目录分类:一级文件目录、二级文件目录、多级文件目录 (2)文件目录的管理 •目录做成文件,文件系统便于内部统一管理,目录文件在使用时调入内存; •在操作系统中,大量采用“表格”管理。 5、文件存取控制 •解决文件保护、保密和共享 •常用的文件存取控制方法有:存取控制矩阵、用户权限表、使用口令、使用密码 6、文件系统的数据结构和表示 UNIX或Linux操作系统中文件系统的主要特点 (1)操作系统文件的目录组织是一个树形结构,从根结点到叶子称为文件的全路径名,文件可以由其全路径名唯一确定; (2)文件本身是无结构的字符流; (3)把外部设备的特殊文件和普通文件以及目录文件都统一在文件这一概念上,对于一般文件的访问、共享和保护方式也可以适用于外部设备。 第六章 输入输出设备管理 1、设备管理的任务和功能 •设备管理的任务 (1)按用户需求提出的要求接入外部设备,系统按一定算法分配和管理控制,而用户不必关心设备的实际地址和控制指令; (2)尽量提高输入输出设备的利用率,例如发挥主机与外设以及外设与外设之间的真正并行工作能力。 •设备管理的功能 (1)分配设备 (2)控制和实现真正的输入输出操作 (3)对输入输出缓冲区进行管理 (4)在一些较大系统中实现虚拟设备技术 2、外部设备分类 (1)按系统和用户分:系统设备、用户设备 (2)按输入输出传送方式分(UNIX或Linux操作系统):字符型设备、块设备 (3)按资源特点分:独享设备、共享设备、虚拟设备 (4)按设备硬件物理特性分:顺序存取设备、直接存取设备 (5)按设备使用分:物理设备、逻辑设备、伪设备 •设备I/O方式:询问、通道、中断 •I/O设备分配算法:先来先服务(FCFS)、按优先级进行分配 3、设备管理技术 (1)I/O设置缓存理由 •解决信息的到达率和离去率不一致的矛盾; •缓存起中转站的作用; •使得一次输入的信息能多次使用; •在通道或控制器内设置局部寄存器作为缓冲存储器,可暂存I/O信息,以减少中断CPU的次数。这种情形可进一步推广,使得一次读入的信息可多次重复使用。 (2)虚拟设备的技术(SPOOLing) SPOOLing,即外围设备联机并行操作,它是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常也叫做“假脱机技术”。是一种预输入、缓输出和转储的管理技术. SPOOLing系统的特点: •提高了I/O速度; •将独享设备改造为共享设备(典型例子是打印机的“共享”); •实现了虚拟设备功能。 4、设备处理程序编制内容 •设备驱动程序的功能 (1)将接收到的抽象要求转换为具体要求; (2)检查用户I/O请求的合法性,了解I/O设备的状态,传递有I/O关参数,设置设备的工作方式; (3)发出I/O命令,启动分配到的I/O设备,完成指定的I/O 操作; (4)及时响应由控制器或通道发来的中断请求,并根据其中断类型调用相应的中断处理程序进行处理; (5)对于设置有通道的计算机系统,驱动程序还应能够根据用户的 I/O请求,自动地构成通道程序。 •设备驱动程序的特点 (1)驱动程序主要是在请求I/O的进程与设备控制器之间的一个通信程序。 (2)驱动程序与I/O设备的特性紧密相关。 (3)驱动程序与I/O控制方式紧密相关。 (4)由于驱动程序与硬件紧密相关,因而其中的一部分程序用汇编语言书写,目前有很多驱动程序,其基本部分已经固化,放在ROM中。 •设备处理方式 (1)将抽象要求转换为具体要求 (2)检查I/O请求的合法性 (3)读出和检查设备的状态 (4)传送必要的参数 (5)方式的设置和I/O设备启动 难点分析 •如何理解操作系统在计算机系统中的地位? 操作系统是软件,而且是系统软件。它在计算机系统中的作用,大致可以从两方面体会:对内,操作系统管理计算机系统的各种资源,扩充硬件的功能;对外,操作系统提供良好的人机界面,方便用户使用计算机。它在整个计算机系统中具有承上启下的地位。 •系统调用与一般过程调用的区别。 系统调用在本质上是一种过程调用,但它是一种特殊的过程调用,它与一般过程调用的主要区别如下: (1)运行状态不同。一般的过程调用,其调用和被调用过程都是用户程序,它们都运行在同一系统状态下;而系统调用的调用过程是用户程序,它运行在用户态,其被调用过程是系统过程,运行在系统态。 (2)进入方式不同。一般过程调用可以直接通过过程调用语句将控制转移到被调用过程;而执行系统调用时,由于调用和被调用过程处于不同系统状态,必须通过访管中断进入。 (3)代码层次不同。一般过程调用中的被调用程序是用户级程序,而系统调用是操作系统中的代码程序,是系统级程序。 •下表给出作业l、2、3的提交时间和运行时间。采用先来先服务调度算法和短作业优先调度算法,试问平均周转时间各为多少?(时间单位:小时,以十进制进行计算。) 解:采用先来先服务调度策略,则调度顺序为l、2、3。  平均周转时间T=(8+11.6+12)/3=10.53 采用短作业优先调度策略,则调度顺序为l、3、2。  平均周转时间T=(8+8+12.6)/3=9.53 •试述文件管理系统设置打开文件、关闭文件命令的原因。 解:操作系统需要处理大量用户文件,而访问一个文件需要查询目录,有时甚至需要多次查询目录。由于文件目录与文件一起存放在辅存上,当存取文件时,必须先到辅存中读取文件目录信息,从中获得文件的存放地址,然后再去存取文件。这样一来,文件信息的存取将花费很多时间。如果将整个文件目录放入主存,虽然可以提高存取速度,但这需要占用大量主存空间,显然这也是不可取的。 实际上,在一段时间内使用的文件数总是有限的,因此只要将目录中当前要使用的那些文件的目录表目复制到内存中就可以了。这样既不占用太多的主存空间,又可显著提高查询文件目录的速度。为此,大多数操作系统中设置了两个文件操作:打开文件和关闭文件。 打开文件操作完成的功能是将文件的有关目录信息复制到主存活动文件表中,以建立用户和这个文件的联系。关闭文件操作的功能是用户宣布这个文件当前不再使用,系统将其在主存中的相应目录信息删去,因而也就切断了用户同这个文件的联系。 •有一个文件系统如图(a)所示,图中的框表示目录,圈表示普通文件。根目录常驻内存,目录文件组织成链接文件,不设文件控制块,普通文件组织成索引文件。目录表目指示下一级文件名及其磁盘地址(各占2个字节,共4个字节)。若下级文件是目录文件,指示其第一个磁盘块地址。若下级文件是普通文件,指示其文件控制块的磁盘地址。每个目录文件磁盘块最后4个字节供拉链使用。下级文件在上级目录文件中的次序在图中为从左至右。每个磁盘块有512字节,与普通文件的一页等长。 普通文件的文件控制块组织结构如图(b)所示,其中每个磁盘地址占2个字节,前10个地址直接指示该文件前10页的地址。第11个地址指示一级索引表地址,一级索引表中每个磁盘地址指示一个文件页地址;第12个地址指示二级索引表地址,二级索引表中每个地址指示一个一级索引表地址;第13个地址指示三级索引表地址,三级索引表中每个地址指示一个二级索引表地址。问: (1)一个普通文件最多可有多少个文件页? (2)若要读文件J中的某一页,最多启动磁盘多少次? (3)若要读文件W中的某一页,最少启动磁盘多少次? 答:(1)由题目中所给条件可知,磁盘块大小为512字节,每个磁盘地址占2个字节。因此,一个一级索引表可容纳256个磁盘地址。同样地,一个二级索引表可容纳256个一级索引表地址,一个三级索引表可容纳256个二级索引表地址。这样,一个普通文件最多可有页数为:10+256+256×256+256×256×256=16843018 (2)从图(a)中可以看出,目录文件A和目录文件D中的目录项都只有两个,因此这两个目录文件都不需要拉链。若要读文件J中的某一项,首先从内存的根目录中找到目录文件A的磁盘地址,将其读入内存(第1次访问磁盘)。然后再从目录A中找出目录文件D的磁盘地址,并将其读入内存(第2次访问磁盘)。从目录D中找出文件J的文件控制块地址,将文件J的文件控制块读入内存(第3次访问磁盘)。在最坏情况下,要访问页的磁盘地址需通过三级索引才能找到,这时要三次访问磁盘才能将三级索引表读入内存(第4、5、6次访问磁盘)。最后读入文件J中的相应页(第7次访问磁盘)。 由此可知,若要读文件J中的某一页,最多启动磁盘7次。 (3)从图(a)中可以看出,目录文件C和目录文件U中,目录项数目较多,若目录项数超过127(512/4-l=127),则目录文件的读入可能需要多次磁盘读(因目录文件组织成链接文件)。在最好情况下,所找的目录项都在目录文件的第一个磁盘块中。若要读文件W中的某一页,首先从内存的根目录中找到目录文件C的磁盘地址,将其读入内存(第1次访问磁盘)。在最好情况下,能从目录C的第一个磁盘块中找出目录文件互的磁盘地址,并将其读入内存(第2次访问磁盘)。从目录I中找出目录文件P的的磁盘地址,将其读入内存(第3次访问磁盘)。从目录P中找到目录文件U的磁盘地址,将其读入内存(第4次访问磁盘)。在最好情况下,能从目录U的第一个磁盘块中找出文件W的文件控制块地址,将文件W的文件控制块读入内存(第5次访问磁盘)。在最好情况下,要访问的页在前10页中,这时可直接得到该页的磁盘地址。最后读入文件W中的相应页(第6次访问磁盘)。 由此可知,若要读文件W中的某一页,最少启动磁盘6次。 •采用可变分区管理存储空间时,若主存中按地址顺序依次有五个空闲区,大小分别为15K、28K、10K、226K、110K。现有五个作业J1到J5,它们所需的主存空间依次是10K、15K、102K、26K、180K。问如果采用首次适应分配算法,能否把这五个作业按J1到J5的次序全部装入主存。使用哪种分配算法装入这五个作业,可使主存的利用率最高? 解:按首次适应分配算法,不能把这五个作业全部依次装入主存。这时J1、J2装入第1、2个空闲区,J3、J4装入第4、5个空闲区,J5有180K,无法装入仅有的10K空闲区。 能使主存利用率最高的是采用最佳适应分配算法。这时,这五个空闲块分别装入作业J2、J4、J1、J5、J3。 •某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下: 请计算逻辑地址0A5C(H)所对应的绝对地址。 解:页式存储管理的逻辑地址分为两部分:页号和页内地址。由已知条件“用户编程空间共32个页面”,可知页号部分占5位;由“每页为1KB”,1K=210,可知内页地址占10位。由“内存为16KB”,可知有16块,块号为4位。 逻辑地址0A5C(H)所对应的二进制表示形式是:000 1010 0101 1100 ,根据上面的分析,下划线部分为页内地址,编码 “000 10” 为页号,表示该逻辑地址对应的页号为2。查页表,得到物理块号是4(十进制),即物理块地址为:01 00 ,拼接块内地址10 0101 1100,得01 0010 0101 1100,即125C(H)。 •某采用页式存储管理的系统,接收了一个共7页的作业,作业执行时依次访问的页为:1、2、3、4、2、1、5、6、2、1、2、3、7。当内存块数量为4时,请分别用先进先出(FIFO)调度算法和最近最少使用(LRU)调度算法,计算作业执行过程中会产生多少次缺页中断?写出依次产生缺页中断后应淘汰的页。(所有内存开始时都是空的,凡第一次用到的页面都产生一次缺页中断。要求写出计算过程) 解:(1)采用先进先出(FIFO)调度算法,页面调度过程如下: 所以,共产生10次缺页中断,依次淘汰的页是1、2、3、4、5、6。 (2)采用最近最少使用(LRU)调度算法,页面调度过程如下: 因此,共产生8次缺页中断,依次淘汰的页是3、4、5、6。 •试述分页式存储管理系统和分段式存储管理系统的主要区别。 解:分页和分段有许多相似之处,比如两者都不要求作业连续存放。但在概念上两者完全不同,主要表现在以下几个方式: (1)页是信息的物理单位,分页是为了实现非连续分配,以便解决内存碎片问题,或者说分页是由于系统管理的需要。段是信息的逻辑单位,它含有一组意义相对完整的信息,分段的目的是为了更好地实现共享,满足用户的需要。 (2)页的大小固定,由系统确定,将逻辑地址划分为页号和页内地址是由机器硬件实现的。而段的长度却不固定,决定于用户所编写的程序,通常由编译程序在对源程序进行编译时根据信息的性质来划分。 (3)分页的作业地址空间是一维的。分段的地址空间是二维的。 •为什么说有了通道技术和中断技术才真正做到了CPU与外设的并行操作? 解:通道是负责外围设备与主存之间进行数据交换,能单独完成输入输出操作的处理机。有了通道,主存和外围设备之间的数据交换就不要CPU干预了,CPU可以做与输入输出无关的其他工作,从而使计算机系统获得了CPU与外围设备之间并行工作的能力。 I/O中断是通道和CPU协调工作的一种手段。如果没有中断技术,CPU就要不断去查询通道以及设备执行的情况,这样一来,CPU还是把大量的时间花在了查询上,不能很好地为其他进程服务。使用中断技术,CPU可以完全不管通道和设备的执行情况,因为无论操作正常结束或操作异常结束,通道都会发出中断,通知CPU来处理。 综上所述,通道技术和中断技术的出现,使得主存可以直接与外设交换数据,而CPU得以并行地工作,大大提高了CPU的使用效率。 •某分时系统的进程出现如图所示的状态变化。 试问:(1)你认为该系统采用的是何种进程调度算法? (2)把图中所示的六个状态变化的原因写出来。 解:(1)该分时系统采用的进程调度算法是时间片轮转法。 (2)①进程被选中,变成运行态;②时间片到,运行的进程排入就绪队列尾部;③运行的进程启动打印机,等待打印;④打印工作结束,等待的进程排入就绪队列尾部;⑤等待磁盘读文件工作;⑥磁盘传输信息结束,等待的进程排入就绪队列尾部。 •怎样理解操作系统的作业调度和进程调度的关系? 解:作业调度和进程调度都属于处理机调度。作业调度处理机管理的高级形式,它的主要功能是审查系统是否能满足用户作业的资源要求以及按照一定的算法来选取作业。进程调度处理机管理的低级形式,它的主要功能是根据一定的算法将CPU分派给就绪队列中的一个进程。 作业的状态及其转换 操作系统中作业的状态主要有:提交、后备、执行、完成,进程的状态主要有等待、就绪、执行。作业调度和进程调度的转换关系见下图。 •用PV操作实现进程间的同步与互斥应该注意什么? 解:用PV操作实现进程间的同步与互斥,应该注意以下四方面问题: (1)对每一个共享资源都要设立信号量。互斥时对一个共享资源设立一个信号量;同步时对一个共享资源可能要设立两个或多个信号量,要视由几个进程来使用该共享变量而定。 (2)互斥时信号量的初值一般为1;同步时至少有一个信号量的初值大于等于1。 (3)PV操作一定要成对调用。互斥时在临界区前后对同一信号量作PV操作;同步时则对不同的信号量作PV操作,PV操作的位置一定要正确。 (4)对互斥和同步混合问题,PV操作可能会嵌套,一般同步的PV操作在外,互斥的PV操作在内。 三、课程练习及参考解答 一、填空 1、设备I/O方式有如下三种:_________、__________和___________。 2、文件存取方式按存取次序通常分_________________、_______________,还有一类 ______________。 3、从用户观点看,UNIX系统将文件分三类:___________________、___________________和 _________________。 4、引起的四个必要条件是 、________________、 和__________________。 5、进程的三个最基本状态是_____________、____________和_____________。 6、传统操作系统提供编程人员的接口称为________________。 7、三代人机界面的发展是指:______________、_________________和_______________。 8、常用的进程调度算法有_________________、_________________和___________________。 二、选择一个正确答案的序号填入括号中 1、计算机操作系统是一个( )。 A. 应用软件 B. 硬件的扩充 C. 用户软件 D.系统软件 2、操作系统程序结构的主要特点是( )。 A. 一个程序模块 B. 分层结构 C. 层次模块化结构 D. 子程序结构 3、面向用户的组织机构属于( )。 A. 虚拟结构 B. 逻辑结构 C. 实际结构 D. 物理结构 4、操作系统中应用最多的数据结构是( )。 A. 堆栈 B. 队列 C. 表格 D. 树 5、可重定位内存分区分配目的为( )。 A. 解决碎片问题 B. 便于多作业共享内存 C. 回收空白区方便 D. 摆脱用户干预 6、逻辑地址就是( )。 A. 用户地址 B. 相对地址 C. 物理地址 D.绝对地址 7、原语是( )。 A. 一条机器指令 B. 若干条机器指令组成 C. 一条特定指令 D. 中途能打断的指令 8、索引式(随机)文件组织的一个主要优点是( )。 A. 不需要链接指针 B. 用户存取方便 C.回收实现比较简单 D.能实现物理块的动态分配 9、几年前一位芬兰大学生在Internet上公开发布了以下一种免费操作系统核心( ),经过许多人的努力,该操作系统正不断完善,并被推广。 A. Windows NT B. Linux C. UNIX D. OS2 10.文件目录的主要作用是( )。 A. 按名存取 B.提高速度 C.节省空间 D.提高外存利用率 11、某进程在运行过程中需要等待从磁盘上读入数据,此时该进程的状态是( )。 A. 从就绪变为运行 B.从运行变为就绪 C. 从运行变为阻塞 D.从阻塞变为就绪 12、把逻辑地址转变为内存的物理地址的过程称作( )。 A.编译 B.连接 C.运行 D.重定位 13、进程和程序的一个本质区别是( )。 A.前者分时使用CPU, 后者独占CPU B.前者存储在内存,后者存储在外存 C.前者在一个文件中,后者在多个文件中 D.前者为动态的,后者为静态的 三、是非题,正确的在括号内划√,错的划×。 ( )1、进程间的相互制约关系体现为进程的互斥和同步。 ( )2、只有一个终端的计算机无法安装多用户操作系统。 ( )3、UNIX的最大特点是分时多用户、多任务和倒树型文件结构。 ( )4、常用的缓冲技术有双缓冲,环形缓冲和缓冲池。 ( )5、实时操作系统的响应系数最小,设备利用率最差。 ( )6、是指两个或多个进程都处于互相等待状态而无法继续工作。 ( )7、具有多道功能的操作系统一定是多用户操作系统。 ( )8、一般的分时操作系统无法做实时控制用。 ( )9、多用户操作系统在单一硬件终端硬件支持下仍然可以工作。 ( )10、常用的缓冲技术是解决慢速设备与快速CPU处理之间协调工作。 四、回答题 1、试以生产者——消费者问题说明进程同步问题的实质。 2、以一台打印机为例,简述SPOOLing 技术的优点。 3、简述请求页式存储管理的优缺点。 4、虚拟存储器的基本特征是什么?虚拟存储器的容量主要受到什么限制? 5、现代操作系统与传统操作系统相比,设计中采用了哪些先进技术? 练习参考解答 一、填空 1、询问、中断、通道 2、顺序存取、直接存取、按键索引 3、普通(用户)、目录、特殊 4、互斥使用、保持和等待、非剥夺性、循环等待 5、准备(就绪)、执行、等待 6、系统调用 7、一维命令行、二维图形界面、三维虚拟现实 8、先来先服务、优先数法、轮转法 二、选择题 1、D 2、C 3、B 4、C 5、A 6、B 7、B 8、D 9、B 10、A 11、C 12、D 13、D 三、是非题 有错误的是第2、5、7题,其余均是正确的。 四、回答题 1、答:一个生产者,一个消费者和一个产品之间关系是典型的进程同步问题。设信号量S为仓库内产品,P-V操作配对进行缺一不可。生产者进程将产品放入仓库后通知消费者可用;消费者进程在得知仓库有产品时取走,然后告诉生产者可继续生产。 2、答:以一台打印机为例, SPOOLing 技术的主要优点是在多用户情况下,每一个用户使用打印机就好像自己拥有一台打印机。不会产生打印机“忙”而等待。 3、答:优点: (1)虛存量大,适合多道程序运行,用户不必担心内存不够的调度操作。动态页式管理提供了内存与外存统一管理的虚存实现方式。 (2)内存利用率高,不常用的页面尽量不留在内存。 (3)不要求作业连续存放,有效地解决了“碎片”问题。与分区式比,不需移动作业;与多重分区比,无零星碎片产生。UNIX操作系统较早采用。 缺点: (1)要处理页面中断、缺页中断处理等,系统开销较大。 (2)有可能产生“抖动”。 (3)地址变换机构复杂,为提高速度采用硬件实现,增加了机器成本。 4、答:虚存是由操作系统调度,采用内外存的交换技术,各道程序在必需使用时调入内存,不用的调出内存,这祥好像内存容量不受限制。但要注意: (1)虚存容量不是无限的,极端情况受内存、外存的可使用的总容量限制; (2)虚存容量还受计算机总线长度的地址结构限制; (3)速度和容量的“时空”矛盾,虛存量的“扩大”是以牺牲CPU工作时间以及内、外存交换时间为代价的。 5、答:现代操作系统是指网络操作系统和分布式操作系统,采用了网络地址方案、网络协议、路由技术和微内核等先进技术。
第1章 操作系统概述     【掌握】   1. 操作系统的概念   操作系统是控制和管理计算机系统内各种硬件和软件资源、有效地组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口。   记忆要点:操作系统是什么——是系统软件;   操作系统管什么——控制和管理计算机系统内各种资源;   操作系统有何用——扩充硬件功能,方便用户使用。  功能   操作系统的五大主要功能:存储管理、进程和处理机管理、文件管理、设备管理、用户接口管理。   【理解】   1.操作系统的特征:并发、共享和异步性。   理解模拟:并发——“大家都前进了”;   共享——“一件东西大家用”;   异步性——“你走我停”,“走走停停”。   2.操作系统的主要类型   操作系统的主要类型有:多道批处理系统、分时系统、实时系统、网络操作系统、个人机操作系统、分布式系统和嵌入式操作系统。   UNIX系统是著名的分时系统。   3.分时概念:主要是指若干并发程序对CPU时间的共享。   【了解】   1.操作系统的形成;   2.分时和实时操作系统的特点,见教材16页;   3.操作系统在计算机系统中的地位:是裸机之上的第一层软件,是建立其他所有软件的基础。   4.操作系统结构设计:整体结构、层次结构、虚拟机结构和客户机-服务器结构。   5.操作系统为用户提供的三种用户接口:图形用户接口、命令行接口和程序接口。   系统调用是操作系统内核与用户程序、应用程序之间的接口。在UNIX/Linux系统,系统调用以C函数的形式出现。 第2章 进程管理   考核学生对进程定义、进程的状态及其转换、进程的组成、竞争条件和临界区、进程的同步与互斥、信号量和P、V操作及其一般应用、的概念和产生的必要条件等的内容学习情况。   【掌握】   1.进程的定义:进程是程序在并发环境中的执行过程。   进程与程序的主要区别。进程最基本的属性是动态性和并发性。   2.进程的状态及其转换   进程的3种基本状态是:运行态、就绪态和阻塞态。掌握教材33页的进程状态及其转换图。   3.进程的同步与互斥的概念。可以简单理解为:同步是协作,互斥是竞争。   4.信号量和P、V操作及其一般应用。   运用信号量机制和P、V操作,解决并发进程一般的互斥和同步问题。解决此类问题的一般方式:   (1)根据问题给出的条件,确定进程有几个或几类;   (2)确定进程间的制约关系——是互斥,还是同步;   (3)各相关进程间通过什么信号量实现彼此的制约,标明信号量的含义和初值;   (4)用P、V操作写出相应的代码段;   (5)验证代码的正确性:设以不同的次序运行各进程,是否能保证问题的圆满解决。切忌按固定顺序执行各进程。   【理解】   1.多道程序设计概念及其优点。   2.进程的一般组成,应深入理解进程控制块的作用。每个进程有惟一的进程控制块。   3.Linux进程管理的基本命令:ps、kill、sleep。   4.理解进程临界资源和临界区的概念,进程进入临界区的调度原则。信号量概念,P、V操作执行的动作。   5.的概念;的4个必要条件:互斥条件、不可抢占条件、占有且申请条件、循环等待条件。   【了解】   1.Linux进程结构,见教材41页图。   2.进程间的3种高级通信:共享内存、管道文件和消息传递。 第3章 处理机调度   考核学生对作业状态、作业调度和进程调度的功能、性能评价标准、常用调度算法、Linux常用调度命令、中断处理过程、shell命令执行过程等内容的学习情况。   【掌握】   1.作业调度和进程调度的功能   作业调度的功能见教材73页,进程调度的功能见教材74页。在一般操作系统中,进程调度是必须具备的。   2.常用调度算法   掌握三种基本调度算法(先来先服务法、时间片轮转法、优先级法)的实现思想,并能进行评价指标的计算。   要求:能利用图表形式列出各作业或进程的有关时间值,如到达时间、运行时间、开始时间、完成时间等,利用评价公式计算出各指标的值,如周转时间、带权周转时间、平均周转时间、平均带权周转时间。   【理解】   1.作业的四种状态:提交、后备、执行和完成。   2.作业调度与进程调度的关系,见教材75页。简单比喻:作业调度是演员上场前的准备,进程调度是让演员上场表演。   3.调度性能评价标准   评价调度算法的指标:吞吐量、周转时间、带权周转时间、平均周转时间和平均带权周转时间。   4.Linux系统的进程调度方式、策略和常用调度命令:nohup,at,batch,jobs,fg,bg。   5.中断处理过程:保存现场、分析原因、处理中断和中断返回。   6.shell命令的一般执行过程。   【了解】   1.调度的三个级别:高级调度、中级调度和低级调度,其中高级调度又称作业调度,低级调度又称进程调度。   2.调度策略的选择,见教材77页。   3.中断概念   中断是指CPU对系统发生的某个事件做出的一种反应,它使CPU暂停正在执行的程序,保留现场后自动执行相应的处理程序,处理该事件后,如被中断进程的优先级最高,则返回断点继续执行被“打断”的程序。 第4章 存储管理   考核学生对重定位、分区法、分页的概念、虚拟存储概念、请求分页存储管理技术、常用页面置换算法、Linux中的存储管理技术以及抖动等内容的学习情况。   【掌握】
1.操作系统概述 操作系统的形成,操作系统的定义与功能,操作系统的分类 2.处理机管理 多道程序设计技术,用户与操作系统的两种接口,进程的定义、特征和基本状态,进程控制块(PCB)和控制块队列(运行、就绪、阻塞),进程的各种调度算法(先来先服务、时间片轮转、优先数、多级队列),进程管理的基本原语(创建、撤消、阻塞、唤醒),作业与作业调度算法(先来先服务、短作业优先、响应比高者优先)。 3.存储管理 地址的静态重定位和动态重定位,单一连续区存储管理,固定分区存储管理,可变分区存储管理,空闲区的合并,分区的管理与组织方式(表格法、单链表法、双链表法),分页式存储管理,页表、快表及地址转换过程,内存块的分配与回收(存储分块表、位示图、单链表),虚拟存储器的概念,请求分页式存储管理,缺页与缺页中断位,缺页中断与页面淘汰,页面淘汰算法(先进先出、最近最久未用、最近最少用、最优),页面走向,缺页中断率,抖动,异常现象。 4.设备管理 计算机设备的分类(基于从属关系、基于分配特性、基于工作特性),记录间隙,设备管理的目标与功能,输入/输出的处理步骤,设备管理的数据结构(SDT、DCB、IVT),独享设备的分配,共享磁盘的调度算法(先来先服务、最短查找时间优先、电梯、单向扫描),设备控制器,数据传输的方式(循环测试、中断、直接存储器存取、通道),I/O的缓冲技术(单缓冲、双缓冲、多缓冲、缓冲池),虚拟设备,SPOOLing技术。 5.文件管理 文件,文件系统,文件的逻辑结构(流式文件、记录式文件),文件的物理结构(连续文件、串联文件、索引文件),文件的存取(顺序、随机),磁盘存储空间的管理(位示图、空闲区表、空闲块链),文件控制块(FCB),目录的层次结构(一级目录,二级目录、树型),主目录,根目录,绝对路径,相对路径,按名存取的实现,文件共享,文件保护,文件上的基本操作。 6.进程间的制约关系 与时间有关的错误,资源竞争——互斥,协同工作——同步,信号量,信号量上的P、V操作,用P、V操作实现互斥,用P、V操作实现同步,用P、V操作实现资源分配,产生的必要条件,的预防,的避免,的检测与恢复,银行家算法,进程间的高级通信。 7.操作系统实例分析 Windows操作系统,Linux操作系统,MS-DOS操作系统
目 录 第1 章 简介(1) 1.1 简介 1.1.1 简史 1.1.2 创始之初 1.1.3 繁衍 1.1.4 BSD 1.1.5 System V 1.1.6 商业化 1.1.7 Mach 1.1.8 标准 1.1.9 OSF 和UI 1.1.10 SVR4 及其之后 1.2 演变的动力 1.2.1 功能 1.2.2 网络 1.2.3 性能 1.2.4 硬件变化 1.2.5 改进质量 1.2.6 模式变化 1.2.7 其他应用领域 1.2.8 简洁就是美 1.2.9 灵活性 1.3 回顾与展望 1.3.1 UNIX 好在哪里 1.3.2 UNIX 的误区在哪儿 1.4 本书的范围 1.5 参考文献 第2 章 进程与内核(17) 2.1 简介 2.2 模式.空间和上下文 2.3 进程抽象 2.3.1 进程状态 2.3.2 进程上下文 2.3.3 用户凭证 2.3.4 u 区和proc 结构 2.4 内核态下运行 2.4.1 系统调用接口 2.4.2 中断处理 2.5 同步 2.5.1 阻塞操作 2.5.2 中断 2.5.3 多处理器 2.6 进程调度 2.7 信号 2.8 新进程和程序 2.8.1 fork 和exec 2.8.2 进程创建 2.8.3 fork 优化 2.8.4 执行一个新程序 2.8.5 进程终止 2.8.6 等待进程终止 2.8.7 僵尸(Zombie)进程 2.9 小结 2.10 练习 2.11 参考文献 第3 章 线程和轻量级进程(41) 3.1 简介 3.1.1 动机 3.1.2 多线程和多处理器 3.1.3 并发和并行 3.2 基本抽象概念 3.2.1 内核线程 3.2.2 轻量级进程 3.2.3 用户线程 3.3 轻量级进程设计——要考虑的问题 3.3.1 fork 的语义 3.3.2 其他的系统调用 3.3.3 信号传递和处理 3.3.4 可视性 3.3.5 堆栈增长 3.4 用户级线程库 3.4.1 编程接口 3.4.2 线程库的实现 3.5 调度器调用 3.6 Solaris 和 SVR4 的多线程处理 3.6.1 内核线程 3.6.2 轻量级进程的实现 3.6.3 用户线程 3.6.4 用户线程的实现 3.6.5 中断处理 3.6.6 系统调用处理 3.7 Mach 中的线程 3.7.1 Mach 的抽象概念——任务和线程 3.7.2 Mach 的C-threads 3.8 Digital UNIX 3.8.1 UNIX 接口 3.8.2 系统调用和信号 3.8.3 pthreads 线程库 3.9 Mach 3.0 的续体 3.9.1 编程模型 3.9.2 使用续体 3.9.3 优化 3.9.4 分析 3.10 小结 3.11 练习 3.12 参考文献 第4 章 信号和会话管理(72) 4.1 简介 4.2 信号生成和处理 4.2.1 信号处理 4.2.2 信号生成 4.2.3 典型情景 4.2.4 睡眠和信号 4·3 不可靠信号 4.4 可靠的信号 4.4.1 主要特性 4.4.2 SVR3 的实现 4.4.3 BSD 信号管理 4.5 SVR4 信号机制 4.6 信号机制的实现 4.6.1 信号生成 4.6.2 信号传递和处理 4.7 异常 4.8 Mach 中的异常处理 4.8.1 异常端口 4.8.2 错误处理 4.8.3 调试器的交互 4.8.4 分析 4.9 进程组和终端管理 4.9.1 基本概念 4.9.2 SVR3 模型 4.9.3 局限性 4.9.4 4.3BSD 中的进程组和终端 4.9.5 缺点 4.10 SVR4 会话的体系结构 4.10.1 目的(动机) 4.10.2 会话和进程组 4.10.3 数据结构 4.10.4 控制终端 4.10.5 4.4BSD 中会话的实现 4.11 小结 4.12 练习 4.13 参考文献 第5 章 进程调度(98) 5.1 简介 5.2 时钟中断处理 5.2.1 调出链表 5.2.2 报警 5.3 调度器的目标 5.4 传统的UNIX 调度 5.4.1 进程优先级 5.4.2 调度器的实现 5.4.3 运行队列管理 5.4.4 分析 5.5 SVR4 的调度器 5.5.1 类无关层 5.5.2 调度类的接口 5.5.3 分时类 5.5.4 实时类 5.5.5 系统调用priocntl 5.5.6 分析 5.6 Solaris2.x 调度的改善 5.6.1 抢占式内核 5.6.2 多处理器的支持 5.6.3 隐式调度 5.6.4 优先级逆转 5.6.5 优先级继承的实现 5.6.6 优先继承的局限性 5.6.7 Turnstiles 5.6.8 分析 5.7 mach 中的调度 5.7.1 多处理器的支持 5.8 Digital UNIX 的实时调度器 5.8.1 多处理器支持 5.9 其他的一些调度实现 5.9.1 fair share 调度 5.9.2 最终期限驱动调度 5.9.3 三级(Three-Level)调度器 5.10 小结 5.11 练习 5.12 参考文献 第6 章 进程间通信(130) 6.1 简介 6.2 通用IPC 方法 6.2.1 信号 6.2.2 管道 6.2.3 SVR4 的管道 6.2.4 进程跟踪 6.3 System V 的进程间通信 6.3.1 公共元素 6.3.2 信号量 6.3.3 消息队列 6.3.4 共享内存 6.3.5 讨论 6.4 Mach IPC 6.4.1 基本概念 6.5 消息 6.5.1 消息的数据结构 6.5.2 消息传递接口 6.6 端口 6.6.1 端口名字空间 6.6.2 端口数据结构 6.6.3 端口变换 6.7 消息传递 6.7.1 端口权力的传递 6.7.2 脱机内存 6.7.3 控制流 6.7.4 通知 6.8 端口操作 6.8.1 释放一个端口 6.8.2 备份端口 6.8.3 端口集合 6.8.4 端口的添加 6.9 扩展性 6.10 Mach 3.0 的改进 6.10.1 一次发送权 6.10.2 Mach 3.0 的通知 6.10.3 发送权的用户引用记数 6.11 讨论 6.12 小结 6.13 练习 6.14 参考文献 第7 章 同步和多处理器(164) 7.1 简介 7.2 传统UNIX 内核中的同步 7.2.1 中断屏蔽 7.2.2 睡眠和唤醒 7.2.3 传统方法的局限性 7.3 多处理器系统 7.3.1 内存模型 7.3.2 同步支持 7.3.3 软件体系结构 7.4 多处理器同步问题 7.4.1 唤醒丢失问题 7.4.2 巨群问题 7.5 信号灯 7.5.1 提供互斥访问的信号灯 7.5.2 使用的信号灯的事件等待 7.5.3 用于控制可计数资源的信号灯 7.5.4 信号灯的缺点 7.5.5 护卫 7.6 自旋 7.6.1 自旋的使用 7.7 条件变量 7.7.1 实现问题 7.7.2 事件 7.7.3 阻塞 7.8 读写 7.8.1 设计考虑 7.8.2 实现 7.9 引用计数 7.10 其他考虑 7.10.1 避免 7.10.2 递归 7.10.3 阻塞还是自旋 7.10.4 什么 7.10.5 粒度和持续时间 7.11 例子分析 7.11.1 SVR 4.2/MP 7.11.2 Digital UNIX 7.11.3 其他实现 7.12 小结 7.13 练习 7.14 参考文献 第8 章 文件系统接口和框架(191) 8.1 简介 8.2 文件的用户接口 8.2.1 文件和目录 8.2.2 文件属性 8.2.3 文件描述符 8.2.4 文件1/O 8.2.5 分散-聚集I/O(Scatter-Garther I/O) 8.2.6 文件加 8.3 文件系统 8.3.1 逻辑磁盘 8.4 特殊文件 8.4.1 符号链接 8.4.2 管道和FIFO 8.5 文件系统框架 8.6 vnode/vfs 体系结构 8.6.1 目标 8.6.2 设备 1 门的经验 8.6.3 vnode/vfs 接口概述 8.7 实现概述 8.7.1 目标 8.7.2 v 节点和打开文件 8.7.3 v 节点 8.7.4 v 节点引用计数 8.7.5 vfs 对象 8.8 文件系统相关对象 8.8.1 每个文件的私有数据 8.8.2 vnodeops 向量 8.8.3 vfs 层中的文件系统相关部分 8.9 安装一个文件系统 8.9.1 虚拟文件系统转换 8.9.2 mount 的实现 8.9.3 VFS-MOUNT 处理 8.10 对文件的操作 8.10.1 路径名遍历 8.10.2 目录查找缓存 8.10.3 VOP_LOOKUP 操作 8.10.4 打开文件 8.10.5 文件I/O 8.10.6 文件属性 8.10.7 用户凭证 8.11 分析 8.11.1 SVR4 实现的缺点 8.11.2 4.4BSD 模型 8.11.3 OSF/1 方法 8.12 小结 8.13 练习 8.14 参考文献 第9 章 文件系统实现(227) 9.1 简介 9.2 System V 文件系统(s5fs) 9.2.1 目录 9.2.2 i 节点 9.2.3 超级块 9.3 s5fs 内核组织 9.3.1 内存i 节点 9.3.2 i 节点查找 9.3.3 文件I/O 9.3.4 i 节点的分配与回收 9.4 对s5fs 的分析 9.5 伯克利快速文件系统(FFS) 9.6 硬盘结构 9.7 磁盘组织 9.7.1 块和碎片 9.7.2 分配策略 9.8 FFS 的增强功能 9.9 分析 9.10 临时文件系统 9.10.1 内存文件系统 9.10.2 tmpfs 文件系统 9.11 特殊目的文件系统 9.11.1 specfs 文件系统 9.11.2 /proc 文件系统 9.11.3 处理器文件系统 9.11.4 半透明文件系统 9.12 以往的磁盘缓存 9.12.1 基本操作 9.12.2 缓冲区头结构 9.12.3 优点 9.12.4 缺点 9.12.5 保证文件系统的一致性 9.13 小结 9.14 练习 9.15 参考文献 第10 章 分布式文件系统(255) 10.1 简介 1O.2 分布式文件系统的一般特征 10.2.1 设计考虑 10.3 网络文件系统(NFS) 10.3.1 用户透视 10.3.2 设计日标 10.3.3 NFS 组成 10.3.4 无状态 10.4 协议族 10.4.1 扩展数据表示(XDR) 10.4.2 远程过程调用(RPC) 10.5 NFS 实现 10.5.1 控制流 10.5.2 文件句柄 l0.5.3 mount 操作 10.5.4 路径名查找 10.6 UNIX 语义 10.6.1 打开文件权限 10.6.2 删除打开文件 l0.6.3 读和写 10.7 NFS 性能 10.7.1 性能瓶颈 10.7.2 客户端高速缓存 10.7.3 延迟写 10.7.4 重传高速缓存 10.8 专用NFS 服务器 10.8.1 Auspex 功能性多处理器结构 10.8.2 IBM 的HA-NFS 服务器 10.9 NFS 安全性 10.9.1 NFS 访问控制 10.9.2 UID 重新映射 10.9.3 root 重新映射 10.10 NFSv3 10.11 远程文件共亨(RFS)文件系统 10.12 RFS 结构 10.12.1 远程消息协议 10.12.2 有状态操作 10.13 RFS 实现 10.13.1 远程安装 10.13.2 RFS 客户和服务器 10.13.3 崩溃恢复 10.13.4 其他问题 10.14 客户端高速缓存 10.14.1 高速缓存一致性 10.15 Andrew 文件系统 10.15.1 可扩展的结构 10.15.2 存储和名字空间组织 10.15.3 会话语义 10.16 AFS 实现 10.16.1 缓存以及一致性 10.16.2 路径名查找 10.16.3 安全 10.17 AFS 的缺陷 10.18 DCE 分布式文件系统(DCE DFS) 10.18.1 DFS 体系结构 10.18.2 高速缓冲区一致性 10.18.3 令牌管理器 10.18.4 其他DFS 服务 10.18.5 分析 10.19 小结 10.20 练习 10.21 参考文献 第11 章 高级文件系统(298) 11.1 简介 11.2 传统文件系统的局限 11.2.1 FFS 磁盘布局 11.2.2 写的主导性 11.2.3 元数据更新 11.2.4 崩溃恢复 11.3 文件系统成簇(Sun-FFS) 11.4 日志方法 11.4.1 基本特征 11.5 日志结构文件系统 11.6 4.4BSD 日志文件系统 11.6.1 写日志 11.6.2 数据检索 11.6.3 崩溃恢复 11.6.4 清除进程 11.6.5 分析 11.7 元数据日志 11.7.1 正常操作 11.7.2 日志的一致 11.7.3 崩溃恢复 11.7.4 分析 11.8 Episode 文件系统 11.8.1 基本抽象 11.8.2 结构 11.8.3 记日志 11.8.4 其他特性 11.9 监视器(watchdog) 11.9.1 目录监视器 11.9.2 消息通道 11.9.3 应用 11.10 4.4BSD 端口文件系统 11.10.1 使用端曰(portals) 11.11 堆栈式文件系统层 11.11.1 框架和接口 11.11.2 Sun Soft 原型 11.12 4.4BSD 文件系统接口 11.12.1 Nullfs 和Union Mount 文件系统 11.13 小结 11.14 练习 11.15 参考文献 第12 章 内核内存管理(328) 12.1 简介 12.2 功能需求 12.2.1 评估标准 12.3 资源映射图分配器 12.3.1 分析 12.4 简单2 次幂空闲表 12.4.1 分析 12.5 McKusick-Karels 分配器 12.5.1 分析 12.6 伙伴系统 12.6.1 分析 12.7 SVR4 Lazy 伙伴算法 12.7.1 Lazy 合并 12.7.2 SVR4 实现细节 12.8 Mach/1 的zone 分配器 12.8.1 垃圾收集 12.8.2 分析 12.9 多处理器的分层分配器 12.9.1 分析 12.10 Solaris 2.4 的Slab 分配器 12.10.1 对象复用 12.10.2 硬件Cache 利用率 12.10.3 分配器footprint 12.10.4 设计与接口 12.10.5 实现 12.10.6 分析 12.11 小结 12.12 练习 12.13 参考文献 第13 章 虚存(352) 13.1 简介 13.1.1 内存管理的石器时代 13.2 分页 13.2.1 功能需求 13.2.2 虚拟地址空间 13.2.3 页面初始访问 13.2.4 交换区 13.2.5 转换映射图 13.2.6 页面替换策略 13.3 硬件需求 13.3.1 MMU 缓存 13.3.Z Intel 80x86 13.3.3 IBM RS/6000 13.3.4 MIPS R3000 13.4 4.3BSBSD 实例研究 13.4.1 物理内存 13.4.2 地址空间 13.4.3 页面在哪里 13.4.4 交换区 13.5 4.3BSD 内存管理操作 13.5.1 创建进程 13.5.2 页面失效处理 13.5.3 空闲页面链表 13.5.4 交换 13.6 分析 13.7 练习 13.8 文献 第14 章 SVR4 VM 体系结构(382) 14.1 动机 14.2 内存映射文件 14.2.1 mmap 及相关系统用 14.3 VM 设计原理 14.4 基本抽象概念 14.4.1 物理内存 14.4.2 地址空间 14.4.3 地址映射 14.4.4 匿名页面 14.4.5 硬件地址转换 14.5 段驱动程序 14.5.1 seg-vn 14.5.2 seg-map 14.5.3 seg-dev 14.5.4 seg-kmem 14.5.5 seg-kp 14.6 交换层 14.7 VM 操作 14.7.1 创建一个新映射 14.7.2 匿名页面处理 14.7.3 创建进程 14.7.4 共享匿名页面 14.7.5 页面失效处理 14.7.6 共享内存 14.7.7 其他部件 14.8 与v 节点子系统的交互 14.8.1 v 节点接口变化 14.8.2 统一的文件访问 14.8.3 其他问题 14.9 Solaris 中的虚拟交换空间 14.9.1 扩展交换空间 14.9.2 虚交换管理 14.9.3 讨论 14.10 分析 14.11 性能改进 14.11.1 高失效率原因 14.11.2 SVR4 对SunOS VM 实现的改进 14.11.3 结果与讨论 14.12 小结 14.13 练习 14.14 参考文献 第15 章 进一步关于内存管理的主题(413) 15.1 简介 15.2 Mach 的内存管理设计 15.2.1 设计目标 15.2.2 编程接口 15.2.3 基本抽象概念 15.3 共享内存设施 15.3.1 copy-on-write 共享 15.3.2 读写共享 15.4 内存对象和Pager 15.4.1 内存对象初始化 15.4.2 内核与pager 间的接口 15.4.3 内核与pager 交互 15.5 外部pager 和内部pager 15.5.1 一个网络共享内存服务器 15.6 页面替换 15.7 分析 15.8 4.4BSD 的内存管理 15.9 快表(TLB)一致性 15.9.1 单处理机上的TLB 一致性 15.9.2 多处理机问题 15.10 Mach 的TLB 击落算法 15.10.1 同步和避免 15.10.2 讨论 15.11 SVR4 和SVR4.2 UNIX 中的TLB 一致性 15.11.1 SVR4/MP 15.11.2 SVR4.2/MP 15.11.3 Lazy 击落算法 15.11.4 立即击落 15.11.5 讨论 15.12 其他TLB 一致性算法 15.13 虚地址缓存 l5.13.1 映射变化 15.13.2 地址别名 15.13.3 DMA 操作 15.13.4 维护缓存一致性 15.13.5 分析 15.14 练习 15.15 参考文献 第16 章 设备驱动程序I/O(446) 16.1 简介 16.2 概述 16.2.1 硬件配置 16.2.2 设备中断 16.3 设备驱动程序框架 16.3.1 设备和驱动程序分类 16.3.2 调用驱动程序代码 16.3.3 设备开关表 16.3.4 驱动程序入口点 16.4 I/O 子系统 16.4.1 主、次设备号 16.4.2 设备文件 16.4.3 specfs 文件系统 16.4.4 公共snode 16.4.5 设备克隆 16.4.6 字符设备I/O 16.5 poll 系统调用 16.5.1 poll 的实现 16.5.2 4.3BSD select 系统调用 16.6 块I/O 16.6.1 buf 结构 16.6.2 与v 节点的交互 16.6.3 设备访问方法 16.6.4 到块设备的raw I/O 16.7 DDI/DKI 说明 16.7.1 建议 16.7.2 第三部分函数 16.7.3 其他部分 16.8 新的SVR4 版本 16.8.1 多处理器可靠驱动程序 16.8.2 SVR4.1/ES 的变化 16.8.3 动态加载和卸载 16.9 发展趋势 16.10 小结 16.11 练习 16.12 参考文献 第17 章 流(477) 17.1 目的 17.2 概述 17.3 消息和队列 17.3.1 消息 17.3.2 虚拟拷贝 17.3.3 消息类型 17.3.4 队列和模块 17.4 流I/O 17.4.1 STREAMS 调度程序 17.4.2 优先带(Priority Bands) 17.4.3 流量控制 17.4.4 驱动程序尾 17.4.5 流头 17.5 配置和设置 17.5.1 配置一个模块或驱动程序 17.5.2 打开流 17.5.3 插入(Pushing)模块 17.5.1 克隆设备 17.6 STREAMS ioctl 17.6.1 STR ioctl 处理 17.6.2 透明ioctl 17.7 内存分配 17.7.1 扩展STREAMS 缓冲区 17.8 多路复用 17.8.1 上部多路复用器 17.8.2 下部多路复用器 17.8.3 链接流 17.8.4 数据流 17.8.5 普通链接和持久链接 17.9 FIFO 和管道 17.9.1 STREAMS FIFO 17.9.2 STREAMS 管道 17.10 网络接口 17.10.1 传输供应者接口(TPI) 17.10.2 传输层接口(TLI) 17.10.3 sockets 17.10.4 SVR4 socket 实现 17.11 小结 17.12 练习 17.13 参考文献
处理机调度是指操作系统对CPU的分配和调度,以便高效地完成各种任务。在多道程序环境下,由于有多个进程需要占用CPU,因此需要进行处理机调度,以便各个进程都能够得到合理的CPU时间片,并且能够尽早地完成任务。 处理机调度算法主要有以下几种: 1. 先来先服务 (FCFS):按照进程到达的先后顺序进行处理机分配,即谁先到谁先得到CPU的使用权。 2. 短作业优先 (SJF):按照进程的执行时间进行处理机分配,即先处理执行时间最短的进程。 3. 优先级调度 (Priority Scheduling):按照进程的优先级进行处理机分配,即优先级高的进程先执行。 4. 时间片轮转 (Round Robin):将CPU时间片分成多个时间段,每个进程在一个时间段内执行一定时间,然后切换到下一个进程,直到所有进程都执行完毕。 是指在多进程环境下,由于资源竞争而导致的一种进程无限等待的现象。的发生通常由于以下四个条件的同时满足: 1. 互斥条件:一个资源同时只能被一个进程使用。 2. 不可抢占条件:进程在使用一个资源时,不能被其他进程抢占。 3. 占有和等待条件:一个进程在持有一个资源的同时,可以等待其他资源。 4. 循环等待条件:多个进程之间形成一种循环等待资源的关系。 避免的方法主要有以下几种: 1. 破坏互斥条件:允许多个进程同时访问一个资源。 2. 破坏不可抢占条件:允许进程在使用一个资源时被抢占。 3. 破坏占有和等待条件:一个进程在申请资源时,必须释放已经占有的资源。 4. 破坏循环等待条件:对所有资源进行编号,每个进程按照编号顺序申请资源,释放资源时按照相反的顺序释放。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值