操作系统,并行性:两个或多个事件在同一时刻发生并发性:两个或多个事件在同一时间间隔内发生 ,就绪状态执行状态阻塞状态

操作系统的目的:

方便性
有效性
可扩展性
开放性

操作系统的作用:

作为用户和计算机硬件系统之间的接口
作为计算机系统资源的管理者
实现了对计算机资源的抽象
多道批处理系统的优缺点:

资源利用率高
系统吞吐量大
平均周转时间长
无交互能力
分时系统:

目标:交互性和及时相应
问题:及时接收、及时处理
特征:多路性、独立性、及时性、交互性
实时系统:

目标:快速响应、及时响应
类实时系统的类型:工业控制系统、信息查询系统、多媒体系统、嵌入式系统
实时任务的类型:

周期性实时任务和非周期性实时任务
硬实时任务和软实时任务

实时系统与分时系统比较:

多路性
独立性
及时性
交互性
可靠性

操作系统的基本特征:

并发
共享
虚拟
异步

并行性:两个或多个事件在同一时刻发生

并发性:两个或多个事件在同一时间间隔内发生

共享:指系统中的资源可供内存中多个并发执行的进程使用(互斥共享方式、同时共享方式)

虚拟:通过某种技术将一个物理实体变为若干个逻辑上对应的功能时(时分复用技术、空分复用技术)

分时复用技术:使资源的利用率提高。他利用某设备为一用户服务的空闲时间,又转去为其他用户服务,使设备得到最充分的利用

异步:进程是以人们不可预知的速度向前推进

程序执行的两种方式:

顺序执行:

顺序性
封闭性
可再现性


并发执行:

宏观上并行
微观上串行

进程

在系统中能独立运行并作为资源分配的基本单位(拥有资源、调度)

线程

由进程创建的,它是比进程更小的基本单位

PCB:进程控制块

进程的三种基本状态:

就绪状态
执行状态
阻塞状态

操作系统,并行性:两个或多个事件在同一时刻发生并发性:两个或多个事件在同一时间间隔内发生 ,就绪状态执行状态阻塞状态_第1张图片

创建状态和终止状态


1)创建状态:
创建一个进程要经过以下几步:

首先进程申请一个空白PCB,并向PCB中填写用于控制和管理进程的信息
然后为该进程分配运行时所必须的资源
最后把该进程转入就绪状态并插入就绪队列
引入创建状态是为了保证进程的调度必须是在创建工作完成之后
2)终止状态:
进程的终止状态有以下两步:

首先,等待操作系统做善后处理
最后将其PCB清零,并将PCB空间返还给系统
当一个进程达到了自然结束点或是出现了无法克服的错误,或是被操作系统终结,则进入终止状态。进入终止状态的进程以后不能再执行,但在操作系统中保存状态码和一些计时统计数据供其他进程收集
操作系统,并行性:两个或多个事件在同一时刻发生并发性:两个或多个事件在同一时间间隔内发生 ,就绪状态执行状态阻塞状态_第2张图片

1.挂起操作的引入

1)终端用户的需要:当终端用户在运行程序期间发现有可疑问题,希望暂停程序的运行以便研究其执行情况或做一定的修改
2)父进程请求
3)符合调节的需要
4)操作系统的需要:有时希望挂起某些进程以便检查运行中的资源使用情况或进行记账

2.原语Suspend和激活原语Active

分别使用挂起原语Suspend和激活原语Active后,在它们的作用下,进程将可能发生以下几种状态的转换:

(1) 活动就绪→静止就绪。
(2) 活动阻塞→静止阻塞。
(3) 静止就绪→活动就绪。  
(4) 静止阻塞→活动阻塞。

具有挂起状态的进程状态图:
操作系统,并行性:两个或多个事件在同一时刻发生并发性:两个或多个事件在同一时间间隔内发生 ,就绪状态执行状态阻塞状态_第3张图片

具有创建、终止和挂起状态的进程状态图:

增加下面几种情况:
(1)  NULL→创建
(2) 创建→活动就绪
(3) 创建→静止就绪
(4) 执行→终止

