计算机系统概述

基本概念

概念

  • 计算机系统自下而上可以大致分为 4 部分:硬件操作系统应用程序用户(这里的划分与计算机组成原理中的分层不同)。
  • 操作系统管理各种计算机硬件,为应用程序提供基础,并且充当计算机硬件与用户之间的中介。
  • 硬件提供基本的计算资源,应用程序规定按何种方式使用这些资源来解决用户的计算问题,操作系统控制和协调各用户的应用程序对硬件的分配与使用。
  • 操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合。操作系统是计算机系统中最基本的系统软件。

特征

  • 操作系统的基本特征包括并发共享虚拟异步
  1. 并发(Concurrence)
  • 并发是指两个或多个事件在同一间间隔内发生。在多道程序环境下,在内存中同时装有若干道程序,以便当运行某道程序时,利用其因I/O操作而暂停执行时的CPU空档时间,再调度另一道程序运行,从而实现多道程序交替运行,使CPU保持忙碌状态。
  • 并行性是指系统具有同时进行运算或操作的特性,在同一时刻能完成两种或两种以上的工作。
  • 操作系统的并发性是通过分时得以实现的。而CPU与I/O设备、I/O设备和I/O设备则能实现真正的并行。若要实现进程的并行则需要有相关硬件的支持,如多流水线或多处理机环境。
  • 在操作系统中,引入进程的目的是使程序能并发执行。
  1. 共享(Sharing)
  • 资源共享即共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。资源共享主要可分为互斥共享同时访问两种方式。
    (1)互斥共享方式
  • 当进程A访问某个资源时,必须先提出请求,若此时该资源空闲,则系统便将之分配给A使用,此后有其他进程也要访问该资源时(只要A未用完)就必须等待。仅当A访问完并释放该资源后,才允许另一个进程对该资源进行访问。我们将这种资源共享方式称为互斥共享,而将在一段时间内只允许一个进程访问的资源称为临界资源。计算机系统中的大多数物理设备及某些软件中所用的栈、变量和表格,都属于临界资源,它们都要求被互斥地共享。
    (2)同时访问方式
  • 系统中还有另一类资源,这类资源允许在一段时间内由多个进程“同时”访问。这里所说地“同时”通常是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问即“分时共享”的。可供多个进程“同时”访问的典型资源是磁盘设备,一些用重入代码编写的文件也可被“同时”共享,即允许若干用户同时访问该文件。
  • 注意,互斥共享要求一种资源在一段时间内(哪怕是一段很短的时间)只能满足一个请求,否则就会出现严重的问题(比如打印机第一行打印文档A的内容,第二行打印文档B的内容),而同时访问共享通常要求一个请求分几个时间片段间隔地完成,其效果与连续完成的效果相同。

并发共享是操作系统两个最基本的特征,两者之间互为存在的条件: 资源共享是以的并发为条件的,若系统不允许程序并发执行,则自然不存在资源共享问题; 若系统不能对资源共享实施有效的管理,则必将影响到程序的并发执行,甚至根本无法并发执行。

  1. 虚拟(Virtual)
  • 虚拟是指将一个物理上的实体变为若干逻辑上的对应物。物理实体(前者)是实的,即实际存在的;而后者是虚的,是用户感觉上的事物。用于实现虚拟的技术称为虚拟技术。操作系统上的虚拟技术可归纳为:时分复用技术,如虚拟处理器;空分复用技术,如虚拟存储器。
  • 虚拟处理器:通过多道程序设计技术,让多道程序并发执行,来分时使用一个处理器。此时,虽然只有一个处理器,但它能同时为多个用户服务,使每个终端用户都感觉有一个CPU在专门为它服务。利用多道程序设计技术将一个物理上的CPU虚拟为多个逻辑上的CPU,称为虚拟处理器
  • 虚拟存储器:采用虚拟存储器技术将一台机器的物理存储器变为虚拟存储器,以便从逻辑上扩充存储器的容量。当然,这时用户所感觉到的内存容量是虚的。我们将用户感觉到(但实际不存在)的存储器称为虚拟存储器
  • 还可采用虚拟设备技术将一台物理I/O设备虚拟为多台逻辑上的I/O设备,并允许每个用户占用一台逻辑上的I/O设备,使原来仅允许在一段时间内由一个用户访问的设备(临界资源)变为在一段时间内允许多个用户同时访问的共享设备。
  1. 异步(Asynchronism)
  • 多道程序环境允许多个程序并发执行,但由于资源有限,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进,这就是进程的异步性
  • 异步性使得操作系统运行在一种随机的环境下,可能导致进程产生与时间有关的错误(就像对全局变量的访问顺序不当会导致程序出错一样)。然而,只要运行环境相同,操作系统就须保证多次运行进程后都能获得相同的结果。

