(1)并发性:并发指的是在操作系统中存在着许多同时的或并行的活动。例如,在多道程序设计的环境下,各个程序同时在处理机上交替、穿插地执行。
(2)共享性:系统中存在的各种并发活动,要求共享系统的硬、软件资源。
(3)虚拟性:虚拟指的是讲一个物理实体映射为若干个逻辑实体。前者是客观存在的,后者是虚构的。例如,在多道程序系统中,虽然只有一个CPU,每一时刻只能执行一道程序,但采用多道技术之后,在一段时间间隔内,宏观上有多个程序在运行。在用户看来,就好像有多个CPU在各自运行自己的程序。
(4)不确定性:1.程序执行结果不确定,程序执行结果不能再现。同一程序,对给定相同的初始数据,在相同的环境下运行,多次运行可能得到完全不同的结果。2. 多道程序设计环境下,程序按异步方式运行。也就是说,每道程序在何时执行、各个程序执行的顺序以及每到道程序所需的时间都是不确定的,也是不可预知的。
(有疑惑)2.试述操作系统与用户接口并举例说明。
概念:为了方面用户对计算机系统的使用和编程,操作系统向用户提供了用户与操作系统的接口,简称为用户接口。操作系统提供了两类接口:一类是程序级接口,即系统调用或称操作系统应用程序接口;另一类是作业控制级接口,即键盘控制命令与作业控制命令。
作业控制级接口(即命令程序):分为脱机用户接口和联机用户接口。脱机用户接口由一组作业控制命令或称作业控制语言组成。联机接口由一组操作系统命令组成,用于联机作业的控制。例如,系统管理、环境设置、权限管理、文件管理等。
3.画出进程状态转换图并作必要文字说明。
进程调度的基本调度状态及其转换
文字说明:(1)运行状态。进程已获得必要的资源,并占有一个处理机,处理机正在执行该进程的程序。
(2)就绪状态。如果进程已具备了运行条件,但由于处理机已被其他进程占用,因此暂时不能运行,而等待分配处理机,则称该进程处于就绪状态,有时也称可运行状态。
(3)阻塞状态。进程在运行过程中,因等待某一事件而暂时不能运行的状态,称为阻塞状态,即进程的运行受到了阻塞。此时,及时处理机“空闲”,也无法使用。这种状态也可称为不可运行状态。
进程的各种调度状态,可以根据一定的条件而发生变化。处于运行状态的进程可能因某种事件的发生而变成阻塞状态。相应事件发生之后,该进程可以从阻塞状态变成就绪状态。当系统的进程调度程序把处理机分配给某一就绪状态的进程时,它就从就绪状态进入运行状态。
4.什么是信号量?什么是P、V操作?
(1)在操作系统中,信号量是表示资源的实体,是一个与队列有关的整型变量,其值仅能有P、V操作来改变。操作系统利用信号量对进程和资源进行控制和管理。
(2)P、V操作是定义在信号量S上的两个操作,其定义如下:
P(S): S:=S-1;
若S>=0,则调用P(S)的进程继续运行;
若S<0, 则调用P(S)的进程被阻塞,并把它插入到等待信号量S的阻塞队列中。
V(S): S:=S+1;
若S>0,则调用V(S)的进程继续运行;
若S <=0,从等待信号量S的阻塞队列中唤醒头一个进程,然后调用V(S)的进程继续运行。
5:什么是进程互斥?如何实现互斥?
答:进程是操作系统结构的基础,是一个正在执行的程序,用来描述系统和用户的程序活动。两个或两个以上进程由于不能同时使用同一临界资源,只能一个进程使用完了,另一个进程才能使用,这种现象称为进程互斥。
(1).空闲让进 当临界资源处于空闲状态,允许一个请求进入临界区的进程立即进入临界区,从 而有效的利用资源。
(2).忙则等待 已经有进程进入临界区时,意味着相应的临界资源正在被访问,所以其他准备进 入临界区的进程必须等待,来保证多进程互斥。
(3).有限等待 对要求访问临界资源的进程,应该保证该进程能在有效的时间内进入临界区,防 止死等状态。
(4).让权等待 当进程不能进入临界区,应该立即释放处理机,防止进程忙等待。
6:存储管理的主要研究课题是什么?
答:存储管理研究课题可归纳为四个方面:
(1):存储分配问题:重点是研究存储共享和各种分配算法。
(2):地址再定位问题:研究各种地址变换机构,以及静态和动态再定位方法。
(3):存储保护问题:研究保护各类程序,数据区的方法。
(4):存储扩充问题:主要研究虚拟存储问题及其各种调度算法。
7:试述文件管理的功能和文件系统的组成。
答:文件系统主要实现了对文件存储器的空间的组织和分配,对文件信息的存储,以及对存入的文件进行保护和检索。文件管理部分的功能有四点:1.文件的结构及有关存取方法;2.文件的目录机构和有关处理;3.文件存储空间的管理;4.文件的共享和存取控制;
文件系统由三部分组成:与文件管理有关的软件、被管理的文件以及实施文件管理所需的数据结构。
8什么是死锁,产生死锁的原因和必要条件是什么?
(1)当某一进程提出资源的使用要求后,使得系统中一些进程处于无休止的阻塞状态,在无外力的作用下,这些进程永远也不能继续前进。我们称这种现象为死锁。
(2)原因:资源竞争和进程推进速度。一个进程在其运行过程中可以提出使用多个资源的要求,仅当指定的全部资源都满足时,进程才能继续运行而到达终点,否则该进程因得不到所要求的资源而处于阻塞状态,当两个或两个以上的进程同时对多个互斥资源提出使用要求时,有可能导致死锁。当进程争夺资源时,有可能产生死锁,但不一定就会死锁。这取决于各进程推进的速度和对资源请求的顺序,从而说明死锁是一种与时间有关的错误。
(3)必要条件:(1)互斥控制:进程对其所要求的资源进行排它控制,一个资源仅能被一个进程独占。(2)非剥夺控制:进程所获得的资源在未被释放之前,不能被其它进程剥夺,即使该进程处于阻塞状态,它所占用的资源也不能被其它进程使用,而其他进程只能等待该资源的释放。(3)逐次请求:进程以随意的零星方式逐次取得资源,而不是集中性的一次请求,这样有利于提高资源的利用率。(4)环路条件:在发生死锁时,其有向图必构成环路,即前一进程保持着后一进程所要求的资源。
9试述文件的物理结构和存取方法的概念及相互关系?
(1)物理结构:文件的物理结构是指逻辑文件在文件存储器上的存储结构。
(2)所谓文件的存取方法,是指读写文件存储器上的一个物理块的方法。通常有三类存取方法:顺序存取法,直接存取法和按键存取法。
(3)文件的物理结构密切依赖于文件存储器的特性和存取方法。究竟采用何种物理结构和存取方法,要看系统的应用范围和文件的使用情况。如果采用顺序存取方法,则连接,串接,索引,连续等几种结构都可存取。如果采用直接存取法,则索引文件效率最高,连续文件效率剧中,串联文件效率最低。
10试述外部设备的体系结构与设备分配算法?(有疑惑)
A、I/O设备的分类:
(1)按使用特性分类。分为存储设备,输入/输出设备,终端设备和脱机设备。169页图6.1
(2)按所属关系分类,分为系统设备和用户设备。
(3)按资源分配角度分类,分为独占设备,共享设备,虚拟设备。
(4)按传输数据数量分类,分字符设备和块设备。
B、I/O设备的分配算法
(1)先请求先服务。当有多个进程对同一设备提出I/O请求时,该算法是把所有发出I/O请求的进程,按其发出请求的先后顺序排成一个等待该设备的队列。I/O调度程序把I/O设备分配给该队列中的第一个进程。
(2)优先级高者优先。在进程调度中优先级高者,优先获得处理机。如果在I/O调度中,对优先级高者优先满足它的I/O请求,这也是非常合理的。因为这样做有利于尽快地结束该进程,从而尽早地释放它所占有的资源。
11、试述设备管理的软件体系结构。
答:为了实现I/O系统的四个目标:设备无关性、错误处理、同步/一部传输和必须能够处理独占设备和共享设备的I/O操作,I/O系统应组织成以下四个层次:(1)中断处理程序;(2)设备驱动程序;(3)与设备无关的I/O软件;(4)用户空间的I/O软件;
12、为什么说通道技术是现代操作系统的主要硬件支持?简要说明通道的工作原理。
答:(1)、采用通道技术解决了I/O操作的性和各部件工作的并行性,把CPU从繁琐的输入输出操作中出来,能实现CPU与通道的并行操作,而且通道与通道间也能实现并行操作,各通道上的外设也能实现并行操作,从而大大提高计算机系统的效率。
(2)、工作原理(采用通道技术后,I/O操作过程为):CPU在执行用户程序时如果遇到I/O请求,则它用I/O指令启动指令通道上选址的设备,一旦启动成功,通道开始控制设备进行操作。当设备I/O操作完成后,由通道发出I/O,结束中断,CPU停止当前工作,转向中断处理程序。
13、为什么说进程是操作系统的核心概念?进程与程序有何异同?
答:(1)、因为几乎操作系统的所有内容都离不开进程这一概念,进程是操作系统中最基本的元素,是操作系统中资源分配的基本单位,也是进程调度的基本单位。
(2)进程与程序的区别:
、进程是程序的一次执行,属于一种动态概念,而程序是一组有序的指令,是一种静态的概念。[但是进程离开了程序也就失去了存在的意义。因此,我们可以说进程是程序的动态过程,而程序是进程运行的静态文本。]
、一个进程可以执行一个或几个程序;反之,同一个程序可能由几个进程同时执行。
、程序可以作为一种软件资源长期保留,而进程是程序的一次执行过程,是暂时的。
、进程具有并发性,它能与其它进程并发运行。而一般的程序不具有这种明显的特性。
、进程是一个的运行单位,也是系统进行资源分配和调度的一个单位。因此,进程具有性。出来性一面之外,另一方面进程间又具有相互制约性,这种特性变现为进程之间的同步与互斥。
程序是进程的一部分,是进程的实体。
14. 试比较请求页式存储管理和段式存储管理的异同?
答: 异:段式存储管理:分段由用户设计划分,每段对应一个相应的的程序模块,有完整的逻辑意义。段面是信息的逻辑单位。便于段的共享,执行时按需动态链接装入。段长不等,可动态增长,有利于新数据增长。二维地址空间:段名、段中地址;段号、段内单元号。管理形式上象页式,但概念不同。
请求页式存储管理:分页用户看不见,由操作系统为内存管理划分。页面是信息的物理单位。页一般不能共享。页面大小相同,位置不能动态增长。一维地址空间。往往需要多次缺页中断才能把所需信息完整地调入内存。
同:实现页(段)的共享是指某些作业的逻辑页号(段号)对应同一物理页号(内存中该段的起始地址)。页(段)的保护往往需要对共享的页面(段)加上某种访问权限的,如不能修改等;或设置地址越界检查,对于页内地址(段内地址)大于页长(段长)的存取,产生保护中断。
15. 有哪几种方案可以实现虚拟存储器,简要说明其工作原理?
答: 1.请求分页存储管理:
(1) 页框:物理地址分成大小相等的许多区,每个区称为一块;
(2)址分成大小相等的区,区的大小与块的大小相等,每个称一个页面。
(3) 逻辑地址形式:与此对应,分页存储器的逻辑地址由两部分组成,页号和单元号。
(4)页表和地址转换:采用的办法是动态重定位技术,让程序的指令执行时作地址变换。
2.分段存储管理:
一个用户作业的程序按其逻辑结构可划分为若干段,这些段中的每一段都是完整的。在分段存储管理系统中,可以用类似于分页管理用过的地址变换机构,实现分段管理的地址变换。这里使用的是段变换表SMT,它把作业地址空间变换为物理存储空间,作用地址空间的段与主存中的段大小相等,地址变换是在作业执行过程中由硬件自动完成的。
3.段页式存储管理:
是基本分段存储管理方式和基本分页存储管理方式原理的结合,即先将用户程序分成若干个段,再把每个段分成若干个页,并为每一个段赋予一个段名。
16. 什么是文件目录,操作系统如何通过文件目录进行文件操作?
答:系统中文件种类繁多,数量庞大,为了使用户方便地找到所需文件,需要在系统中建立一套目录机构。这套能方便而迅速地对目录进行检索,从而能准确地找到所需文件的目录机构即为文件目录。
通常情况下,系统会为文件目录建立一个简单的索引表,只包含文件的ID、文件名、文件当前状态(可读/可写/不可访问)及一个指向对应文件目录表项的指针。
系统在对一个文件进行读写的操作过程如下:
(1)根据提供的文件名查找对应的文件索引表;
(2)根据索引表指针找到对应的目录项;
(3)根据目录项的物理地址项找到文件;
(4)修改文件索引表中文件的当前状态(若系统只读文件,不进行修改,则标记为可读,若系统要对文件进行修改,则标记为不可访问);
(5)将文件读入内存,对文件进行读写操作;
(6)操作完毕,释放文件,修改索引表中文件的状态;
1.生产者—消费者问题P72
(1)设置两个私用信号量和一个公用信号量
①公用信号量S,初值为1,表示没有进程进入临界区,它用于实现进程互斥;
②私用信号量S0,用于表示产品数目,初值为0;
③私有信号量Sn,用于表示可用缓冲区数,初值为n;
(2)生产者—消费者进程描述入下:
生产者进程 消费者进程
生产一种产品 P(S0)
P(Sn) P(S)
P(S) 从缓冲区取一种产品
产品送入缓冲区 V(Sn)
V(S0) V(S)
V(S) 消耗该产品
(3)生产者和消费者可按如下算法进行:
begin
B:array[0..n-1] of integer;
P,R:integer;
S ,Sn, S0:semaphore;
P:=R:=0;
S:=1; Sn:=n; S0:=0;
cobegin
process producer i(i=1,2….,m)
begin
L1: produce a product;
P(Sn);
P(S);
B[P]:=product;
P:=(P+1)mod n;
V(S0);
V(S);
go to L1;
end;
process consumer j(j=1,2,…,k);
begin L2:P(S0);
P (S);
take a product from B[R];
R:=(R+1) mod n;
V(Sn);
V(S);
consume
go to 12;
end;
coend;
end;
2读者和写者问题P74
(1)写者优先的程序中,信号量S,初值为1,用于读者与写者或写者与写者之间的互斥;
(2)Sn,初值为n,表示系统中最多有n个进程可同时进行读操作。
begin S,Sn:Semaphore;
S:=1; Sn=n;
cobegin
Process Reader i(i=1,2…,n)
begin
P(S);
P(Sn);
V(S);
read file F;
V(Sn)
end;
Process Writer j(j=1,2…,k)
begin
P(S)
for i:=1 to n do P(Sn);
Writer file F;
for i:=1 to n do V(Sn);
V(S)
end;
coend;
end;
P94 (24)
3.有一阅览室,读者进入时必须先在一张登记表上进行登记。该表为每一座位列出一个表目,包括座号、姓名。读者离开时要撤销登记信息。阅览室有100个座位,试问:
(1)为描述读者的动作,应编写几个程序,应该设置几个进程?进程和程序之间的对应关系如何?
(2)试用P、V操作描述这些进程间的同步算法。
答:Semaphore zmess=100;座位资源
Semaphore mutex=1;登记表资源
Main()
{
cobegin
reader_entry();读者进入
reader_exit();读者离开
Coend
}
Reader_entry()
{
While(true)
{
P(zmess);
P(mutex);
Sit and read;
V(mutex);
}
}
Reader_exit()
{
While(true)
{
P(mutex);
Mod table
V(mutex);
V(zmess);
}
}
P94(28)
4..桌上有一只盘子,每次只能放入一个水果。爸爸专向盘中放苹果,妈妈专向盘中放橘子,一个女儿专等吃盘中的苹果,一个儿子专等吃盘中的橘子。试用P、V操作写出他们能同步的程序。
Main()
{
Int Sp=1; // 是否有空盘子
Int Sa=0;// 盘中是否有苹果
Int So=0; // 盘中是否有橘子
Pf( );
Pm( );
Pd( );
Ps( );
}
Pf( )
{
P(Sp);
向盘中放苹果;
V(Sa);
}
Pm( )
{
P(Sp);
向盘中放橘子;
V(So);
}
Pd( )
{
P(Sa);
取盘中的苹果;
V(Sp);
}
Ps( )
{
P(So);
取盘中的橘子;
V(Sp);
}
5.哲学家就餐问题
有五个哲学家坐在一圆桌旁,桌有一盘通心面,每个人面前有一只空盘子,每两人之间放一把叉子。每个哲学家思考、饥饿,然后吃通心面。但是,每个哲学家必须获得两把叉子(只能从自己左边和右边去取叉子),才能吃到通心面。
begin S1,S2,S3,S4,S5:semaphore;
S1:=S2:=S3:=S4:=S5:=1
Cobrgin
process Pi(i=1,2,3,4)
begin
Li:thinking;
hungry;
P(Si);
pickup ri;
P(Si+1);
pickup ri+1;
eating;
putdown ri;
putdown ri+1;
V(Si);
V(Si+1);
go to Li
end;
process P5
begin
L5:thinking;
hungry;
P(S1);
pickup r1;
P(S5);
pickup r5;
eating;
putdown r1;
putdown r5;
V(S1);
V(S5);
go to L5
end;
coend;
end
6.在一个请求分页存储管理系统中,一个程序的页面走向为4,3,2,1,4,3,5,4,3,2,1,5,并采用LUR页面置换算法。设分配给该程序的存储块数为M,当M分别为3和4时,试求出在访问过程中发生却也中断的次数和缺页率,并比较两种结果,从中得到什么启发?
表1 LUR性能分析例(M=3)
| 时刻 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| P | 4 | 3 | 2 | 1 | 4 | 3 | 5 | 4 | 3 | 2 | 1 | 5 |
| M | 4+ | 3+ 4 | 2+ 3 ④ | 1+ 2 ③ | 4+ 1 ② | 3+ 4 ① | 5+ 3 4 | 4 5 3 | 3 4 ⑤ | 2+ 3 ④ | 1+ 2 ③ | 5+ 1 2 |
| F | + | + | + | + | + | + | + | + | + | + |
| 时刻 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| P | 4 | 3 | 2 | 1 | 4 | 3 | 5 | 4 | 3 | 2 | 1 | 5 |
| M | 4+ | 3+ 4 | 2+ 3 4 | 1+ 2 3 4 | 4 1 2 3 | 3 4 1 ② | 5+ 3 4 1 | 4 5 3 1 | 3 4 5 ① | 2+ 3 4 ⑤ | 1+ 2 3 ④ | 5+ 1 2 3 |
| F | + | + | + | + | + | + | + | + |
由表2算出缺页中断次数F=8,缺页率f=8/12=67%;
由两表可得出如下事实:
设G(P,M,t)表示当页面走向为P,主存容量为M,在时刻t的页面集合,对于LUR算法,存在如下关系成立,即G(P,M,t) G(P,M+1,t),即对于任何时刻t(1,2,3,……12),G(P,M,t)所选中的页号必然包含在G(P,M+1,t)之中,这种关系说明了增加主存容量不会增加缺页中断次数。