操作系统,并行性:两个或多个事件在同一时刻发生并发性:两个或多个事件在同一时间间隔内发生 ,就绪状态执行状态阻塞状态_第4张图片

进程同步

概念:是对多个相关进程在执行次序上进行协调,是并发执行的诸进程之间能按照一定的规则共享系统资源,并能很好地相互合作,从而使进程的执行具有可再现性

两种形式的制约关系

间接相互制约关系(进程互斥)资源竞争使用

直接相互制约关系(进程同步)有顺序问题

进程互斥:在多道程序环境下,每次只允许一个进程对临界资源进行访问

进程同步:多个相关进程在执行次序上的协调

临界资源

互斥资源(如打印机)不只是硬件资源,也有软件资源,一次仅允许一个进程访问的资源

临界区:在进程中涉及到临界资源的程序段

同步机制应遵循的规则:

空闲让进:当无进程处于临界区时,表明临界资源处于空闲状态,应允许一个请求进入临界区的进程进入自己的临界区,以有效地利用临界资源
忙则等待:当已有进程进入临界区是,表明临界资源正在被访问,因而其他试图进入临界区的进程必须等待,以保证对临界资源的互斥访问
有限等待:对要求访问临界资源的进程,应保证在有限时间内能进入自己的临界去,以免陷入“死等”状态
让权等待:当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”状态
信号量机制:

资源数码的整型量S
 

wait(S){

while(S<=0);

S–

}

signal(S){

S++;//释放了一个资源

}

经典进程同步问题:

生产者-消费者问题

信号量(S):拥有的资源总数

通过PV操作,S为正:表示当前剩余的资源数量

S为负:表示其绝对值---当前在等待唤醒的进程数

P:申请资源。批准,资源-1;不批准(无),阻塞调用进程

V:释放资源。资源+1;唤醒等待进程

处理机调度的层次:

高级调度:作业调度,对象是作业,从外存中调入内存

低级调度:进程调度,从内存中调度,给它分配CPU

中级调度:提高内存利用率和系统吞吐量

1. 处理机调度算法的共同目标
 (1) 资源利用率
 (2) 公平性
 (3) 平衡性
 (4) 策略强制执行
2. 批处理系统的目标
 (1) 平均周转时间短
 (2) 系统吞吐量高
 (3) 处理机利用率高
3. 分时系统的目标
 (1) 响应时间快
 (2) 均衡性
4. 实时系统的目标
 (1) 截止时间的保证
 (2) 可预测性

作业调度算法:

先来先服务(FCFS)

每次调度就是从就绪的进程队列中选择一个最先进入该队列的进程,为之分配处理机。该进程一直运行到完成或者发生某事件而阻塞后,进程调度程序才将处理及分配给其他进程

短作业优先(SJF)

以作业的长短来计算优先级,作业越短,优先级越高。

优先级调度算法(PSA)

基于作业的紧迫程度,由外部赋予作业相应的优先级,调度算法是根据改优先级进行调度的

高响应比优先调度算法(HRRN)

优先权=(等待时间+要求服务时间)/(要求服务时间)=(响应时间)/(要求服务时间)

死锁

可重用性资源


(1) 每一个可重用性资源中的单元只能分配给一个进程使用,不允许多个进程共享。
(2) 进程在使用可重用性资源时,须按照这样的顺序:
 ① 请求资源。如果请求资源失败,请求进程将会被阻塞或循环等待。
 ② 使用资源。进程对资源进行操作,如用打印机进行打印;
  ③ 释放资源。当进程使用完后自己释放资源。
(3) 系统中每一类可重用性资源中的单元数目是相对固定的,进程在运行期间既不能创建也不能删除它

可消耗性资源


可消耗性资源又称为临时性资源,它是在进程运行期间,由进程动态地创建和消耗的,它具有如下性质:
 ① 每一类可消耗性资源的单元数目在进程运行期间是可以不断变化的,有时它可以有许多,有时可能为0;
 ② 进程在运行过程中,可以不断地创造可消耗性资源的单元,将它们放入该资源类的缓冲区中,以增加该资源类的单元数目;
 ③ 进程在运行过程中,可以请求若干个可消耗性资源单元,用于进程自己的消耗,不再将它们返回给该资源类中;

