一、进程的基本概念
1. 多道程序设计
允许多个程序同时进入内存并运行,其目的是为了提高系统效率。
2. 并发环境
一段时间间隔内,单处理器上有两个或者两个以上的程序同时处于开始运行但尚未结束的状态,并且次序不是事先确定的。
并发程序指的就是在并发环境中执行的程序。
3.进程的定义(Process)————对CPU的抽象
进程是具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的独立单位。又称为任务(Task or Job)
特点:
PCB是系统感知进程存在的唯一标志:进程与PCB是一一对应的
进程表: 所有进程的PCB集合
PCB所包含的信息
5.进程状态及状态转换(三、五、七)
5.1进程的三种基本状态: 运行态, 就绪态, 等待态
运行态(Running)
占有CPU,并在CPU上运行
就绪态(Ready)
已经具备运行条件,但由于没有空闲CPU,而暂时不能运行
等待态(Waiting/Blocked)又称为: 阻塞态、封锁态、睡眠态
因等待某一时间而暂时不能运行(例如:等待读盘结果)
三状态模型及状态转换
5.2进程的其他状态
创建态(New)
已经完成创建一进程所必需的工作——PID/PCB;但尚未同意执行该文件——因为资源有限
终止态(Terminated)
终止执行后,进程进去该状态;可完成一些数据统计工作;资源回收
挂起态(Suspend)
用于调节负载;进程不占用内存空间,其进程映像交换到磁盘上
五状态进程模型
七状态模型
linux状态示意图
5.3 进程队列
注意: 多个等待队列表示等待的事件不同
就绪队列也可以有多个
但COU情况下,运行的队列中只有一个进程
5.4 五状态进程模型的队列模型
6. 进程的控制
6.1 进程控制
进程控制操作完成进程各状态之间的转换,由具有特定功能的原语完成。
原语(primitive) : 挖煤成交额美好某种特定功能的一段程序,具有不可分割性和不可中断性。即原语的执行必须是连续的,在执行过程中不允许被中断。
例如: 进程创建原语;进程撤消原语;阻塞、唤醒原语等
6.2 进程的创建
主要实现的工作:
UNIX: frok/exec
WINDOWS: CreateProcess
6.3 进程的撤销
主要实现的工作:
不同操作系统中主要的创建进程操作
UNIX: exit
WINDOWS: TerminateProcess
6.4 进程阻塞
处于运行状态的进程,在其运行过程中期待某一事件的发生,如等待键盘的输入、等待磁盘数据传输完成、等待其他进程发送信息,当被等待的时间未发生时,由进程自己执行阻塞原语,使自己的运行状态变为阻塞态。
不同操作系统中主要的创建进程操作
UNIX: wait
WINDOWS: WaitForSingleObject
6.5 UNIX的几个进程控制操作
6.6 进程的深入在学习
1. 进程的分类
UNIX:进程家族树;int 为根
WINDOWS:地位相同
3. 进程和程序的区别
操作系统为每一个进程都分配了一个地址空间
5. 进程映像(IMAGE)
对进程执行活动全过程的静态描述
由进程地址空间内容、硬件寄存器内容以及与该进程相关的内核数据结构、内核栈组成