【软考-数据库系统工程师-知识点】第四章 操作系统基础

4.1 操作系统概述

4.1.1 基本概念

  1. 操作系统定义及作用
  • 定义
    • 能有效地组织和管理系统中的各种软/硬件资源;
    • 合理组织计算机系统的工作流程,控制程序的执行;
    • 向用户提供一个良好的工作环境和友好的接口。
  • 作用
    • 通过资源管理提高计算机系统的效率。
    • 改善人机界面向用户提供友好的工作环境。
  1. 操作系统特征与功能
  • 特征
    • 虚拟性:virtual,通过某种技术把一个物理实体变成若干个逻辑上的对应物。
    • 共享性:sharing,资源共享,指系统的资源供内存中的多道程序所共同使用。
    • 并发性:concurrence,指两个或多个事件在同一时间间隔内发生。
    • 不确定性/异步性:asynchronism,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底,而是走走停停,以不可预知的速度向前推进,也就是进程的执行顺序和执行时间不确定。
  • 功能
    • 设备管理:对硬件设备进行管理,包括对输入/输出设备的分配、启动、完成和回收。
    • 存储管理:对主存储器空间进行管理,包括存储分配与回收、存储保护、地址映射(变换)和主存扩充。
    • 文件管理:包括文件存储空间管理、存取控制、目录管理和读/写管理。
    • 作业管理:包括任务、界面管理、人机交互、图形界面、语音控制和虚拟现实等。
    • 进程管理:对处理机的执行时间进行管理,将CPU的时间合理分配给每个任务。
  • 提供接口
    • 系统命令级:供用户用于组织和控制自己的作业运行,如命令行、菜单式或GUI"联机"、命令脚本"脱机"。
    • 编程级:供用户程序和系统程序调用操作系统的功能,如系统调用和高级语言库函数。

4.1.2 操作系统分类

  1. 批处理系统
  • 含义
    • 用户所提交的作业都先存放在外存上并排成一个队列,称为"后备队列"。
    • 然后由作业调度程序按照一定的算法从后备队列中选择若干个作业调入内存,使得它们共享CPU和系统中的各种资源。
  • 特点
    • 多道:在内存中同时存放多个作业,一个时刻只有一个作业运行。
    • 成批:用户和作业之间没有交互性。用户不能干预自己的作业的运行,发现作业错误不能及时纠正。
  1. 分时操作系统
  • 含义
    • 一个计算机系统与多个终端设备相连。
    • 将CPU的工作时间划分为许多很短的时间片,轮流为各个终端的用户服务。
  • 特点
    • 多路性:计算机系统能被多个用户同时使用。
    • 独立性:用户和用户之间是独立操作系统的。
    • 交互性:用户能和电脑进行人机对话。
    • 及时性:系统能以最快的速度将结果显示给用户。
  1. 实时操作系统
  • 含义
    • 计算机对于外来信息能够以足够快的速度进行处理。
    • 并在被控对象允许的时间范围内做出快速反应。
  • 分类
    • 实时控制系统:主要用于生产过程中的自动控制,如数据自动采集、飞机自动驾驶等。
    • 实时信息处理系统:主要用于实时信息处理,如飞机订票系统、情报检索系统等。
  • 特点
    • 对交互能力要求不高。
    • 要求可靠性有保障。
  • 实时系统和分时系统的区别
    • 系统的设计目标不同:分时通用,实时专用。
    • 交互性的强弱不同:分时 > 实时。
    • 响应时间的敏感程度不同:实时 > 分时。
  1. 网络操作系统
  • 含义:是使联网计算机能共享网络资源,为网络用户提供各种服务的软件和有关协议的集合。
  • 功能
    • 网络通信。
    • 管理网络中的共享资源(如LAN中的硬盘、打印机)。
    • 提供电子邮件、文件传输、共享硬盘和打印机等服务。
    • 管理网络安全。
    • 提供互操作的能力。
  • 特征
    • 硬件独立性:网络操作系统可运行在不同的网络硬件上,可通过网桥或路由器与别的网络连接。
    • 多用户支持:能同时支持多个用户对网络的访问,对信息资源提供完全的安全和保护功能。
    • 支持网络实用程序及其管理功能:如系统备份、安全管理、容错和性能控制。
    • 多种客户端支持。
    • 提供目录服务,以单一逻辑方式让用户访问位于世界范围内的所有网络服务和资源的技术
    • 支持多种增值服务,如文件服务、打印服务、通信服务和数据库服务等。
  • 分类
    • 集中模式:由分时操作系统加上网络功能演变而来,信息的处理和控制是集中的。

    • 客户端/服务器模式

      服务器:网络的控制中心,向客户端提供一种或多种服务。

      客户端:用于本地处理和访问服务器的站点,客户端中包含了本地处理软件和访问服务器上程序的软件接口。

    • 对等模式(peer-to-peer):各个站点对等,既可作为客户端去访问其他站点,也可作为服务器向其他站点提供服务。

  1. 分布式操作系统
  • 含义
    • 分布式计算机系统:由多个分散的计算机经连接而成,其中的计算机无主次之分,任意两台可通过通信交换信息。
    • 分布式操作系统:为分布式计算机系统配置的操作系统。
  • 功能
    • 能直接对系统中的各类资源进行动态分配和调度、任务划分、信息传输协调工作。
    • 为用户提供一个统一的界面、标准的接口,用户通过这一界面实现所需要的操作和使用系统资源。
    • 向系统提供统一、有效的接口的软件的集合。
  • 特点
    • 是网络操作系统的更高级形式,保持网络操作系统所拥有的全部功能。
    • 同时又有透明性、可靠性和高性能等特性。
  1. 嵌入式操作系统
  • 含义
    • 嵌入式操作系统运行在嵌入式智能芯片环境中。
    • 对整个智能芯片以及它所操作、控制的各种部件装置等资源进行统一协调、处理、指挥和控制。
  • 特点
    • 微型化:内存少、字长短、运行速度有限、能源少。
    • 可定制:能运行在不同的微处理平台上,能针对硬件变化进行结构与功能上的配置,以满足不同应用需要。
    • 实时性:主要应用于过程控制、数据采集等需要迅速响应的场合。
    • 可靠性:系统构件、模块和体系结构必须达到应有的可靠性。
    • 易移植性:采用硬件抽象层和板级支撑包的底层设计技术。

4.1.3 操作系统的发展

  • 推动操作系统发展的主要动力:需求。
  • 促使操作系统发展的主要因素:
    • 硬件的不断升级和新的硬件产品出现,需要操作系统提供更多、更复杂的支持;
    • 新的服务需求,操作系统为了满足系统管理者和用户的需求,需要不断扩大服务范围;
    • 修补操作系统自身的错误(即所谓的"补丁")。

4.2 进程管理

