进程
进程模型:计算机上所有可运行的软件,通常包括操作系统,被组织成若干顺序进程(sequentialprocesses),简称进程。
每个进程拥有自己的控制流程(自己的虚拟CPU),并且每个都独立地运行。当程序开始运行是,它自己的虚拟cpu被装入到物理cpu中;当程序执行时间到或者结束时,物理cpu被保存到当前程序的虚拟cpu中(在内存中),就这样不停地在多个进程中来回切换。
进程的创建:进程的创建有四个主要的原因
1. 系统初始化
2. 正在运行的一个进程执行了创建进程的系统调用
3. 用户请求创建一个新进程
4. 批处理作业的初始化
进程的终止:通常可能是由于下列原因
1. 正常退出(自愿)
2. 出错退出(自愿),比如执行的一条非法指令,应用了不存在的内存,或除数是零。在Minix3中,进程可以告诉OS,它希望自行处理某些类型的错误,在这类错误中,进程会受到信号(被中断),而不是在这类错误出现时终止。
3. 严重错误(非自愿)),比如用户输入cc foo.c来编译程序foo.c,而这个文件不存在,那么编译器就会简单退出
4. 被其他进程杀死(非自愿)
进程的层次结构:树结构
进程的状态:
1. 运行态(Running,此时占用cpu)
2. 就绪态(Ready,可运行,因为其他进程在运行,所有暂时被挂起,得等到被调度时才能运行)
3. 阻塞态(Blocked)进程模型:
最底层处理中断和调度,上层是顺序进程。