可抢占性资源
  可把系统中的资源分成两类,一类是可抢占性资源,是指某进程在获得这类资源后,该资源可以再被其它进程或系统抢占。

不可抢占性资源
  另一类资源是不可抢占性资源,即一旦系统把某资源分配给该进程后,就不能将它强行收回,只能在进程用完后自行释放。
  
产生死锁的原因:竞争资源,进程推进顺序不合理

产生死锁的必要条件

互斥条件
请求和保持条件
不可抢占条件
循环等待


预防死锁:

破坏“请求和保持条件”,采用“资源一次性分配” 危害:造成资源浪费
破坏“不剥夺条件”,采用“可剥夺资源”
破坏“环路等待”,采用“资源有序申请”
避免死锁:银行家算法 --Dijkstra

银行家算法

数据结构
(1) 可利用资源向量Available。
(2) 最大需求矩阵Max。
(3) 分配矩阵Allocation。
(4) 需求矩阵Need。


设Requesti是进程Pi的请求向量,如果Request i[j]=K,表示进程Pi需要K个Rj类型的资源。当Pi发出资源请求后,系统按下述步骤进行检查:
(1) 如果Request i[j]≤Need[i, j],便转向步骤(2); 否则认为出错,因为它所需要的资源数已超过它所宣布的最大值。
(2) 如果Request i[j]≤Available[j],便转向步骤(3); 否则,表示尚无足够资源,Pi须等待。
(3) 系统试探着把资源分配给进程Pi,并修改下面数据结构中的数值:

Available[j] = Available[j] - Request i[j];
Allocation[i, j] = Allocation[i, j] + Request i[j];
Need[i, j] = Need[i, j] - Request i[j];
(4) 系统执行安全性算法,检查此次资源分配后系统是否处于安全状态。若安全,才正式将资源分配给进程Pi,以完成本次分配;否则,将本次的试探分配作废,恢复原来的资源分配状态,让进程Pi等待。


安全性算法


(1) 设置两个向量:
① 工作向量Work,它表示系统可提供给进程继续运行所需的各类资源数目,它含有m个元素,在执行安全算法开始时,Work := Available;
② Finish:它表示系统是否有足够的资源分配给进程,使之运行完成。开始时先做Finish[i] := false;当有足够资源分配给进程时,再令Finish[i] := true。
(2) 从进程集合中找到一个能满足下述条件的进程:
① Finish[i]=false;
② Need[i, j]≤Work[j];
若找到,执行步骤(3),否则,执行步骤(4)。
(3) 当进程Pi获得资源后,可顺利执行,直至完成,并释放出分配给它的资源,故应执行:
Work[j] = Work[j]+Allocation[i, j];
Finish[i] =true;
go to step 2;
(4) 如果所有进程的Finish[i]=true都满足,则表示系统处于安全状态;否则,系统处于不安全状态。


基于顺序搜索的动态分区分配算法
操作系统,并行性:两个或多个事件在同一时刻发生并发性:两个或多个事件在同一时间间隔内发生 ,就绪状态执行状态阻塞状态_第5张图片

分页存储管理方式

 页面和物理块
   (1) 页面。
   (2) 页面大小。

地址结构

操作系统,并行性:两个或多个事件在同一时刻发生并发性:两个或多个事件在同一时间间隔内发生 ,就绪状态执行状态阻塞状态_第6张图片

前一部分为页号P,后一部分为偏移量W,记页内地址。

图中的地址长度为32位,其中011位为页内地址,即每页的大小为4KB;1231位为页号,地址空间最多允许1M页。

若给定一个逻辑地址空间中的地址为A,页面的大小为L,则页号P和页内地址d可以算:

P=INT[A/L],d=p[A]MOD L

INT是整除函数,MOD是取余函数;

设系统页面大小为1KB,设A=2170B,则可以求出:P=2,d=122

页表

每个进程建立一张页面映像表

1、页表项存放物理块号

