当前位置:文档之家› 操作系统pv操作

操作系统pv操作

操作系统pv操作
操作系统pv操作

操作系统P V题解

第一章The P,V Theorem

在操作系统理论中有一个非常重要的概念叫做P,V原语。在我们研究进程间的互斥的时候经常会引入这个概念,将P,V操作方法与加锁的方法相比较,来解决进程间的互斥问题。实际上,他的应用范围很广,他不但可以解决进程管理当中的互斥问题,而且我们还可以利用此方法解决进程同步与进程通信的问题。

一Introduction of P,V Theorem

阐述P,V原语的理论不得不提到的一个人便是赫赫有名的荷兰科学家E.W.Dijkstra。如果你对这位科学家没有什么印象的话,提起解决图论中最短路径问题的Dijkstra算法应当是我们再熟悉不过的。P,V原语的概念以及P,V操作当中需要使用到的信号量的概念都是由他在1965年提出的。

1 Some Conceptions

信号量是最早出现的用来解决进程同步与互斥问题的机制,包括一个称为信号量的变量及对它进行的两个原语操作。信号量为一个整数,我们设这个信号量为:S。很显然,我们规定在S大于等于零的时候代表可供并发进程使用的资源实体数,S小于零的时候,表示正在等待使用临界区的进程的个数。根据这个原则,在给信号量附初值的时候,我们显然就要设初值大于零。

p操作和v操作是不可中断的程序段,称为原语。P,V原语中P是荷兰语的Passeren,相当于英文的pass,V是荷兰语的Verhoog,相当于英文中的incremnet。

P原语操作的动作是:

(1)S减1;

(2)若S减1后仍大于或等于零,则进程继续执行;

(3)若S减1后小于零,则该进程被阻塞后进入与该信号相对应的队列中,然后转进程调度。

V原语操作的动作是:

(1)S加1;

(2)若相加结果大于零,则进程继续执行;

(3)若相加结果小于或等于零,则从该信号的等待队列中唤醒一等待进程,然后再返回原进程继续执行或转进程调度。

需要提醒大家的是:P,V操作首先是一个原语操作,对于每一个进程来说,都只能进行一次。而且必须成对使用。且在P,V愿语执行期间不允许有中断的发生。

对于具体的实现,方法非常多,可以用硬件实现,也可以用软件实现。这里不再赘述。

2 The Most Important Conceptions

临界资源是指每次仅允许一个进程访问的资源。属于临界资源可以是硬件的打印机、磁带机等,软件的有消息缓冲队列、变量、数组、缓冲区等。每个进程中访问临界资源的那段程序称为临界区(临界资源是一次仅允许一个进程使用的共享资源)。每次只准许一个进程进入临界区,该进程进入后不允许其他进程进入。

进程的同步和互斥互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。

同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源。

二Several Typical Examples

本节我们讨论几个利用信号量来实现进程互斥和同步的经典例子。这里的问题关键是如何选择信号量和如何安排P、V原语的使用顺序。

依据信号量与进程的关系,我们可把进程中使用的信号量分成私有信号量和公用信号量。私有信号量是指只与制约进程和被制约进程有关的信号量;公用信号量是指与一组并发进程有关的信号量。这里请不要和C++、JAVA 等编程语言的公有、私有相混淆。这里指的是相对于共享资源来说的。

1 生产者一消费者问题(producer-consumer problem)

生产者--消费者问题(producer-consumer problem)是指若干进程通过有限的共享缓冲区

交换数据时的缓冲区资源使用问题。

问题描述:假设“生产者”进程不断向共享缓冲区写人数据(即生产数据),而“消费者”进程不断从共享缓冲区读出数据(即消费数据);共享缓冲区共有n个;任何时刻只能有一个进程可对共享缓冲区进行操作。所有生产者和消费者之间要协调,以完成对共享缓冲区的操作。

Figure 1.1: producer-consumer problem

我们可把共享缓冲区中的n个缓冲块视为共享资源,生产者写人数据的缓冲块成为消费者可用资源,而消费者读出数据后的缓冲块成为生产者的可用资源。为此,可设置三个信号量:full、empty和mutex。其中:full表示有数据的缓冲块数目,初值是0;empty表示空的缓冲块数初值是n;mutex用于访问缓冲区时的互斥,初值是1。实际上,full和empty间存在如下关系:full+ empty = N

buffer: array [0..k-1]of integer;

in,out: 0..k-1;//in记录第一个空缓冲区,out记录第一个不空的缓冲区

empty,full,mutex: semaphore;

//empty控制缓冲区不满,full控制缓冲区不空,mutex保护临界区;

//初始化empty=k,full=0,mutex=1

cobegin

procedure producer: procedure consumer:

while true then while true then

begin begin

produce(&item); p(full);

p(empty); p(mutex);

p(mutex); item:=buffer[out];

buffer[in]:=item; out:=(out+1) mod k;

in:=(in+1) mod k; v(mutex);

v(mutex); v(empty);

v(full); consume(&item);

end end

coend

注意:这里每个进程中各个P操作的次序是重要的。各进程必须先检查自己对应的资源数在确信有可用资源后再申请对整个缓冲区的互斥操作;否则,先申请对整个缓冲区的互斥操后申请自己对应的缓冲块资源,就可能死锁。出现死锁的条件是,申请到对整个缓冲区的互斥操作后,才发现自己对应的缓冲块资源,这时已不可能放弃对整个缓冲区的占用。如果采用AND信号量集,相应的进入区和退出区都很简单。如生产者的进入区为Swait(empty,mutex),退出区为Ssignal(full,mutex)。

2 读者--写者问题(Readers-Writers Problem)

问题描述:有一个许多进程共享的数据区,这个数据区可以是一个文件或者主存的一块空间;有一些只读取这个数据区的进程(Reader)和一些只往数据区写数据的进程(Writer),此外还需要满足以下条件:

(1)任意多个读进程可以同时读这个文件;

(2)一次只有一个写进程可以往文件中写;

(3)如果一个写进程正在进行操作,禁止任何读进程度文件。

实验要求用信号量来实现读者写者问题的调度算法。实验提供了Semaphore类,该类通过P()、V()两个方法实现了P、V原语的功能。实验的任务是修改Reader类的Read方法以及Writer类的Write方法。

我们需要分两种情况实现该问题:

读优先:要求指一个读者试图进行读操作时,如果这时正有其他读者在进行操作,他可直接开始读操作,而不需要等待。

写优先:一个读者试图进行读操作时,如果有其他写者在等待进行写操作或正在进行写操作,他要等待该写者完成写操作后才开始读操作。

读者优先算法:

rwmutex 用于写者与其他读者/写者互斥的访问共享数据

rmutex 用于读者互斥的访问

readcount 读者计数器

var rwmutex, rmutex :semaphore := 1, 1 ;

int readcount = 0;

cobegin

procedure reader_i

begin // i=1,2,?.

P(rmutex);

Readcount + +;

if (readcount = = 1) P(rwmutex);

V(rmutex);

读数据;

P(rmutex);

Readcount - -;

if (readcount = = 0) V(rwmutex);

V(rmutex);

end

procedure Writer_j

begin // j = 1,2,?.

P(rwmutex);

写更新;

V(rwmutex);

end

coend

写者优先:

1)多个读者可以同时进行读

2)写者必须互斥(只允许一个写者写,也不能读者写者同时进行)

3)写者优先于读者(一旦有写者,则后续读者必须等待,唤醒时优先考虑写者)如果读者数是固定的,我们可采用下面的算法:

rwmutex:用于写者与其他读者/写者互斥的访问共享数据

rmutex:该信号量初始值设为10,表示最多允许10个读者进程同时进行读操作var rwmutex, rmutex :semaphore := 1, 10 ;

cobegin

procedure reader_i

begin // i=1,2,?.

P(rwmutex); //读者、写者互斥

P(rmutex);

V(rwmutex); // 释放读写互斥信号量,允许其它读、写进程访问资源

读数据;

V(rmutex);

end

procedure Writer_j

begin // j = 1,2,?.

P(rwmutex);

for (i = 1;i <= 10;i + +) P(rmutex);

//禁止新读者,并等待已进入的读者退出

写更新;

for (i = 1;i <= 10;i + +) V(rmutex);

// 恢复允许rmutex 值为10

V(rwmutex);

end

coend

问题扩展

如果读者写者均是平等的即二者都不优先,如何实现?

3 哲学家进餐问题(The Dining Philosophers Problem)

Figure 1.2: The Dining Philosophers Problem

问题描述:

(由Dijkstra首先提出并解决)5个哲学家围绕一张圆桌而坐,桌子上放着5支筷子,每两个哲学家之间放一支;哲学家的动作包括思考和进餐,进餐时需要同时拿起他左边和右边的两支筷子,思考时则同时将两支筷子放回原处。如何保证哲学家们的动作有序进行?如:不出现相邻者同时要求进餐;不出现有人永远拿不到筷子;

解法一:

semaphore Fork[i] := 1(i = 0, 1, 2, 3, 4)

begin

Thiking;

Being hangery;

P(Fork[i mod 5]);

p(Fork[(i + 1) mod 5]);

Eating;

v(Fork[i mod 5]);

