Skip to content

2.3 进程描述

Giovanna

About 1443 wordsAbout 5 min

2024-08-31

操作系统是资源的管理者。采用表格(或数据结构)来记载各资源信息,从而实现对资源的管理、维护、更新等。

操作系统的控制结构

image.png

一、进程控制结构

1. 进程位置

进程的物理存在是什么?

  • 进程对应的程序
  • 进程对应的数据
  • 栈:存放过程调用的地址或参数
  • 进程的属性:如ID、状态、内存中的位置等

进程映像(Process Image):程序段+数据段+进程控制块(PCB)+栈

2. 进程属性

进程控制块的作用

  • 进程存在的唯一标志

  • PCB(process control block)常驻内存

进程控制块中的信息

  • 进程标识符

  • 处理机状态信息

  • 进程控制信息

3. 进程控制块中的信息

进程标识符

唯一地标识一个进程

  • 内部标识符:操作系统为每个进程赋予的一个唯一整数,便于系统控制

  • 父进程标识符:用于标识父进程

  • 用户标识符:标识创建进程的用户

处理机状态信息

主要是由处理器的各种寄存器中的内容组成的

  • 通用寄存器(用户可见寄存器)

    • 通常有8-32个,暂存信息
  • 控制和状态寄存器

    • 程序计数器:存储下一条即将执行的指令的地址
    • 控制和状态寄存器:程序状态字(PSW)寄存器,如Intel X86的EFLAGS寄存器,存放条件码(是否溢出、进位等)、执行方式(内核或用户模式)、中断屏蔽标志等
  • 栈指针

    • 存放过程和系统调用参数及调用地址

进程控制信息

与进程调度和进程切换有关的信息

  • 调度和状态信息

    • 进程状态:进程的当前状态,以及是否准备好运行
    • 进程优先级
    • 进程调度所需的其它信息,如进程已等待CPU的时间总和、进程已执行的时间总和等
    • 事件,指进程由执行状态转变为阻塞状态所等待发生的事件,即阻塞原因
  • 链接指针

    • 如同一状态进程的链接;父子进程的链接
  • 进程间通信

    • 指实现进程同步和进程通信时必需的机制,如消息队列指针、信号量等
  • 程序和数据的地址

    • 指分配给进程的段表或页表的指针
  • 资源所有权和使用情况

    • 指示进程控制的资源,如打开的文件,处理器或其他资源的使用历史情况(供调度器使用)

4. 进程控制块的组织方式

索引方式

系统根据所有进程的状态建立几张索引表。

image.png

链接方式

通过链接指针将PCB块连接起来,形成队列。

  1. 单一队列:所有PCB块连接成一个队列

image.png

  1. 多级队列:相同状态的PCB块连接成一个队列

image.png

二、内核功能

内核(操作系统的核心):

  • 操作系统中包含重要系统功能的部分。
  • 常驻内存,便于提高操作系统运行效能。

不同操作系统对内核的功能范围的设定不同。

通常而言,操作系统内核的功能包括:

  • 资源管理功能
  • 支撑功能

1. 资源管理功能

  • 进程管理

    • 进程创建和终止
    • 进程的调度和分派
    • 进程切换
    • 进程同步和进程间通信的支持
    • 管理进程控制块
  • 存储管理

    • 为进程分配地址空间
    • 交换
    • 页和段管理
  • I/O设备管理

    • I/O缓冲区的管理
    • 为进程分配I/O通道和设备等

2. 支撑功能

  • 中断处理

    • 中断处理既是内核的基本功能,也是整个操作系统赖以活动的基础,操作系统的一切重要活动最终都依赖于中断。
  • 时钟管理

    • 操作系统的很多功能都依赖于时钟,如时间片控制等。
  • 记账(统计、监测)功能

三、执行模式

1. 模式

大多数处理器至少支持两种模式:

  • 与操作系统相关的处理器模式——内核模式(系统模式/控制模式)

  • 与用户程序相关的处理器执行模式——用户模式

  • 某些指令只能在特权模式下运行

    • 读取和修改程序状态字之类的控制寄存器的指令
    • 原始I/O指令
    • 与内存管理相关的指令
  • 部分内存只能在特权模式下访问

为什么采用两种模式?

保护操作系统和重要的操作系统表(如PCB)不受程序干扰。

处理机如何知道它在什么模式下执行?

程序状态字PSR寄存器中存在指示执行模式的位

  • 当用户调用操作系统服务或中断促发系统例程时,相关位被置为内核模式

  • 当从系统服务返回用户进程时,相关位被置为用户模式

2. 模式切换

系统模式和用户模式之间的相互转换。

出现中断时,系统会作如下工作:

  • 将程序计数器置为中断处理程序的开始地址
  • 从用户模式切换到内核模式,以便中断处理能执行特权指令
模式切换的原因(用户→系统)

系统调用或中断

模式切换是否会必然导致进程切换?

不一定 (如I/O中断不一定伴随进程切换)