进程
应用程序的执行对应于存在的一个或多个进程
进程可以视为由一组元素组成的实体
目标
- 资源对多个应用程序是可用的
- 物理处理器在多个应用程序间切换以保障所有程序都在执行中
- 处理器和 I/O 设备能得到充分利用
定义
四个例子:
- 正在执行的程序
- 正在计算机上执行的程序实例
- 能分配给处理器并由处理器执行的实体
- 具有以下特征的活动单元:一组指令序列的执行、一个当前状态和相关的系统资源集
进程的两个基本元素是程序代码和与代码相关联的数据集
进程控制块
- 标识符
- 状态
- 优先级
- 程序计数器 PC
- 内存指针
- 上下文数据
- I/O状态信息
- 记账信息
控制块由操作系统创建和管理 实现中断+恢复
是操作系统能够支持多进程和提供多重处理技术的关键工具
进程状态
轨迹 trace:进程执行的指令序列
进程的创建
操作系统建立用于管理该进程的数据结构 并在内存中给它分配地址空间
进程派生:前一个称为父进程 被派生的进程称为子进程
fork()
进程终止
终止请求 故障 错误 父进程终止时终止…
五状态模型
- 运行态:进程正在执行
- 就绪态:进程做好了准备,只要有机会就开始执行
- 阻塞/等待态:进程在某些事件发生前不能执行,如IO操作完成
- 新建态:刚刚创建的进程,操作系统还未把它加入可执行进程组,它通常是进程控制块已经创建但还未加载到内存中的新进程
- 退出态:操作系统从可执行进程组中释放出的进程,要么它自身已停止,要么它因某种原因被取消
进程切换
- NULL→新建态:执行一个程序,创建一个子进程。
- 新建态→就绪态:当操作系统完成了进程创建的必要操作,并且当前系统的性能和虚拟内存的容量均允许。
- 就绪→运行:需要选择一个新进程运行时,操作系统选择一个处于就绪态的进程,这是调度器或分派器的工作。
- 运行态→终止态:当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所终结,或是被其他有终止权的进程所终结。
- 运行态→就绪态:运行时间片到;出现有更高优先权进程。
- 运行态→等待态:等待使用资源;如等待外设传输;等待人工干预。
- 就绪态→终止态:未在状态转换图中显示,但某些操作系统允许父进程终结子进程。
- 等待态→终止态:未在状态转换图中显示,但某些操作系统允许父进程终结子进程。
- 终止态→NULL:完成善后操作。
进程与一般程序的区别
- 进程是程序的执⾏实例,由程序创建
- 执⾏环境不同(进程独⽴,程序需要进程的context)
- 进程有⾃⼰的资源(内存、⽂件、设备),程序需要依赖进程
- 进程可以通过IPC进行数据交换和同步,程序没有直接的机制
进程创建的流程
操作系统需要建立用于管理进程的数据结构,并在内存中给他分配地址空间,这些行为构成了一个新进程的创建过程
五状态模型
进程切换&态的切换
进程切换:在某个时刻,操作系统中断一个正在运行的进程,将另一个进程置于 运行模式,并把控制权交给后者
态的切换:处理器在与用户程序相关联的模式(用户模式)和与操作系统相关联 的处理器模式(内核模式)之间的切换
进程控制相关的系统调用
进程创建 fork exec
进程加载 exec
进程等待与退出 wait exit
PCB进程控制块
包括标识符、状态、优先级、程序计数器、内存指针、上下文数据、I/O状态信息、记账信息
进程控制块包含了充分的信息可以中断+恢复进程的执行
控制块由操作系统创建和管理 实现中断+恢复
Show Comments