v(Fork[(i + 1) mod 5]);

end

解法二:

semaphore c[0]?c[4], 初值均为1;

Integer i = 0, 1,..., 4;

procedure philosopher_i

begin

if i mod 2 = = 0 then

begin

p(c[i]);

p(c[i + 1] mod 5);

Eating;

v(c[i]);

v(c[i + 1] mod 5);

end

else

begin

p(c[i + 1] mod 5);

p(c[i]);

Eating;

v(c[i + 1] mod 5);

v(c[i]);

end

end

4 理发师问题(Barber Problem)

问题描述:

理发店理有一位理发师、一把理发椅和n把供等候理发的顾客坐的椅子如果没有顾客,理发师便在理发椅上睡觉一个顾客到来时,它必须叫醒理发师如果理发师正在理发时又有顾客来到,则如果有空椅子可坐,就坐下来等待,否则就离开。

1)控制变量waiting用来记录等候理发的顾客数,初值均为0;

2)信号量customers用来记录等候理发的顾客数,并用作阻塞理发师进程,初值为0;

3)信号量barbers用来记录正在等候顾客的理发师数,并用作阻塞顾客进程,初值为0;

4)信号量mutex用于互斥,初值为1

int waiting=0 ;//等候理发的顾客数

int chairs=n;//为顾客准备的椅子数

semaphore customers=0, barbers=0,mutex=1;

cobegin

barber()

begin

while(TRUE); //理完一人,还有顾客吗?

P(cutomers); //若无顾客,理发师睡眠

P(mutex); //进程互斥

waiting := waiting –1; //等候顾客数少一个

V(barbers); //理发师去为一个顾客理发

V(mutex); //开放临界区

cut-hair( ); //正在理发

end

customer()

begin

P(mutex); //进程互斥

if (waiting)

begin

waiting := waiting+1; // 等候顾客数加1

V(customers); //必要的话唤醒理发师

V(mutex); //开放临界区

P(barbers); //无理发师, 顾客坐着养神

get-haircut( ); //一个顾客坐下等理/

end

else

V(mutex); //人满了,走吧!

end

coend

5 吸烟者问题(Smoker Problem)

问题描述:

三个吸烟者在一间房间内,还有一个香烟供应者。为了制造并抽掉香烟,每个吸烟者需要三样东西:烟草、纸和火柴。供应者有丰富的货物提供。三个吸烟者中,第一个有自己的烟草,第二个有自己的纸,第三个有自己的火柴。供应者将两样东西放在桌子上,允许一个吸烟者进行对健康不利的吸烟。当吸烟者完成吸烟后唤醒供应者,供应者再放两样东西(随机地)在桌面上,然后唤醒另一个吸烟者。试为吸烟者和供应者编写程序解决问题。

问题分析:

供应者seller随即产生两样东西,提供它们,这里用普通变量来表示

吸烟者进程smoker根据其排号不同,拥有不同的一件东西。假设1号吸烟者拥有烟草tobacco,2号吸烟者拥有纸paper,3号吸烟者拥有火柴match。其他号码错误返回。

吸烟者的序号代表他们拥有的东西,用他们的序号和供应者产生的两样东西比较,如果都不相等,则说明他拥有的东西和供应者产生的东西匹配,它可以吸烟。如果其中一个相等,则推出,继续排队。

mutex信号量代表一个只能进入的门,每次只有一个吸烟者可以进入进行比较和吸烟。

每个吸烟者在吸烟完毕之后出门之前要叫醒供应者,调用seller进程。

vars , S1 ,S2 , S3 ; semaphore ;

S:=1 ; S1:=S2:=S3:=0 ;

fiag1 , flag2 , fiag3 : Boolean ;

fiag1:=flag2:=flag3:=true;

cobegin

process 供应者

begin

repeat

P(S) ;

取两样香烟原料放桌上,由flagi标记;

//nago1 、nage2 、nage3 代表烟草、纸、火柴

if flag2 & flag3 then V(S1) ; //供纸和火柴

else if flag1 & fiag3 then V(S2); //供烟草和火柴

else V(S3) ; //供烟草和纸

until false ;

end

process 吸烟者1

begin

repeat

P(S1) ;

取原料;

做香烟;

V(S) ;

吸香烟;

until false ;

end

process 吸烟者2

begin

repeat

p(S2);

取原料;

做香烟;

V(S) ;

吸香烟;

until false ;

end

process 吸烟者3

begin

repeat

P(S3);

取原料;

做香烟;

V(S);

吸香烟;

until false ;

end

coend

第二章典型练习题目

一生产者--消费者问题扩展

1 扩展一

设有一个可以装A、B两种物品的仓库, 其容量无限大, 但要求仓库中A、B两种物品的数量满足下述不等式: -M≤A物品数量-B物品数量≤N 其中M和N为正整数. 试用信号量和PV操作描述A、B两种物品的入库过程.

问题分析:

若只放入A,而不放入B,则A产品最多可放入N次便被阻塞;若只放入B,而不放入A,则B产品最多可放入M次便被阻塞;每放入一次A,放入产品B的机会也多一次;同理,每放入一次B,放入产品A的机会也多一次.

Semaphore mutex=1,sa=N,sb=M;

cobegin

procedure A: procedure B:

while(TURE) while(TURE)

begin begin

p(sa); p(sb);

p(mutex); p(mutex);

A产品入库;B产品入库;

V(mutex); V(mutex);

V(sb); V(sa);

end end

coend

2 扩展二

设有一个可以装A、B两种物品的仓库,其容量有限(分别为N),但要求仓库中A、B 两种物品的数量满足下述不等式:

-M≤A物品数量-B物品数量≤N

其中M和N为正整数。另外,还有一个进程消费A,B,一次取一个A,B组装成C。试用信号量和PV操作描述A、B两种物品的入库过程。

问题分析:

已知条件-M≤A物品数量-B物品数量≤N 可以拆成两个不等式,即

A物品数量-B物品数量≤N

B物品数量-A物品数量≤M

这两个不等式的含义是:仓库中A物品可以比B物品多,但不能超过N个;B物品可以比A物品多,但不能超过M个。

semaphore mutex=1,a,b=m,empty1,empty2=N,full1,full2=0;

cobegin

process(A);

process(B);

process(C)

coend

A物品入库

process A

begin

while(TRUE)

begin

p(empty1);

P(a);

p(mutex);

A物品入库;

v(mutex);

V(b);

v(full1);

end

end

B物品入库:

process B

begin

while(TRUE)

begin

p(empty2);

P(b);

p(mutex);

B物品入库;

v(mutex);

V(a);

p(full2);

end

end

process C

begin

while(TRUE)

begin

p(full1);

p(full2);

p(a);

P(b);

组装;

V(a);

v(b);

v(empty1);

v(empty2);

end

end

3 扩展三

设P,Q,R共享一个缓冲区,P,Q构成一对生产者-消费者,R既为生产者又为消费者。使用P,V 实现其同步。

var mutex,full,empty: semaphore;

full:=1;

empty:=0;

mutex:=1;

cobegin

Procedure P

begin

while true

p(empty);

P(mutex);

Product one;

v(mutex);

v(full);

end

Procedure Q

begin

while true

p(full);

P(mutex);

consume one;

v(mutex);

v(empty);

end

Procedure R

begin

if empty:=1 then

begin

p(empty);

P(mutex);

product;

v(mutex);

v(full);

end

if full:=1 then

begin

p(full);

p(mutex);

消费一个产品;

v(mutex);

v(empty);

end

coend

二读者--写者问题扩展

1 扩展一

如果读者写者均是平等的即二者都不优先。

var w,s,mutex:semaphore;

RC:integer;

w,s,mutex:=1;

RC:=0;

cobegin

Procedure Reader Procedure Writer

begin begin

while TRUE while TRUE

p(w); p(w);

p(mutex); p(s);

if RC==0 then Writing;

p(s); v(s);

RC:=RC+1; v(w);

v(mutex); end

v(w);

Reading;

p(mutex);

RC:=RC-1;

if RC==0 then

v(s);

v(mutex);

end

coend

对读者-写者问题作一条限制,最多只允许rn个读者同时读。为此,又引入了一个信号量L,赋予其初值为rn,通过执行SP(L,1,1)操作来控制读者的数目,每当一个读者进入时,都要做一次SP(L,1,1)操作,使L的值减1。当有rn个读者进入读后,L便减为0,而第rn+1个读者必然会因执行SP(L,1,1)操作失败而被封锁。利用一般信号量机制解决读者-写者问题的算法描述如下:

