进程

Posted Jing Sir

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进程相关的知识,希望对你有一定的参考价值。

第三章进程

1、进程的概念:执行中的程序

2、进程与程序的区别

程序不是进程,程序只是被动实体,而进程是活动实体,当一个可执行文件被装入内存,一个程序才能被称为进程。

  1. 进程是一个动态概念,程序是一个静态概念;
  2. 进程有生命周期,有诞生有消亡,短暂的;而程序是相对长久的。
  3. 进程具有并发性,而程序没有;
  4. 进程是竞争计算机系统资源的基本单位,其并发性受到系统本身的制约;
  5. 不同的进程可以包含同一程序,只要程序所对应的数据集不同

3、进程状态及其转换|||||||

新的进程正在被创建

运行指令正在被执行

等待进程等待某个事件的发生

就绪进程等待分配处理器

终止进程完成执行

4、进程控制块

每个进程在操作系统中用程序控制块来表示(PCB包括进程状态、程序计数器、CPU寄存器、CPU调度信息、内存管理信息记账信息I/O状态信息

PCB用来保存程序运行期间的重要信息、进程存在的唯一标识、记录了OS所需的用于描述进程及控制进程所需的全部信息、进程与PCB是一一对应的

5、进程调度:选择一个可用的进程到CPU上执行

6、作业队列:保存系统中所有的进程,进程进入系统会被加入作业队列

7、就绪队列:驻留在内存中的、等待运行的程序保存在就绪队列中

8、设备队列:等待I/O设备的进程,每个设备都有自己的设备队列

9、调度程序:进程选择有相应的调度程序执行

10、长期调度(作业调度):选择一个进程进入内存的就绪队列,控制多道程序设计的程度(内存中进程的数量执行的并不频繁

11、短期调度(CPU调度):从就绪队列中选择一个进程,并为之分配CPU

12、两者区别:执行的频率

13、中期调度:中级调度主要完成虚拟内存管理相关得换入换出操作

14、上下文切换(调度过程CPU切换到另一个进程的时候,系统需要保存老进程的状态,并且加载新进程的状态,上下文切换的时间是系统的额外开销,切换时系统不做任何有用的工作,时间与硬件支持密切相关

15、进程操作:进程创建进程终止

进程创建:父进程创建子进程,子进程继续创建,从而形成一棵进程树

进程终止:父进程能够中止子进程的执行

16、父进程能够中止子进程的执行的原因

  1. 子进程使用了超过它所分配到的一些资源
  2. 子进程的任务不再需要
  3. 如果父进程结束了,一些操作系统不允许子进程继续执行

17、对换技术、交换技术:将内存中暂时不能运行的进程,或暂时不用的数据和程序,换出到外存,以腾出足够的内存空间,把已经具备运行条件的进程,或进程需要的数据和程序,换入内存

18、进程分类:I/O为主的进程、CPU为主的进程

19、进程终止实现

第一步:根据被终止进程的标识符,从PCB集合中查找对应进程控制块并读出该进程的状态;

第二步:若被终止进程正处于执行状态,则终止该进程的执行,并设置调度标志为真,用于指示该进程被终止后应重新进行调度,选择一新进程,把处理机分配给它。

第三步:若进程还有子孙进程,应将其所有子孙进程终止,以防它们成为不可控制的。

第四步:将进程所占有的全部资源释放(还给父进程或系统),释放进程控制块(若该进成为执行态,要进行进程调度)。

第五步:将被终止进程(它的PCB)从所在队列(或链表)中移出,等待其他程序来收集相关信息。

20、进程协作的目的:信息共享提高运算速度、模块化、方便

21、进程间通信基本模式:(1)共享内存(2消息传递

22、消息传递通过系统调用来实现,速度慢对于交换较少数量的数据很有用,因为不需要避免冲突。

23、共享内存消息传递速度快,只有在建立共享内存区时需要系统

以上是关于进程的主要内容,如果未能解决你的问题,请参考以下文章

系统的进程0建立了资源限制

安卓Zygote详解

116 - 进程实例 05

112 - 进程实例 01

118 - 进程实例 07

javascript如何获取子孙节点?