《操作系统》知识点整理

1.1操作系统的目标和作用

1. OS的目标

方便性:用户无需了解底层硬件,无需用01机器语言操作。(可以说不用手,用工具,进入石器时代了。)

有效性:CPUI/O、存储等的管理专门、合理地被组织管理起来,提高资源的利用率。

可扩充性:扩充应用软件;适应硬件和体系结构发展,扩充底层管理功能模块等。

开放性:网络环境,遵循开放互联标准。

2.OS的作用

1) 作为用户与计算机硬件系统之间的接口

2OS作为计算机系统资源的管理者

3OS用作扩充机器

3.  单道批处理系统(Simple Batch Processing System)

特征:单道性、顺序性、自动性

优点:

l 一定程度解决人机矛盾,CPUI/O速度矛盾;

l 提高了资源利用率和系统吞吐量;

l 算做OS的前身,但还不是现在所理解的OS

4.  多道批处理系统

1)多道批处理系统的特征:

多道性

无序性:作业入内存由算法决定,不按提交顺序。入内存后顺序执行。

调度性:包括作业调度、进程调度

2)多道批处理系统的优缺点:

优点:

资源利用率高:CPU和内存利用率较高;

系统吞吐量大:单位时间内完成的工作总量大;

缺点:

平均周转时间长:短作业的周转时间显著增长;

无交互能力:整个作业完成后或中间出错时,才与用户交互,不利于调试和修改;

5.操作系统定义

操作系统是:一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度(多道),方便用户使用的程序的集合。

6.分时系统

分时系统的特征:

多路、独立、及时、交互

多路性:多个用户同时使用一台计算机,共享CPU和其他资源,充分利用系统资源

宏观上:是多个人同时使用一个CPU

微观上:多个人在不同时刻轮流使用CPU

独立性:用户感觉不到计算机为其他人服务,各用户独立操作,互不干扰。

及时性:通过时间片技术和轮转调度算法保证及时响应。

交互性:系统及时响应用户的请求,显著提高调试和修改程序的效率:缩短了周转时间。

7.  实时系统(Real-Time System)

实时系统是指:系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。

8.三大系统比较

 

 

 

 

1.3操作系统的基本特性

并发、共享  、虚拟、异步

1.4操作系统的主要功能

处理机管理功能(作业管理)

存储器管理功能

设备管理功能

文件管理功能

用户接口

 

2.1 进程的基本概念

1.

1)引入前趋图

描述进程执行前后关系的图

有向无循环图(DAG)

lPi结点:描述一个程序段、进程、或一条语句

l有向边“→:结点之间的偏序或前序关系

lPi→Pk,则PiPk的直接前趋,PkPi的直接后继。

2)程序顺序执行时的特征

(1) 顺序性

处理机的操作严格按程序规定顺序执行

(2) 封闭性

 程序一旦开始执行,其计算结果不受外界因素影响

(3) 可再现性

程序执行只要初始条件一样,不论如何停顿,重复执行多少次结果都一样。

4并发程序执行时的特征

间断性、失去封闭性、结果不可再现性

2.  进程

1)进程的定义

进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。

2)进程的特征

结构性特征,进程的根本——PCB

动态性

l进程实质上是进程实体的一次有生命期的执行过程。程序只是静态的一组有序指令。

l进程最基本特征

并发性

l多个进程实体同存于内存中,在一段时间内同时运行。

lPCB的程序才能并发。

独立性

异步性

!区别进程与程序

¡动与静:

l进程是动态的,程序是静态的:程序是有序代码的集合;进程是程序的执行。

¡永久与暂时:

l进程是暂时的,程序是永久的:进程是一个状态变化的过程,程序可长久保存。

¡结构:

l进程的组成包括程序、数据和进程控制块(进程各种控制信息)。

¡进程与程序的对应关系:

l都可1n。通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。

3)进程的基本状态

 (1)就绪状态(Ready)

 进程获得除CPU之外的所有必需资源,一旦得到CPU控制权,可立即运行。

(2)运行状态(Running)

进程已获得所有运行必需的资源,正在处理机上执行。

(3)阻塞状态(Blocked)

正在执行的进程由于发生某事件(请求I/O、申请缓冲、时间片到)而暂时无法执行时,便放弃CPU后暂停

3.  进程控制块PCB

进程实体:代码段+数据段+PCB

进程控制块定义
Process Control Block

存放进程的管理和控制信息的数据结构称为进程控制块。

 

PCB的组织方式

¡链接方式

l同一状态的PCB,依靠链接指针链接成队列。就绪队列;若干个阻塞队列;空白队列(PCB区的空PCB块)

