计算机系统之进程管理

把OS看作是由若干个可独立运行的程序和一个可对这些程序进行协调控制的核心(内核)组成。这些运行的程序称为进程,它是资源分配和独立运行的基本单位,每一进程都完成某一特定任务,而OS的内核则必须要控制和协调这些进程的运行,解决进程之间的通信,并从系统可并发工作为出发点,实现并发进程间通信,并解决由此带来的共享资源的竞争问题

(调度:分配)

进程管理

进程的基本概念与控制
1.进程的基本概念

(1)前趋图

在这里插入图片描述
在这里插入图片描述
一条直线上同步,不能并发
并发,既不同步也不互斥

(2)程序顺序执行

程序执行时,必须按照某种先后次序逐个执行
Eg s1: a:=x+y
s2: b:=a-5
s3: c:=b+1
程序顺序执行时有如下特征:
顺序性,封闭性,可再现性

(3)程序并发执行

在处理一批作业时,有的程序可实现并发执行
例如:S1: a:=x+2
S2: b:=y+4
S3: c:=a+b
S4: d:=c+6
在这里插入图片描述
(一条直线上同步,不能并发)
程序并发执行时的特征:
间断性,失去封闭性,不可再现性

异步性包括不可再现性

请添加图片描述
在这里插入图片描述

(4)进程的描述

进程的定义、特征
在这里插入图片描述
进程执行的基本单位是指令
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
进程实体(3段)+运行=进程
在这里插入图片描述

(5)进程的状态(状态、状态转换 及挂起状态)

在这里插入图片描述
进程在运行期间并非固定处于某个状态,而是不断从一个状态转换到另一个状态。
在这里插入图片描述
(进程状态转换)

interrupt:中断:
1.分时(时间片用完)(计时器-外中断)
2.实时(优先级更高)(内中断)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(6)进程控制块PCB

PCB是从空闲PCB队列来的
PCB是内核态

是操作系统为了管理和控制进程的运行而为每一个进程定义的一个数据结构,它记录了系统管理进程所需的全部信息。系统根据PCB而感知进程的存在,PCB是进程存在的唯一标志。

one进程控制块PCB的作用

  • 是OS对并发执行的进程进行控制和管理的根据。
  • 也是系统用来感知进程存在的根据,即PCB是进程存在的唯一标志。

two进程控制块PCB中的信息

根据操作系统的要求不同,PCB所包含信息有些不同,但通常包含以下信息:

  • 进程标志符:由系统创建进程时分配给进程的唯一标识号,通常为一整数,称为进程号,用于区分不同的进程。其所属用户通常也为一整数,称为用户号。

  • 处理机状态(断点信息):即处理机中各种寄存器(通用寄存器、PC、PSW等)的内容

  • 进程调度:记录了进程调度的相关信息(状态、优先级、事件等)。

  • 进程控制:记录了系统对进程控制的信息(程序和数据的地址、同步机制、资源清单、链接指针)

three进程控制块PCB的组织方式

在一个系统中,通常存在着许多进程,它们所处的状态不同,为了方便进程的调度和管理,需要将各进程的PCB用适当方法组织起来。目前常用的组织方式有:

  • 链接方式

    把同一状态的PCB链接成一个队列,这样就形成了就绪队列、阻塞队列等。
    (链表时间长O(n))
    在这里插入图片描述

  • 索引方式

    将同一状态的进程组织在一个索引表中,索引表的表项指向相应的PCB ,不同状态对应不同的索引表
    在这里插入图片描述
    (索引表占用内存空间O(1))
    插入时与链表相反时间

2.进程控制

进程控制是进程管理中最基本的功能,即对系统中所有的进程实施有效的管理,其功能包括进程的创建撤消阻塞唤醒等,这些功能一般是由操作系统的内核来完成。

补充:OS 内核:在现代OS中,常把一些功能模块(与硬件紧密相关的、常用设备的驱动程序及运行频率较高的)放在紧靠硬件的软件层次中,加以特殊保护,同时把它们常驻内存,以提高OS的运行效率,这部分功能模块就称OS的内核。内核是基于硬件的第一层软件扩充,它为系统控制和管理进程提供了良好的环境。