2、页表长度=页表项长度*分页的个数

3、页表项长度

4、页表项的个数=分页的数目

5、分页的数目=页号+1

6、物理块=页表起始地址+(页号*页表项长度)

EAT:内存的有效访问时间;访问一次内存的时间为t;λ表示查找块表所需的时间;a为命中率

EAT=aλ+(t+λ)(1-a)+t=2t+λ-ta

两级和多级页表

两级页表(Two-Level Page Table)
操作系统,并行性:两个或多个事件在同一时刻发生并发性:两个或多个事件在同一时间间隔内发生 ,就绪状态执行状态阻塞状态_第7张图片

分段存储管理方式(内存没有进行划分·)

  1. 分段有主程序段MAIN、子程序段X、数据段D及栈段S等

操作系统,并行性:两个或多个事件在同一时刻发生并发性:两个或多个事件在同一时间间隔内发生 ,就绪状态执行状态阻塞状态_第8张图片

段表


而在分段式存储管理系统中,则是为每个分段分配一个连续的分区。进程中的各个段,可以离散地装入内存中不同的分区中。

地址变换机构
在进行地址变换时,系统将逻辑地址中的段号与段表长度TL进行比较。若S>TL,表示段号太大,是访问越界,于是产生越界中断信号。若未越界,则根据段表的始址和该段的段号,计算出该段对应段表项的位置,从中读出该段在内存的起始地址。然后,再检查段内地址d是否超过该段的段长SL。若超过,即d>SL,同样发出越界中断信号。若未越界,则将该段的基址d与段内地址相加,即可得到要访问的内存物理地址。图4-20示出了分段系统的地址变换过程

分页和分段的主要区别  (1) 页是信息的物理单位。  (2) 页的大小固定且由系统决定。  (3) 分页的用户程序地址空间是一维的

虚拟存储器的定义


对内存空间加以扩充,实际容量成为逻辑容量

特征

多次性、对换性、虚拟性

虚拟存储器的实现方法


分页请求系统:


1.硬件支持
请求分页的页表机制

缺页中断机构
(1) 在指令执行期间产生和处理中断信号
(2) 一条指令在执行期间可能产生多次缺页中断
地址变换机构

操作系统,并行性:两个或多个事件在同一时刻发生并发性:两个或多个事件在同一时间间隔内发生 ,就绪状态执行状态阻塞状态_第9张图片

2.实现请求分页的件
请求分段系统:
1.硬件支持
请求分段的段表机制
缺段中断机构
地址变换机构

2.软件支持

页面置换算法:

最佳置换算法:其所选择的被淘汰页面将是以后永不使用的,或许是在最长时间内不再被访问的页面

操作系统,并行性:两个或多个事件在同一时刻发生并发性:两个或多个事件在同一时间间隔内发生 ,就绪状态执行状态阻塞状态_第10张图片

先进先出FIFO页面置换算法:选择在内存中驻留时间最长的页面予以淘汰

操作系统,并行性:两个或多个事件在同一时刻发生并发性:两个或多个事件在同一时间间隔内发生 ,就绪状态执行状态阻塞状态_第11张图片

LRU置换算法:选择最近最久未使用的页面

操作系统,并行性:两个或多个事件在同一时刻发生并发性:两个或多个事件在同一时间间隔内发生 ,就绪状态执行状态阻塞状态_第12张图片

栈:栈顶始终是最新被访问页面的编号,而栈底则是最近最久未使用页面的页面号

假定现有一进程,它分有五个物理块,所访问的页面的页面号序列为: 

4,7,0,7,1,0,1,2,1,2,6操作系统,并行性:两个或多个事件在同一时刻发生并发性:两个或多个事件在同一时间间隔内发生 ,就绪状态执行状态阻塞状态_第13张图片

LFU置换算法:选择在最近时期使用最少的页面作为淘汰页

LRU算法和LFU算法的区别
(1)LRU关键是看页面最后一次被使用到发生调用的时间长短
(2)LFU关键是看一定时间段内页面被使用的频率

你可能感兴趣的:(操作系统,操作系统)