zl程序教程

您现在的位置是:首页 >  其他

当前栏目

进程 进程的定义 进程的状态及转换 进程控制块

2023-09-14 09:06:14 时间

进程概述

    进程的定义

        程序:

             程序是存放在存储介质上的一个可执行文件

       进程:

             进程是程序的执行实例, 包括程序计数器、 寄存器和变量的当前值

       程序是静态的, 进程是动态的

       程序是一些指令的有序集合, 而进程是程序执行的过程

       进程的状态是变化的, 其包括进程的创建、 调度和消亡

      在 linux 系统中, 进程是管理事务的基本单元

      进程拥有自己独立的处理环境和系统资源(处理器、 存储器、I/O 设备、 数据、 程序)

      使用fork 或 vfork 创建进程,在进程中exec 函数加载程序代码,并运行

      进程是操作系统分配资源的基本单元
 

    进程的状态及转换

           进程整个生命周期 可简单划分为三种状态:

                就绪态:
                    进程已具备执行的一切条件, 正在等待分配 CPU 的处理时间
               执行态:
                     该进程正在占用 CPU 运行
               等待态:
                   进程因不具备某些执行条件,而暂时无法继续执行的状态

        进程三种状态的转换关系:

    进程控制块

           OS 是根据 PCB ,对并发执行的进程进行 控制和管理

          系统在创建一个进程的时,会开辟一段内存空间存放与此进程相关 的 PCB 数据结构

          PCB 是操作系统中最重要的记录型数据结构

          PCB 中记录用于 描述进程进展情况及 控制进程运行所需的全部信息

          PCB 是进程存在的唯一标志, 在 Linux 中 PCB 存放在 task_struct 结构体中

       调度数据:

             进程的状态、 标志、 优先级、 调度策略等

        时间数据:

            创建该进程的时间、 在用户态的运行时间、 在内核态的运行时间等

      文件系统数据:

             umask 掩码、 文件描述符表等

      内存数据、 进程上下文、 进程标识(进程号)