4.2.1 基本概念

  1. 程序与进程
  • 进程
    • 进程的概念:是资源分配和独立运行的基本单位。
    • 引入进程的原因:采用程序已无法描述系统中程序执行时动态变化的过程。
  • 程序顺序执行的特征
    • 前驱图:有向无循环图,结点表示各程序段的操作,结点间的有向边表示两个程序段之间存在的前趋关系(→)。
    • 程序顺序执行的特征:顺序性、封闭性和可再现性。
  • 程序并发执行的特征
    • 同一个作业内没有前趋关系的程序段或不同作业的程序段可以分别在CPU和各输入/输出部件上并行执行。
  • 程序并发执行的特征:
    • 失去了程序的封闭性。
    • 程序和执行程序的活动不再一一对应。
    • 并发程序间的相互制约性。
  1. 进程的组成
  • PCB:进程控制块(Process Control Block,PCB),是进程存在的唯一标志。
  • 程序:描述了进程需要完成的功能。是程序执行时不可修改的部分。
  • 数据:包括程序执行时所需的数据及工作区。只能为一个进程所专用,是进程的可修改部分。
  1. 进程的状态及其状态间的转换
  • 三态模型
    在这里插入图片描述
    • 运行:当一个进程在处理机上运行时,则称该进程处于运行状态。
    • 就绪:一个进程获得了除处理机外的一切所需资源,一旦得到处理机即可运行,则称此进程处于就绪状态。
    • 阻塞:也称等待/睡眠状态,一个进程正在等待某一事件发生(如请求I/O)而暂时停止运行,此时即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态。
  • 五态模型
    在这里插入图片描述
    • 新建:对应于进程刚刚被创建时没被提交的状态,并等待系统完成创建进程的所有必要信息。创建进程时分为两个阶段:
      ①为一个新进程创建必要的管理信息;
      ②让该进程进入就绪状态。

      可根据系统的性能和主存容量的限制推迟新建态进程的提交。

    • 终止:也可分为两个阶段,第一阶段等待操作系统进行善后处理;第二阶段释放主存。

  • 具有挂起状态的进程状态及其转换
    在这里插入图片描述
    • 引入挂起状态的原因

      由于进程的不断创建,系统资源尤其是主存资源已不能满足进程运行的要求,此时必须将某些进程挂起,放到磁盘对换区,暂时不参加调度,以平衡系统负载。

      系统出现故障或用户调试程序,也需将进程挂起检查问题。

    • 活跃就绪:指进程在主存并且可被调度的状态。

    • 静止就绪:指就绪进程被对换到辅存时的状态,此时不能被直接调度,只有主存中没有活跃就绪态进程、或是挂起态进程具有更高优先级时,系统将把挂起就绪态进程调回主存并转换为活跃就绪。

    • 活跃阻塞:指进程在主存中,一旦等待的事件发生便进入活跃就绪状态。

    • 静止阻塞:指阻塞进程被对换到辅存时的状态,一旦等待的事件发生便进入静止就绪状态。

4.2.2 进程的控制

  1. 进程控制
  • 进程控制就是对系统中的所有进程从创建到消亡的全过程实施有效的控制。
  • 进程控制是由操作系统内核(Kernel)中的原语实现的。
  1. 内核
  • 内核是计算机系统硬件的首次延伸,是基于硬件的第一层扩充。
  • 内核为系统对进程进行控制和管理提供了良好的环境。
  • 不同操作系统内核所包含的功能不同,但大多数操作系统的内核都包含支撑功能和资源管理的功能。
  1. 原语
  • 原语(Primitive)是指由若干条机器指令组成的、用于完成特定功能的程序段。
  • 原语的特点是在执行时不能被分割,即原子操作,要么都做,要么都不做。
  • 原语的分类
    • 进程控制原语:进程创建原语、进程撤销原语、进程挂起原语、进程激活原语、进程阻塞元素、进程唤醒原语。
    • 进程通信原语。
    • 资源管理原语。
    • 其他方面的原语。

4.2.3 进程间的通信

进程通信是指各个进程交换信息的过程。

  1. 同步与互斥
  • 同步是合作进程间的直接制约问题,互斥是申请临界资源进程间的间接制约问题。
  • 进程间的同步
    • 多个并发执行的进程,每进程都以各自独立、不可预知的速度向前推进,但需在某些确定点上协调相互合作进程间的工作。
    • 进程间的同步是指在系统中一些需要相互合作、协同工作的进程,这样的相互联系称为进程间的同步。
  • 进程间的互斥
    • 在多道程序系统环境中,各进程可以共享各类资源。
    • 但有些资源一次只能供一个进程使用,称为临界资源(Critical Resource,CR),如打印机、共享变量和表格等。
  • 临界区管理的规则
    • 临界区(Critical Section,CS)是进程中对临界资源实施操作的那段程序。

    • 对互斥临界区管理的4条原则

      有空即进。当无进程处于临界区时,允许进程进入临界区,并且只能在临界区运行有限的时间。

      无空则等。当有一个进程在临界区时,其他欲进入临界区的进程必须等待,以保证进程互斥地访问临界资源。

      有限等待。对于要求访问临界资源的进程,应保证进程能在有限的时间进入临界区,以免陷入"饥饿"的状态。

      让权等待。当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入忙等状态。

  1. 信号量机制
  • 整型信号量与PV操作

    • 信号量:是一个整型变量,根据控制对象的不同被赋予不同的值。

    • 信号量分类:

      公用信号量。实现进程间的互斥,初值为1或资源的数目。

      私有信号量。实现进程间的同步,初值为0或某个正整数。

    • 信号量S的物理意义

      S ≥ 0表示某资源的可用数;

      S<0其绝对值表示阻塞队列中等待该资源的进程数。

    • PV操作是实现进程同步与互斥的常用方法:

      P操作和V操作是低级通信原语,在执行期间不可分割。

      P操作表示申请一个资源。

      V操作表示释放一个资源。

      P操作的定义:S=S-1。若S≥0,则执行P操作的进程继续执行;若S<0,则将该进程置为阻塞状态,并将其插入阻塞队列。

      V操作的定义:S=S+1。若S>0,则执行V操作的进程继续执行;若S≤0,则从阻塞队列唤醒一个进程,并将其插入就绪队列,然后执行V操作的进程继续。

  • 利用PV操作实现进程的互斥

    • 令信号量mutex的初值为1,当进入临界区时执行P操作,退出临界区时执行V操作。
      P(mutex);
       临界区
      V(mutex);
      
  • 利用PV操作实现进程的同步

    • 用一个信号量与消息联系起来,当信号量值为0时表示等待的消息未产生,当信号量的值为非0时表示等待的消息已经存在。
    • 进程可以调用P操作测试消息是否到达,调用V操作通知消息已准备好。
  1. 高级通信原语
  • 根据交换信息量的多少和效率的高低,进程通信的方式分为低级方式和高级方式。
  • 低级通信方式(如PV操作)
    • 编程难度大,通信对用户不透明,操作不当容易引起死锁。
    • 效率低,生产者每次只能向缓冲区放一个消息,消费者只能从缓冲区取一个消息。
  • 高级通信方式
    • 共享存储模式:相互通信的进程共享某些数据结构(或存储区)实现进程之间的通信。

    • 消息传递模式:进程间的数据交换以消息为单位,程序员直接利用系统提供的一组通信命令(原语)来实现通信。

      如Send(A)、Receive(A)。

    • 管道通信:管道(pipe)是一种共享文件,用于连接一个读进程和一个写进程,以实现它们之间的通信。

