操作系统定义

OS课程定义

操作系统是一组管理计算机硬件资源的软件集合,它向计算机程序提供共性的服务。

王道定义

操作系统是指控制和管理整个计算机系统的硬件与软件资源,合理的组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合。

区别

最大的区别在于OS课程没有强调操作系统同时管理软件资源,软硬件资源合称计算机资源

软件资源指为方便使用计算机和提高使用效率而组织的程序以及用于开发、使用和维护的有关文档。软件系统可分为系统软件和应用软件两大类资源。

操作系统定位

  • 操作系统是计算机系统中最基本的系统软件,也就是它的本质仍为软件。
  • 操作系统管理硬件、为上层提供统一接口从而方便使用、并提供保护(内核态)。
    操作系统定位

操作系统特征

并发,共享,虚拟,异步。

并发指的是宏观上两个或多个事件在同一时间间隔内发生,实际上,对于单CPU环境,每一时刻只能有一个程序执行。但在宏观上好像在同时执行,称为并发。
并行指的是在每一时刻都有两个或多个事件在同时发生,这是真正的同时进行。
把在一段时间内只允许一个进程访问的资源称为临界资源。

操作系统功能

计算机系统资源的管理者

  • 处理机管理
  • 存储器管理
  • 设备管理
  • 文件管理
  • 作业控制

作为用户和计算机硬件系统之间的接口

裸机是指没有任何软件支持(包括操作系统)的计算机。

操作系统历史

概览

操作系统历史

批处理系统

单道批处理系统

定义

系统对作业的处理成批进行,但内存中只始终保持一道作业。

缺陷

在处理中,如果该作业需要进行IO操作,CPU会在IO期间等待而什么也不做,显然没有利用最大化

多道批处理系统

定义

多道程序设计技术的引入使得多道批处理可以实现,其允许多个程序同时进入内存并允许它们在CPU中交替运行,当某一程序因为IO操作暂停运行时,CPU不再空闲等待,而是引入另一个程序继续执行。将这些空闲时间利用了起来。

特点

多道,成批。

优点

资源利用率高,系统吞吐量大,CPU和其他资源保持忙碌状态

缺点

平均周转时间长,用户响应时间较长,没有人机交互能力,用户不能了解自己的程序的运行情况,又不能控制计算机。

分时系统

产生原因

  • 需要人机交互
  • 需要支持多用户,多进程

定义

将CPU处理时间分割为多个时间片,将时间片分给不同程序,达到多个程序“同时”运行的效果。

特征

同时性、交互性、独立性、及时性

实时操作系统

产生原因

有些场景下,有些需求需要快速被响应,过时则会带来严重后果。

分类

  • 硬实时系统:某个动作必须绝对在规定的时刻完成
  • 软实时系统:接受偶尔的违反时间规定,不造成永久性损害。

特点

及时性、可靠性

网络和分布式操作系统

网络操作系统

将网络中的各台计算机有机的结合起来,提供一种统一、经济而有效的使用各台计算机的方法、实现各台计算机间的数据的互相传送。
特点是:网路中资源的共享和计算机间的通信

分布式操作系统

多台计算机组成,互相通信、同等地位、资源共享、任意计算机都可组成可重构的子系统,最重要的是一个任务可以分布在多个计算机上共同完成工作。
特点是:分布性和并行性

这两个操作系统可能在定义上看起来比较相似,但它们的本质区别是:分布式操作系统中的若干计算机相互协同完成同一任务。

操作系统实现

异常

区别于王道,我们课程认为异常可以包括中断,其分类如下:
异常

异步异常

主要指的是中断,其随时可能发生,所以是异步的。

同步异常

是某一特定指令执行的结果。所以是同步的。

操作系统结构

模块接口

模块接口

定义

模块接口是将操作系统按功能划分为若干具有一定独立性的模块。各模块之间通过规定好的接口进行通信

划分标准

  • 内聚性:模块内部各部分间联系的紧密程度。内聚性越高,模块独立性越好
  • 耦合度:模块间相互联系和相互影响的程度。耦合度越低,模块独立性越好
    高内聚,低耦合

    优点

    加速了操作系统的研制过程、增加了操作系统的灵活性、便于修改和维护。

    缺点

    接口定义困难、无序性,这种无序导致测试起来很麻烦,只能整体测正确性。

    有序分层法

    有序分层

    定义

    将操作系统分成若干层(注意是操作系统),最底层为硬件,最高层为用户接口,每层只能调用紧邻它的低层的功能和服务。

    优点

  • 便于系统测试,先测里面的,再套一层测这一层的正确性,一层一层套上去、
  • 易于扩充和维护,加层数就好。

缺点

  • 层间定义困难
  • 运行效率低,通过的层数太多。

虚拟机结构

定义

虚拟机是一台逻辑计算机,利用特殊的虚拟化技术,隐藏特定计算平台的实际物理特性,为用户提供抽象的,统一的、模拟的计算环境。

优点

  • 可以实现完全保护,安全性很高
  • 用软件向硬件逐层扩展
  • 把多道程序和扩充机器的功能完全分开,让两部分都变得简单灵活和易于维护

缺点

性能开销比较大

微内核结构

定义

将最基本的功能保留在内核,其余全部移到用户态执行,减少内核的负载和设计复杂性。

  • 内核中只包括中断处理、进程通信(IPC)、基本调度等
  • 文件系统、网络功能、内存管理、设备管理等作为服务在微内核上运行。

服务指的就是用户进程。

优点

  1. 内核易于实现,可移植性好、配置灵活、适应分布式环境
  2. 服务崩溃不会导致整个操作系统崩溃,重启服务就行。

缺点

速度较慢,切换比较多。

深刻体现了机制与策略分开的设计思路,微内核提供机制,执行体(服务)提供策略
机制是实现某一功能的具体执行机构,策略是在机制的基础上借助某些参数和算法来实现优化,或达到不同的功能目标。
参考:机制与策略分开

客户端-服务器模型

微内核采用的一种模型。
服务器模型