操作系统课后习题
答案
八年级地理上册填图题岩土工程勘察试题省略号的作用及举例应急救援安全知识车间5s试题及答案
2. OS?
a. OS作为用户与计算机硬件系统之间的接口;
b. OS作为计算机系统资源的管理者;
c. OS作为扩充机器.
6. ?
用户的需要.即对用户来说,更好的满足了人-机交互,共享主机以及便于用户上机的需
求.
10 .
a. 分时系统是一种通用系统,主要用于运行终端用户程序,因而它具有较强的交互能力;
而实时系统虽然也有交互能力,但其交互能力不及前者.
b. 实时信息系统对实用性的要求与分时系统类似,都是以人所能接收的等待时间来确
定;而实时控制系统的及时性则是以控制对象所要求的开始截止时间和完成截止时间
来确定的.
c. 实时系统对系统的可靠性要求要比分时系统对系统的可靠性要求高. 11 OS??
a. 并发(Concurrence),共享(Sharing),虚拟(Virtual),异步性(Asynchronism).
b. 其中最基本特征是并发和共享.
15 ??
a. 进程控制,进程同步,进程通信和调度.
b. 进程控制的主要任务是为作业创建进程,撤销已结束的进程,以及控制进程在运行过
程中的状态转换.
---进程同步的主要任务是对诸进程的运行进行调节.
---进程通信的任务是实现在相互合作进程之间的信息交换.
---调度分为作业调度和进程调度.作业调度的基本任务是从后备队列中按照一定的算法,
选择出若干个作业,为它们分配必要的资源;而进程调度的任务是从进程的就绪队列
中,按照一定的算法选出一新进程,把处理机分配给它,并为它设置运行现场,是进
程投入运行.
16 ??
a. 主要功能: 内存分配,内存保护,地址映射和内存扩充等.
b. 内存分配的主要任务是为每道程序分配内存空间,提高存储器利用率,以减少不可用
的内存空间,允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长
的需要.;内存保护的主要任务是确保每道用户程序都在自己的内存空间中运行,互不
干扰;地址映射的主要任务是将地址空间中的逻辑地址转换为内存空间中与之对应的
物理地址;内存扩充的主要任务是借助虚拟存储技术,从逻辑上去扩充内存容量.
17 ??
a. 主要功能: 缓冲管理,设备分配和设备处理,以及虚拟设备等.
b. 主要任务: 完成用户提出的I/O请求,为用户分配I/O设备;提高CPU和I/O设备的
利用率;提高I/O速度;以及方便用户使用I/O设备. 18 ??
a. 主要功能: 对文件存储空间的管理,目录管理,文件的读,写管理以及文件的共享和
保护.
b. 主要任务: 对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性.
第二章:
3. ?
因为:
– 外设中断发生会暂时中断程序的执行转去处理中断;
– 处理器为各并发程序所共享,需要为各程序服务,暂时未得到服务的程序需要暂停
运行;
– 并发程序运行过程中可能需要访问或使用独占设备、共享变量,需要按顺序,在保
证正确性前提下使用;
– 并发程序间可能需要合作而相互等待。 4. ?
因为程序并发执行时,多个程序共享系统中的各种资源,资源状态需要多个程序来改变,
即存在资源共享性使程序失去封闭性;而失去了封闭性导致程序失去可再现性.
11. .
a. 处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态变
为执行状态.
b. 当前进程因发生某事件而无法执行,如访问已被占用的临界资源,就会使进程由执行
状态转变为阻塞状态.
c. 当前进程因时间片用完而被暂停执行,该进程便由执行状态转变为就绪状态.
12. ??
a. 引入挂起状态处于5中需要: 终端用户的需要,父进程的需要,操作系统的需要,对
换的需要和负荷调节的需要.
b. 处于挂起状态的进程不能接收处理机调度. 14 .
用户登陆;作业调度;提供服务;应用请求;
16 ?
a. 操作系统发现请求创建新进程事件后,调用进程创建原语Creat();
b. 申请空白PCB;
c. 为新进程分配资源;
d. 初始化进程控制块;
e. 将新进程插入就绪队列.
第三章:
2. """
"?
为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问
的临界资源是否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行
访问,并设置正被访问标志,如果正被访问,则本进程不能进入临界区,实现这一功
能的代码成为"进入区"代码;在退出临界区后,必须执行"退出区"代码,用于恢复未
被访问标志.
3. ??
a. 空闲让进.
b. 忙则等待. c. 有限等待. d. 让权等待.
6. ?
a. 在整型信号量机制中,未遵循"让权等待"的准则.
b.
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
型信号量机制完全遵循了同步机构的"空闲让进,忙则等待,有限等待,让权等待"四条
准则.
9. signal(full)signal(empty),
?
:
var mutex,empty,full: semaphore:=1,n,0;
buffer: array[0,...,n-1] of item;
in,out: integer:=0,0;
begin
parbegin
producer: begin
repeat
.
.
produce an item in nextp;
.
.
wait(empty);
wait(mutex);
buffer(in):=nextp;
in:=(in+1) mod n;
signal(mutex);
/* ************** */
signal(full);
/* ************** */
until false;
end
consumer: begin
repeat
wait(full);
wait(mutex);
nextc:=buffer(out);
out:=(out+1) mod n;
signal(mutex);
/* ************** */
signal(empty);
/* ************** */
consume the item in nextc;
until false;
end
parend
end
可见,生产者可以不断地往缓冲池送消息,如果缓冲池满,就会覆盖原有数据,造成数
据混乱.而消费者始终因wait(full)操作将消费进程直接送入进程链表进行等待,无法
访问缓冲池,造成无限等待.
10. waitwait(full)wait(mutex)
signal(mutex)signal(full)?
var mutex,empty,full: semaphore:=1,n,0;
buffer: array[0,...,n-1] of item;
in,out: integer:=0,0; begin
parbegin
producer: begin
repeat
.
.
produce an item in nextp; .
.
wait(empty);
wait(mutex);
buffer(in):=nextp;
in:=(in+1) mod n;
/* ***************** */ signal(full);
signal(mutex);
/* ***************** */ until false;
end
consumer: begin
repeat
/* **************** */ wait(mutex);
wait(full);
/* **************** */ nextc:=buffer(out);
out:=(out+1) mod n;
signal(mutex);
signal(empty);
consume the item in nextc; until false;
end
parend
end
a. wait(full)和wait(mutex)互换位置后,因为mutex在这儿是全局变量,执行完wait(mutex),则mutex赋值为0,倘若full也为0,则该生产者进程就会转入进程链表进行等待,而生产者进程会因全局变量mutex为0而进行等待,使full始终为0,
这样就形成了死锁.
b. 而signal(mutex)与signal(full)互换位置后,从逻辑上来说应该是一样的.
12. : producer:
begin
repeat
.
.
producer an item in nextp;
wait(mutex);
wait(full); /* 应为wait(empty),而且还应该在wait(mutex)的前面 */ buffer(in):=nextp;
/* 缓冲池数组游标应前移: in:=(in+1) mod n; */
signal(mutex);
/* signal(full); */
until false;
end
consumer:
begin
repeat
wait(mutex);
wait(empty); /* 应为wait(full),而且还应该在wait(mutex)的前面 */ nextc:=buffer(out);
out:=out+1; /* 考虑循环,应改为: out:=(out+1) mod n; */
signal(mutex);
/* signal(empty); */
consumer item in nextc;
until false;
end
19 AND?AND.
为解决并行所带来的死锁问题,在wait操作中引入AND条件,其基本思想是将进程在整个运行过程中所需要的所有临界资源,一次性地全部分配给进程,用完后一次性释
放.
解决生产者-消费者问题可描述如下:
var mutex,empty,full: semaphore:=1,n,0;
buffer: array[0,...,n-1] of item;
in,out: integer:=0,0;
begin
parbegin
producer: begin
repeat
.
.
produce an item in nextp;
.
.
wait(empty);
wait(s1,s2,s3,...,sn); //s1,s2,...,sn为执行生产者进程除empty外其余的条件
wait(mutex);
buffer(in):=nextp;
in:=(in+1) mod n;
signal(mutex);
signal(full);
signal(s1,s2,s3,...,sn);
until false;
end
consumer: begin
repeat
wait(full);
wait(k1,k2,k3,...,kn); //k1,k2,...,kn为执行消费者进程除full外其余的条件
wait(mutex);
nextc:=buffer(out);
out:=(out+1) mod n;
signal(mutex);
signal(empty);
signal(k1,k2,k3,...,kn);
consume the item in nextc;
until false;
end
parend
end
21 .
用户用低级通信工具实现进程通信很不方便,因为其效率低,通信对用户不透明,所有
的操作都必须由程序员来实现. 而高级通信工具则可弥补这些缺陷,用户可直接利用
操作系统所提供的一组通信命令,高效地传送大量的数据.
第四章:
1. ??
a. 作业调度又称宏观调度或高级调度,其主要任务是按一定的原则对外存上处于后备状
态的作业进行选择,给选中的作业分配内存,输入输出设备等必要的资源,并建立相
应的进程,以使该作业的进程获得竞争处理机的权利.
b. 进程调度又称微观调度或低级调度,其主要任务是按照某种策略和方法选取一个处于
就绪状态的进程,将处理机分配给它.
c. 为了提高内存利用率和系统吞吐量,引入了中级调度.
9. ?
a. 面向用户的准则有周转时间短,响应时间快,截止时间的保证,以及优先权准则. b. 面向系统的准则有系统吞吐量高,处理机利用率好,各类资源的平衡利用.
27 ??
a. 死锁是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将永远
不能再向前推进;
b. 产生死锁的原因有二,一是竞争资源,二是进程推进顺序非法; c. 必要条件是: 互斥条件,请求和保持条件,不剥夺条件和环路等待条件.
30 P0Request0(0,2,0)Request0(0,1,0),
?
可以.
首先,Request0(0,1,0)<=Need0(7,4,3), Request0(0,1,0)<=Available(2,3,0);
分配后可修改得一资源数据表(表略),进行安全性检查,可以找到一个安全序列
{P1,P4,P3,P2,P0},或{P1,P4,P3,P0,P2},因此,系统是安全的,可以立即将资源分配给
P0.
第五章:
2 ?? a. 首先由编译程序将用户源代码编译成若干目标模块,再由链接程序将编译后形成的目
标模块和所需的库函数链接在一起,组成一个装入模块,再由装入程序将装入模块装
入内存;
b. 装入模块的方式有: 绝对装入方式,可重定位方式和动态运行时装入方式; c. 绝对装入方式适用于单道程序环境下;
d. 可重定位方式适用于多道程序环境下;
e. 动态运行时装入方式也适用于多道程序环境下.
5. ?
a. 静态链接是指事先进行链接形成一个完整的装入模块,以后不再拆开的链接方---式; b. 装入时动态链接是指目标模块在装入内存时,边装入边链接的链接方式; c. 运行时的动态链接是将某些目标模块的链接推迟到执行时才进行.
9. ?? a. 回收区与插入点的前一个分区相邻接,此时可将回收区与插入点的前一分区合并,不
再为回收分区分配新表项,而只修改前邻接分区的大小; b. 回收分区与插入点的后一分区相邻接,此时合并两区,然后用回收区的首址作为新空
闲区的首址,大小为两者之和;
c. 回收区同时与插入点的前后两个分区邻接,此时将三个分区合并,使用前邻接分区的
首址,大小为三区之和,取消后邻接分区的表项;
d. 回收区没有邻接空闲分区,则应为回收区单独建立一个新表项,填写回收区的首址和
大小,并根据其首址,插入到空闲链中的适当位置.
15 ?
a. 对对换空间的管理;
b. 进程的换出;
c. 进程的换入.
22 ?
首先,必须配置一段表寄存器,在其中存放段表始址和段长TL. 进行地址变换时,先利
用段号S,与段长TL进行比较,若S
=TL,表示段号太大,
访问越界,产生越界中断信号)于是利用段表始址和段号来求出该段对应的段表项在
段表中的位置,从中求出该段的页表始址,并利用逻辑地址中的段内页号P来获得对
应页的页表项位置,从中读出该页所在的物理块号b,再用块号b和页内地址构成物
理地址.
26 ?
a. 分页和分段都采用离散分配的方式,且都要通过地址映射机构来实现地址变换,这是
它们的共同点;
b. 对于它们的不同点有三,第一,从功能上看,页是信息的物理单位,分页是为实现离
散分配方式,以消减内存的外零头,提高内存的利用率,即满足系统管理的需要,而
不是用户的需要;而段是信息的逻辑单位,它含有一组其意义相对完整的信息,目的
是为了能更好地满足用户的需要;
c. 页的大小固定且由系统确定,而段的长度却不固定,决定于用户所编写的程序;
d. 分页的作业地址空间是一维的,而分段的作业地址空间是二维的.
第六章:
4. ?
a. 对于为实现请求分页存储管理方式的系统,除了需要一台具有一定容量的内存及外
存的计算机外,还需要有页表机制,缺页中断机构以及地址变换机构;
b. 对于为实现请求分段存储管理方式的系统,除了需要一台具有一定容量的内存及
外存的计算机外,还需要有段表机制,缺段中断机构以及地址变换机构; 13 LRU为4,3,2,1,4,3,5,4,3,2,1,5,当分配给该作业的物理块数M分别为3和4时,试计算访问过程中所发生的缺页次数和缺页率?比较所得结果?
(1)M=3时,
4 3 2 1 4 3 5 4 3 2 1 5 4 4 4 1 1 1 5 5 5 2 2 2
3 3 3 4 4 4 4 4 4 1 1
2 2 2 3 3 3 3 3 3 5
x x x x x x x ? ?
缺页次数为7(或10),缺页率为7/12=0.583 (或10/12=0.83)
(2)M=4时,
4 3 2 1 4 3 5 4 3 2 1 5 4 4 4 4 4 4 4 4 4 4 4 5
3 3 3 3 3 3 3 3 3 3 3
2 2 2 2 5 5 5 5 1 5
1 1 1 1 1 1 2 2 2
x x x x ? ? ? ?
缺页次数为4(或8),缺页率为4/12=0.333( 或8/12=0.67)
结果表明,分配的物理块越多,缺页率则越低。
.
15 Clock.
a. 因为对于修改过的页面在换出时所付出的开销将比未被修改过的页面的开销大,所以
在改进型Clock算法中,出了须考虑到页面的使用情况外,还须再增加一个置换代价
这一因素;
b. 在选择页面作为淘汰页面时,把同时满足未使用过和未被修改作为首选淘汰页面. 18 ? ?
a. 抖动(Thrashing)就是指当内存中已无空闲空间而又发生缺页中断时,需要从内存中调
出一页程序或数据送磁盘的对换区中,如果算法不适当,刚被换出的页很快被访问,
需重新调入,因此需再选一页调出,而此时被换出的页很快又要被访问,因而又需将
它调入,如此频繁更换页面,以致花费大量的时间,我们称这种现象为"抖动";
b. 产生抖动的原因是由于CPU的利用率和多道程序度的对立统一矛盾关系引起的,为
了提高CPU利用率可提高多道程序度,但单纯提高多道程序度又会造成缺页率的急剧上升,
导致CPU的利用率下降,而系统的调度程序又会为了提高CPU利用率而继续提高多道程序
度,形成恶性循环,我们称这时的进程是处于"抖动"状态.
第七章:
10
设备中断处理程序通常需完成如下工作:(1)唤醒被阻塞的驱动程序进程;(2)保护被中断进程的CPU环境;(3)分析中断原因、转入相应的设备中断处理程序;(4)进行中断处理;(5)恢复被中断进程的现场。
17DMA
以从磁盘读入数据为例来说明DMA方式的工作
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
:当CPU要从磁盘读入一数据块时,
便向磁盘控制器发送一条读命令,该命令被送入DMA控制器的命令寄存器CR中。
同时,还需发送本次要将数据读入的内存起始目标地址,该地址被送入DMA控制器
的内存地址寄存器MAR中;本次要读的字(节)数则送至DMA控制器的数据计数
器DC中。另外,还需将磁盘中数据读取的源地址直接送到DMA控制器的I/O控制
逻辑上。然后,启动DMA控制器进行数据传送。此后,CPU便可去处理其它任务,
而整个的数据传送便由DMA控制器负责控制。当DMA控制器已从磁盘中读入一个
字(节)的数据,并送入DMA控制器的数据寄存器DR后,再挪用一个存储器周期,
将该字(节)传送到MAR所指示的内存
单元
初级会计实务单元训练题天津单元检测卷六年级下册数学单元教学设计框架单元教学设计的基本步骤主题单元教学设计
中。接着,便对MAR内容加1和将DC
内容减1。若DC内容减1后不为0,表示传送未完,便准备再传送下一个字(节),
否则,由DMA控制器发出中断请求。参图所示:
第八章:
2 答: 文件系统模型如图所示:
(1)最低层为对象及其属性说明,主要包括文件、目录、磁盘存储空间等三类对象。(2)最高层是文件系统提供给用户的接口,分为命令接口、程序接口和图形化用户接口等三
种类型。(3)中间层是对对象进行操纵和管理的软件集合,是文件系统的核心部分,拥
有文件存储空间管理、文件目录管理、地址映射、文件读写管理及文件共享与保护等诸
多功能。具体又可分为四个子层:?I/O控制层(又称为设备驱动程序层),主要由磁盘
驱动程序和磁带驱动程序组成,负责启动I/O设备和对设备发来的中断信号进行处理;
?基本文件系统层(又称为物理I/O层),主要用于处理内存与磁盘或磁带机系统之间数
据块的交换,通过向I/O控制层发送通用指令及读写的物理盘块号与缓冲区号等I/O参数来完成;?基本I/O管理程序层(即文件组织模块层),负责完成与磁盘I/O有关的大量事务,包括文件所在设备的选定、文件逻辑块号到物理块号的转换、空闲盘块的管理
及I/O缓冲的指定等;?逻辑文件系统层,负责所读写的文件逻辑块号的确定、目录项
的创建与修改、文件与记录的保护等。
文件系统接口
对对象操纵和管理的软件集合 逻辑文件系统
基本I/O管理程序(文件组织模块)
基本文件系统(物理I/O层)
I/O控制层(设备驱动程序) 6
对象及其属性说明 文件的逻辑结构是指从用户的观点出发所观察到的文件组织形式,也就是用户可以直接
处理的数据及其结构,它独立于物理特性;而文件的物理结构则是指文件在外存上的存
储组织形式,与存储介质的存储性能有关。
8
为了提高对变长记录顺序文件的检索速度,可为其建立一张索引表,以主文件中每条记
录的长度及指向对应记录的指针(即该记录在逻辑地址空间的首址)作为相应每个表项的内
容。由于索引表本身是一个定长记录的顺序文件,若将其按记录键排序,则可以实现对主文
件的方便快速的直接存取。需要指出的是,如果文件较大,应通过建立分组多级索引以进一
步提高检索效率。
20
假设用户给定的文件路径名为/Level1/Level2/„/Leveln/datafile,则关于树型目录结构采用线性检索法检索该文件的基本过程为:?读入第一个文件分量名Level1,用它与根目录文件(或当前目录文件)中各个目录项的文件名顺序地进行比较,从中找出匹配者,并得到匹
配项的索引结点号,再从对应索引结点中获知Level1目录文件所在的盘块号,将相应盘块
读入内存。?对于2~n,循环执行以下步骤,以检索各级目录文件:读入第i个文件分量名Leveli,用它与最新调入内存的当前目录文件中各个目录项的文件名顺序地进行比较,从中
找出匹配者,并得到匹配项的索引结点号,再从对应索引结点中获知Leveli目录文件所在的盘块号,将相应盘块读入内存。?读入最后一个文件分量名即datafile,用它与第n级目录文件中各个目录项的文件名进行比较,从而得到该文件对应的索引结点号,进而找到该文
件物理地址,目录查找操作成功结束。如果在上述查找过程中,发现任何一个文件分量名未
能找到,则停止查找并返回“文件未找到”的出错信息。
29
针对访问矩阵按列(对象)进行划分,为每一列建立一张访问控制表,同时将访问矩阵
属于对应列的所有空项删除,故而访问控制表由有序对集{<域,权集>}所组成,可用于描述不同用户(进程)关于同一对象的不同访问权限集。针对访问矩阵按行(域)进行划分,
为每一行建立一张访问权限表,其由有序对集{<对象,权集>}所组成。当域为用户(进程),对象为文件时,访问权限表便可用来描述一个用户(进程)对每一个文件所能执行的一组操
作。访问控制表也可用于定义各域关于某对象的缺省的访问权集,并作为资源能否使用的首
要依据。
第九章:
7. 在MS-DOS中有2个文件A和B,A占用11、12、16和14四个盘块,B占用13、18
和20三个盘块。试画出文件A和B中各盘块间链接情况及FAT情况。 答:略
141KB
根据位示图为某文件分配两个盘块的具体过程如下:(1)顺序扫描位示图,找出两个其
值均为空闲即0的二进制位Map[3, 3],Map[4, 7];(2)将二进制位Map[3, 3]和Map[4, 7]的行/列号转换为与之对应的盘块号35、55;(3)把盘块号为35和55的盘块分配给该文件,
同时修改位示图中的二进制位Map[3, 3]=1,Map[4, 7]=0。
15.某操作系统的磁盘文件共有500块,若用字长为32位的位示图管理磁盘空间,试问:
(1)位示图需要多少个字;
(2)第i字第j位对应的块号是多少?
(3)给出申请/归还一块的工作流程
答:
(1)500?32=15.6 需要16个字
(2)(i-1)×32+j
(3)申请一块流程:从第1字第1位开始搜索位数图,一次第1字的第1位到第32位,第2字的第1位到第32位,直到找到一个为0的位,假设位Map(i,j);计算其块号(i-1)+j,将该磁盘块分配出去;置Map[i,j]=1;
归还一块的流程:设归还块的块号为n, 计算其字号和位号:i= n ? 32,j=n mod 32,置map(i,j)=0;