前言,以下期末复习建议建立在第四版的 2017年10月第54次印刷下的
P31课后习题 10、11 思考题:23、25
10.试从交互性、及时性以及可靠性方面,将分时系统与实时系统进行比较。
答:(1)及时性:实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受
的等待时间来确定;而实时控制系统的及时性,是以控制对象所要求的开始截止时间或完成
截止时间来确定的,一般为秒级到毫秒级,甚至有的要低于100微妙。
(2)交互性:实时信息处理系统具有交互性,但人与系统的交互仅限于访问系统中某
些特定的专用服务程序。不像分时系统那样能向终端用户提供数据和资源共享等服务。
(3)可靠性:分时系统也要求系统可靠,但相比之下,实时系统则要求系统具有高度
的可靠性。因为任何差错都可能带来巨大的经济损失,甚至是灾难性后果,所以在实时系统
中,往往都采取了多级容错措施保障系统的安全性及数据的安全性。
11.OS有哪几大特征?其最基本的特征是什么?
答:并发性、共享性、虚拟性和异步性四个基本特征;最基本的特征是并发性。
OS有几大特征?其最基本的特征是什么?
答:OS有四个基本特征:并发、共享、虚拟和异步。其中最基本的特征是并发。
并发性是指两个或多个事件在同一时间间隔内发生。
共享是指系统中的资源可供内存中多个并发执行的进程(线程)共同使用。
虚拟是指通过某种技术把一个物理实体变为若干个逻辑上的对应物。
异步性是指进程以人们不可预知的速度向前推进。
在微内核OS中,为什么要采用客户/服务器模式?
答:C/S 模式具有独特的优点:⑴数据的分布处理和存储。⑵便于集中管理。⑶灵活性和
可扩充性。⑷易于改编应用软件
何谓微内核技术?在微内核中通常提供了哪些功能?
答:把操作系统中更多的成分和功能放到更高的层次(即用户模式)中去运行,而留下一个
尽量小的内核,用它来完成操作系统最基本的核心功能,称这种技术为微内核技术。在微内
核中通常提供了进程(线程)管理、低级存储器管理、中断和陷入处理等功能。
12. 试在交互性,及时性和可靠性方面,将分时系统与实时系统进行比较.
a. 分时系统是一种通用系统,主要用于运行终端用户程序,因而它具有较强的交互能力;而实时系统虽然也有交互能力,但其交互能力不及前。
b. 实时信息系统对实用性的要求与分时系统类似,都是以人所能接收的等待时间来确定;而实时控制系统的及时性则是以控制对象所要求的开始截止时间和完成截止时间来确定的,因此实时系统的及时性要高于分时系统的及时性。
c. 实时系统对系统的可靠性要求要比分时系统对系统的可靠性要求高
操作系统的五大功能:
A.处理机管理功能。主要任务是:创建和撤销进程(线程),对诸进程线程的运行进行协调,实现进程(线程)之间的信息交换,以及按照一定的算法把处理机费配给进程(线程)。具有进程控制、进程同步、进程通信、调度功能。
B.存储管理功能。主要任务是:为多道程序的原型提供良好的环境,方便用户使用存储器,提高存储器的利用率以及能从逻辑上扩充内存。具有内存分配、内存保护、地址映射、内存扩充功能。
C.设备管理功能。主要任务是:完成用户进程提出的I/O请求;为用户进程分配器所需的I/O设备;提高CPU和I/O设备的利用率;提高I/O速度;方便用户使用I/O设备。具有缓冲管理、设备分配、设备处理功能。
D.文件管理功能。主要任务是:对用户文件和系统文件进行管理,方便用户使用,并保证文件的安全性。具有文件存储空间的管理、目录管理、文件的读/写管理和保护功能。
E.用户接口。包括命令接口、程序接口、图形接口。
微内核OS结构
特征及应用技术:足够小的内核、基于客户/服务器模式、应用“机制与策略分离“原理、采用面对对象技术。
基本功能:(1) 进程管理(2) 存储器管理(3) 进程通信管理(4) I/O设备管理。
优点:1)提高了系统的可扩展性,2)增强了系统的可靠性,3)可移植性,4)提供而来修分布式系统的支持,5)融入了面对对象技术。
进程的特征与状态
1.进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
2、结构特征:程序段、数据段和PCB(进程控制块)
具有动态性、并发性、独立性、异步性。
3.基本状态:
1) 就绪状态-等待分配CPU
2) 执行状态-占用CPU执行
3) 阻塞状态-停止执行,等待某个事件的发生
进程的三种基本状态及其转换
进程控制块
1.进程控制块的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。或者说,OS是根据PCB来对并发执行的进程进行控制和管理的。
2.进程控制块中的信息:
1) 进程标识符-内部标识符、外部标识符
2) 处理机状态 处理机状态信息主要是由处理机的各种寄存器中的内容组成的。
3) 进程调度信息 4) 进程控制信息
3.进程控制块的组织方式 1) 链接方式 2) 索引方式
课后习题P84 6,7,21
1. 试从动态性、并发性和独立性比较进程和程序。
答:动态性:进程是程序的一次执行过程,因此是动态的,动态性还表现在进程由创建而产生、由调度而执行、由撤销而消亡,即有一定的生命周期。而程序只是一组指令的有序集合,可永久存储在某种介质上,其本身不具有运动的含义,因此是静态的。
并发性:引入进程的目的就是让多个进程实体可同时存储在内存中并发的执行。而程序(在没为它创建进程时)的并发执行具有不可再现性,因此程序不能正确的并发执行。
独立性:进程是一个独立运行、独立分配资源和独立接受调度的基本单位。而程序不具有PCB,所以不可能在多道程序环境下独立的运行。
2.进程控制块的组织方式有哪几种:
1)线性表方式:不论进程的状态如何,将所有的PCB连续地存放在内存的系统区。这种方式适用于系统中进程数目不多的情况。
2)索引表方式:该方式是线性表方式的改进,系统按照进程的状态分别建立就绪索引表、阻塞索引表等。
3)链接表方式:系统按照进程的状态将进程的PCB组成队列,从而形成就绪队列、阻塞队列、运行队列等。
3.试从调度性,并发性,拥有资源及系统开销方面对进程和线程进行比较。
答:
(1)调度性。线程在OS 中作为调度和分派的基本单位,进程只作为资源拥有的基本单位。
(2)并发性。进程可以并发执行,一个进程的多个线程也可并发执行。
(3)拥有资源。进程始终是拥有资源的基本单位,线程只拥有运行时必不可少的资源,本
身基本不拥有系统资源,但可以访问隶属进程的资源。
(4)系统开销。操作系统在创建、撤消和切换进程时付出的开销显著大于线程。
思考题:
为什么程序并发执行会产生间断性特征?
答:程序在并发执行时,由于它们共享系统资源,为完成同一项任务需要相互合作,致使这
些并发执行的进程之间,形成了相互制约关系,从而使得进程在执行期间出现间断性。
程序并发执行时为什么会失去封闭性和可再现性?
答:程序并发执行时,多个程序共享系统中的各种资源,因而这些资源的状态由多个程序改
变,致使程序运行失去了封闭性,也会导致其失去可再现性。
试说明进程在三个基本状态之间转换的典型原因。
答: (1)就绪状态→执行状态:进程分配到CPU资源
(2)执行状态→就绪状态:时间片用完
(3)执行状态→阻塞状态:I/O请求
(4)阻塞状态→就绪状态:I/O完成
为什么要在OS 中引入线程?
答:在操作系统中引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具
有更好的并发性,提高CPU的利用率。进程是分配资源的基本单位,而线程则是系统调度的
基本单位。
TCB中包含哪些内容
TCB中的主要信息包括线程标识、线程状态、调度参数、现场、链接指针
3、同步机构应遵循哪些基本原则?
答:(1) 空闲让进。(2) 忙则等待。 (3) 有限等待。 (4) 让权等待。
22、试写出相应的程序来描述图2-15所示的前趋图。
Var a,b,c,d,e,f,g,h:semaphore:=0,0,0,0,0,0,0,0;
Begin
Parbegin
Begin S1;signal(a);signal(b);end;
Begin wait(a);S2;signal(c);signal(d);end;
Begin wait(b); S3;signal(e);end;
Begin wait(c);S4;signal(f);end;
Begin wait(d);S5;signal(g);end;
Begin wait(e);S6;signal(h);end;
Begin wait(f);wait(g);wait(h);S7;end;
Parend;
end
Var a,b,c,d,e,f,g,h,i,j:semaphore:=0,0,0,0,0,0,0,0,0,0;
Begin
Parbegin
Begin S1;signal(a);signal(b);end;
Begin wait(a);S2;signal(c);signal(d);end;
Begin wait(b); S3;signal(e); signal(f);end;
Begin wait(c);S4;signal(g);end;
Begin wait(d);S5;signal(h);end;
Begin wait(e);S6;signal(i);end;
Begin wait(f);S7;signal(j);end;
Begin wait(g);wait(h);wait(i); wait(j);S8;end;
Parend;
end
26、试修改下面生产者-消费者问题解法中的错误
producer: consumer:
begin begin
repeat repeat
…… wait(mutex);
produce an item in nextp; wait(empty);
wait(mutex); nextc:=buffer(out);
wait(full); out:=out+1;àout:=(out+1)mod n;
buffer(in):=nextp; signal(mutex);
signal(mutex); consume item in nextc;
until false; unti false;
end end
36、为什么要在OS中引入线程?
答:由于进程是资源的拥有者,所以在创建、撤销、切换操作中需要较大的时空开销,限制了并发程度的进一步提高。为减少进程切换的开销,把进程作为资源分配单位和调度单位这两个属性分开处理,即进程还是作为资源分配的基本单位,但是不作为调度的基本单位(很少调度或切换),把调度执行与切换的责任交给“线程”。这样做的好处不但可以提高系统的并发度,还能适应新的对称多处理机(SMP)环境的运行,充分发挥其性能。
调度算法
先来先服务(FCFS)调度算法
适用于作业调度,进程调度(非抢占方式)。
调度方法:后备作业队列、就绪队列按FIFO排列,调度时选择处于队首的作业或进程。
优点:简单、易于实现。
缺点:1)有利于长的作业或进程,不利于短的。
2)有利于CPU繁忙型的作业或进程,不利于I/O繁忙型的作业或进程。
短作业(进程)优先调度算法
既适用于作业调度,又适用于进程调度。
调度方法:从后备作业队列、就绪队列中选择估计运行时间最短的作业或进程。既可用于非抢占方式,也可用于抢占方式。
优点:调度性能较好,系统吞吐量高。
缺点:1)不利于长的作业或进程。 2)不考虑作业或进程的紧迫程度。
3)估计运行时间很难准确获得。
高优先权优先调度算法
既适用于作业调度,又适用于进程调度。
调度方法:
选择具有最高优先权的后备作业或就绪进程。既可用于非抢占方式,也可用于抢占方式。
优点: 既照顾了作业到来的先后,又考虑了要求服务时间的长短,是FCFS和SJF的很好的折衷。
缺点:算法较为复杂;每次调度时,均要重新计算响应比。
时间片轮转法
仅适用于进程调度(抢占方式),主要为分时系统设计。
调度方法:
就绪队列按FIFO排列,调度时选择队首进程。但该进程占用CPU至多执行一个时间片,便放弃CPU。
关键:时间片大小的确定 太大:退化为FCFS
太小:系统效率降低
特点:假设所有进程都是同等重要的。
例如,有5个批处理的作业A,B,C,D,E几乎同时到达一个计算中心,估计的运行时间分另为2,4,6,8,10min,它们的优先权分别为1,2,3,4,5(5为最高优先级)。请用下面的调度算法,分别计算作业的平均周转时间(忽略作业的切换开销):
(1)时间片轮转(时间片为2min)
(2)最短作业优先
解:(1)时间片轮转,各作业的执行结束时间分别为2,12,20,26,30,平均周转时间为:
T=(2+12+20+26+30)/5=18min
(2)最短作业优先,各作业的执行结束时间分别为2,6,12,20,30,平均周转时间为:
T=(2+6+12+20+30)/5=14min
课后习题P118 3 .7 .13 .28.31
1.何谓作业、作业步和作业流?
答:作业包含通常的程序和数据,还配有作业说明书。系统根据该说明书对程序的运行进行控制。批处理系统中是以作业为基本单位从外存调入内存。
作业步是指每个作业运行期间都必须经过若干个相对独立相互关联的顺序加工的步骤。
作业流是指若干个作业进入系统后依次存放在外存上形成的输入作业流;在操作系统的控制下,逐个作业进程处理,于是形成了处理作业流。
2.试说明低级调度的主要功能。
答:(1)保存处理机的现场信息(2)按某种算法选取进程(3)把处理机分配给进程。
3.在时间片轮转法中,应如何确定时间片的大小?
答:时间片应略大于一次典型的交互需要的时间。一般应考虑三个因素:系统对相应时间的
要求、就绪队列中进程的数目和系统的处理能力。
4.在解决死锁问题的几个方法中,哪种方法最易于实现?哪种方法使资源利用率最高?
答:解决死锁的四种方法即预防、避免、检测和解除死锁中,预防死锁最容易实现;
解决死锁使资源的利用率最高。
思考题:
试比较FCFS和SPF两种进程调度算法。
答:相同点:两种调度算法都可以用于作业调度和进程调度。
不同点:FCFS调度算法每次都从后备队列中选择一个或多个最先进入该队列的作业,将它们调入内存、分配资源、创建进程、插入到就绪队列。该算法有利于长作业/进程,不利于短作业/进程。SPF算法每次调度都从后备队列中选择一个或若干个估计运行时间最短的作业,调入内存中运行。该算法有利于短作业/进程,不利于长作业/进程。
何谓死锁?产生死锁的原因和必要条件是什么?
答:死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。
产生死锁的原因:(1)竞争资源。(2) 进程间推进顺序非法。
产生死锁的必要条件:(1)互斥条件;(2) 请求和保持条件;(3) 不剥夺条件;(4) 环路等待条件。
在什么情况下需要使用作业控制块JCB?其中包含了哪些内容?
答:每当作业进入系统时,系统便为每个作业建立一个作业控制块JCB,根据作业类型将它插入到相应的后备队列中
JCB 包含的内容通常有:1) 作业标识2)用户名称3)用户账户4)作业类型(CPU繁忙型、I/O芳名型、批量型、终端型)5)作业状态6)调度信息(优先级、作业已运行)7)资源要求8)进入系统时间9) 开始处理时间10)作业完成时间11) 作业退出时间12) 资源使用情况等
在作业调度中应如何确定接纳多少个作业和接纳哪些作业?
答:作业调度每次接纳进入内存的作业数,取决于多道程序度。应将哪些作业从外存调入内存,取决于采用的调度算法。最简单的是先来服务调度算法,较常用的是短作业优先调度算法和基于作业优先级的调度算法。
何谓静态和动态优先级?确定静态优先级的依据是什么?
答:静态优先级是指在创建进程时确定且在进程的整个运行期间保持不变的优先级。
动态优先级是指在创建进程时赋予的优先权,可以随进程推进或随其等待时间增加而改变的优先级,可以获得更好的调度性能。
确定进程优先级的依据:进程类型、进程对资源的需求和用户要求
【1.处理死锁的基本方法
预防死锁-通过破除死锁的四个必要条件之一,来防止死锁产生。
避免死锁-仔细地对资源进行动态分配,以避免死锁发生。
检测与解除死锁-检测系统中是否出现死锁,若出现则解除掉。
2.死锁的检测
(1)保存有关资源的请求和分配信息;(资源分配图,RAG图)
(2)提供算法检测系统是否进入死锁状态;(死锁定理)
死锁的解除
(1) 剥夺资源——从其他进程剥夺足够数量的资源给死锁进程。
(2) 撤消进程——使全部死锁进程都夭折;按某种顺序逐个的撤销进程,直到有足够资源可用,消除死锁状态为止。】
20 在银行家算法中,若出现下述资源分配情况:
Process |
Allocation |
Need |
Available |
P0 |
0 0 3 2 |
0 0 1 2 |
1 6 2 2 |
P1 |
1 0 0 0 |
1 7 5 0 |
|
P2 |
1 3 5 4 |
2 3 5 6 |
|
P3 |
0 3 3 2 |
0 6 5 2 |
|
P4 |
0 0 1 4 |
0 6 5 6 |
|
试问: (1)该状态是否安全?
(2)若进程P2提出请求Request(1,2,2,2)后,系统能否将资源分配给它?
解:⑴该状态是安全的,因为存在一个安全序列< P0P3P4P1P2>。下表为该时刻的安全序列表。
资源情况 进程 |
Work |
Need |
Allocation |
Work+Allocation |
Finish |
P0 P3 P4 P1 P2 |
1 6 2 2 1 6 5 4 1 9 8 6 1 9 9 10 2 9 9 10 |
0 0 1 2 0 6 5 2 0 6 5 6 1 7 5 0 2 3 5 6 |
0 0 3 2 0 3 3 2 0 0 1 4 1 0 0 0 1 3 5 4 |
1 6 5 4 1 9 8 6 1 9 9 10 2 9 9 10 3 12 14 14 |
true true true true true |
⑵若进程P2提出请求Request(1,2,2,2)后,系统不能将资源分配给它,若分配给进程P2,系统还剩的资源情况为(0,4,0,0),此时系统中的资源将无法满足任何一个进程的资源请求,从而导致系统进入不安全状态,容易引起死锁的发生。
1、基本分页存储管理方式(课件) 基本分段存储管理方式(课件)
如果离散分配的基本单位是页,则称为分页式存储管理;
如果离散分配的基本单位是段,则称为分段式存储管理。
分页和分段的主要区别:
(1) 页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率。或者说,分页仅仅是由于系统管理的需要而不是用户的需要。段则是信息的逻辑单位,它含有一组其意义相对完整的信息。 分段的目的是为了能更好地满足用户的需要。
(2) 页的大小固定且由系统决定,由系统把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而在系统中只能有一种大小的页面;而段的长度却不固定, 决定于用户所编写的程序,通常由编译程序在对源程序进行编译时,根据信息的性质来划分。
(3) 分页的作业地址空间是一维的,即单一的线性地址空间,程序员只需利用一个记忆符,即可表示一个地址;而分段的作业地址空间则是二维的,程序员在标识一个地址时,既需给出段名, 又需给出段内地址。
2、页面置换算法
1)最佳置换算法-淘汰未来最长时间不再被访问的页面
其所选择的被淘汰页面,将是以后永不使用的,或许是在最长(未来)时间内不再被访问的页面。采用最佳置换算法,通常可保证获得最低的缺页率。但无法实现。
缺页率表示“缺页次数 / 内存访问次数”(比率)
2)先进先出(FIFO)页面置换算法-淘汰最先进入内存的页面,即选择在内存中驻留时间
Belady现象:随着分配的主存块数的增加,缺页次数不但没有降低,反而增加了。
原因:该算法没考虑进程实际的运行规律,因为在进程中,有些页面经常被访问,比如全局变量,常用函数,循环语句段等。
3)最近最久未使用(LRU)置换算法——淘汰最近最久没有使用的页面
4)Clock置换算法 5)最少使用(LFU)置换算法 6)页面缓冲算法(PBA)
例如,执行如下访问页号序列后:
1,2,3,4,,1,2,5,1,2,3,4,5
(1)采用先进先出(FIFO)淘汰算法,缺页次数是多少?
(2)采用最近最少使用(LRU)淘汰算法,缺页次数是多少?
(3)若用优化(OPT)算法呢?
解:(1)先进先出(FIFO)淘汰算法,缺页次数是9次。
|
1 |
2 |
3 |
4 |
1 |
2 |
5 |
1 |
2 |
3 |
4 |
5 |
3 |
1 |
2 |
3 |
4 |
1 |
2 |
5 |
5 |
5 |
3 |
4 |
4 |
|
1 |
2 |
3 |
4 |
1 |
2 |
2 |
2 |
5 |
3 |
3 |
|
|
|
1 |
2 |
3 |
4 |
1 |
1 |
1 |
2 |
5 |
5 |
|
|
√ |
√ |
√ |
√ |
√ |
√ |
√ |
|
|
√ |
√ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(2)采用最近最少使用(LRU)淘汰算法,缺页次数是10次。
|
1 |
2 |
3 |
4 |
1 |
2 |
5 |
1 |
2 |
3 |
4 |
5 |
3 |
1 |
2 |
3 |
4 |
1 |
2 |
5 |
1 |
2 |
3 |
4 |
5 |
|
1 |
2 |
3 |
4 |
1 |
2 |
5 |
1 |
2 |
3 |
4 |
|
|
|
1 |
2 |
3 |
4 |
1 |
2 |
5 |
1 |
2 |
3 |
|
|
√ |
√ |
√ |
√ |
√ |
√ |
√ |
|
|
√ |
√ |
√ |
(3)优化(OPT)算法,缺页次数是7次。
|
1 |
2 |
3 |
4 |
1 |
2 |
5 |
1 |
2 |
3 |
4 |
5 |
3 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
3 |
3 |
3 |
|
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
4 |
4 |
|
|
|
3 |
4 |
4 |
4 |
5 |
5 |
5 |
5 |
5 |
5 |
|
|
√ |
√ |
√ |
√ |
|
|
√ |
|
|
√ |
√ |
|
课后习题:P152 25 26 P177
0. 在一个请求分页系统中,产生抖动的原因
当给进程分配的内存小于所要求的工作集时,由于内存外存之间交换频繁,访问外存时间和输入输出处理时间大大增加,反而造成CPU因等待数据空转,使得整个系统性能大大下降,这就是系统产生“抖动”的原因。
1.为什么说为什么说分段系统比分页系统更易于实现信息的共享和保护?
答:分页系统的每个页面是分散存储的,为了实现信息共享和保护,页面之间需要一一对应,
为此需要建立大量的页表项;而分段系统的每个段都从0 编址,并采用一段连续的地址空
间,在实现共享和保护时,只需为要共享和保护的程序设置一个段表项,将其中的基址与内
存地址一一对应就能够实现。
2.分段和分页存储管理有何区别?
答:
(1)页是信息的物理单位,分页是为了实现离散分配方式,以消减内存的外部零头,提高内存利用率。段则是信息的逻辑单位,它含有一组相对完整的信息。
(2)页的大小固定且由系统决定,由系统把逻辑地址划分为页号和页内地址两部分,是由
机械硬件实现的,因而在系统中只能有一种大小的的页面;而段的长度却不固定,决定于用户
所编写的程序,通常由编译程序在对原程序进行编译时,根据信息的性质来划分。
(3)分页的作业地址空间是一维的,而分段作业地址空间则是二维的。
思考题:
何谓静态链接?何谓装入时动态链接和运行时的动态链接?P120
答:静态链接是指在程序运行前,先将各目标模块及它们所需的库函数,链接成一个完整的
装配模块,以后不再拆开的链接方式。
装入时动态链接是指将用户源程序编译后得到的一组目标模块,在装入内存时采用边装
入边链接的链接方式。
运行时动态链接是指对某些目标模块的链接,是在程序执行中需要该目标模块时,才对
它进行的链接。
为什么要引入动态重定位?如何实现?
答:在程序执行过程中,每当访问指令或数据时,将要访问的程序或数据的逻辑地址转换成
物理地址,引入了动态重定位;
具体实现方法是在系统中增加一个重定位寄存器,用来装入程序在内存中的起始地址,
程序执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加之和,从而实现
动态重定位。
.在具有快表的段页式存储管理方式中,如何实现地址变换?
答:在CPU给出有效地址后,由地址变换机构自动将页号P送入高速缓冲寄存器,并将此
页号与高速缓存中的所有页号比较,若找到匹配页号,表示要访问的页表项在快表中。可直
接从快表读出该页对应物理块号,送到物理地址寄存器中。如快表中没有对应页表项,则再
访问内存页表,找到后,把从页表项中读出物理块号送地址寄存器;同时修改快表,将此页
表项存入快表。但若寄存器已满,则OS必须找到合适的页表项换出。
虚拟存储器有哪些特征?其中最本质的特征是什么?
答:虚拟存储器有多次性、对换性、虚拟性三大特征。最本质的特征是虚拟性。
常规存储器管理方式具有那两大特性?它对系统性能有什么影响?
一次性、驻留性。使得许多程序运行中不用或则暂时不用的暂用大量宝贵的内存资源。
1、I/O控制方式
1)程序I/O方式 2)中断方式
3)DMA方式 4)通道方式
1)程序I/O方式评价
优点:实现简单,控制简单,基本不需额外硬件支持。
缺点:使CPU将大量的时间花费在循环等待上,使CPU效率发挥极差,外设也不能合理利用,整个系统的效率很低。
2)中断驱动I/O控制方式
优点:在外设进行数据处理时,CPU不必等待,可以继续执行该程序或其他程序。支持多道程序和设备并行操作。
缺点:CPU每次处理的数据量少(通常不超过几个字节,由数据寄存器的大小而定),只适于数据传输率较低的设备。设备速度过高的话容易造成中断次数激增导致数据丢失。
3)直接存储器访问DMA I/O控制方式
特点:
① 数据传输的基本单位是数据块;
② 所传送的数据是从设备直接送入内存的,或者相反;
③ 仅在传送数据块的开始和结束时,才需CPU干预,整块数据的传送是在DMA控制器的控制下完成的。
DMA方式的局限性
(1)DMA方式如果一次需要读多个数据块则需要CPU进行多次中断处理。
(2)多个DMA控制器的同时使用会引起内存地址的冲突并使得控制过程进一步复杂。
4)I/O通道控制方式
I/O通道方式是DMA方式的发展,它可进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预,同时又可实现CPU、通道和I/O设备三者的并行操作,从而更有效地提高整个系统的资源利用率。
2、磁盘调度
磁盘调度的目标,是使磁盘的平均寻道时间最少(即平均寻道长度最短)。
假设当前系统有磁头正在100磁道,并且某时刻依次提交如下磁道访问请求:55,58,39,18,90,160,150,38,184,请分析各种不同调度策略下的平均寻道长度。
先来先服务FCFS 最短寻道时间优先SSTF
扫描(SCAN)算法(电梯调度算法) 循环扫描(CSCAN)算法
课后习题P220:
试说明设备控制器的组成。
答:由设备控制器与处理机的接口,设备控制器与设备的接口与I/O逻辑组成。
简要说明中断处理程序对中断进行处理的几个步骤:
不同的计算机对中断的处理各具特色,就其多数而论,中断处理过程如下:
①关中断,进入不可再次响应中断的状态,由硬件实现。
②保存断点,为了在中断处理结束后能正确返回到中断点。由硬件实现。
③将中断服务程序入口地址送PC,转向中断服务程序。可由硬件实现,也可由软件实现。
④保护现场、置屏蔽字、开中断,即保护CPU中某些寄存器的内容、设置中断处理次序、允许更高级的中断请求得到响应,实现中断嵌套。由软件实现。
⑤设备服务,实际上有效的中断处理工作是在此程序段中实现的。
⑥退出中断。
设备中断处理程序通常需完成哪些工作?
答:设备中断处理程序通常需完成如下工作:
(1) 唤醒被阻塞的驱动程序进程;
(2) 保护被中断进程的CPU环境;
(3) 分析中断原因、转入相应的设备中断处理程序;
(4) 进行中断处理;
(5) 恢复被中断进程。
有哪几种I/O控制方式?各适用于何种场合?
答:共有四种I/O 控制方式。
(1)程序I/O方式:早期计算机无中断机构,处理机对I/O设备的控制采用程序I/O方式或称忙等的方式。
(2)中断驱动I/O 控制方式:适用于有中断机构的计算机系统中。
(3)直接存储器访问(DMA)I/O 控制方式:适用于具有DMA控制器的计算机系统中。
(4)I/O 通道控制方式:具有通道程序的计算机系统中。
引入缓冲的主要原因是什么?
答:引入缓冲的主要原因是:
(1)缓和CPU与I/O 设备间速度不匹配的矛盾
(2)减少对CPU的中断频率,放宽对中断响应时间的限制
(3)提高CPU与I/O 设备之间的并行性
磁盘访问时间由哪几部分组成?每部分时间应如何计算?
答:磁盘访问时间由寻道时间Ts、旋转延迟时间Tr、传输时间Tt 三部分组成。
(1)Ts 是启动磁臂时间s 与磁头移动n条磁道的时间和,即Ts = m × n + s。
(2)Tr是指定扇区移动到磁头下面所经历的时间。硬盘15000r/min时Tr为2ms;软盘300或600r/min时Tr为50~100ms。
(3)Tt 是指数据从磁盘读出或向磁盘写入经历的时间。Tt的大小与每次读/写的字节数b和旋转速度有关:Tt = b/rN。
目前常用的磁盘调度算法有哪几种?每种算法优先考虑的问题是什么?
答:目前常用的磁盘调度算法有先来先服务、最短寻道时间优先及扫描等算法。
(1) 先来先服务算法优先考虑进程请求访问磁盘的先后次序;
(2) 最短寻道时间优先算法优先考虑要求访问的磁道与当前磁头所在磁道距离是否最近;
(3) 扫描算法考虑欲访问的磁道与当前磁道间的距离,更优先考虑磁头当前的移动方向。
文件管理的功能是构建一个文件系统,负责管理外存上的文件,提供文件的存取、共享和保护,方便用户使用文件。
1、数据项:基本数据项,组合数据项
记录是一组相关数据项的集合,用于描述一个对象在某方面的属性。
关键字是唯一标识一个记录的数据项。
文件是指由创建者所定义的、具有文件名的一组相关元素的集合。最大的数据单位。
文件的属性可以包括:
(1) 文件类型(2) 文件长度 (3) 文件的物理位置(4) 文件的建立时间。
按用途分类 (1)系统文件(2) 用户文件(3) 库文件
按文件中数据的形式分类 (1)源文件(2) 目标文件(3) 可执行文件
按存取控制属性分类 (1)只执行文件(2) 只读文件(3) 读写文件
文件系统的接口 (1)命令接口(2) 程序接口
2、目录管理
对目录管理的要求如下:
(1) 实现“按名存取”。 (2) 提高对目录的检索速度。
(3) 文件共享。 (4) 允许文件重名
(1)文件控制块
基本信息类
① 文件名 ; ② 文件物理位置 ;
③ 文件逻辑结构 ;④ 文件的物理结构
(2)索引结点
查找是按文件名,因此将文件名和文件描述信息分开,分别放在目录项和索引结点中,检索时,只将目录项调入内存,找到后,将该项中的索引结点调入即可。
单级目录
优点是简单且能实现目录管理的基本功能——按名存取,但却存在下述一些缺点:(1) 查找速度慢 (2) 不允许重名 (3) 不便于实现文件共享
两级目录 优点:(1)提高了检索目录的速度
(2) 在不同的用户目录中, 可以使用相同的文件名。
(3) 不同用户还可使用不同的文件名来访问系统中的同一个共享文件
缺点:增加了系统开销。
多级目录结构
相对路径名——从当前目录开始直到数据文件为止所构成的路径名
绝对路径名——从树根开始的路径名称为绝对路径名
课后习题:P249 5,6
1.何谓逻辑文件?何谓物理文件?
答:逻辑文件是物理文件中存储的数据的一种视图方式,不包含具体数据,仅包含物理文件中数据的索引。物理文件又称文件存储结构,是指文件在外存上的存储组织形式。
2. 按文件的组织方式可将文件分为哪几种类型?(有结构文件按不同方式组织形成哪几种文件)
顺序文件、索引文件、索引顺序文件
思考题:
对目录管理的主要要求是什么?
答:实现按名存取、提高检索目录的速度、文件共享、允许文件重名。
前广泛应用的目录结构有哪些?它有什么优点?
答:现代操作系统都采用多级目录结构。基本特点是查询速度快、层次结构清晰、文件管理和保护易于实现
何谓路径名和当前目录
1.外存的组织方式
2.存储空间的管理
课后习题:P276.1
1. 目前常用的外存有哪几种组织方式?
1. 连续组织方式,所形成的文件是顺序式文件结构
2. 链接组织方式,所形成的文件是链接式文件结构
3. 索引组织方式,所形成的文件是索引式文件结构
思考题
1.在链接式文件中常用哪种链接方式?为什么?
链接方式分为隐式链接和显式链接两种形式。隐式链接是在文件目录的每个目录项中,都含有指向链接文件第一个盘块和最后一个盘块的指针。显式链接则把用于链接文件各物理块的指针,显式地存放在内存的一张链接表中。
2. 在文件分配表中为什么要引入“族”的概念?以“族”为基本的分配单位有什么好处?
由于每个FAT表(文件分配表)的分配单位容量有限,因此引入新的分配单位“zhu”,好处:能适应磁盘容量不断增大的情况,还可以减少FAT表占用更少的存储空间,并减少访问FAT表的存取开销。
3. 由连续组织方式所形成的顺序文件的主要优缺点是什么?它主要应用于何种场合?
优点:容易访问,访问速度快
缺点:1.要求为一个文件分配连续的存储空间 2.必须事先知道文件的长度
3.不能灵活地删除和插入记录 4.对于动态增长的文件,容易造成空间长期空闲
1.系统调用的概念
2.了解UNIX的系统调用
接口形式有哪几种:
字符显示式联机用户接口(联机命令接口)、图形化联机用户接口
系统调用P294
计算机系统中,通常运行中两类程序:系统程序、应用程序。OS的内核是运行系统态,用用程序是运行在用户态
系统调用在本质上是应用程序请求OS 内核完成某功能时的一种过程调用,但它是一种特殊的过程调用,它与一般的调用有下述区别
1. 运行在不同的系统转态
2. 状态的转换
3. 返回问题
4. 嵌套调用
系统调用的几种形式P294
进程控制调用:创建(fork)、终止(exit)、等待(wait)
算法设计题
1.设公共汽车上,司机和售票员的活动分别是:
司机 售票员
启动车辆 上乘客
正常行车 关车门
到站停车 售票
开车门
下乘客
在汽车不断地到站,停车,行驶过程中,这两个活动有什么同步关系?并用信号灯的P,V操作实现它的同步。
解:设两个信号量stop和run,初值为0,并假设汽车的初始状态为停滞不前状态,
司机:begin 售票员:begin
L1:P(run) L2:上乘客
启动车辆 关车门
正常行车 V(run)
到站停车 售票
V(stop) P(stop)
Goto L1 开车门
End 下乘客
Goto L2
End
2.桌上有一只盘子,每次只能放入一只水果,爸爸专向盘中放苹果(apple),妈妈专向盘中放桔子(orange),一个儿子专等吃盘子中的桔子,一个女儿专等吃盘子中的苹果。只要盘子空则爸爸或妈妈可向盘中入一只水果,仅当盘中有自己需要的水果时,儿子或女儿可从中取出。把爸爸、妈妈、儿子、女儿看做四个进程,用P、V操作进程管理使这四个进程能正确地并发执。
解:设s表示允许向盘子存放水果的信号量,初值为1;sp和so表示盘中是否有苹果或桔子的信号量,初值为0。
爸爸:begin 妈妈:begin 儿子:begin 女儿:begin
L1:P(s); L2:P(s); L3:P(so); L4:p(sp);
放苹果; 放桔子; 拿桔子; 拿苹果;
V(sp); V(so); V(s); V(s)
Goto L1; Goto L2; 吃桔子; 吃苹果;
End; End; Goto L3; Goto L4;
End; End;