目标和功能

  • 为了给多道程序提供良好的运行环境,操作系统应具有以下几方面的功能:处理机管理存储器管理设备管理文件管理。为了方便用户使用操作系统,还必须向用户提供接口。同时,操作系统可用来扩充机器,以提供更方便的服务、更高的资源利用率。
  1. 操作系统作为计算机系统资源的管理者
    (1)处理机管理
  • 在多道程序环境下,处理机的分配和运行都以进程(或线程)为基本单位,因而对处理机的管理可归结为对进程的管理。
  • 并发是指在计算机内同时运行多个进程,因此进程何时创建、何时撤销、如何管理、如何避免冲突、合理共享就是进程管理的最主要的任务。
  • 进程管理的主要功能包括进程控制、进程同步、进程通信、死锁处理、处理机调度等。
    (2)存储器管理
  • 存储器管理是为了给多道程序的运行提供良好的环境,方便用户使用及提高内存的利用率,主要包括内存分配与回收、地址映射、内存保护与共享和内存扩充等功能。
    (3)文件管理
  • 计算机中的信息都是以文件的形式存在的,操作系统中负责文件管理的部分称为文件系统
  • 文件管理包括文件存储空间的管理、目录管理及文件读写管理和保护等。
    (4)设备管理
  • 设备管理的主要任务是完成用户的I/O请求,方便用户使用各种设备,并提高设备的利用率,主要包括缓冲管理、设备分配、设备处理和虚拟设备等功能。

    这些工作都由操作系统负责,用户无须关注。

  1. 操作系统作为用户与计算机硬件系统之间的接口
  • 为了让用户方便、快捷、可靠地操纵计算机硬件并运行自己的程序,操作系统还提供了用户接口。
  • 操作系统提供的接口主要分为两类:
    一类是命令接口,用户利用这些操作命令来组织和控制作业的执行;
    另一类是程序接口,编程人员可以使用它们来请求操作系统服务。
    (1)命令接口
  • 使用命令接口进行作业控制的主要方式有两种,即联机控制方式脱机控制方式。按作业控制方式的不同,可将命令接口分为联机命令接口脱机命令接口
  • 联机命令接口又称交互式命令接口,适用于分时或实时系统的接口。它由一组键盘操作命令组成。用户通过控制台或终端输入操作命令,向系统提出各种服务要求。用户每输入一条命令,控制权就转给操作系统的命令解释程序,然后由命令解释程序解释并执行输入的命令,完成指定的功能。之后,控制权转回控制台或终端,此时用户又可输入下一条命令。
  • 脱机命令接口又称批处理命令接口,适用于批处理系统,它由一组作业控制命令组成。脱机用户不能直接干预作业的运行,而应事先用相应的作业控制命令写成一份作业操作说明书,连同作业一起提交给系统。系统调度到该作业时,由系统中的命令解释程序逐条解释执行作业说明书上的命令,从而间接地控制作业的运行。
    (2)程序接口
  • 程序接口由一组系统调用(也称广义指令)组成。用户通过在程序中使用这些系统调用来请求操作系统为其提供服务,如使用各种外部设备、申请分配和回收内存及其他各种要求。
  • 当前最流行的是图形用户界面(GUI),即图形接口。GUI最终是通过调用程序接口实现的,用户通过鼠标和键盘在图形界面上单击或使用快捷键,就能很方便地使用操作系统。严格来说,图形接口不是操作系统的一部分,但图形接口所调用的系统调用命令是操作系统的一部分。
  1. 操作系统实现了对计算机资源的扩充
  • 没有任何软件支持的计算机称为裸机,它仅构成计算机系统的物质基础,而实际呈现在用户面前的计算机系统是经过若干层软件改造的计算机。裸机在最里层,其外面是操作系统。操作系统所提供的资源管理功能和方便用户的各种服务功能,将裸机改造成功能更强、使用更方便的机器;因此,我们通常将覆盖了软件的机器称为扩充机器虚拟机

