操作系统
第1章 操作系统引论
1.1 操作系统的目标和作用
1.1.1 操作系统的目标
在计算机系统上配置操作系统,其主要目标是:方便性、有效性、可扩充性和开放性。
1.1.2 操作系统的作用
1、作用:OS作为用户与计算机硬件系统之间的接口
2、计算机系统资源的管理者
-
资源为类:处理机、存储器、I/O设备以及文件(数据和程序)。
-
OS的主要功能:对这四类资源进行有效的管理。
(1) 处理机管理是用于分配和控制处理机;
(2) 存储器管理主要负责内存的分配与回收;
(3) I/O设备管理是负责/I/O设备的分配(回收)与操纵;
(4) 文件管理是用于实现对文件的存取、共享和保护。
值得进一步说明的是,当一台计算机系统同时供多个用户使用时,诸多用户对系统中共享资源的需求(包括数量和时间)有可能发生冲突。为此,操作系统必须对使用资源的请求进行授权,以协调诸用户对共享资源的使用
3、计算机资源的抽象
4、操作系统的发展过程的动力
1、不断提高计算机资源利用率
2、方便用户
3、元器件的更新换代
4、计算机体系结构的不断发展
5、不断提出新的应用需求
1.2 操作系统的发展过程
1.2.1 未配置操作系统的计算机系统
1.2.2 单道批处理系统
1.2.3 多道批处理系统
1.2.4 分时系统
1、概念一台计算机能连接多个用户终端,用户可通过各自的终端使用和控制计算机。
2、关键技术:及时接受、及时处理
3、特征:多路性、独立性、及时性、交互性
1.2.5 实时系统
1.2.6 分布式操作系统
1.3 操作系统的基本特性
1.3.1 并发
1、并行性:两个或多个事件在同一时刻发生。
2、并发性:两个或多个事件在同一时间间隔内发生。
在多道程序环境下,指在一段时间内,宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序运行。微观上这些程序只能是分时的交替执行。
1.3.2 共享
1、互斥共享
例子:目前打印机可不可以同时打印文档A和文档B,如果同时打印结果会如何?
2、同时共享
例子:当网络上的用户能否同时访问服务器上的某个文件?
1.3.3 虚拟
1、定义:是指通过某种技术把一个物理实体变为若千个逻辑上的对应物。
物理实体是实际存在的,“虚拟”物是用户感觉的东西。
2、操作系统中利用了多种虚拟技术,分别分别实现虚拟处理机、虚拟内存、虚拟外部设备和虚拟信道等。
1.3.4 异步
异步性:进程是以人们不可预知的速度向前推进
在多道程序环境下,允许多个进程并发执行,但只有进程在获得所需的资源后方能执行。
由于资源等因素的限制,使得进程的执行通常都不是”一气呵成”的,而是“停停走走”。
1.4 操作系统的主要功能
传统操作系统的功能
1、处理机管理功能
进程控制
进程同步
进程通信
调度
2、存储器管理功能
内存分配
内存保护
地址映射
内存扩充
第2章 进程的描述与控制
2.1 进程的描述
示例:
1、若系统中没有运行进程,是否一定没有就绪进程?为什么?
答:是,只有就绪队列中无进程时,CPU才可能处于空闲状态。
2、若系统中既没有运行进程,也没有就绪进程,系统中是否就没有进程?为什么?
答:否,因为系统中的所有进程都可能处于死锁状态,或者是阻塞状态。
3、在采用优先级进程调度时,运行进程是否一定是系统中优先级最高的进程?为什么?
答:优先级最高的进程可能处在阻塞队列。
2.2.3 挂起操作和进程状态的转换
1、挂起操作
- 该进程处于静止状态;
- 如果进程正在执行,则将暂停执行
- 如果进程处于就绪状态,则将暂不接受调度;
- 对应操作:激活操作。
2、引入原因
- 终端用户的需要
- 父进程请求
- 负荷调节的需要
- 操作系统的需要
3、状态转换(了解即可,不考)
- 活动就绪→静止就绪
- 活动阻塞→静止阻塞
- 静止就绪→活动就绪
- 静止阻塞→活动阻塞
2.2.4 进程管理中的数据结构
OS管理的四类数据结构:内存表、设备表、文件表、进程表
1、进程表(进程控制块)
- 是进程存在的唯一标志(类比学籍卡片)
- PCB常驻内存(操作系统启动后PCB就有,在系统区,内存里面的固定区域)
进程P 一一对应 PCB
Os 通过pcb管理 进程P
2、管理模式
- 线性方式
- 链接方式
- 索引方式(用得最多)
2.3 进程控制
2.3.1 操作系统内核
1、进程控制
- 进程管理中最基本的功能;
- 由OS的内核中的原语来实现的。
2、内核支撑功能
- 中断处理
内核最基本的功能操作,系统活动的基础; - 时钟管理
内核的一项基本功能;
如:时间片轮转调度、截至时间控制、最长运行时间控制 - 原语操作
原语(不可再分):由若干条指令组成,用于完成一定功能的一个过程。
原子操作:一个操作中的所有动作要么全做,要么全不做。
2.3.2 进程的创建
1、进程树
- 描述一个进程的家族关系的有向树。
- 子进程可继承父的资源,撤消时应归还给父进程,父的撤消会撤消全部子进程。
作业:比程序更广泛的概念,通常由程序、数据和作业说明书构成
2、引起进程创建的事件
- 用户登录
为终端用户建立一进程 - 作业调度
为被调度的作业建立进程 - 提供服务
如要打印时建立打印进程 - 应用请求
由应用程序建立多个进程
3、进程的创建
- 申请空白PCB:一个系统的PCB是有限的
- 为新进程分配其运行所需的资源
- 初始化PCB
- 将新进程插入就绪队列
2.3.3 进程的终止
1、引起进程终止的事件
- 正常结束:Halt logoff
- 异常结束:Protect error overtime
- 外界干预:
系统员kil进程
父进程终止
父进程请求
2、进程的终止过程
- 检查进程状态
- 执行态→终止,且置调度标志为真
- 有无子孙需终止
- 归还资源给其父进程或系统
- 从PCB队列中移出PCB
2.3.4 进程的阻塞与唤醒(浅学一下)
阻塞和唤醒的关系:
1、进程在自己的执行过程中,阻塞自己。
2、进程在执行过程中,可以唤醒其他进程。
3、阻塞和唤醒必须是一一对应的!!
2.3.5 进程的挂起与激活(浅学一下)
阻塞、唤醒一般由实现,而挂起与激活可由用户干预。
2.4 进程同步
2.4.1 进程同步的基本概念
现代os系统的一个主要特点:异步性。使得系统很混乱,程序执行具有不可再现性!!
示例:
1、同步:
- 并发进程在执行次序上的协调,以达到有效的资源共享和相互合作,使程序执行有可再现性。
- 间接相互制约关系:由于竞争相同资源引起的。
- 直接相互制约关系:由于相互合作而引起的。
2、临界资源
- 一次仅允许一个进程访问的资源。
- 引起不可再现性是因为临界资源没有互斥访问。
示例:
3、临界区
人们把在每个进程中访问临界资源的那段代码称为临界区(critical section)
4、遵循规则
- 空闲让进
表明临界资源处于空闲状态,应允许一个请求进入临界区的进程立即进入自己的临界区,以有效地利用临界资源。 - 忙则等待
已有进程进入临界区时,表明临界资源正在被访问,因而其它试图临界区的进程必须等待,以保证对临界资源的互斥访问。 - 有限等待
对要求访问临界资源的进程,应保证在有限时间内能进入自己的临界----避免“死等” - 让权等待
让出CPU----避免“忙等”
2.4.2 硬件同步机制(不学)
2.4.3 信号量机制
信号量:整型信号量、记录型信号量、AND信号量、信号量集
1、整型信号量
- 把整型信号量定义为一个用于表示资源数目的整型量S;
- 仅能通过两个标准的原子操作wait(S)和signal(S)来访问;
- 这两个操作分别被称为wait(S)-P、signal(S)-V操作。
P操作:P(S):表示申请一个资源;
V操作:V(S):表示释放一个资源。
2、记录型信号量
- 整型信号量不遵循“让权等待”的准则,而使进程处于“忙等”状态;
- 除了用于代表资源数目的整型变量value外,还增加了一个进程链表指针list,用于链接所有等待的进程。