操作系统(2)

-----2.1-----

进程的概念

程序:是静态的,就是存放在磁盘里的可执行文件,就是一系列指令的集合

进程:是动态的,是程序的一次执行过程( 同一个程序 多次执行会对应 多个进程 )

进程的组成 -- 进程控制块 【PCB(Process Control Block)】

操作系统对进程进行管理工作所需的信息都存在PCB中

  • PCB是进程存在的唯一标志,当进程被创建时,操作系统会为其创建PCB,当进程结束时,会回收其PCB

进程实体( 其反映了进程在某一时刻的状态 )

一个进程实体是由PCB程序段数据段组成的

进程是动态的,进程实体(进程映像)是静态的,进程是进程实体的运行过程

  • 打开QQ三次,会对应三个QQ进程,它们的PCB、数据段都不同,但程序段的内容是相同的(因为都是运行着同样的QQ程序)

截屏2026-03-07 15.27

截屏2026-03-07 15.35

-----2.2-----

进程的状态( 创建态、【就绪态运行态阻塞态】、终止态

  1. 创建态:当进程正在被创建,其状态就是创建态,在这个阶段操作系统会为其分配资源,初始化PCB

  2. 就绪态:当进程创建完成后,就进入就绪态,处于就绪态的进程具有运行条件,但由于没有空闲的CPU,就暂时不能运行

系统中可能会有很多个进程处于就绪态,当CPU空闲时,就会选择一个就绪的进程上处理机(CPU)运行

  1. 运行态:如果一个进程正在CPU上运行,那么其就处于运行态,CPU会执行该进程对应的程序(执行指令序列)

  2. 阻塞态:在进程运行过程中,可能会请求等待某个事件的发生,在这个事件发生之前,进程无法继续往下执行,那么操作系统就会让该进程下CPU,并让其进入阻塞态

  3. 当CPU空闲后,又会让另一个就绪态的进程上CPU运行

  4. 当阻塞态的进程请求等待的事件发生时,其又会变为就绪态

  5. 终止态:当一个运行态进程发出exit系统调用(请求操作系统终止该进程),该进程就处于终止态,那么操作系统就会让其下CPU,回收内存空间等资源,最后回收该进程的PCB

  6. 当终止进程工作完成后,进程就消失了

进程状态的转换

截屏2026-03-07 15.46

截屏2026-03-07 16.12

  • 进程PCB中,会有一个变量 state 来表示进程的当前状态

截屏2026-03-07 16.23

进程的组织(链接索引

链接(大多数使用)

截屏2026-03-07 16.15

索引
截屏2026-03-07 16.17

-----2.3-----

进程控制:实现进程状态的转换(用原语实现)

  • 原语的执行具有“原子性”,一气呵成,期间不允许被中断

  • 实现原语的“原子性”:关中断指令开中断指令

截屏2026-03-07 16.36

  • 仅限于外中断,如果在关中断指令和开中断指令之间有 内中断指令 ,依旧会执行内中断指令

截屏2026-03-07 17.04

截屏2026-03-07 17.06

截屏2026-03-07 17.05

  • 访问 PCB 是内核数据结构,需要内核权限,因此进程的切换需要CPU“变态”

-----2.4-----

进程通信 “IPC”( 共享存储消息传递管道通信 ):指两个进程之间产生数据交互

  • 各进程拥有的内存空间地址相互独立,为了安全,一个进程不能直接访问另一个进程的地址空间
  1. 共享存储基于数据结构的共享基于存储区的共享):
  • 基于数据结构的共享:灵活性差、速度慢

  • 基于存储区的共享:灵活性高、速度快

基于存储区的共享:

截屏2026-03-07 17.21

(多个进程可以同时在共享空间读取,但不能同时在共享空间写入)

基于数据结构的共享( 比如int类型的数组 ):

截屏2026-03-07 17.29

截屏2026-03-07 17.26

截屏2026-03-07 17.26

  1. 消息传递:( 直接通信方式间接通信方式
  • 直接通信方式:需要指明是发送给哪个进程消息 / 接收哪个进程的消息

截屏2026-03-08 12.16

  • 间接通信方式( 信箱通信方式 ):需要指明是在哪个信箱 传递 / 接收 消息

截屏2026-03-08 12.24

  1. 管道通信 :写入读取数据遵循 “先进先出原则”,写入读取是单向的(但方向在一次读取写入结束后可以改变),如果想实现双向,则应再设置一个管道

截屏2026-03-08 12.42

posted @ 2026-03-08 13:09  Lin_zx  阅读(1)  评论(0)    收藏  举报