操作系统的基本概念

​ 操作系统(Operating System, OS) 是资源管理程序,控制管理计算机系统的资源和程序的执行

操作系统的作用目标

  1. 通过资源管理,提供计算机系统的效率。(效率性)
  2. 改善人机界面,向用户提供友好的工作环境。(方便性)

操作系统的特征:

  1. 并发:指两个或多个事件在同一时间间隔内发生。

并行:指若干个事件在同一时刻发生

  1. 共享:系统中的资源可供内存中多个并发执行的进程共同使用
    1. 互斥共享方式:一段时间内只允许一个进程访问该资源
    2. 同时访问方式:允许若干个用户同时访问该文件
  2. 虚拟:一个物理上的实体变为若干个逻辑上的对应物
  3. 异步:不等任务执行完,直接执行下一个任务

并发和共享是操作系统的最基本的特征

研究OS的应用主要角度

  1. 资源管理的角度看:OS是计算机资源的管理者

  2. 用户的角度看:操作系统是计算机提供给用户的接口(用户可以通过以下两种方式来使用计算机:命令方式,系统调用方式)

  3. 机器扩充角度的角度看:操作系统是部署在裸机之上的第一层软件(配置了操作系统的机器,我们称之为虚拟机)

操作系统的发展与形成

  1. 无操作系统阶段
    1. 人工操作方式:用户独占全机,CPU等待人工操作(人工操作方式严重减低了计算机资源的利用率,此即所谓的人机矛盾)
    2. 脱机输入/输出方式:减少了CPU的空闲时间,提高了I/O速度
  2. 单道处理系统:在解决人机矛盾和CPU与IO设备速度不匹配矛盾的过程中形成的(最主要的缺点是:系统中的资源得不到充分的利用)
  3. 多道批处理系统
    1. 优点(多道):系统内可同时容纳多个作业
      1. 资源利用率高
      2. 系统吞吐量大
    2. 缺点(成批):作业一旦进入系统,用户就不能直接干预该作业运行。(不提供人机交互能力)
      1. 平均周转长
      2. 无交互能力

操作系统的分类

  1. 批处理操作系统: 对多个作业集中进行批处理,系统中配置了一个监督程序够对一批作业自动进行处理(一个作业包括:程序、数据和作业说明书,作业说明书中描述该作业的处理要求)

  2. 分时操作系统:允许多个用户交互计算机。

    1. 多路性:微观上个用户轮流使用计算机,宏观上个用户并行工作。
    2. 交互性:用户直接控制自己的程序运行,以人机会话方式工作。
    3. 独立性:个用户可独立操作,互不干涉,不会发生混淆或破坏现象。
    4. 及时性:用户的请求能及时做出响应,尤其是较批处理系统响应时间快。

    分时操作系统:

    1. 单道分时操作系统
    2. 多道分时操作系统
    3. 具有前台和后台的分时操作系统
  3. 实时操作系统:及时处理控制过程返回的数据,做出响应

    1. 及时性
    2. 可靠性
    3. 较强的过载防护能力
    4. 支持多道程序设计:提供系统利用率和吞吐量

实时系统最主要的特征是及时性和可靠性

实时操作系统:

  1. 实时控制系统(工业过程控制)
  2. 实时信息处理系统(航空、铁路订票系统)
  3. 多媒体系统(播放音频和视频)
  4. 嵌入式系统(智能仪表和设备)

操作系统的分类

分时操作系统和实时操作系统的区别:

设计目标 交互性强弱 响应时间
分时操作系统 为了给多用户提供一个通用的交互型开发运行环境 交互性强 以用户能接受的响应时间为标准
实时操作系统 通常为特殊用途提供专用系统 交互性弱 与受控对象及应用有关,变化范围很大

其他操作系统

  1. 嵌入式操作系统
  2. 集群操作系统
  3. 网络操作系统:共享网络资源,无任务分配功能
  4. 分布式操作系统:共享网络资源,有任务分配功能

微机操作系统的发展

  1. 单用户单任务操作系统:C/PM和MS-DOS
  2. 单用户多任务操作系统:Windows
  3. 多用户多任务操作系统:UNIX OS,WIndows XP。UNIX操作系统变形是Solaris OS和Linux OS
  4. 微机操作系统:IBM-PC上的操作系统

操作系统的运行环境

核心态和用户态

核心态(管态、系统态):是操作系统管理程序执行时机器所处的状态。能执行包括特权指令的一切指令,能访问所有寄存器和存储区。

用户态(目态):是用户程序执行时机器所处的状态。只能执行规定的指令,只能访问指定的寄存器和存储区。

用户态切换到内核态的3种方式(由硬件转换)

  1. 系统调用(访管)
  2. 中断
  3. 异常

系统调用

​ 系统调用(系统呼叫):目的是请求系统资源。指运行在用户空间的程序向操作系统内核请求需要更高权限运行的服务。系统调用提供了用户程序与操作系统之间的接口。

系统调用

中断的基本概念

  1. 内中断(异常、例外、陷入):不可屏蔽的中断,来源与CPU内部,与当前执行指令的有关
    1. 自愿中断:指令中断(如:系统调用是的访管指令)
    2. 强迫中断
      1. 硬件故障(如:缺页中断、文件损坏、内存校验错误)
      2. 软件中断(如:整数除0、程序中断、进程越界)
  2. 外中断(中断):可以屏蔽的中断,来源于CPU外部,与当前执行指令的无关
    1. 外设请求(I/O操作完成发出的中断信号——键盘中断、打印机中断)
    2. 人工干预(如:用户强行终止一个程序——控制台中断、时钟中断)
问题 答案 补充
究竟是什么引起中断? 中断源
中断如何产生服务? 中断响应
响应中断请求,如何服务即如何找到中断服务程序去执行? 中断向量
执行完中断服务程序,如何返回主程序? 中断返回
当多个终端同事请求服务时,如何处理? 中断优先级 中断优先权由高到低:1. 除法错、溢出中断、软件中断2. 不可屏蔽3. 可屏蔽中断4. 单步判断
CPU是够一定会响应中断? 中断屏蔽

特权指令与非特权指令

特权指令只能由操作系统使用的指令。只能在核心态下执行。例如:

  1. 启动某设备指令
  2. 停机指令
  3. 设置时钟指令
  4. I/O指令
  5. 清内存指令
  6. 存储保护指令
  7. 中断操作指令(开中断、关中断、屏蔽中断)

非特权指令用户可以去执行的指令,在用户态下执行

操作系统的体系结构

微内核

​ 微内核技术的定义:把操作系统中更多的成分和功能放在更高的层次(即用户模式)中去运行,而留下一个尽量小的内核,用它来完成操作系统最基本的核心功能,这种技术称为微内核技术。

微内核结构由一个非常简单的硬件抽象层和一组比较关键的原语或系统调用组成。这些原语仅仅包括了建立一个系统必须的几个部分,如线程管理、地址空间和进程间通信等。其他的管理程序则尽可能放在内核之外。

原语:一般是指由若干条指令组成的程序段,用来实现某个特定功能,在执行过程中不可被中断

微内核功能 微内核优点 微内核缺点
1. 进程(线程)管理2. 低级存储器管理3. 中断和陷入处理 1. 可扩展性2. 可靠性3. 可移植性4. 提供对分布式系统的支持5. 融入面向对象技术 这种结构的操作系统效率不高,因为用户进程都要通过微内核相互通信,所以微内核本身就成了操作系统的”瓶颈“,尤其是通信频繁的系统