4.2.4 管程

  • 若用信号量和P、V操作来解决进程的同步与互斥,则需要在程序中的适当位置来安排P、V操作,否则会造成死锁。
  • 为解决分散编程带来的困难,提出了另一种同步机制——管程(monitor)。
  • 管程基本思路:采用资源集中管理的方法,将系统中的资源用某种数据结构抽象地表示出来。
  • 由于临界区是访问共享资源的代码段,因而建立一个管程来管理进程提出的访问请求。
  • 借助数据结构及其上的操作来实现对共享资源的管理、申请和释放。
  • 管程的组成
    • 共享数据。
    • 一组能为并发进程所执行的、作用在共享数据上的操作的集合。
    • 初始代码。
    • 存取权。
  • 管程实现同步机制由"条件结构"所提供。
  • 为实现进程互斥同步,必须定义一些条件变量,这些条件变量只能被wait和signal操作所访问。
    • wait操作意味着调用该操作的进程将被挂起,使另一个进程执行;
    • signal操作仅仅启动一个被挂起的进程,如无挂起进程,则相当于空操作。

4.2.5 进程调度

  • 进程调度:当有更高优先级的进程到来时如何分配CPU。
  • 调度方式分为可剥夺和不可剥夺两种。
    • 可剥夺:当有更高优先级的进程到来时,强行将正在运行进程的CPU分配给高优先级的进程。
    • 不可剥夺:当有更高优先级的进程到来时,必须等待正在运行进程自动释放占用的CPU,然后将CPU分配给更高优先级的进程。
  1. 三级调度

在某些操作系统中,一个作业从提交到完成需要经历高、中、低三级调度。

  • 高级调度
    • 又称为"长调度"、“作业调度"或"接纳调度”。
    • 它决定处于输入池中的哪个后备作业可以调入主系统做好运行的准备,成为一个或一组就绪进程。
    • 在系统中,一个作业只需经过一次高级调度。
  • 中级调度
    • 又称为"中程调度"或"对换调度"。
    • 它决定处于交换区中的哪个就绪进程可以调入内存,以便直接参与对CPU的竞争。
  • 低级调度
    • 又称为"短程调度"或"进程调度"。
    • 它决定处于内存中的哪个就绪进程可以占用CPU。
    • 是操作系统中最活跃、最重要的调度程序。
  1. 调度算法
  • 先来先服务FCFS
    • 按照作业提交或进程称为就绪状态的先后次序分配CPU,即进程调度总是将就绪队列队首的进程投入运行。
    • 特点:有利于长作业,而不利于短作业;有利于CPU繁忙的作业,而不利于I/O繁忙的作业。
    • 主要用于宏观调度。
  • 时间片轮转
    • 主要用于微观调度,其设计目标是提高资源利用率。
    • 通过时间片轮转提高进程并发性和响应时间特性,从而提高资源利用率。
    • 时间片的长度可以从几毫秒到几百毫秒,选择的方法一般分为固定时间片和可变时间片两种。
  • 优先级调度
    • 让每个进程都拥有一个优先数,数值大的表示优先级高。
    • 系统在调度时总选择优先数大的占用CPU。
    • 优先级调度分为静态优先级和动态优先级。
  • 多级反馈调度
    • 是时间片轮转算法和优先级算法的综合与发展。
    • 优点一:照顾了短进程以提高系统吞吐量,缩短了平均周转时间。
    • 优点二:照顾I/O型进程以获得较好的I/O设备利用率和缩短响应时间。
    • 优点三:不必评估进程的执行时间,动态调节优先级。
  1. 进程优先级确定
  • 对于I/O型进程,让其进入最高优先级队列,以及时响应需要I/O交互的进程。
    • 通常执行一个小的时间片,在该时间片内要求可处理完一次I/O请求的数据,然后转入到阻塞队列。
  • 对于计算型进程,每次都执行完时间片后进入更低级队列。
    • 最终采用最大时间片来执行,以减少调度次数。
  • 对于I/O次数不多,主要是CPU处理的进程,在I/O完成后,返回优先I/O请求时离开的队列。
    • 以免每次都回到最高优先级队列后再逐次下降。
  • 为适应一个进程在不同时间段的运行特点,I/O完成时,提高优先级;时间片用完时,降低优先级。

4.2.6 死锁

  1. 死锁概念
  • 死锁:指两个以上的进程互相都要求对方已经占有的资源导致无法继续运行下去的现象。
  • 产生死锁的原因:资源竞争、进程推进顺序非法。
  • 死锁举例
    • 进程推进顺序不当引起的死锁。
    • 同类资源分配不当引起的死锁。
    • PV操作使用不当引起的死锁。
  1. 进程资源图
  • 进程资源有向图的组成
    • 方框,表示资源。
    • 圆圈,表示进程。
    • 有向边。
  • 请求资源:◯→口,箭头由进程指向资源;
  • 分配资源:◯←口,箭头由资源指向进程。
  1. 死锁产生的原因及4个必要条件
  • 4个必要条件
    • 互斥条件。
    • 请求保持条件。
    • 不可剥夺条件。
    • 环路条件。
  • 当发生死锁时
    • 在进程资源有向图中必构成环路。
    • 其中每个进程占有了下一个进程申请的一个或多个资源。
    • 导致进程申请的资源无法得到满足而产生死锁。
  1. 死锁的处理
  • 死锁的处理措施主要有4种

    • 鸵鸟策略(即不理睬策略)。
    • 预防策略。
    • 避免策略。
    • 检测与解除死锁。
  • 死锁预防

    • 采用某种策略限制并发进程对资源的请求,破坏死锁产生的4个必要条件之一,使系统在任何时刻都不满足死锁的必要条件。

    • 预先静态分配法:破坏了"不可剥夺条件",预先分配资源,保证不等待资源。

      问题:降低了对资源的利用率,降低进程的并发程度;有时可能无法预先知道所需资源。

    • 资源有序分配法:破环了"环路条件",把资源分类按顺序排列,保证不形成环路。

      问题:限制进程对资源的请求;资源的排序会占用系统开销。

  • 死锁避免

    • 设法破坏产生死锁的4个必要条件之一,严格防止死锁的产生。

    • Dijkstra银行家算法:对于进程发出的每一个系统可以满足的资源请求命令加以检测。

      如果发现分配资源后系统进入不安全状态,则不予分配。

      如果分配资源后系统仍处于安全状态,则实施分配。

      优点:提高了资源的利用率;缺点:检测分配资源后系统是否安全增加了系统开销。

    • 安全状态:指系统能按某种顺序如<P1,P2,…,Pn>来为每个进程分配其所需资源,直到最大需求,使每个进程都可顺序完成。

      通常称<P1,P2,…,Pn>为安全序列。

    • 不安全状态:若系统不存在安全序列,则称系统处于不安全状态。

  • 死锁检测

    • 对资源的分配不加限制,允许死锁产生。
    • 系统定时运行一个死锁检测程序,判断系统是否发生死锁。
    • 若检测到有死锁,则设法加以解除。
  • 死锁解除

    • 资源剥夺法:从一些进程那里强行剥夺足够数量的资源分配给死锁进程。
    • 撤销进程法:根据某种策略逐个地撤销死锁进程,直到解除死锁为止。

