操作系统复习指导文档格式.doc
《操作系统复习指导文档格式.doc》由会员分享,可在线阅读,更多相关《操作系统复习指导文档格式.doc(10页珍藏版)》请在冰豆网上搜索。
4.三种基本类型的操作系统:
批处理系统:
用户作业成批的处理,作业建立、过渡、完成都自动由系统成批完成,且在计算机内存中同时存放几道相互独立的程序,使它们在管理程序的控制下,相互穿插运行。
分时系统:
系统内存在若干并发程序对CPU时间片共享使用。
实时系统:
计算机对于外来信息能够以足够快的速度进行处理,并在被控对象允许的时间范围内做出快速反应。
5.分时概念:
分时主要指若干并发进程对CPU时间的共享;
6.现代操作系统的三种用户界面:
命令界面、图形界面和系统调用。
7.操作系统的发展过程:
单道批处理系统—多道批处理系统—分时系统—实时系统
第二章进程管理
1.什么是进程,进程与程序的区别和关系:
进程:
进程是可以和别的计算并发执行的计算;
进程是程序的一次执行,是在给定内存区域中的一组指令序列的执行过程;
进程是一个程序在给定活动空间和初始条件下在一个处理机上的执行过程;
进程可定义为一个数据结构和能在其上进行操作的一个程序;
进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
进程与程序的区别:
①程序是静态概念,而进程是程序的一次执行过程,是动态概念。
②进程是一个能独立运行的单位,能与其它进程并发执行。
进程是作为申请和调度单位存在的;
而通常的程序是不能作为一个独立运行的单位而并发执行的。
③程序和进程无一一对应关系。
④各个进程在并发执行过程中会产生相互制约关系,而程序本身是静态的,不存在这种异步特征。
2.进程的两个基本属性:
可拥有资源的独立单位、可独立调度和分派的基本单位
3.进程的特征:
动态性、并发行、独立性、异步性、结构特征
4.进程的基本状态及其变化:
三种基本状态:
运行态:
当前进程已分配到CPU,它的程序正在处理机上运行;
就绪态:
进程已具备运行条件,但因为其它进程正占用CPU,所以暂时不能运行而等待分配CPU的状态;
阻塞态:
因等待某件事件发生而暂时不能运行的状态。
就绪→运行:
被调度程序选中,分配到CPU。
运行→阻塞:
因缺乏某种条件而放弃对CPU的占用。
阻塞→就绪:
阻塞态进程所等待的事件发生了。
运行→就绪:
进程用完时间片(分时系统中)或一个优先权更高的进程进入就绪队列(“优先权高优先”调度算法中)。
有些操作系统中增加了两种状态:
新状态和终止状态
5.某些操作系统中引入的进程的挂起状态(静止状态)--挂起就绪、挂起阻塞;
6.进程由哪些部分组成,进程控制块的作用:
进程由PCB、程序段和相关数据段组成;
进程控制块是进程组成中最关键的部分,PCB是进程存在的唯一标志,每个进程有唯一的进程控制块,操作系统根据PCB对进程实施控制和管理,PCB是进程存在的唯一标志。
7.进程的切换(处理机从一个进程转到另一个进程),可能引起进程切换的时机(进程运行结束;
进程从运行态变为就绪态;
进程从运行态变为等待态;
进程从等待态变为就绪态);
8.并发进程间两种相互制约关系:
什么是进程的同步(直接制约关系)与互斥(间接制约关系):
进程的同步:
进程间共同完成一项任务时直接发生相互作用的关系;
进程的互斥:
两个逻辑上本来完全独立的进程由于竞争同一个物理资源而相互制约。
9.多道程序设计概念:
多道程序设计是在一台计算机上同时运行两个或更多个程序,多道程序设计具有提高系统资源利用率和增加作业吞吐量的优点;
10.处理机的两种执行状态:
管态和目态;
11.什么是临界资源、临界区:
临界资源:
一次仅允许一个进程使用的资源;
临界区:
每个进程访问临界资源的那段程序。
12.进程同步的机制:
信号量机制和管程机制。
13.信号量机制中包括:
a整型信号量b记录型信号量(重点)cAND型信号量。
14.什么是信号量,PV操作的动作,进程间简单同步与互斥的实现。
信号量:
也叫信号灯,记录型信号量是由两个成员组成的数据结构,其中一个成员是整型变量,表示信号量的值,另一个是进程链表L,用于链接等待进程。
信号量的值与相应资源的使用情况有关。
互斥信号量:
初值为1;
资源信号量:
初值为资源的数目;
P、V操作(也叫wait、signal操作)执行的动作。
P操作的动作:
信号量S.value减1,即S.value=S.value-1;
如果S.value≥0,则该进程继续执行;
否则放到另一个分量进程链表中等待。
V操作的动作:
S.value加1,即S.value=S.value+1;
如果S.value>0,则该进程继续执行;
否则唤醒进程链表中的第一个等待进程。
wait和signal操作描述:
wait(S):
S.value:
=S.value-1;
ifS.value<
0then
block(S.L);
signal(S):
=S.value+1;
=0then
wakeup(S.L);
15.三个经典的进程同步问题:
生产者-消费者问题P58、读者-写者问题P63、哲学家进餐问题P62。
能够使用信号量及PV操作解决进程的同步问题。
16.
进程同步的例题1:
一条南北方向的公路桥,任何时刻同时只能允许一个方向的汽车通过它。
试用P、V操作写出南或北向的一辆车到达桥,通过它,然后离开它到达对岸的同步算法(桥上可有多辆车)。
分析:
本题相当于两组读者进程互斥使用临界资源,同组的读者进程可同时读,但不同组的读者要争夺资源。
为两组读者进程各设置一个计数器变量。
设置分别用来计数两组读者数目的计数器变量c1和c2,初值均为0;
两组读者进程互斥使用临界资源的互斥信号量sab(初值为1),两组进程互斥访问计数器变量c1和c2的互斥信号量s1和s2,初值为1。
semaphoresab=1,s1=1,s2=1;
intc1=0,c2=0;
main()
{
cobegin
south();
north();
coend
}
south()
{
wait(s1);
ifc1=0thenwait(sab);
c1:
=c1+1;
signal(s1);
上桥;
过桥;
下桥;
=c1-1;
ifc1=0thensignal(sab);
}
north()
wait(s2);
ifc2=0thenwait(sab);
c2:
=c2+1;
signal(s2);
=c2-1;
ifc2=0thensignal(sab);
如果增加一个条件:
公路桥的最大载重负荷为4辆汽车,应如何修改?
增加一个资源信号量count,初值为4;
在“上桥;
下桥”语句前面加上wait(count),后面加上signal(count)
进程同步的例题2:
某车站售票厅,任何时刻最多可容纳20名购票者进入,当售票厅中少于20名购票者时,则厅外的购票者可立即进入,否则需在外面等待。
若把一个购票者看作一个进程,请回答下列问题:
(1)用PV操作管理这些并发进程时,应怎样定义信号量,写出信号量的初值以及信号量各种取值的含义。
(2)根据所定义的信号量,把应执行的PV操作填入下述方框中,以保证进程能够正确地并发执行。
COBEGINPROCESSPi(i=1,2,……)
begin
();
进入售票厅;
购票;
退出;
end;
COEND
(3)若欲购票者最多为n个人,写出信号量可能的变化范围(最大值和最小值)。
解答:
(1)定义一信号量S,初始值为20。
意义:
S>
0S的值表示可继续进入售票厅的人数;
S=0 表示售票厅中已有20名顾客(购票者);
S<
0|S|的值为等待进入售票厅的人数。
(2)上框为P(S)下框为V(S)
(3)S的最大值为20S的最小值为20-n
进程同步的例题3:
某寺庙,有小和尚、老和尚若干。
有一水缸,由小和尚用水桶从井中提水入缸,老和尚用水桶从缸里取水饮用。
水缸可容10桶水,水取自同一井中。
水井径窄,每次只能容一个水桶取水。
水桶总数为3个。
每次入、取缸水仅为1桶,且不可以同时进行。
试用P、V操作给出小和尚、老和尚动作的算法描述。
小和尚从井中取水并向缸中倒水为一个进程,而老和尚从缸中取水为另一个进程。
有关互斥的资源有:
水井(一次仅允许一个水桶进出);
水缸(一次倒水、取水仅一个水桶)。
分别为它们设置信号量mutex1、mutex2来实现互斥,初值均为1。
有关同步的问题是:
3个水桶----无论是从井中取水还是倒水入缸或取水出缸都是一次一个,即为其设置信号量count,初值为3,抢不到水桶的进程只好等待。
此外,设置信号量empty来控制入缸的水量,初值为10,当水缸满时不可入水;
设置信号full控制出缸的水量,初值为0,当水缸空时不可出水。
Begin
mutex1:
=1;
mutex2:
empty:
=10;
full:
=0;
count:
=3;
Cobegin
小和尚i(i=1,2,…)打水;
老和尚j(j=1,2,…)取水;
Coend;
End.
小和尚i(i=1,2,…)打水:
Begin
Repeat
P(empty);
/*看水缸满否,满则阻塞打水进程*/
P(count);
/*申请打水的桶*/
P(mutex1);
/*互斥使用水井,即不允许两和尚同时打水*/
从井中取水;
V(mutex1);
P(mutex2);
/*互斥使用水缸*/
送