发展历程

手工操作阶段(此阶段无操作系统)

  • 用户在计算机上算题的所有工作都要人工干预,如程序的装入、运行、结果的输出等。随着计算机硬件的发展,人机矛盾(速度和资源利用)越来越大,必须寻求新的解决办法。
  • 手工操作阶段有两个突出的缺点 用户独占全机,虽然不会出现因资源已被其他用户占用而等待的现象,但资源利用率低。 CPU等待手工操作,CPU的利用不充分。
  • 唯一的解决办法就是用高速的机器代替相对较慢的手工操作来对作业进行控制。

批处理阶段(操作系统开始出现)

  • 为了解决人机矛盾及CPU和I/O设备之间速度不匹配的矛盾,出现了批处理系统。按发展历程又分为单道批处理系统多道批处理系统(多道程序色痕迹技术出现以后)。
  1. 单道批处理系统
  • 为实现对作业的连续处理,需要先将一批作业以脱机方式输入磁带,并在系统中配上监督程序(Monitor),在其控制下,使这批作业能一个接一个地连续处理。虽然系统对作业的处理是成批进行的,但内存中始终保持一道作业。
  • 单道批处理系统的主要特征如下:
  1. 自动性。在顺利的情况下,磁带上的一批作业能自动地逐个运行,而无须人工干预。
  2. 顺序性。磁带上的各道作业顺序地进入内存,先调入内存的作业先完成。
  3. 单道性。内存中仅有一道程序运行,即监督程序每次从磁带上只调入一道程序进入内存运行,当该程序完成或发生异常情况时,才换入其后继程序进入内存运行。

此时面临的问题是:每次主机内存中仅存放一道作业,每当它在运行期间(注意这里是“运行时”而不是“完成后”)发出输入/输出请求后,高速的CPU便处于等待低速的I/O完成的状态。为了进一步提高资源的利用率和系统的吞吐量,引入了多道程序技术。

  1. 多道批处理系统
  • 用户所提交的作业都先存放在外存上并排成一个队列,作业调度程序按一定的算法从后备队列中选择若干作业调入内存,它们在管理程序的控制下相互穿插地运行,共享系统中的各种硬/软件资源。
  • 当某道程序因请求I/O操作而暂停运行时,CPU便立即转去运行另一道程序,这是通过中断机制实现的。它让系统的各个组成部分都尽量“忙”,切换任务所花费的时间很少,因而可实现系统各部件之间的并行工作,使其在单位时间内的效率翻倍。
  • 多道程序设计的特点多道宏观上并行微观上串行
  1. 多道。计算机内存中同时存放多道相互独立的程序。
  2. 宏观上并行。同时进入系统的多道程序都处于运行过程中,但都未运行完毕。
  3. 微观上串行。内存中的多道程序轮流占有CPU,交替执行。
  • 多道程序设计技术的实现需要解决下列问题
  1. 如何分配处理器。
  2. 多道程序的内存分配问题。
  3. I/O设备如何分配。
  4. 如何组织和存放大量的程序和数据,以方便用户使用并保证其安全性与一致性。
  • 在批处理系统中采用多道程序设计技术就形成了多道批处理操作系统。该系统将用户提交的作业成批地送入计算机内存,然后由作业调度程序自动地选择作业运行。
  • 优点:资源利用率高,多道程序共享计算机资源,从而使各种资源得到充分利用;系统吞吐量大,CPU和其他资源保持“忙碌”状态。
  • 缺点:用户响应的时间较长,不提供人机交互能力,用户既不能了解自己的程序的运行情况,又不能控制计算机。

