一、进程
1.为什么引入进程?
单道程序系统具有顺序性,封闭性(程序独占CPU到结束),可再现性;若是多道程序想运行(并发concurrency),则这些程序需要走走停停~慢
2.进程的模型
所有进程都感觉自己独占CPU,但其实他们共享一个CPU,∴他们有的是逻辑PC(保存在PCB中)。当他们中途运行停止(e.g. ∵时间片用完了),他们会将物理PC 的值更新到逻辑PC 中。
3.process v.s program
①程序是指令集,是静态的概念;进程描述并发,是动态的概念
②进程包括程序、数据集和PCB
③进程是暂时存在的,程序是永久存在的
④程序可以是多个进程的执行程序;进程可以调用多个程序
⑤进程可以创建其他进程
4.进程的创建
①系统初始化时会创建进程(前台进程;后台进程~守护进程)
②需要创建进程的系统调用的执行e.g.fork()
③用户请求创建新的进程
④批处理的初始化
5.进程的结束
①正常退出(自愿)
②错误退出(自愿):进程本身没有错,但是进程发现了错误,e.g.参数错误,文件不存在
③致命错误(非自愿):进程本身出现了错误,e.g.除数是0,访问了不存在的内存
④被其他进程杀死了(非自愿)e.g.kill()
6.进程的层次
(1)UNIX中——进程族process group