绪论

2021-11-03
6分钟阅读时长

操作系统概念

操作系统

操作系统是:

  1. 计算机系统资源的管理者,组织、调度、分配软硬件资源;
  2. 作为用户与计算机硬件之间的接口,向上层(用户)提供服务;
  3. 最接近硬件的软件,即计算机系统中最基本的系统软件

扩展:系统软件和应用软件

系统软件:OS、数据库管理系统语言处理程序、服务性程序、标准库程序;

应用软件:用户编写的程序、驱动程序、辅助设计软件、实时控制软件

操作系统特征

操作系统基本特征包括并发、共享、虚拟、异步。最基本特征是并发共享,两者互为存在条件。

  1. 并发

    1. 并发是同一时间间隔发生。如单核CPU。

      并行是同一时刻发生。如多核CPU。

    2. 操作系统的并发性通过分时得以实现,需要中断的支持。

  2. 共享

    1. 互斥共享方式,如打印机,磁带。该共享方式称为互斥式共享,其所需的资源在一段时间内只允许一个进程访问,称之为临界资源或独占资源。
    2. 同时访问方式,如磁盘设备,通常是宏观上的同时访问,微观上分时访问,称分时共享。
  3. 虚拟

    1. 一个物理上的实体变为若干逻辑上的对应物。虚拟通过并发性实现。
    2. 时分复用技术:将一个物理上的CPU虚拟为多个逻辑上的CPU,称虚拟处理器;
    3. 空分复用技术:从逻辑上扩充存储器的容量,称之为虚拟存储器。
  4. 异步

    1. 多个并发执行的程序以不可预知的速度向前推进,称之为进程的异步性。
    2. 需要保证运行环境相同时产生的结果也相同。

操作系统的目的与功能

  1. 计算机角度来说,操作系统是计算机系统资源的管理者

    处理器管理、存储管理、文件管理、设备管理

  2. 用户角度来说,操作系统是用户与计算机硬件系统之间的接口

    1. 命令接口,直接给用户使用的接口,包括

      1. 联机命令接口,或交互式命令接口,用于分时实时系统。

        例如终端。

      2. 脱机命令接口,或批处理命令接口,用于批处理系统。

        类似可执行脚本。

    2. 程序接口,由一组系统调用广义指令)组成。用户通过系统调用来请求系统的服务。

    3. 注:也可将接口分为直接给用户使用的接口通过程序间接调用的接口,直接给用户使用的包括命令接口和GUI图形接口,通过程序间接调用的是程序接口;与此同时GUI图形接口也会调用程序接口。

  3. 操作系统用作扩充机器

    仅包括硬件的计算机称逻辑,经过操作系统扩充后方可使用。覆盖了软件的机器称之为扩充机器或虚拟机。

操作系统的发展与分类

手工操作阶段

  1. 用户独占全机,资源利用率低;
  2. 人机速度矛盾,CPU等待手工操作,CPU利用不充分。

批处理阶段

  1. 在此阶段操作系统开始出现。
  2. 为解决下列矛盾而产生:
    1. 人机速度矛盾
    2. CPU、IO设备速度不匹配的矛盾
  3. 主要缺点:缺乏交互性

单道批处理系统

优点:解决了人机速度矛盾;

缺点:未解决CPU与IO设备之间的矛盾。

特点:自动性、顺序性、单道性。

多道批处理系统

优点:解决了人机速度矛盾、CPU与IO设备之间的矛盾;资源利用率高。

缺点:用户响应的时间长,不能提供人机交互功能。

特点:多道、宏观上并行微观上串行

分时操作系统

分时是将处理机的时间分成很短的时间片,轮流上处理机运行。

优点:解决了人机交互的问题(用户的请求可以被及时响应)。

缺点:不能处理紧急任务(未区分各任 务之间的优先级)。

实时操作系统

优点:在严格时限内作出处理,利于完成紧急任务。

特点:及时性可靠性

注意:对于实时操作系统,资源利用率不是需要重点考虑的因素。

分类:

  1. 硬实时操作系统

    飞行控制系统、导弹发射系统

  2. 软实时操作系统

    股票交易系统、铁路订票/铁路信号系统、银行管理系统、门禁系统

  3. 实时操作系统

    干扰项:计算机辅助设计(CAD)系统、办公自动化系统等

其他操作系统

  1. 网络操作系统

    实现网络中资源共享和计算机间的通信。

  2. 分布时计算机系统

    特点:分布性、并行性。与网络操作系统的本质不同是:分布式操作系统中的若干计算机相互协同完成同一任务。(所有计算机地位相当)

  3. 个人计算机操作系统

