第1章 计算机系统概述
创始人
2024-02-05 14:41:13
0次
- 1.1 操作系统的基本概念
- 1.1.1 操作系统的概念 操作系统是计算机系统中最基本的系统软件。
- 操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合。
- 1.1.2 操心系统的特征 操作系统的基本特征包括:并发、共享、虚拟和异步。并发和共享是操作系统两个最基本的特征,两者之间互为存在的条件。
- 1. 并发(Concurrence):并发是指两个或多个事件在同一时间间隔内发生。 操作系统的并发性指计算机系统中同时存在多个运行的程序。操作系统的并发性是通过分时实现的。

- 2. 共享(Sharing):指系统中的资源可供内存中多个并发执行的进程共同使用。
- (1)互斥共享方式:在一段时间内只允许一个进程访问该资源(这种资源就叫临界资源)。如打印机、磁带机等大多数物理设备及某些软件中所用的栈、变量和表格这些临界资源。
- (2)同时访问方式:允许在一段时间内由多个进程“同时”访问。如磁盘设备、用重入码编写的文件。 “同时”指宏观上的,而在微观上还是交替对该资源进行访问的。
- 3. 虚拟(Virtual):把一个物理上的实体变为若干逻辑上的对应物。 操作系统的虚拟技术应用在虚拟处理器、虚拟内存和虚拟外部设备等。操作系统的虚拟技术可归纳为:时分复用技术,如处理器的分时共享;空分复用技术,如虚拟存储器。
- 4. 异步(Asynchronism):操作系统运行在一种随机的环境下,以不可预知的速度向前推进,可能导致进程产生与时间有关的错误。 只要运行环境相同,操作系统就必须保证多次运行进程后都能获得相同的结果。
- 1.1.3 操作系统的目标和功能 操作系统应具有以下功能:处理机管理、存储器管理、设备管理和文件管理,向用户提供接口及用来扩充机器。
- 1.2 操作系统的发展与分类