¡索引方式

l同状态的PCB同样集中记录,但以索引表的方式记录PCB的地址。用专门的单元记录各索引表的首地址。

 

 

2.2进程控制

进程控制的基本过程:

进程的创建

进程的终止

进程的阻塞与唤醒

进程的挂起和激活

1)进程创建过程

(1) 申请空白PCB

(2) 为新进程分配资源

主要是内存资源的处理

(3) 初始化进程控制块

标识符(包括父进程的)、程序计数器指向程序入口地址,就绪态、优先级等信息的填写。

(4) 将新进程插入就绪队列

 

注意!

原语是由若干指令构成的原子操作过程,作为整体实现功能,不可被打断

2)阻塞和唤醒过程

由进程调用阻塞原语阻塞自己,是主动行为:

1)将PCB中的状态改为阻塞

2)该PCB加入到阻塞队列中

3)转进程调度,将处理机分配给另一进程

4)进行进程切换,即根据两切换进程的PCB,保护与重新设置处理机状态。

3)挂起和激活

1)检查被挂起进程的状态活动就绪则改为静止就绪,活动阻塞则改为静止阻塞

2)将该PCB复制到内存(方便检查)/外存(对换)指定区域

3)*若挂起的进程是执行态,则需重新进行进程调度。

 

2.3进程同步

1)进程同步的主要任务:

 使并发执行的诸进程之间能有效地共享资源相互合作,从而使程序的执行具有可再现性

2)临界资源

¡一次仅允许一个进程使用的资源。

理解同步

互斥:在操作系统中,当一个进程进入临界区使用临界资源时,另一个进程必须等待,直到占用临界资源的进程退出临界区,我们称进程之间的这种相互制约关系为互斥

同步:多个相互合作的进程,在一些关键点上可能需要互相等待或互相交换信息,这种相互制约关系称为进程同步关系。可理解为有序

如:生产和消费的有序关系靠对counter的正确判断达到,而对counter的修改必须互斥修改。

3)临界区

每个进程中访问临界资源的那段代码叫临界区。为了正确同步,对临界区的代码要增加控制

4)同步机制应遵循的规则

实现互斥的方法应符合如下每条原则

空闲让进:资源使用最基本原则

忙则等待:保证互斥

有限等待:合适时被唤醒防止死等

让权等待:能主动释放CPU防止忙等

 

2.4信号量机制

1) 整型信号量

信号量定义为一个整型量; 根据初始情况赋相应的值; 仅能通过两个原子操作来访问。

P操作  wait(S):                   While S<=0 do no-op;               S:=S-1;

V操作  signal(S):                     S:=S+1;

 

2)记录型信号量

整型信号量符合“有限等待”原则 signal释放资源后,当CPU被分配给等待进程后,等待进程仍可继续执行,可以符合“有限等待”。

但整型信号量不符合“让权等待”原则 整型信号量的wait操作,当s ≤0时,当前进程会占着CPU不断测试; 信号量原语不能被打断,这个占有CPU的进程会一直不断的占据CPU循环下去,陷入忙等。

 

3)信号量的基本应用

实现进程互斥

S.value = S.value - 1;

 if  S.value < 0  then  block(S,L)

critical section操作共享资源R

S.value = S.value + 1;

 if  S.value <= 0 then wakeup(S,L)

remainder section

实现进程间的前趋关系(有序)

P1 : C1 ;signal(S);

P2 : wait(S);C2 ;

 

4)AND型信号量

出现原因:一些应用往往需要两个或多个共享资源,而不是前述的一个资源。进程同时要求的共享资源越多,发生死锁可能性越大。

解决思想:         一次性分配给进程所需资源,用完一起释放。Wait操作时对它所有需要的资源都要判断,有AND条件,故称“AND同步”、“同时wait”。

 

5)信号量集

引入原因:

每次只能获得或释放一个单位的资源,低效;

某些时候资源分配有下限的限制;

修改:

在大于可分配设置的下界值t前提下,每次可分配d个。

 

*信号量题目做题一般方法:

分析问题,找出同步、互斥关系

根据资源设置信号量变量

写出代码过程,并注意P、V操作的位置

检查代码,模拟机器运行,体验信号量的变化和程序运行过程是否正确。

 

2.4 经典进程同步问题

生产者—消费者问题 互斥、同步

哲学家就餐问题 互斥

读者——写者问题 有条件的互斥

 

1. 生产者—消费者问题

无论生产者、消费者使用缓冲池时应保证互斥使用(互斥信号量mutex )

