2.1.1 进程的定义、组成、组织方法、特征
程序:就是一个指令序列。 单道批处理时:
- 此时内存中:程序段、数据段
- 程序的代码放在程序段里,程序运行过程中处理的数据放在数据段里
进程的定义: 程序段,数据段,PCB三部分组成了进程实体(进程映像)。一般情况,我们把进程实体叫做进程,例如:所谓的创建进程,实质上是创建进程实体上的PCB,而撤销进程,实质上是撤销进程实体上的PCB
PCB是进程存在的唯一标志 进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
严格来说,进程实体是静态的,进程是动态的 程序段和数据段:程序本身运行所需要的数据 PCB:进程的管理者(操作系统)所需要的数据
进程的组织
进程的特征:
2.1.2 进程的状态与转换
进程的三种基本状态:
- 运行态:占有CPU,并在CPU上运行。
注意:单核处理机环境下,每一个时刻最多只有一个进程处于运行态。(双核环境下可以同时由两个进程处于运行态) - 就绪态:已经具备运行条件,但由于没有空闲CPU,而暂时不能运行、
即:万事俱备,只欠CPU - 阻塞态(等待态):因等待某一事件而暂时不能运行。例如:等待操作系统分配打印机、等待读磁盘操作的结果。CPU是计算机中最昂贵的部件,为了提高CPU的利用率,需要先将其他进程所需要的资源分配到位,才能得到CPU的服务
另外两种状态:
- 创建态:进程正在被创建,操作系统为进程分配资源,初始化PCB
2.终止态:进程正在从系统中撤销,操作系统会回收进程拥有的资源,撤销PCB
进程状态的转换:
2.1.3 进程控制
什么是进程控制: 进程控制就是要实现进程状态的转换 如何实现进程控制: 用原语实现进程控制,原语的特点是不中断,一气呵成 这种不可中断的操作即原子操作 原语采用“开中断指令”和“关中断指令”实现 显然,关/开中断指令的权限非常大,必然是只允许在核心态下执行的特权指令
进程控制相关原语 进程控制会导致进程状态的转换,无论哪个原语,要做的事情无非就三种:
- 更新PCB中的信息(如修改进程状态标志、将运行环境保存到PCB、从PCB恢复运行环境)
- 所有进程控制原语一定都会修改进程状态标志
- 剥夺当前运行进程的CPU使用权必然需要保护其运行环境
- 某进程开始运行前必然要恢复其运行环境
- 将PCB插入合适的队列
- 分配/回收资源
2.1.4 进程通信
什么是进程通信:进程之间的信息交互 进程是分配系统资源的单位(包括内存地址空间),因此各进程拥有的内存地址空间相互独立 为了保证安全,一个进程不能直接访问另一个进程的地址空间
-
共享存储 -
管道通信 -
消息传递
2.1.5线程概念和多线程模型
为什么要引入线程? 有的进程可能需要“同时”做很多事,而传统的进程只能串行地执行一系列程序。为此,引入了线程,来增加程序地并发度。 一个进程可能含有多个线程 传统的进程是程序执行流的最小单位,而引入线程后,线程成为了程序执行流的最小单位 引入线程后,进程只作为除CPU之外的系统资源的分配单元(如打印机、内存地址空间等都是分配给进程的) 线程的属性 线程的实现
- 用户级线程
- 内核级线程
多线程模型
|