4.2.7 线程

  • 传统的进程有两个基本属性

    • 可拥有资源的独立单位。
    • 可独立调度和分配的基本单位。
  • 引入线程的原因

    • 进程在创建、撤销和切换中,系统必须为之付出较大的时空开销。
    • 故在系统中设置的进程数目不宜过多,进程切换的频率不宜太高,这就限制了并发程度的提高。
  • 线程将进程的两个基本属性分开

    • 线程作为调度和分配的基本单位。
    • 进程作为独立分配资源的单位。
  • 线程与进程的联系

    • 线程是进程中的一个实体,是被系统独立分配和调度的基本单位。

    • 线程基本上不拥有资源,只拥有运行中必不可少的资源(如程序计数器、一组寄存器和栈)。

    • 它可与同属一个进程的其他线程共享进程所拥有的全部资源。

    • 线程也具有就绪、运行和阻塞3种基本状态。

    • 线程具有许多传统进程所具有的特性,故称为"轻型进程";传统进程称为"重型进程"。

    • 线程可创建另一个线程,同一个进程中的多个线程可并发执行。

    • 线程分为用户级线程和内核支持线程两类。

      用户级线程不依赖于内核,该类线程的创建、撤销和切换都不利用系统调用来实现。

      内核支持线程依赖于内核,即无论在用户进程中,还是在系统中,此类线程的创建、撤销和切换都利用系统调用来实现。

  • 线程与进程的区别

    • 不论是系统进程还是用户进程,在进行切换时,都要依赖于内核中的进程调度。
    • 不论是什么进程都是与内核有关的,是在内核的支持下进行切换的。

4.3 存储管理

4.3.1 基本概念

  1. 存储器的结构
  • 常用的存储器结构
    • 寄存器——主存——外存。
    • 寄存器——缓存——主存——存储组织的功能外存。
  • 虚拟地址
    • 对于程序员来说,数据的存放地址是由符号决定的。
    • 从0号单元开始编址,顺序分配所有的符号名所对应的地址单元。
    • 不是主存中的真实地址,也称相对地址、程序地址、逻辑地址。
  • 地址空间
    • 把程序中由相对地址组成的空间称为逻辑地址空间。
    • 相对地址空间通过地址再定位机构转换到绝对地址空间。绝对地址空间也称为物理地址空间。
  • 存储空间
    • 逻辑地址空间(简称地址空间)是逻辑地址的集合。
    • 物理地址空间(简称存储空间)是物理地址的集合。
  1. 地址重定位
  • 地址重定位的概念:是指将逻辑地址变换成主存物理地址的过程。
  • 地址重定位的分类
    • 静态重定位:在程序装入主存时已经完成了逻辑地址到物理地址的变换,在程序的执行期间不会再变化。
    • 动态重定位:在程序运行期间完成逻辑地址到物理地址的变换。

4.3.2 存储管理方案

