计算机系统
计算机是 20 世纪 40 年代人类的伟大创造,它对人类社会的进步与发展作用巨大,影响深远。广泛运用于科学计算、过程控制、信息传递和数据处理,已渗透到办公、教育、家庭等多个领域。
计算机系统包括计算机硬件和计算机软件两大部分。
- 计算机硬件:计算机系统的最内层是硬件。主要由中央处理器(CPU)、存储器、输入输出控制系统和输入输出设备组成。
- 中央处理器:是对信息进行告诉运算和处理的部件。
- 存储器:分为主存储器(内存)和辅助存储器(磁盘、磁带、光盘等),用于存放各种程序和数据。主存储器可被中央处理器直接访问。
- 输入输出设备:如键盘、鼠标、显示器、打印机等,是计算机与用户的交互接口部件、输入输出控制系统管理外围设备(辅助存储器和输入输出设备)与主存储器之间的信息传递。
- 计算机软件:计算机系统的最外层是使用计算机的人,人与计算机硬件之间的接口界面就是计算机软件。一般,计算机软件可以分为系统软件、支撑软件以及应用软件三类。
- 系统软件:计算机系统中最靠近硬件层次的软件,是计算机系统中不可缺少的软件。如操作系统、编译程序等。
- 支撑软件:支撑其他软件的开发和维护的软件。如各种接口软件、软件开发工具和环境等。
- 应用软件:特定应用领域专用的软件。如人口普查软件、飞机订票软件等。
操作系统
操作系统(Operating System,OS)是管理计算机系统资源、控制程序执行、改善人机界面和为应用软件提供支持的一种系统软件。
操作系统的作用:
- 管理计算机系统的资源,包括硬件资源(中央处理器、主存储器、各种外围设备)和软件资源(程序、数据)。
- 为用户提供方便的使用接口。
- 具有扩充硬件的功能。
从资源管理的角度看,操作系统的功能可分为:
- 处理器管理(进行处理器的分配和调度,尤其是在多道程序或多用户的情况下)
- 存储管理(对主存储器进行管理)
- 文件管理(向用户实现文件的按名存取、检索,解决文件的共享、保护和保密)
- 设备管理(管理各种外围设备,包括分配、启动和故障处理)
操作系统的形成与基本类型
随着计算机软硬件技术的发展,逐步形成了三种基本类型的操作系统:批处理操作系统、分时操作系统、实时操作系统。
- 批处理操作系统
20 世纪 50 年代出现了第一个操作系统,它是一个“单道批处理系统”。如果把一个计算问题看成是一个作业 的话,该系统每次只允许一个作业执行。当一批作业和初始数据交给系统后,系统顺序控制作业的执行,即一个接一个做。
20 世纪 60 年代出现“多道批处理系统”,它允许多个作业同时装入主存储器,使一个中央处理轮流执行各个作业,各个作业可同时使用各自所需的外围设备,提高了计算机系统的资源使用效率。
- 分时操作系统
20 世纪 60 年代也设计了“分时操作系统”,允许多个用户通过与计算机相连的终端来使用计算机系统,系统能快速对用户的请求作出应答,使得每个用户都感到好像各自有一台独立的支持自己请求服务的计算机。
- 实时操作系统
20 世纪 60 年代还出现了“实时操作系统”,用于控制生产流水线、控制实验等。实时操作系统控制下计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完接收的事件。例如,有一个反应堆提供参数的周期是 T,计算机系统接收参数、进行测定、完成计算、产生控制阀门的命令需要的时间为 t,则应保证 t <= T。设计实时操作系统必须首先考虑系统的实时性和可靠性,其次才考虑系统的效率。
操作系统的发展
- 微机操作系统
20 世纪 70 年代,微处理技术的发展助长了微型计算机的发展。最简单的微型计算机由一个中央处理器、主存储器、和终端(显示器、键盘、鼠标)组成,通常还增加一个磁盘和一台打印机。当时,微型计算机多数是个人使用的计算机,操纵系统的主要功能是实现文件管理、输入/输出控制和命令的解释。早期的微型计算机上运行的操作系统只允许一个用户使用计算机,被称为“单用户微机操作系统 ”,如 MS-DOS。
- 网络操作系统
把若干台地理上分散并具有自治功能的计算机系统用通信线路连接起来构成计算机网络,而为计算机网络配置的操作系统就称为“网络操作系统 ”。主要功能是实现各台计算机系统之间的通信以及网络中各种资源共享。
- 分布式操作系统
20 世纪 80 年代是并行计算的年代。由于微处理价格逐年下降,功能日益扩大,应用日趋广泛,逐渐形成了分布式计算机系统。分布式计算机系统是由多台计算机组成的一种特殊的计算机网络,有 3 种结构(环形结构、星型结构、树形结构),而为分布式计算机系统配置的操作系统称为“分布式操作系统 ”。
分布式操作系统能使系统中若干台计算机协作完成一个共同的任务(拆分任务,并行执行,最后合并处理结果)。
分布式操作系统采用 客户/服务器 模式。一般,一个服务器会致力于某一类任务(如打印服务、文件服务、数据库存取服务、绘图服务、邮件服务等)。
对用户来说,分布式操作系统有 2 个主要特点:
- 统一性。用户使用分布式操作系统就好像使用一个“单一的计算机系统”,完全感受不到该系统是由多台计算机构成的。
- 透明性。用户不知道系统资源所在位置,也不知道是哪台计算机在服务,更不知道系统中是否还有其他用户在与其竞争资源。
- 嵌入式操作系统
随着计算机技术对各个领域的渗透,计算机硬件不再以物理上独立的装置形式出现,而是大部分或全部都隐藏和嵌入到各种应用系统中,这样的系统称为“嵌入式(计算机)系统 ”。嵌入式(计算机)系统需要嵌入式软件的支持,其中,“嵌入式操作系统 ”是指运行在嵌入式(计算机)系统中对各种部件、装置等资源进行统一协调、处理和控制的系统软件。
嵌入式操作系统的主要特点有 2 个:
- 微型化。由于嵌入式(计算机)系统的硬件配置较小,所以嵌入式操作系统在保证应用功能的前提下都采用微型化、低功耗的结构。
- 实时性。嵌入式系统广泛运用于过程控制、数据采集、传输通信等场合,对响应时间有严格要求,因而,它应是一个实时性的操作系统。
UNIX 操作系统
UNIX 是一个通用的交互式分时操作系统,有如下主要特点:
- 短小精悍。结构上分内核与外壳两层,内核程序精心设计,算法简捷。外壳为用户提供完备的程序设计环境。内核与外壳完美结合,构成了小巧灵活且功能强大的系统。
- 具有可装卸的多层次文件系统。UNIX 文件系统构成一棵多级树,便于快速查找文件、有利于文件共享、保证文件安全,并把外围设备也作文件看,用户不必区分文件与设备,便于使用。
- 可移植性好。UNIX 是 C 语言写的,有利于移植到不同的硬件环境中。
- 网络通信功能强。UNIX 提供了一系列网络通信工具和协议,被广泛采用。
UNIX 是目前唯一可以安装和运行在微机、工作站、大型机、巨型机上的操作系统。
Linux 操作系统
Linux 是网络时代的产品,由于开源,所以人们可以自由下载,并对它改造、扩充和完善,助其高速成长。它继承了 UNIX 的优点,并做了许多的改进。
它是一个多任务多用户的通用操作系统,具有许多特点:
- 支持 TCP/IP 网络协议,并能与其他网络集成,使异种机能方便地入网
- 支持并行处理和实时处理,能充分发挥硬件性能
- 支持多种文件系统
处理器的工作状态
任何程序都需要占用处理器后才能执行,而一个计算机系统中往往既有系统程序,又有用户程序,它们都要占用处理器以完成各自的任务。由于计算机系统中的资源是由操作系统统一管理的,任何一个用户程序都不能擅自改变资源的使用情况,因此,处理器应有不同的状态,以区分当前正在执行的指令是操作系统的还是用户程序的。
- 特权指令 & 非特权指令
为保证计算机系统正确可靠的运行,经常把 CPU 执行的指令分成两类:特权指令和非特权指令。 把不允许用户程序中直接使用的指令称为“特权指令 ”,其余的为“非特权指令 ”。例如,I/O 指令、设置时钟、设置控制寄存器等指令都是特权指令,只允许操作系统使用,不允许用户程序中使用。若用户程序直接使用这些指令,则可能引起冲突或由于某些意外而造成错误。
- 管态和目态
中央处理器具有两种工作状态:目态和管态。管态可执行一切指令,目态不允许执行特权指令。所以,操作系统占用中央处理器时,应让中央处理器在管态下工作;当用户程序占用中央处理器时,应让中央处理器在目态下工作。
- 程序状态字
CPU 怎样确定当前应按目态执行指令还是管态执行指令呢?又怎样保证交替的为各个程序服务时不出错?
程序状态字 (Program Status Word,PSW)就是用来控制指令执行顺序,并且保留和指示与程序有关的系统状态。
程序状态字包含 3 部分内容:
- 程序基本状态(a.指令地址 - 指出下一条指令的存放地址;b.条件码 - 指出指令执行结果的特征;c.目态/管态 - 指出特权指令是否可以执行;d.等待/计算 - 等待状态处理器不执行任何指令,计算状态处理器按地址顺序执行指令)
- 中断码(保存程序执行时当前发生的中断事件)
- 中断屏蔽位(指出程序执行中发生中断事件时,要不要响应出现的中断事件)
每一个程序都需要有一个程序状态字来刻画本程序的执行状态。显然,操作系统的 PSW 中 目态/管态 位应设置为管态,而用户程序中的 PSW 中 目态/管态 位应设置为目态。
在单处理器的计算机系统中,整个系统会设置一个用来存放当前运行程序的 PSW 的寄存器,该寄存器称为“程序状态字寄存器 ”。处理器总是按程序状态字寄存器中的指令地址和设置的其他状态来控制程序的运行。所以,当操作系统调度到某个程序运行时,必须把该程序的 PSW 送入到程序状态字寄存器中,这时处理器就控制改程序的执行。同样,当某个程序暂时让出处理器时,必须把它的 PSW 保存好,一旦它能继续执行时,又可把它的 PSW 再次送入到程序状态字寄存器中。
操作系统与用户的接口
为了使用户能方便地使用计算机系统,操作系统提供了 2 类使用接口:程序员接口(程序员接口 指一组系统功能调用) & 操作员接口( 操作员接口 指一组操作控制命令)。
- 系统调用(程序员接口)
操作系统编制了许多不同功能的子程序(例如,读文件、写文件、分配主存、启动 I/O 等)供用户程序执行中调用,这些由操作系统提供的子程序称为 系统功能调用程序,简称 系统调用。
系统调用是操作系统保证程序设计语言能正常工作的一种支持,在源程序一级,用户程序设计语言描述算题任务的逻辑要求,例如读文件、写文件、请求主存资源等,这些要求的实现只能通过操作系统的系统调用才能完成,其中有些要求还必须执行硬件的特权指令(如 I/O)才能达到目的。
现代操作系统都有一条“访管指令 ”,这是一条目态下执行的指令。编译程序将源程序翻译成目标程序时,会把源程序中需要调用系统功能的逻辑要求转换为一条访管指令,并设置一些参数。当处理器执行到访管指令时就产生一个中断事件,实现用户程序与系统调用程序的转换。系统调用程序按规定的参数实现指定功能,当一次系统调用结束后,再返回到用户程序。
- 操作控制命令(操作员接口)
操作系统提供了让联机用户(操作员一级)表示作业执行步骤的手段称为 操作控制命令 。
- One By One:用户每输入一条命令,操作系统就按命令要求控制程序的执行,一条命令的控制结束后,就通知用户输入下一条命令,直至作业执行结束。
- 作业控制语言:批处理系统中,允许用户使用作业控制语言事先准备好一份表示整个作业执行步骤的“作业控制说明书”,系统会据此自动执行,用户不必守候在旁,既方便用户,又有利于系统对作业进行批处理。
Test
1. 计算机系统由哪两大部分组成?
答:计算机系统由计算机硬件和计算机软件两大部分组成。
2. 什么是计算机的操作系统?
答:计算机的操作系统是管理计算机系统资源、控制程序执行、改善人机界面和为应用软件提供支持的一种系统软件。
3. 操作系统管理哪些资源?
答:操作系统管理计算机系统的硬件资源和软件资源。硬件资源包括中央处理器、主存储器、各类外围设备等。软件资源包括各种程序、数据、文档。
4. 为什么把“I/O 指令”等定义为特权指令?
答:I/O 指令、设置时钟、设置控制寄存器等指令都是特权指令,只允许操作系统使用,不允许用户程序中使用。若用户程序直接使用这些指令,则可能引起冲突或由于某些意外而造成错误。
5. 怎样限制用户程序中使用特权指令?
答:计算机系统设置一组特权指令,只允许操作系统在管态下使用。而用户程序被设置在目态下执行,因此不能直接使用特权指令。每一个程序都有一个程序状态字(PSW),用来刻画本程序的执行状态。
6. 操作系统为什么要提供“系统调用”?
答:系统调用是操作系统保证程序设计语言能正常工作的一种支持,在源程序一级,用户程序设计语言描述算题任务的逻辑要求,例如读文件、写文件、请求主存资源等,这些要求的实现只能通过操作系统的系统调用才能完成,其中有些要求还必须执行硬件的特权指令(如 I/O)才能达到目的。
7. 批处理操作系统、实时操作系统和分时操作系统各有什么特点?
答:
1. 批处理操作系统又分“单道批处理系统”和“多道批处理系统”。将一批作业和数据交给操作系统后,操作系统会挨个执行作业或并行执行作业,提高了计算机系统的资源使用效率,但作业执行时用户不能直接干预作业的执行,若有错误发生,由操作系统通知用户修改后再次装入执行。
2. 实时操作系统在接收到外部信号后,需及时进行处理,并且要在严格的时限内处理完接收的事件。以控制一个实验反应堆为例(t <= T,…….),设计实时操作系统必须首先考虑系统的实时性和可靠性,其次才考虑系统的效率。
3. 分时操作系统允许多个用户通过与计算机相连的终端来使用计算机系统,能快速对用户的请求作出应答,使每个用户都感到好像各自有一台独立的支持自己请求服务的计算机。
8. 从资源管理的观点来看,操作系统有哪些基本功能?
答:为了提高计算机系统的资源利用率,保证计算机系统安全可靠的工作,操作系统对各类资源统一管理。从资源管理的观点看,操作系统的基本功能可分为:中央处理器管理、存储管理、文件管理和设备管理。