process states
process description
process control
## Process Creation
- 通过用户:打开新的APP
- 通过操作系统:进程中断
- 通过现有进程:打开新的进程
## Process Terminate
- Errors(错误)
- Data/protection/mem failure/illegal behavior
- Kill by parents process(被父进程终止)
- Normal completion(job is done)(正常结束)
# Process(进程)
- 定义:
- 正在执行的程序
- 在计算机上运行的程序的实例
- 可以分配给处理器并在处理器上执行的实体
- 一种活动单位,特征为:
- 执行一系列指令
- 当前状态
- 一组关联的系统资源
- Process Elements
- Identifier
- State
- Priority
- Program counter
- Memory pointers
- Context data
- I/O status information
- Accounting information
# Process States
- 检查多个进程
- 通过用户:trace of process(进程轨迹)
- 通过操作系统:根据不同的过程状态链接列表
- trace of process(进程轨迹)
- 为进程执行的指令序列
- 调度器将处理器从一个进程切换到另一个进程
对系统而言,各个进程当前的状态决定下一次的调度策略。
- Two-State Process Model
- Process may be in one of two states
- Running
- Not - running
- ![[双态进程模型.png]]
- 双态进程模型的限制:
- 调度器不能只选择在队列中停留时间最长的进程,因为这个进程可能被阻塞。
- Not-running
- ready to execute(就绪)
- 等待I/O 设备(blocked 阻塞)
- Five-State Model
- Running(运行态)
- Ready(就绪态)
- Blocked(阻塞态)
- New(新建态)
- Exit(推出态)
- ![[五态进程模型.png]]
- Blocked 不直接到Running原因:
- 因为搜索队列不同,running只搜索ready队列
- Suspended Processes(被挂起的进程)
- 处理器比 I/O 快,因此所有进程都可能正在等待 I/O
- 将这些进程交换到磁盘以释放更多内存 交换到磁盘时,阻塞状态变为挂起状态
- Two new states
- Blocked/Suspend
- Ready/Suspend
- Seven-State Model(Two Suspend States)
- ![[七态进程模型.png]]
# Process Description
- ## 操作系统控制结构
OS 掌握进程哪些信息,怎么存储这些信息
- 每个进程和资源的当前状态
- 操作系统构造并维护它所管理的四类资源实体的信息表
- MEM,I/O,File,Process
- 这些表被交叉引用
- Memory Tables
- 分配给进程的主存
- 分配给进程的辅存
- 共享内存区域的保护属性
- 虚拟内存的管理信息
- I/O Tables
- 分配状态:I/O设备是可用或以分配
- I/O 操作的状态
- 主内存中用作数据传输的源或目标的地址
- File Tables
- 文件的存在
- 辅存上的地址
- 当前状态
- 属性
- ## 进程控制结构
- Process image 进程映像
- 程序、数据、堆栈和属性(PCB)的集合:地址不连续
- PCB:Process control block
- Process Control Block
- Process Identification
- Processor State Information
- User-Visible Registers
- Control and Status Registers
- Stack Pointers
- Process Control information
- Scheduling and State Information
- Data Structuring (link information)
- Interprocess Communication
- Process Privileges
- Memory Management
- Resource Ownership and Utilization
- PCB包含:
- 结构化信息
- 指向队列链接列表的指针
# Process Control
- ## Modes of Execution(进程模式)
- 用户模式
- 通常在用户程序执行时使用用户模式
- 系统模式、控制模式或内核模式
- 更多特权模式
- 操作系统内核
- Translation between the two model
- Interrupt/Trap/Syscall
- Modifiy Processor status register (psr) and current privileged level (cpl)(修改处理器状态寄存器 (psr) 和当前特权级别 (cpl))
- ## Process Creation
- Assign a unique process identifier(分配唯一的进程标识符)
- Allocate space for the process(为流程分配空间)
- Initialize process control block(初始化过程控制块)
- Set up appropriate linkages(设置适当的链接)
- Ex: add new process to linked list used for scheduling queue(将新进程添加到用于调度队列的链接列表中)
- Create of expand other data structures(创建扩展其他数据结构)
- Ex: maintain an accounting file
- ## Process Switching
- 只要操作系统从当前运行的进程获得控制权,就可能发生进程切换。
- 可能授予操作系统控制权的事件包括:
- 中断
- 时钟中断:进程已执行最大允许时间片
- I/O 中断
- 内存故障:引用的虚拟内存地址不在主内存,因此必须将其引入
- Trap
- 发生错误或异常
- 可能导致进程移动到“退出”状态
- Supervisor call (System Call 系统调用)
- 类似文件打开
- 怎么切换进程:
- 保存处理器的上下文,包括程序计数器和其他寄存器
- 更新进程的进程控制块,并更改当前处于“正在运行”状态的进程的状态
- 将过程控制块移动到适当的队列 —— 就绪;阻塞;就绪/挂起
- 选择要执行的另一个进程
- 更新所选进程的进程控制块并更改其状态
- 更新内存管理数据结构
- 还原所选进程的上下文
# 操作系统的执行
- ## Non-process Kernel(无进程内核)
- 在任何进程之外执行内核
- 操作系统代码作为在特权模式下运行的单独实体执行
- ## Execution Within User Processes(在用户进程中执行)
- 在用户进程上下文中的操作系统软件
- 进程在执行操作系统代码时以特权模式执行
- Unix
- ## Process-Based Operating System(基于进程的OS)
- 将操作系统实现为系统进程的集合
- 适用于多处理器或多计算机环境