操作系统进程调度全解析:PCB结构、虚拟内存管理与并发控制实战

进程调度的基本过程

一. 什么是进程?

进程是操作系统对正在运行的程序的抽象。可以将进程视为特定时刻程序的一次执行过程。在操作系统内部,进程是资源分配的基本单位。通过进程,操作系统可以有效地管理和调度系统中的各项任务,使多个任务可以在一个处理器上交替执行,从而实现并发和并行。

进程示意图

二. 进程的组成与描述

1. 进程由两部分组成:描述和组织。

1.1 描述:

进程的属性被存储在进程控制块(PCB)中。PCB 可以被视为进程的档案,其中包含了关键信息,如进程ID、内存指针、文件描述符表等。

举个例子,想象你正在玩一个多人在线游戏。你是一个进程,而你的PCB就包含了你在游戏中的ID、当前所在的地图位置以及你的游戏资源状态。

1.2 组织:

操作系统通过双向链表将多个PCB连接在一起,形成了就绪队列。就绪队列中存放了等待被调度执行的所有进程。当一个进程需要被执行时,操作系统会从就绪队列中选择一个合适的进程进行调度。

举个类比,把就绪队列想象成一个电影院的排队队伍。每个PCB就像一个电影观众,等待着进入放映厅(CPU)观看电影(执行任务)。

2. PCB内部描述了进程的特征:

2.1 进程的特征
  1. 进程标识符(PID): 类似于每个人的身份证号码,用于唯一标识一个进程。

  2. 内存指针: 就像是你在地图上的位置标记,指示进程所占用的内存区域。

  3. 文件描述符表: 类似于你的工具箱,包含进程持有的文件和其他资源,比如硬盘上的文件。

  4. 进程调度相关属性:

    • 进程状态: 就绪状态(随时可执行)、运行状态(当前正在执行)、阻塞状态(无法立即执行,如IO密集操作)。
    • 优先级: 不同进程具有不同的优先级,操作系统根据优先级进行调度。就像不同等级的乘客在机场的登机顺序。
    • 上下文: 在进程切换时,需要保存当前进程的执行状态,以便下次恢复时可以继续执行。这包括CPU寄存器的值,类似于暂停游戏时记录的进度,以便以后继续。
    • 记账信息: 统计进程在CPU上占用的时间和执行的指令数量,影响下一阶段的调度决策。
2.2 并行和并发

调度的目标是实现分时复用,使多个进程共享处理器的时间,从而提高系统的效率。并行和并发是两种实现这一目标的不同方式:

  • 并行: 多个进程在不同的处理器核心上同时执行,就像多个厨师在不同的灶台上烹饪不同的菜肴。
  • 并发: 微观上,单个核心在同一时刻只能执行一个进程,但在不同进程之间快速切换执行,造成多个任务几乎同时运行的错觉。这由操作系统内核管理。

三. 内存管理:虚拟地址空间

程序获取的内存地址实际上是虚拟地址,而非物理内存地址。虚拟地址是一种抽象,通过操作系统和硬件进行虚拟地址到物理地址的转换。

进程隔离引入了虚拟地址空间的概念,程序不再直接使用真实的物理地址。虚拟地址空间解决了进程间影响的问题,但也引入了新的挑战。进程需要进行数据交互时,需要通过进程间通信来实现。通信方式多种多样,核心思想是创建一个公共空间,用于数据交换。

虚拟地址空间示意图

虚拟地址转换示意图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

司徒阿宝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值