101 计算机系统概述

操作系统的基本概念

操作系统的概念

  • 操作系统:指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合
  • 为上层用户,应用程序提供简单易用的服务
  • 是计算机系统中最基本的系统软件

操作系统的特征

  • 并发和共享是最基本的两个特征,两者互为存在条件:
    • 资源共享是以程序的并发为条件的,若系统不允许程序并发执行,则自然不存在资源共享问题
    • 若系统不能对资源共享实施有效的管理,则必将影响到程序的并发执行,甚至根本无法执行
  • 如果失去了并发性,则一个时间段内系统中只需运行一道程序,那么就失去了实现虚拟性的意义了。因此,没有并发性,就谈不上虚拟性
  • 如果失去了并发性,即系统只能串行地运行各个程序,那么每个程序的执行会一贯到底。只有系统拥有并发性,才有可能导致异步性

并发

  • 并发:两个或多个事件在同一时间间隔内发生
  • 并行:系统具有同时进行运算或操作的特性,在同一时刻能完成两种或两种以上的工作
    • 可并行的有【处理机与设备】【处理机与通道】【设备与设备】
    • 不可并行的有【进程与进程】
  • 引入进程的目的是使程序能够并发执行
  • 注意
    • 单核 CPU 同一时刻只能执行一个程序,各个程序只能并发地执行
    • 多核 CPU 同一时刻可以同时执行多个程序,多个程序可以并行地执行

共享

  • 共享:指系统中的资源可供内存中多个并发执行的程序共同使用
    • 互斥共享方式
      • 规定一段时间内只允许一个进程访问该资源【称为临界资源
      • A 访问完并释放该资源后,才允许另一进程访问
      • 如:计算机系统中的大多数物理设备及某些软件中所有的栈、变量和表格
    • 同时访问方式
      • 宏观上,一段时间内由多个进程“同时”访问某类资源
      • 微观上,进程之间可能交替对该资源进行访问
      • 如:磁盘设备,一些可重入代码编写的文件

虚拟

  • 虚拟:指将一个物理上的实体变为若干逻辑上的对应物
  • 用于实现虚拟的技术称为虚拟技术
    • 时分复用技术:如虚拟处理器
    • 空分复用技术:如虚拟存储器

异步

  • 进程的异步性:由于资源有限,进程的执行不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进

操作系统的功能和目标

操作系统作为计算机系统资源的管理者

处理器管理
  • 处理机的分配和运行都以进程(或线程)为基本单位
  • 对处理器的管理可归结为对进程的管理
  • 主要功能:进程控制 + 进程同步 + 进程通信 + 死锁处理 + 处理机调度
存储器管理
  • 为了给多道程序的运行提供良好的环境,方便用户使用及提高内存的利用率
  • 主要功能:内存分配与回收 + 地址映射 + 内存保护 + 共享和内存扩充
文件管理
  • 计算机的信息都是以文件的形式存在的
  • 操作系统重负责文件管理的部分称为文件系统
  • 主要功能:文件存储空间的管理 + 目录管理 + 文件读写管理和保护
设备管理
  • 主要是完成用户的 I/O 请求,方便用户使用各种设备,提高设备的利用率
  • 主要功能:缓冲管理 + 设备分配 + 设备处理 + 虚拟设备

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

命令接口
  • 用户利用这些操作命令来组织和控制作业的执行
  • 联机命令接口【交互式命令接口】:
    • 适用于分时或实时系统的接口
    • 由一组键盘操作命令组成
    • 用户发送一个命令,系统就执行一次,主要特点是交互性
  • 脱机命令接口【批处理命令接口】:
    • 适用于批处理系统的接口
    • 由一组作业控制命令组成
    • 用户一次性发送命令清单,系统按清单执行,中途不能干预
程序接口
  • 可以在程序中进行系统调用来使用程序接口
  • 普通用户不能直接使用程序接口,只能通过程序代码间接使用

操作系统实现了对计算机资源的扩充

  • 裸机:没有任何软件支持的计算机,仅构成计算机系统的物质基础
  • 在裸机上安装的操作系统,可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能更强、使用更方便的机器
  • 扩充机器/虚拟机:覆盖了软件的机器

操作系统的发展历程

手工操作阶段

  • 此阶段无操作系统
  • 所有工作都要人工干预
  • 缺点
    • 用户独占全机,资源利用率低
    • CPU 等待手工操作,CPU 的利用不充分

批处理阶段

  • 为了解决人机矛盾及 CPU 和 I/O 设备之间速度不匹配的矛盾,出现了批处理系统

单道批处理系统

  • 引入脱机输入/输出技术(用外围机 + 磁带完成),并由监督程序负责控制作业的输入、输出
  • 特点:自动性、顺序性、单道性
  • 优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升
  • 缺点
    • 内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序
    • CPU 有大量的时间是在空闲等待 I/O 完成,资源利用率依然很低

