【进程】进程流程

进程执行的整个流程涉及多个阶段,以下是该流程的一个概述:

一、进程创建

  1. 申请空白PCB:进程控制块(PCB)是进程存在的唯一标识,创建进程首先需要为其申请一个空白的PCB。
  2. 分配存储空间:为进程分配必要的存储空间,用于存放进程的程序代码、数据和进程控制信息等。
  3. 初始化PCB:
    • 初始化标识信息,如进程名、进程号等。
    • 初始化处理机状态信息,如程序计数器指向程序的入口地址,栈指针指向栈顶等。
    • 初始化处理机控制信息,将进程的状态设置为就绪状态,并通常将其插入到就绪队列的末尾(或根据优先级插入到适当位置)。

二、进程就绪

  1. 等待调度:进程在就绪队列中等待操作系统的调度。调度算法会根据进程的优先级、时间片等因素来决定哪个进程将被分配到处理机。
  2. 准备执行:当进程被选中执行时,操作系统会将其从就绪队列中移除,并为其分配处理机资源。

三、进程执行

  1. 加载程序:将进程的程序代码和数据加载到内存中的指定位置,以便处理机执行。
  2. 执行指令:处理机按照程序计数器中的指令地址,逐条取出指令并执行。执行过程中,会涉及到数据的读取、存储、运算等操作。
  3. 上下文切换:
    • 在多进程环境中,当当前进程的时间片用完或遇到其他需要暂停执行的情况时,操作系统会进行上下文切换,将当前进程的上下文(包括寄存器内容、程序计数器、栈指针等)保存到其PCB中,并腾出处理机资源。
    • 然后,操作系统会选择另一个就绪进程,将其上下文加载到处理机中,并使其开始执行。

四、进程阻塞

  1. 等待事件:进程在执行过程中,可能会遇到需要等待的事件(如I/O操作、资源申请等)。此时,进程会进入阻塞状态。
  2. 保存状态:操作系统会将进程的当前状态保存到其PCB中,并将其从执行队列中移除。

五、进程唤醒

  1. 事件完成:当进程等待的事件完成时(如I/O操作完成、资源被释放等),操作系统会将其从阻塞队列中唤醒。
  2. 重新就绪:被唤醒的进程会重新变为就绪状态,并被插入到就绪队列中等待调度。

六、进程终止

  1. 结束执行:进程完成其任务后,会调用终止原语来结束执行。
  2. 释放资源:操作系统会回收进程所占用的所有资源(包括内存、文件、设备等)。
  3. 删除PCB:最后,操作系统会删除进程的PCB,并将其从系统中彻底移除。

综上所述,进程执行的整个流程包括进程创建、进程就绪、进程执行、进程阻塞、进程唤醒和进程终止等多个阶段。这些阶段共同构成了进程在操作系统中的完整生命周期。

posted on   张凌赫_帅  阅读(10)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示