《操作系统概念复习资料【1-7章】课件.ppt》由会员分享,可在线阅读,更多相关《操作系统概念复习资料【1-7章】课件.ppt(65页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、操作系统原理课程总结软件学院2011.6.2第1-2章 导论和操作系统结构明确操作系统的作用。明确操作系统包括哪些功能明确用户模式和内核模式的概念及作用。了解操作系统提供的服务有哪些明确系统调用的工作机制。明确操作系统的结构有哪些,各自优缺点。了解虚拟机及优点第1-2章 导论和操作系统结构1.操作系统的作用答:操作系统提供了程序执行的环境。它的职能是管理和控制计算机系统中的所有软硬件资源,合理的组织计算机工作流程,并为用户提供一个良好的工作环境与友好的接口。操作系统结构:并发,共享,虚拟,异步多道程序批处理结构:灵活性差分时系统:方便多用户共享实时系统:实时系统能够在指定或者确定的时间内完成系
2、统功能和外部或内部、同步或异步时间做出响应的系统,嵌入式系统第1-2章 导论和操作系统结构2.操作系统包括哪些功能答:存储器管理功能,主要包括:内存分配、地址映射、内存保护和内存扩充。处理机管理功能,其功能包括:作业和进程调度,进程控制和进程通信。设备管理功能,主要包括:缓冲区管理、设备分配、设备驱动和设备无关性(设备处理)。文件管理功能,其功能包括:文件存储空间的管理、文件操作的一般管理、目录管理、文件的读写管理,存取控制和保护。用户接口:命令接口、程序接口、图形接口第1-2章 导论和操作系统结构4.操作系统提供的服务有哪些答:程序执行、I/O 操作、文件系统处理、通信、错误检测、资源分配、
3、用户管理、保护与安全第1-2章 导论和操作系统结构5.系统调用的工作机制用户在需要执行特权指令时,调用系统调用,陷入内核(不同的任务,所对应调用的系统调用号也不同,在调用系统调用陷入内核时,会同时向OS内核传入一个系统调用号i)进入内核后,根据i查找系统调用表,找到调用号为i的系统调用的处理代码内核执行完系统调用处理代码后,从核心态返回用户态第1-2章 导论和操作系统结构6操作系统的结构有哪些,各自优缺点答:1.简单结构(没分层,易出错)2.层次化设计(分层)3.微内核(得到更小的基本内核,便于OS扩充)要求:能用简单的语言说明不同结构操作系统的特点7虚拟机的优点答:虚拟机技术主要有两个优点。
4、首先,通过完全的保护系统资源,虚拟机提供了一个健壮的安全保护层。其次,虚拟机允许在不干扰正常的系统操作的情况下进行系统开发。3.操作系统具有进程管理,存储管理,文件管理和设备管理的功能,下列有关描述中,哪一项是不正确的?A.进程管理主要是对程序进行管理 B.存储管理主要管理内存资源 C.文件管理可以有效的支持对文件的操作,解决文件共享、保密和保护问题 D.设备管理是指计算机系统中除了CPU和内存以外的所有输入输出设备的管理A4.下列哪一个不是操作系统的主要特征?A.并发性 B.共享性 C.灵活性 D.随机性 C5.用户与操作系统打交道的手段称为 。A命令输入 B广义指令 C通信 D用户接口 D
5、6从用户的观点看,操作系统是 。A用户与计算机之间的接口 B控制和管理计算机资源的软件 C合理地组织计算机工作流程的软件 D由若干层次的程序按一定的结构组成的有机体A第3章 进程明确进程的概念及组成。明确进程的基本状态及转换条件明确进程控制块的作用明确进程调度的类型(长,中,短)及调度的过程(上下文切换:CPU切换到另一个进程需要保存当前进程的状态并恢复另一个进程的状态)了解进程的操作有哪些。明确进程间通信的机制有哪些。第3章 进程2进程的基本状态及转换条件状态:创建:进程正被创建。运行:(进程的)指令正被执行。等待:进程正在等待发生一些事件(如I/O 完成或接收一个信号)。(阻塞和延迟)就绪
6、:进程正等待分配处理器。终止:进程结束运行第3章 进程转换:(1)就绪运行:进程具备运行条件,当进程调度程序选择了进程后,便将其转入运行状态。(2)运行阻塞:进程需要等待某种事件的发生,如执行了输入输出指令,或者请求资源得不到满足时,进程转阻塞状态。(3)阻塞就绪:进程等待的I/O已完成,或者请求的资源得到满足,进程转为就绪状态。(4)创建就绪:进程尚不具备运行条件,所需的资源尚未得到满足。当进程创建完成后,进程可转入就绪状态。(5)运行延迟:进程运行过程中,因某种原因需要延迟运算,则设定好延迟时间后被转入延迟状态。(6)运行完成:进程运行时遇到结束指令后,被转入完成状态。第3章 进程4进程调
7、度的类型(长,中,短)及调度的过程(上下文切换)(1)高级调度(high Level Scheduling):又称为作业调度或者长程调度(longTerm Scheduling),其主要功能是根据某种算法,把外存上处于后备队列中的那些作业调入内存,也就是说,它调度对象是作业。P84 作业调度(2)低级调度(low Level Scheduling)称为进程调度或短程调度(shortTerm Scheduling),它所调度的对象是进程(或内核级线程。)进程调度是最基本的一种调度,在多道批处理、分时和实时三种类型的OS中,都必须配置这级调度。P86 进程调度(3)中级调度(Intermediat
8、e Level Scheduling)又称中程调度(Medium-Term Scheduling).引入中级调度的主要目的是为了提高内存利用率和系统吞吐量。交换调度第3章 进程5进程的操作有哪些。答:包括进程的创建和进程的终止6进程间通信的机制有哪些。答:共享内存系统,消息传递系统(命名(包括直接通信和间接通信)、同步、缓冲)问答题:1.试比较进程和程序的区别答:进程和程序是既有联系又有区别的两个概念,它们的主要区别如下:(1)进程是程序在处理机上的一次执行过程,是一个动态概念;而程序是代码的有序集合,其本身没有任何运行的含义,是一个静态的概念。(2)进程是一个状态变化的过程,是有生命期的,表
9、现在它因创建而产生,因调度 而执行,因得不到资源而暂停,因撤销而消亡;而程序是永久的,可以长久保存。(3)进程和程序的组成不同。进程由程序、数据和进程控制块组成,而程序仅是代 码的有序集合。(4)进程与程序之间不是一一对于的。通过多次运行,同一个程序可以对应多个进程过调用关系,一个进程可以包含多个程序。2.并行与并发的概念并发(Concurrent):多个事件在同一时间段内发生。操作系统是一个并发系统,各进程间的并发,系统与应用间的并发。操作系统要完成这些并发过程的管理。并行(parallel)是指在同一时刻发生。选择题:1.当前运行的进程(),将引发系统进行进程调度。A.执行了一条转移指令B
10、.要求增加主存空间,经系统调用银行家算法进行测算认为是安全的C.执行了一条I/O指令D.执行程序期间发生了I/O完成中断C4.下面对进程的描述中,错误的是 。A进程是动态的概念 B进程执行需要处理机 C进程是有生命期的 D进程是指令的集合D5.操作系统中,若进程从执行状态转换为就绪状态,则表示 。A时间片到 B进程被调度程序选中 C等待某一事件 D等待的事件发生 A6.一个进程被唤醒意味着 。A该进程重新占有了CPU B它的优先权变为最大 C其PCB移至等待队列队首 D进程变为就绪状态D第4章 线程明确线程的基本概念及组成明确引入线程的好处。明确用户级线程和内核级线程的区别明确多线程模型有哪些
11、,各自优缺点了解线程池的思想。3用户级线程和内核级线程的区别答:对用户线程的支持通常处于内核之上,通过一个用户级线程库(thread library)实现。线程库提供了对线程的创建、调度和管理的支持,这无需来自内核的支持。用户级线程的创建和管理通常很快;内核线程由操作系统直接支持:内核在内核空间内实现了线程的创建、调度和管理。因为线程管理由操作系统完成,所以内核线程的创建和管理要比用户线程慢。4多线程模型有哪些,各自优缺点多对一模型:优点:效率比较高。缺点:如果一个线程调用了导致阻塞的系统调用的话,那么将阻塞整个进程。在多处理机环境中多个线程不能够并发执行。用户级线程库在那些采用了多对一模型不
12、支持。一对一模型:优点:更好的并发性;允许多个线程在多处理机环境中并行执行。缺点:在于创建一个用户线程就需要创建一个相应的内核线程。多对多模型:优点:允许开发者随心所欲的创建用户线程。允许更大的并行性。开发者能够创建所需的用户线程,而且相应的内核线程能够在多处理机环境中并行运行。而且当一个线程执行导致阻塞的系统调用时,内核能够调度其它的线程执行。问答题:1.什么是线程?描述线程和进程的区别?答:线程是在进程内用于调度和占有处理机的基本单位,它由线程控制表、存储线程上下文的用 户栈以及核心栈组成。调度:传统操作系统中,拥有资源的基本单位和独立调度分派的基本单位都是进程;而引入线程的操作系统中,线
13、程是调度和分派的基本单位,进程则是资源分配的基本单位。并发性:在引入线程的OS中,进程之间可以并发执行,同一进程的多个线程之间也可以并发执行,从而使得OS具有更好的并发性。拥有资源:在OS中,进程是拥有资源的一个独立单位,它拥有自己的资源,而线程一般不拥有系统资源,但是它可以访问其隶属进程的资源。系统开销:创建和撤销进程涉及资源的分配或回收,需要比线程创建和撤销大得多的系统开销,同样的,进程切换的开销也远远大于线程切换的开销。第5章 CPU调度明确抢占式和非抢占式区别了解分派程序的功能 用来将CPU的控制交给短期调度程序选择的进程。功能:切换上下文,切换到用户模式,跳转到用户程序的合适位置以重
14、新启动程序明确调度的准则有哪些明确各种调度算法的准则了解多处理器调度要处理的问题 负载平衡1抢占式和非抢占式区别抢占式的:当进程从运行状态转换到就绪状态时或者当进程从等待状态转换到就绪状态时。非抢占式的:当进程从运行状态转换到等待状态时或者当进程终止时。在非抢占式调度下,一旦把 CPU分配给一个进程,那么该进程就会保持 CPU直到终止或转换到等待状态。抢占式调度要付出一定的代价2调度的准则有哪些答:先来先服务(FCFS)调度算法短作业优先(SJF)或最短剩余时间优先调度算法优先调度算法。轮转(RR)调度算法级队列调度算法多级反馈队列调度算法要求:各种调度算法的准则选择题:1.分时系统中进程调度
15、算法通常采用 。A.响应比高者优先 B.时间片轮转法 C.先来先服务 D.短作业优先B2.下列进程调度算法中,()可能会出现进程长期得不到调度的情况。A.非抢占式静态优先权法B.抢占式静态优先权法C.时间片轮转调度算法D.非抢占式动态优先权法B3为了照顾紧迫型作业,应采用()。A.先来服务调度算法 B.短作业优先调度算法 C.时间片轮转调度算法 D.优先权调度算法D4作业从后备作业到被调度程序选中的时间称为()。A.周转时间 B.响应时间 C.等待调度时间 D.运行时间A4在采用动态优先权的优先权调度算法中,如果所有进程都具有相同优先权初值,则此时的优先权调度算法实际上和()相同。A.先来先服
16、务调度算法B.短作业优先调度算法C.时间片轮转调度算法 D.长作业优先调度算法A问答题:1什么是常用调度算法的评价指标?答:CPU利用率,吞吐量,周转时间,就绪等待时间,响应时间。吞吐量表示单位时间CPU完成作业量,周转时间指的是从作业提交到作业完结的时间间隔,就绪等待时间是每个作业在就绪队列所花的时间,响应时间是提交第一个请求到产生第一个响应的时间。综合分析题:有5个任务A,B,C,D,E,它们几乎同时到达,预计它们的运行时间为10,6,2,4,8min。其优先级分别为3,5,2,1和4,这里5为最高优先级。对于下列每一种调度算法,计算其平均进程周转时间(进程切换开销可不考虑)。(1)先来先
17、服务(按A,B,C,D,E)算法。(2)优先级调度算法。(3)时间片轮转算法。(1)采用先来先服务(FCFS)调度算法时,5个任务在系统中的执行顺序、完成时间及周转时间如下表所示根据表中的计算结果,5个进程的平均周转时间T为:T=(10+16+18+22+30)/5=19.2min执行次序运行时间优先数等待时间周转时间A103010B651016C221618D411822E842230(2)采用最高优先级调度(HPF)算法时,5个任务在系统中的执行顺序、完成时间及周转时间如下表所示:它们的平均周转时间为:T=(6+14+24+26+27)/5=19.4min执行次序运行时间优先数等待时间周转
18、时间B6506E84614A1031424C222426D112627(3)如果系统采用时间片轮转(RR)算法,令时间片为2分钟,5个任务轮流执行的情况为:第1轮:(A,B,C,D,E)第2轮:(A,B,D,E)第3轮:(A,B,E)第4轮:(A,E)第5轮:(A)显然,5个进程的周转时间为:T1=30min、T2=22min、T3=6min、T4=16min、T5=28min。它们的平均周转时间T为:T=(30+22+6+16+28)/5=20.4min第6章 进程同步明确临界区。明确解决临界区必须要满足的三项要求。明确信号量的定义。熟练学会使用信号量解决进程间的同步和互斥问题。1临界区。答
19、:考虑由 n 个进程P0,P1,.,Pn-l构成的系统。每个进程有一个代码段,被称作临界区(critical section),进程在临界区内可能会修改公有变量、更新一个表、写一个文件等等。该系统的一个重要的特征是当一个进程在其临界区内执行时就不允许其它进程在它的临界区内执行。这样,进程对临界区的执行在时间上是互斥的。临界区是指不允许多个并发进程交叉执行,一次最多允许一个进程进入的一段程序代码。临界区是由于不同并发进程的程序段共享公 用数据或公用数据变量而引起的。这些需要互斥访问的资源称为临界区资源临界区资源。2解决临界区必须要满足的三项要求。互斥(Mutual Exclusion):如果进程
20、 Pi正在其临界区中执行,那么就不允许有其它进程在临界区中执行。有空让进(Progress):如果没有进程处于临界区而此时有进程希望进入临界区,那么只可以从这些不在剩余区执行的进程中挑选出下一个进入临界区的进程,而且这个选择不可以长时间的延缓。有限等待(Bounded Waiting):在一个进程请求进入临界区之后和获准之前,允许其它进程在有限的时间内进入临界区。3信号量的定义。答:信号量是一种同步工具。信号量 S 是一个整形数,除初始化以外,对它的访问只能通过两个标准原子操作:wait和signal。最初,这被称为 P操作(for wait;from the Dutch proberen,t
21、o test)和V操作(for signal;from verhogen,to increment)。死锁的定义答:具备一个等待队列的信号量实现可能会导致这样的一个情况:两个或多个进程无休止的等待发生一个事件,而这个事件只能由等待中的某个进程引发。问题中的这个事件是指 signal操作的执行。当达到这样的一个状态时,我们称这些进程被死锁(deadlock)14.用整型信号量描述在哲学家进餐问题中,至多允许用整型信号量描述在哲学家进餐问题中,至多允许4个哲学家同时进餐的算法。个哲学家同时进餐的算法。(10分)分)解:解:public class diningphilosophers semaph
22、ore fork=new semaphore 5(1);semaphore room=new semaphore(4);int i;void philosopher(int i)while(true)think();wait(room);wait(forki);wait(fork(i+1)%5);eat();signal(fork(i+1)%5);signal(forki);signal(room);void main()parbegin(philosopher(0),philosopher(1),philosopher(2),philosopher(3),philosopher(4);议题1
23、:同步问题过桥问题:一座小桥横跨南北两岸(1)桥最多只能承重两个人,所以规定任意时刻同一方向只允许一人过桥(2)南侧桥段和北侧桥段较窄只能通过一人,桥中央一处宽敞,允许两个人通过或歇息。试用信号量和PV操作写出南、北两岸过桥的同步算法。桥的形状N_thin=1,S_thin=1loadNS=1,loadSN=1PN:P(loadNS);P(N_thin);走过北边狭窄通道 V(N_thin);走过宽敞的通道;P(S_thin);走南边狭窄通道;V(S_thin);V(loadNS);PS:P(loadSN);P(S_thin);走过南边狭窄通道 V(S_thin);走过宽敞的通道;P(N_th
24、in);走北边狭窄通道;V(N_thin);V(loadSN);第7章 死锁明确死锁产生的四个必要条件明确死锁的处理方法明确死锁预防的处理方法明确死锁避免的处理方法(包括安全状态、死锁状态关系等)1死锁产生的四个必要条件互斥条件:必须至少有一个资源以非共享的方式被进程持有;更确切的说,同时只有一个进程可以使用该资源。如果另一个进程请求这个资源,那么该进程必须等待这个资源被释放。持有并等待条件:进程必须持有至少一个资源且等待获取另外的当前被其它进程持有的资源。不可抢占条件:不可以抢占资源;也就是说,资源的释放只可以是由持有它的进程完成工作后自动释放。循环等待条件:对一组等待进程P0,P1,Pn来
25、说,必须:P0 等待 P1 持有的资源,P1 等待 P2持有的资源,Pn-1等待Pn 持有的资源,而 Pn 等待 P0 持有的资源。2死锁的处理方法主要有三种方法可以处理死锁:死锁预防和死锁避免:采用某种协议预防或避免死锁,确保系统不会进入死锁状态。死锁避免的两个算法:资源分配图算法和银行家算法死锁恢复:允许系统进入死锁状态,然后检测并恢复。完全忽视死锁并假设系统中不会发生死锁。包括 UNIX 在内的大多数操作系统采用了这种方法。死锁习题1产生死锁的基本原因是(系统资源不足)和(进程推进顺序不当)。答案:系统资源不足、进程推进顺序不当备注:死锁的4大必要条件是出现死锁时候的状况,这里讨论的是产
26、生死锁的根本缘由。死锁习题2某系统中只有11台打印机,N个进程共享打印机,每个进程要求3台,当N取值不超过()时,系统不会发生死锁?最坏情况下,N个进程每个都得到2台打印机,都去申请第3台,为了保证不死锁,此时打印机的剩余数目至少为1台,则:11-2N=1 N=5死锁习题3设系统中仅有一个资源类,其中共有3个资源实例,使用此类资源的进程共有3个,每个进程至少请求一个资源,它们所需资源最大量的总和为X,则发生死锁的必要条件是(X的取值):(?)假设3个进程所需该类资源数分别是a,b,c个,因此有:a+b+c=X假设发生了死锁,也即当每个进程都申请了部分资源,还需最后一个资源,而此时系统中已经没有
27、了剩余资源,即:(a-1)+(b-1)+(c-1)3 X=a+b+c 6 因此,如果发生死锁,则必须满足的必要条件是(X 6)议题2:银行家算法银行家算法的运作的整个流程如果单纯的流程还不够具体的话,来个实际一点的例子最简单的死锁实例(初始状态):MaxA Bp1:p2:1 11 1 Allocation A B0 00 0 Need A B1 11 1 Available A B1 1如何检验如何检验初始状态的安全性初始状态的安全性呢呢?初始状态检测流程(1)最简单的死锁实例(检查初始状态是否安全):MaxA Bp1:p2:1 11 1 Allocation A B0 00 0 Need A
28、 B1 11 1 Available A B1 1 Work A B1 1Step1:Work:=Availabe目标:检验初始状态安全性!初始状态检测流程(2)最简单的死锁实例(检查初始状态是否安全):MaxA Bp1:p2:1 11 1 Allocation A B0 00 0 Need A B1 11 1 Available A B1 1 Work A B1 1Step2:寻找那个进程可以在现有Work资源集的基础上顺利执行完成P1,P2都可以作为备选,我们选P1P1安全序列:判断依据:判断依据:Need=Work初始状态检测流程(3)最简单的死锁实例(检查初始状态是否安全):MaxA
29、BP1:p2:1 11 1 Allocation A B0 00 0 Need A B1 11 1 Available A B1 1 Work A B1 1P1安全序列:Step 2:Finish1=trueWork=work+allocation1 Finish true初始状态检测流程(4)最简单的死锁实例(检查初始状态是否安全):MaxA BP1:p2:1 11 1 Allocation A B0 00 0 Need A B1 11 1 Available A B1 1 Work A B1 1P1P2安全序列:Step 3:从尚未结束的进程中再挑下一个能从尚未结束的进程中再挑下一个能够保
30、证全部资源就绪的进程够保证全部资源就绪的进程 Finish true这时只有这时只有P2可以选,并且可以选,并且p2满足要求满足要求判断依据:判断依据:Need=Work安检结果:初始状态安全 MaxA Bp1:p2:1 11 1 Allocation A B0 00 0 Need A B1 11 1 Available A B1 1接着,进程接着,进程p1发出请求发出请求request=1,0例子:R=A,B,申请a,b;释放a,b p1:a b a b;p2:b b a a第一次预分配 MaxA Bp1:p2:1 11 1 Allocation A B1 00 0 Need A B0 11 1 Available A B0 1预分配结果:很容易判定安全安全序列=第2个request降临 MaxA Bp1:p2:1 11 1 Allocation A B1 00 0 Need A B0 11 1 Available A B0 1分配后:Request2=(0,1),不安全,不分配,(分配不导致死锁)例子:R=A,B,申请a,b;释放a,b p1:a b a b;p2:b b b a a b银行家算法的保守性