var rn:integer; /*允许同时读的读进程数

L:semaphore:=rn; /*控制读进程数信号量,最多rn

W:semaphore:=1;

begin

cobegin

process reader

begin

repeat

SP(L,1,1 ;W,1,0);

Read the file;

SV(L,1);

until false;

end

process writer

begin

Repeat

SP(W,1,1;L,rn,0);

Write the file;

SV(W,1);

until false;

end

coend

end.

上述算法中,SP(W,1,0) 语句起开关作用,只要没有写者进程进入写,由于这时W=1,读者进程就都可以进入读文件。但一旦有写者进程进入写时,其W=0,则任何读者进程及其他写者进程就无法进入读写。SP(W,1,1;L,rn,o) 语句表示仅当既无写者进程在写(这时W=1) 、又无读者进程在读(这时L=rn) 时,写者进程才能进行临界区写文件。

2 扩展二

在经典的同步问题中有一个读者-写者的问题。它的实现方法一般都是基于读者优先策略的,现在请用PV操作来实现基于先来先服务策略的读者-写者的问题,具体要求描述如下:

存在m个读者和n个一写者,共享同一个缓冲区;

当没有读者在读,写者在写时,读者,写者均可进入读或写

当有读者在读时:

(1)写者来了,则写者等待;

(2)读者来了,分两种情况处理:无写者等待,则读者可以直接进入读操作,如果有

写者等待,则读者必须依次等待;

当有写者在写时,写者或读者来了,均需等待;

当写者写完后,如果等待队列中第一个是写者,则唤醒该写者;如果等待队列中的第一个是读者,则唤醒该队列中从读者开始连续的所有读者;

当最后一个读者读后,如果有写者在等待,则唤醒第一个等待的写者。

三吸烟者问题扩展

1 扩展一

在一间酒吧里有三个音乐爱好者队列,第一队的音乐爱好者只有随身听,第二队的只有音乐磁带,第三队只有电池。而要听音乐就必须随身听,音乐磁带和电池这三种物品俱全。酒吧老板依次出售这三种物品中的任意两种。当一名音乐爱好者得到这三种物品并听完一首乐曲后,酒吧老板才能再一次出售这三种物品中的任意两种。于是第二名音乐爱好者得到这三种物品,并开始听乐曲。全部买卖就这样进行下去。试用P,V操作正确解决这一买卖。

问题分析:

该问题与吸烟者解法相同。

2 扩展二

假设一个录像厅有0,1,2三种不同的录像片可由观众选择放映,录像厅的放映规则为: 1)任一时刻最多只能放映一种录像片,正在放映的录像片是自动循环放映的,最后一个观众主动离开时结束当前录像片的放映;

2)选择当前正在放映的录像片的观众可立即进入,允许同时有多位选择同一种录像片的观众同时观看,同时观看的观众数量不受限制;

3)等待观看其他录像片的观众按到达顺序排队,当一种新的录像片开始放映时,所有等待观看该录像片的观众可依次序进入录像厅同时观看。用一个进程代表一个观众,要求:用信号量方法PV实现,并给出信号量定义和初始值。(最好也能写出录像厅的进程)

问题分析:

电影院一次只能放映一部影片,希望观看的观众可能有不同的爱好,但每次只能满足部分观众的需求,即希望观看另外两部影片的用户只能等待。分别为三部影片设置三个信号量s0,s1,s2,初值分别为1,1,1电影院一次只能放一部影片,因此需要互斥使用。由于观看影片的观众有多个,因此必须分别设置三个计数器(初值都是0),用来统计观众个数。当然计数器是个共享变量,需要互斥使用。

var s=1,s0=1,s1=1,s2=1:semaphore;

var count0=0,count1=0,count2=0;

cobegin

process videoshow0 //vcd_id = 0

begin

repeat

p(s0);

count0 = count0 +1;

if(count0=1) p(s);

v(s0);

看影片;

p(s0);

count0 = count0 -1;

if(count0=1) v(s);

v(s0);

until false

end

process videoshow1 //vcd_id = 1

begin

repeat

p(s1);

count1 = count1 +1;

if(count1=1) p(s);

v(s1);

看影片;

p(s1);

count1 = count1 -1;

if(count1=1) v(s);

v(s1);

until false

end

process videoshow2 //vcd_id =2

begin

repeat

p(s2);

count2 = count2 +1;

if(count2=1) p(s);

v(s2);

看影片;

p(s2);

count1 = count1 -1;

if(count2=1) v(s);

v(s2);

until false

end

coend

第三章题辑

一银行排队问题

问题描述:

银行有n个柜员,每个顾客进入银行后先取一个号,并且等着叫号,当一个柜员空闲后,就叫下一个号。

问题分析:

将顾客号码排成一个队列,顾客进入银行领取号码后,将号码由队尾插入;柜员空闲时,从队首取得顾客号码,并且为这个顾客服务,由于队列为若干进程共享, 所以需要互斥.柜员空闲时,若有顾客,就叫下一个顾客为之服务.因此,需要设置一个信号量来记录等待服务的顾客数.

begin

var mutex=1,customer_count=0:semaphore;

cobegin

process customer

begin

repeat

取号码;

p(mutex);

进入队列;

v(mutex);

v(customer_count);

end

process serversi(i=1,...,n)

begin

repeat

p(customer_count);

p(mutex);

从队列中取下一个号码;

v(mutex);

为该号码持有者服务;

end

coend

end

思考:

某车站售票厅,任何时刻最多可容纳20名购票者进入,当售票厅中少于20名购票者时,则厅外的购票者可立即进入,否则需在外面等待。若把一个购票者看作一个进程,请回答下列问题

(1)用PV操作管理这些并发进程时,应怎样定义信号量,写出信号量的初值以及信号量各种取值的含义。

(2)若欲购票者最多为n个人,写出信号量可能的变化范围(最大值和最小值)。

定义信号量S,初值为20,当s > 0时,它表示可以继续进入购票厅的人数,当s = 0时表示厅内已有20人正在购票,当s < 0时jSj表示正等待进入的人数。

The P,V code Using Pascal

var S:semaphore;

S=20;

cobegin

procedure P_i:

begin

p(s);

.

Enter and buy ticket;

.

v(s)

end

coend

(2)最大值为20,最小值为20-N。

二生产消费问题扩展

假设缓冲区buf1和缓冲区buf2无限大,进程p1向buf1写数据,进程p2向buf2写数据,要求buf1数据个数和buf2数据个数的差保持在(m,n)之间(m

问题分析:

题中没有给出两个进程执行顺序之间的制约关系,只给出了一个数量上的制约关系,即m·—buf1数据个数-buf2数据个数·n.不需要考虑缓冲区的大小,只需要考虑两个进程的同步和互斥.p2向buf2写数据比p1向buf1写数据的次数最少不超过m次,最多不能超过n次,反之也成立.所以是一个生产者和消费者问题。将等式展开得:(1)m·(buf1数据个数-buf2数据个数)·n; (2)m·(buf2数据个数-buf1数据个数)·n;由于m,n都是正数,等式只有一个成立,不妨设(1)成立.在进程p1和p2都没有运行时,两个缓冲区数据个数之差为0,因此,p1必须先运行,向buf1至少写m+1个数据后再唤醒p2运行.信号量s1表示p1一次写入的最大量,初值为n,s2表示p2一次写入的最大量,初值为-m。

begin

var mutex1=1,mutex2=1,s1=n,s2=-m:semaphore;

cobegin

process p1

begin

repeat

get data;

p(s1);

p(mutex1);

写数据到buf1;

v(mutex1);

v(s2);

end

process p2

begin

repeat;

get data;

p(s2);

p(mutex2);

写数据到buf2;

v(mutex2);

v(s1);

end

coend

end

思考:

p1和p2每次执行时需要进行一些额外的操作.对于p2来说,它首先必须在自己的缓冲区buf2中写入至少m个数据,此后p1和p2的同步可简单通过两个信号量来控制.题目的一个变形是要求:-m·(buf2数据个数-buf1数据个数)·n;那么信号量的初值就变成m和n,若只有p1向buf1放入数据而p2不放入数据到buf2中,则p1最多可放m次.因此,设置信号量s1,初值为m,此外,每当p2放入一个数据到buf2中时,则使信号量s1增1,即p1增加一次放入数据到buf1的机会.反之,若只有p2向buf2放入数据而p1不放入数据到buf1中,则p2最多可放次.因此,设置信号量s2,初值为n,此外,每当p1放入一个数据到buf1中时,则使信号量s2增1,即p2增加一次放入数据到buf1的机会.

begin

var mutex1=1,mutex2=1,s1=m,s2=n:semaphore;

cobegin

process p1

begin

repeat

get data;

p(s1);

p(mutex1);

写数据到buf1;

v(mutex1);

v(s2);//p1每放入一个数据到buf1同时使s2增加1

end

process p2

begin

repeat;

get data;

p(s2);

p(mutex2);

写数据到buf2;

v(mutex2);

v(s1);//p2每放入一个数据到buf2同时使s1增加1

end

coend

end

三输入输出

一个从键盘输入到打印机输出的数据处理流程图如图所示。其中键盘输入进程通过缓冲区buf1把数绝传送给计算进程,计算进程把处理结果通过buf2传送给打印进程。假设上述两个缓冲区的大小分别为n1和n2,试写出键盘输入进程、计算进程及打印进程间的同步算法。

问题分析:

本题解决的试具有多个缓冲区的生产者和消费者之间的多阶段同步问题。由于每个缓冲区中均有多个存储单元,因而要护持使用。所以要为每个缓冲区设置一个互斥信号量。

Begin

var empty1,empty2,full1,full2,mutex1,mutex2:semaphore;

empty1:=n1;

empty2:=n2;

full1:=0;

full2:=0;

mutex1:=mutex2:=1;

cobegin

procedure Input

begin

Input a data;

p(empty1);

p(mutex1);

Put to buf1;

v(mutex1);

v(full1);

end

procedure Calculate

begin

p(full1);

p(mutex1);

Get from buf1;

v(mutex1);

v(empty1);

Calculate it;

p(empty2);

p(mutex2);

put result to buf2;

v(mutex2);

v(full2);

end

procedure Print_Out

begin

p(full2);

p (mutex2);

Get Data from buf2;

v(mutex2);

v(empty2);

Print out the data;

end

coend

end

四生产者消费者扩展

设有N个计算进程和M个打印进程共享同一个缓冲区,缓冲区长度为8。各计算进程不断地把计算得到的结果送入缓冲区,各打印进程不断的从缓冲区取数并打印。要求:既不漏打,也不重复打印任一个结果。并且,为了高效地工作,计算机进程在使用缓冲区的同时,允许打印进程从缓冲区中取数,反之亦然。请用P、V操作作为同步机制,并用类PASCAL 或类C,描述对应于计算进程和打印进程的程序。

五理发师问题扩展

有一个理发师,一把理发椅和n把供等候理发的顾客坐的椅子,若没有顾客,则理发师睡觉,当一个顾客到来时,必须唤醒理发师进行理发, 若理发师正在理发,又有顾客到来,则若有空椅子可坐就坐下来等,若没有空椅子就离开。

问题分析:

需要设置一个信号量barber,初值为0,用于控制理发师和顾客之间的同步关系.还需要设置一个信号量customer,初值为0,用于离开顾客与等候顾客之间的同步控制,为了记录等候的顾客数, 应该设置一个计数器count,初值为0.当一个顾客到达时,需要在count上做加1操作,并根据count值的不同分别采取不同的动作,当顾客离开时,要对count上做减1操作,并根据count 值的不同分别采取不同的动作;由于count是共享变量,因此要互斥使用,为此设置一个互斥信号量mutex;

begin

var barber=0,customer=0,count=0,mutex=1:semaphore;

cobegin

process barber

begin

repeat

p(customer);

p(mutex);

新版教材全国自考网络操作系统02335_复习笔记.

1.计算机系统的定义:计算机系统 是一种可以按用户的要求接收和存储信息、自动进行数据处理并输出结果信息的系统。【广义的包含:机械式系统和电子式系统,电子式又可划分为模拟式和数字式】 【计算机系统包括:硬件系统和软件系统】 2.操作系统的定义:操作系统是计 算机系统中的一个系统软件,它是这样一些程序模块的集合:它们能有效地组织和管理计算机系统中的硬件及软件资源,合理地组织计算机的工作流程,控制程序的执行,并向用户提供各种服务功能,使得用户能够灵活、方便、有效地使用计算机,并使整个计算机系统高效地运行。设置操作系统的目的:提高计算机系统的效率,增强系统的处理能力,充分发挥系统资源利用率,方便用户的使用。【操作系统的任务:1、组织和管理计算机系统中的硬件及软件资源;2、向用户提供各种服务功能。】 3.操作系统的作用和地位 操作系统是系统软件,连接了硬件和软件,是两者之间的桥梁。作为系统软件,其是 a.计算机资源的管理者、b.人机交互的接口、c.扩展机和虚拟机。【所以对操作系统来讲,具体应用领域的工作不是其所关心的事。】 4.操作系统的主要特征 (1)并发性b.共享性:(互斥共享:打印机,磁带机,扫描仪;同时共享)处理机、CPU、辅助存储器、输入/输出设备c.随机性。【在计算机系统中,对资源的共享有两种形式:互斥共享和同时共享】【操作系统的分类:批处理、分时、实时、桌面、嵌入式、网络、分布式操作系统】 5.批处理操作系统的概念 用户将需要计算的一组任务(一般称为作业,即JOB)请求交给系统操作员,系统操作员在收到后并不立即将其输入计算机,而是在收到一定数量的用户作业之后组成一批作业,再把这批作业输入到计算机中。 【又分为单道批处理、多道批处理系统:不适合交互式的作业】 6.分时(交互式)操作系统的概 念多个用户通过终端设备与计算机交互来运行各自的作业,并且共享一个计算机系统而互不干扰,每个终端可由一个用户使用,每个用户就好像自己拥有一台计算机。 7.实时操作系统的概念使计算机 能在规定的时间内及时响应外部事件的请求,同时完成对该事件的处理,并能够控制所有实时设备和实时任务协调一致的工作的操作系统。【特征:及时性、实时性、高可靠性、高过载防护性】 8.网络操作系统的概念 基于计算机网络、在各种计算机操作系统之上按网络体系结构协议标准设计开发的软件,它包括网络管理、通信、安全、资源共享、各种网络应用。 9.分布式操作系统的概念 将大量的计算机通过网络连结在一起,可以获得极高的运算能力及广泛的数据共享,这样的系统称为分布式系统,为分布式系统配置的操作系统称为分布式操作系统。 10.操作系统的基本功能:a.进程 (线程)管理、b.处理机调度、c.存储管理、d.文件管理、e.输入/输出管理。 11.存储管理的任务(P25 L3) 存储管理的任务是管理计算机内存的资源a.当多个程序共享有限的内存资源时,要考虑如何为多个程序分配有限的内存空间;b.存放在内存中的多个程序和数据应该彼此隔离、互不侵扰;c.解决内存扩充的问题,即将内存和外存结合起来管理,为用户提供一个容量比实际内存大得多的虚拟存储器。 【存储管理的主要任务 a.内存的分配和回收b.存储共享c.存储保护d.“扩充”内存容量。】 12.文件管理的任务(P26 L3) 其任务为有效地支持文件的存储、检索和修改等操作,解决文件的共享、保密和保护问题,以使用户方便、安全地访问文件。 13.输入/输出管理的功能: 其功能是按照输入/输出子系统的结构和设备类型指定分配和使用设备的策略,为输入/输出操作的进程分配一条传输信息的通路,合理地控制输入/输出操作,最大程度地实现并行操作。 14.网络操作系统的结构 a.整体式结构(结构紧密,用户界面简单直接,系统效率较高)、 b.层次式结构(易于调试、修改、扩充、维护、保证正确性)、 c.微内核(客户机/服务器)结构(特点:提供最基本服务和其他服务,很好的扩展性,简化应用程序开发,减少磁盘空间和存储器的需求,微内核和硬件部件有接口,并向可安装模块提供一个接口)。 15.网络操作系统的特点a.微内 核,即运行在核心态的内核;b.以通信方式请求服务并返回结果,即运行在用户态的并以客户机/服务器方式运行的进程层。【优点:可靠、灵活、适宜于分布式

操作系统原理知识知识点复习,梁光祥

目录 第一章操作系统概论 (2) 1.1操作系统概念 (2) 1.2操纵系统的主要功能 (2) 1.3操作系统的基本特征 (3) 1.4操作系统的逻辑结构和运行模型 (3) 1.5操作系统的形成与发展 (3) 1.6操作系统主要类型 (3) 第二章进程管理 (4) 2.1.进程概念 (4) (4) 2.2.进程控制 (5) 2.3.进程互斥与同步 (5) 2.4.进程通信 (5) 2.5.线程 (5) 第三章处理器调度与死锁 (6) 3.1.处理器调度 (6) 3.2.死锁 (7) 第四章存储管理 (8) 4.1.程序的链接和装入 (8) 4.2.分区式存储管理 (8) 4.3.分页式存储管理 (8) 4.4.分段式存储管理 (9) 4.5.段页式存储管理 (9) 4.6.虚拟存储管理 (10) 第五章设备管理 (11) 5.1.输入输出系统 (11) 5.2.输入输出控制方式 (11) 5.3.缓冲技术 (14) 5.4.分配策略: (14) 5.5.输入输出软件 (14) 5.6.虚拟设备 (14) 5.7.磁盘存储管理 (14) 第六章文件管理 (15) 6.1.概述 (15) 6.2文件数据的组织和存储 (15) 6.3.文件目录 (15) 6.4.文件储存空间管理 (16)

第一章操作系统概论1.1操作系统概念 1.配备操作系统的目的 1)方便人们使用计算机 2)有效管理计算机 2.操作系统的目标 1)有效地管理计算机的硬件和软件资源 2)提高系统效率 3)具有可扩充性 4)具有开放性 5)具有可靠性 6)具有可移植性 1.2操纵系统的主要功能 1.处理器管理功能 1)进程控制 2)进程同步 3)进程通信 4)调度 2.存储管理功能 1)内存的分配与回收 2)内存保护 3)地址映射 4)内存扩充 5)内存共享 3.设备管理功能 1)缓冲管理 2)设备分配与回收 3)设备驱动 4)实现设备独立性 5)实现虚拟设备 4.文件管理功能 1)文件的存储空间管理 2)目录管理 3)文件的读写管理 4)文件保护 5.网络功能 1)网络资源管理 2)网络通信管理

计算机之操作系统论文

计算机操作系统的发展 ——浅谈操作系统的现状与发展趋势 摘要:操作系统(Operating System,简称OS)是计算机系统的重要组成部 分,是一个重要的系统软件,它负责管理计算机系统的硬、软件资源和整个计算机的工作流程,协调系统部件之间,系统与用户之间、用户与用户之间的关系。随着操作系统的新技术的不断出现, 功能不断增加。操作系统作为一个标准的套装软件必须满足尽可能多用户的需要,于是系统不断膨胀,功能不断增加,并逐渐形成从开发工具到系统工具再到应用软件的一个平台环境。更能满足用户需求。本文主要针对操作系统在计算机发展中的核心地位和技术变革作出了分析,同时对计算机操作系统的功能,发展和分类做了简单的分析和阐述,以及对计算机未来发展趋势做了一个预测。 关键词:计算机操作系统发展历程新技术发展趋势 计算机操作系统所处的地位及效用: 操作系统是管理计算机系统的全部硬件资源包括软件资源及数据资源;控制程序运行;改善人机界面;为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的服务界面。操作系统是一个管理电脑硬件与软件资源的程序,同时也是计算机系统的内核与基石。操作系统身负诸如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统是管理计算机系统的全部硬件资源包括软件资源及数据资源;控制程序运行;改善人机界面; 为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的服务界面。操作系统是一个庞大的管理控制程序,大致包括 5 个方面的管理功能:进程与处理机管理、作业管理、存储管理、设备管理、文件管理。 操作系统的分类: 目前微机上常见的操作系统有DOS、OS/2、UNIX、XENIX、LINUX、Windows、Netware 等。移动端常见的操作系统有BlackBerry、Windows Mobile、IOS以及大多数基于Linux系统的移动平台,如android、Mameo、Symbian、Palm 等。 但所有的操作系统具有并发性、共享性、虚拟性和不确定性四个基本特征。目前的操作系统种类繁多,很难用单一标准统一分类。根据应用领域来划分,可分为桌面操作系统、服务器操作系统、主机操作系统、嵌入式操作系统。 一、操作系统的基本介绍

PV操作题解

(一)图书馆有100个座位,每位进入图书馆的读者要在登记表上登记,退出时要在登记表上注销。要几个程序有多少个进程(答:一个程序;为每个读者设一个进程) (1)当图书馆中没有座位时,后到的读者在图书馆为等待(阻塞)(2)当图书馆中没有座位时,后到的读者不等待,立即回家。 解(1 ) 设信号量:S=100; MUTEX=1 P(S) P(MUTEX) 登记 V(MUTEX) 阅读 P(MUTEX) 注销 V(MUTEX) V(S) 解(2) 设整型变量COUNT=100; 信号量:MUTEX=1; P(MUTEX); IF (COUNT==0) { V(MUTEX); RETURN; } COUNT=COUNT-1; 登记 V(MUTEX); 阅读 P(MUTEX); COUNT=COUNT+1; V(MUTEX); RETURN; (二)有一座东西方向的独木桥;用P,V操作实现:(1)每次只允许一个人过桥; (2)当独木桥上有行人时,同方向的行人可以同时过桥,相反方向的人必须等待。 (3)当独木桥上有自东向西的行人时,同方向的行人可以同时过桥,从西向东的方向,只允许一个人单独过桥。(此问题和读者与写者问题相同,东向西的为读者,西向东的为写者)。 (1)解 设信号量MUTEX=1 P (MUTEX) 过桥 V (MUTEX) (2)解 设信号量:MUTEX=1 (东西方互斥) MD=1 (东向西使用计数变量互斥) MX=1 (西向东使用计数变量互斥) 设整型变量:CD=0 (东向西的已上桥人数)

CX=0 (西向东的已上桥人数) 从东向西: P (MD) IF (CD=0) {P (MUTEX) } CD=CD+1 V (MD) 过桥 P (MD) CD=CD-1 IF (CD=0) {V (MUTEX) } V (MD) 从西向东: P (MX) IF (CX=0) {P (MUTEX) } CX=CX+1 V (MX) 过桥 P (MX) CX=CX-1 IF (CX=0) {V (MUTEX) } V (MX) (3) 解:从东向西的,和(2)相同;从西向东的和(1)相同。

02323操作系统概论2012年4月自考试题及答案

全国2012年4月高等教育自学考试 操作系统概论试题 课程代码:02323 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个选项是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.操作员接口是操作系统为用户提供的使用计算机系统的手段之一,该接口是指()A.一组操作控制命令B.一组系统调用程序 C.一条访管指令D.一条I/O指令 2.在一个能提供多个用户同时直接输入、调试和运行自己程序的计算机系统中应配置() A.批处理操作系统B.分时操作系统 C.实时操作系统D.嵌入式操作系统 3.多道程序系统指的是() A.在实时系统中同时运行多个程序 B.同一时刻在一个处理器上运行多个程序 C.在网络系统中同时运行多个程序 D.在一个处理器上并发运行多个程序 4.进程有若干属性,它们是() A.进程是静态的、有多种状态;多个进程可以对应于相同的程序 B.进程是动态的、只有一种状态;多个进程可以对应于相同的程序 C.进程是动态的、有多种状态;多个进程不可以对应于相同的程序 D.进程是动态的、有多种状态;多个进程可以对应于相同的程序 5.控制进程的原语中,创建原语的功能是() A.分配工作区、建立进程控制块、置进程为运行态 B.分配工作区、建立进程控制块、置进程为就绪态 C.分配工作区、建立进程控制块、置进程为等待态 D.分配工作区、建立进程控制块、置进程为挂起态 6.操作系统会按若干原因选择进程运行,不是 ..立即进入操作系统进行进程选择的情况是() A.运行进程的时间片用完B.运行进程出错 C.运行进程要等待某一事件发生D.有新进程进入就绪状态 7.基址寄存器和界限寄存器是属于() A.指令寄存器B.通用寄存器 C.控制寄存器D.时钟寄存器

02323操作系统概论2008年4月试题及答案

2008年4月高等教育自学考试全国统一命题考试 操作系统概论试卷 (课程代码 2323) 本试卷共9页,满分100分;考试时间150分钟。 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个选项是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1、微机操作系统的主要功能是【】 A、实现文件管理、输入输出控制和命令的解释 B、输入/输出控制、命令的解释和运行支撑软件 C、命令的解释、运行支撑软件和实现文件管理 D、运行支撑软件、实现文件管理和输入输出控制 2、组成程序状态字的三个部分是【】 A、程序基本状态、指令地址和中断码 B、指令地址、中断码和中断屏蔽位 C、中断码、中断屏蔽位和程序基本状态 D、中断屏蔽位、程序基本状态和指令地址 3、特权指令中不包括 ...【】 A、I/O指令 B、设置时钟的指令 C、算术运算指令 D、设置控制寄存器的指令 4、用于控制进程的原语是【】 A、创建原语、撤销原语、阻塞原语、唤醒原语 B、等待原语、撤销原语、阻塞原语、唤醒原语 C、创建原语、等待原语、阻塞原语、唤醒原语 D、创建原语、撤销原语、通信原语、唤醒原语 5、中断有若千类型,它们是【】 A、硬件故障中断、程序中断、机器中断、输入输出中断、访管中断 B、硬件故障中断、软件中断、外部中断、输入输出中断、访管中断 C、硬件故障中断、程序中断、外部中断、输入/输出中断、命令中断 D、硬件故障中断、程序中断、外部中断、输入输出中断、访管中断 6、设计作业调度算法时,考虑的原则是【】 A、平衡资源使用、极大的流量、及时性 B、公平性、极大的流量、及时性 C、公平性、平衡资源使用、及时性 D、公平性、平衡资源使用、极大的流量 7、硬件中可没有地址转换机构的存储管理方式是【】 A、页式虚拟 B、固定分区 C、可变分区 D、页式 8、空闲区表中起始地址按从小到大排列的分配算法是【】

操作系统概论复习大纲

操作系统概论自学考试大纲 第一章引论 (一)内容简介 本章介绍了学习操作系统必须先掌握的一些基础知识,包括以下几部分内容: 1.计算机系统 2.操作系统 3.操作系统的形成和操作系统的基本类型 4.操作系统的发展 5.处理器的工作状态 6.操作系统与用户的接口 (二)学习的目的与要求 了解操作系统在计算机系统中的作用;各类操作系统的特点;用户与操作系统的关系;处理器的工作状态和系统功能调用的作用。 重点是:操作系统在计算机系统中的作用;各类操作系统的特点;程序状态字的作用;系统功能调用。 (三)考核知识点与考核要求 根据本章内容的特点,和大纲要求掌握的重点,该章考核可以出以下题型:选择题,名词解释,问答题。 名词解释:操作系统、嵌入式操作系统、特权指令 问答题: 1. 计算机系统由哪些部分组成? 2. 从资源管理的观点看,操作系统有哪些功能? 3. 各类操作系统的特点? 4. 操作系统为什么要提供“系统功能调用”? 第二章处理器管理 (一)课程内容 本章介绍了操作系统中处理器管理部分的实现,包括以下几部分内容: 1.多道程序设计 2.进程的概念 3.进程控制块 4.进程队列 5.中断与中断处理 6.处理器调度 7.线程的概念 (二)学习目的与要求 通过本章学习应该掌握多道程序设计时如何提高计算机系统效率的;进程和程序有什么区别;进程的基本状态以及状态的变化;处理器调度策略;中断的作用。

重点是:多道程序设计,进程,处理器调度。 (三)考核知识点与考核要求 根据本章内容的特点,和大纲要求掌握的重点,该章考核可以出以下题型:选择题,名词解释,问答题,综合题。 名词解释:多道程序设计,进程,中断,线程 问答题: 1.进程有哪些基本状态,画出进程基本状态变化图。 2.进程控制块的作用和基本内容? 3.简述中断响应的过程。 4.设计调度算法的原则有哪些? 5.有哪些作业调度策略,其各自的特点是什么? 6.有哪些进程调度策略,其各自的特点是什么? 7.在分时系统中采用时间片轮转的调度策略有哪些优越性? 8.采用多线程技术有哪些优越性? 综合题(辅导时可以修改下时间) 1.在单道批处理系统中,有四个作业到达输入井和需要的计算时间如表所示,现采用响应比最高者优先算法,忽略作业调度所需的时间。当第一个作业进入系统后就可开始调度。 (1)填充表中空白处 (2)四个作业的执行次序为__________________。 (3)四个作业的平均周转时间为__________________。 2.在某计算中心的一道单道程序设计系统中,有A、B、C三个作业在等待处理,它们到达系统的时间和估计需计算的时间如下表所示: 法调度时各自的等待时间和完成时间。

操作系统的概念和功能

操作系统的概念和功能 计算机是一个高速运转的复杂系统:它有CPU、内存储器、外存储器、各种各样的输入输出设备,通常称为硬件资源;它可能有多个用户同时运行他们各自的程序,共享着大量数据,通常称为软件资源。如果没有一个对这些资源进行统一管理的软件,计算机不可能协调一致、高效率地完成用户交给它的任务。 从资源管理的角度,操作系统是为了合理、方便地利用计算机系统,而对其硬件资源和软件资源进行管理的软件。它是系统软件中最基本的一种软件,也是每个使用计算机的人员必须学会使用的一种软件。 4.3.1 操作系统功能 操作系统五大管理功能,即作业管理、存储管理、信息管理、设备管理和处理机管理。这些管理工作是由一套规模庞大复杂的程序来完成的。 作业管理解决的是允许谁来使用计算机和怎样使用计算机的问题。在操作系统中,把用户请求计算机完成一项完整的工作任务称为一个作业。当有多个用户同时要求使用计算机时,允许哪些作业进入,不允许哪些进入,对于已经进入的作业应当怎样安排它的执行顺序,这些都是作业管理的任务。 存储管理解决的是内存的分配、保护和扩充的问题。计算机要运行程序就必须要有一定的内存空间。当多个程序都在运行时,如何分配内存空间才能最大限度地利用有限的内存空间为多个程序服务;当内存不够用时,如何利用外存将暂时用不到的程序和数据“滚出”到外存上去,而将急需使用的程序和数据“滚入”到内存中来,这些都是存储管理所要解决的问题。 信息管理解决的是如何管理好存储在磁盘、磁带等外存上的数据。由于计算机处理的信息量很大而内存十分有限,绝大部分数据都是保存在外存上。如果要用户自己去管理就要了解如何将数据存放到外存的物理细节,编写大量程序。在多个用户使用同一台计算机的情况下既要保证各个用户的信息在外存上存放的位置不会发生冲突,又要防止对外存空间占而不用;既要保证任一用户的信息不会被其他用户窃取、破坏,又要允许在一定条件下多个用户共享,这些都是要靠信息管理解决的。信息管理有时也称为文件管理,是因为在操作系统中通常是以“文件”作为管理的单位。操作系统中的文件概念与日常生活中的文件不同,在操作系统中,文件是存储在外存上的信息的集合,它可以是源程序、目标程序、一组命令、图形、图像或其它数据。 设备管理主要是对计算机系统中的输入输出等各种设备的分配、回收、调度和控制,以及输入输出等操作。 处理机管理主要解决的是如何将CPU分配给各个程序,使各个程序都能够得到合理的运行安排。 从资源管理的角度来看,可以把操作系统看作是控制和管理计算机资源的一组程序;从用户的角度看,操作系统是用户和计算机之间的界面。用户看到的是操作系统向用户提供的一组操作命令,用户可以通过这些命令来使用和操作计算机。因而学会正确使用这些命令就成为学会使用计算机的第一步。 4.3.2 操作系统基本类型 计算机上使用的操作系统种类很多,但其基本类型可以划分为三类,即批处理操作系统、分时操作系统和实时操作系统。 批处理操作系统的设计目标是为了最大限度地发挥计算机资源的效率;在这种操作系统环境下,用户要把程序、数据和作业说明一次提交给系统操作员,输入计算机,在处理过程中与外部不再交互。分时操作系统的设计目标是使多个用户可以通过各自的终端互不干扰地同时使用同一台计算机交互进行操作,就好像他自己独占了该台计算机一样。实时操作系统则要

02323操作系统概论2006年4月试题及答案

2006年4月高等教育自学考试全国统一命题考试 操作系统概论试卷 (课程代码2323) 一、单项选择题(本大题共15小题,每小题1分.共15分) 在每小题列出的四个备选项中只有一个选项是符合题目要求的。请将其代码填写在题后的括号内。错选、多选或未选均无分。 l、以资源管理的观点考察操作系统,操作系统的功能是【】 A、存储管理、设备管理、文件管理、目录管理 B、设备管理、文件管理、目录管理、处理器管理 c、文件管理、目录管理、处理器管理、存储管理 D、处理器管理、存储管理、设备管理、文件管理 2、关于基本类型的操作系统,正确的描述是【】 A、批处理系统需要提供与用户交互的功能 B、实时操作系统的主要功能是提供与用户交互的功能 c、分时操作系统需要提供与用户交互的功能; D、分时操作系统需要提供在严格的时限内处理完接受的请求 3、关于中断,正确的描述是【】 A、程序中断是自愿性中断事件 B、输入输出中断是强迫性中断事件 C、外部中断是自愿性中断事件 D、硬件故障中断是自愿性中断事件 4、关于处理器调度,正确的说明是【】 A、处理器的调度有两级,输入井是用于作业和进程调度的 B、处理器的调度有两级,输入井是用于进程调度的 C、处理器的调度有两级,输入井是用于作业调度的 D、处理器的调度有两级,输入井是用于作业和进程注册的 5、常用的进程调度算法是【】 A、先来先服务、时间片轮流调度、最高优先级调度。 B、时间片轮流调度、最高优先级调度、响应比高者优先。 C、最高优先级调度、响应比高者优先、先来先服务。 D、响应比高者优先、先来先服务、时间片轮流调度。 6、采用两级页表的页式存储管理中,按给定的逻辑地址进行读写时,通常需访问主存 【】 A、1次 B、2次 C、3次 D、4次 7、淘汰过去一段时间里被访问次数最少的页的算法是【】 A、LRU B、LFU C、FIFO D、随机 8、文件系统的使用者需要记住【】 A、存放文件的磁盘的容量 B、文件的逻辑结构

操作系统概论重点整理2017(2017年张琼声版)

操作系统概论-02323(2017年张琼声版本) 第1章操作系统简介 1.1什么是操作系统 (1)操作系统概念: 操作系统是一种复杂的系统软件,是不同程序代码、数据结构、初始化文件的集合,可执行。 操作系统是提供计算机用户与计算机硬件之间的接口,并管理计算机软件和硬件资源,并且通过这个接口使应用程序的开发变得简单、高效。 接口是两个不同部分的交接面。接口分为硬件接口和软件接口,计算机的所有功能最终都是由硬件的操作来实现的,计算机屏蔽了对硬件操作的细节。 (2)操作系统完成的两个目标: 1)与硬件相互作用,为包含在所有硬件平台上的所有底层可编程部件提供服务; 2)为运行在计算机系统上的应用程序(即用户程序)提供执行环境。 现代计算机特点是支持多任务,一方面保证用户程序的顺利执行,另一方面使计算机系统资源得到高效的利用,保证计算机系统的高性能。 (3)操作系统的功能: 处理机管理、内存管理、设备管理、文件管理。 1.2操作系统的发展 1)无操作系统 2)单道批处理系统 3)多道程序系统(多道批处理系统、分时系统) 4)微机操作系统 5)实时操作系统 6)嵌入式操作系统 7)物联网操作系统 1.2.1无操作系统阶段: 电子管,无存储设备,第一台:1946年宾夕法尼亚大学的「埃尼阿克」 单道批处理系统: 晶体管,磁性存储设备,内存中有一道批处理作业,计算机资源被用户作业独占。 吞吐量是指单位时间内计算机系统处理的作业量

1.2.2单道批处理系统 特点:自动性、顺序性、单道性。 优点:减少了等待人工操作的时间 缺点:CPU资源不能得到有效的利用。 1.2.3多道程序系统 多道程序系统:集成电路芯片,出现了分时操作系统(多个终端)。 特点:多道性、无序性、调度性、复杂性。 优点:能够使CPU和内存IO资源得到充分利用,提高系统的吞吐量。 缺点:系统平均周转时间长,缺乏交互能力。 1.2.4微机操作系统: 第一台Intel公司顾问GaryKildall 编写的CP/M系统,是一台磁盘操作系统,用于Intel8080. 1.2.5操作系统特点 (1)分时系统: 特点:多路性、及时性、交互性、独立性。 优点:提供了人机交互,可以使用户通过不同终端分享主机。 缺点:不能及时接收及时处理用户命令。 (2)实时操作系统(用户实时控制和实时信息处理): 实时操作系统:广泛应用于各种工业现场的自动控制、海底探测、智能机器人和航空航天等。 特点:多路性、独立性、及时性、交互性、可靠性。 在实时系统中,往往采取多级容错措施来保证系统安全和数据安全。 (3)操作系统产品: 1)主机操作系统(批处理、事务处理(银行支票处理或航班预订)、分时处理) 2)微机操作系统 3)服务器操作系统 4)嵌入式操作系统(物联网操作系统) 1.3操作系统的特征 现代操作系统都支持多任务,具有并发、共享、虚拟和异步性特征。 (1)并发: 指两个或多个事件在同一时间间隔内发生; (2)共享:指系统中的资源可供内存中多个并发执行的进程共同使用。 资源共享两种方式:互斥共享,同时共享; (3)虚拟:指通过某种技术把一个物理实体变成若干逻辑上的对应物;

操作系统关于PV操作

1.读写操作 1、、设有一台计算机,有两条I/O通道,分别接一台卡片输入机和一台打印机。卡片机把一 叠卡片逐一输入到缓冲区B1中,加工处理后在搬到缓冲区B2中,并在打印机上印出,问: ①系统要设几个进程来完成这个任务?各自的工作是什么? ②这些进程间有什么样的相互制约关系? ③用P、V操作写出这些进程的同步算法。 ①系统可设三个进程来完成这个任务:R进程负责从卡片输入机上读入卡片信息,输入到缓冲区B1中;C进程负责从缓冲区B1中取出信息,进行加工处理,之后将结果送到缓冲区B2中;P进程负责从缓冲区B2中取出信息,并在打印机上印出。 ②R进程受C进程影响,B1放满信息后R进程要等待——等C进程将其中信息全部取走,才能继续读入信息;C进程受R进程和P进程的约束:B1中信息放满后C进程才可从中取出它们,且B2被取空后C进程才可将加工结果送入其中;P进程受C进程的约束:B2中信息放满后P进程才可从中取出它们,进行打印。 ③信号量含义及初值: B1full——缓冲区B1满,初值为0; B1empty——缓冲区B1空,初值为0; B2full——缓冲区B2满,初值为0; B2empty——缓冲区B2空,初值为0; R进程C进程P进程 B1 B2 2、用P.V操作处理生产者和消费者问题如下: mutex初值为1;empty初值为n;full初值为0 生产者消费者 L1:生产产品 L2:P(full) P(empty) P(mutex) P(mutex)取出产品 产品装入缓冲区 V(empty) V(full) V(mutex) V(mutex) GOTO L2 GOTO L1 (1)信号量mutex,empty,full的作用是什么? (2)为什么P操作的顺序不能调换? (1)mutex起互斥作用,empty与full为同步作用。

2015年4月全国自考操作系统概论考前密卷02323(含答案)

2015年4月全国自考操作系统概论考前密卷02323(含答案) 一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个选项是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 第1题进程——资源图中出现(),会产生死锁。 A. 断点 B. 互斥 C. 环路 D. 同步 【正确答案】 C 【你的答案】 本题分数1分 第2题多道批处理系统的硬件支持是60年代初发展起来的() A. RISC技术 B. 通道和中断机构 C. 集成电路 D. 高速缓存 【正确答案】 B 【你的答案】 本题分数1分 第3题操作系统中,存储介质上的分块是()来进行划分的。 A. 根据文件的逻辑结构 B. 根据逻辑记录的大小 C. 根据用户的实际需要 D. 根据存储介质的特性 【正确答案】 D 【你的答案】 本题分数1分 第4题死锁四个必要条件中,无法破坏的是() A. 互斥使用资源 B. 占有且等待资源 C. 非抢夺式分配 D. 循环等待资源

【正确答案】 A 【你的答案】 本题分数1分 第5题当一进程运行时,系统可基于某种原则,强行将其撤下,把处理器分配给其他进程,这种调度方式是() A. 非剥夺方式 B. 剥夺方式 C. 中断方式 D. 查询方式 【正确答案】 C 【你的答案】 本题分数1分 第6题访问一次磁盘操作必须给出如下参数() A. 磁头号 B. 扇区号 C. 柱面号 D. 三个都给出 【正确答案】 D 【你的答案】 本题分数1分 第7题操作系统通过()对进程进行管理。 A. 进程名 B. 进程控制块 C. 进程启动程序 D. 进程控制区 【正确答案】 B 【你的答案】 本题分数1分 第8题共享设备是指可让若干个作业同时使用的设备,这里的“同时使用”是指() A. 多个作业在同一时刻使用共享设备 B. 一个作业尚未撤离,另一个作业即可使用共享设备,但任一时刻只有一个作业占用该设备

操作系统概论答案

第1章 Shell命令操作实践作业 (1)在当前登录用户的主目录下创建子目录mysub,进入mysub目录,。 cd mkdir mysub cd mysub (2)显示当前目录路径。 pwd

(3)显示用户名 echo $USER 显示用户主目录 echo $HOME

(4)将用户主目录添加到可执行文件搜索路径 export PATH=$PATH:$HOME (5)显示添加后的可执行文件搜索路径 echo $PATH

ls -l .{ba,pr}* > my1

ps aux | grep tty > my2 (8)将my1和my2串联成一个新文件my3 cat my1 my2 > my3 (9)将当前目录下的所有文件压缩归档到myf.tar.gz文件中 tar -zcvf ~/myf.tar.gz ./ (10)将my3移动到上级目录中 sudo mv my3 ../

(11)删除文件my1和my2 rm –f my1 my1(直接删除) rm –i my1 my2(删除前确认) (12)启动vi文本编辑程序 vi (13)在vi中输入(3) ~ (11)步的操作命令,并将其存入文件mysh i/a echo $USER echo $HOME export PATH=$PATH:$HOME echo $PATH ls -l .{ba,pr}* > my1 ps aux | grep tty > my2 cat my1 my2 > my3 tar zcvf ~/myf.tar.gz ./ sudo mv my3 ../ rm –f my1 my1 rm –i my1 my2 :w mysh

操作系统概论自考复习资料.doc

操作系统(operating system , OS)是计算机系统中必不可少的系统软件。它是计算机系统中各种资源的管理者和各种活动的组织者、指挥者。它使整个计算机系统协调一致且有效地工作。通过本课程的学习,我们将知道操作系统要做什么、怎么做和为什么要这样做。 学习操作系统,首先我们应该知道操作系统的概念。本章主 要讲述了以下几个问题。 一、什么是操作系统 二、操作系统的形成 三、操作系统的类型 四、操作系统的功能 一、什么是操作系统 在回答这个问题之前,我们先来了解一下什么是计算机系统。计算机系统是按用户的要求接收和存储信息、自动进行数据处理并输出结果信息的系统。 计算机系统由硬件系统和软件系统组成。软硬件系统的组成部分就是计算机系统的资源,当不同的用户使用计算机时都要占用系统资源并且有不同的控制需求。 操作系统就是计算机系统的一种系统软件,由它统一管理计算机系统的资源和控制程序的执行。 操作系统的设计目标一是使计算机系统使用方便。二是使得计算机系统能高效地工作。 二、操作系统的形成 早期没有操作系统→原始汇编系统→管理程序→操作系统可以看到,操作系统是随着计算机硬件的发展和应用需求的推动而形成的。 三、操作系统的类型

按照操作系统提供的服务,大致可以把操作系统分为以下几类: 批处理操作系统、分时操作系统、实时操作系统、网络操作系统和分布式操作系统。其中批处理操作系统、分时操作系统、实时操作系统是基本的操作系统(加亮) 1、批处理操作系统按照用户预先规定好的步骤控制作业的执行,实现计算机操作的自动化。又可分为批处理单道系统和批处理多道系统。单道系统每次只有一个作业装入计算机系统的主存储器运行,多个作业可自动、顺序地被装入运行。批处理多道系统则允许多个作业同时装入主存储器,中央处理器轮流地执行各个作业,各个作业可以同时使用各自所需的外围设备,这样可以充分利用计算机系统的资源,缩短作业时间,提高系统的吞吐率。 2、分时操作系统,这种系统中,一个计算机系统与许多终端设备连接,分时系统支持多个终端用户,同时以交互方式使用计算机系统,为用户在测试、修改和控制程序执行方面提供了灵活性。分时系统的主要特点是同时性、独立性、及时性和交互性。 3、实时操作系统能使计算机系统接收到外部信号后及时进行处理,并在严格的规定时间内完成处理,且给出反馈信号。它是较少有人为干预的监督和控制系统。实时系统对可靠性和安全性要求极高,不强求系统资源的利用率。 4、网络操作系统可以把若干计算机联合起来,实现各台计算机之间的通信及网络中各种资源的共享,像我们现在使用的Windows ,UNIX和Linux等操作系统都是网络操作系统。 5、分布式操作系统的网络中各台计算机没有主次之分,在任意两台计算机间的可进行信息交换和资源共享。这一点上分布式操作系统和网络操作系统差别不大,他们的本质区别在于:分布式操作系统能使系统中若干计算机相互协作完成一个共同的任务。这使得各台计算机组成一个完整的,功能强大的计算机系统。 四、操作系统的功能 从资源管理的观点出发,操作系统功能可分为五大部分:处理器管理、存储管理、文件管理、设备管理和作业管理。 计算机系统是由硬件系统和软件系统两部分组成,操作系统是软件系统的一个组成部分,它是直接在硬件系统的基础上工作的,所以在研究操作系统之前,先必须对计算机系统的结构有一个基本的了解,本章就是讲述计算机系统结构的基本知识。

[文学]自考《操作系统概论》串讲笔记

《操作系统概论》串讲笔记 第1章引论 考情分析 本章主要内容:1.计算机系统的概念 2.操作系统的定义、作用和功能 3.操作系统的分类 4.管态、目态、特权指令、访管指令的概念 5.操作系统与用户的两个接口 重点:1.操作系统的功能、分类 2.处理器的工作状态 3.程序状态字 4.系统功能调用 本章考试分值约为8~10分,出题形式多以单选题、多选题、填空题为主。 知识网络图 串讲内容

一、计算机系统 1.计算机系统包括计算机硬件和计算机软件两大部分。 2. (1)计算机系统的最内层是硬件。 (2)计算机系统的最外层是使用计算机的人。人与计算机硬件之间的接口界面是计算机软件。 (3)计算机软件可以分为系统软件、支撑软件以及应用软件三类。 二、操作系统 1.操作系统的定义: 操作系统(OS)是管理计算机系统资源、控制程序执行、改善人机界面和为应用软件提供支持的一种系统软件、 2.操作系统在计算机系统中的作用有如下几个方面: (1)操作系统管理计算机系统的资源; (2)操作系统为用户提供方便的使用接口; (3)操作系统具有扩充硬件的功能。 3.(重点)从资源管理的观点看,操作系统的功能可分为:处理器管理、存储管理、文件管理和设备管理。 三、操作系统的形成与基本类型(重点) 1.批处理操作系统: (1)“单道批处理系统”:每次只允许一个作业执行。一批作业的程序和数据交给系统后,系统顺序控制作业的执行,当一个作业执行结束后自动转入下一个作业的执行。 (2)“多道批处理系统”:允许若干个作业同时装入主存储器,使一个中央处理器轮流地执行各个作业,各个作业可以同时使用各自所需的外围设备。 (3)多道批处理系统提高了计算机系统的资源使用率,但作业执行时用户不能直接干预作业的执行。但作业执行中发现出错,由操作系统通知用户重新修改后再次装入执行。 2.分时操作系统(简称分时系统) (1)分时操作系统是多个用户通过终端机器同时使用一台主机,这些终端机器链接在主机上,用户可以同时与主机进行交互操作而不干扰。它以时间片为单位轮流使用计算机中某一资源的系统。 (2)分时操作系统的主要特点:同时性、独立性、及时性、交互性。

新版第1章操作系统概论习题答案-新版-精选.pdf

第1章操作系统概论 (1) 试说明什么是操作系统,它具有什么特征?其最基本特征是什么? 解: 操作系统就是一组管理与控制计算机软硬件资源并对各项任务进行合理化调度,且附加了各种便于用户操作的工具的软件层次。 现代操作系统都具有并发、共享、虚拟和异步特性,其中并发性是操作系统的最基本特征,也是最重要的特征,其它三个特性均基于并发性而存在。 (2) 设计现代操作系统的主要目标是什么? 解: 现代操作系统的设计目标是有效性、方便性、开放性、可扩展性等特性。其中有效性指 的是OS应能有效地提高系统资源利用率和系统吞吐量。方便性指的是配置了OS后的计算机应该更容易使用。这两个性质是操作系统最重要的设计目标。开放性指的是OS应遵循世界标准规范,如开放系统互连OSI国际标准。可扩展性指的是OS应提供良好的系统结构,使得新设备、新功能和新模块能方便地加载到当前系统中,同时也要提供修改老模块的可能,这种对系统软硬件组成以及功能的扩充保证称为可扩展性。 (3) 操作系统的作用体现在哪些方面? 解: 现代操作系统的主要任务就是维护一个优良的运行环境,以便多道程序能够有序地、高效地获得执行,而在运行的同时,还要尽可能地提高资源利用率和系统响应速度,并保证用户操作的方便性。因此操作系统的基本功能应包括处理器管理、存储器管理、设备管理和文件管理。此外,为了给用户提供一个统一、方便、有效的使用系统能力的手段,现代操作系 统还需要提供一个友好的人机接口。在互联网不断发展的今天,操作系统中通常还具备基本 的网络服务功能和信息安全防护等方面的支持。 (4) 试说明实时操作系统和分时操作系统在交互性、及时性和可靠性方面的异同。 解: 交互性:分时系统能够使用户和系统进行人-机对话。实时系统也具有交互性, 但人与系统的交互仅限于访问系统中某些特定的专用服务程序。 及时性:分时系统的响应时间是以人能够接受的等待时间为标准,而实时控制系 统对响应时间要求比较严格,它是以控制过程或信息处理中所能接受的延迟为标 准。 可靠性:实时系统要求系统可靠性要比分时系统高。在实时系统中往往采用多级 容错措施来保证系统的安全及数据的安全。 (5) 试比较分布式操作系统和网络操作系统的异同。 解: 它们的区别在于:分布式操作系统的设计思想和网络操作系统是不同的,这决定了它们

最新计算机操作系统试题及答案

一、单项选择(每小题1分,共10分) 1. 操作系统负责管理计算机的()。A.程序 B.作业 C.资源 D.进程 2.工业过程控制系统中运行的操作系统最好是() A.分时系统 B.实时系统 C.分布式操作系统 D.网络操作系统 3.对事件处理有严格时间限制的系统式()A.分时系统 B.实时系统 C. 分布式操作系统 D.网络操作系统 4.批处理系统的主要缺点是()A.没有交互性 B.系统资源利用率不高C.系统吞吐率小 D.不具备并行性 5.操作系统的功能是进行处理机管理、()管理、存储管理、设备管理和文件管理。A.硬件 B.软件 C.作业 D.进程 6.作业调度是()。 A.选取某些作业进入内存 B.从读卡机挑选作业进入输入井 C.从主存中挑选作业占有处理器 C.从等待设备的队列中选取一个作业 7.一个作业被调度成功后,系统创建相应的进程,该进程的初始状态是() A.等待态 B.运行态 C.等待访问设备态 D.就绪态 8.一个作业的完成,要经过若干步骤,这些步骤称为() A.子程序 B.作业流 C.进程 D.作业步 9.作业的4个状态中,()状态已经处于进程管理之下。 A.录入 B.后备 C.执行 D.完成 10.进程和程序的根本区别在于() A.是不是被调入到内存中 B.是不是占有处理器 C.是不是具有就绪、运行和等待三种状态 D.静态与动态特点 1、进程?进程是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位。 2、管道?管道是连接读写进程的一个特殊文件,按照FCFS方式在进程之间传送数据,也能使进程同步执行。发送进程向管道文件写入数据,接收进程从管道文件读出数据。 3、接口?用户接口就是系统向用户提供的使用其功能的手段。用户接口也叫用户界面、操作界面等。操作系统提供的两种用户接口,即程序接口和操作接口。

《计算机操作系统》期末试题及答案

一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。 1.在配置多道批处理操作系统的计算机系统中( ) A.用户可联机、调试自己的程序 B.允许用户直接干预作业的执行C.能对外部事件实时响应 D.允许多个作业同时使用不同的外围设备 2.UNIX操作系统是一个( ) A.交互式分时操作系统 B.多道批处理操作系统 C.实时操作系统 D.分布式操作系统 3.若操作系统管理的某用户程序当前正占有中央处理器,该用户程序欲读磁盘上的文件信息,那么用户程序中相应的指令应该是( ) A.启动I/O指令 B.等待I/O指令 C.转移指令 D.访管指令 4.当一次系统调用功能完成后,中央处理器的工作状态应( ) A.保持管态 B.保持目态 C.从管态转换成目态 D.从目态转换成管态 5.分布式操作系统的特点是( ) A.资源共享 B.资源地理位置分散 C.资源位置透明 D.多个用户的程序并行运行 6.引入进程的原因是( ) A.提高资源的利用率和控制程序的执行 B.提高资源的利用率和正确描述程序的执行情况 C.提高程序的执行速度和控制程序的执行 D.提高程序的执行速度和正确描述程序的执行情况 7.进程有三种基本状态,可能的状态转换是( ) A.就绪态到运行态、等待态到就绪态、运行态到等待态 B.就绪态到运行态、就绪态到等待态、等待态到运行态 C.就绪态到运行态、等待态到就绪态、等待态到运行态 D.运行态到就绪态、就绪态到等待态、等待态到运行态 8.处理器不能直接访问的存储器是( ) A.寄存器 B.高速缓冲存储器 C.主存储器 D.辅助存储器

相关主题
文本预览
相关文档 最新文档