leiyahui

纸上得来终觉浅,绝知此事要躬行
进程

一 进程的创建方式

1 系统初始化
2 执行了正在运行的进程所调用的进程创建系统调用

3 用户请求创建一个新进程

4 一个批处理作业的初始化

从技术上看上述的四种进程创建都是由于已经存在的进程调用进程创建系统调用才创建的

Linux系统中创建进程是fork系统调用

windows系统中是CreateProcess()函数

在两种系统中创建新的进程与父进程都是具有不同的地址空间,如果某个进程修改了地址空间中的某个字段则对其他今晨来说是不可见的。

二 进程的退出方式

1正常退出(自愿的)进程完成了本身的工作

2 出错退出(自愿的)进程发现了严重的错误,比如说要引用的文件不存在就弹出一个对话框

3严重错误退出(非自愿的)进程发生了严重的错误,比如说引用的地址空间不存在,执行了非法指令等等

4被其他进程杀死(非自愿的)unix中是killwin32中是terminateProcess()

三 进程的状态

进程有三种状态

1 运行态(实时占用CPU)

2就绪状态(可运行,但是因为其他进程占用cpu而停止)

3阻塞状态(除非某个外部事件发生否则进程不会运行)

四 进程的实现

为了实现进程模型,操作系统维护者一张表(进程表)

每个进程占用一个进程表项,也被称为进程控制块。

该进程控制块包含该进程的内存信息,程序计数器,文件打开状态等等以保证该进程被中断的时候能够再次启动,就像没有被中断过一样。

与I/0相关联的是一个中断向量所指向的位置。它包含一个中断服务程序的入口位置,当一个磁盘中断发生得时候,某个进程的程序计数器,程序状态字,寄存器的状态都被保存在堆栈中,计算机随机跳转到中断向量所指向的地址。

所有的中断都是从保存寄存器开始的,对于当前进程来说通常是在进程表项中。

五 多道程序设计模型,

假如说当前的主机内存最多可以容纳三个进程,而每个进程花费在I/0的时间是80%,所以说三个进程同时等待i/0的可能性是80%^3

所以说CPU的利用率大致为1-80%^3,

由次可以看出内存越大,进程越多,cpu的利用率就有可能越高。

 

posted on 2015-12-08 16:56  雷大叔  阅读(145)  评论(0)    收藏  举报