第一章 操作系统引论
1.1操作系统的目标和作用
操作系统的作用:
- 作为用户与计算机之间的接口
- 作为计算机系统资源的管理者(文件管理、存储器管理、处理机管理、设备管理)
- 用作扩充机器
操作系统的目标:
- 方便性
- 可扩充性
- 有效性
- 开放性
1.2操作系统的发展过程
1.操作系统的产生
- 手工操作阶段
- 单道批处理阶段
内存中始终只保持一道作业,监控程序常驻内存。
主要缺点是资源的不到充分的应用,无法进行人机交互。
2.操作系统的形成
- 多道批处理阶段
多道:宏观上并行、微观上串行
优点:资源利用率高、系统吞吐量大
缺点:平均周转时间长、无交互能力 - 分时系统
最大进步:实现了人机交互、引入了时间片概念、作业直接进入内存。 - 实时操作系统
3.操作系统的基本特征
3.1并发、并行、进程
- 并发:两个或多个事件在同一时间间隔进行
- 并行:两个或多个事件在同一时刻进行
- 进程:是进程实体的运行过程,系统中能够独立运行并作为资源分配的基本单位。(程序是不能并发执行的,但是进程可以)
3.2共享
- 系统中的资源可供多个并发的进程共同使用
1.互斥共享:
规定在一段时间内,只允许一个进程访问该资源
2.同时访问方式:
允许一段时间内多个进程“同时”对它们进行访问。(这里的同时是宏观意义上,微观上是交替访问)
3.3虚拟
- 通过某种技术将一个物理实体映射为若干个逻辑上的对应物。(提高资源利用率)
4.操作系统的主要功能
- 引入操作系统的主要目的是:为多道程序的运行提供良好的运行环境,并能最大程度提高各种资源的;利用率。
-
1,处理机管理功能
处理机是计算机中最重要的资源
-
进程控制:为作业创建进程、撤销已结束的进程、控制进程运行中的状态转换。
-
进程同步:协调多个进程运行。
-
进程通信:实现相互合作的进程间的信息交换/传递。
-
调度
作业调度:从后备队列中选出若干个作业为他们分配所需资源。在作业调入内存后,分别为他们创建进程,并将他们插入就绪队列。
进程调度:从就绪队列选出一个进程,将处理机分配给他们。
4.2存储器管理功能
是计算机中第二重要的资源
- 内存分配
- 内存保护
- 地址映射
- 内存扩充(静态、动态)
4.3设备管理功能
(是最庞大繁琐的部分)
- 缓冲管理
- 设备分配
- 设备处理(又称为设备驱动程序)
4.4文件管理功能
- 文件存储空间管理
- 目录管理
- 文件的读/写管理与保护
4.5操作系统与用户间的接口
- 用户接口
- 程序接口
第二章 进程的描述与控制
2.1前驱图和程序执行
(略)
2.2进程的描述
-
为了使程序并发执行,并且可以对并发执行的程序加以描述和控制,人们引入了“进程”的概念
-
进程实体包括三部分:程序段、相关的数据段和PCB
进程的特征:- 动态性
- 并发性
- 独立性
- 异步性
进程的三种基本状态 (重点)
1)就绪状态:指进程已处于准备好运行的状态,及进程已经分配到需要的系统资源,只要在获得CPU就可以执行。如果系统中有许多处于就绪状态的进程,通常将他们按一定的优先级策略排成一个队列,称该队列为就绪队列。
2)执行状态:指进程获得了CPU正在执行,在单处理机系统中,最多只有一个进程处于该状态,而在多处理机系统中,则有多个进程处于执行状态。
3)阻塞状态:指正在执行的进程,在执行过程中发生了某事件(如:I/O请求、申请缓冲区失败等)暂时无法继续执行的状态,系统将处于阻塞状态的进程也排成一个序列称为阻塞序列。(系统会根据阻塞原因不同分为多个阻塞系列)
三种基本状态之间的转换
-
分派(就绪态->运行态):OS从就绪队列中选择一个进程运行(调度算法),又被称为调度。
-
超时(运行态->就绪态):为了防止进程独占CPU,OS规定当程序运行时间达到规定最大值(时间片)时,响应中断将其放置到就绪队列中。
-
等待事件(运行态->阻塞态):由于进程请求某种事件(如:I/O设备)而进入阻塞状态。
-
事件发生(阻塞态->就绪态):当某种事件发生时,处于阻塞队列中等待这个事件的所有进程被转换到就绪队列中。
不能就绪至阻塞、阻塞至运行,因为:就绪进程没有占有处理机,也没有经过运行,其状态就不会改变。阻塞状态进程唤醒后要先进入就绪队列,才会被调度选中,进入了执行状态。
引入终止状态和创建状态:
引入挂起操作和进程状态的转换
引入挂起原语之后三个进程状态的转换:
引入挂起操作五个进程状态的转换
进程管理中的数据结构
-
进程控制块PCB的作用
为了便于系统描述和管理进程的运行,在OS的核心为每个进程专门定义了一个数据结构——进程控制块PCB。PCB作为进程实体的一部分,记录了操作系统所需的,用于描述进程的当前情况以及管理进程运行的全部信息,是操作系统中最重要的记录型数据结构。PCB的作用是使一个在多道程序环境下不能独立运行的程序(含数据)成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程。- PCB作为独立运行基本单位的标志。:PCB是OS感知进程存在的唯一标志,进程与PCB是一一对应的,PCB常驻内存。
- PCB能实现间断性运行方式。
- PCB提供进程管理所需要的信息。
- PCB提供进程调度所需要的信息。
- PCB实现与其他进程的同步与通信。
2.3进程控制
(一般由内核的原语来实现)
2.3.1操作系统内核
OS内核:将一些:
- 与硬件紧密联系
- 运行频率较高的模块
- 许多模块所公用的一些基本操作
都安装在紧靠硬件的软件层次中。将他们常驻内存,称为OS内核。
OS内核支撑功能:
1.支撑功能
- 中断处理
- 时钟管理
- 原语操作
2.资源管理功能
- 进程管理
- 设备管理
- 存储器管理
2.3.2进程的创建
- 申请空白PCB
- 为新进程分配运行所需的资源
- 初始化进程控制块
- 如果进程就绪队列能够插入新进程,便将其插入就绪队列
2.3.3进程的终止
引起进程终止的事件:
- 正常结束
- 异常结束
- 外界干预
2.3.4进程阻塞、唤醒、挂起、激活
-
阻塞:在进程的执行过程中,若发生了向系统请求共享资源失败、等待某种操作的完成、新数据尚未到达、等待新任务的到达等事件,进程便通过阻塞原语block将自己阻塞。(阻塞是一种主动行为)
-
唤醒:当阻塞的进程所等待的事件发生,进程就调用唤醒原语wakeup将等待该事件的进程唤醒。
(wakeup和block必须成对使用) -
挂起:当系统中出现了引起进程挂起的事件时,OS利用挂起原语suspend将指定进程或处于阻塞的进程挂起。
-
激活:active
2.4进程同步
2.4.1进程同步概念
- 临界资源:我们把一次仅允许一个进程使用的资源称为临界资源。
- 临界区:每个进程中访问临界资源的那段代码
- 软件同步机制应该准守的规则:空闲让进、忙则等待、有限等待、让权等待。
2.4.2硬件同步机制
(利用软件方法解决进程互斥进入临界区难度大有局限性,使用较少)
-
关中断
-
Test-and-set指令实现互斥
当lock=false时表示该资源空闲,lock=true时表示该资源正在被使用。 -
Swap指令实现互斥
信号量
- 信号量只能被两个标准的原语wait(S)和signal(S)来访问,也可以记为“P操作“和”V操作
- 原语是指完成某种功能且不被分割不被中断执行的操作序列,通常可由硬件来实现完成不被分割执行特性的功能。
管程
一个管程定义了一个数据结构和能为并发进程所执行(在该数据结构上)的一组操作,这组操作能同步进程和改变管程中的数据。
(更新中(可能不更了))