目录
2.4 A Seven-State Model(Two Suspend States)
3.1 Operating System Control Structures
3.2 Process Control Structures
5.在OS中的具体执行(Execution of the Operating System)
5.2 Execution Within User Processes(在用户进程中执行)
5.3 Process-Based Operating System(基于进程的OS)
0.前言
本系列文章旨在记录操作系统的知识点,可用于期末复习,笔者理解尚浅,文中不正之处静待批正。加粗高亮部分为重点。
1.什么是进程(What is a Process)
定义:
①正在执行中的程序
②一个正在运行的程序实例
③在处理器上执行的实体
④一个活动单元
2.进程的状态(Process States)
2.1进程轨迹(Trace of the Process)
进程的执行顺序;用Dispatcher(调度器)来进行进程转换
2.2 Two-State Process Model
由两个状态组成:Running,Not Running
缺点:1.进程有优先级,查询所有进程浪费时间 2.分派器不能只选择在队列中停留最长的进程,因为有可能被阻塞。
解决方案:将Not Running改成就绪态(ready to execute )和阻塞态(blocked)。
2.3 A Five-State Model
由五个状态组成:Running(运行态),Ready(就绪态),Blocked(阻塞态),New(新建态),Exit(退出态)
缺点:内存空间有限,有部分进程要被挂起到硬盘(多阻塞),效率会降低。
2.4 A Seven-State Model(Two Suspend States)
Suspended Processes(被挂起的进程)
处理器比 I/O 快,因此所有进程都可能正在等待 I/O,将这些进程交换到磁盘以释放更多内存,交换到磁盘时阻塞状态变为挂起状态。
3.进程描述(Process Description)
3.1 Operating System Control Structures
了解每个进程和资源的当前状态,操作系统构造并维护他所管理的四类资源实体的信息表:
MEM,I/O,FILE,PROCESS
①Memory Tables
提供分配给进程的主存、副存
共享内存区域的保护属性
虚拟内存的管理信息
②I/O Tables
记录I/O设备分配状态
记录I/O操作的状态
3.2 Process Control Structures
进程映像(Process image):PCB+程序+stack+可修改的data(地址并不连续)
PCB(Process Control Block)内存有:进程的身份、进程的状态、进程的控制信息。所有操作系统中的管理等功能模块,如调度,资源分配,中断,性能监控,等都可以访问修改PCB。
4.进程控制(Process Conrtrol)
4.1 Modes of Execution(CPU)
为保护操作系统执行模式分为了用户态和内核态(系统态),后者具有更高的权限。
切换两种模式的方法:1.中断/异常/系统调用;2.修改状态寄存器及当前权限等级。
4.2 Process Creation
进程创建过程:
1.分配独一无二的进程ID
2.未新进程分配空间
3.初始化PCB
4.将新进程添加进调度队列
5.创建其他的数据结构
4.3 Process Switching
进程切换的时机:
1.中断产生
- 时钟中断(Clock interrupt):时间片用完了。
- I/O中断(I/O interrupt):处理机发出I/O请求。
- 页表缺失(Memory fault):引用的虚拟地址不在主存中。
2.异常或陷阱(Trap)
- 异常产生时可能会使进程转换为退出态。
3.更高级的请求(Supervisor call)
- 系统调度,例如打开文件。
怎样进行进程切换:保存上下文,包括寄存器,然后更新PCB,更改进程状态,移动调度队列,选择进程进行执行,更改所选进程的PCB及其状态,更新内存管理数据结构,最后恢复所选进程的上下文。
5.在OS中的具体执行(Execution of the Operating System)
5.1 Non-process Kernel(无进程内核)
在进程外部执行内核,操作系统代码作为在特权模式下操作的独立实体执行。
5.2 Execution Within User Processes(在用户进程中执行)
在用户进程上下文中的操作系统软件,进程在执行操作系统代码时以特权模式执行。
5.3 Process-Based Operating System(基于进程的OS)
将操作系统实现为系统进程的集合,适用于多处理器或多计算机环境。
6.一些简单的进程API(略)
创建 create:
- fork 在父进程中,fork返回新创建子进程的进程ID;
- 在子进程中,fork返回0;
- 如果出现错误,fork返回一个负值;
销毁 destroy
等待 wait