- 操作系统教程
- 操作系统 - 首页
- 操作系统 - 需求
- 操作系统 - 概述
- 操作系统 - 历史
- 操作系统 - 组成部分
- 操作系统 - 结构
- 操作系统 - 架构
- 操作系统 - 服务
- 操作系统 - 属性
- 操作系统 - 周转时间 & 等待时间
- 操作系统进程
- 操作系统 - 进程
- 操作系统 - 进程调度
- 操作系统 - 调度算法
- 先来先服务调度算法 (FCFS)
- 最短作业优先调度算法 (SJF)
- 轮转调度算法
- 最高响应比优先调度算法 (HRRN)
- 优先级调度算法
- 多级反馈队列调度
- 上下文切换
- 进程操作
- 彩票进程调度
- 预测 SJF 调度的突发时间
- 竞争条件漏洞
- 临界区同步
- 互斥同步
- 进程控制块 (PCB)
- 进程间通信 (IPC)
- 抢占式和非抢占式调度
- 操作系统同步
- 进程同步
- 操作系统内存管理
- 操作系统 - 内存管理
- 操作系统 - 虚拟内存
- 操作系统存储管理
- 操作系统 - 文件系统
- 操作系统类型
- 操作系统 - 类型
- 操作系统杂项
- 操作系统 - 多线程
- 操作系统 - I/O 硬件
- 操作系统 - I/O 软件
- 操作系统 - 安全
- 操作系统 - Linux
- 考试题库及答案
- 考试题库及答案
- 操作系统有用资源
- 操作系统 - 快速指南
- 操作系统 - 有用资源
- 操作系统 - 讨论
操作系统 - 进程
进程
进程基本上是正在执行的程序。进程的执行必须以顺序方式进行。
进程被定义为表示系统中要实现的基本工作单元的实体。
简单来说,我们用文本文件编写计算机程序,当我们执行这个程序时,它就变成了一个进程,执行程序中提到的所有任务。
当程序加载到内存中并成为一个进程时,它可以分为四个部分——栈、堆、文本和数据。下图显示了主内存中进程的简化布局:
序号 | 组成部分及描述 |
---|---|
1 | 栈 进程栈包含临时数据,例如方法/函数参数、返回地址和局部变量。 |
2 | 堆 这是在进程运行时动态分配给进程的内存。 |
3 | 文本段 这包括由程序计数器的值和处理器的寄存器内容表示的当前活动。 |
4 | 数据段 此部分包含全局变量和静态变量。 |
程序
程序是一段代码,可以是一行或数百万行。计算机程序通常由计算机程序员使用编程语言编写。例如,这是一个用 C 编程语言编写的简单程序:
#include <stdio.h> int main() { printf("Hello, World! \n"); return 0; }
计算机程序是由一系列指令组成的,当计算机执行这些指令时,它将执行特定任务。当我们将程序与进程进行比较时,我们可以得出结论:进程是计算机程序的动态实例。
执行特定任务的计算机程序的一部分称为算法。计算机程序、库和相关数据的集合称为软件。
进程生命周期
当进程执行时,它会经过不同的状态。这些阶段在不同的操作系统中可能有所不同,这些状态的名称也不是标准化的。
一般来说,进程一次只能处于以下五种状态之一。
序号 | 状态及描述 |
---|---|
1 |
启动 这是第一次启动/创建进程时的初始状态。 |
2 |
就绪 进程正在等待分配给处理器。就绪进程正在等待操作系统为其分配处理器,以便它们可以运行。进程可能在启动状态之后进入此状态,或者在运行时被调度程序中断以将 CPU 分配给其他进程。 |
3 | 运行 一旦进程被操作系统调度程序分配给处理器,进程状态将设置为运行,处理器将执行其指令。 |
4 | 等待 如果进程需要等待资源(例如等待用户输入或等待文件可用),则进程将进入等待状态。 |
5 | 终止或退出 一旦进程完成执行,或者被操作系统终止,它就会移动到终止状态,在那里它等待从主内存中删除。 |
进程控制块 (PCB)
进程控制块是操作系统为每个进程维护的数据结构。PCB 由一个整数进程 ID (PID) 标识。PCB 保留了跟踪进程所需的所有信息,如下表所示:
序号 | 信息及描述 |
---|---|
1 | 进程状态 进程的当前状态,即它是否就绪、运行、等待或其他状态。 |
2 | 进程权限 这是允许/不允许访问系统资源所必需的。 |
3 | 进程 ID 操作系统中每个进程的唯一标识。 |
4 | 指针 指向父进程的指针。 |
5 | 程序计数器 程序计数器是指向此进程要执行的下一条指令的地址的指针。 |
6 | CPU寄存器 进程需要存储在运行状态以执行的各种 CPU 寄存器。 |
7 | CPU调度信息 进程优先级和其他调度信息,这些信息是调度进程所必需的。 |
8 | 内存管理信息 这包括页表、内存限制、段表(取决于操作系统使用的内存)的信息。 |
9 | 计费信息 这包括进程执行使用的 CPU 量、时间限制、执行 ID 等。 |
10 | I/O 状态信息 这包括分配给进程的 I/O 设备列表。 |
PCB 的架构完全取决于操作系统,并且可能在不同的操作系统中包含不同的信息。这是一个简化的 PCB 图:
在进程的整个生命周期中,都会为该进程维护 PCB,并且一旦进程终止,就会删除 PCB。