<操作系统>OS1 概述

本文最后更新于:2023年6月27日 上午

OS1 概述

操作系统(OS,Operating System)是控制和管理整个计算机系统的硬件和软件资源。其负责合理阻止调度计算机的工作和资源的分配,是计算机系统中最基本的系统软件。

进程:一个程序的执行过程。执行进程时,将程序载入内存,才能被 CPU 处理。

OS1.1 操作系统的作用

操作系统的作用:

  • 管理资源:提供处理机管理、存储器管理、文件管理、设备管理的功能

  • 给出用户和计算机间的接口:提供命令接口、程序接口、图形用户界面。

    • 命令接口:允许用户直接使用

      分为联机命令接口(交互式命令接口,如控制台)和脱机命令接口(批处理命令接口,如 .bat 文件)

    • 程序接口:由一组系统调用组成,用户只能通过程序间接使用

    • 图形用户界面:简称 GUI(Graphical User Interface),又称图形用户接口

  • 实现对硬件机器的拓展。

    没有任何软件支持的计算机称为裸机。覆盖了软件的机器称为扩充机器(虚拟机)

操作系统结构研究的目标是:系统模块化、模块标准化、通信规范化

OS1.2 操作系统的特征

操作系统有几个特征:

  • 并发:两个或多个事件在同一时间间隔内发生。这些事件在宏观上是同时发生的,但在微观上是交替发生的。

    操作系统的并发性是指系统内同时存在多个运行的程序。操作系统与程序并发是一起诞生的。

  • 共享:系统中的资源可供内存中多个并发执行的进程共同使用。

    共享方式分为:互斥共享(同一时刻仅允许一个进程访问)、同时共享(同一时刻允许多个进程访问)

    上面的 “同一时刻” 是宏观上的。微观上,这些进程可能是交替对该资源进行访问的(分时共享)。

  • 虚拟:把一个物理上的实体变为若干逻辑上的对应物。

    物理实体是实际存在的。而逻辑上的对应物是用户感受到的。

    虚拟技术有两种:空分复用技术(如虚拟存储器技术)、时分复用技术(如虚拟处理器技术)

  • 异步:多道程序环境下,允许多个程序并发。但进程的执行是以不可预知的速度推进的。

  • 随机:操作系统在随机的环境下运行。其运行的程序的行为、硬件设备情况是不可预知的。

并发与共享互为存在条件,是操作系统的两个最基本特征。

OS1.3 操作系统的发展与分类

目前流行的操作系统有 Windows、UNIX、Linux、Android 等

  • Windows 的体系结构是分层的模块系统。主要层次有

    1. 内核。内核执行 Windows 系统中最基本的操作,始终运行在核心态。
    2. 硬件抽象层(HAL)。HAL 是一个可加载的核心态模块,为硬件平台提供低级接口,实现其可移植性
    3. 执行体。其从用户态导出并能调用函数
    4. 子系统。
  • UNIX 的系统结构从内层到外层是

    1. 内核层。操作系统管理和控制中心,常驻内存。具有与硬件的接口和与 Shell(命令语言解释程序)的接口。

      内核本身分为 进程控制子系统 和 文件子系统 两大部分

    2. 系统调用层。介于内核层与应用层间,供程序员设计、开发应用程序时调用。

    3. 应用层。所有应用层程序都是在 Shell 管控下为用户服务的,是面向用户操作的界面

  • Linux 系统有四个主要部分:

    1. Linux 内核。操作系统的核心。由系统调用、内存管理、进程管理、设备驱动、文件系统、网络管理等组成
    2. Linux Shell。系统的用户界面。提供用户与内核进行交互操作的接口。
    3. Linux 文件系统。Linux 系统支持多种目前流行的文件系统,如 EXT2、EXT3、FAT、FAT32、VFAT、ISO9660
    4. Linux 用户应用程序。包括文本编辑器、编程语言、X Window、办公套件、Internet 工具、数据库等
  • Android 系统从高到低是:

    1. Android 应用程序。所有应用程序都由 Java 编写
    2. Android 应用框架。为开发者提供了用以访问核心功能的 API 框架
    3. C++ 本地库和 Android 运行环境
    4. Linux 内核

根据操作系统的发展过程,将其分为几个阶段:

  • 手工操作阶段(手工打印纸带等):输入、输出的速度很慢

  • 批处理阶段:出现了 单道批处理系统 和 多道批处理系统。

    单道批处理系统:引入了脱机输入输出技术。一定程度上缓解了人机速度矛盾。

    多道批处理系统:开始出现操作系统。能使程序并发执行,但不提供人机交互功能。

  • 分时操作系统:提供了人机交互的功能,但不能优先处理紧急任务

  • 实时操作系统:分为 硬实时系统 和 软实时系统。能优先处理紧急任务

    硬实时系统:必须在严格地规定时间内完成处理

    软实时系统:能接受偶尔违反时间规定

  • 网络操作系统、分布式操作系统、个人计算机系统等

