# 计算机系统概述

知识结构

  • 操作系统的概念,特征,功能和提供的服务
  • 操作系统的发展与分类
  • 操作系统的运行环境
    • 内核态与用户态
    • 中断、异常
    • 系统调用
  • 操作系统体系结构

# 1.1 操作系统的基本概念

# 1.1.1 操作系统的概念

在信息化时代,软件是计算机系统的灵魂,而作为软件核心的操作系统,已与现代计算机系统融为一体。

计算机系统自下而上可大致分为四部分:硬件、操作系统、应用程序和用户。

  • 硬件如 CPU,内存,显卡等提供基本的计算资源
  • 操作系统管理各种计算机硬件,为应用程序提供基础
  • 应用程序使用计算资源来解决用户的计算问题

# 1.1.2 操作系统的特征

并发 Concurrence

并发是指两个或多个事件在同一时间间隔内发生。操作系统的并发性指的是计算机系统中同时存在多个运行的程序。操作系统具有处理和调度多个程序同时执行的能力。

注意同一时间段和同一时刻的区别,操作系统的并发性是通过分时得以实现的。

共享 Sharing

资源共享即为共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。

  • 互斥共享 一段时间内只允许一个进程访问该资源
  • 同时访问 这类资源运行在一段时间内有多个进程“同时”访问,在微观上这些进程可能是交替地对该资源进行访问即分时共享的。

虚拟 Virtual

虚拟是指一个物理上的实体变为若干逻辑上的对应物。操作系统中利用了多张虚拟技术来实现虚拟处理器,虚拟内存和虚拟外部设备。

异步 Asynchronism

多道程序允许多个程序并发执行,但由于资源有限,进程的执行并不是一贯到底,是走走停停的,它以不可预知的速度向前,这就是进程的异步性。

异步性使得操作系统运行在一种随机的环境下。可能导致进程产生和时间有关的错误。然而,只要运行环境相同,操作系统就须保证多次访问进程都能获得相同的结果(幂等性?)

# 1.1.3 操作系统的目标和功能

为了给多道程序良好的运行环境,操作系统应具有以下几个方面的功能:处理机管理、存储器管理、设备管理和文件管理。为了方便用户使用,操作系统还需向用户提供接口。

同时操作系统可用来扩充机器,以提供更方便的服务,更高的资源利用率。

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

  • 进程管理:在多道程序环境下,处理机的分配和运行都以进程为基本单位,因此对处理机的管理可归结为对进程的管理。
  • 存储器管理:存储器管理是为了给多道程序的运行提供良好的环境,方便用户使用及提高内存的利用率。
  • 文件管理:计算机中的信息都是以文件的形式存在,操作系统中负责文件管理的部分称为- 文件系统。 设备管理:设备管理的主要任务是完成用户的 I/O 请求

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

  • 命令接口:用户通过控制台或终端输入操作命令,由命令解释程序解释并执行输入的命令。
  • 程序接口:程序接口由一组系统调用命令组成,用户在程序中可以直接使用这组系统指令向用户提出各种服务。

操作系统用作扩充机器

没有任何软件支持的计算机成为裸机,它仅构成计算机系统的物质基础,而实际呈现在用户面前的计算机系统是经过若干层软件改造的计算机。

# 1.2 操作系统的发展和分类

# 1.2.1 手工操作阶段

早期,用户在计算机上的所有工作都需要人工干预,如程序的装入,运行,结果的输出等。随着计算机硬件的发展,人机矛盾越来越多,必须寻求新的解决办法。

# 1.2.2 批处理阶段

单道批处理系统

单道批处理系统是在解决人机矛盾以及 CPU 和 IO 设备速率不匹配的矛盾中形成的。系统对作业的处理是成批进行的,但内存中始终保持一道作业。

单道批处理系统的主要特征如下:

  • 自动性。在顺利的情况下,一批作业能够自动逐个运行,无需人工干预
  • 顺序性。各道作业顺序的进入内存,作业的完成顺序和进入顺序相同
  • 单道性。内存中仅有一道程序运行。

TIP

此时的问题是:当程序在运行期间发出 IO 请求时,高速的 CPU 就会等待低速的 IO 完成。

多道批处理系统

多道批处理系统运行多个程序同时进行内存,并允许它们在 CPU 中交替运行,这些程序共享系统中的各种软硬件资源。

多道批处理系统的主要特征如下:

  • 多道。计算机内存中同时存放多道互相独立的程序
  • 宏观上并行。同时进入内存的多道程序都处于运行过程,但各自先后开始,且保持运行状态。
  • 微观上串行。内存中的多道程序轮流占有 CPU 资源,交替进行。

多道批处理系统把用户提交的作业成批送入计算机内存,然后由作业调度程序自动的选择作业运行。

# 1.2.3 分时操作系统

在操作系统的分时技术就形成分时系统。所谓分时技术,是指把处理器的运行时间分成很短的时间片,按时间片轮流将处理器分配给各作业使用。

分时循环

若某个作业在分配给它的时间片内不能完成其计算时,则该作业暂时停止运行,保留其内存资源,把处理器让给其他作业使用,等待下一轮在继续运行。由于计算机运行很快,作业轮换也非常快,因此给每个用户的感觉就像是自己独占一台计算机。

