进程是对正在运行的程序的一个抽象;顺序进程(简称,进程)。
进程
进程模型
一个进程就是一个正在执行的程序的实例,包括程序计数器,寄存器和变量的当前值;
假设只有一个CPU,那么就只有一个物理程序计数器,每个进程被执行时,进程的程序计数器被装入物理程序计数器,执行结束(或暂停)时,物理程序计数器被保存在该进程的程序计数器中(在内存中);
创建进程
有4种情况下,会去创建进程:
1.系统初始化:创建2类进程,前台进程和后台进程。后台进程中,有一类进程平时处于睡眠状态,受到通知时,就被唤醒,这种进程被称为守护进程。
2.正在执行的进程通过系统调用去创建进程;
3.用户请求创建一个进程;
4.一个批处理作业的初始化:这种情况只出现在大型机的批处理系统中,用户提交批处理左右,机器创建去进程去运行它;
其实,上面的所有的情况都可以认为是,一个父进程执行系统调用创建一个子进程;
无论是UNIX还是Windows,进程创建后,父进程和子进程拥有自己的地址空间,如果其中一个进程在其地址空间修改了一个字,这个修改对其他进程是不可见的;
在UNIX中,子进程的初始地址空间是父进程的一个副本(但他们是两个地址空间),对于这两个进程,不可写的内存区是共享的(某些UNIX的实现使程序正文在两者之间共享,因为它不能被修改);
但是,对于一个新创建的进程而言,确实有可能共享其创建者的其他资源;
在Windows上,父进程和子进程的地址空间一开始就是不同的;
进程的终止
进程终止有4种情况:
1.正常自愿退出;
2.出错自愿退出;
3.严重错误(非自愿);
4.被其他进程杀死(非自愿);