第三章 进程的描述与控制深入解析
文章目录
进程是操作系统中最重要的概念之一,是程序的执行过程,也是系统进行资源分配和调度的基本单位。
一、程序执行方式
程序执行分为顺序执行和并发执行两种方式。顺序执行时,程序按顺序依次执行;并发执行时,多个程序同时进入内存,实现程序的并发执行。
1.1 程序顺序执行
- 特征:顺序性、封闭性、可再现性。
1.2 程序并发执行
- 特征:间断性、失去封闭性和可再现性、程序与程序执行不再一一对应。
二、进程描述
- 进程描述涉及进程的定义、特性、与程序的区别及进程控制块。
2.1 进程定义
- 进程是具有一定独立功能的程序关于某个数据集合的一次运行活动。
2.2 进程特性
包括动态性、并发性、独立性、异步性和结构性。
2.3 进程与程序的区别
- 进程是动态的,程序是静态的。
- 进程是暂时的,程序是永久的。
- 进程具有结构性,程序由指令和数据构成。
2.4 进程控制块 (PCB)
- PCB 用于记录进程的相关信息,是操作系统对进程进行控制和管理的基础。
代码示例:
// 概念性展示,非具体操作系统代码
struct PCB {
int pid; // 进程标识符
char state; // 进程状态
// 其他控制信息
};
三、进程状态
- 进程在其生命周期中会经历不同的状态,包括就绪态、执行态和阻塞态。
3.1 进程基本状态
- 就绪态:已分配除CPU外的资源,等待分配CPU。
- 执行态:正在运行的状态。
- 阻塞态:等待某个事件的发生,暂时停止执行。
3.2 进程状态转换
- 描述了进程状态之间的转换关系,包括就绪→执行、执行→就绪、执行→阻塞等。
3.3 进程的挂起
- 挂起是指使进程暂停活动的过程,包括挂起的原因和状态转换。
四、进程控制
- 进程控制涉及进程控制的主要任务、内核的角色、原语操作和进程控制原语。
4.1 微内核
- 微内核技术是现代操作系统设计中突出的思想,将操作系统中更多的代码放到用户层中。
4.2 原语操作
- 原语操作是内核执行的具有特定功能的程序段,具有原子性。
4.3 进程控制原语
- 包括创建原语、撤销原语、阻塞原语、唤醒原语、挂起原语、激活原语等。
代码示例(概念性描述):
// 创建进程
void create_process(PCB* new_process) {
// 分配资源,初始化PCB
}
// 撤销进程
void terminate_process(PCB* process) {
// 释放资源,删除PCB
}
五、线程
线程作为进程内的一个执行单元,是操作系统中一个重要的技术。
5.1 线程引入
- 线程的引入是为了提高系统的并发度,减少并发执行时的时空开销。
5.2 线程定义
- 线程是进程内一个相对独立、可调度的执行单位。
5.3 线程的状态
- 包括就绪状态、运行状态、阻塞状态及状态转换。
5.4 线程和进程的比较
- 线程与进程在地址空间资源、并发性、通信关系、切换速度方面的区别。
5.5 线程分类
- 包括内核支持线程、用户级线程。
5.6 线程实现的模型
- 包括多对一模型、一对一模型、多对多模型。
原文地址:https://blog.csdn.net/weixin_49345320/article/details/142437851
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!