操作系统作业.docx
《操作系统作业.docx》由会员分享,可在线阅读,更多相关《操作系统作业.docx(33页珍藏版)》请在冰豆网上搜索。
操作系统作业
计算机操作系统作业
专业班级:
信管1302
姓名:
张美芝
学号:
130404017
第一章
思考与练习题
1.什么是操作系统?
它的主要功能是什么?
答:
操作系统是用来管理计算机系统的,是所有其他软件运行的基础,从资源管理的角度来看,操作系统是对计算机系统内的所有软、硬件资源进行管理和控制,优化资源的利用,协调系统内的各种活动,处理可能出现的各种问题。
它的主要功能:
(1)存储管理:
方便用户使用内存,提高内存利用率以及从逻辑上扩充内存。
(2)处理机(CPU)管理:
协调多道程序之间的关系,解决对处理机的调度分配及回收等问题。
(3)设备管理:
①完成用户提出的输入输出请求,为用户分配外部设备。
②提高外部设备利用率。
③尽可能地提高输入输出的速度。
④方便用户使用外部设备。
(4)信息管理:
向用户提供一种简便、统一的存取和管理信息的方法,并同时解决信息的共享、安全保密等问题。
(5)用户接口:
为了方便用户使用操作系统,向用户提供给了用户与操作系统的接口。
2.什么是多道程序设计技术?
多道程序设计技术的主要特点是什么?
答:
多道程序设计技术是指把多个程序同时放入内存,使他们共享系统中的资源,并使他们交替地执行,当一道程序暂停执行时,系统调度另一道程序运行,使CPU一直处于忙碌状态。
主要特点:
(1)多道,即计算机内存中同时存放多道相互独立的程序。
(2)宏观上并行,是指同时进入系统的多道程序都处于运行过程中。
(3)微观上串行,是指在单处理环境下,内存中的多道程序轮流地占有CPU,交替执行。
3.批处理系统是怎样的一种操作系统?
它的特点是什么?
答:
批处理操作系统是一种基本的操作系统类型,在该系统中,用户的作业(包括程序、数据及程序的处理步骤)被成批地输入到计算机中,然后在操作系统的控制下,用户的作业自动地执行。
批处理系统的特点:
(1)资源利用率大。
(2)系统吞吐量大。
(3)平均周转时间长。
(2)无交互能力。
4.什么是分时系统?
什么是实时系统?
试从交互性、及时性、独立性、多路性和可靠性几个方面比较分时系统和实时系统。
答:
分时系统是指一个计算机和许多终端设备连接,每个用户通过终端向计算机发出命令,以交互方式使用计算机,共享主机中的资源的一种操作系统。
实时系统是指当有外来信息时,计算机能够接受并及时处理,在被控对象允许的范围内做出快速反应,并控制所有实时任务协调一致运行的操作系统。
实时系统与分时系统的比较:
(1)多路性:
在分时系统中,按原则为多个终端用户提供服务。
而对于实时控制系统,其多路性主要表现在经常对多路的现场信息进行采集以及对多个对象或多个执行机构进行控制。
(2)独立性:
不管是实时信息处理系统还是实时控制系统,与分时系统一样具有独立性。
每个终端用户在向系统提出服务请求时是彼此独立地工作、互不干扰。
(3)交互性:
实时信息处理系统具有交互性,但人与系统的交互,仅限于访问系统中某些特定的专用服务程序。
而分时系统那样向终端用户提供数据处理、资源共享等服务。
(4)及时性:
实时信息处理系统对及时性的要求与分时系统类似,都以人们能够接受的等待时间来确定。
而实时控制系统对及时性要求更高,是以控制对象所要求的开始截止时间或完成截止时间来确定的。
(5)可靠性:
分时系统虽然也要求具有可靠性,但相比之下,实时系统则要求系统高度可靠。
5.实时系统分为哪两种类型?
答:
(1)实时控制系统:
能对输入作出快速处理,并能及时提供输出操作信号的计算机控制系统。
(2)实时信息处理系统:
通常是把要求对信息进行实时处理的系统。
6.操作系统的主要特征是什么?
答:
(1)并发性:
用户与用户之间的并发执行;用户和操作系统程序之间的并发执行。
(2)共享性:
各种资源供运行的程序共同享用。
(3)虚拟性:
通过技术手段把一个物理实体变成多个逻辑上的对应物。
(4)不确定性:
在一个不确定的环境下运行,人们不能对目前所运行的程序的行为做出判断。
7.操作系统与用户的接口有几种?
它们各自用在什么场合?
答:
两种,分为命令接口、程序接口
(1)命令接口:
可分为联机命令接口、脱机命令接口和图形用户界面接口。
方便用户直接控制自己的作业而提供的接口,其中联机命令接口是为联机用户提供,脱机命令接口是为批处理用户提供,而图形用户接口是采用图形化方式显示的操作界面。
(2)程序接口:
又称系统调用,是为用户在程序一级访问操作系统功能而设置的。
8.“操作系统是控制硬件的软件”这一说法确切吗?
为什么?
答:
不确切,操作系统不仅仅是控制硬件,其他所有的软件,如汇编程序、编译程序、数据库系统及大量的应用软件,都依赖与操作系统的支持,所以操作系统还控制计算机软件。
9.设内存中有三道程序,A、B、C,他们按A→B→C的先后次序执行,它们进行“计算”和“I/O操作”的时间表1-2所示,假设三道程序使用相同的I/O设备。
表1-2三道程序的操作时间
操作
程序
计算
I/O操作
计算
A
20
30
10
B
30
50
20
C
10
20
10
(1)试画出单道运行时三道程序的时间关系图,并计算完成三道程序要花多长时间。
单道程序时间关系图
20ms+30ms+10ms+30ms+50ms+20ms+10ms+20ms+10ms=200ms
(2)试画出多道运行时三道程序的时间关系图,并计算完成三道程序要花多长时间。
多道程序时间关系图
20ms+30ms+10ms+40ms+20ms+10ms=130ms
10.将下列左右两列词连接起来形成意义最恰当的的5对。
第二章
思考与练习题
1.操作系统中为什么要引入进程的概念?
为了实现并发进程之间的合作和协调,以及保证系统的安全,操作系统在进程管理方面要做哪些工作?
答:
操作系统引入进程的概念是为了从变化的角度动态地分析研究可以并发执行的程序,真实地反映系统的独立性、并发性、动态性和相互制约。
操作系统的进程管理提供大量的服务,用来定义、支持和管理系统中的进程和线程。
它除了负责进程和线程的管理之外,还负责用户进程和系统进程的创建与撤销、进程调度等。
2.试描述当前正在运行的进程状态改变时,操作系统进行进程切换的步骤。
答:
①运行状态→就绪状态。
正在运行的进程,由于规定的时间片用完而被暂停执行,该进程就会从运行状态转变为就绪状态。
此进程根据其自身的情况(如优先级)插入到就绪队列的适当位置,系统收回处理机转入进程调度程序重新进行调度。
②运行状态→阻塞状态。
处于运行状态的进程,除了因为时间片用完而暂停执行外,还有可能由于系统中的其他因素的影响而不能继续执行下去。
一个进程从运行状态到阻塞状态后,系统会调用进程调度程序重新选择一个进程投入运行。
3.现代操作系统一般都提供多任务环境,试回答下列问题。
(1)为支持多进程的并发执行,系统必须建立哪些关于进程的数据结构?
答:
为支持多进程的并发执行,系统必须建立PCB。
用链接的方式把PCB连接起来就形成了运行队列、就绪队列。
(2)为支持进程的状态变迁,系统至少应提供哪些控制原语?
答:
系统至少应该提供创建新进程原语、唤醒原语、阻塞原语、激活原语、挂起原语
(3)当进程的状态变迁时,相应的数据结构发生变化吗?
发生变化
创建原语:
申请空白PCB,初始化进程描述信息,为进程分配资源、分配存储空间,将新进程插入就绪队列。
撤销原语:
查找撤销进程PCB,终止进程运行状态,归还资源从所在队列移出。
阻塞原语:
将进程PCB的运行状态改为阻塞状态,并将进程投入阻塞队列。
唤醒原语:
将进程PCB的运行状态从阻塞状态改为就绪状态,把进程从阻塞队列移出投入就绪队列。
4.什么是进程控制块?
从进程管理、中断管理、进程通信、文件管理、设备管理及存储管理的角度设计进程控制块应包含的内容。
答:
进程控制块是来描述进程本身的特性、进程状态、进程的调度信息及对资源的占有情况,它是进程实体的一部分,是操作系统中最重要的数据结构。
进程控制块记录了操作系统所需的用于描述进程情况及控制进程运行的全部信息。
为了进程管理,进程控制块包括以下几方面。
①进程的描述信息,包括进程标识符、进程名等。
②进程的当前状况。
③当前队列链接指针。
④进程的家族关系。
为了中断处理,进程控制块的内容应该包括处理机状态信息和各种寄存器的内容,如通用寄存器、指令计数器、程序状态字(PSW)寄存器及栈指针等。
为了文件管理的需要,进程在执行时,可能与其他进程有同步关系或相互通信,进程使用的信号量、消息队列指针等都要存放在PCB中。
为了设备管理,进程控制块的内容应该包括进程所需全部资源以及已经占有的资源等。
5.假设系统就绪队列中有10个进程,这10个进程轮换执行,每隔300ms轮换一次,CPU在进程切换时所花费的时间是10ms,试问系统化在进程切换上的开销占系统整个时间比例的多少?
答:
10/(300+10)=3.2﹪
6.试述线程的特点及其与进程之间的关系。
答:
线程是进程的一个实体,是被独立调度和分派的基本单位。
同一进程内的多个线程都可以访问进程的所有资源,线程之间的通信比进程之间的通信方便。
线程与进程的关系:
线程与进程是两个密切相关的概念,一个进程至少拥有比一个线程(该线程为主线程),进程根据需要创建若干个线程。
进程中的所有线程共享该进程资源,它们驻留在同一块地址空间中,并且可以访问到相同的数据。
7.根据图2-18,回答以下问题。
(1)进程发生状态变迁1、3、4、6、7的原因。
答:
1:
表示新进程创建以后,进入高优先级就绪队列。
3:
表示正在运行的进程请求I/O或等待某事件,运行的进程进入阻塞队列。
4:
表示进程运行的时间片用完。
6:
表示进程I/O或等待某事件完成,进程又重新进入就绪队列。
7:
进程运行完成退出。
(2)系统中常常由于某一进程的状态变迁引起另一进程也产生状态变迁,这种变迁称为因果变迁。
下述变迁是否是因果变迁:
3→2,4→5,7→2,3→6,试说明原因。
答:
3→2是因果变迁,当一个进程从运行变为阻塞时,此时CPU空闲,首选一优先级高的进程投入运行。
4→5是因果变迁,进程在就绪队列中轮换运行,当一进程时间片用完CPU空闲,此时立即选择一进程投入运行,若无高优先级只能提低优先级。
7→2是因果关系,当进程运行完成退出后,CPU空闲,高优先级进程投入运行。
3→6不是因果变迁,因为进程由于自身原因发生阻塞和另一进程等待时间达到没有关系。
(3)根据此进程状态转换图,说明该系统CPU调度的策略和效果。
图2-18进程状态转换图
答:
当进程调度时,首先从高优先级就绪队列选择一进程,赋予时间片为100ms。
如果高优先级就绪队列为空,则从低优先级就绪队列选择进程,但赋予500ms。
这一策略照顾了短进程,一个进程如果在100ms运行完毕它将退出系统,照顾了I/O量大的进程,进程因I/O进入阻塞队列,当I/O完成后它就进入了高优先级就绪队列。
8.回答以下问题。
(1)若系统中没有运行进程,是否一定没有就绪进程?
为什么?
答:
是,若系统中没有运行的进程,系统会马上选择一个就绪进程队列中的进程投入运行。
只有就绪队列为空时,CPU才会空闲。
(2)若系统中既没有运行进程,也没有就绪进程,系统中是否没有阻塞进程?
请解释。
答:
不一定,当系统中所有进程都在请求I/O或等待某事件时他们都处于阻塞状态,此时既没有就绪进程也没有运行进程。
(3)如果系统采用优先级调度策略,运行的进程是否一定是系统中优先级最高的进程?
为什么?
答:
不一定,因为最高优先级的进程可能处于等待状态,进程调度只能从就绪队列中挑选一个进程投入运行。
被选中运行的进程是就绪队列中优先级最高的,但它处于整个系统中不一定是最高的。
9.假如有以下程序段,回答下面问题。
(1)并发程序执行的Bernstein条件是什么?
(2)试画图表示它们执行时的先后次序。
(3)利用Bernstein条件证明,
、
和
哪两个可以并发执行,哪两个不能。
(1)答:
程序P1和P2并发执行的条件,当且仅当
R(P1)∩W(P2)∪R(P2)∩W(P1)∪W(P1)∩W(P2)={}
(2)答:
(3)答:
S1和S2不能并发执行:
R(S2)∩W(S1)={a};
R(S1)∩W(S2)={};
S1和S3不能并发执行:
R(S3)∩W(S1)={a};
R(S1)∩W(S3)={};
S2和S3能并发执行:
R(S2)∩W(S3)∪R(S3)∩W(S2)∪W(S2)∩W(S3)={};
第三章
思考与练习题
1.以下进程之间存在相互制约关系吗?
若存在,是什么制约关系?
为什么?
(1)几个同学去图书馆借同一本书。
答:
互斥关系;只有一本书,先到者先得,剩下的人必须等待。
(2)篮球比赛中两队同学争抢篮板球。
答:
互斥关系;先抢到篮板球者先得分,由于争抢篮板球,产生制约关系。
(3)果汁流水线生产中捣碎、消毒、灌装、装箱等各道工序。
答:
同步关系;果汁的生产存在某种时序关系,它们按照规定的时序执行,以共同完成一项任务。
(4)商品的入库和出库。
答:
同步关系;只有商品先入库了才能出库,所以存在一定的时序关系。
(5)工人做工与农民种粮。
答:
没有相互制约关系。
2.在操作系统中引入管程的目的是什么?
条件变量的作用是什么?
答:
用信号量可以实现进程之间的同步和互斥,但要设置很多信号量,使用大量的P、V操作,还要仔细安排多个P操作的排列次序,否则将出现错误的结果或出现死锁现象。
为了解决这些问题引入了管程。
条件变量的作用:
条件变量是一种机制,使得进程不仅能被挂起,而且当条件满足且管程再次可用时,可以恢复该进程并允许它在挂起点重新进入管程。
管程必须使用条件变量提供对同步支持,这些条件变量包含在管程中,并且只有在管程中才能被访问。
3.说明P、V操作为什么要设计成原语。
答:
原语由若干指令构成,是用于完成一定功能的过程。
用信号量S表示共享资源,其初值为1表示有一个资源。
现在有两个进程申请该资源,其中一个进程先执行P操作,P操作由三条指令组成,先去S的寄存器使其减一再赋给S,若不用原语实现,在执行前两条指令时还没有把S-1的值赋给S进程被剥夺CPU,另一进程也要执行P操作。
正确的结果是一个进程执行完,使另一进程阻塞。
4.设有一个售票大厅,可容纳200人购票。
如果厅内不足200人则允许进入,超过则在厅外等候;售票员某时只能给一个购票者服务,购票者买完票后就离开。
试问:
(1)购票者之间是同步关系还是互斥关系?
答:
购票者之间是互斥关系。
(2)用P、V操作描述购票者的工作过程。
答:
5.进城之间的关系如图3-16所示,试用P、V操作描述它们之间的同步。
图3-16进程之间的关系
答:
6.有四个进程P1、P2、P3、和P4共享一个缓冲区,进程P1向缓冲区中存入消息,进程P2、P3和P4从缓冲区中取消息,要求发送者必须等三个进程都取过本条消息后才能发送下一条消息。
缓冲区每次只能容纳一个消息,用P、V操作叙述四个进程存取消息的情况。
答:
7.分析生产者—消费者问题中多个P操作颠倒引起的后果。
答:
多个P操作的次序不能颠倒,在程序中,应先对资源信号执行P操作,再对互斥信号量执行P操作,否则可能引起死锁。
如以下的程序将P操作颠倒,先对互斥信号量执行P操作,此时易出现死锁现象,当消费者进程运行时,在full信号量上阻塞,此时mutex=0,在想运行生产者程序mutex=-1<0,此时生产者进程阻塞就产生死锁,生产者和消费者两个进程均不能运行。
8.读者—写者问题中写者优先算法的实现。
9.写一个用信号量解决哲学家进餐问题不产生死锁的算法。
答:
书上所提供的方法可能导致哲学家都只拿一只筷子而导致死锁且无法唤醒所有阻塞的进程。
考虑引入一个互斥信号量mutex使哲学家一个个的进餐这样就不会引起死锁现象。
新设计的进程如下:
10.一个文件可有若干个不同进程所共享,每个进程具有唯一的编码。
假定文件可由满足下列限制的若干个进程同时访问,并发访问该文件的那些进程的编号的总和不得大于n,设计一个协调对该文件访问的管程。
答:
11.用管程解决读者—写者问题,并采用公平原则。
第四章
思考与练习题
1.某进程被唤醒后立即投入运行,能说明该系统采用的是可剥夺调度算法吗?
答:
不能说明该系统采用的是可剥夺调度算法。
当进程被唤醒时,此时就绪队列没有一个进程,则调度程序将它投入运行。
2.在哲学家进餐问题中,如果将先拿起左边筷子的哲学家称为左撇子,将先拿起右边筷子的哲学家称为右撇子。
请说明在同时存在左、右撇子的情况下,任何的就座安排都不能产生死锁。
答:
产生死锁,有以下四个必要条件:
互斥、请求与保持、不可剥夺、环路。
此时哲学家进餐的问题,满足互斥、请求与保持和不可剥夺这三个条件。
但是要满足环路条件,哲学家就需同时拿起左边或右边的筷子,即哲学家要么是左撇子,要么是右撇子。
可是此时同时存在左、右撇子则不满足环路条件,任何就座安排都不产生死锁。
3.系统中有5个资源被4个进程所共享,如果每个进程最多需要2个这种资源,试问系统是否会产生死锁。
答:
当资源数小于请求改种资源的进程数,就有可能产生死锁。
现在由题可知每个进程最多需要2个资源,例如此时每个进程都先使用一个资源,则只剩下一个资源可供一个进程使用,这时一个进程申请资源,其他进程阻塞。
这个进程运行完以后释放资源,此时唤醒其他阻塞进程运行,则不会造成进程阻塞而且还无法被唤醒。
系统不产生死锁。
4.计算机系统有8台磁带机,由N个进程竞争使用,每个进程最多需要3台。
问:
当N为多少时,系统没有死锁的危险?
答:
当N=1时,一个进程最多需要3台磁带机,此时不会产生死锁现象。
当N=2时,两个进程申请6台,也足够使用,也不出现死锁现象。
当N=3时,此时有进程不能完全得到3台,可是其他进程运行完以后释放磁带机,则此时阻塞的进程可以运行,也不会出现死锁的危险。
当N=4时,可能出现每个进程都抢占到2台的情况,此时每个进程都不能运行下去,就出现了死锁。
于是可以得出结论:
当N<4时,系统不会出现死锁的危险。
5.假设系统有5个进程,它们的到达时间和服务时间如表4–8所示。
新进程(没有运行过)与老进程(运行过的进程)的条件相同时,假定系统选新进程运行。
表4-8进程情况
进程名
到达时间
服务时间
A
0
3
B
2
6
C
4
4
D
6
5
E
8
2
若按先来先服务(FCFS),时间片轮转法(时间片q=1),短进程优先(SPN)、最短剩余时间优先(SRT,时间片q=1)、响应比高者优先(HRRN)及多级反馈队列(MFQ,第一队列的时间片为1,第i(i>1)个队列的时间片q=2(i-1)算法进行CPU调度,请给出各个进程的完成时间、周转时间、带权周转时间,及所有进程的平均周转时间和平均带权周转时间。
平均周转时间为
其中
是每个作业的周转时间,
是作业的个数。
平均带权周转时间为
其中
为带权周转时间,
是作业的个数。
以下是六种调度算法周转时间、平均周转时间、带权周转时间和平均带权周转时间的表格
进程名
A
B
C
D
E
平均
到达时间
0
2
4
6
8
服务时间
3
6
4
5
2
先来先
服务
完成时间
3
9
13
18
20
周转时间
3
7
9
12
12
8.6
带权周转时间
1
1.17
2.25
2.4
6
2.56
时间片
轮转法
q=1
完成时间
4
18
17
20
15
周转时间
4
16
13
14
7
10.8
带权周转时间
1.3
2.67
3.25
2.8
3.5
2.71
短进程
优先
完成时间
3
9
15
20
11
周转时间
3
7
11
14
3
7.6
带权周转时间
1
1.17
2.75
2.8
1.5
1.84
最短剩
余时间
优先
完成时间
3
15
8
20
10
周转时间
3
13
4
14
2
7.2
带权周转时间
1
2.17
1
2.8
1
1.59
响应者比
高者
优先
完成时间
3
9
13
20
15
周转时间
3
7
9
14
7
8
带权周转时间
1
1.17
2.25
2.8
3.5
2.14
多级反
馈队列
完成时间
3
17
18
20
14
周转时间
3
15
14
14
6
10.4
带权周转时间
1
2.5
3.5
2.8
3
2.56
6.设系统中有5个进程P1、P2、P3、P4和P5,有三种类型的资源A、B和C,其中A资源的数量是17,B资源的数量是5,C资源的数量是20,T0时刻系统状态如表4-9所示。
表4-9T0时刻系统状态
进程
已分配资源数量
最大资源需求量
仍然需求资源数
A
B
C
A
B
C
A
B
C
P1
2
1
2
5
5
9
3
4
7
P2
4
0
2
5
3
6
1
3
4
P3
4
0
5
4
0
11
0
0
6
P4
3
0
4
4
2
5
2
2
1
P5
3
1
4
4
2
4
1
1
0
⑴计算每个进程还可能需要的资源,并填入表的“仍然需要资源数”栏目中。
⑵T0时刻系统是否处于安全状态?
为什么?
答:
系统属于安全状态,因为此时可以找到一组安全序列P4、P5、P2、P1、P3。
⑶如果T0时刻进程P2又有新的资源请求(0,3,4),是否实施资源分配?
为什么?
答:
不实施资源分配,因为此时P2有新的资源请求(0,3,4)则此时P2的最大资源需求量为(5,6,10),由题知B资源数量是5,此时若分配资源P2因为B资源数量不够阻塞,不能释放资源,可能产生死锁现象。
⑷如果T0时刻,若进程P4又有新的资源请求(2,0,1),是否实施资源分配?
为什么?
答:
实施资源分配,此时P4的最大资源需求量达到(6,2,6)。
此时可以先向P5分配资源,P5使用完以后释放资源此时资源数为(5,4,7),然后在向进程P4进行资源分配。
⑸在(4)的基础上,若进程P1又有新的资源请求(0,2,0),是否实施资源分配?
为什么?
答:
不实施资源分配,因为此时P1的最大资源需求量为(5,7,9),由题知B资源最大为5,此时若实施资源分配,进程P1不释放资源容易造成死锁现象。
第五章
思考与练习题
1.存储管理的基本任务是为多道程序的并发执行提供良好的存储环境,这包括哪些方面?
答:
(1)能使存储器有较好的利用率。
(2)为用户对信息的访问、保护、共享以及程序的动态链接、动态增长提供方便。
(3)从逻辑上扩充内存容量,为用户提供更大的存储空间,使更多的程序同时投入运行或是很大的程序在较小的内存中运行。
(4)防止某道程序干扰和破坏其他用户程序或系统程序,存储管理提供了一定的存储保护措施。
2.页式存储管理系统是否产生碎片?
如何应对此现象?
答:
页式存储管理系统在为进程分配内存空间时