操作系统(1)复习
本文最后更新于:2023年11月7日 下午
第一章
35:39
1.1.1 操作系统的目标
4个目标:方便性和有效性是设计OS时最重要的两个目标。
-
方便性
- 无OS时需要编写机器码,而OS可以让用户使用高级语言。
-
有效性
-
第一层含义:提高系统资源的利用率
-
第二层含义:提高系统的吞吐量
-
-
可扩充性
- 可扩充性的好坏与OS的结构有紧密的联系:无结构 => 模块化 => 层次化 => 微内核
-
开放性
1.1.2 操作系统的作用
- OS作为用户和计算机硬件系统之间的接口
- 用户可以用三种方式使用系统:
- 命令
- 系统调用
- 图标——窗口
- 用户可以用三种方式使用系统:
- OS作为系统资源的管理者
- 系统资源有4种:处理机、存储器、I/O设备、文件(数据和程序)
- OS的主要功能也是对这4类资源进行有效的管理:
- 处理机管理:用于分配和控制处理机
- 存储器管理:主要负责内存的分配与回收
- I/O设备管理:负责I/O设备的分配(回收)与操纵
- 文件管理:实现对文件的存取、共享和保护。
- OS实现了对计算机资源的抽象
- 扩充机器 或 虚机器:它向用户提供了一个对硬件操作的抽象模型。用户无需了解物理接口实现的细节。(第一个层次的抽象)
- 又可在第一层软件(I/O管理软件)上再覆盖一层用于文件管理的软件,由它实现对文件操作的细节,并向上层提供一组对文件进行存取操作的数据结构及命令。(第二个层次的抽象)
- 随着抽象层次的提高,抽象接口所提供的功能就越强,用户使用起来也越方便。
1.2 单道和多道
1.2.2 单道批处理系统
为了提高计算机利用率,应尽量保持系统的连续运行(脱机输入/输出Off-Line I/O方式):
- 减少CPU空闲时间
- 提高I/O速度
单道批处理系统特点:
- 一次一个作业
- 顺序执行
- 不存在作业和进程的切换
- 系统配上监督程序(monitor)控制作业的连续处理
主要缺点:系统资源得不到充分利用
1.2.3 多道批处理系统
- 没有交互
- 有作业调度问题
- 目的是:进一步提高资源的利用率和系统吞吐量
- 后备队列:用户提交的作业先存放在外存上,并排成一个队列。
- 共享CPU和系统中的各种资源
1.2.6操作系统的发展
unix和linux是多用户多任务操作系统。
unix不是微内核。
linux是unix的一个重要变种,最初由芬兰学生Linus Torvalds针对Intel80386开发。
1.5.4 微内核
结构,3个基本功能,优点
基于客户/服务器模式的微内核结构,将操作系统划分为两大部分:微内核和多个服务器。
微内核结构:
- 足够小的内核
- 在微内核操作系统中,内核是指:精心设计的、能实现现代OS最基本核心功能的小型内核
- 微内核并非一个完整的OS,而只是将操作系统中最基本的部分放入微内核 => 所以微内核很小:
- ①与硬件紧密相关的部分
- ②一些较基本的功能
- ③客户和服务器之间的通信
- 基于客户/服务器模式
- 应用“机制与策略分离”原理
- 机制:实现某一功能的具体执行结构
- 策略:在机制的基础上借助于某些参数和算法来实现该功能的优化,或达到不同的功能目标
- 传统OS:机制位于OS的内核的较低层,策略位于OS的内核的较高层
- 微内核:通常将机制放在OS的微内核中 => 所以微内核很小
- 采用面向对象技术
微内核的基本功能:
- 进程(线程)管理
- 低级存储器管理
- 中断和陷入处理
微内核操作系统的优点:
- 提高了系统的可扩展性
- 微内核OS的许多功能是由相对独立的服务器软件来实现的
- 增强了可靠性
- 一方面是由于微内核是通过精心设计和严格测试的
- 另一方面,它提供了规范而精简的应用程序接口(API)
- 此外,所有服务器都是运行在用户态,服务器于服务器之间采用的是消息传递通信机制,当某个服务器出现错误时,不会影响内核和其他服务器
- 可移植性强
- 所有于特定CPU和I/O设备硬件有关的代码,均放在内核和内核下面的硬件隐藏层中,而操作系统其他绝大部分——各种服务器,均于硬件平台无关。
- 提供了对分布式系统的支持
- 客户和服务器之间、服务器和服务器之间的通信采用消息传递机制,只要在分布式系统中赋予所有进程和服务器唯一的标识符,再配置一张系统映射表,就可以实现分布式系统。
- 融合了面向对象技术
微内核操作系统存在的问题:
- 最主要的问题是,较之早期的操作系统,微内核操作系统的运行效率有所降低。
第二章 进程的描述与控制
第十周第一节课41:40
修正:前驱图不用管41:12
2.2 进程
2.2.1 进程的定义和特征
要和线程比较
- 程序段、相关的数据段和PCB三部分构成了进程实体(进程映像)。
进程的定义:
- 进程是程序的一次执行
- 进程是一个程序及其数据在处理机上顺序执行时所发生的活动
- 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
- 在引入了进程实体的概念后,我们可以把传统OS中的进程定义为:“进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。”
进程的特征:
进程和程序是2个截然不同的概念,除了进程具有程序所没有的PCB外,还具有下面特征:
- 动态性(最基本的特征)
- 进程的实质是进程实体的执行过程
- 动态性还表现在:“它由创建而生,由调度而执行,由撤销而消亡。” => 所以进程实体有一定的生命期,而程序只是一组有序指令的集合,并存放在某种介质上,其本身不具有活动哦的含义,因而是静态的。
- 并发性
- 是指多个进程实体同时存在于内存中,且能在一段时间内同时运行。 => 也是引入进程的目的
- 并发性是进程的另一重要特征,也是OS的重要特征
- 程序(没有建立PCB)是不能参与并发执行的
- 独立性
- 进程实体是一个能独立运行、独立获得资源和独立接受调度的基本单位
- 凡未建立PCB的程序都不能作为一个独立的单位参与运行
- 异步性
- 异步性导致传统程序若参与并发执行,会产生其结果的不可在现行。=> 所以引入进程的概念,并配置进程同步机制。
2.2.2 3种状态
什么是就绪、执行、阻塞状态
三者如何转换:为什么+何时
第十周第二节课00:00
注意平板上的笔记。
状态转换最常见的原因是:时间片结束(也有其他原因)
一个程序的时间片结束后不会唤醒其他进程(不像信号量,信号量会用PV操作唤醒其他进程)
程序唤醒后要就绪才能执行,唤醒后并不能马上执行。
创建状态、终止状态和挂起操作老师好像没提到?还是看看书吧。
2.3.3和2.3.4 影响进程终止、阻塞和唤醒的事件
2.3.2与进程创建相关的调用及其含义 (实验课上讲过)
wait()
sleep()
2.4 进程同步
遵守的4个规则
2.4.1 临界区的概念
2.4.3 信号量机制
同步主要看信号量机制
原子操作:wait(),signal()(也被成为PV操作)
信号量机制是低级的通信原理
AND型信号量了解即可。
2.5.1 生产者—消费者问题
2.6 管道
管道是一种重要的进程通信方式,是一种特殊类型的文件。
管道是指:用于连接一个读进程和一个写进程以实现它们之间通信的一个共享文件,又名pipe文件。
管道机制必须提供三方面的协调能力:①互斥;②同步;③确定对方存在。
2.6.2 信箱
信箱是一种间接的通信方式。
2.7 线程
课本P82-83:线程和进程的比较
记录点[24:55]
2.8 线程的实现
只看前两种,并了解它们的区别,比较:调度方面、并发性、拥有的资源、独立性、系统开销。
第三章 处理机调度与死锁
3.1.2 周转时间的概念和计算
3.2.3 短作业优先调度算法
3.2 4 高响应比优先调度算法
40:00
在讲例题
3.3.2 轮转调度算法
3.3.3 优先级调度算法
3.3.5 多级反馈队列调度算法
把机制记下来,把优缺点分析清楚
处理机并不是任何时候都在运行状态。
3.5 死锁
主要原因归纳为①竞争资源;②进程推进顺序不当。
3.5.3死锁的定义、必要条件和处理方法
3.6 预防死锁
对资源类型排序=>破坏“循环等待”条件。
3.7 避免死锁
银行家算法的例子
3.8.2 死锁的解除
第九章 操作系统接口
9.4 系统调用
系统调用基于中断机制
判断、选择、填空、简答、综合。
综合类:银行家算法,信号量,作业调度,短作业优先,高响应比优先,以及给一个程序,让你判断程序的意思(实验课内容)。