1.2.0 发展历程
- 1.2.1 手工操作系统阶段(此阶段无操作系统)
- 用户在计算机上计算题目需要人工干预。
- 两个突出缺点:
- ①用户独占全机,不好出现资源被其他用户占用而等待的现象,但资源利用率低。
- ②CPU等待手工操作,CPU利用不充分。
- 1.2.2 批处理阶段(操作系统开始出现)
- 引入目的:为了解决人机矛盾及CPU和I/O设备之间速度不匹配的问题,出现了批处理系统。
- 按发展历程分单道批处理系统和多道批量处理系统:
- 1. 单道批处理系统:系统对作业的处理是成批进行的,单内存中始终只保持一道作业。 特点:自动性、顺序性、单道性。
- 2. 多道批处理系统:允许多个程序同时进入内存并允许它们在CPU中交替运行,共享系统中的各种软/硬件资源。 引入目的:为了进一步提高资源的利用率和系统的吞吐量。因为单道系统在运行期间发出I/O请求后,高速的CPU会处于等待低速的I/O完成状态。特点:多道、宏观上并行、微观上串行。
- 优缺点
- 优点:资源利用率高;系统吞吐量大,CPU和其他资源保持“忙碌”状态。
- 缺点:用户响应的时间较长;不提供人机交互能力。
- 1.2.3 分时操作系统
- 引入目的:为了解决批处理系统不能进行人机交互的问题。
- 概念:分时系统是指多个用户通过终端同时共享一台主机,用户可以同时与主机进行交互操作而互不干扰。分时系统是实现人机交互的系统。
- 特点:
- (1)同时性。指允许多个终端用户同时使用一台计算机。
- (2)交互性。指用户能够与系统进行人机对话交互。
- (3)独立性。系统中多个用户可以彼此独立进行操作,互不干扰,单个用户感觉不到别人也在使用这台计算机,好像只有自己独自使用。
- (4)及时性。用户请求能在短时间内得到响应。分时系统采用时间片轮转方式使一台计算机同时为多个终端服务。
- 1.2.4 实时操作系统
- 引入目的:为了能在某个时间限制内完成某些紧急任务而不需要时间片排队。
- 根据时间限制分为两种情况:硬实时系统和软实时系统。
- 硬实时系统:某个动作必须绝对地在规定时间范围发生。如飞行器的自动控制系统。
- 软实时系统:能够接受偶尔违反时间规定且不好引起任何永久性的损害。如飞机订票系统、银行管理系统。
- 特点:及时性、可靠性。
- 1.2.5 网络操作系统和分布式计算机系统 二者本质不同是:分布式操作系统中的若干计算机相互协同完成同一任务。
- 网络操作系统
- 概念:把计算机网络中的各台计算机结合起来,集中控制,实现各台计算机之间的数据相互传送。
- 特点:网络中各种资源的共享、各台计算机之间的通信。
- 分布式计算机系统
- 概念:任意两台计算机通过通信方式交互信息;地位同等(没有主机也没有从机);每天计算机的资源为所有用户共享;任意台计算机能构成子系统并还能重构;任何工作可以分布在几台计算机上,并行工作协同完成。
- 特点:分布式和并行性。
- 1.2.6 个人计算机操作系统
- 目前使用最广泛的操作系统,广泛应用于文字处理、电子表格、游戏中,常见的由Windows、Linux和Macintosh等。
- 1.3 操作系统的运行环境
- 1.3.1 操作系统的运行机制
- CPU执行两种不同性质的程序:一种是操作系统内核程序;另一种是用户自编程序(应用程序)。前者是后者的管理者。
- 特权指令(内核程序要执行的指令):指计算机中不允许用户直接使用的指令。如I/O指令、置中断指令,存取用于内存保护的寄存器、送程序状态字道程序状态字寄存器等指令。
- 在具体实现上将CPU的状态分为:
- 用户态:用户自编程序运行在用户态
- 核心态(管态、内核态):操作系统内核程序运行在核心态。
- 内核的内存构成(这部分内容的指令操作工作在核心态):
- 一些与硬件关联紧密的模块,如时钟管理、中断处理、设备驱动等处于最底层。
- 其次是运行频率较高的程序,如进程管理、存储器管理和设备管理等。
- 大多数操作系统内核包含以下的内容: 内核是计算机上配置的底层软件。核心态指令实际上包括系统调用指令和一些针对时钟、中断和原语的操作指令。
- 1. 时钟管理
- 时钟的功能:计时(第一功能);实现进程的切换(如分时系统中采用时间片轮转调度;实时系统中按截止时间运行;批处理系统中衡量作业的运行程度)。
- 2. 中断机制
- 引入目的:提高多道程序运行环境中CPU的利用率,主要针对外部设备。
- 功能:负责保护和恢复中断现场的信息、转移控制权道相关的处理程序。 只有一小部分属于内核,为的是减少中断的处理时间,提高系统的并行处理能力。
- 3. 原语
- 原语的特点(也是定义): 原语是操作系统底层可被调用的公用小程序,它们各自完成一个规定的操作。
- (1)处于操作系统的最底层,是最接近硬件的部分。
- (2)这些程序的运行具有原子性(要么成功要么失败无其他可能),主要处于系统安全性和便于管理考虑。
- (3)这些程序的运行时间都较短,而且调用频繁。
- 定义原语的方法:直接方法是关闭中断,让其所有动作不可分割地完成后再打开中断。 系统中的设备驱动、CPU切换、进程通信等功能中的部分操作可以定义为原语,称为内核的组成部分。
- 4. 系统控制的数据结构及处理
- 为了实现数据结构的管理,通过有以下一些基本操作:
- (1)进程管理。进程状态管理、进程调度和分派、创建与撤销进程控制块。
- (2)存储器管理。存储器的空间分配和回收、内存信息保护程序、代码对换程序。
- (3)设备管理。缓冲区管理、设备分配和回收。
- 1.3.2 中断和异常的概念
- 1.3.3 系统调用
- 定义:系统调用是指用户在程序中调用操作系统所提高的一些子功能,系统调用可视为特殊的公共子程序。
- 按功能分类:
- 设备管理。完成设备的请求或释放,以及设备启动等功能。
- 文件管理。完成文件的读、写、创建及删除等功能。
- 进程控制。完成进程的创建、撤销、阻塞及唤醒等功能。
- 进程通信。完成进程之间消息传递或信号传递等功能。
- 内存管理。完成内存的分配、回收以及获取作业占用内存区大小及始址等功能。
- 系统调用执行过程:系统调用的处理需要由操作系统内核程序负责完成,要运行在核心态。 用户程序可以执行陷入指令(又称访管指令或trap指令)来发起系统调用(执行陷入指令CPU状态从用户态进入核心态;处理完成后CPU状态从核心态回到用户态),请求操作系统提供服务。
- 核心态与用户态间的切换 若程序的运行由用户态转到核心态,则会用到访管指令,访管指令是在用户态使用的,所以它不可能为特权指令。
- 用户态转向核心态的例子: 注意:由用户态进入核心态,不仅需要状态切换,而且所用的堆栈也可能需要由用户堆栈切换为系统堆栈,单这个系统堆栈也是属于该进程的。
- (1)用户程序要求操作系统的服务,即系统调用。
- (2)发生一次中断。
- (3)用户程序产生了一个错误状态。
- (4)用户程序中企图执行一条特权指令。
- (5)从核心态转向用户态由一条特权指令实现,这条指令也是特权指令,一般是中断返回指令。
- 1.4 操作系统的体系结构
- 1.4.1 大内核和微内核
- 操作系统的核心态 为应用程序提供什么样的公共服务、如何提高公共服务形成了两种体系结构:大内核和微内核。
- 大内核:提供了高性能的系统服务,但使得系统层次间界限模糊,接口不清晰,维护代价高,稳定性低。
- 微内核:将最基本的功能(如进程管理)保留在内核,将一些服务(如文件系统)移到用户态执行。降低了内核设计的复杂性,移出内核的服务程序执行相互独立,交互则需借助微内核通信。使接口更加清晰,维护代价降低,保障了操作系统的可靠性(稳定性),但是系统性能下降。 为解决操作系统内核代码难以维护的问题,即大内核的接口不够清晰、层次模糊的问题,提出了微内核的体系结构。
相关内容