分时操作系统

  • 所谓分时技术,是指将处理器的运行时间分成很短的时间片,按时间片轮流将处理器分配给各联机作业使用。若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时停止运行,将处理器让给其他作业使用,等待下一轮再继续运行。由于计算机速度很快,作业运行轮转得也很快,因此给每个用户的感觉就像是自己独占一台计算机。
  • 分时操作系统是指多个用户通过终端同时共享一台主机,这些终端连接在主机上,用户可以同时与主机进行交互操作而互不干扰。
  • 因此,实现分时系统的关键问题是如何使用户能与自己的作业进行交互,即当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,再将结果返回用户。
  • 分时系统也是支持多道程序设计的系统,但它不同于多道批处理系统。多道批处理是实现作业自动控制而无须人工干预的系统,而分时系统是实现人机交互的系统,这使得分时系统具有与批处理系统不同的特征。
  • 分时系统的主要特征如下:
  1. 同时性。同时性也称多路性,指允许多个终端用户同时使用一台计算机。
  2. 交互性。用户通过终端采用人机对话的方式直接控制程序运行,与同程序进行交互。
  3. 独立性。系统中多个用户可以彼此独立地进行操作,互不干扰,单个用户感觉不到别人也在使用这台计算机,好像只有自己单独使用这台计算机一样。
  4. 及时性。用户请求能在很短时间内获得响应。

虽然分时操作系统较好地解决了人机交互问题,但在一些应用场合,需要系统能对外部的信息在规定的时间(比时间片的时间还短)内做出处理(比如飞机订票系统或导弹制导系统),因此,实时操作系统应运而生。

实时操作系统

  • 为了能在某个时间限制内完成某些紧急任务而不需要时间片排队,诞生了实时操作系统。
  • 这里的时间限制可以分为两种情况:
  1. 若某个动作必须绝对地在规定的时刻(或规定的时间范围)发生,则称为硬实时系统,如飞行器的飞行自动控制系统,这类系统必须提供绝对保证,让某个特定的动作在规定的时间内完成。
  2. 若能够接受偶尔违反时间规定且不会引起任何永久性的损害,则称为软实时系统,如飞机订票系统、银行管理系统。
  • 在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并在严格的时限内处理完接收的事件。
  • 实时操作系统的主要特点及时性可靠性

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

  • 网络操作系统将计算机网络中的各台计算机有机地结合起来,提供一种统一、经济而有效的使用各台计算机的方法,实现各台计算机之间数据的互相传送。
  • 网络操作系统最主要的特点是网络中各种资源的共享和各台计算机之间的通信。
  • 分布式计算机系统是由多台计算机组成并满足下列条件的系统:
  1. 系统中任意两台计算机通过通信方式交换信息;
  2. 系统中的每台计算机都具有同等的地位,即没有主机也没有从机;
  3. 每台计算机上的资源为所有用户共享;
  4. 系统中的任意台计算机都可以构成一个子系统,并且还能重构;
  5. 任何工作都可以分布在几台计算机上,由它们并行工作、协同完成。
  • 用于管理分布式计算机系统的操作系统称为分布式计算机系统。该系统的主要特点是:分布式并行性
  • 分布式操作系统与网络操作系统的本质不同是,分布式操作系统中的若干计算机相互协同完成同一任务。

个人计算机操作系统

  • 个人计算机操作系统是目前使用最广泛的操作系统,它广泛应用于文字处理、电子表格、游戏中,常见的有Windows、Linux和MaxOS等。
  • 操作系统的发展历程如图所示:
  • 此外,还有嵌入式操作系统、服务器操作系统、智能手机操作系统等。

运行环境

处理器运行模式

  • 在计算机系统中,通常CPU执行两种不同性质的程序:一种是操作系统内核程序;另一种是用户自编程序(系统外层的应用程序,简称应用程序)。对操作系统而言,前者是后者的管理者,因此内核程序要执行一些特权指令,而用户自编程序出于安全考虑不能执行这些特权指令。
  • 特权指令,是指不允许用户直接使用的指令,如I/O指令、关中断指令、内存清零指令,存取用于内存保护的寄存器、送PSW到程序状态字寄存器等的指令。
  • 非特权指令,是指允许用户直接使用的指令,它不能直接访问系统中的软硬件资源,仅限于访问用户的地址空间,这也是为了防止用户程序对系统造成破坏。