第1章 计算机系统概述

  • 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. 操作系统作为计算机系统资源的管理者
        • (1)处理机管理:包括进程控制、进程同步、进程通信、死锁处理、处理机调度等。 在多道程序环境下,处理机的分配和运行都以进程(或线程)为基本单位,故对处理机的管理就是对进程的管理。
        • (2)存储器管理:包括内存分配与回收、地址映射、内存保护与共享和内存扩充等。
        • (3)文件管理:包括文件存储空间的管理、目录管理及文件读写管理和保护等。
        • (4)设备管理:包括缓冲管理、设备分配、设备处理和虚拟设备等。 主要任务是完成用户的I/O请求,方便用户使用各种设备,提高设备的利用率。
      • 2. 操作系统作为用户与计算机硬件系统之间的接口

        命令接口根据作业控制方式的不同,分为联机命令接口(交互式命令接口)和脱机命令接口(批处理命令接口)。

        • (1)命令接口:用户利用这些操作命令来组织和控制作业的执行。
        • (2)程序接口:编程人员可以使用它们来请求操作系统服务。
        • 程序接口由一组系统调用(也称广义指令)组成。图形用户界面(GUI)就是调用程序接口实现的。
      • 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 中断和异常的概念
      • 0. 中断的应用
        • (1)发生中断或异常时,运行用户态的CPU就会立即进入核心态,这是通过硬件实现的。
        • (2)对资源占有权的释放,也需要通过中断实现。
      • 1. 中断和异常的定义
        • 中断(也称外中断):指来自CPU执行指令以外的事件的发生,与当前指令执行无关的事件发生(即它们与当前处理机运行的程序无关)。如I/O结束中断、时钟中断等。
        • 异常(也称内中断、例外或陷入(trap)):指来自CPU执行指令内部的事件,对异常的处理一般要依赖于当前程序的运行现场,而且异常不能被屏蔽,一旦出现应立即处理。如程序性的非法操作码、地址越界、算术溢出、虚存系统的缺页及专门的陷入指令等。
        • 内中断与外中断的联系与区别

      • 2. 中断处理的过程
        • 外中断处理流程如下:

        其中第(1)~(3)步是在CPU进入中断周期后,由硬件(中断隐指令)自动完成的;(4)~(9)步由中断服务程序完成。

        • (1)关中断。CPU响应中断后,首先要保护程序的现场状态,在保护现场的过程中,CPU不应响应更高级中断源的中断请求。否则,若现场保存不完整,也就不能正确地恢复并继续执行现行程序。
        • (2)保存断点。为保证中断服务程序执行完毕后能正确地返回到原来的程序,必须将原来的程序的断点(即程序计数器PC)保存起来。
        • (3)引出中断服务程序。其实质是取出中断服务程序的入口地址送入程序计数器PC。
        • (4)保存现场和屏蔽字。进入中断服务程序后,首先要保存现场,现场信息一般是指程序状态字寄存器PSWR和某些通用寄存器的内容。
        • (5)开中断。允许更高级中断请求得到响应。
        • (6)执行中断服务程序。这是中断请求的目的。 中断服务程序是专门为中断设计的,在中断事件发生时执行的专用子程序,一般分为:保护现场、执行操作、恢复现场这些部分。
        • (7)关中断。保证在恢复现场和屏蔽字时不被中断。
        • (8)恢复现场和屏蔽字。将现场和屏蔽字恢复到原来的状态。
        • (9)开中断、中断返回。中断服务程序的最后一条指令通常是一条中断返回指令, 使其返回到原程序的断点处,以便继续执行原程序。
    • 1.3.3 系统调用
      • 定义:系统调用是指用户在程序中调用操作系统所提高的一些子功能,系统调用可视为特殊的公共子程序。
      • 按功能分类:
        • 设备管理。完成设备的请求或释放,以及设备启动等功能。
        • 文件管理。完成文件的读、写、创建及删除等功能。
        • 进程控制。完成进程的创建、撤销、阻塞及唤醒等功能。
        • 进程通信。完成进程之间消息传递或信号传递等功能。
        • 内存管理。完成内存的分配、回收以及获取作业占用内存区大小及始址等功能。
      • 系统调用执行过程:系统调用的处理需要由操作系统内核程序负责完成,要运行在核心态。 用户程序可以执行陷入指令(又称访管指令或trap指令)来发起系统调用(执行陷入指令CPU状态从用户态进入核心态;处理完成后CPU状态从核心态回到用户态),请求操作系统提供服务。​
      • 核心态与用户态间的切换 若程序的运行由用户态转到核心态,则会用到访管指令,访管指令是在用户态使用的,所以它不可能为特权指令。
        • 用户态转向核心态的例子: 注意:由用户态进入核心态,不仅需要状态切换,而且所用的堆栈也可能需要由用户堆栈切换为系统堆栈,单这个系统堆栈也是属于该进程的。​
        • (1)用户程序要求操作系统的服务,即系统调用。
        • (2)发生一次中断。
        • (3)用户程序产生了一个错误状态。
        • (4)用户程序中企图执行一条特权指令。
        • (5)从核心态转向用户态由一条特权指令实现,这条指令也是特权指令,一般是中断返回指令。
  • 1.4 操作系统的体系结构
    • 1.4.1 大内核和微内核
      • 操作系统的核心态 为应用程序提供什么样的公共服务、如何提高公共服务形成了两种体系结构:大内核和微内核。
        • 大内核:提供了高性能的系统服务,但使得系统层次间界限模糊,接口不清晰,维护代价高,稳定性低。
        • 微内核:将最基本的功能(如进程管理)保留在内核,将一些服务(如文件系统)移到用户态执行。降低了内核设计的复杂性,移出内核的服务程序执行相互独立,交互则需借助微内核通信。使接口更加清晰,维护代价降低,保障了操作系统的可靠性(稳定性),但是系统性能下降。 为解决操作系统内核代码难以维护的问题,即大内核的接口不够清晰、层次模糊的问题,提出了微内核的体系结构。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值