1、什么是进程
进程是一段运行的程序,进程是文本、数据和堆栈片段、资源的载体。进程通过进程控制块管理这些资源。进程控制块包含大量与进程相关的信息,如进程ID、内存和分配资源的指针、寄存器保存区以及进程的优先权等。
2、进程状态
进程状态有以下几种:就绪、运行、阻塞、备用(standby)、空闲、挂起--就绪、挂起--阻塞、终止、僵化等。
状态的转化有:
新建->就绪、就绪->备用,
分派(就绪->运行、备用->运行),
抢占(备用->就绪),
时间片耗尽(运行->就绪),
阻塞(运行->阻塞),
唤醒(阻塞->就绪),
挂起(运行->挂起->就绪、就绪->挂起->就绪、阻塞->挂起->阻塞),
恢复(挂起->就绪->就绪、挂起->阻塞->阻塞),
退出(运行->僵化、运行->终止),
重新初始化(终止->新建)。
3、进程优先权
进程被分配一个优先类以及该类中的优先级,类和级从低到高,系统从就绪队列中选择优先级最高的进程使用处理器。优先权可分为动态和静态。动态优先权在系统变化时,可能需要改变进程的优先权来增加系统的响应速度。静态优先权可能用于对时间敏感的进程。
4、上下文切换
当一个运行的进程从处理器中删除,而且系统选择另外一个进程到处理器,就产生上下文切换。
上下文切换包括可执行映像、程序计数器、寄存器、堆栈以及用于动态和静态的分配内存。
上下文切换发生的情况:
1)进程的时间段用完;
2)一个新建或等待进程准备就绪,而且已被送入处理器;
3)比运行进程较高优先权进程准备就绪;
4)运行进程的分配处理器发生了变化;
5)运行进程发出I/O请求。
5、进程关系
进程可以产生子进程,其充当子进程的父进程。在Unix中,子进程得到父进程的地址空间的拷贝。它们的数据和堆栈片段是私有的,但共享文本片段。子进程和父进程可以访问在两种进程地址空间之外创建的共享内存区域。子进程在创建后,可以被重新初始化为其它的可执行映像。
1)进程终止
如果父进程在子进程正常返回之前,由于其它原因提前终止,子进程将一直会驻留在内存中。
2)同步与异步进程
当父进程挂起执行,直到子进程终止为止,这些进程具有同步执行。
如果父进程和子进程相互独立执行,则具有异步执行。
6、进程映射
一个进程有3个片段:文本、数据和堆栈片段。进程的地址空间布局既有物理模型也有逻辑模型。物理模型有关进程如何实际保存在RAM中。逻辑模型在布局的底端有文本片段,后面跟着数据片段,堆栈片段位于顶部。逻辑布局模型使用虚拟地址空间,虚拟地址空间映射到RAM地址空间。
7、进程资源
7.1 硬件资源
7.2 数据资源
7.3 软件资源
7.4 优先权与资源
阅读(1343) | 评论(0) | 转发(0) |