操作系统的目标和作用
目标
有效性 方便性 可扩充性 开放性
有效性 :
- 提高资源的利用率
- 提高系统的吞吐量
方便性 :
未配置 OS 的计算是超级难用的,但是通过配置 OS 可以使用户很方便的对计算机进行操作。
可扩充性:
OS 的可扩充性表现在可以适应计算机硬件,体系结构以及计算机应用的发展等。
开放性 :
系统能遵循世界标准规范,特别是遵循开放系统互连 OSI 国际标准。
OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互联模型。该体系结构标准定义了网络互联的七层框架(物理层、数据链路层、网络层、传输层,即OSI开放系统互连参考模型)。在这一框架下进一步详细规定了每一层的功能,以实现开放系统环境中的互连性、互操作性)和应用的可移植性.
作用
- OS 作为用户与计算机硬件系统之间的接口
- OS 实现了对计算机资源的抽象
- OS 实现了对计算机系统资源的管理者
操作系统的发展过程
推动计算机发展的主要动力
- 不断提高计算机资源利用率
- 方便用户
- 器件的不断更新换代
- 单 CPU
- 多 CPU (共享一个机器中的硬件)
- 多计算机 (每个计算机单独有各自的硬件)
- 分布式系统
- 计算机体系结构的发展
- 不断提出新的应用需求
操作系统的发展过程
未配置操作系统的计算机系统
- 人工操作方式
早期的操作方式使程序员把实现打好孔的纸带放入纸带输入机,然后启动纸带输入机,把纸带中的数据和程序输入到计算机中,然后进行运行,仅当程序运行完毕的时候才能允许下一个用户上机。
缺点 :
- 用户独占全机
- 装带 卸带 ,CPU 内存等资源空闲
- 脱机输入输出方式
为了解决人机矛盾以及 CPU 与 IO 设备之间速度不匹配问题。
单道批处理系统
先把一批作业以脱机的方式输入到磁盘上,并在系统上配上监督程序,用来控制作业能一个接一个的处理。
缺点 : 系统的资源得不到充分的利用。当一个作业进行 IO 操作时 CPU空闲。
多道批处理系统
将一批作业先放入外存,形成一个队列,称为后被队列,然后通过一定的算法,将这一批作业中的若干作业调入内存共享 CPU 以及其他的资源。
动力 : 提高资源利用率和系统吞吐量。
优点 :
1. 资源利用率高
2. 系统吞吐量大
缺点 :
- 平均周转周期长
- 无交互能力
分时系统
动力 :满足人机交互的需求
关键问题 : 及时接受 及时处理
特征 :
- 多路性 :多个终端连接一台计算机。
- 独立性 :每个用户在各自的终端上运行,彼此互不干扰。
- 及时性 :用户的请求能在短时间内进行相应。
- 交互性 :可以通过终端与机器进行广泛的人机对话。例如可以请求提供打印服务。。。
实时系统
系统的正确性不仅由计算的逻辑结果决定,而且还取决于产生结果的时间。
实时系统的类型 :
- 工业控制系统
- 信息查询系统
- 多媒体系统
- 嵌入式系统
实时任务的类型 :
- 软实时任务和硬实时任务
硬实时任务 :系统必须满足任务对截止时间的要求,否则可能出现难以预测的后果。
软实时任务 : 系统对截止时间的要求并不是很严格,对系统影响也不算太大。
- 周期实时任务和非周期实时任务
周期实时任务 : 外部设备周期性的发送信号给系统,要求他以制定周期继续循环执行。
非周期实时任务 :没有明显的周期性。
微机操作系统
- 单用户单任务操作系统
只允许一个用户上机,且只允许运行一个应用程序(QQ,微信,网易云音乐。。。)。
- 单用户多任务操作系统
允许一个用户上机,但是允许运行多个应用程序。
- 多用户多任务操作系统
允许多个用户使用各自的终端使用同一台机器,共享主机中的资源。
操作系统基本特性
并发
并发 : 并发性是指多个程序在同一时间间隔内运行。
并行 :并行性是指多个程序在同一时刻内发生。
共享
互斥共享方式 :虽然可以允许多个程序使用资源,但是在一段时间内只允许一个进程使用的资源,例如打印机,磁带机。当一个进程在运行的时候,其他进程必须等待。
同时访问方式 :允许在一段时间内多个进程同时对他们进行访问,在宏观上是同时的,但是微观上是对该资源进行交替访问。
虚拟
通过某种技术将一个物理实体转换为多个逻辑的对应物称为虚拟。
时分复用 :
虚拟处理机技术:多进程共享处理机。
虚拟设备技术 : Spooling 技术。
空分复用 :
通信领域频分复用。
计算机对存储空间的空分复用。
异步
由于资源等限制,程序不可能一气呵成,而是走走停停,即以不可预知的速度向前推进。
操作系统的主要功能
处理机管理
- 进程控制
主要功能就是为作业创建进程,撤销一个进程,以及各个状态之间的转换.
- 进程同步
为多个进程的运行进行协调.
进程互斥方式 : 对临界资源的访问应该通过互斥方式.
进程同步方式 : 相互合作区完成共同的任务的主进程之间应采用进程同步机构对他们的执行进行协调.
- 进程通信
实现相互合作进程之间的信息交换.
- 调度
作业调度 : 作业调度的基本任务是从后备队列中按照一定的算法选择出若干个作业为他们分配运行所需要的资源,在将这些作业调入内存后, 分别为他们建立进程,使他们都成为可能获得处理机的就绪状态,并将他们插入就绪队列中.
进程调度 : 进程调度的任务是从进程的就绪队列中按照一定的算法选出一个进程,将处理机分配给他,并为他设置运行现场, 使其投入运行.
存储器管理
- 内存分配
主要任务 :
- 为每道程序分配内存空间
- 提高存储器的利用率, 尽量减少碎片的发生
- 允许正在运行的程序申请附加的内存空间以适应程序和数据增长的需要
分配方式 :
- 静态 : 每个作业的内存空间是在作业装入时确定的, 在作业装入后的整个期间不允许该作业再申请新的内存空间, 也不允许作业在内存中 “移动”.
- 动态 : 每个作业要求的基本内存空间虽然是在装入时确定的,但是允许作业在运行期间继续申请新的附加内存空间.以适应程序和数据的动态增长.
- 内存扩充
借助虚拟化扩充技术, 从逻辑上扩充内存的容量, 使用户感觉到内存容量比实际内存容量大得多, 一边让更多的用户程序可以并发运行, 既满足了用户的需求,又满足了系统的性能.
- 请求调入功能 : 操作系统允许部分程序和数据装入内存的情况下允许改进程, 若需要额外的数据的时候再次从磁盘中将所需的部分调入内存继续运行.
- 置换功能 : 若发现在内存中已经没有足够的空间的时候, 将暂时使用不到的部分数据或者进程调到磁盘上,然后将需要的进程和数据从磁盘上调入内存完成置换功能.
- 地址映射
由于程序经过编译和连接之后其逻辑地址都是从 0 开始的, 这与在运行时的物理地址是不同的,因此需要操作系统进行地址的映射, 即从逻辑地址到物理地址的转换.
- 内存保护
任务 :
- 确定每个用户程序都仅仅在自己的内存空间内运行,彼此互不干扰.
- 不允许用户程序访问操作系统的程序和数据.
因此操作系统必须设置内存保护机制.
设备管理
主要任务 :
- 完成用户进程提出的 IO 请求, 为用户进程分配所需要的 IO 设备, 并完成指定的 IO 操作.
- 提高 CPU 与 IO 设备的利用率.
- 设备分配
根据用户的 IO 请求, 将系统现有的资源情况以及按照某种设备分配策略为之分配其需要的设备.
- 设备处理
设备处理程序又称为设备驱动程序, 用于实现 CPU 和设备控制器之间的通信, 即由 CPU 向设备控制器发出 IO 指令, 要求他完成指定的 IO 操作, 反之由 CPU 接收从控制器发来的中断请求,并给予迅速的响应和相应的处理.
- 缓冲管理
如果在 IO 设备和 CPU 之间引入缓冲, 可有效的缓和 CPU 和 IO 设备之间速度不匹配的问题, 提高 CPU 的利用率, 进而提高系统的吞吐量.
文件管理
文件管理的主要任务就是对用户文件与系统文件进行管理以方便用户的使用, 并保证文件的安全性.
- 文件存储空间管理
为每个文件分配必要的外存空间, 提高外存的利用率, 进而提高文件的存取效率.
- 目录管理
目录管理的主要任务是为每个文件建立一个目录项, 包括文件名, 文件属性,以及在磁盘中的物理位置, 并对众多的目录项加以有效的控制, 以方便按名存取.
- 文件的读写管理和保护
根据用户的请求,从外存去读数据或者将数据写入外存.
为了防止系统文件被破坏, 操作系统必须提供有效个存取控制功能.
操作系统与用户之间的接口
- 用户接口
- 联机用户接口
- 脱机用户接口
- 图形用户接口
- 程序接口
为用户程序在执行中访问系统资源设置的, 使用户程序取得操作系统服务的唯一途径, 他是由一组系统调用组成, 每一个系统调用都是一个能完成特定功能的子程序.
OS 结构设计
我们把早期的无操作系统的 OS (第一代) , 模块化结构的 OS (第二代), 分层式结构的 OS (第三代) 称为传统结构的 OS.
把微内核结构的 OS 称为现代结构的 OS .
传统操作系统结构
无结构 OS
此时的 OS 是一组无结构的过程的集合, 每个过程可以相互的调用, 致使操作系统内部杂乱无章,因此这种 OS 是无结构的.
模块化结构 OS
模块化结构的 OS 是将其按功能划分为若干个具有一定独立性和大小的规模, 每个模块具有某方面的功能, 如进程管理模块, 存储器管理模块, IO 设备管理模块, 并仔细的规定好各模块的接口, 使各个模块能通过接口实现交互.然后再将各模块划分为具有独立功能的子模块…
分层式结构 OS
分层结构的基本思想是 : 每一层仅能使用其底层所提供的功能和服务.
优点 :
- 以保证系统的正确性.
- 易扩充性和易维护性.
缺点:
系统效率低降低, 由于层次结构是分层单向依赖的, 必须在每层之间建立通信机制, OS 每执行一个功能,通常要自顶向下的穿越多个层次, 这无疑会增加系统开销,从而导致系统效率降低.
微内核 OS
微内核的概念可以从以下方面进行阐述 :
- 足够小的内核
- 基于客户/服务器模式
- 应用机制与策略分离原理
- 采用面向对象技术
微内核的基本功能 :
- 进程线程管理
- 低级存储器管理
- 中断和陷入处理
微内核操作系统的优点:
- 提高了系统的可扩展性
- 增强了系统的可靠性
- 可移植性强
- 提供了对分布式系统的支持
- 融入了面向对象的支持
微内核操作系统的缺点 :
在完成一次客户对操作系统提出的服务请求时, 需要利用消息实现多次交互和进行用户/内核模式与上下文的多次切换.
- 足够小的内核
- 基于客户/服务器模式
- 应用机制与策略分离原理
- 采用面向对象技术
微内核的基本功能 :
- 进程线程管理
- 低级存储器管理
- 中断和陷入处理
微内核操作系统的优点:
- 提高了系统的可扩展性
- 增强了系统的可靠性
- 可移植性强
- 提供了对分布式系统的支持
- 融入了面向对象的支持
微内核操作系统的缺点 :
在完成一次客户对操作系统提出的服务请求时, 需要利用消息实现多次交互和进行用户/内核模式与上下文的多次切换.