多道批处理系统

  • 允许多个用户将若干个作业提交给计算机系统集中处理
  • 当某道程序因请求 I/O 操作而暂停运行时,通过中断机制,CPU 转去运行另一道程序
  • 特点:多道、宏观上并行、微观上串行
  • 优点
    • 资源利用率高,多道计算机共享计算机资源,从而使各种资源得到充分利用
    • 系统吞吐量大,CPU 和其他资源保持“忙碌”状态
  • 缺点
    • 用户的响应时间较长
    • 不提供人机交互能力

分时操作系统

  • 计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互
  • 特点:同时性(多路性)、交互性、独立性、及时性
  • 优点
    • 用户请求可以被即时响应,解决了人机交互问题
    • 允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在
  • 缺点
    • 不能优先处理一些紧急任务
    • 操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性

实时操作系统

  • 为了能在某个时间限制内完成某些紧急任务而不需要时间片排队
  • 硬实时系统:某个动作必须绝对地在规定的时刻(或规定的时间范围)发生【飞机的飞行自动控制系统】
  • 软实时系统:能够接受偶尔违反时间规定且不会引起任何永久性的损害【飞机订票系统、银行管理系统】
  • 特点:及时性、可靠性
  • 优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队

其他几种操作系统

  • 网络操作系统:是伴随着计算机网络的发展而诞生的,能把网络中各个计算机有机地结合起来,实现数据传送等功能,实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信(如:Windows NT 就是一种典型的网络操作系统,网站服务器就可以使用)
  • 分布式操作系统:主要特点是分布性和并行性。系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行、协同完成这个任务
  • 个人计算机操作系统:如 Windows XP、MacOS,方便个人使用

操作系统的运行环境

处理器运行模式

  • CPU 执行两种不同性质的程序:内核程序和应用程序
  • 操作系统的内核程序是系统的管理者,既可以执行特权指令,也可以执行非特权指令,运行在核心态
  • 为了保证系统能安全运行,普通应用程序只能执行非特权指令,运行在用户态

两种指令

特权指令
  • 指不允许用户直接使用的指令
  • 如:对 I/O 设备操作指令、存取特殊寄存器的指令、有关访问程序状态的指令、置中断指令、关中断指令、清内存指令、置时钟指令
非特权指令
  • 允许用户直接使用的指令
  • 不能直接访问系统中的软硬件资源,只限于访问用户的地址空间
  • 如:访管指令(trap)

两种处理器状态

核心态【管态、内核态】
  • 此时运行的是内核程序,可以执行特权指令
  • 只能在核心态运行的指令和程序:
    • 时钟管理相关的指令【置时钟指令】
    • 中断机制相关的指令【时钟中断程序】
    • 原语相关的指令
    • 系统控制的数据结构与处理【进程调度程序】【进程切换】【缺页处理程序】【系统调用命令】
用户态【目态】
  • 此时运行的是用户程序,只能执行非特权指令
  • 在用户态运行的指令和程序/发生的事件:
    • 命令解释程序【属于命令接口,面向用户】
    • 访管/Trap 指令,跳转指令,压栈指令
    • 广义指令 (系统调用) 的调用
    • 外部中断,缺页
如何变态
  • 内核态 - 用户态:执行一条特权指令——修改 PSW 的标志位为“用户态”,这个动作意味着操作系统将主动让出 CPU 使用权
  • 用户态 - 内核态:由“中断”引发,硬件自动完成变态过程,触发中断信号意味着操作系统将强行夺回 CPU 的使用权
  • 注意
    • CPU 中的程序状态字寄存器(PSW),其中有个二进制位,1 表示“内核态”,0 表示“用户态”
    • 需要操作系统介入的地方,都会触发中断信号

操作系统的内核

  • 内核:是计算机上配置的底层软件,是操作系统最基本、最核心的部分。实现操作系统内核功能的那些程序就是内核程序
与硬件关联紧密的模块
  • 时钟管理:实现计时功能
  • 中断处理:负责实现中断机制
  • 原语
    • 是一种特殊的程序
    • 处于操作系统最底层,是最接近硬件的部分
    • 该程序运行具有原子性(运行只能一气呵成,不可中断)
    • 运行时间较短,调用频繁
对系统资源进行管理的功能
  • 设备管理:完成设备的请求和释放,以及设备启动等功能
  • 进程管理:完成进程的创建,撤销,阻塞及唤醒等功能
  • 存储器管理:完成内存的分配,回收以及获取作业占用内存区大小及地址等功能

中断和异常

基本概念

中断处理和子程序调用的比较