OS1.4 操作系统的内核

计算机的 CPU 分为两种状态:

  • 用户态(目态):运行在用户态的程序称为 应用程序。用户态只能执行 非特权指令
  • 核心态(管态):运行在核心态的程序称为 内核程序。核心态能执行包括 特权指令 在内的所有指令

计算机上配置的底层软件称为计算机 内核,是计算机最基本、最核心的部分。

实现操作系统内核功能的程序就是内核程序。有:

  • 时钟管理:实现计时功能

  • 中断管理:负责实现中断机制

  • 原语:原语是一种特殊的程序,其位于操作系统最底层。

    其运行具有原子性(运行必须连贯完成,不能中断。若不能完成,则撤销操作,返回先前状态)。

    原语运行时间较短,通常被调用频繁。

  • 系统资源管理:进程管理、存储器管理、设备管理

根据操作系统内核功能,又把操作系统分为两类:

  • 大内核:将操作系统主要功能模块都作为系统内核。性能高,但内核代码庞大,难以维护。
  • 微内核:只把基本功能保留在内核。方便维护,但要频繁在核心态和用户态间切换,性能低。

OS1.5 系统中断和异常

为提高系统资源利用率,人们发明了操作系统,并引入 中断机制,实现了程序的并发并行。

中断的本质是要求操作系统介入,并开展管理工作。当中断发生时,CPU 立即进入核心态。当前运行中的进程暂停运行,由操作系统根据中断信号的不同,对中断进行不同处理。

只有通过中断,才能完成由用户态向核心态的转换。

在核心态下,执行一条特定的特权指令,就能转换为用户态。

中断分为两种:

  • 内中断(同步中断、异常、例外、陷入):中断信号的来源是 CPU 的内部,与当前执行的指令有关

    内中断分为 自愿中断(指令中断)和强迫中断(硬件故障 或 软件中断)

    也能被分为 陷入(trap,有意为之的异常)、故障(falut,错误条件引起的异常)、中止(abort,不可修复的致命错误)

  • 外中断(异步中断。狭义的中断):中断信号的来源是 CPU 的外部,与当前执行的指令无关

外中断的处理过程:

  1. 执行完每个指令后,CPU 会检查当前是否有中断信号
  2. 检测到中断信号的场合,保护被中断进程的 CPU 环境(如程序状态字 PSW、程序计数器 PC、通用寄存器)
  3. 根据中断信号类型转入相应中断处理程序
  4. 恢复原进程的 CPU 环境并退出中断,返回原进程并继续执行

OS1.6 系统调用

系统调用 是操作系统提供给程序使用的接口。应用程序通过系统调用请求操作系统的服务。

系统中的各种共享资源由操作系统统一掌管,因此应用程序中涉及资源有关的操作都要由操作系统代为完成。这样能保证系统的 稳定性安全性,防止用户进行非法操作。系统调用涉及的一些功能要进行 特权指令 才能完成,因此系统调用的处理要在 核心态 下进行。

系统调用可以按功能分为几类:设备管理、文件管理、进程控制、进程通信、内存管理

系统调用的流程:

  1. 在用户态发出 系统调用请求,传递系统调用参数。之后执行 陷入指令,引发 内中断,从而进入核心态。
  2. 在核心态 处理系统调用,执行相应服务程序。
  3. 返回用户程序。

系统调用中,实现用户程序与系统程序间参数传递的方法有:

  • 由陷入指令自带参数
  • 通过有关的通用寄存器传递参数
  • 在内存中开辟专用堆栈区传递参数

#系统调用、库函数、原语、陷入指令、访管指令、特权指令间的区别与联系

特权指令:CPU 的执行状态分为目态和管态。只能在管态执行的指令称为特权指令,此外的指令称为非特权指令。

陷入指令:即访管指令,也称自陷指令、trap 指令。是非特权指令,且只能在目态下调用。执行陷入指令会引发中断,从而使程序由用户程序切换到操作系统,CPU 状态也从目态转变为管态。陷入指令是实现系统调用的重要手段。

系统调用:是操作系统提供的,用户与硬件间的接口。系统调用发生在目态,被调用程序运行在管态。系统调用的流程是,先执行陷入指令引发中断进入管态,之后在管态处理相应系统调用,最后返回。

库函数:是将函数封装入库,供用户使用的一种方式。库函数是语言或应用程序的一部分,可以运行在目态。库函数可能封装了部分系统调用,也可能不含系统调用。

原语:是若干条指令组成的程序段,在执行过程中不可被中断。原语是操作系统内核的一部分。对操作系统内核的各种功能调用通过执行原语操作来实现。原语和系统调用命令都是操作系统中的功能程序,有的系统调用是以原语的形式出现的(如创建进程),有的系统调用不是原语。


<操作系统>OS1 概述
https://i-melody.github.io/2022/12/22/操作系统/1 概述/
作者
Melody
发布于
2022年12月22日
许可协议