Skip to main content

计算机系统概述

tip

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

特征

操作系统的基本特征有:

  1. 并发(Concurrence),指多个时间在同一时间 间隔 发生;操作系统的并发性是指系统中同时存在多个运行的程序,注意和并行的区别;
  2. 共享(Sharing),即资源共享,指系统中的资源可供多个并发执行的进程共同使用,可分为 互斥共享方式同时访问方式
  3. 虚拟(Virtual),指把物理上的实体变为若干逻辑上的对应物,操作系统中利用了多种虚拟技术,如虚拟处理器、虚拟内存和虚拟外部设备等;
  4. 异步(Asynchronism),多道程序环境允许多个程序并发执行,但由于资源有限,进程的执行以不可预知的速度推进。

目标和功能

常见功能有:

  1. 处理机管理,基本单位进程或线程,因此最终可以归结为对进程的管理,包括控制、同步、通信、调度和死锁处理等;
  2. 存储器管理,提高内存利用率,包括内存分配与回收、地址映射、内存保护、共享和扩充等;
  3. 设备管理,完成用户的 I/O 请求,提高设备利用率,包括缓冲管理、设备分配、处理和虚拟等;
  4. 文件管理,又称文件系统,包括对文件存储空间的管理、目录管理和保护等。

还需要为用户提供接口等。

操作系统的发展

手工操作阶段(无操作系统):所有工作都要人工干预,如程序的装入、运行、输出等;主要缺点是用户独占全机,资源利用率低,CPU 等待手工操作,利用不充分;

批处理阶段:可以分为 单道批处理系统多道批处理系统;前者对作业的处理成批进行,但内存中始终只有一个作业,按照顺序自动完成作业;主要缺点是高速的 CPU 和低速的 I/O 不匹配;后者允许多个程序同时进入内存并且 交替执行,共享软硬件资源,当某个程序因为 I/O 暂停运行时,CPU 会立即执行另一道程序,其特点是 多道、宏观上并行、微观上串行,资源利用率高,但是 用户相应时间长,不提供人机交互能力

分时操作系统:即将 CPU 的运行时间分为很短的时间片,轮流分配给作业使用,因此可以及时响应交互,主要特点是 同时性、交互性、独立性、及时性,但是实际上其及时性仍然不够;

实时操作系统:不需要时间片排队,接受外部信号后立即处理;

网络操作系统和分布式计算机系统:略;

个人操作系统:如 Windows、Linux 和 MacOS 等。

操作系统运行环境

CPU 运行模式:分为用户态(目态)和核心态(管态、内核态),核心态中的 CPU 可以执行特权指令,如 I/O 指令、置中断指令、读写寄存器指令、送程序状态字指令等;内核是连接应用程序和硬件的一座桥梁,包括以下几个方面的内容:

  1. 时钟管理,处理可以提供标准的系统时间,还可以通过时钟中断的管理实现进程切换,如在分时系统中采用时间片轮转调度,在实时系统中按截止时间控制运行等;
  2. 中断机制,有助于提高系统及时性;内核中的中断机制主要负责保护和恢复中断现场,控制转移等;
  3. 原语,最小的可被调用的公共程序,处于操作系统最底层,最接近硬件,并且具有原子性,不会被中断;
  4. 系统控制的数据结构及处理:如作业控制块、进程控制块、设备控制块等。

中断和异常

tip

中断也被成为外中断,值来自 CPU 执行指令外部的时间,如 I/O 中断、时钟中断等;异常又称内中断,指 CPU 执行指令内部的时间,如程序的非法操作码、地址越界、运算溢出、缺页中断、陷入指令等。

外中断可以分为可屏蔽中断和不可屏蔽中断,前者通过 INTR 线发出中断请求,后者通过 NMI 线,通常是紧急的硬件故障。

异常可分为 故障(Fault)、自陷(Trap)和终止(Abort),故障有指令执行引起的异常,有非法操作码、除数为 0、运算溢出、缺页故障等;自陷是一种实现安排的异常,用于在用户态下调用内核程序,如陷阱指令;终止是出现了是的 CPU 无法继续执行的故障。

系统调用

操作系统向用户提供的接口,可分为以下几类:

  1. 设备管理
  2. 文件管理
  3. 进程控制
  4. 进程通信
  5. 内存管理

操作系统结构

随着操作系统的规模不断增大,使用合理的结构对于降低操作系统的复杂度、提升安全性和可靠性至关重要,通常有:

  1. 分层法:将操作系统分为若干层,最底层(0)为硬件,最高层为用户接口,每次只调用底层的服务,便于系统调试验证,易于扩充和维护,但是合理定义各层比较困难,依赖关系固定不够灵活;
  2. 模块化:将操作系统按照功能互粉为具有一定独立性的模块,并规定好不同模块间的接口;但是划分模块时,若模块划分太小,虽然能降低复杂度,但是会使得模块之间的联系过多,造成系统混轮;过大则会增加系统复杂性;
  3. 宏内核:又称单内核或大内核,即将系统的主要功能都作为一个紧密联系的整体运行在核心态,各模块共享信息,性能好;但随着内核规模的增加,开销也越来越大;当前主流系统也广泛吸取了微内核架构的有点;
  4. 微内核:只将最基本的功能保留在内核中;扩展性灵活性高,添加功能无需修改内核代码;可靠性安全性高,被移除内核的功能崩溃时,不会导致整个内核崩溃;可移植性;支持分布式计算;但是微内核结构的主要问题是需要频繁地在核心态和用户态之间切换;微内核主要在实时、工业、航空及军事中流行;
  5. 外核:不同于虚拟机克隆真实机器,可以对及其分区,给每个用户一个资源子集,外核的任务就是为虚拟机分配资源,保证相互不占用。
定义微内核的四个方面
  1. 足够小的内核
  2. 基于客户/服务器模型
  3. 应用 机制与策略分离,前者是实现某一功能的具体执行机构,后者是在前者基础上借助某些方法实现该功能的优化;宏内核中将机制放在内核较底层,策略在较高层,而微内核中机制在微内核中,策略在内核外;
  4. 才用面向对象技术,基于抽象和隐蔽原则控制系统的复杂性,利用对象、封装和继承等确保操作系统的正确性、易扩展性等。

引导

常见的引导过程:

  1. 激活 CPU,读取 ROM 中的 boot 城区,将指令寄存器置为 BIOS(基本输入输出系统)的第一条指令;
  2. 硬件自检,若有故障,主板会发出对应的蜂鸣;否则屏幕显示 CPU、内存、硬盘等信息;
  3. 加载带有操作系统的磁盘,BIOS 开始读取 Boot Sequence(CMOS 里保存的启动顺序或者用户交互),将控制权交给第一位的存储设备,并将引导扇区的内容装入内存;
  4. 加载主引导记录 MBR,通过特定的标识符找到引导硬盘;
  5. 扫描硬盘分区表,找到引导分区;
  6. 加载分区引导记录 PBR,启动引导操作系统的程序;
  7. 加载启动管理器
  8. 加载操作系统

虚拟机

tip

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

一般有两类虚拟化方法,第一类虚拟机管理程序类似一个操作系统,因为其运行在最高特权,其在裸机上运行并具有多道程序功能,向上提供若干虚拟机作为裸机的复制品,虚拟机作为用户态的进程运行,而虚拟机上的操作系统认为自己运行在内核态,称为 虚拟内核态,真正执行内核指令时,由虚拟机管理程序模拟;第二类运行在具体的操作系统上。