生产者和消费者间交叉有序: 有序的控制最根源在产品数量上。 设置两个信号量:分别针对生产者、消费者设置不同的信号量,empty和full分别表示缓冲池中空缓冲池和满缓冲池(即产品)的数量。

empty、full两者有天然的数量关系,在PV控制下值不断变化,但在值等于0的点上是控制顺序的关键。

1)两个生产者同时的情况 假设的时间片轮转顺序如下

produce;       

     produce;

wait(e);

wait(m);

buffer(in):=nexp;

wait(e);

wait(m);

buffer(in):=nexp;

in:=(in+1)mod n;

signal(m);

signal(f);

in:=(in+1)mod n;

signal(m);

signal(f);

2)生产者等待消费者情况

假设的时间片轮转顺序如下 produce;

wait(e);

wait(m);

buffer(in):=nexp;  

       wait(f);   

     wait(m);

nextc:=buffer(out);

in:=(in+1)mod n;

signal(m);

signal(f);

out:=(out+1) mod n;     

    signal(m);      

   signal(e);

consume;

 

2. 哲学家进餐问题

五个哲学家共用一张圆桌,分别坐在周围的五张椅子上,在桌子上有五只碗和五只筷子,他们的生活方式是交替地进行思考和进餐。平时,一个哲学家进行思考,饥饿时便试图取用其左右最靠近他的筷子,只有在他拿到两只筷子时才能进餐。进餐毕,放下筷子继续思考。

repeat          

wait(chopstick[ i ]);          

wait(chopstick[ ( i +1) mod 5] );      

…  

   eat;  

   …        

  signal(chopstick[ i ]);    

      signal(chopstick[ ( i +1) mod 5] );  

   …    

 think;

until  false;

2)就餐死锁问题

假如五位哲学家同时饥饿而各自拿起左边的筷子时,就会使五个信号量chopstick均为0,当他们再试图去拿右边的筷子时,都将因无筷子可拿而无限等待。

解决方法:

数量控制:           

至多只允许有四位哲学家同时去拿左边的筷子,最终能保证至少有一位哲学家能够进餐,并在用毕后释放出他用过的两只筷子,从而使更多的哲学家能够进餐。---限制并发执行的进程数 

 

3. 读者——写者问题

一个数据文件被多个进程共享。Reader进程只要求读文件,Writer进程要求写入内容。 合理的同步关系是: 多个读进程可同时读; Writer进程与任何其他进程(包括Reader进程或其他Writer进程)不允许同时访问文件。

Reader : repeat    wait(wmutex);    读文件;    signal(wmutex); until  false;

Writer : repeat    wait(wmutex);    写入文件;    signal(wmutex); until  false;

 

读者Reader :

begin repeat      

wait(rmutex);

 if Readcount=0 then

   Readcount :=Readcount +1;

signal(rmutex);

       …    

perform read operation;  

wait(rmutex);

 …        

Readcount :=Readcount -1;  

 if Readcount=0 then signal(wmutex);

signal(rmutex);

until  false;

end

 

4.黑白棋子问题

两个人下棋,一方执黑棋,一方执白棋。要求双方轮流下子。给出两种情况的解决办法:     1)执黑子一方先下 2)双方都可以先下,谁先抢到棋盘谁先下。然后开始轮流下子。

1)执黑子一方先下     信号量:b=1,w=0

黑: while(没结束){     wait(b);     下一黑棋;     signal(w); }

白: while(没结束){     wait(w);     下一白棋;     signal(b); }

2)先抢到棋盘者先下,然后轮流下子

Semaphore    m=1; turn=0;

黑 while(没结束){ p(m); if (turn<>2)         下一黑子;   turn=2;     v(m) }

白: while(没结束){     p(m);     if (turn<>1)         下一白子;     turn=1;     v(m) } 

5.嗜睡的理发师问题

一个理发店有N个沙发,1个理发椅; 理发师: 持续睡觉,理发,收钱的动作 顾客: 若有沙发,进入等待;否则离开。 理发椅空,一顾客放弃沙发,去唤醒它理发; 理发后付费,付费完毕离开理发椅,离店。

顾客 Repeat

…   

 顾客坐上椅子   

 singal(full)(叫理发师)  

   wait(cutok)(享受理发中)   

 付费     

signal(payment)   

 wait(receipt)   

 离开椅子  

   离开店

Until false

 

顾客间对椅子、沙发使用导致的相互关系

顾客 Repeat     

if count>N then       

 离开店     

else      

   count=count+1      

   if count=1 then          

   wait(empty)等椅子      

   else       

     wait(sofa)         

      坐入沙发           

 wait(empty)等椅子       

       离开沙发          

   signal(sofa)         

end if   

 end if

Until false