微内核:进程-服务器进程-客户进程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
应用请求通过接口创建
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.线程的基本概念
4.UNIX中进程的描述与控制
进程同步与通信
1.进程同步

进程同步是指对多个相关进程在执行次序上进行协调,它的目的是使系统中诸进程之间能有效地共享资源和相互合作,从而使程序的执行具有可再现性;或系统中诸进程之间在逻辑上的相互制约的关系(直接的-同步;间接的—互斥)
用来实现同步的机制称为同步机制。如:信号量机制;管程机制

1)进程同步的基本概念

  • 两种形式的制约关系

在这里插入图片描述

  • 临界资源、临界区

在这里插入图片描述

在这里插入图片描述
进入区加锁
退出区解锁
在这里插入图片描述

  • 同步机制应遵循的规则

在这里插入图片描述

2)信号量机制
整型信号量
记录型信号量
AND型信号量集、一般信号量集

在这里插入图片描述

在这里插入图片描述
整形信号量–数量,S<0
整形信号量没有阻塞
在这里插入图片描述
记录,S<=0
在这里插入图片描述

3)信号量的应用
信号量实现进程互斥
信号量描述进程间的前趋关系

在这里插入图片描述
在这里插入图片描述

2.进程通信
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

调度与死锁(第3章)

经典进程的同步问题

在多道程序环境下,进程同步问题十分重要,出现一系列经典的进程同步问题,其中有代表性有:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

管程机制

信号量机制实现进程同步的问题
用信号量机制实现进程间的同步和互斥,即方便又有效。但存在以下两个问题:
1.每个访问临界资源的进程都必须自备同步操作(P、V操作),这使大量的同步操作分散在各个进程中,给系统的管理带来麻烦。
2.会因同步操作使用不当而导致系统死锁。
解决方法----管程(Monitors)
Dijkstra于1971年提出,为每个共享资源设立一个“秘书”来管理对它的访问。一切来访者都要通过秘书,而秘书每次仅允许一个来访者(进程)来访问共享资源。这样既便于系统管理共享资源,又能保证进程的互斥访问和同步。1973年,Hanson和Hoare又把“秘书”概念发展为管程概念。

管程的基本概念

1.基本思想
把访问某种临界资源的所有进程的同步操作都集中起来,构成一个所谓的“秘书”进程(管程),凡是访问临界资源的进程,都需要报告 “秘书”,由秘书来实现诸进程的同步。

2.管程的定义
一个数据结构和在该数据结构上能被并发进程所执行的一组操作,这组操作能同步进程和改变管程中的数据。如下图所示。
在这里插入图片描述

3.条件变量
在管程机制中,当某进程通过管程请求临界资源未能满足时,管程便调用wait原语使该进程等待,但等待的原因可能有多个,为了加以区别,在P,V操作前,引入条件变量加以说明。
(1)条件变量的定义格式
Var x,y: condition
(2)对条件变量执行的两种操作
Wait操作: 如x.wait用来将执行进程挂到与条件变量x相应的
等待队列上。
Signal操作: 如x.signal用来唤醒与条件变量x相应的等待队列
上的一个进程。

在这里插入图片描述
Procedure entry put(item)
begin
if count>=n then notfull.wait;
buffer(in):=nextp;
in:=(in+1) mod n;
count:=count+1;
if notempty.queue then empty.signal;
end
Procedure entry get(item)
begin
if count<=0 then notempty.wait;
nextc:=buffer(out);
out:=(out+1) mod n;
count:=count-1;
if notfull.queue then full.signal;
end
在这里插入图片描述

线程

线程是近年来操作系统领域出现的一个非常重要的技术,其引入进一步提高了程序并发执行的程度,从而进一步提高了资源的利用率和系统的吞吐量。

TCB线程控制块

在这里插入图片描述
ULT-切换一次
KLT-切换两次
在这里插入图片描述
操作系统只看得到进程,内核可以看见进程和线程

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值