进程
在计算机上所有可以运行的软件,通常也包括操作系统,被组织成若干顺序进程,一个进程就是一个正在执行程序的实例,包括内存地址空间,程序技术器、寄存器和变量的当前值。
1.1 进程的创建:
有四种主要事件导致进程的创建,为1)系统初始化;2)执行了正在运行的进程所调用的进程创建系统调用;3)用户请求创建一个进程;4)一个批处理作业的初始化。
unix/linux中,fork系统调用,windows中,CreatProcess,创建进程后,父进程和子进程拥有各自不同的地址空间,在unix中,子进程的初始地址空间是父进程的一个副本,用于共享其创建者的其他资源。在windows中,从一开始父进程的地址空间和子进程的地址空间就是不同的。
1.2 进程的终止:
unix下为exit系统调用,windows下为ExitProcess
有下列四种情况会退出
1)正常退出(自愿的)
2)出错退出(自愿的)
3)严重错误(非自愿)
4)被其他进程杀死(非自愿)—unix下kill系统调用,windows下TerminateProcess函数
1.3 进程间的层次结构:
unix下具有进程层次的概念,即父进程和其创建的子进程构建成一个进程组的概念,例如,当用户从键盘发出一个信号时,该信号被送给当前与键盘相关的进程组中的所有成员,每个进程可以分别捕获该信号,忽略该信号或采取默认的动作。
相反,windows中没有进程层次的概念,所有的进程都是地位相同的,但是在windwos中父进程可以得到子进程的一个特别的令牌(称为句柄),该进程可以用来控制子进程,同时父进程也有权把这个令牌传送给某个其他进程,这样就不存在进程层次了,在unix中,进程就不能剥夺其子女的“继承权”。
1.4 多道程序设计模型:
CPU利用率=1−pn
其中p为一个进程等待I/O操作的时间与其停留在内存中的时间比,n为内存中的进程数目。实际的远远比这个复杂,但它对预测CPU的性能很有效。