- 操作系统教程
- 操作系统-主页
- 操作系统 - 概述
- 操作系统 - 组件
- 操作系统 - 类型
- 操作系统-服务
- 操作系统 - 属性
- 操作系统-进程
- 操作系统-进程调度
- 操作系统-调度算法
- 操作系统-多线程
- 操作系统-内存管理
- 操作系统-虚拟内存
- 操作系统 - 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 | 进程号 操作系统中每个进程的唯一标识。 |
4 | 指针 指向父进程的指针。 |
5 | 程序计数器 程序计数器是指向该进程要执行的下一条指令的地址的指针。 |
6 | CPU寄存器 各种CPU寄存器,其中需要存储进程以执行运行状态。 |
7 | CPU调度信息 进程优先级和调度进程所需的其他调度信息。 |
8 | 内存管理信息 这包括页表、内存限制、段表的信息,具体取决于操作系统使用的内存。 |
9 | 会计信息 这包括用于进程执行的 CPU 量、时间限制、执行 ID 等。 |
10 | IO状态信息 这包括分配给进程的 I/O 设备列表。 |
PCB的架构完全依赖于操作系统,并且在不同的操作系统中可能包含不同的信息。这是 PCB 的简化图 -
PCB 在进程的整个生命周期内得到维护,并在进程终止后被删除。