您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 操作系统练习题进程管理
第二章进程管理程序顺序执行与并发执行比较顺序执行并发执行程序顺序执行间断执行,多个程序各自在“走走停停”种进行程序具有封闭性程序失去封闭性独享资源共享资源具有可在现性失去可再现性有直接和简接的相互制约多道程序设计概念及其优点1.多道程序设计:是在一台计算机上同时运行两个或更多个程序。2.多道程序设计的特点:多个程序共享系统资源、多个程序并发执行3.多道程序设计的优点:提高资源利用率、增加系统吞吐量什么是进程,进程与程序的区别和关系1.进程的引入:由于多道程序的特点,程序具有了并行、制约和动态的特征,就使得原来程序的概念已难以刻划和反映系统中的情况了。2.进程:程序在并发环境下的执行过程。3.进程与程序的主要区别:1)程序是永存的,进程是暂时的2)程序是静态的观念,进程是动态的观念3)进程由三部分组成程序数据进程控制块(描述进程活动情况的数据结构)4)进程和程序不是一一对应的一个程序可对应多个进程即多个进程可执行同一程序一个进程可以执行一个或几个程序4.程序与进程的类比程序进程唱歌的曲谱或音乐乐器的乐谱演出或演奏剧本演出菜谱烹调5.进程特征:动态性、并发性、调度性、异步性、结构性进程的基本状态及其转换1.进程基本状态:1)运行态(Running):进程正在占用CPU;2)就绪态(Ready):进程具备运行条件,但尚未占用CPU;3)阻塞态(Blocked):进程由于等待某一事件不能享用CPU。2.进程状态转换:进程是由哪些部分组成,进程控制块的作用1.进程的组成:由程序、数据集合和PCB三部分组成。2.进程控制块的作用:进程控制块是进程组成中最关键的部分。1)每个进程有唯一的PCB。2)操作系统根据PCB对进程实施控制和管理。3)进程的动态、并发等特征是利用PCB表现出来的。4)PCB是进程存在的唯一标志。PCB组织方式线性队列、链接表、索引表UNIX进程管理命令:UNIX进程管理命令:1.ps--显示进程状态功能:检查系统中当前存在的进程状态。例如$ps显示与控制中断相关进程的基本信息2.sleep--使进程睡眠功能:使进程暂停执行一段时间,其参数单位是秒。例如$sleep60将等待60秒后,才重新回到$提示符3.&--后台命令符功能:命令行末尾加上&字符,此命令进程将在后台执行。例如$ls–l/usr&创建一个显示目录命令进程,它在后台执行,即没有前台进程运行时它才得以运行4.wait--等待后台进程结束功能:等待后台进程结束。例如$wait2080等待PID为2080的后台进程终止5.kill--终止进程功能:终止一个进程执行。例如(在超级用户方式下)#kill678停止PID为678的进程运行6.nice--设置优先级功能:是以不同的优先级执行一条命令例如普通用户只能降低优先级:$nice–n10ccf1.c执行ccf1.c命令时的nice值为30(即20+10)超级用户(root)可以提高进程的优先级(即:增量值可取不小于-20的负数)#nice-n-10viabc执行viabc(编辑命令)的nice值为10(即20-10)进程的同步与互斥1.同步:是进程间共同完成一项任务时直接发生相互作用的关系。2.互斥:排它性访问即竞争同一个物理资源而相互制约。什么是临界资源、临界区?1.临界资源:一次仅允许一个进程使用的资源。2.临界区:在每个进程中访问临界资源的那段程序。3.互斥进入临界区的准则:1)如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。2)任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。3)进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。4)如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。信号量1.信号量定义:信号量(信号灯)=<信号量的值,指向PCB的指针>2.信号量的物理意义:大于0:表示当前资源可用数量1)信号量的值小于0:其绝对值表示等待使用该资源的进程个数2)信号量初值为非负的整数变量,代表资源数。3)信号量值可变,但仅能由P、V操作来改变。P,V操作原语1.P操作原语P(S):1)P操作一次,S值减1,即S=S-1(请求分配一资源);2)如果S≥0,则该进程继续执行;如果S<0表示无资源,则该进程的状态置为阻塞态,把相应的PCB连入该信号量队列的末尾,并放弃处理机,进行等待(直至另一个进程执行V(S)操作)。2.V操作原语(荷兰语的等待)V(S):1)V操作一次,S值加1,即S=S+1(释放一单位量资源);2)如果S>0,表示有资源,则该进程继续执行;如果S≤0,则释放信号量队列上的第一个PCB所对应的进程(阻塞态改为就绪态),执行V操作的进程继续执行。进程间简单同步与互斥的实现1.用P,V原语实现互斥的一般模型:设互斥信号量mutex初值为12.用P、V原语操作实现简单同步的例子供者和用者对缓冲区的使用关系如下图:S1缓冲区是否空(0表示不空,1表示空),初值S1=0;S2缓冲区是否满(0表示不满,1表示满),初值S2=0;3.生产者---消费者问题(OS典型例子)mutex互斥信号量,初值为1;full满缓冲区数,初值为0;empty空缓冲区数,初值为N;4.应用举例[例1]设系统中只有一台打印机,有三个用户的程序在执行过程中都要使用打印机输出计算结果。设每个用户程序对应一个进程。问:这三个进程间有什么样的制约关系?使用P、V操作写出这些进程使用打印机的算法。[解]由于打印机是一种临界资源,故三个进程只能互斥使用这台打印机。设三个进程分别为PA、PB和PC,互斥信号量mutex初值为1,执行过程如下:[例2]判断下面的同步问题的算法是否正确?若有错,请指出错误原因并予以改正。1)设A、B两进程共用一个缓冲区Q,A向Q写入信息,B则从Q读出信息,算法框图如图所示。注:信号量S的初值为0[解]该算法不正确。因为A、B两个进程共用一个缓冲区Q,如果A先运行,且信息数量足够多,则缓冲区Q中的信息就会发生后面的冲掉前面的,造成信息丢失,B就不能从Q中读出完整的信息。改正如下:A、B两进程同步使用缓冲区Q,应设定两个信号量:empty表示缓冲区Q为空,初值为1;full表示缓冲区Q已满,初值为0算法框图如下:2)设A、B为两个并发进程,它们共享一临界资源。其运行临界区的算法框图如图所示。[解]该算法不正确。因为A、B两个进程并发执行,且共享一临界资源,故A、B应互斥地使用该临界资源,即在某一时刻只允许一个进程进入该临界资源,无时序关系。改正算法:A、B二进程应互斥进入临界区,设定一信号量mutex,初值为1。[例2]设有一台计算机,有两个I/O通道,分别接一台卡片输入机和一台打印机。卡片机把一叠卡片逐一输入到缓冲区B1中,加工处理后再搬到缓冲区B2中,并在打印机上印出,问:1)系统要设几个进程来完成这个任务?各自的工作是什么?2)这些进程间有什么样的相互制约关系?3)用P、V操作写出这些进程的同步算法。[解]1)系统可设三个进程来完成该任务:Read进程负责从卡片输入机上读入卡片信息,输入到缓冲区B1中;Get进程负责从缓冲区B1中取出信息,进行加工处理,之后将结果送到缓冲区B2中;Print进程负责从缓冲区B2中取出信息,并在打印机上打印输出。2)操作过程:Read进程受Get进程的影响,B1缓冲区中放满信息后Read进程要等待get进程将其中信息全部取走后才能读入信息;Get进程受Read进程和Print进程的约束:B1缓冲区中信息放满后,Get进程才可从中取走信息,且B2缓冲区信息被取空后Get进程才能将加工结果送入其中;Print进程受Get进程的约束,B2缓冲区中信息放满后Print进程方可取出信息进行打印输出。3)信号量的含义及初值:B1full——缓冲区B1满,初值为0B1empty——缓冲区B1空,初值为0B2full——缓冲区B2满,初值为0B2empty——缓冲区B2空,初值为04)操作框图如下:进程简单通信分类低级通信机构高级通信机构特点传递信息量非常有限通信的效率低方便高效地交换大量信息应用互斥和同步机构共享存储器消息传递管道文件
本文标题:操作系统练习题进程管理
链接地址:https://www.777doc.com/doc-2454932 .html