进程:一个正在执行程序的实例(程序计数器、寄存器、变量当前值)
2.1.1、进程模型
一台多道程序计算机的内存中有4道程序
4道程序被抽象为4个各自拥有自己的控制流程
实际上只有一个物理计数器,所以每个程序运行时,它的逻辑程序计数器被装入实际的程序计数器中
在观察足够长的一段时间后,所有程序都运行了,但是在任意给定的瞬间仅有一个进程真正在运行
(一个CPU只能真正一次运行一个进程)
2.1.2、创建进程
4种主要事件导致进程的创建
1)系统初始化 2)执行了正在运行的进程所调用的进程创建系统调用 3)用户请求创建一个新的进程 4)一个批处理作业的初始化
新进程都是由一个已存在的进程执行了一个用于创建进程的系统调用而创建
fork:创建一个与调用进程相同的副本,有不同的地址空间。在调用fork之后,这两个进程拥有相同的存储映像,同样的环境字符串和同样的打开文件
2.1.3、进程终止
引起进程终止的条件
1)正常退出 2)出错退出 3)严重错误 4)被其他进程杀死
2.1.4、进程的层次结构
1)进程只有一个父进程(但是可以有0、1、多个子进程)
2)UNIX中,进程和它所有子女及后裔组成一个进程组(当前进程接收到的信号会传入进程组中的所有成员)
2.1.5、进程的状态
1)操作系统发现进程不能继续运行下去
2)系统认为一个运行进程占用处理器的时间已经过长,决定让其他进程使用CPU时间时
3)系统已经让所有其他进程享有了它们应有得公平待遇而重新轮到一个进程再次占用CPU运行时
4)当进程等待的一个外部事件发生时
2.1.6、进程的实现
操作系统维护着一个进程表
2.1.7、多道程序设计模型
p:一个进程等待I/O操作的时间与其停留在内存中的时间比
n:多道程序的道数