分时系统的主要特征如下:

  • 同时性。运行多个终端用户同时使用一台计算机
  • 交互性。用户能够通过终端与系统进行人机对话
  • 独立性。系统的用户可以彼此独立操作
  • 及时性。用户请求能够在很短时间内获得相应

# 1.2.4 实时操作系统

为了能够在某个时间限制内完成某些紧急任务而不需要时间片排队,诞生了实时操作系统。若某个动作必须绝对的在规定的时刻发生,则称为硬实时系统,比如飞行器的自动控制系统。若能接受偶尔违反时间规定的称为软实时系统。

实时系统的主要特点是及时性和可靠性。

# 1.2.5 网络操作系统

网络操作系统把计算机网络的各台计算机结合起来,提供一种统一的使用方法,实现各台计算机之间数据的互相传送。

网络操作系统最主要的特点是网络中各种资源的共享及各台计算机之间的通信。

# 1.2.6 分布式计算机系统

分布式计算机系统由多台计算机组成,该系统满足如下条件:

  • 系统中任意两台计算机通过通信方式交换信息
  • 系统中的每台计算机都具有同等地位
  • 每台计算机上的资源为所有用户共享
  • 系统中的任意台计算机都可以构成一个子系统

用于管理这些分布式计算机的操作系统称为分布式计算机系统,该系统的主要特点是:分布性和并行性。

# 1.2.7 个人计算机操作系统

个人操作系统是目前使用最广泛的操作系统,应用于文字处理,电子表格,网页浏览,电子游戏中,常见的个人计算机操作系统有UnixLinuxWindowsMacintosh等。

# 1.3 操作系统的运行环境

# 1.3.1 操作系统的运行机制

计算机系统中,一般分为两种不同性质的程序:一种是操作系统内核程序;另一种是用户自编程序;前者是后者的管理者。

大多数操作系统内核包括四方面的内容

时钟管理

在计算机的各种部件中,始终是最关键的设备。时钟的第一功能是计时,操作系统需要通过时钟管理,向用户提供标准的系统时间。另外通过时钟中断的管理,可以实现进程的切换。

中断机制

引入中断技术的初衷是提高多道程序运行环境中 CPU 的利用率,而且主要是针对外部设备的。后台逐步得到发展,形成了多种类型,称为操作系统各项操作的基础,IO 设备,进程管理,设备驱动,文件访问无不依赖于中断机制。

中断机制中,只有一小部分属于内核,它们负责保护和回复中断现场的信息,转移控制权到相关的处理程序。

原语

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

  • 处于操作系统的最底层,接近硬件
  • 操作具有原子性,其操作只能一气呵成
  • 这些程序的运行时间都较短,而且调用频繁。

系统控制的数据解构及处理

系统中用来登记状态信息的数据结构很多,如作业控制块,进程控制块,设备控制块等,为了实现有效的管理,系统需要一些基本的操作,常见的操作有以下三种:

  • 进程管理。进程状态管理,进程调度和分派,创建与撤销进程控制块。
  • 存储器管理。存储器的空间分配和回收,内存信息保护程序,代码对换程序。
  • 设备管理。缓冲区管理,设备分配和回收

# 1.3.2 中断和异常的概念

中断是操作系统中非常重要的一个概念,对一个运行在计算机上的使用操作系统而言,缺少了中断机制,将是不可想象的。原因是操作系统的发展过程大体上就是一个想方设法不断提高资源利用率的过程,而提高资源利用率就需要在程序并未使用某种资源时,把它对那种资源的占有权释放,这一行为就需要通过中断实现。

# 1.3.3 系统调用

所谓系统调用,是指用户在程序中调用操作系统所提供的一些子功能,系统调用可视为特殊的公共子程序。

通常,一个操作系统提供的系统调用命令有几十条乃至上百条之多。

  • 设备管理
  • 文件管理
  • 进程控制
  • 进程通信
  • 内存管理
  • ...

# 1.4 操作系统的体系结构

# 1.4.1 大内核和微内核

操作系统有两种主要的体系结构:大内核和微内核

大内核系统将操作系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从而为应用提供高性能的系统服务。因为各管理模块之间共享信息,能有效利用相互之间的有效特性,所以具有无可比拟的性能优势。

但随着需求的不断发展,需要提供的服务越来阅读,接口越来越负载,操作系统的设计规模急剧增长,操作系统也面临这“软件危机”困境。

为解决操作系统的内核代码难以维护的问题,提出了微内核的体系结构。它将内核中最基本的功能保留在内核,而将那些不需要再核心态执行的功能移到用户态执行。

# 1.5 本章疑难点

并行性与并发性的区别和联系

  • 并行性,同一时刻多个事件同时发生
  • 并发性,一段时间间隔内多个事件同时发生

宏观上,一段时间内有多个程序同时运行具有并发性,但在单处理器系统中,微观上这些程序只能分时的交替运行。若计算机系统有多个处理器,则这些程序可以被分配到多个处理器上,实现并行执行。

特权指令和非特权指令

特权指令指拥有特殊权限的指令,这些指令权限最大,使用不当可能导致整个系统崩溃。为保障安全,这类指令只能在核心态执行。

访管指令与访管中断

访管指令时一条可以在用户态下执行的指令,用户程序应要求操作系统提供服务而使用访管指令,从而产生一个中断,将操作系统转换为核心态,称为访管中断。访管中断由访管指令产生,程序使用访管指令向操作系统请求服务。