顾客坐上椅子   

 …

(与理发师的关系)

    离开椅子   

      离开店

 

6.生产与销售问题

        设一无限大仓库。就1个门,不允许同时入库,也不允许边入库边出库。 1)两个生产者A,B生产各自的产品入库;但要求满足关系Sa-Sb在限定的[-n,m]差值范围内。 2)一个销售者取产品销售,但对两种产品的卖出进度要把握在Ma-Mb也在[-n,m]范围内。

同步关系分析

互斥:三人在对仓库的使用上必须互斥(mutex=1)

顺序关系:

1)生产者AB之间:因为假设仓库无限大,不需考虑空的限制。控制其能否生产的关键是再生产一个能否满足Sa-Sb在限定的[-n,m]范围内。 A、B关心的都是各自的生产指标数量,即A关心x=A-B这个变量的值,同样B关心y=B-A。 初值:初始若无产品,A最多可生产m个,B最多可生产n个。自己生产一个必然使对方可以多生产一个。

2)生产与消费之间 关心卖出的A、B间的差值

 

 

1)生产者间关系 定义资源信号量Sab,Sba表示A、B各自允许生产的数量 初始:Sab=m,Sba=n(注意Sab,Sba之间的关系,和始终是m+n。)

生产者A: Repeat   wait(Sab)  生产A   signal(Sba)     wait(mutex)       入库 signal(mutex)Until false

生产者B: Repeat   wait(Sab)  生产A   signal(Sba)     wait(mutex)       入库 signal(mutex)Until false

2)生产与销售的关系

销售要做的: 是否有商品?

设置总商品数S,每次wait(S)

有商品,是A还是B?

设置A,B商品计数的信号量SA,SB。对某种商品执行取就wait(SA)

是否可以取?

取操作要满足销售产品的关系。所以 wait(SA/SB)前面需要判断控制---判断差值difference ,

 

销售与生产间有什么关系?

生产者A: Repeat  wait(Sab)   生产A signal(Sba) wait(mutex)              入库 signal(mutex)Signal(SA) Signal(S)Until false

生产者B: Repeat  wait(Sba)   生产A signal(Sab) wait(mutex)              入库 signal(mutex)Signal(SB) Signal(S)Until false

 

 

操作系统概念背诵 一、进程管理 1. 进程管理的功能 ① 进程控制 ② 进程同步 ③ 进程通信 ④ 进程(线程)调度 2. 程序顺序执行时的特征:顺序性、封闭性、可再现性。 3. 程序并发执行时的特征:间断性、失去封闭性、不可再现性。 4. 进程由程序段、数据段进程控制块(PCB)组成。 5. 进程的定义 ① 进程是程序的一次执行。 ② 进程是一个程序及其数据在处理机上顺序执行时所发生的活动。 ③ 进程是进程实体的运行过程,是系统进行资源分配调度的一个独立单位。 ④ 进程是程序在一个数据集合上的运行过程,是系统进行资源分配调度的一个独立单位。 6. 进程的基本特征:动态性、并发性、独立性、异步性、结构特征(程序+数据+PCB) 7. 进程的状态 三态:就绪状态、运行状态、阻塞状态。 五态:活动就绪、静止就绪、活动阻塞、静止阻塞、运行。 8. 进程控制块(PCB)的组成:进程标识符、处理机状态、进程调度信息、进程控制信息。 9. 临界区:进程中访问临界资源的那段代码叫做临界区。 10. 同步机制必须遵循的原则:空闲让进、忙则等待、有限等待、让权等待。 11. P, V 操作的定义 P(S):S = S − 1; 若S≥0,则当前进程继续运行; 若S<0,则将当前进程插入到S 的等待队列中去。 V(S):S = S + 1; 若S>0,则当前进程继续运行; 若S≤0,则从S 的等待队列中移出一个进程放到就绪队列中去。 12. 信号量的物理意义 S = −n 时,表示有n 个等待进入临界区的进程,当前已有进程在临界区中访问临界资源; S = 0 时,表示不允许任何进程进入临界区,当前已有进程在临界区中访问临界资源; S = n 时,表示临界区是空闲的,该类资源的可用数目为n,可以有n 个进程访问该类资源。 13. 高级通信机制有:共享存储器系统、消息传递系统、管道通信系统。 14. 线程的定义:线程是进程内的一个实体,是处理机调度的基本单位,是程序内部一个单一的顺序控 制流。 15. 引入进程的目的:是为了使多个程序并发执行,提高资源利用率系统吞吐量。 16. 引入线程的目的:是为了减少程序并发执行时的时空开销,使操作系统具有更好的并发性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值