第一章:操作系统引论(可以不看或者最后看)
-
操作系统目标与作用
-
操作系统目标
- 方便性
- 有效性
- 可扩充性
- 开放性
-
操作系统的作用
- os是用户与计算机硬件系统之间的接口
- os是是计算机系统资源文件、处理机、存储器、i/o设备管理者
- os是实现计算机资源的抽象表现
-
操作系统的前进动力
- 不断的方便用户
- 不断提高资源利用率
- 硬件不断升级
- 计算机体系结构不断优化
- 不断应对新的要求
-
-
操作系统的发展过程
-
操作系统发展历史
-
第1代(1946-1955年):电子管时代
-
第2代(1955年-1965年):晶体管时代
-
第3代(1965-1970年):中小规模集成电路时代
-
第4代(1970年-至今):大规模和超大规模集成电路时代
-
-
未配置操作系统的计算机系统
- 人工操作方式
-
早期的操作方式是由程序员将事先已穿孔的纸带(或卡片),装入纸带输入机(或卡片输入机),再启动它们将纸带(或卡片)上的程序和数据输入计算机,然后启动计算机运行。仅当程序运行完毕并取走计算结果后,才允许下一个用户上机。
- 缺点:1. 用户独占系统 2. CPU 等待人工操作
-
- 脱机输入\输出方式
- 程序员将穿孔的纸带通过外围机将纸带上的数据输入到磁盘里,再从磁盘上把数据高速调入内存,输出的结果再通过外围机到相应的输出设备输出。
-
这样可以解决人机矛盾以及CPU与I/O设备速度不匹配的矛盾。
- 人工操作方式
-
单道批处理
- 单道批处理系统的处理过程
-
为实现对作业的连续处理,需要先把一批作业以脱机方式输入到磁带上,并在系统中配上监督程序(Monitor),在它的控制下,使这批作业能一个接一个地连续处理。
- 目的:提高利用率和吞吐量
- 特点:1.单道性 2.顺序性 3.自动性
- 缺点:资源得不到充分利用
-
- 单道批处理系统的处理过程
-
多道批处理
- 多道程序设计的基本概念
-
在多道程序设计系统中,用户提交的作业先放在外存上,并排成一个队列,称为后备队列。
-
然后由作业调度程序按照一定的算法,从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源。
-
- 特点:1.多道性 2.无序性 3.调度性
- 优点:1.资源利用率高 2.资源吞吐量大
- 缺点:1.平均周转时间长 2.无交互能力
- 多道批处理系统需要解决的问题
- 处理机争用问题
- 内存分配和保护问题
- I/o设备分配问题
- 文件的组织和管理问题
- 作业管理问题
- 用户与系统的接口问题
- 多道程序设计的基本概念
-
分时操作系统
- 分时系统的引入
- 对于用户开始有了要求(比如银行):人–机交互,共享主机,便于用户上机,一个终端,一群人通过不同的用户终端使用。
- 分时系统的关机问题
-
主机以很短的时间片为单位,把CPU轮流分配给每个终端使用;直到所有作业被运行完。若某个作业在分配给 它的时间片内未完成计算,则该作业暂停运行,把处理器让给其他作业使用,等待下一轮再继续使用。若终端数量不多 ,每个终端很快就能重新获得CPU,使得每个终端得到及时响应。
- 及时接收 配置多路卡和缓冲区
- 及时处理 作业直接进入内存和采用轮转运行方式。
-
- 分时系统的特征
-
多路性。 允许一台主机上联接多台终端,系统按分时原则为每个用户服务;
-
独立性。 每个用户各占一个终端,独立操作,互不干扰;
-
及时性。 用户的请求能在很短的时间内获得响应;
-
交互性。 用户可通过终端与系统进行广泛的人机对话。
-
-
缺点:
- 不能有效处理紧急任务操作系统对各个用户 / 作业都是完全公平的,循环地为每个用户 /作业服务一个时间片,不区分任务的紧急性
- 分时系统的引入
-
实时操作系统
-
所谓“实时”,是表示“及时”,而实时系统是指系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
- 应用需求:1.实时控制 2.实时信息处理
- 实时系统的类型:1.工业(武器)控制系统 2.信息查询系统 3. 多媒体系统 4. 嵌入式系统
- 实时任务类型
-
周期性实时任务和非周期性实时任务
-
周期性实时任务:在实时操作系统中,周期性实时任务是指那些按照固定时间间隔重复执行的任务,通常用于定时监控和控制系统中对时间要求严格的功能。
-
非周期性实时任务:在实时操作系统中,非周期性实时任务是指那些在不确定的时间点由外部事件触发的任务,适用于处理突发事件或响应外部中断。
-
-
硬实时任务和软实时任务
- 硬实时系统:必须在绝对严格的规定时间内完成处理。
- 软实时系统:能接受偶尔违反时间规定。
-
- 实时系统的特征
- 多路性
- 独立性
- 及时性
- 交互性
- 可靠性(实时性系统比分时性系统高)
- 优点: 能够优先响应一些紧急任务,某些紧急任务不需时间片排队。
-
-
微机操作系统的发展
- 按照字长分
- 字:计算机处理数据的一个基本单位。一个字的大小由处理器的架构决定,通常由多个比特(bit)组成。
- 字长:是指一个字的比特数,通常表示处理器一次可以处理的最大数据长度。字长越大,处理器在一次操作中可以处理的数据量也越大。
- 常是8的倍数,8位,16位,32位,64位
- 按照用户方式分
-
单用户单任务操作系统(Single-User Single-Task Operating System)
- 仅支持单个用户一次运行一个任务。
- 适用于资源有限的设备,系统结构简单。
- cp/m,ms-dos
-
单用户多任务操作系统(Single-User Multi-Tasking Operating System)
- 支持单个用户同时运行多个任务。
- 提供后台任务处理,提升用户操作效率,适合桌面环境。
- 早期win
-
多用户多任务操作系统(Multi-User Multi-Tasking Operating System)
- 允许多个用户同时登录系统,并各自独立运行多个任务。
- 系统提供资源隔离,适合服务器和大型计算机环境。
- unix,linux
-
- 按照字长分
-
-
操作系统的基本特性
- 基本特性:并发,共享,虚拟,异步
- 详解
- 并发
- 并行与并发
- 并行:两个或多个事件在同一时刻发生
- 并发:两个或多个事件在同一时间间隔内发生(宏观),微观上是不可能同时间点同时发生。
-
并发是提高系统资源利用率,增加系统的吞吐量的主要手段单处理机并发执行和多处理机的并发/并行执行
-
进程
-
进程是操作系统中正在执行的一个程序的实例。它包含了程序的代码、所需的数据、执行时的状态以及资源(如内存、文件、I/O设备等)。一个程序在运行时可以启动一个或多个进程,每个进程独立调度和执行。
-
引入进程这一概念可实现并发执行
-
- 并行与并发
-
共享
-
资源共享也称为资源复用,是指系统中的资源可供内存中多个并发执行的进程共同使用。
-
分类
-
互斥共享方式
- 临界资源:一段时间内只允许一个进程访问的资源。
- 例如:打印机,系统表格
- 同时访问方式
-
系统中还有另一类资源,允许在一段时间内由多个进程“同时”对它们进行访问。这里所谓的“同时”,在单处理机环境下是宏观意义上的,而在微观上,这些进程对该资源的访问是交替进行的。
-
例如:共享代码,共享库等
-
-
-
虚拟
-
在os中,通过某种技术将一个物理实体变为若干个逻辑上的对应物的功能称为虚拟。
-
分类
- 时分复用:虚拟处理机(多道程序)技术、虚拟设备技术
- 空分复用:多道程序共享内存,多文件共享磁盘, 用以提高存储空间的利用率
-
- 异步
-
在多道程序环境下,系统允许多个进程并发执行。在单处理机环境下,由于系统中只有一台处理机,因而每次只允许一个进程执行,其余进程只能等待。
可见,由于资源等因素的限制,使进程的执行通常都不可能“一气呵成”,而是以"停停走走”的方式运行。
-
-
- 并发
-
操作系统的主要功能
- 处理机(进程)管理功能
- 主要功能:创建和撤销进程,对进程的运行进行协调,实现进程之间的信息交换,以及按照一定算法把处理机分配给进程。
- 进程控制;进程同步;进程通信;调度;
- 存储管理功能
- 主要任务:是位多道程序的运行提供良好环境,提高存储器的利用率,方便用户使用,并可以在逻辑上扩展内存。
- 内存分配;内存保护;地址映射;内存扩充;
- 设备管理功能
- 主要任务:完成用户进程提出的i/o请求,位用户提供相应的设备,并完成指定的i/o操作,提高CPU与i/o设备利用率,提高i/o速度,方便用户使用i/o设备。
- 缓冲管理;设备分配;设备处理
- 文件管理功能
- 主要任务:对用户文件与系统文件进行管理,方便用户使用的同时保证文件的安全性。
- 目录管理;文件的读写管理与保护;文件存储空间管理
- 操作系统与用户的接口
- 用户接口
-
联机用户接口;脱机用户接口;图形用户接口
-
- 程序接口
-
程序接口是为用户程序在执行中访问系统资源而设置的,是用户程序取得操作系统服务的唯一途径。
-
- 用户接口
-
现代操作系统的新功能
-
系统安全
- 认证技术
- 密码技术
- 访问控制技术
- 反病毒技术
-
网络的功能和服务
- 网络通信
- 资源管理
- 应用互操作
-
支持多媒体
- 接纳控制功能。
- 实时调度。
- 多媒体文件的存储
-
- 处理机(进程)管理功能
-
os结构设计
-
传统结构操作系统
-
介绍: 传统结构操作系统通常采用单体内核设计,将所有操作系统功能集成在一个内核中。这种设计在早期计算机中非常普遍,系统的所有服务和管理功能都在一个单一的内核中实现,具有高效的性能但也存在复杂性和维护困难的问题。
- MS-DOS:早期的单体内核操作系统,只支持单用户单任务,功能简单但运行效率高。
- UNIX(早期版本):经典的单体结构,所有系统功能集中在内核中,功能全面但系统复杂。
-
-
现代结构操作系统
-
介绍: 现代结构操作系统采用了更先进的设计理念,如模块化和微内核设计。它们的目标是提高系统的灵活性、可维护性和扩展性,同时支持更多的功能和服务。
- Linux(现代版本):采用模块化设计,支持动态加载和卸载模块,提升了系统的灵活性和扩展性。
- Windows 10/11:现代化的操作系统,结合了模块化设计、多任务处理和虚拟化技术,提供丰富的功能和良好的用户体验。
- macOS:结合了微内核和模块化设计,提供稳定的系统环境和优良的用户体验,适用于个人计算和创作工作。
-
-
无结构操作系统
-
介绍: 无结构操作系统通常指那些没有明确层次或模块化设计的操作系统,这种设计通常较为早期或实验性,可能存在结构混乱和维护困难的问题。
- 早期实验性操作系统:一些早期的操作系统没有明确的结构设计,通常用于学术研究或实验目的,系统功能和服务可能没有清晰的划分。
-
-
模块化结构操作系统
-
介绍: 模块化结构操作系统将系统功能分解为多个独立的模块,每个模块负责特定的功能。模块可以在运行时动态加载或卸载,提供了灵活的系统扩展和维护方式。
- Linux:内核支持模块化设计,能够动态加载和卸载模块,支持各种设备驱动和文件系统。
- Solaris:采用可插拔的内核模块设计,允许功能扩展和管理,适用于企业级服务器环境。
-
-
分层次结构操作系统
-
介绍: 分层次结构操作系统将系统功能划分为多个层次,每一层提供特定的服务,并依赖于下层提供的功能。这种设计使得系统结构清晰,易于维护和扩展。
- THE操作系统:由Edsger Dijkstra设计,将操作系统划分为多个层次,每层功能明确,设计清晰。
- Windows NT:采用分层设计,系统服务和用户界面被划分为不同层次,提高了系统的可扩展性和管理性。
-
- 微内核OS结构
- 内核架构划分
-
微内核
-
定义: 微内核设计将操作系统内核的功能最小化,只保留最基本的系统服务,如进程管理、基本的内存管理和低级别的硬件接口。其他功能,如文件系统、网络协议和设备驱动程序,通常运行在用户空间的服务器中。
-
特点:
- 最小内核功能: 内核仅包含最基本的功能,其他服务由用户空间的服务器提供。
- 高可维护性: 内核较小,易于维护和扩展,修改或更新某一功能不影响整个系统。
- 高安全性: 服务分离降低了系统出错的风险,单个服务的崩溃不会影响整个系统。
- 性能开销: 内核与用户空间的通信需要通过消息传递机制,可能导致性能开销较大。
-
示例:
- Minix:早期的微内核操作系统,用于教育和研究。
- QNX:一个商用微内核操作系统,广泛应用于嵌入式系统和实时系统。
- Mach:一个实验性的微内核,曾被用于NeXTSTEP和部分现代操作系统。
-
-
宏内核
-
定义: 宏内核设计将操作系统的所有核心功能集成在一个单一的内核中。这包括进程管理、内存管理、文件系统、设备驱动程序和网络协议等。
-
特点:
- 集成的功能: 内核包括所有核心服务,功能全面。
- 高效性: 内核内部的服务可以直接调用,减少了通信开销,通常性能较好。
- 复杂性: 内核较大,功能复杂,出错的可能性高,修改和维护较为困难。
- 扩展性差: 增加新功能或修改现有功能可能需要重新编译整个内核。
-
示例:
- Linux(传统版本):虽然现代Linux支持模块化,但其内核结构依然是宏内核设计。
- Unix(早期版本):经典的宏内核设计,所有核心功能集成在一个内核中。
- Windows NT:尽管Windows NT采用了分层次设计,但其核心功能集成在宏内核中。
-
- 总结:
- 宏内核:所有核心功能集成在一个内核中,提供高效性能但维护和扩展较为复杂。
- 微内核:将内核功能最小化,其他功能在用户空间提供,具有高可维护性和安全性,但可能存在性能开销。
-
- 微内核os基本概念
-
总够小的内核
-
基于客户\服务器模式
-
应用“机制与策略分离”原理
-
采用面向对象技术
-
-
微内核基本功能
-
现在一般都采用“机制与策略分离”的原理,将机制部分以及与硬件紧密相关的部分放入微内核中。
-
进程(线程)管理
-
低级存储器管理
-
中断和陷入处理
-
-
微内核优点与缺点
-
优点
-
微内核OS结构建立在模块化、层次化结构的基础上的并采用了客户/服务器模式和面向对象的程序设计技术。
-
提高了系统的可扩展性
-
增强了系统的可靠性
-
可移植性强
-
提供了对分布式系统的支持
-
融入了面向对象技术
-
-
缺点
-
较之早期的操作系统,微内核操作系统的运行效率有所降低。
-
原因:在完成一次客户对OS提出的服务请求时,需要利用消息实现多次交互和进行用户/内核模式与上下文的多次切换。
-
-
- 内核架构划分
-