存储管理的目的:解决多个用户使用主存的问题。

  1. 分区存储管理
  • 基本思想:把主存的用户区划分成若干区域,每个区域分配给一个用户作业使用,并限定它们只能在自己的区域中运行。
  • 固定分区
    • 在系统生成时已将主存划分为若干区域,每个分区的大小可不等。
    • 操作系统通过主存分配情况表管理主存。
    • 突出问题:已分配区中存在未用空间,称为"零头"或"内碎片"。
  • 可变分区
    • 在作业装入时划分空间,故分区的个数是可变的,分区的大小刚好等于作业的大小。
    • 可变分区需要已分配表和未分配表两种管理表格。
    • 对于可变分区的请求和释放分区主要有4种算法:最佳适应算法、最差适应算法、首次适应算法和循环首次适应算法。
    • 问题:由于系统不断的分配和回收,必定会出现一些不连续的小的空闲区,称为"外碎片"。解决办法是"拼接"(紧凑")。
  • 可重定位分区
    • 基本思想:移动所有已分配好的分区,使之称为连续区域。
    • 分区"靠拢"的时机是当用户请求空间得不到满足或某个作业执行完毕时。
    • 当进行分区"靠拢"时会导致地址发生变化,所以有地址重定位问题。
  1. 分区保护
  • 目的:防止未经核准的用户访问分区。
  • 采用上界/下界寄存器保护
    • 上界寄存器中存放的是作业的装入地址。
    • 下界寄存器中存放的是作业的结束地址。
    • 形成的物理地址必须满足:上界寄存器≤物理地址≤下界寄存器。
  • 采用基址/限长寄存器保护
    • 基址寄存器中存放的是作业的装入地址。
    • 限长寄存器中装入的是作业的长度。
    • 形成的物理地址必须满足:基址寄存器≤物理地址≤基址寄存器+限长寄存器。

4.3.3 分页存储管理

  1. 纯分页存储管理
  • 分页原理
    • 将一个进程的地址空间分成若干个大小相等的区域,称为页。
    • 相应地,将主存空间划分成与页相同大小的若干个物理块,称为块或页框。
    • 在为进程分配主存时,将进程中的若干页分别装入多个不相邻接的块中。
  • 地址结构
    • 分页系统的地址结构由两部分组成:前一部分为页号P,后一部分为偏移量W,即页内地址。
    • 页内地址的位数表示每页的大小,页号的位数表示地址空间的大小。
  • 页表
    • 系统为保证在主存中能找到进程要访问的页面所对应的物理块,为每个进程建立了一张页面映射表,简称页表。
    • 每个页在页表中占一个表项,记录该页在主存中对应的物理块号。
  1. 快表
  • 页式存储管理至少要访问两次主存。第一次是访问页表,得到的是数据的物理地址;第二次是存取数据。
  • 为了提高访问主存的速度,在地址映射机构中增加一个小容量的联想存储器。
  • 联想存储器由一组高速存储器组成,称之为快表,用来保存当前访问频率高的少数活动页的页号及相关信息。
  1. 两级页表机制
  • 将页表进行分页,每个页面的大小与主存物理块的大小相同。
  • 为它们进行编号,可离散地将各个页面分别存放在不同物理块。为此需要建立一张页表,称为外层页表(页表目录)。
  • 第一级是页目录表,其中每个表目存放某个页表的物理地址;
  • 第二级是页表,其中每个表目所存放的是页的物理块号。

4.3.4 分段存储管理

  • 在分段存储管理方式中
    • 作业的地址空间被分为若干个段,每个段是一组完整的逻辑信息。
    • 每个段都有自己的名字,都是从0开始编址的一段连续的地址空间,各段的长度是不等的。
    • 分段系统的地址结构由段号(名)和段内地址两部分组成。
  • 在分段式存储管理系统中
    • 为每个段分配一个连续的分区,而进程中的各个段可以离散地分配到主存的不同分区中。
    • 在系统中为每个进程建立一张段映射表,简称为"段表"。
    • 每个段在表中占有一个表项,在其中记录了该段在主存中的起始地址(又称为"基址")和段的长度。
  • 为了实现从逻辑地址到物理地址的变换功能,系统中设置了段表寄存器,用于存放段表始址和段表长度。

4.3.5 段页式存储管理

  • 基本原理
    • 将整个主存划分成大小相等的存储块(页框)。
    • 将用户程序按程序的逻辑关系分为若干个段,并为每个段赋予一个段号,再将每个段划分成若干页,以页框为单位离散分配。
  • 在段页式系统中,为实现逻辑地址到物理地址的变换,必须同时配置段表和页表。
    • 将段中的页进行离散分配,段表中的内容不再是段的主存始址和段长,而是页表始址和页表长度。
    • 在段页式系统中有一个段表寄存器,用于存放段表起始地址和段表长度。
  • 在段页式系统中,逻辑地址到物理地址的变换过程
    • 根据段号S查段表,得到页表的起始地址。
    • 根据页号P查页表,得到物理块号b。
    • 将物理块号b拼上页内地址W得到物理地址。

4.3.6 虚拟存储管理

  1. 程序局部性原理
  • 局部性:在一段时间内,程序的执行仅局限于某个部分,相应地,它所访问的存储空间也仅限于某个区域内。
  • 时间局限性:产生时间局限性的典型原因是在程序中存在着大量的循环操作。
    • 如果程序中的某条指令一旦执行,则不久的将来该指令可能再次被执行。
    • 如果某个存储单元被访问,则不久以后该存储单元可能再次被访问。
  • 空间局限性:产生空间局限性的典型原因是程序是顺序执行的。
    • 一旦程序访问了某个存储单元,则在不久的将来,其附近的存储单元也最有可能被访问。
    • 即程序在一段时间内所访问的地址可能集中在一定的范围内。
  1. 虚拟存储器的实现
  • 虚拟存储器
    • 是具有请求调入功能和置换功能,能仅把作业的一部分转入主存便可运行作业的存储器系统。
    • 是能从逻辑上对主存容量进行扩充的一种虚拟的存储器系统。
    • 其逻辑容量由主存和外存容量之和以及CPU可寻址的范围来决定,运行速度接近于主存。
  • 虚拟存储器的实现方式
    • 请求分页系统:在分页系统上增加了请求调页功能和页面置换功能所形成的页式虚拟存储系统。置换以页为单位。
    • 请求分段系统,在分段系统上增加了请求调段和分段置换功能所形成的段式虚拟存储系统。置换以段为单位。
    • 请求段页式系统,在段页式系统上增加了请求调页和页面置换功能所形成的段页式虚拟存储系统。
  1. 请求分页管理的实现
  • 基于纯分页的页表机制,增加了状态位、访问字段和辅存地址等供程序(数据)在换进换出时参考。
  • 基于纯分页的地址变换机构,增加了产生和处理缺页中断、从主存中换出一页实现虚拟存储等功能。
  • 缺页中断与一般中断的主要区别
    • 缺页中断在指令执行期间产生和处理中断信号;一般中断在一条指令执行完,下一条指令开始执行前检查和处理中断信号。
    • 发生缺页中断时,返回到被中断指令的开始重新执行该指令;一般中断返回到下一条指令执行。
    • 一条指令在执行期间可能会产生多次缺页中断。
  1. 页面置换算法
  • 在进程运行过程中发生缺页,且主存中又无空闲块,为保证进程能正常运行,必须从主存调出一页程序或数据置磁盘对换区。
  • 抖动/颠簸(thrashing),即刚被换出的页很快又被访问,需重新调入,导致系统频繁地更换页面。
  • 缺页率 f = 缺页次数/访问次数。
  • 常用页面置换算法
    • 最佳(Optimal)置换算法:选择那些永不使用的,或者是最长时间内不再被访问的页面置换出去。

    • 先进先出(FIFO)置换算法:选择在主存中驻留时间最久的页面予以淘汰。

      Belagy现象:指如果对一个进程未分配它所要求的全部页面,有时就会出现分配的页面数增多单缺页率反而提高。

    • 最近最少使用(LRU)置换算法:选择最近最少使用(距离上次被访问时间最长)的页面予以淘汰。

    • 最近未用(NUR)置换算法:将最近一段时间未引用过的页面换出。

  1. 工作集
  • 工作集:指在某段时间间隔里(Δ,变量Δ是工作集的"窗口尺寸"),进程实际要访问的页面的集合。
  • 工作集理论:为了使程序能够有效地运行,较少地产生缺页,必须使程序的工作集驻留在主存中。
  • 当每个工作集都已达到最小值时,虚存管理程序跟踪进程的缺页数量,根据主存中自由页面的数量可适当增加其工作集的大小。

4.4 设备管理

4.4.1 概述

  1. 设备的分类
  • 按数据组织分类

    • 块设备(Block Device),以数据块为单位来组织和传送数据信息的设备,如磁盘。
    • 字符设备(Character Device),以单个字符为单位来传送数据信息的设备,如交互式终端、打印机等。
  • 按功能分类

    • 输入设备:将数据、图像、声音送入计算机的设备。
    • 输出设备:将加工好的数据显示、印刷、再生出来的设备。
    • 存储设备:指能进行数据或信息保存的设备。
    • 网络联网设备:指网络互联设备以及直接连接上网的设备。
    • 供电设备:向计算机提供电力能源、电池后备的部件与设备,如开关电源、联机UPS等。
  • 从资源分配角度分类

    • 独占设备:指在一段时间内只允许一个用户(进程)访问的设备。如大多数低速的I/O设备(打印机等)。

    • 共享设备:指在一段时间内以允许多个进程同时访问的设备。必须是可寻址、可随机访问的设备,如磁盘。

    • 虚拟设备:通过虚拟技术将一台独占设备变换为若干供多个用户(进程)共享的逻辑设备。

      一般可利用假脱机技术(Spooling技术)实现虚拟设备。

  • 按数据传输速率分类

    • 低速设备:指传输速率为每秒种几个字节到数百个字节的设备,如键盘、鼠标、语音的输入等。
    • 中速设备:指传输速率为每秒钟数千个字节到数十千个字节的设备,如行式打印机、激光打印机等。
    • 高速设备:指传输速率在数百个千字节到数兆字节的设备,如磁带机、磁盘机和光盘机等。
  1. 设备管理的目标与任务
  • 设备管理的目标:提高设备的利用率,为用户提供方便、统一的界面。
    • 提高设备的利用率,就是提高CPU与I/O设备之间的并行操作程度。
    • 在设备管理中,主要利用的技术有DMA技术、中断技术、通道技术和缓冲技术。
  • 设备管理的任务:在多道程序环境下,当多个进程竞争使用设备时:
    • 按一定的策略分配和管理各种设备。
    • 控制设备的各种操作。
    • 完成I/O设备与主存之间的数据交换。
  • 设备管理的功能
    • 动态地掌握并记录设备的状态。
    • 设备分配和释放。
    • 缓冲区管理。
    • 实现物理I/O设备的操作。
    • 提供设备使用的用户接口及设备的访问和控制。

4.4.2 I/O软件

设计I/O软件的主要目标是设备独立性和统一命名。

  • I/O管理软件一般分为4层:用户级软件、设备无关软件、设备驱动程序、中断处理程序。

4.4.3 设备管理采用的相关技术

  1. 通道技术
  • 引入通道的目的:使数据的传输独立于CPU,使CPU从烦琐的I/O工作中解脱出来。
  • 根据信息交换方式的不同,通道分为:
    • 字节多路通道。
    • 数组选择通道。
    • 数组多路通道。
  1. DMA技术
  • 直接内存存取(Direct Memory Access,DMA)是指数据在主存与I/O设备间直接成块传送。
  • 由DMA硬件直接完成,CPU只需在过程开始启动和过程结束时进行处理。
  1. 缓冲技术
  • 缓冲技术可以提高外设利用率,尽可能使外设处于忙状态。
  • 引入缓冲的原因
    • 缓和CPU与I/O设备间速度不匹配的矛盾。
    • 减少对CPU的中断频率,放宽对中断响应时间的限制。
    • 提高CPU和I/O设备之间的并行性。
  • 缓冲技术的分类
    • 硬件缓冲:利用专门的硬件寄存器作为缓冲。
    • 软件缓冲:通过操作系统来管理。
  • 在所有的I/O设备和处理机(主存)之间都使用了缓冲区来交换数据,所以操作系统必须组织和管理好这些缓冲区。
  • 缓冲可分为:单缓冲、双缓冲、多缓冲和环形缓冲。
  1. Spooling技术
  • Spooling是Simultaneous Peripheral Operations On Line,外围设备联机操作。

  • Spooling技术的实质

    • 用一类物理设备模拟另一类物理设备的技术。
    • 是使独占使用的设备变成多台虚拟设备的一种技术。
    • 也是一种速度匹配技术。
  • Spooling系统的组成

    • 输入井:系统在辅助存储器上开辟的存储区域,存放从输入设备输入的信息。

    • 输出井:系统在辅助存储器上开辟的存储区域,存放作业的执行结果。

    • 预输入程序:捕获输入请求,把装在输入设备上的作业输入到硬盘的输入井中并填写好作业表。

      以便在作业执行中要求输入信息时可以随时找到它们的存放位置。

    • 缓输出程序:当输出设备空闲时,把硬盘上输出井的数据送到慢速的输出设备上。

    • 井管理程序 。

  • Spooling系统中拥有一张作业表用来登记进入系统的所有作业的作业名、状态和预输入表位置等信息。

  • 每个用户作业拥有一张预输入表来登记该作业的各个文件的情况,包括设备类、信息长度及存放位置等。

  • 输入井中的作业有如下4种状态

    • 提交状态:作业的信息正从输入设备上预输入。
    • 后备状态:作业预输入结束但未被选中执行。
    • 执行状态:作业已被选中运行,在运行过程中,它可以从输入井中读取数据信息,也可以向输出井写信息。
    • 完成状态:作业已经撤离,该作业的执行结果等待缓输出。

4.4.4 磁盘调度

  • 引入磁盘调度的原因:每一时刻只允许一个进程启动磁盘进行I/O操作,其余进程只能等待。
  • 磁盘调度的目标:由于访问磁盘最耗时的是寻道时间,故磁盘调度目标是使磁盘的平均寻道时间最少。
  • 磁盘调度分为移臂调度和旋转调度两类,并且先进行移臂调动,然后进行旋转调度。
  1. 磁盘驱动调度
  • 先来先服务:根据进程请求访问磁盘的先后次序进行调度。
  • 最短寻道时间优先:要求访问的磁道与当前磁头所在的磁道距离最近,使得每次的寻道时间最短。
  • 扫描算法/电梯调度算法:与当前磁头的移动方向一致,且与当前磁道的距离最近。
  • 单向扫描调度算法:规定磁头只做单向移动,即要么只从里到外循环,要么只从外到里循环。
  1. 旋转调度算法
  • 当有若干等待进程请求访问磁盘上的信息时,旋转调度应考虑如下情况:
    • 第一种,进程请求访问的是同一磁道上不同编号的扇区。
    • 第二种,进程请求访问的是不同磁道上不同编号的扇区。
    • 第三种,进程请求访问的是不同磁道上具有相同编号的扇区。
    • 对于第一、二种,旋转调度总是让首先达到读/写磁头位置下的扇区先进行传送操作;
    • 对于第三种,旋转调度可以任选一个读/写磁头位置下的扇区进行传送操作。

4.5 文件管理

引入文件系统专门负责管理外存储器上的信息,这些信息是以文件的形式存放的,使用户可以"按名"存取。

4.5.1 基本概念

  1. 文件
  • 文件(File)是具有符号名的、在逻辑上具有完整意义的一组相关信息项的集合。

  • 信息项:是构成文件内容的基本单位,可以是一个字符,也可以是一个记录,记录可以等长,也可以不等长。

  • 一个文件包括文件体和文件说明

    • 文件体:是文件的真实内容。

    • 文件说明:是操作系统为了管理文件所用到的信息。

      包括文件名、文件内部标识、文件的类型、文件存储地址、文件的长度、访问权限、建立时间和访问时间等。

  • 文件管理中的一个非常关键的问题在于文件的命名。

  1. 文件系统
  • 文件管理系统的概念
    • 是操作系统中实现文件统一管理的一组软件和相关数据的集合;
    • 专门负责管理和存取文件信息的软件机构。
  • 文件管理系统的功能
    • 按名存取。用户可以"按名存取",而不是"按地址存取"。
    • 统一的用户接口。在不同设备上提供同样的接口,方便用户操作和编程。
    • 并发访问和控制。在多道程序系统中支持对文件的并发访问和控制。
    • 安全性控制。在多用户系统中的不同用户对同一文件可有不同的访问权限。
    • 优化性能,采用相关技术提高系统对文件的存储效率、检索和读/写性能;
    • 差错恢复,能够验证文件的正确性,并具有一定的差错恢复能力。
  1. 文件的类型
  • 按文件性质和用途分类
    • 系统文件。
    • 库文件。
    • 用户文件。
  • 按信息保存期限分类
    • 临时文件。
    • 档案文件。
    • 永久文件。
  • 按文件的保护方式分类
    • 只读文件。
    • 读/写文件。
    • 可执行文件。
    • 不保护文件。
  • UNIX系统中的文件
    • 普通文件。
    • 目录文件。
    • 设备文件(特殊文件)。
  • 目前常用的文件类型
    • FAT:file allocation table,文件分配表。
    • Vfat:virtual file allocation table,虚拟文件分配表。
    • NTFS:new technology file system,新技术文件系统。
    • Ext2:second extended filesystem,第二代扩展文件系统,LINUX内核所用的文件系统。
    • HPFS:high performance file system,高性能文件系统。

4.5.2 文件的结构和组织

  • 文件的结构是指文件的组织形式。
  • 从用户的角度看到的文件组织形式称为文件的逻辑结构。
  • 从实现的角度看,文件在存储器上的存放方式称为文件物理结构。
  1. 文件的逻辑结构
  • 有结构的记录文件:由一个以上的记录构成的文件。
    • 所有的记录通常都是描述一个实体集的,有着相同或不同数目的数据项。记录的长度可分为定长和变长两类。
    • 定长记录:指文件中所有记录的长度相同。
    • 变长记录:指文件中各记录的长度不相同。
  • 无结构的流式文件:由一串顺序字符流构成的文件。
    • 文件体为字节流,不划分记录。
    • 通常采用顺序访问方式,每次读/写访问可以指定任意数据长度,其长度以字节为单位。
    • 对于流式文件访问,是利用读/写指针指出下一个要访问的字符。
  1. 文件的物理结构
  • 连续结构/顺序结构:将逻辑上连续的文件信息,依次存放在连续编号的物理块上。
    • 优点:对文件诸记录进行批量存取时,存取效率最高。
    • 缺点:不便于记录的增加或删除操作。
  • 链接结构/串联结构:将逻辑上连续的文件信息,存放在不连续的物理块上,每个物理块设有一个指针指向下一个物理块。
  • 索引结构:将逻辑上连续的文件信息,存放在不连续的物理块中,系统为每个文件建立一张索引表。
    • 索引表记录了文件信息所在的逻辑块号对应的物理块号。
    • 并将索引表的起始地址放在与文件对应的文件目录项中。
  • 多个物理块的索引表
    • 索引表是在文件创建时由系统自动建立的,并与文件一起存放在同一文件卷上。
    • 占用多个物理块的索引表有两种组织方式:链接文件和多重索引方式。
    • UNIX文件系统中采用的是三级索引结构。

4.5.3 文件目录

  • 文件控制块FCB:也称文件的说明或文件目录项,至少包括文件名和存放文件的物理地址。
  • 文件目录:是文件控制块的有序集合,专门用于文件的检索。
  • 常见的三种目录结构
    • 一级目录结构。
    • 二级目录结构。
    • 多级目录结构。
  • 在采用多级目录结构的文件系统中,用户要访问一个文件,必须指出文件所在的路径名。
    • 路径名:是从根目录开始到该文件的通路上所有各级目录名拼起来得到的。
    • 在各目录名之间、目录名与文件名直接按需要用分隔符隔开。
    • 绝对路径名:是指从根目录"/"开始的完整文件名,即它是由从根目录开始的所有目录名以及文件名构成的。
    • 全文件名:包括盘符及从根目录开始的路径名。
    • 相对路径名:是从当前工作目录下的路径名。(即开头不用"\")。

4.5.4 存取方法和存储空间的管理

  1. 文件的存取方法
  • 含义:文件的存取方法是指读/写文件存储器上的一个物理块的方法。
  • 顺序存取方法:是指对文件中的信息按顺序依次进行读/写。
  • 随机存取方法:是指对文件中的信息可以按任意的次序随机地读写。
  1. 文件存储空间的管理
  • 磁盘分配表:管理外存空闲空间的数据结构。
  • 常用的空闲空间管理方法有:空闲区表、位示图和空闲块链三种。
  • 空闲区表
    • 将外存空间上的一个连续的未分配区域称为"空闲区"。
    • 操作系统为磁盘外存上的所有空闲区建立一张空闲表,每个表项对应一个空闲区。
    • 空闲区中包含序号、空闲区的第一块号、空闲块的块数和状态等信息。
    • 适用于连续文件结构。
  • 位示图
    • 在外存上建立一张位示图(bitmap),记录文件存储器的使用情况。
    • 每一位对应文件存储器上的一个物理块,取值0和1分别表示空闲和占用。
    • 位示图的大小由磁盘空间的大小(物理块总数)决定。
    • 适用于各种物理结构。
  • 空闲块链
    • 每个空闲物理块中有指向下一个空闲物理块的指针,所有空闲物理块构成一个链表。
    • 链表的头指针放在文件存储器的特定位置上(如管理块中),不需要磁盘分配表,节省空间。
  • 成组链接法
    • 将空闲块分为若干组,每100个空闲块为一组。
    • 每一组的第一个空闲块登记了下一组空闲块的物理块号和空闲块总数。
    • 若某个组的第一个空闲号等于0,则意味着该组是最后一组,无下一组空闲块。

4.5.5 文件的使用

  • 文件系统为每个文件与文件在磁盘上的存放位置建立了对应关系。
  • 文件系统通过用户给出的文件名查出对应文件的存放位置,读出文件的内容。
  • 操作系统为每个文件建立和维护文件主、访问权限等方面的信息。
  • 操作系统在操作级(命令级)和编程级(系统调用和函数)向用户提供文件的服务。
  • 操作系统在操作级向用户提供的命令有目录管理类命令、文件操作类命令(如复制、删除)、文件管理类命令(如设置文件权限)。

4.5.6 文件的共享与保护

  1. 文件的共享
  • 文件共享:指不同用户进程使用同一文件。
  • 采用文件名和文件说明分离的目录结构有利于实现文件共享。
  • 常见的文件链接有硬链接和符号链接两种。
  • 硬链接
    • 是指两个文件目录表目指向同一个索引结点的链接,该链接也称基于索引结点的链接。
    • 是指不同文件名与同一个文件实体的链接。
    • 文件硬链接不利于文件主删除它拥有的文件,要想删除必须先删除(关闭)所有的硬链接。
  • 符号链接
    • 建立新的文件或目录,并与原来的文件或目录的路径名进行映射。
    • 当访问一个符号链接时,系统通过该映射找到原文件的路径,并对其进行访问。
    • 优点:可以跨越文件系统。可借助计算机网络,通过文件所在的地址以及在机器中的文件路径找到世界上的任何文件。
    • 缺点:其他用户读取符号链接的共享文件比读取硬链接的共享文件需要增加读盘操作的次数。
  1. 文件的保护
  • 文件系统对文件的保护常采用存取控制方式进行。
  • 存取控制:不同的用户对文件的访问规定不同的权限,以防止文件被未经文件主同意的用户访问。
  • 存取控制矩阵
    • 一维列出计算机的全部用户。
    • 一维列出系统中的全部文件。
    • 矩阵中的每个元素Aij表示第i个用户对第j个文件的存取权限。
    • 通常存取权限有可读R、可写W、可执行X,以及它们的组合。
  • 存取控制表
    • 按用户对文件访问权力的差别对用户进行分类。
    • UNIX系统把用户分为文件主、同组用户、其他用户三类。
    • 每个用户的存取权限为可读、可写、可执行以及它们的组合。
  • 用户权限表
    • 以用户或用户组为单位将用户可存取的文件集中起来存入表中。
    • 表中的每个表目表示该用户对应文件的存取权限。
    • 相当于存取控制矩阵一行的简化。
  • 密码
    • 在创建文件时,由用户提供一个密码,在文件存入磁盘时用该密码对文件内容加密。
    • 在进行读取操作时,要对文件进行解密,只有知道密码的用户才能读取文件。

4.5.7 系统的安全与可靠性

  1. 系统的安全
  • 一般从4个级别上对文件进行安全性管理:系统级、用户级、目录级和文件级。
  • 系统级
    • 主要任务:不允许未经授权的用户进入系统。
    • 主要措施:注册与登录。
  • 用户级
    • 对所有用户分类,对指定用户分配访问权,不同的用户对不同文件设置不同的存取权限。
    • UNIX系统将用户分为文件主、同组用户和其他用户。
    • 有的系统将用户分为超级用户、系统操作员和一般用户。
  • 目录级
    • 为了保护系统中各种目录,与用户权限无关。
    • 规定只有系统核心才具有写目录的权利。
  • 文件级
    • 通过系统管理员或文件主对文件属性的设置来控制用户对文件的访问。
    • 通常可以设置以下几种属性:只执行、隐含、只读、读/写、共享、系统。
    • 用户对文件的访问,将由用户访问权、目录访问权以及文件属性三者的权限所确定,或者说是有效权限和文件属性的交集。
  1. 文件系统的可靠性
  • 可靠性:指系统抵抗和预防各种物理性破坏和人为破坏的能力。
  • 保护信息的主要方法:转储和恢复、日志文件和文件系统的一致性检查。
  • 文件系统的一致性检查包括:块的一致性检查和文件的一致性检查。

4.6 作业管理

  • 作业:是系统为完成一个用户的计算任务(或一次事务处理)所作的工作总和。其中每一步称为作业步。
  • 作业管理程序:在操作系统中用来控制作业进入、执行和撤销的一组程序。

4.6.1 基本概念

  1. 作业与作业控制方式
  • 作业的组成

    • 程序。

    • 数据。

    • 作业说明书:包括作业基本情况、作业控制、作业资源要求的描述,它体现用户的控制意图。

      作业基本情况包括:用户名、作业名、编程语言和最大处理时间等;

      作业控制描述包括:作业控制方式、作业步的操作顺序、作业执行出错处理;

      作业资源要求描述包括:处理时间、优先级、主存空间、外设类型和数量等。

  • 作业的控制方式

    • 脱机。无需人工干预,用户需把控制意图写进作业说明书,与作业一起提交给计算机系统。
    • 联机。需人工干预。用户通过操作系统提供的联机命令,在终端输入命令表达自己的控制意图。
  1. 作业状态及转换
  • 作业状态分为4种:提交、后备、执行和完成。

    • 提交:作业提交给计算机中心,通过输入设备送入计算机系统的过程状态称为提交状态。

    • 后备:通过Spooling系统将作业输入计算机系统的后备存储器(磁盘)中,随时等待作业调度程序调度时的状态。

    • 执行:一旦作业被作业调度程序选中,为其分配了必要的资源,并为其建立相应的进程后,该作业便进入了执行状态。

    • 完成:当作业正常结束或异常终止时,作业进入完成状态。

      此时,由作业调度程序对该作业进行善后处理,如:
      ① 撤销作业的作业控制块;
      ② 收回作业所占的系统资源;
      ③ 将作业的执行结果形成输出文件放到输出井中,由Spooling系统控制输出。

  • 作业的状态及其转换图

    在这里插入图片描述

  1. 作业控制块和作业后备队列
  • 作业控制块(JCB)
    • 是记录与该作业有关的各种信息的登记表。
    • JCB是作业存在的唯一标标志,包括用户名、作业名和状态标志信息等。
  • 作业后备队列
    • 输入井中有较多的后备作业,为了便于作业调度程序调度,将作业控制块排成一个或多个队列,称为作业后备队列。
    • 即作业后备队列是由若干个作业控制块组成的。

4.6.2 作业调度

  1. 作业调度算法
  • 先来先服务:按作业到达的先后进行调度,即启动等待时间最长的作业。
  • 短作业优先:以要求运行时间的长短进行调度,即启动要求运行时间最短的作业。
  • 响应比高优先:响应比高的作业优先启动。响应比定义为:
    在这里插入图片描述
    • 作业响应时间:是作业进入系统后的等候时间与作业的执行时间之和。
    • 每次调度前都要计算所有被选作业(在作业后备队列中)的响应比,然后选择最高的。
    • 该算法比较复杂,系统开销大。
  • 优先级调度算法
    • 由用户指定作业优先级,优先级高的作业先启动。
    • 也可由系统根据作业要求的紧迫程度,或者照顾"I/O繁忙"的作业,以便充分发挥外设的效率。
  • 均衡调度算法
    • 基本思想:根据系统运行情况和作业本身特性对作业进行分类。作业调度程序轮流从这些不同类别的作业中挑选作业执行。
    • 此算法力求均衡地使用系统的各种资源,既注意发挥系统效率,又使用户满意。
  1. 作业调度算法性能的衡量指标
  • 在一个以批量处理为主的系统中,衡量调度性能优劣的指标是平均周转时间或平均带权周转时间。
  • 假设作业i的提交时间为Tsi,结束时间为Toi,执行时间为Tri:
    • 作业Ji的周转时间 Ti = Toi - Tsi。
    • 作业Ji的带权周转时间 Wi = Ti / Tri,Wi ≥ 1。
  • N个作业的平均周转时间T = n个作业的周转时间之和 / n。
  • N个作业的平均带权周转时间W = n个作业的带权周转时间之和 / n。

4.6.3 用户界面

  • 用户界面:是计算机中实现用户与计算机通信的软、硬件部分的总称,也称用户接口、人机界面。
  • 用户界面的硬件部分
    • 用户向计算机输入数据或命令的输入装置。
    • 计算机输出供用户观察或处理的输出装置。
    • 常用的输入/输出装置:键盘、鼠标、显示器和打印机等。
  • 用户界面的软件部分
    • 用户与计算机相互通信的协议、约定、操作命令及其处理软件。
    • 常用的人机通信方法:命令语言、选项、表格填充及直接操纵等。
  • 用户界面的发展阶段
    • 控制面板式用户界面。

    • 字符用户界面。

    • 图形用户界面。

    • 新一代用户界面

      人将作为参与者,以自然的方式与计算机生成的虚拟环境进行通信。

      特征:以用户为中心、自然、高效、非精确、无地点限制。

      技术支持:多媒体、多通道、智能化。

  • 33
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值