3.1 进程
1 是啥
-
进程 是一个具有独立功能的程序 关于某个数据集合的一次运行活动
-
是系统进行资源分配和调度的独立单元
-
进程=程序+执行
2 组成
程序代码code
数据集data
执行execution
3 进程控制快
标识符 identifier:区分不同进程
状态 state:
优先级priority
程序计数器program counter
内存指针:memory pointers
上下文数据 context data:进程执行时 寄存器中的数据
I/O状态
记账信息accounting information:处理器时间总和,使用时钟数总和,时间限制
3.2 进程状态
1. 进程轨迹
进程的指令序列——-单个进程的行为
分配器dispatcher交替各个进程——-处理器的行为
2. 两状态:运行/未运行
未运行——排队——调度到处理器
3. 创建和终止
4.五状态模型
- 运行态running——一个处理器一次只有一个进程处于running
- 就绪态ready
- 阻塞态blocked ——进程在某些事件发生前不能执行
- 新建态new——进程控制块已经创建但还未加载到内存中
- 退出态exit
5.被挂起的进程Suspended process
机器变复杂的原因:处理器 远快于 I/O活动
解决方法:交换swap
把 阻塞的进程(从内存中踢出)到磁盘disk的挂起队列
- 挂起进程==不在内存中的进程
- 不能立即执行
- 等待/不等待一个事件
- 设置代理挂起进程,代理(进程本身 父进程 操作系统)
3.3 描述
1. 操作系统控制结构 Operating System Control Structures
为了管理进程和资源
操作系统必须掌握每个进程和资源的当前状态信息
几乎所有操作系统都会用:
内存表memory table——跟踪主存和辅存
I/O表 ——管理设备和通道
文件表——提供当前存在文件中的信息、当前位置、当前状态等
进程表——管理进程
2. 进程控制结构 Process Control
进程映像 process image:
用户数据
用户程序
栈——后进先出,保存参数、系统调用地址、过程调用地址
进程控制快process control block
3.4 进程控制
1. 执行模式
非特权模式:用户模式
特权模式:系统模式、控制模式、内核模式
模式切换:
- 用户模式——>系统模式
用户程序执行到一条系统调用,进入操作系统内核执行
- 系统模式——>用户模式
执行完系统调用的功能,返回到用户程序
- 特殊情况
程序执行到结束语句后,切换到系统模式,不再返回用户程序
2. 进程创建
- 为新进程分配一个唯一的进程标识符Assign a unique process identifier
主进程表中会添加一个新表项,每个进程一个表项
- 为进程分配空间Allocate space for the process
OS必须知道私有用户得程序数据,用户栈需要的空间
- 初始化进程控制块Initialize process control block
进程ID,相关ID……
- 设置正确的连接 Set up appropriate linkages
若OS将每个调度队列都维护为一个链表,则新进程必须放在就绪、挂起链表中
- 创建或扩充其他数据结构 Create of expand other data structures
为每个进程维护一个记账文件
3. 进程切换—何时切换?
(1) 中断interrupt
- 时钟中断
OS确定当前进程执行时间是否超过最大允许的时间段time slice
- I/O中断
- 内存失效memory fault
memory address is in vitual memory so it must be brought into main memory
(2)陷阱trap
OS判断错误异常是否致命
致命:进程退出,切换进程
不致命:可能会尝试恢复
(3)系统调用supervisor call
总结:
在某时刻,一个正在运行得进程被中断,操作系统就将另一个进程置为运行状态。
操作系统掌控时,切换随时会发生
我是分割线====
进程
一个正在执行的程序
PCB
进程控制块,包含了进程的pid号, 控制信息,状态信息
是为了管理进程 设置的一个专门的数据结构,用来记录进程的外部特称,描述进程的运动变化过程
PCB是系统感知进程存在的唯一标准
CPU模式
用户模式:只能执行部分指令
内核模式:可以执行所有指令,包括特权指令
进程状态
新建new
就绪ready
执行running
挂起 suspend
阻塞blocked
结束 exit