[计算机软件及应用]操作系统 第二章进程与并发控制新
第二章 进程与并发控制 本章要点 基础:进程描述及控制 策略:进程调度 实现:互斥与同步 避免:死锁与饥饿 解决:几个经典问题 关于:进程通信 2.1 并发与进程 2.1.1进程的定义 多种定义 进程是程序的一次执行; 进程是可以和别的计算并发执行的计算; 进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。 …… 教材中的定义的总结: 进程是可并发执行的程序在一个数据集合上运行过程。进程是程序的在数据集合上的运行过程,该进程可与其它进程并发执行;它是一个动态的实体,在传统的操作系统设计中,进程既是资源的基本分配单元,也是基本的执行单元。 为什么要引入进程的概念? 2.1.2 程序的顺序执行与并发执行 程序顺序执行指的是在有多个程序需要执行的情况下,处理器严格按照某一顺序按序执行,每次只执行一个程序。其实质是单道程序系统。 图 程序顺序执行 为什么要引入进程的概念? 前趋图定义 有向无循环图 表示方式: (1)p1---p2 (2)---={(p1,p2)| p1 必须在p2开始前完成} 节点表示:一条语句,一个程序段,一进程。 为什么要引入进程的概念? 多个程序的并发执行(可能性分析) 为什么要引入进程的概念? 多道程序设计 同一时刻内存中存放了多个作业,处理器交替运行不同的作业。提高了系统的效率,尤其是资源利用率。 特点 多道 宏观上并行 微观上串行 问题 系统管理复杂化 为什么要引入进程的概念? 程序并发执行带来的新特征 资源共享性; 间断性 程序在并发执行时,由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的程序之间,形成了相互制约的关系。 失去封闭性 程序在并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行失去了封闭性。这样,某程序在执行时,必然会受到其它程序的影响。例如,当处理机这一资源已被某个程序占有时,另一程序必须等待。 不可再现性 程序在并发执行时,由于失去了封闭性,也将导致其再失去可再现性。 为什么要引入进程的概念? 结论: 程序的并发执行使得程序的执行情况不可预见,其结果不再唯一,成为一个动态的过程。而程序是一个静态的概念,不再能切实反映程序执行的各种特征(独立性、并发性、动态性)。 2.1.3进程特征及其与程序的区别和联系 2.2进程的状态转换 2.2.1进程的运行轨迹 假设有三个进程存储在内存,一个调度程序常驻内存,按时间片的方式轮流调度进程。假设调度程序的起始地址为s,5个指令完成调度。进程A的起始地址为a,执行轨迹为a+0,a+1,a+2,…。进程B的起始地址为b,执行轨迹为b+0,b+1,b+2,…。进程C的起始地址为c,执行轨迹为c+0,c+1,c+2,…。当它执行到c+3指令时遇到I/O。如果一个时间片可为处理器连续执行6条指令。三个进程是如何交替执行的? 2.2.2进程的三种基本状态及其转换 进程的三种基本状态:就绪状态、执行状态、阻塞状态 进程状态转换及原因 2.2.3五状态进程模型 问题:多个进程竞争内存资源 内存资源紧张 无就绪进程,处理机空闲:I/O的速度比处理机慢得多,可能出现全部进程阻塞等待I/O 对换技术,交换技术(Swapping) 将内存中暂时不能运行的进程,或暂时不用的数据和程序,换出到外存,以腾出足够的内存空间,把已具备运行条件的进程,或进程所需要的数据和程序,换入内存。 2.2.4进程的挂起状态 进程被交换到外存,状态变为挂起状态 进程挂起的原因 进程全部阻塞,处理机空闲。 系统负荷过重,内存空间紧张。 操作系统需要。 终端用户请求。 父进程请求。 进程状态的转换 就绪? 就绪/挂起 阻塞? 阻塞/挂起 就绪/挂起? 就绪 阻塞/挂起? 阻塞 2.3 操作系统对进程的控制 2.3.1操作系统内核(Kernel) 操作系统的核心,是基于硬件的第一层软件扩充,提供操作系统最基本的功能,是操作系统工作的基础。 现代操作系统设计中,为减少系统与硬件级本身的开销,往往将一些与硬件紧密相关的(如中断处理程序、设备驱动程序等)、基本的、公共的、运行频率较高的模块(如时钟管理、进程调度等)以及关键性数据结构独立开来,使之常驻内存,并对它们进行特殊保护。通常把这一部分称为操作系统的内核。 用户通过系统调用访问操作系统的功能,这些功能最终都通过操作系统内核实现。 不同的操作系统对内核的定义和功能范围的设定是不同的。 一般的,操作系统内核的功能可以概括地划分为资源管理功能和支撑功能。 资源管理:进程管理、存储管理和I/O设备管理 支撑功能:中断处理、原语操作、时钟管理等。 2.3.3进程的组成 进程是由程序、数据集合、进程控制块(P
原创力文档

文档评论(0)