【操作系统笔记】第四章—抽象:进程
知识点
进程非正式定义
进程就是运行中的程序
时分共享cpu技术
通过让一个进程只运行一个时间片,然后切换到其他进程,操作系统提供了存在多个虚拟 CPU 的假象
上下文切换
它让操作系统能够停止运行一个程序,并开始在给定的 CPU 上运行另一个程序。
抽象-进程
操作系统为正在运行的程序提供的抽象,就是所谓的进程。进程是操作系统进行资源分配和调度的一个独立单位
进程的机器状态:
- 内存,进程可以访问的内存(称为地址空间,address space)是该进程的一部分。
- 寄存器:许多指令明确地读取或更新寄存器。
- 还有一些特殊的寄存器,如PC,栈指针,帧指针。
一个进程包括五个部分
- (OS管理运行程序的)数据结构P
- (运行程序的)内存代码C
- (运行程序的)内存数据D
- (运行程序的)通用寄存器信息R
- (OS控制程序执行的)程序状态字信息PSW
进程API
创建(create)
销毁(destroy)
等待(wait)
其他控制(miscellaneous control)
状态(status)
进程创建
1、将代码和所有静态数据(例如初始化变量)加载(load)到内存中,加载到进程的地址空间中。
2、为程序的运行时栈(run-time stack 或 stack)分配一些内存
3、也可能为程序的堆(heap)分配一些内存
4、一些其他初始化任务,特别是与输入/输出(I/O)相关的任务
5、启动程序,在入口处运行,即 main()。通过跳转到 main()例程(第 5 章讨论的专门机制),OS 将 CPU的控制权转移到新创建的进程中,从而程序开始执行。
进程的状态
三种基本状态:
1、运行(running):在运行状态下,进程正在处理器上运行。这意味着它正在执行指令。
2、就绪(ready):在就绪状态下,进程已准备好运行,但由于某种原因,操作系统选择不在此时运行。
3、阻塞(blocked):在阻塞状态下,一个进程执行了某种操作,直到发生其他事件时才会准备运行。一个常见的例子是,当进程向磁盘发起 I/O 请求时,它会被阻塞,因此其他进程可以使用处理器。
其他可能存在的状态:
挂起状态(是该进程暂时不接受调度)。
创建状态:此时,进程已经拥有了字节的PCB,但该进程所必需的资源或其它信息(如主存资源)尚未分配,进程自身还未进入主存,即创建工作尚未完成,进程还不能够被调度运行。
(创建进程的两个步骤: 为一个新进程创建PCB,并填写必要管理信息;把该进程转入就绪状态并插入就绪队列。)
终止状态:进程的终止首先要等待操作系统进行善后处理,然后将其PCB清零,并将PCB空间返还系统。
进程控制块(Process Control Block)
PCB是OS用于记录和刻画进程状态及环境信息的数据结构
借助PCB,OS可以全面管理进程物理实体,刻画进程的执行现状,控制进程的执行