目录
第一章
什么是OS?
操作系统是一组控制和管理计算机软硬件资源、合理地对各类作业进行调度以及方便用户使用的程序集合。
操作系统是位于硬件层(HAL)之上,所有其它系统软件层之下的一个系统软件,使得管理系统中的各种软件和硬件资源得以充分利用,方便用户使用计算机系统。
操作系统的目标
方便性:
- 计算机只能识别0、1
- 用户熟悉的是各种语言
- 命令和图形界面
有效性:
- 长期是最重要的目标
- 提高系统资源利用率
- 提高系统吞吐量
可扩充性:
- 便于修改和增加功能(如何设计?)
开放性:
- 系统能支持世界标准规范
批处理、分时、实时系统比较
批处理系统
单批道处理系统
单道程序运行情况如下:
-
名称由来:内存中始终仅存一道作业运行;
-
主要特征:自动性、顺序性、单道性;
-
主要优点:减少人工操作,解决了作业的自动接续;
-
主要缺点:平均周转时间长,没有交互能力。
多道批处理系统
上图为四道程序运行情况
- 定义:在内存中存放多道作业运行,运行结束或出错,自动调度内存中的另一道作业运行;
- 好处:
- 提高CPU的利用率;
- 提高内存和I/O设备利用率;
- 增加系统吞吐率;
- 特征:多道性、无序性、调度性;
- 主要优点:提高了资源利用率和吞吐能力;
- 主要缺点:平均周转时间长,没有交互能力。
分时系统
- 产生:人机交互、共享主机、便于用户上机
- 关键问题:及时接收、及时处理
- 特点:多路性、独立性、及时性、交互性
实时系统
- 定义:是计算机及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致的运行。
- 举例:工业控制、军事控制、医疗控制、航班订票、联机情报检索
- 分类:周期性非周期性、软硬实时任务
- 特征:多路性、独立性、交互性、可靠性、及时性
OS 的作用
- 作为用户与计算机硬件系统之间的接口
- 作为计算机系统资源的管理者
- 用作扩充机器
OS 的四个基本特性⭐
OS 的基本类型(了解即可)
- 并发性(最重要的特性)
并行是指两或多个事件在同一时刻发生 并发是两或多个事件在同一时间间隔内发生 - 共享性
系统中资源可供内存中多个并发执行的进程共同使用 互斥共享:一段时间只允许一个进程访问该资源 同时访问:微观上仍是互斥的 并发和共享是操作系统的两个最基本的特征,它们又是互为存在的条件 - 虚拟性
时分复用:虚拟处理机技术, 虚拟设备技术 空分复用:虚拟存储 通过某种技术把一个物理实体变为若干个逻辑上的对应物。若n是某一物理设备所对应的虚拟的逻辑设备数,则虚拟设备的速度必然是物理设备速度的1/n。 - 异步性
停停走走 运行进度不可预知 -
OS 的五大功能⭐
- 处理机管理(CPU)
- 存储器管理
- 设备管理
- 文件管理
- 方便用户使用的用户接口。
-
OS 的基本类型(了解即可)
- 批处理系统
- 分时系统
- 实时系统
第二章 进程管理
进程和线程的概念、比较、
进程
- 进程是程序的一次执行
- 进程是一个程序及其数据在处理机上顺序执行时所发生的活动
- 进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位
线程
轻型进程
比较
- 调度的基本单位
在引入线程的OS 中,已把线程作为调度和分派的基本单位,因而线程是能独立运行的基本单位。当线程切换时,仅需保存和设置少量寄存器内容,切换代价远低于进程。 - 并发性
在引入线程的OS 中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间亦可并发执行,甚至还允许在一个进程中的所有线程都能并发执行。同样,不同进程中的线程也能并发执行。 - 拥有资源
线程本身并不拥有系统资源,而是仅有一点必不可少的、能保证独立运行的资源。
属于同一进程的所有线程都具有相同的地址空间。 - 独立性
在同一进程中的不同线程之间的独立性要比不同进程之间的独立性低得多。 - 系统开销
在一些OS 中,线程的切换、同步和通信都无需操作系统内核的干预。 - 支持多处理机系统
对于多线程进程,就可以将一个进程中的多个线程分配到多个处理机上,使它们并行执行,这无疑将加速进程的完成。
进程的基本状态
三种状态
就绪状态
当进程已分配到除CPU以外的所有必要资源后,只要再获得CPU,便可立即执行。(万事俱备,只欠CPU)
执行状态
进程已获得CPU,其程序正在执行。(获得CPU)
阻塞状态
正在执行的进程由于发生某事件而暂时无法继续执行时,便放弃处理机而处于暂停状态,把这种暂停状态称为阻塞状态,有时也称为等待状态。(无法继续执行,放弃处理机处于暂停状态)
PCB 的作用
- 是进程存在的唯一标志
- PCB (Process Control Block) 常驻内存
PCB 内的信息
- 进程标识符
- 处理机状态
- 进程调度信息
- 进程控制信息
进程控制的原语操作
Create()
- 申请空白 PCB
- 为新进程分配资源
- 初始化进程控制块
- 初始化标识信息
- 初始化处理机状态信息
- 初始化处理机控制信息
- 将新进程插入就绪队列
终止
- 根据进程ID,检索进程PCB,读取进程信息
- 若被终止进程处于执行状态,则立即终止进程,并置调度指示符为真,用于指示该进程被终止后重新进行调度
- 终止子孙进程
- 归还资源
- 移出已终止进程
block()
- 进程通过调用阻塞原语
block()
阻塞自己 - 更改进程状态,并插入阻塞队列
- 处理机重新调度,分配给另一就绪进程
wakeup()
- 将进程移出阻塞队列,并更改PCB中现行状态
- 将PCB插入就绪队列
suspend()
- 首先检查被挂起进程的状态,若处于活动就绪状态,便将其改为静止就绪
- 对于活动阻塞状态的进程,则将之改为静止阻塞状态
active()
- 将进程从外存调入内存,检查该进程的现行状态
- 若是静止就绪,便将之改为活动就绪;若为静止阻塞,便将之改为活动阻塞
进程切换
- 保存进程上下文环境
- 更新当前运行进程的控制块内容,将其状态改为就绪或阻塞状态
- 将进程控制块移到相应队列
- 改变需投入运行进程的控制块内容,将其状态变为运行状态
- 恢复需投入运行进程的上下文环境
进程互斥、临界区、进程同步的基本概念、同步准则
概念
进程互斥
任何时刻,只允许一个进程进入临界区,以此实现进程对临界资源的互斥访问。
临界区
访问临界资源的那段代码称为临界区。
进程同步
使并发执行的主进程之间能有效地共享资源和相互合作,从而使程序的执行具有可再现性。
同步准则
- 空闲让进
- 忙则等待
- 有限等待
- 让权等待
信号量机制
信号量(Semaphores)机制:是一种卓有成效的进程同步工具
- 整型信号量
- 记录型信号量
- AND 型信号量
- 信号量集
信号量应用实现
- 利用信号量实现进程互斥
- 利用信号量实现前趋关系
进程间通信的原理和实现方法
原理
进程之间的信息交换
- 共享存储器系统
- 消息传递系统
- 管道(Pipe)通信
实现方法
- 直接通信方式
Send(Receiver,message);
Receive(Sender,message);
- 间接通信方式
Send(mailbox, message);
Receive(mailbox, message);