操作系统习题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2[解答]:据题意,需设一个信号量s1,初值为0,用于控制理发师工作与顾客要 求理发之间的关系;另设一个信号量s2,初值为0,用于控制顾客等候与顾客离去 之间的同步关系。还需设一个计数器count,初值为0,当一个顾客到达时,count加 1;离开时,减1。两种情况下都要根据count的不同取值而采取不同的操作。因为 顾客进入和离开时,都要对count操作,即count是顾客进入与离开的共享变量,所 以要互斥操作。为此再设一互斥信号量mutex。 Var s1,s2,mutex:semaphore:=0,0,1; customer:begin var count:integer:=0; repeat BEGIN p(mutex); parbegin if(count=N+1) barber: begin {v(mutex);exit;} repeat count=count+1; rest; if(count>1) … {v(mutex);p(s2);} p(s1); else cuthair; {v(s1); haircut;} until false …... end p(mutex);count=count-1; parend if(count>0) v(s2);v(mutex); exit; END end
OS基本概念
• • • • • OS的功能 OS的功能模块 OS的发展 OS的概念 OS的分类
进程的描述与控制
• • • • • 进程的概念 进程和程序的区别 进程的特征 进程控制块 进程控制原语
进程同步
• • • • • • 进程互斥的含义 互斥的硬、软件解决方法 信号量机制解决互斥 进程同步 经典的进程同步问题 进程通信
返回
3.[解答] 例如:当前CPU空闲,就绪队列为空,那么一 个进程由于解除封锁而进入就绪队列时,就会 立即引起调度。 又如: 系统实行的是剥夺式调度策略,当一个 比运行进程优先级高的进程进入就绪队列时, 就重新进行调度。那么如果解封的进程的优先 级高于当前运行的进程的优先级,显然会引起 一次重新调度。
返回
5.[解答] 这是可能的。比如在进程A时间片到后,被迫 回就绪队列时,队列恰为空。于是进程A排在 就绪队列首,则调度到的进程仍是A。 又如就绪队列按优先级排列,在进程A时间片 到后,回到就绪队列,由于其优先级高于当前 就绪队列中的其它进程,因此它将排在就绪队 列之首,从而再次被调度。
返回
6.[解答] 1)如图所示,变迁1由进程调度程序引起,变迁 2由时间片引起,变迁3由等待I/O完成,求同 步等引起,变迁4由阻塞 原因解除引起。 2)如果就绪队列非空,则一个 进程的变迁3就会 引起就绪队列中某个进程的变迁1发生。 3)当某一进程运行时间片时(即发生变迁2) 就必然引起某一进程的变迁1.某一进程的变迁 3 决不可能引起另一进程的变迁2.某一进程的 变迁 4有可能引起另一进程的变迁1。比如 , 当运行队列和就绪队列均空时,某一进程的变 迁4就会立即引起该进程的变迁1。
1 2 4
5 4 7
11.设有两个优先级相同的进程P,Q 程序分别如下:
进程P: P1 y=1; P2 y=y+z; P3 V(s1); P4 z=y+1; P5 P(s2); P6 y=z+y;
进程Q: Q1 x=1; Q2 x=x+1; Q3 P(s1); Q4 x=x+y; Q5 V(s2); Q6 z=z+y;
返回
1.[解答]在汽车不断地到站,停站,行驶过程中,售票员开车门,下乘客,上乘客和关 车门的活动是在汽车到站停车后开始,开车前结束的。即,当汽车到站停车后,售票 员可以开车门,下乘客,上乘客,关车门;当关好车门后,司机可以启动车辆,正常 行车和到站停车。为此,我们引入两个信号量s1和s2,s1用来实现司机开车与售票员关 门之间的同步,s2用来实现司机停车与售票员开门之间的同步,并假定汽车的初始状 态为停车状态。其控制流程如下: var s1,s2:semaphore:=0,0; BEGIN parbegin driver: begin conductor: begin repeat repeat p(s1); 上乘客; 启动车辆; 关车门; 正常行车; v(s1); 到站停车; 售票; v(s2); p(s2); until false; 开车门; end 下乘客; until false parend end 返回 END
返回
3[解答]: 以由南向北的汽车为例,如果它发现北方已有车上了桥,就应在南边等待,只 有北方的车或车队全部通过桥面,然后才被唤醒。因此对南方的车辆应设置一个初 值为0的记录型同步信号量delays,运行过程中,delays的绝对值,是南方等待过桥的 车辆数目,若北方没有车在桥上,则南方来车后就可过桥,紧跟的车形成一个车队, 依此通过,因此要有一个记录车队拥有车数的计数器south,初值为0,来一辆车,在 south上加1;过一辆车,south减1。当south为0时,表示南方车队全部过完,这时应 唤醒北方等待过桥的所有汽车。对于由北向南的汽车,也同理。因此,应如下设置 信号量与计数器:初值为1的互斥信号量:mutex (用于计数器的互斥操作) 初值为0的记录型同步信号量:delays 与delayn;初值为0的计数器:south 与 north 同步过程如下所述 BEGIN SOUTHERNCARS:begin PARBEGIN repeat SOUTHERNCARS; 到达;p (mutex); NORTHERNCARS; if (north>o) {v(mutex);p(delays);} PAREND else {south=south+1;v(mutex);} END 过桥;离开; p(mutex); south=south-1; if (south=0) while(delayn<0) v(delayn);v(mutex); 返回 until false end
答案
3.过桥问题 答案 从北或南来的汽车都必须通过横跨河上 的一座桥,如图所示。由于桥面只能容 纳一辆车的宽度,因此在任何时刻只能 通过一辆或多辆来自同一方向的汽车, 试利用信号量及其P,V操作,为南来北 往的汽车编写程序,以保证它们安全地 到达、驶过、离开此桥,以到达对岸。
北
桥 南
4.桌上有一空盘,允许存放一只水果。爸爸可 向盘中放苹果,也可向盘中放桔子,儿子专等 吃盘中的桔子,女儿专等吃盘中的苹果。规定 当盘空时一次只能放一只水果供吃者取用,请 用P、V原语实现爸爸、儿子、女儿三个并发进 程的同步。
6.有进程状态变迁图,如图所示 问:1)引起各种进程状态变迁的事件各是 什么? 2)在观察系统中的各个进程时,会见到 一个进程的状态变迁而引起另一个 进程状态变迁的情形.在什么情形 下,一个进程的变迁3能立即引起另 一进程的变迁1? 3)在什么情形下,如果有的话,将发生 下述的因果变迁(2->1,3->2,4->1)?
1 2 4
答案
运行
3
就绪
阻塞
复习思考题 3(进程同步)
1.设公共汽车上,司机和售票员的活动分别是:
司机: 启动车辆 正常行车 到站停车 售票员: 上乘客 关车门 售票 开车门 下乘客 在汽车不断的到站、停车、行驶过程中,这两个活 动是什么同步关系,并用信号灯的P,V操作实现其 同步。 答案
2.理发师问题: 理发店由一个等候室(其中有N把椅 子)和一个理发室(一把理发椅)组成。 如果没有顾客来理发,理发师就在理发 椅上睡觉,如果一个顾客走进理发店, 发现等候室的椅子都坐满,就离开理发 店;如果理发师正忙于理发,那么该顾 客就坐在一把椅子上空等;若理发师正 在睡觉,则顾客就唤醒他。请用P,V操 作来协调解决这一问题。
2.[解答] 在早期的单道程序系统里,一切系统资源都被运行程序所独 占,CPU按照程序所规定的动作一步一步的顺序执行,不会受到 该程序以外其他因素的影响,每次运行的结果都是相同的。 为了提高系统各种资源的利用率,引入了多道程序设计。在 此环境下,同时保留在主存的几道用户程序都在执行着,都在按 照自己程序规定的功能向前进展。于是这些逻辑上相互独立的程 序,在执行时间上相互重叠,一个 程序的执行还没有结束,另 一个程序的执行已经开始。即,各道程序之间是并行工作的,多 道程序系统的本质就是把并发程序的执行引入到了计算机系统中。 程序运行,就要使用系统资源。多个程序并发执行,即共享 系统的资源。但由于系统资源是有限的,不可能同时满足每个程 序对它们的要求,因此程序之间必然会出现相互制约的关系,从 而使各程序在系统内所处状态不断变化,时而在处理机上运行, 时而因等待某事件的发生而阻塞 。所以,“程序”在多道程序 里,表现出单道程序里不具有的特性:并发,制约和动态。为了 区分两种不同的“程序”,故而引入了进程的概念。
其中s1,s2是初值为0的信号量,z=2,若调度程序执行 的策略是FCFS,试问执行序列和运行结果是什么?
填空题
• 提高 CPU和外设的并行工作能力,进而 提高整个系统的效率 • 缺乏交互性 • 减少程序并发执行时所付出的时空开销
名词解释:PCB 进程控制块PCB是为描述进程的运 动变化过程而采用的一个与进程相联 系的数据结构,用于记录管理进程所 需的信息,描述进程的瞬间特征.它是 进程存在的唯一标志,操作系统通过 PCB而感知进程的存在.ቤተ መጻሕፍቲ ባይዱ常PCB包括 进程标识符,进程的现行状态,进程起 始地址,资源清单,进程优先级等内容.
答案
5.请用PV原语模拟两人下象棋的同步过程
答案
6.为什么在信号量S上定义的P,V操作 必须是不可分割的? 7.产生死锁的必要条件是什么? 解决死锁问题常用哪几种措施? 8.一台计算机有8台磁带机。它们由N个进程竞 争使用,每个进程可能需要3台磁带机,请问 N为多少时,系统没有死 锁的可能,并说明原因。 9.一个计算机系统拥有6台打印机,N个进程争夺使 用,每个进程要求2台,试问N取哪些值时,系统 不会发生死锁。
返回
1.[解答] 在多道程序系统里,才能提出程序与进程有什么本质区别的问题,在 多道程序系统里,仍把程序视为完成一定功能的指令集合。至于进 程,虽有多种定义,各有侧重。但本质上是相同的。即主要强调进 程是一个动态执行的过程这样一个概念。即进程是一个具有独立功 能的程序,基于某个数据库集合在处理机上的执行过程和资源的分 配管理。正因如此,进程和程序是两个既有区别又有联系的概念。 其区别主要表现在: 1.程序是一组指令的有序集合,没有任何执行的含义,是一个静态 概念。而进程强调过程,是程序的一次执行活动,是一个动态概念。 2.程序的存在是永久性的,进程则有其生命周期,它动态地被创建 (于是此进程实体出现),调度执行,继而撤消(此进程实体死 亡),因此进程的存在是暂时的。 3.程序仅是有序指令的集合,它不涉及到任何数据。进程既然是程 序的一次执行活动,因此它的组成应包含程序和数据,除此以外, 还应有记录进程信息的“进程控制块” 返回 4.进程与程序之间不是一一对应的关系(…)
返回
4.[解答] 当用户调用操作系统提供的创建原语时,就为所创建的进 程申请一个PCB,PCB中记录进程的标识,状态等与该进程 有关的信息,系统通过PCB而感知某一进程的存在。 有以下几种情况导致一个进程的撤消: 1.该进程完成自己的功能而正常结束; 2.由于某种错误而非正常结束; 3.祖先进程要求撤消某个进程; 撤消进程必须由操作系统的撤消原语进行,该原语释放撤 消进程所占用的系统资源,同时释放其PCB。至此,该进程 在系统中消亡。
10.假定使用银行家算法,将某种资源分配给四个用户,具 体情况如图所示。 问:1) 这种资源的系统拥有数总计是 多少? 2)如果QIN再要一个资源,分给它后系统能处于安全 状态吗? 3)倘若请求来自LU而不是QIN,情况怎样? 用户名 WANG 已获资源 最大资源数 当前剩余:2 1 6
LI LU QIN
问答题: 答案 1.进程与程序有什么本质不同? 2.为什么要引入进程概念? 答案 3.在什么条件下,一个进程的解封 (BLOCKED---->READY)会引起一个进 程的被调度(READY--->RUNNING) 答案 4.进程控制块何时产生,何时消除,其作用 是什么? 答案 5.有人曾描述过这样一种情形,在单处理 机分时操作系统下,分配给进程A的时间 片到后,系统进行切换.结果被调度到的进 程仍然是A,有可能出现此情形吗?说明理 由. 答案
复习思考题 1(OS基本概念)
• 采用多道程序设计的主要优点是什么? • 现代操作系统的两个最基本的特征是 ( )和( )。 • 批处理操作系统的主要缺点是( ) • 操作系统是计算机系统中的一个( ), 它管理和控制计算机系统中的( )。
复习思考题2(进程描述与控制)
答案 • 名词解释:PCB • 程序并发执行与顺序执行时产生了一些 新特征,分别是( )、( )和( )。 • 在操作系统中引入线程概念的主要目的 是( )。