操作系统(二):1.进程、进程的状态与转换
一、进程
1.进程和程序的区别
2.进程的定义
3.进程的组成
【PCB 是给操作系统用的。 程序段、数据段是给进程自己用的。】
-
程序段:程序对应的代码存放在硬盘上,在程序运行时将其调入内存中,这段内存就是程序段。
-
数据段:程序运行时在内存中产生的数据信息。如变量(全局变量、局部变量、宏定义的常量)
-
PCB:操作系统对进程进行管理工作所需的信息都存在PCB中。
每个进程都会有一个PCB。
PCB是进程存在的唯一标志。
所谓创建进程就是创建进程实体中的PCB,撤销进程就是撤销进程实体中的PCB。- PID:进程的“身份证”,唯一的、不重复的,用于区分进程
- UID:所属的用户是谁
- CPU相关信息:当进程切换时,就把进程当前的运行情况保存在这里
【例子】:
同时挂三个QQ号,会对应三个QQ
进程,它们的PCB、数据段各不相同,但程序段的内容都是相同的 (都是运行着相同的QQ程序)
4.进程的组织方式
5.进程的特征
二、进程的状态与转换
1.进程的状态与转换
-
运行态 Running:
注意:单核CPU上,每一时刻最多只有一个进程处于运行态。双核CPU上,每一时刻最多只有两个进程处于运行态。 -
就绪态 Ready:
-
阻塞态/等待态 Blocked/Waiting:
理解:比就绪态更差,连获得CPU资源的资格都没有。(因为即使有CPU资源也不能运行,还需要等待某一事件完成,这就是大大的浪费,所以剥夺了获得CPU资源的资格)。只有等待的事件完成后,才后有获得CPU资源的资格。所以阻塞态要变成就绪态才能到达运行态。
2.转换
注意:
- 阻塞态不能直接到运行态
- 创建态是到就绪态,不是直接就运行
- 为什么不能从就绪态→阻塞态?因为陷入阻塞要执行特权指令的,而就绪态没有CPU资源,无法执行指令。