操作系统复习-进程的描述和控制

进程的描述和控制

前趋图和程序执行

前趋图

一个有向无环图(DAG),一个节点表示一段进程或者程序或一个语句。已知以下前趋关系:

可以得到以下的前趋图

注意:前趋图是无循环的!!

程序的顺序执行

  1. 若干的程序段按顺序依次执行。
  2. 特征:顺序性;封闭性:资源只可以被一个程序独占;可再现性:只要执行的环境相同就可以得到相同的执行结果。

程序的并发执行

不存在前趋关系的程序才可以并发执行

  • 特征:间断性:并发的程序之间相互制约;失去封闭性:资源的状态可能被多个程序改变;不可再现性。

进程的描述与控制

进程的定义与特征

  1. 定义:多道程序环境下,程序属于并发执行,因此他们会失去封闭性,同时具有间断性和不可再现性。通常,程序是不能并发执行的。为此,引入了进程。进程有单独的数据结构叫做进程控制块(PCB)。有三种定义:进程是程序的一次执行、是一个程序及其数据在处理机上顺序执行时所发生的活动、时具有独立功能的程序在一个数据集上执行的过程,时系统进行资源分配和调度的一个独立的单位。
  2. 特征:动态性:对应于生命周期、并发性、独立性、异步性。

进程的基本状态与转换

三种基本状态

  1. 就绪:进程已经分配到除了CPU之外的所有必要资源
  2. 执行:获得了CPU后程序正在执行的状态
  3. 阻塞:被IO请求、申请缓冲区失败等事件导致暂时无法执行

相互转换

创建状态和终止状态

创建状态

进程创建过程:1、申请一个空白PCB并且写入信息;2、为该进程分配需要的资源;3、转换为就绪态并且放置在就绪队列中

终止状态

进程终止过程:1、等待OS进行善后;2、将PCB清零并且返还给OS。

挂起操作和进程状态的转换

挂起操作的引入

挂起是为了满足以下的需求:

  1. 终端用户的需要:程序运行出现问题,用户把程序暂停以分析问题。
  2. 父进程的需要:父进程需要考察和修改子进程。
  3. 负荷调节的需要:避免在工作负荷重的时候影响实时任务。
  4. OS的需要:检查在进程运行过程中资源的使用情况。

引入挂起后基本状态的转换

进程管理中的数据结构

PCB的作用

  1. 作为独立运行的基本单位的标志
  2. 实现间断运行方式
  3. 提供进程管理所需要的信息
  4. 提供进程调度所需要的信息
  5. 实现与其他进程的同步和通信

PCB中的信息

  1. 进程标识符(进程的名称):外部标识符:方便用户对进程进行访问;内部标识符:方便系统对进程的使用。
  2. 处理机状态:由处理机的各个寄存器的内容组成
  3. 进程调度信息:进程状态、进程优先级、进程调度所需要的其他信息、事件
  4. 进程控制信息:程序和数据的地址、进程同步和通信机制、资源清单、连接指针

组织方式

  1. 线性方式
  2. 链接方式
  3. 索引方式

进程通信

进程通信的高级和低级

  1. 低级:效率低、通信对用户不透明。
  2. 高级:使用OS的高级通信工具,使用方便、高效地传输大量数据。

进程通信的类型

  1. 共享存储器系统:互相通信的进程共享某些数据结构或存储区,进程之间能够通过这些空间进行通信。有两种类型:(1)基于共享数据结构的通信方式:属于低级通信,比如生产者消费者的缓冲区;(2)基于共享存储区的通信方式:内存的一块区域。
  2. 管道通信系统:连接一个读进程和写进程的一个共享文件,成为pipe文件。其具有以下3方面的协调能力:(1)互斥;(2)同步;(3)确认对方是否存在。
  3. 消息传递系统:以格式化消息的方式,通过操作系统的原语进行通信。(1)直接通信方式:利用OS提供的发送原语发送给对于的进程。(2)间接通信方式:发送进程和接收进程都通过共享中间实体的方式进行发送和接收。
  4. 客户机-服务器系统:有三种实现方式(1)套接字:有基于文件型和基于网络型;(2)远程过程调用和远程方法调用

进程通信的实现方式

直接通信

  1. 直接通信原语:利用OS发送命令实现,有两种:(1)对称寻址方式:指定了发送和接收者 send/receive(发送/接收者,消息);(2)非对称寻址方式:send(P(接收的进程), message), receive(id(可以是发送的进程id或者名称), message)。
  2. 消息的格式
  3. 进程的同步方式:(1)发送进程阻塞、接收进程阻塞:两者间无缓冲的情况。(2)发送进程不阻塞、接收进程阻塞。(3)发送和接收进程都不阻塞:要一个事件让他们停下来。
  4. 通信链路:单项和双向

间接通信

  1. 信箱的结构:(1)信箱头:存放信箱的描述信息;(2)信箱体:存放消息或者消息头的小格子组成。
  2. 信箱通信原语:(1)信箱的创建和撤销;(2)信箱的发送和接收。
  3. 信箱的类型:(1)私用信箱:用户进程为自己创建的信箱,其他用户只能发送信息,不能接收信息。(2)公用信箱:有OS创建,可以给所有进程用。(3)共享信箱:由某个进程创建,要指明其他哪个进程可以访问。
  4. 通信关系:(1)一对一;(2)一对多;(3)多对一:客户/服务器交互;(4)多对多。

线程的概念

线程是调度和分派的基本单位。是把进程的两个基本属性分开,由OS分开处理,不把调度和分派的基本单位作为资源的分配单位

线程和进程的比较

线程被成为轻型进程,传统的成为重型进程。

基本调度单位

进程作为独立调度和分派的基本单位,能够独立运行。线程作为调度和分派的基本单位,是能独立运行的基本单位。线程切换的时候只需要设置少量的寄存器的内容,代价远低于进程。同一进程的线程切换不会引起进程切换,但是不同进程的线程切换会引起进程切换。

并发性

进程可以并发执行,一个进程中的线程也可以并发执行。

拥有资源

线程几乎不拥有资源。

独立性

线程独立性比进程的独立性低得多。

系统开销

线程的系统开销小于进程。

支持多处理机系统

线程可以分配到多个处理机上。

线程状态和线程控制块

三种状态

执行、就绪、阻塞

线程控制块

名称为TCB,组成如下:

  1. 线程标识符
  2. 一组寄存器的内容
  3. 线程执行状态
  4. 优先级
  5. 线程专有存储区
  6. 信号屏蔽
  7. 堆栈指针

多线程OS中的进程属性

  1. 进程是一个可拥有资源的基本单位
  2. 多个线程可以并发执行
  3. 进程已不是可执行的实体:以线程作为基本单位

 

上一篇
下一篇