前言
关于操作系统,
CSDN有很多的优秀博客。
在这里,
本文摘取其他博客内容,
并附上相关链接,
如有侵权,
联系删除,
仅供学习交流使用
推荐
第一章 操作系统引论
1.1 操作系统的目标和作用
1.1.1 操作系统的目标
1.方便性
无OS ------- 用户要直接在计算机硬件上运行程序 ------ 需用机器语言书写程序
有OS ------- 系统可使用编译命令将用户采用高级语言书写的程序翻译成机器代码 或者 直接通过OS所提供的各种命令操纵计算机系统
2.有效性
第一层含义:提高系统资源的利用率 (推动OS发展的最主要动力)
第二层含义:提供系统的吞吐量
有效性和方便性是设计OS时最重要的两个目标。
3.可扩充性
为了适应计算机硬件、体系结构以及计算机应用发展的需求
4.开放性
系统能遵循世界标准规范,特别是遵循开放系统互连OSI国际标准。
1.1.2 操作系统的作用
1.作为用户与计算机硬件系统之间的接口
OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统。
用户可通过三种方式使用计算机,即通过命令方式、系统调用方式、图标-窗口方式。
2.OS作为计算机系统资源的管理者
四类资源:处理机、存储器、设备、文件(数据和程序)
处理机管理:分配、控制 处理机
存储器管理:分配、回收 内存
I/O设备管理:分配(回收)、操纵 I/O设备
文件管理:存取、共享、保护 文件
3.OS实现了对计算机资源的抽象
完全无软件的计算机系统(裸机) ------ 向用户提供硬件接口 ----- 用户需要对物理接口的实现细节有充分了解 ----- 难于广泛利用
为了方便使用I/O设备 ------ 裸机上覆盖一层I/O设备管理软件 ---- 向上将I/O设备抽象为一组数据结构以及一组I/O操作命令 ----- 用户无需关心I/O具体实现 (覆盖一层软件实现了对计算机硬件操作的一个层次的抽象)
通常把覆盖了上述软件的机器称为扩充机器或虚机器。它向用户提供了一个对硬件操作的抽象模型。
用户可利用该模型提供的接口使用计算机,无需了解物理接口实现的细节,从而使用户更容易地使用计算机硬件资源。
OS是铺设在计算机硬件资源上的多层软件的集合,它们不仅增强了系统的功能,还隐藏了对硬件操作的具体细节,实现了对计算机硬件操作的多个层次的抽象模型
1.1.3 操作系统发展的主要动力
推动操作系统发展的主要动力
1.不断提高计算机资源利用率
2.方便用户
3.器件的不断更新迭代
4.计算机体系结构的不断发展
5.不断提出新的应用需求
1.2 操作系统的发展过程
1.2.1 未配置操作系统的计算机系统
1.人工操作方式
程序员将已穿孔的纸带 ---- 装入纸带输入机 ---- 启动纸带输入机将纸带上的程序和数据输入计算机 ---- 启动计算机运行 ---- 程序运行完毕并取走计算结果 ---- 下一个用户上机
缺点:
用户独占全机
CPU等待人工操作 ---- 人工操作方式严重降低了计算机资源的利用率,此即人机矛盾。
2.脱机输入/输出方式
为了解决人机矛盾及CPU和I/O设备速度不匹配的矛盾
输入设备 ---- 外围机 ---- 磁盘
事先将装有用户程序和数据的纸带装入纸带输入机 ---- 外围机控制下,把纸带上的数据输入到磁盘上
CPU需要这些程序和数据时,再从磁带上高速地调入内存
CPU需要输出时,CPU把数据直接从内存高速地输送到磁带上
磁盘 ---- 外围机 ---- 输出设备
在外围机的控制下,磁带上结果通过相应输出设备输出。
脱机: 程序和数据的输入输出都是在外围机的控制下完成的,在脱离主机的情况下进行的
优点:
减少了CPU的空闲时间
提高了I/O速度
把在主机的直接控制下进行输入/输出的方式 ---- 联机输入/输出方式
1.2.2 单道批处理系统
1. 单道批处理系统
为实现对作业的连续处理,需要先把一批作业以脱机方式输入到磁带上,并在系统中配上监督程序,在其控制下,这批作业一个接一个地连续处理。
监督程序将第一个作业装入内存 ---- 把运行控制权交给该作业 ----- 作业处理完成 ,将控制权交还给监督程序 ---- 监督程序把下一个作业装入内存 ---- ······· ---- 直到磁带上的所有作业全部完成
虽然系统对作业的处理是成批进行的,但是内存中始终只保持一道作业,故称为单道批处理系统。
缺点
在内存中仅有一道程序,系统中资源得不到充分利用
为了能在系统中运行较大的作业 ---- 配置了较大容量的内存 ----- 实际上大多数作业都是中小型 ---- 内存浪费
为了满足各种类型的作业需求 ---- 配置多种类型的I/O设备 ---- 资源浪费
1.2.3 多道批处理系统
1.多道批处理系统
用户所提交的作业先存放在外存上,排成一个队列 ----- 后备队列
作业调度程序按一定算法 ,从后备队列选择若干个作业调入内存,让其共享CPU和系统中的各种资源
2.优缺点
1.资源利用率高
2.系统吞吐量大 ----- (1) CPU和其他资源保持忙碌状态 (2)仅当作业完成时或运行不下去时才进行切换,系统开销小
3.平均周转周期长 ---- 作业要排队一次进行处理
4.无交互能力
3.需要解决的问题
处理机争用问题
内存分配和保护问题
I/O设备分配问题
文件组织和管理问题
作业管理问题
用户与系统的接口问题
操作系统是一组 能有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的 程序的集合。
1.2.4 分时系统(Time Sharing System)
1.分时系统
解决用户的需求:
1.人—机 交互
希望独占全机并对它进行直接控制,以便能方便地对程序中的错误进行修改。
2.共享主机
用户在共享一台主机时,每人都希望能像独占时一样,不仅可以随时与计算机进行交互,而且还不会感觉到其他用户的存在。分时系统,即在一台主机上连接了多个配有显示器和键盘的终端并由此所组成的系统,该系统允许多个用户同时通过自己的终端,以交互方式使用计算机,共享主机中的资源。
2.实现
系统首先必须能提供多个终端,同时给多个用户使用。
其次,当用户在自己的终端上键入命令时,系统应能及时接收,并及时处理该命令,再将结果返回给用户。
此后,用户可根据系统返回的相应情况,再继续键入下一条命令,此即 人-机交互。
1) 及时接收
及时接收多个用户键入的命令和数据 ---- 多路卡 ---- 实现分时多路复用
为了能使从终端上输入的数据被依次逐条地进行处理,还需要为每一个终端配置一个缓冲区,用来暂存用户键入的命令(或数据)。
2) 及时处理
人机交互的关键在于,用户键入命令后,能对自己的作业及其运行及时地实施控制或进行修改
因此,各个用户的作业都必须驻留在内存中,并能频繁地获得处理机运行。
彻底改变批处理的运行方式,改用下面的方式:
1)作业直接进入内存 ---- 作业在磁盘上是不能运行的
2)采用轮转运行方式 ---- 时间片
3.分时系统的特征
1) 多路性 多个用户共享一台计算机
2) 独立性 每个用户互不干扰
3) 及时性 用户请求能在很短时间内获得响应
4) 交互性 人机对话
1.2.5 实时系统(Real Time System)
1.实时系统
实时系统的正确性,不仅由计算的逻辑结果来确定,而且还取决于产生结果的时间。
实时系统最主要的特征,是将时间作为关键参数。
实时系统,是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
2.实时任务类型
1) 周期性实时任务和非周期性实时任务。
周期性任务 ---- 周期运行
非周期任务 ---- 无明显周期性,必须联系着一个截止时间
可分为开始截止时间、完成截至时间
2) 硬实时任务和软实时任务
硬实时任务 ---- 系统必须满足任务对截止时间的要求,否则会出现难以预测的后果
软实时系统 ---- 若偶尔错过了截止时间,对系统的影响不会太大
3.比较
实时系统要求系统高度可靠,因为任何差错都可能带来无法预料的灾难性后果 ---- 采取了多级容错措施
1.2.6 微机操作系统的发展
1. 单用户单任务操作系统
只允许一个用户上机,且只允许用户程序作为一个任务运行
2. 单用户多任务操作系统
只允许一个用户上机,但允许用户将程序分为若干个任务,使它们并发执行,从而有效地改善了系统的性能 ------ Windows
3. 多用户多任务操作系统
允许多个用户通过各自的终端,使用同一台机器,共享主机系统中的各种资源,而每个用户程序又可进一步分为几个任务,使它们并发执行 ---- UNIX Solaris Linux
————————————————
1.3 操作系统的基本特性
操作系统的基本特性
多道批处理系统、分时系统、实时系统这三种基本操作系统都具有各自不同的特征,如批处理系统有着高的资源利用率和系统吞吐量;分时系统能获得及时响应;实时系统具有实时特征。除此之外,它们还共同具有
并发、共享、虚拟、异步 四个基本特征
1.3.1 并发
1.并发与并行
并行性:两个或多个事件在同一时刻发生。(需要多个处理机)
并发性:两个或多个事件在同一时间间隔内发生 ---- 一段时间内宏观上有多个程序在同时运行,在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。