操作系统复习.ppt_第1页
操作系统复习.ppt_第2页
操作系统复习.ppt_第3页
操作系统复习.ppt_第4页
操作系统复习.ppt_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作系统复习,第一章操作系统引论第二章进程管理第三章处理机调度与死锁第四章存储器管理第五章设备管理第六章文件管理第七章操作系统接口Linux实验,第一章操作系统引论,操作系统的概念;操作系统的基本特征;操作系统的主要功能;操作系统的发展过程;三种基本类型的操作系统,第二章进程管理,进程的基本概念、特征、状态及状态之间的转换;进程控制块进程控制:进程的创建、终止、阻塞与唤醒、挂起与激活;进程同步:进程之间的两种制约关系;信号量机制、管程机制;经典进程的同步问题;用信号量机制解决进程的同步关系;进程通信(三种高级通信方式);线程、线程的属性;,第二章进程管理,进程同步的机制信号量机制记录型信号量:Typesemaphore=recordvalue:integer;L:listofprocess;endVarS:semaphore;,第二章进程管理,wait和signal操作描述:wait(S):S.value:=S.value-1;ifS.value0thenblock(S.L);signal(S):S.value:=S.value+1;ifS.value0S的值表示可继续进入售票厅的人数;S=0表示售票厅中已有20名顾客(购票者);S0|S|的值为等待进入售票厅的人数。(2)上框为P(S)下框为V(S)(3)S的最大值为20S的最小值为20n,第二章进程管理,进程同步的例题3:某寺庙,有小和尚、老和尚若干。有一水缸,由小和尚用水桶从井中提水入缸,老和尚用水桶从缸里取水饮用。水缸可容10桶水,水取自同一井中。水井径窄,每次只能容一个水桶取水。水桶总数为3个。每次入、取缸水仅为1桶,且不可以同时进行。试用P、V操作给出小和尚、老和尚动作的算法描述。,第二章进程管理,第二章进程管理,分析:小和尚从井中取水并向缸中倒水为一个进程,而老和尚从缸中取水为另一个进程。有关互斥的资源有:水井(一次仅允许一个水桶进出);水缸(一次倒水、取水仅一个水桶)。分别为它们设置信号量mutex1、mutex2来实现互斥,初值均为1。,第二章进程管理,分析(续):有关同步的问题是:3个水桶-无论是从井中取水还是倒水入缸或取水出缸都是一次一个,即为其设置信号量count,初值为3,抢不到水桶的进程只好等待。此外,设置信号量empty来控制入缸的水量,初值为10,当水缸满时不可入水;设置信号full控制出缸的水量,初值为0,当水缸空时不可出水。,第二章进程管理,Beginmutex1:=1;mutex2:=1;empty:=10;full:=0;count:=3;Cobegin小和尚i(i=1,2,)打水;老和尚j(j=1,2,)取水;Coend;End.,第二章进程管理,小和尚i(i1,2,)打水:BeginRepeatP(empty);/*看水缸满否,满则阻塞打水进程*/P(count);/*申请打水的桶*/P(mutex1);/*互斥使用水井,即不允许两和尚同时打水*/从井中取水;V(mutex1);P(mutex2);/*互斥使用水缸*/送水入缸;V(mutex2);V(count);/*归还水桶*/V(full)/*水缸又多一桶水*/UntilfalseEnd;,第二章进程管理,老和尚j(j=1,2,)取水:BeginRepeatP(full);/*看水缸是否有水,无水则阻塞取水进程*/P(count);/*申请取水的桶*/P(mutex2);/*互斥使用水缸*/从缸中取水;V(mutex2);V(count)/*归还水桶*/V(empty);/*缸中少了一桶水*/UntilfalseEnd,第三章处理机调度与死锁,三级调度、两种调度方式各种调度算法(FCFS、SPF/SJF、最短剩余时间优先SRT、RR-RoundRobin、优先权调度算法-HPF、HRRN、多级反馈队列调度算法-FB),除最后一种算法外,要求会计算平均周转时间、平均带权周转时间死锁的概念、产生死锁的原因、产生死锁的必要条件、处理死锁的方法(死锁的预防、避免、检测和解除),第三章处理机调度与死锁,例题:设系统中有下述解决死锁的办法:(1)银行家算法(2)检测死锁,终止处于死锁状态的进程,释放该进程所占有的资源(3)资源预分配请问哪种办法允许最大的并发性,即哪种办法允许更多的进程无等待地向前推进?请按“并发性”从大到小对上述三种办法进行排序。,第三章处理机调度与死锁,三种办法中,检测死锁允许更多的进程无等待地向前推进。因为该方法允许死锁出现,即允许进程最大限度地申请并分配资源,直到出现死锁再由系统来解决;,其次是银行家算法,允许进程动态申请资源,只是在进程申请资源时检查系统是否处于安全状态,若是,则分配;若不是,则拒绝分配;,最后是资源预分配,因为预分配要求进程在运行之前申请所需的全部资源才可以开始运行,这样会使许多进程因得不到资源无法运行。,第三章处理机调度与死锁,例题:按序分配是预防死锁的一种策略。什么是按序分配?为什么按序分配可以预防死锁?答:按序分配是将系统中所有资源按类型进行线性排队,并赋予不同的编号,规定所有进程对资源的请求必须严格按照资源序号递增的次序提出。按序分配可破坏产生死锁的四个必要条件中的“循环等待条件”,证明如下:,第三章处理机调度与死锁,假设存在一组循环等待的进程:P0,P1,P2,Pn,其中Pi拥有资源Ri,Ri编号为F(Ri),根据按序分配原则,有F(R0)F(R1)F(Rn),因存在循环等待,所以Pn所申请的下一个资源应为P0所占的资源R0;若Pn能正常运行,则应依据资源按序分配,即下次申请资源编号应比它所占资源编号大,即有F(Rn)arootlocalhostsymlink#catbcat:b:Nosuchfileordirectory,类似于Windows下的快捷方式,它占用一点的存储空间,指向原文件。,Linux实验-fork(),当前进程被分为两个进程:父进程parent,子进程child子进程从父进程那里继承了indenticalcopyofmemoryCPUregistersallfilesthathavebeenopenedbytheparent如果失败则返回-1父进程和子进程均在fork之后的语句开始执行forchild,fork()returns0forparent,fork()returnsthePIDofthechild,fork出错可能有两种原因:当前的进程数已经达到了系统规定的上限;系统内存不足。,Linux实验-fork()举例,子进程执行的上下文就是父进程调用fork时上下文的副本,Linux实验-fork()执行过程(1),Linux实验-fork()执行过程(2),Linux实验-fork()执行过程(3),Linux实验-fork()执行过程(4),Linux实验-fork()执行过程(5),Linux实验-fork()执行过程(6),Linux实验-系统调用exit(),用于子进程末尾,使子进程能自我终止Thissystemcall:Savesresult=argumentofexitClosesallopenfiles,connectionsDeallocatesmemoryChecksifparentisaliveIfparentisalive,holdstheresultvalueuntiltheparentrequestsit(withwait);inthiscase,thechildprocessdoesnotreallydie,butitentersazombie/defunctstateifparentisnotalive,thechildterminates(dies),Linux实验-系统调用wait(),SimplewayofaprocesstoacknowledgethedeathofachildprocessTheprocessissuspendeduntiloneofitschildprocessesexitsWhenachildcallsexit(),theparentunblocksfromwaitingandreceivesthevaluepassedbyexitIfnochildrenarealive,wait()returnsimmediatelyAlso,ifaparenthasanyzombiechild,wait()returnstheexitstatusofthatzombieimmediatelyandkillsthezombie,Linux实验-系统调用wait()例,#include#include#include#includemain()pid_tpc,pr;pc=fork();if(pc0)/*如果出错*/printf(errorocurred!n);elseif(pc=0)/*如果是子进程*/printf(Thisischildprocesswithpidof%dn,getpid();sleep(10);/*睡眠10秒钟*/exit(0);else/*如果是父进程*/pr=wait(NULL);/*在这里等待*/printf(Icatchedachildprocesswithpidof%dn),pr);,Linux实验-系统调用getpid(),get

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论