操作系统的运行环境

运行机制

CPU执行两种程序,一种是操作系统内核程序,另一种是(系统外层的)应用程序。

特权指令=广义指令;

管态=内核态,运行内核程序;

目态=用户态,运行应用程序;

内核态→用户态:执行特权指令修改PSW(程序状态字寄存器);

用户态→内核态:由中断(外中断)引发,或由异常(内中断)引发,硬件自动变态;

  1. 时钟管理

    置时钟指令是特权指令,读时钟指令是非特权指令。

  2. 中断机制

    中断是操作系统必须提供的功能;并发、多道需要中断的支持。

  3. 原语

    运行具有原子性,不可中断。

中断与异常

定义

广义来说,操作系统内核夺回CPU使用权的唯一途径是中断。

狭义来说,中断分为外中断和内中断,其中外中断称作中断,内中断称作异常。

中断具体是内还是外,取决于中断信号的来源,来自CPU内部称内中断,来自CPU外部称外中断。

中断与异常是从用户态到内核态的途径。

通常异常会引起中断,但中断不一定是由异常引起的。

分类

  1. 内中断/异常

    异常不能被屏蔽,一旦出现必须立即处理。

    1. 自愿中断、陷入、陷阱——指令中断(如访管指令,它不是特权指令)

    2. 强迫中断

      1. 硬件故障

        由错误条件引起,可能被内核程序修复,修复后内核会将CPU使用权还给应用程序。例如缺页故障。

      2. 软件终止

        致命错误引起,不可被修复。应用程序执行结束。如整数除以0,非法使用特权指令等。

  2. 外中断/中断

    1. 时钟中断
    2. IO中断请求

中断实现原理

  1. 硬件完成部分(中断隐指令)

    1. 关中断

    2. 保存断点

      主要是将断点:程序计数器PC 保存

    3. 引出中断服务程序

  2. 操作系统完成部分(内核态,进入中断服务程序)

    1. 保存现场和屏蔽字

      保存程序状态字寄存器PSW和通用寄存器的内容。

      特别地,子程序调用不需要保存。

    2. 开中断

    3. 执行中断服务程序

      CPU根据中断类型查询中断向量表,根据类型使用中断处理程序处理中断。

    4. 关中断

    5. 恢复现场和屏蔽字

    6. 开中断

    7. 中断返回

系统调用

系统调用是操作系统向上层(编程语言或用户)提供的一系列操作的接口。

请求系统调用(用户态)→执行系统调用(内核态)→返回(用户态)。

这样做的目的是:用户不能直接执行对系统影响非常大的操作,保证了系统的稳定性安全性

表:各种指令的区别。

指令名称 指令类别 定义角度 详细释义
特权指令 特权指令 指令系统 用于管理硬件和系统安全的指令。仅能在管态(核心态)执行,目态下执行该种指令,CPU会自动中断并切换至管态。
访管指令或陷入指令或Trap指令 非特权指令 指令系统 应用程序自愿进管的指令,目的是请求系统的服务。执行后进入管态,同时也意味着程序放弃CPU的控制权。访管指令后可以接系统调用。一般是需要执行特权指令时使用。
广义指令或系统调用 不定 操作系统 应用程序通过系统调用来请求获得操作系统内核的服务,系统调用是一段代码。特别地,特权指令是系统调用的真子集,执行系统调用并不一定非得执行特权指令,亦有可能有非特权指令。但执行系统调用必须在内核态下。

表:系统调用与库函数的区别

名称 详细释义
库函数 库函数可以理解为是编程语言向上层对某些请求服务的一种封装,使编程更加方便快捷。库函数中有可能包含零个(如取绝对值),一个或多个系统调用(如创建文件)。它运行在用户态,需要时可以请求系统调用从而转到内核态,结束后返回用户态。
系统调用 操作系统向上层(编程语言或用户)提供的一系列操作的接口,应用程序通过系统调用来请求获得操作系统内核的服务。执行系统调用必须在内核态下。

操作系统的体系结构

  1. 大/单/宏内核
    1. 优点:高性能
    2. 缺点:庞大,结构混乱,难以维护
    3. 典例:Linux,Unix
  2. 微内核
    1. 优点:可靠,清晰
    2. 缺点:性能低下(因需要频繁切换用户态和内核态)
    3. 典例:Windows NT
Avatar

坐忘道琼峰 Sitting Oblivion Tao EndlessPeak

瞽者无以与乎文章之观,聋者无以与乎钟鼓之声。岂唯形骸有聋盲哉?
下一页 进程管理