• 操作系统-进程与线程(进程的概念、组成、特征、状态与转化)


    1.进程的概念、组成、特征

    在这里插入图片描述

    ①进程的概念

    程序与进程

    • 程序:是静态的,就是个存放在磁盘里的可执行文件,就是一系列的指令集合。
    • 进程:是动态的,是程序一次执行的过程。

    同一个程序多次执行会产生多个进程。

    进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。

    ②进程的组成

    进程是由PCB、程序段、数据段构成的

    PCB:

    1. PID:操作系统为了区分不同的进程,当进程创建时,操作系统会给进程创建一个唯一、不重复的编号。这个编号称为PID

    2. UID:进程所属用户组ID.

    3. 操作系统还要记录给进程分配了哪些资源(如:分配了多少内存、正在使用哪些/o设备、正在使用哪些文件。来实现操作系统对资源的管理。

    4. 操作系统还要记录进程的运行情况,进程使用资源情况。

    上述的信息被操作系统使用PCB(一种数据结构)保存下来。PCB又称为进程控制块。

    PCB是进程存在的唯一标志,当进程被创建时,操作系统为其创建PCB,当进程结束时,会回收其PCB。
    操作系统对进程的管理所需要的信息都在PCB中。

    程序段:程序的指令序列。

    数据段:程序运行过程中产生的数据。

    ③进程的特征

    1. 动态(最基本的特性):进程是程序的一次执行过程,是动态地产生、变化和消亡的

    2. 并发:内存中有多个进程实体,各进程可并发执行

    3. 独立:进程是能独立运行、独立获得资源、独立接受调度的基本单位

    4. 异步:各进程按各自独立的、不可预知的速度向前推进,操作系统要提供"进程同步机制"来解决异步问题。

    5. 结构:每个进程都会配置一个PCB。结构上看,进程由程序段、数据段、PCB组成

    2. 进程的状态与转化

    ①进程的状态

    在这里插入图片描述

    创建状态:进程正在被创建时,它的状态是“创建态”,在这个阶段操作系统会为进程分配资源、初始化PCB

    就绪状态:当进程创建完成后就会进入就绪状态,就绪状态的进程已经具备运行的条件了,只是此时CPU没有运行这个进程

    运行状态:如果进程一直在CPU运行,则这个进程处于运行状态

    阻塞状态:进程在运行过程中可能申请资源,这个资源可能正在被使用,此时CPU会让这个进程进入阻塞状态。

    (如果当资源就绪时,此时这个进程就会从阻塞状态变成就绪状态等待CPU调度)

    终止状态:当进程运行结束后,会执行exit系统调用结束进程,此时进程的状态为终止状态,CPU负责回收进程申请的系统资源和PCB。

    ②进程的状态转化

    1. 进程在进行创建的时候为创建态。

    2. 当系统完成创建进程操作时,进程的状态从创建态转化为就绪态。

    3. 此时进程正在等待CPU调度,如果进程被CPU调度,此时进程的状态运行态。

    4. 正在运行的进程通过系统调用方式申请系统资源,如果系统资源未就绪,此时进程会进入阻塞态等待资源就绪。

    5. 进入阻塞态的进程当等待的系统资源就绪的时候,会从阻塞态进入就绪态重新等待CPU调度。

    6. 运行态的进程结束运行后(或进程出现错误),进程进入终止态。

    7. 当进程的时间片到都进程会从运行态转化为就绪态

    在这里插入图片描述

    运行态→阻塞态是-种进程自身做出的主动行为。
    阻塞态→就绪态是不是进程自身能控制的,是种被动行为。

    注意:不能由阻塞态直接转换为运行态,也不能由就绪态直接转换为阻塞态(因为进入阻塞态是进程主动请求的,必然需要进程在运行时才能发出这种请求)

    ③进程的组织状态

    首先:进程PCB中,会有一个变量state来表示进程的当前状态。如: 1表示创建态、2表示就绪态、3表示运行态…为了对同一个状态下的各个进程进行统一的管理,操作系统会将各个进程的PCB组织起来。

    进程PCB的组织方式有两种

    1. 链接方式:采用就绪队列与阻塞队列管理PCB(链式队列)。阻塞原因不同一般阻塞队列不同。
      执行指针指向当前运行的进程,就绪队列指针指向就绪状态PCB(通常优先级高的放在对头)
    2. 索引方式(不常见):根据进程状态的不同,建立几张索引表。操作系统持有指向各个索引表的指针。可以通过索引找到对应进程的PCB.
  • 相关阅读:
    Android使用AtomicReference
    数据库选择题笔记
    hadoop
    DRF--跨域问题解决
    文件操作(1)
    4. 串的【朴素模式匹配算法】、【KPM算法:求next数组、nextval数组】
    移动硬盘误删除要如何恢复呢?
    python 基于django医院预约挂号管理系统
    决策树与随机森林
    云上未来,数智导航:阿里云研究院报告合集
  • 原文地址:https://blog.csdn.net/dodamce/article/details/126038632