• 操作系统概念 进程


    一、进程的定义

    1. 程序和进程


    在这里插入图片描述


    • 程序是一个被动的实体,例如一个包含存储在磁盘上的指令列表的文件(通常称为可执行文件)。
    • 当一个可执行文件被加载到内存中时,一个程序将成为一个进程
    • 进程是一个活动的实体,由一个程序计数器指定下一条指令来执行一组相关的资源。

    2. PROGRAM COUNTER

    在这里插入图片描述

    • 程序计数器(PC) 是一个CPU中的寄存器,里面存放下一条要执行指令的内存地址
    • 通常,CPU在取完一条指令之后会将PC寄存器的值加“1”,以计算下条要执行指令的地址

    3. PROCESS IN MEMORY

    进程在内存中的状态
    在这里插入图片描述


    注解:
    1)text 代码段:我们编写的程序经过编译生成对应的指令,进程内存布局中的 text 段,就是用来存放这些计算机指令的。CPU 不断地从 text 段取走指令,进程就不断地往下执行。
    2)data 段:这部分主要存放全局变量和静态变量数据。因为全局变量和静态变量数据的生命周期是伴随着进程开始和结束的,所以 data 段专门用来存放整个进程执行期间都需要保存的数据。
    3) stack 段:栈空间,属于进程内存布局的一部分,用于存放局部变量、函数返回地址。
    4) heap 段:堆空间,属于进程内存布局的一部分,堆用于程序运行时的动态内存分配,如 malloc 动态申请内存。
    5)stack 栈空间在高地址,heap 堆空间在低地址。stack 栈空间的增长方向从高地址往低地址, heap 堆空间的增长方向从低地址往高地址。



    二、 一个运行中的进程内存空间

    在这里插入图片描述


    1. 首先,我们的程序经过编译得到一系列的二进制计算机指令,这些指令都放在 text 段

    在这里插入图片描述


    1. 程序开始执行

    a) main函数中调用了 g函数g函数中调用了 f函数

    b) 当进行子程序切换(即函数调用)的时候,需要记录函数的返回地址。比如,main函数中调用了 g函数,当 g函数执行结束,下一条指令应该对应的是 main函数中调用 g函数位置的下一处return 0; 。因此,当发生子程序的调用时,我们应该把子程序调用的下一处地址保存到栈空间,以便从栈空间中取出下一条指令的地址。

    c) 在整个程序的执行过程中,出现了全局变量和静态局部变量,因此将其保存到 data 段。同时还出现了 malloc 进行动态内存分配,heap 段也使用到了。

    在这里插入图片描述


    1. 最后函数全部运行结束并返回,data/heap/stack 空间都释放

    在这里插入图片描述


    1. 进程的定义

    在这里插入图片描述


    三、 并发的进程

    1. 并发的概念

    Concurrency:the fact of two or more events or circumstances happening or existing at the same time.

    并发可以解释为:在同一时间段“发生”或者“存在”。

    并行可以理解为:“running at the same time.”。即:在同一时间“运行”。


    2. 并发进程共享CPU

    在这里插入图片描述


    四、进程的状态

    1. 进程状态(PROCESS STATE)

    在这里插入图片描述


    2. 进程何时离开CPU

    在这里插入图片描述


    3. 进程状态的转换

    在这里插入图片描述


    在这里插入图片描述

    注:源自B站up主:Y4NGY

  • 相关阅读:
    【python源码解析】深入 Pandas BlockManager 的数据结构和初始化过程
    go mod tidy总是安装最新依赖,如何查找哪个模块导致某个包安装最新依赖,提供一个小工具
    云网络技术的好处以及类型
    VS Code C# 开发工具包正式发布
    设0<c<1,a1=c/2,a(n+1)=c/2+an²/2,证明数列an收敛,并求其极限
    故障:Windows Security 显示错误或空白
    Go 围炉札记
    2023最新SSM计算机毕业设计选题大全(附源码+LW)之java手工艺品在线网站k5284
    JS高级 之 事件循环
    8.11-分析工具、8.12-数据字典、8.13-数据流图 8.14-设计工具
  • 原文地址:https://blog.csdn.net/weixin_42109053/article/details/127563740