文章目录
0.前言
早期的计算机一次只能执行一个程序。这种程序完全控制系统,并且访问所有系统资源。
相比之下,现代计算机系统允许加载多个程序到内存,以便并发执行。
这种改进要求:对各种程序提供更严的控制和更好的划分。
这些需求导致了进程(process) 概念的产生,即进程为执行程序。进程是现代分时操作系统的工作单元。
3.1进程概念
3.1.1 进程
进程包含了程序代码和当前活动(其中当前活动通过程序计数器和处理器寄存器的内容表示)两个部分,进程是执行中的程序。具体有:
- 文本段(代码段)
- 数据段(全局变量)
- 栈(stack)(包含临时数据、函数参数、返回地址、局部变量)
- 堆(heap)(进程运行期间动态分配的内存)
- 程序计数器
注意: 程序本身不是进程,是被动实体,进程是活动实体(其中当前活动通过程序计数器和处理器寄存器的内容表示).两个进程可以与同一程序联系,虽然文本段相同。但是数据段、堆栈段不同。
3.1.2 进程状态
进程有5种状态,包括:
- New(新的):进程正在创建
- Running(运行):指令正在执行
- Waiting(等待):进程等待发生某个实践
- Ready(就绪):进程等待分配处理器
- Terminated(终止):进程已经执行完毕
注意:一次只有一个进程能在一个处理器上运行(Running态),但在处理器上运行的时候,其他进程可以进行IO操作(想一下DMC模式)
3.1.3 进程控制块(PCB)
每一个进程都需要分配一定的信息,这些信息的仓库就叫做PCB,PCB有以下功能:
系统利用PCB 控制 和 <