中断处理子程序调用
中断处理程序与被中断的当前程序是相互独立的子程序与主程序是同一程序的两部分,它们属于主从关系
中断的产生是随机的子程序的调用是通过调用指令 (CALL) 引起的,是由程序设计者事先安排的
中断处理的过程需要有专门的硬件完全属于软件处理过程
中断处理程序的入口地址可由硬件向量法产生向量地址,再由向量地址找到入口地址子程序的入口地址是由 CALL 指令中的地址码给出的
中断隐指令保存 PC 的内容CALL 指令保存 PC 的内容,先将当前 PC 值压入栈,再将 PC 设置为入口地址
需对同时检测到的多个中断请求进行裁决无这种操作

系统调用

基本概念

  • 操作系统对应用程序和程序员提供的接口
  • 系统调用需要触发陷入指令(Trap)
  • OS 通过提供系统调用避免用户程序直接访问外设
  • 在用户程序中,凡是与资源有关的操作(存储分配、I/O 传输及管理文件等)都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成,保证系统的稳定性和安全性
  • 每个系统调用都有唯一的系统调用号

系统调用与库函数的区别

  • 库函数
    • 语言或应用程序的一部分,可以运行在用户空间
    • 许多库函数都会使用系统调用来实现功能
    • 有的库函数没有使用系统调用
  • 系统调用
    • 操作系统的一部分,是内核为用户提供的程序接口,运行在内核空间
    • 系统调用要完成上下文的切换和状态的转换,因此未使用系统调用的库函数,执行效率较高

按功能分类

  • 设备管理:完成设备的请求或释放 + 设备启动
  • 文件管理:完成文件的读 + 写 + 创建 + 删除
  • 进程控制:完成进程的创建 + 撤销 + 阻塞 + 唤醒
  • 进程通信:完成进程之间的信息传递或信号传递
  • 内存管理:完成内存的分配 + 回收 + 获取作业占用内存区大小及始址

系统调用的过程

  1. 传参
  2. 陷入指令/Trap/访管【执行系统调用】,发生在用户态
  3. 由操作系统内核程序处理系统调用请求,发生在内核态
  4. 返回应用程序

系统调用与一般过程调用的区别

运行状态不同
  • 一般过程调用的调用过程和被调用过程运行在同一系统状态【用户态或内核态】
  • 系统调用的调用过程是运行在用户态,被调用过程是运行在内核态
软中断进入机制
  • 一般的过程调用可直接由调用过程转向被调用过程
  • 系统调用不允许由调用过程直接转向被调用过程,一般通过软中断机制,先进入操作系统内核,经内核分析后才转向相应命令处理程序
返回及重新调度
  • 一般过程调用被调用结束后,返回调用点继续执行
  • 系统调用被调用完后,要对系统中所有运行进程重新调度
  • 只有当调用进程仍具有最高优先权才返回调用过程继续执行

操作系统结构

  • 微内核定义:只把核心功能放入内核,其余功能用用户进程的形式运行在用户态
  • 微内核优点
    • 内核足够小
    • 基于 C/S 模式
    • 应用机制与策略分离原理
    • 采用面向对象技术
  • 微内核缺点
    • 执行效率不高
    • 开销较大

操作系统引导

  • 操作系统引导:指计算机利用 CPU 运行特定程序,通过程序识别硬盘,识别硬盘分区,识别硬盘分区上的操作系统,最后通过程序启动操作系统 常见操作系统的引导过程如下:
  1. 激活 CPU:激活的 CPU 读取 ROM 中的 boot 程序,将指令寄存器置为 BIOS (基本输入/ 输出系统) 的第一条指令,即开始执行 BIOS 的指令
  2. 硬件自检:BIOS 程序在内存最开始的空间构建中断向量表,接下来的 POST 过程要用到中断功能,然后通过通电自检,检查硬件是否出现故障
  3. 加载带有操作系统的硬盘:BIOS 将控制权交给启动顺序排在第一位的存储设备,CPU 将其引导扇区的内容加载到内存中
  4. 加载主引导记录(MBR):硬盘以特定的标识符区分引导硬盘和非引导硬盘【MBR 告诉 CPU 去硬盘的哪个主分区去找操作系统】
  5. 扫描硬盘分区表,并加载硬盘活动分区:MBR 包含硬盘分区表,以特定标识符区别活动分区和非活动分区,MBR 识别含有操作系统的硬盘分区(活动分区)后,加载并将控制权交给活动分区
  6. 加载分区引导记录(PBR):读取活动分区的第一个扇区【分区引导记录 PBR】,其作用是寻找并激活分区根目录下用于引导操作系统的程序 (启动管理器)
  7. 加载启动管理器
  8. 加载操作系统 注意
  • 自检程序 - 引导装入程序/自举装入程序 - 引导程序 - 操作系统
  • 操作系统被装入 RAM 中
  • 自举程序 BIOS 装在 ROM 中
  • 引导程序装在硬盘中

虚拟机

  • 虚拟机:使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器(VM),每个虚拟机器都可以独立运行一个操作系统