文章目录

  • ​​1.什么是程序​​
  • ​​2.什么是进程​​
  • ​​3.进程数据结构​​
  • ​​4.进程与程序的区别与联系​​

1.什么是程序

  • 程序是完成特定任务的一系列指令集合
  • 程序就是:有序指令的集合
    程序包含只读代码段,只读数据段(常量数据,已经初始化的非0数据段(已经初始化的数据段),0初始化段(指:静态变量和全局变量,其初始值为0))
    零初始化段仅仅是符号信息,并没有存放在磁盘空间中,因为这些数据为0只需要做一些标记即可。当程序加载到内存时,才会为其分配空间。
    对程序来讲,0初始化段只是一些记号信息,并没有实际为其分配空间。

2.什么是进程

  • 从用户的角度来看,进程是程序的一次动态执行过程
  • 从操作系统的核心来看,进程是操作系统分配的内存、CPU时间片等资源的基本单位
  • 进程是资源分配的最小单位
  • 每一个进程都有自己独立的地址空间与执行状态
  • 像UNIX这样多任务操作系统能够让许多程序同时运行,每一个运行着的程序就构成了一个进程

3.进程数据结构

(P9)进程:程序、进程、进程数据结构、进程与程序的区别与联系_数据段

  • 进程的静态描述:由3部分组成:PCB、有关程序段和该程序段对其进行操作的数据结构集
    因为进程是程序是依次动态执行过程,
    当一个进程切换到另一个进程的时候,他需要保存一些现场信息,这些现场信息保存在PCB中
    PCB是OS用来感知进程存在的一个重要数据结构。
  • 进程控制块PCB:用于描述进程情况以及控制进程运行所需的全部信息
  • 代码段:是进程中能被进程调度,程序在CPU上执行的程序代码段
  • 数据段:一个进程的数据段,可以是进程对应的程序加工处理的原始数据,也可以是程序执行后产生的中间或最终数据

4.进程与程序的区别与联系

  • 程序:代码段+数据段
    程序只有代码段和数据段,程序操作的指令存放在代码段,程序的指令所要操作的数据放在数据段中。
    (1)只读数据段:常量
    (2)已初始化数据段:全局变量,静态变量
    (3)未初始化数据段(0初始化段):未初始化全局变量,静态变量
    这些变量的空间不需要存放在磁盘中,只需做一些记号即可。所以未初始化段也称之为bss段(block stack symble),只需要保存符号信息,不需要为其分配空间,因为其初始值为0,不需要为其分配空间,只需要做一些记号即可
  • 进程:代码段+数据段+堆栈段+PCB
    堆栈段:用来保存进程动态执行的临时数据
    PCB:进程当前状态信息
  • 其它
    (1)经常是动态的,程序是静态的
    (2)进程的生命周期是相对短暂的,而程序是永久的
    (3)进程数据结构PCB
    (4)一个进程只能对应一个程序,一个程序可以对应多个进程