操作系统知识【软考】

编程入门 行业动态 更新时间:2024-10-23 06:29:07

<a href=https://www.elefans.com/category/jswz/34/1769955.html style=操作系统知识【软考】"/>

操作系统知识【软考】

文章目录

  • 一、 操作系统概述
    • 1. 操作系统的基本概念
      • (1)操作系统定义及作用
      • (2)操作系统特征与功能
    • 2. 操作系统分类及特点
    • 3. 操作系统的发展
  • 二、 进程管理
    • 1. 基本概念
      • (1)程序与进程
        • ① 程序顺序执行的特征
        • ② 程序并发执行的特征
      • (2)进程的组成
      • (3)进程的状态及其状态间的切换
        • ① 三态、五态模型
        • ② 具有挂起状态的进程状态及其转换
    • 2. 进程的控制
    • 3. 进程间的通信
      • (1)同步与互斥
        • ① 进程间的同步
        • ② 进程间的互斥
        • ③ 界区管理的原则
      • (2)信号量机制
      • (3)高级通信原语
    • 4. 管程(Monitor)
    • 5. 进程调度
      • (1)三级调度
      • (2)调度算法
      • (3)进程优先级确定
    • 6. 死锁
      • (1)死锁产生的原因
      • (2)死锁产生的四个必要条件
      • (3)死锁的处理
      • (4)银行家算法
    • 7. 线程
  • 三、 储存管理
    • 1. 基本概念
      • (1)存储器的结构
      • (2)地址重定位
    • 2. 存储管理方案
      • (1)分区存储管理
      • (2)分区保护
    • 3. 分页存储管理
      • (1)纯分页存储管理
      • (2)快表
      • (3)两级页表机制
    • 4. 分段存储管理
    • 5. 段页式存储管理
    • 6. 虚拟存储管理
      • (1)程序局部性原理
      • (2)虚拟存储器的实现
      • (3)请求分页管理的实现
      • (4)页面置换算法
        • ① 最佳(Optimal)置换算法
        • ② 先进先出(FIFO)置换算法
        • ③ 最近最少未使用(Least Recently Used,LRU)置换算法
        • ④ 最近未用(Not Used Recently,NUR)置换算法
      • (5)工作集
  • 四、 设备管理
    • 1. 设备管理概述
      • (1)设备的分类
      • (2)设备管理的目标与任务
    • 2. I/O软件
    • 3. 设备管理采用的相关技术
      • (1)程序控制方式
      • (2)程序中断方式
      • (3)通道技术
      • (4)DMA 技术
      • (5)缓冲技术
      • (6)Spooling 技术
    • 4. 微内核操作系统
    • 5. 磁盘调度
      • (1)磁盘驱动调度
      • (2)旋转调度算法
  • 五、 文件管理
    • 1. 文件与文件系统
      • (1)文件
      • (2)文件系统
      • (3)文件的类型
    • 2. 文件的结构和组织
      • (1)文件的逻辑结构
      • (2)文件的物理结构
    • 3. 文件目录
      • (1)文件控制块
      • (2)目录结构
      • (3)文件属性及文件名的组成
    • 4. 存取方法和存储空间的管理
      • (1)文件的存取方法
      • (2)文件存储空间的管理
    • 5. 文件的使用
    • 6. 文件的共享和保护
        • (1)文件的共享
        • (2)文件的保护
    • 7. 系统的安全性与可靠性
        • (1)系统的安全
        • (2)文件系统的可靠性
  • 六、 作业管理
    • 1. 作业与作业控制
      • (1)作业控制
      • (2)作业状态及转换
      • (3)作业控制块和作业后备队列
    • 2. 作业调度
      • (1)作业调度算法
      • (2)作业调度算法性能的衡量指标
    • 3. 用户界面(User Interface)

计算机技术与软件专业技术资格(水平)考试目录

一、 操作系统概述

  计算机软件通常分为:系统软件【计算机系统的一部分,用来支持应用软件的运行】和应用软件【计算机用户利用计算机的软件、硬件资源为某一专门的应用目的而开发的软件】。
  常用的系统软件:操作系统、语言处理程序、链接程序、诊断程序和数据库管理系统等。
  是计算机系统中必不可少的核心系统软件,其他软件是建立在操作系统的基础上,在操作系统的统一管理和支持下运行的,是用户与计算机之间的接口

1. 操作系统的基本概念

(1)操作系统定义及作用

  定义:是计算机系统的资源管理者管理系统的硬件、软件、数据资源,合理地组织计算机系统工作流程,控制程序的执行,向用户提供一个良好的工作环境和友好的接口(人机接口),并且是应用软件与硬件之间的接口
  作用:通过资源管理提高计算机系统的效率;改善人机界面向用户提供友好的工作环境,提高用户的工作效率。提高计算机系统在单位时间内处理工作的能力(称为系统的"吞吐量(throughput)")。

(2)操作系统特征与功能

  特征:并发性、共享性、虚拟性和不确定性。
  功能:操作系统的 5 5 5 大部分通过相互配合、协调工作来实现对计算机系统中资源的管理,控制任务的运行。

  • 进程管理:实质上是对处理机的执行“时间”进行管理。
  • 文件管理:主要包括文件存储空间管理、目录管理、文件的读/写管理和存取控制。
  • 存储管理:对主存储器"空间"进行管理。
  • 设备管理:实质是对硬件设备的管理。
  • 作业管理:包括任务、界面管理、人机交互、图形界面、语音控制和虚拟现实等。

2. 操作系统分类及特点

  • 批处理操作系统:分为单道批处理和多道批处理。
  • 分时操作系统:一个计算机系统与多个终端设备连接。
  • 实时操作系统:对于外来信息能够以足够快的速度进行处理,并在被控对象允许的时间范围内做出快速反应。实时系统对交互能力要求不高,但要求可靠性有保障。
  • 网络操作系统:是使联网计算机能方便而有效地共享网络资源,为网络用户提供各种服务的软件和有关协议的集合。
  • 分布式操作系统:由多个分散的计算机经连接而成的计算机系统,系统中的计算机无主、次之分,任意两台计算机可以通过通信交换信息。
  • 微型计算机操作系统:统简称微机操作系统,常用的有Windows、Mac OS、Linux。
  • 嵌入式操作系统:运行在嵌入式智能芯片环境中,对整个智能芯片以及它所操作、控制的各种部件装置等资源进行统一协调、处理、指挥和控制。

3. 操作系统的发展

  计算机各代的划分主要是以硬件和操作系统软件技术的创新为标志。
  促使操作系统发展的因素:硬件的不断升级与新的硬件产品出现,需要提供更多、更复杂的支持;新的服务需求,为了满足系统管理者和用户需求,需要不断扩大服务范围;修补操作系统自身的错误(即所谓的“补丁”)。

二、 进程管理

  也称处理机管理,进程是资源分配和独立运行的基本单位

1. 基本概念

(1)程序与进程

① 程序顺序执行的特征

  前趋图:是一个有向无循环图,由结点和有向边组成,结点代表各程序段的操作,而结点间的有向边表示两个程序段操作之间存在的前趋关系(→)。用来表达的其实是要完成的一系列活动它的先后约束关系,哪些任务可以并行,哪些任务之间有顺序关系
  程序顺序执行时的主要特征:顺序性、封闭性和可再现性。

② 程序并发执行的特征

  若在计算机系统中采用多道程序设计技术,则主存中的多道程序可处于并发执行状态。虽然每个作业有前趋关系的各程序段不能在CPU和输入/输出各部件并行执行,但是同一个作业内没有前趋关系的程序段或不同作业的程序段可以分别在CPU和各输入/输出部件上并行执行。

  特征:

  • 失去了程序的封闭性。
  • 程序和机器的执行程序的活动不再一一对应。
  • 并发程序间的相互制约性

(2)进程的组成

  进程是程序的一次执行,该程序可以和其他程序并发执行。进程通常是由程序、数据和进程控制块(Process Control Block,PCB)组成的。

  • PCB:进程存在的唯一标志
  • 程序:描述了进程需要完成的功能。
  • 数据:包括程序执行时所需的数据及工作区,该部分只能为一个进程所专用,是进程的可修改部分。
  • PCB的组织方式:索引方式【把具有同一状态的进程(PCB),用其中的链接字链接成一个队列】和链接方式【系统根据所有进程的状态建立若干索引表】。

(3)进程的状态及其状态间的切换

① 三态、五态模型

  在多道程序系统中,进程在处理器上交替运行,状态也不断地发生变化,因此进程一般有 3 3 3 种基本状态:运行、就绪和阻塞。

  • 运行:当一个进程在处理机上运行时。单处理机系统,处于运行状态的进程只有一个。
  • 就绪:一个进程获得了除处理机外的一切所需资源,一旦得到处理机即可运行。
  • 阻塞:也称等待或睡眠状态,一个进程正在等待某一事件发生(例如请求I/O等待I/O完成等)而暂时停止运行,这时即使把处理机分配给进程也无法运行。
② 具有挂起状态的进程状态及其转换

  由于进程的不断创建,系统资源特别是主存资源已不能满足进程运行的要求。这时,就必须将某些进程挂起,放到磁盘对换区,暂时不参加调度,以平衡系统负载。或者是系统出现故障,或者是用户调试程序,也可能需要将进程挂起检查问题。

  • 活跃就绪:指进程在主存并且可被调度的状态。
  • 静止就绪:指就绪进程被对换到辅存时的状态,它是不能被直接调度的状态,只有当主存中没有活跃就绪态进程,或者是挂起态进程具有更高的优先级时,系统将把挂起就绪态进程调回主存并转换为活跃就绪。
  • 活跃阻塞:指进程在主存,一旦等待的事件产生便进入活跃就绪状态。
  • 静止阻塞:指阻塞进程对换到辅存时的状态,一旦等待的事件产生便进入静止就绪状态。

2. 进程的控制

  对系统中的所有进程从创建到消亡的全过程实施有效的控制,是由操作系统内核(Kernel)中的原语实现的。内核是计算机系统硬件的首次延伸,是基于硬件的第一层软件扩充,为系统对进程进行控制和管理提供良好的环境
  原语(Primitive):指由若干条机器指令组成的,用于完成特定功能的程序段。特点:在执行时不能被分割,即原子操作要么都做,要么都不做。

3. 进程间的通信

  指各个进程交换信息的过程,在多道程序环境的系统中存在多个可以并发执行的进程,故进程间必然存在资源共享和相互。

(1)同步与互斥

  同步:是合作进程间的直接制约问题。运行速度有差异的两个进程同时开始运行,在一定情况下,速度较快的进程会停下来等待速度较慢的进程。
  互斥:是申请临界资源进程间的间接制约问题。在同一时刻只允许某一个进程使用资源,即同一资源不能服务于多个进程。

① 进程间的同步

  指在系统中一些需要相互合作,协同工作的进程,这样的相互联系称为进程的同步。
  多个进程可以并发执行,每个进程都以各自独立的、不可预知的速度向前推进,但是需要在某些确定点上协调相互合作进程间的工作。

② 进程间的互斥

  指系统中多个进程因争用临界资源而互斥执行。
  在多道程序系统环境中,各进程可以共享各类资源,但有些资源一次只能供一个进程使用,称为临界资源(CriticalResource,CR)。

③ 界区管理的原则

  临界区(Critical Section,CS):进程中对临界资源实施操作的那段程序。

  • 有空即进:当无进程处于临界区时,允许进程进入临界区,并且只能在临界区运行有限的时间。
  • 无空则等:当有一个进程在临界区时,其他欲进入临界区的进程必须等待,以保证进程互斥地访问临界资源。
  • 有限等待:对于要求访问临界资源的进程,应保证进程能在有限的时间进入临界区,以免陷入“饥饿”状态。
  • 让权等待:当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入忙等状态

(2)信号量机制

  信号量:一种特殊的变量,只用于 P V PV PV 操作, P ( S ), V ( S ) P(S),V (S) P(S),V(S)中的 S S S 就是信号量。

  • P V PV PV 操作 :是两大原子操作的一个组合,有 P P P 操作和 V V V 操作, P V PV PV 操作其实就是并发问题的解决方案。

       P P P 操作表示: S = S − 1 S = S - 1 S=S−1 ,若 S ≥ 0 S ≥ 0 S≥0 ,则执行 P P P 操作的进程继续执行;若 S < 0 S < 0 S<0 ,则置该进程为阻塞状态(因为无可用资源),并将其插入阻塞队列。该操作即为将进程“挂起”或“申请资源”,该操作一般用于”运行需要条件的操作“。
       V V V 操作表示: S = S + 1 S = S + 1 S=S+1 ,若 S > 0 S > 0 S>0 ,则执行 V V V 操作的进程继续执行;若 S < 0 S < 0 S<0 ,则从阻塞状态唤醒一个进程,并将其插入就绪队列,然后执行 V V V 操作的进程继续。该操作即将进程“唤醒”或“释放资源”,一般将该操作用于”没有任何约束的操作“。
  • P V PV PV 操作与前趋图
       每一个箭头对应一个信号量,箭头的起点位置是 V V V 操作,终点位置是 P P P 操作。

(3)高级通信原语

  进程间通信:进程之间的信息交换,少则一个信息,多则成千上万个信息。根据交换信息量的多少和效率的高低,进程通信的方式分为低级方式【 P V PV PV操作】和高级方式。

   P V PV PV操作缺点

  • 编程难度大:通信对用户不透明, P V PV PV 操作使用不当容易引起死锁。
  • 效率低:生产者每次只能向缓冲区放一个消息,消费者只能从缓冲区取一个消息。

  高级通信方式(提高信号通信的效率,传递大量数据,降低程序编制的复杂度)

  • 共享存储模式:相互通信的进程共享某些数据结构(或存储区)实现进程之间的通信。
  • 消息传递模式:进程间的数据交换以消息为单位。
  • 管道通信:通信时采用管道【用于连接一个读进程和一个写进程,以实现它们之间通信的共享文件(pipe文件)】,向管道(共享文件)提供输入的发送进程(即写进程),以字符流的形式将大量的数据送入管道;而接收进程可从管道接收大量的数据。

4. 管程(Monitor)

  基本思路:采用资源集中管理的方法,将系统中的资源用某种数据结构抽象地表示出来。由于临界区是访问共享资源的代码段,建立一个管程管理进程提出的访问请求。
  采用这种方式对共享资源的管理就可以借助数据结构及在其上实施操作的若干过程来进行,对共享资源的申请和释放可以通过过程在数据结构上的操作来实现。
  管程由一些共享数据、一组能为并发进程所执行的作用在共享数据上的操作的集合、初始代码以及存取权组成。
  管程提供了一种可以允许多进程安全、有效地共享抽象数据类型的机制,管程实现同步机制由“条件结构(Condition Construct)”所提供。为实现进程互斥同步,必须定义一些条件变量。

5. 进程调度

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

(1)三级调度

  • 高级调度:又称“长调度”、“作业调度”或“接纳调度”,它决定处于输入池中的哪个后备作业可以调入主系统做好运行的准备,成为一个或一组就绪进程。在系统中一个作业只需经过一次高级调度
  • 中级调度:又称“中程调度”或“对换调度”,它决定处于交换区中的哪个就绪进程可以调入内存,以便直接参与对CPU的竞争。在内存资源紧张时,为了将进程调入内存,必须将内存中处于阻塞状态的进程调出至交换区,以便为调入进程腾出空间。这相当于使处于内存的进程和处于盘交换区的进程交换了位置。
  • 低级调度:又称“短程调度"或"进程调度”,它决定处于内存中的哪个就绪进程可以占用CPU。低级调度是操作系统中最活跃、最重要的调度程序,对系统的影响很大

(2)调度算法

  • 先来先服务(FCFS):主要用于宏观调度,按照作业提交或进程成为就绪状态的先后次序分配CPU,即进程调度总是将就绪队列队首的进程投入运行。FCFS的特点是有利于长作业,不利于短作业;有利于CPU繁忙的作业,不利于I/O繁忙的作业
  • 时间片轮转:主要用于微观调度,其设计目标是提高资源利用率。通过时间片轮转提高进程并发性和响应时间特性,从而提高资源利用率。时间片的长度可以从几毫秒到几百毫秒,选择的方法:
      ① 固定时间片:分配给每个进程相等的时间片,使所有进程都公平执行,是一种实现简单且有效的方法。
      ② 可变时间片:根据进程不同的要求对时间片的大小实时修改,可以更好地提高效率。
  • 优先级调度:让每一个进程都拥有一个优先数,数值大的表示优先级高,系统在调度时总选择优先数大的占用CPU。
      ① 静态优先级:进程的优先级在创建时确定,直到进程终止都不会改变。
      ② 动态优先级:在创建进程时赋予一个优先级,在进程运行过程中还可以改变,以便获得更好的调度性能。
  • 多级反馈调度:时间片轮转算法和优先级算法的综合与发展。优点是照顾了短进程以提高系统吞吐量、缩短了平均周转时间;照顾I/O型进程以获得较好的I/O设备利用率和缩短响应时间;不必估计进程的执行时间,动态调节优先级

(3)进程优先级确定

  • 对于I/O型进程:让其进入最高优先级队列,及时响应需要I/O交互的进程。通常执行一个小的时间片,在该时间片内要求可处理完一次I/O请求的数据,然后转入到阻塞队列。
  • 对于计算型进程:每次都执行完时间片后进入更低级队列。最终采用最大时间片来执行,以减少调度次数。
  • 对于I/O次数不多:主要是CPU处理的进程,在I/O完成后,返回优先I/O请求时离开的队列,以免每次都回到最高优先级队列后再逐次下降。
  • 为适应一个进程在不同时间段的运行特点,I/O完成时,提高优先级;时间片用完时,降低优先级。

6. 死锁

  死锁:指两个以上的进程互相都要求对方已经占有的资源导致无法继续运行下去的现象。
死锁产生的原因

(1)死锁产生的原因

  进程管理是操作系统的核心,但如果设计不当,就会出现死锁问题,如果一个进程在等待一件不可能发生的事,则进程就死锁了,此时该进程将一直占用部分系统资源,而如果多个进程产生死锁,就会造成系统资源被占用完毕,进而造成系统死锁。

死锁计算问题:系统内有 n n n 个进程,每个进程需要 R R R 个资源,那么其发生死锁的最大资源数为 n ∗ ( R − 1 ) n ∗(R − 1) n∗(R−1) ,其不发生死锁的最小资源数为 n ∗ ( R − 1 ) + 1 n ∗(R − 1)+ 1 n∗(R−1)+1。


不发生死锁的最小资源数为: 3 ∗ ( 5 − 1 ) + 1 = 13 3 ∗(5 − 1)+ 1 = 13 3∗(5−1)+1=13

(2)死锁产生的四个必要条件

  死锁的四大条件,缺一不可

  • 资源互斥:资源不能同时被使用
  • 保持和等待:每个进程占有资源并等待其他资源
  • 不可剥夺:系统不会去把分配给某个进程的资源剥夺掉
  • 环路条件:进程资源图是一个环路

  当发生死锁时,在进程资源有向图中必构成环路,其中每个进程占有了下一个进程申请的一个或多个资源。进程资源有向图由方框、圆圈和有向边三部分组成。

(3)死锁的处理

  死锁产生后,解决措施是打破四大条件,死锁的处理策略主要有4种:鸵鸟策略(即不理睬策略)、预防策略、避免策略和检测与解除死锁。

  • 死锁预防:采用某种策略限制并发进程对资源的请求,破坏死锁产生的4个必要条件之一,使系统在任何时刻都不满足死锁的必要条件。
    ① 预先静态分配法:破坏了“不可剥夺条件”,预先分配所需资源,保证不等待资源。该方法的问题是降低了对资源的利用率,降低进程的并发程度;有时可能无法预先知道所需资源。
    ② 资源有序分配法:破坏了“环路条件”,把资源分类按顺序排列(占用系统开销),保证不形成环路,但是限制进程对资源的请求。
  • 死锁避免:是设法破坏产生死锁的4个必要条件之一,严格防止死锁的产生。死锁避免则不那么严格地限制产生死锁的必要条件。最著名的死锁避免算法是Djkstra提出的银行家算法死锁避免算法需要很大的系统开销
  • 死锁检测:使用死锁检测方法,这种方法对资源的分配不加限制,即允许死锁产生。但系统定时地运行一个死锁检测程序,判断系统是否发生死锁,若检测到有死锁,则设法加以解除。
  • 死锁解除
    ① 资源剥夺法:从一些进程那里强行剥夺足够数量的资源分配给死锁进程。
    ② 撤销进程法:根据某种策略逐个地撤销死锁进程,直到解除死锁为止。

(4)银行家算法

  对于进程发出的每一个系统可以满足的资源请求命令加以检测,如果发现分配资源后系统进入不安全状态,则不予分配;若分配资源后系统仍处于安全状态,则实施分配。与死锁预防策略相比,提高了资源的利用率,但检测分配资源后系统是否安全增加了系统开销。
  所谓安全状态,是指系统能按某种顺序如 < P 1 , P 2 … , P n > <P_1,P_2…,P_n> <P1​,P2​…,Pn​> 来为每个进程分配其所需资源,直到最大需求,使每个进程都可顺序完成。通常称 < P 1 , P 2 … , P n > <P_1,P_2…,P_n> <P1​,P2​…,Pn​> 序列为安全序列。若系统不存在这样一个安全序列,则称系统处于不安全状态。

假设系统中有三类互斥资源 R 1 、 R 2 R_1、R_2 R1​、R2​ 和 R 3 R_3 R3​,可用资源数分别为 8 、 7 8、7 8、7 和 4 4 4。在 T 0 T_0 T0​ 时刻系统中有 P 1 、 P 2 、 P 3 、 P 4 P_1、P_2、P_3、P_4 P1​、P2​、P3​、P4​ 和 P 5 P_5 P5​ 这 5 5 5 个进程,这些进程对资源的最大需求量和已分配资源数如图所示:

若有如下 4 4 4 个执行序列,那么进程按什么序列执行,系统状态是安全的。
① P 1 → P 2 → P 4 → P 5 → P 3 P_1→P_2→P_4→P_5→P_3 P1​→P2​→P4​→P5​→P3​      ② P 2 → P 1 → P 4 → P 5 → P 3 P_2→P_1→P_4→P_5→P_3 P2​→P1​→P4​→P5​→P3​
③ P 4 → P 2 → P 1 → P 5 → P 3 P_4→P_2→P_1→P_5→P_3 P4​→P2​→P1​→P5​→P3​      ④ P 4 → P 2 → P 5 → P 1 → P 3 P_4→P_2→P_5→P_1→P_3 P4​→P2​→P5​→P1​→P3​


初始时系统的可用资源数分别为 8 、 7 8、7 8、7 和 4 4 4,在 T 0 T_0 T0​ 时刻已分配资源数分别为 7 、 6 7、6 7、6 和 4 4 4,因此系统剩余的可用资源数分别为 1 、 1 1、1 1、1 和 0 0 0。因此,第一个执行 P 4 P_4 P4​

执行完 P 4 P_4 P4​ 后,系统剩余的可用资源数分别为 2 、 3 2、3 2、3 和 1 1 1,第二个可以执行 P 2 P_2 P2​ 和 P 5 P_5 P5​ 。根据题目,因此,第二个执行 P 2 P_2 P2​ 。
执行完 P 2 P_2 P2​ 后,系统剩余的可用资源数分别为 4 、 4 4、4 4、4 和 2 2 2。因此,第三个执行 P 5 P_5 P5​ 。
执行完 P 5 P_5 P5​ 后,系统剩余的可用资源数分别为 5 、 5 5、5 5、5 和 3 3 3。因此,第四个执行 P 1 P_1 P1​ 。
执行完 P 5 P_5 P5​ 后,系统剩余的可用资源数分别为 10 、 8 10、8 10、8 和 4 4 4。因此,第五个执行 P 3 P_3 P3​ 。

因此:序列 ④ P 4 → P 2 → P 5 → P 1 → P 3 P_4→P_2→P_5→P_1→P_3 P4​→P2​→P5​→P1​→P3​ 是安全的,因为所有的进程都能设置完成标志True。

7. 线程

  传统的进程有两个基本属性:可拥有资源的独立单位;可独立调度和分配的基本单位。
  引入线程后,将传统进程的两个基本属性分开,线程作为调度和分配的基本单位,进程作为独立分配资源的单位,可以共享进程的公共数据,全局变量,代码,文件等资源,但不能共享进程中某线程独有的资源,如线程的栈指针等标识数据。用户可以通过创建线程来完成任务,以减少程序并发执行时付出的时空开销。
  线程:是进程中的一个实体,是被系统独立分配和调度的基本单位。线程基本上不拥有资源,只拥有一点运行中必不可少的资源,它可与同属一个进程的其他线程共享进程所拥有的全部资源。
  线程的创建、撤销和切换都利用系统调用来实现。某些系统同时实现了两种类型(用户、系统)的线程。
  进程在进行切换时,都要依赖于内核中的进程调度。因此,不论是什么进程都是与内核有关的,是在内核支持下进行切换的。线程和进程在本质上是不同的

三、 储存管理

  存储器管理的对象是:主存存储器【简称主存或内存】。存储器是计算机系统中的关键性资源,是存放各种信息的主要场所。存储器管理的主要功能包括主存空间的分配和回收、提高主存的利用率、扩充主存、对主存信息实现有效保护。

1. 基本概念

(1)存储器的结构

  存储组织的功能是在存储技术和CPU寻址技术许可的范围内组织合理的存储结构,使得各层次的存储器都处于均衡的繁忙状态。

  • 虚拟地址:数据的存放地址是由符号决定的,故称符号名地址,或者称为名地址。把源程序的地址空间称为符号名地址空间或者名空间。它是从0号单元开始编址,并顺序分配所有的符号名所对应的地址单元,它不是主存中的真实地址,故称为相对地址、程序地址、逻辑地址或虚拟地址。
  • 地址空间:把程序中由符号名组成的空间称为名空间。源程序经过汇编或编译后再经过链接编辑程序加工形成程序的装配模块,即转换为相对地址编址的模块,它是以0为基址顺序进行编址的。相对地址也称为逻辑地址或虚地址,把程序中由相对地址组成的空间称为逻辑地址空间。相对地址空间通过地址再定位机构转换到绝对地址空间,绝对地址空间也称为物理地址空间。
  • 存储空间:逻辑地址空间(简称地址空间)是逻辑地址的集合,物理地址空间(简称存储空间)是物理地址的集合。

(2)地址重定位

  指将逻辑地址变换成主存物理地址的过程。

  • 静态重定位:指在程序装入主存时已经完成了逻辑地址到物理地址的变换,在程序的执行期间将不会再发生变化。优点【无须硬件地址变换机构的支持,它只要求程序本身是可重定位的,只对那些要修改的地址部分具有某种标识,由专门设计的程序来完成】。缺点【必须给作业分配一个连续的存储区域,在作业的执行期间不能扩充存储空间,也不能在主存中移动,多个作业也难以共享主存中的同一程序副本和数据】。
  • 动态重定位:指在程序运行期间完成逻辑地址到物理地址的变换。优点【程序在执行期间可以换入和换出主存,以解决主存空间不足的问题;可以在主存中移动,把主存中的碎片集中起来,以充分利用空间;不必给程序分配连续的主存空间,可以较好地利用较小的主存块;可以实现共享】。

2. 存储管理方案

  主要目的:解决多个用户使用主存的问题。

(1)分区存储管理

  基本思想:把主存的用户区划分成若干个区域,每个区域分配给一个用户作业使用,并限定它们只能在自己的区域中运行。

  • 固定分区:是一种静态分区方式,在系统生成时已将主存划分为若干个分区,每个分区的大小可不等。操作系统通过主存分配情况表管理主存。问题【已分配区中存在未用空间,原因是程序或作业的大小不可能刚好等于分区的大小,故造成了空间的浪费】。通常将已分配分区内的未用空间称为零头或内碎片
  • 可变分区:是一种动态分区方式,存储空间的划分是在作业装入时进行的,故分区的个数是可变的,分区的大小刚好等于作业的大小。可变分区分配需要已分配表【记录已分配分区的情况】和未分配表【记录未分配分区的情况】两种管理表格。
      ① 最佳适应算法:假设系统中有 n n n 个空白区(自由区),每当用户申请一个空间时,将从这 n n n 个空白区中找到一个最接近用户需求的分区。优点【能保留较大的空白区】,缺点【可能会使产生无用小分区(外碎片)】。

      ② 最差适应算法:将一个最大的分区一分为二,系统总是将用户作业装入最大的空白分区,能够解决内存空间碎片化的问题。优点【剩下的空白区大不容易产生外碎片】。

      ③ 首次适应算法:每当用户作业申请一个空间时,系统总是从主存的低地址开始选择一个能装入作业的空白区。当用户释放空间时,该算法更易实现相邻的空白区合并。

      ④ 循环首次适应算法:将空闲的区域连成环状,每次分配都是从刚分配的空白区开始寻找一个能满足用户要求的空白区。优点【主存的分配更灵活,提高了主存的利用率】,缺点【必定会出现外碎片】。

      解决碎片的方法:拼接(或称紧凑),即向一个方向(例如向低地址端)移动已分配的作业,使那些零散的小空闲区在另一个方向连成一片。
  • 可重定位分区:解决碎片问题的简单且行之有效的方法。
      基本思想:移动所有已分配好的分区,使之成为连续区域。分区“靠拢"的时机是当用户请求空间得不到满足时或某个作业执行完毕时。由于靠拢是要代价的,所以通常是在用户请求空间得不到满足时进行。
      注:当进行分区“靠拢”时会导致地址发生变化,所以有地址重定位问题。

(2)分区保护

  目的:防止未经核准的用户访问分区。

  • 采用上界/下界寄存器保护:上界寄存器中存放的是作业的装入地址,下界寄存器中装入的是作业的结束地址,形成的物理地址必须满足条件: 上界寄存器 ≤ 物理地址 ≤ 下界寄存器 上界寄存器 ≤ 物理地址 ≤ 下界寄存器 上界寄存器≤物理地址≤下界寄存器
  • 采用基址/限长寄存器保护:基址寄存器中存放的是作业的装入地址,限长寄存器中装入的是作业的长度,形成的物理地址必须满足如下条件: 基址寄存器 ≤ 物理地址 < 基址寄存器 + 限长寄存器 基址寄存器 ≤ 物理地址 < 基址寄存器 + 限长寄存器 基址寄存器≤物理地址<基址寄存器+限长寄存器

3. 分页存储管理

  满足用户要求的连续空间,需要进行分区靠拢操作,这是以耗费系统时间为代价的。因此,为了解决碎片化的存储,引入了分页存储管理方案。
  优点:利用率高,碎片小,分配及管理简单
  缺点:增加了系统开销(系统每次读取程序都需要先读取页表将其定位,再进行程序的读取);可能产生抖动现象

(1)纯分页存储管理

  • 分页原理:将一个进程的地址空间划分成若干个大小相等的区域,称为页。相应地,将主存空间划分成与页相同大小的若干个物理块,称为块或页框。在为进程分配主存时,将进程中若干页分别装入多个不相邻接的块中。
  • 地址结构

  • 页表:作用是实现从页号到物理块号的地址映射。当进程的多个页面离散地分配到主存的多个物理块时,系统应能保证在主存中找到进程要访问的页面所对应的物理块。为此,系统为每个进程建立了一张页面映射表,简称页表。每个页在页表中占一个表项,记录该页在主存中对应的物理块号(又称页帧号)。

(2)快表

  从地址映射的过程可以发现,页式存储管理至少需要两次访问主存。为了提高访问主存的速度,在地址映射机构中增加一个小容量的联想存储器,联想存储器由一组高速存储器组成,称之为快表【用来保存当前访问频率高的少数活动页的页号及相关信息】。
  联想存储器存放的是当前进程最活跃的少数几页的物理块号。用户程序要访问数据时,系统根据数据的逻辑页号在联想存储器中找出对应的物理块号,然后与页内地址拼接形成物理地址。查找联想存储器和查找主存页表是并行进行的,一旦在联想存储器中找到相符的逻辑页号,就停止查找主存页表。

(3)两级页表机制

  为了减少页表所占用的连续的主存空间,基本方法是:将页表进行分页,每个页面的大小与主存物理块的大小相同,并为它们进行编号,可以离散地将各个页面分别存放在不同的物理块中。为此需要建立一张页表,称为外层页表(页表目录),即第一级是页目录表,其中的每个表目是存放某个页表的物理地址;第二级是页表,其中的每个表目所存放的是页的物理块号。

进程 P 有 6 个页面,页号分别为 0~5,页面大小为 4K,页面变换表如下所示。表中状态位等于 1 和 0 分别表示页面在内存和不在内存。假设系统给进程 P 分配了 4 个存储块,进程 P 要访问的逻辑地址为十六进制 5A29H,那么该地址经过变换后,求其物理地址十六进制应该为?如果进程P要访问的页面4不在内存,求应该淘汰页号为几的页面?


(1)物理地址十六进制应该为:6A29H
(2)淘汰页号,淘汰的必须是在内存中的:0、1、2、5。再看访问位,刚被访问过的访问位为 1,不能淘汰,只有访问位为 0 的才能淘汰,所以应该被淘汰的应该为:1

4. 分段存储管理

  优点:利用率高,碎片小,分配及管理简单,便于共享
  缺点:内存利用率低,内存碎片浪费大
  作业的地址空间被划分为若干个段,每个段是一组完整的逻辑信息,大小无要求,可以相等也可以不等。

  在分段式存储管理系统中,为每个段分配一个连续的分区,而进程中的各个段可以离散地分配到主存的不同分区中。在系统中为每个进程建立一张段映射表,简称为“段表”,进程在执行时,通过查段表来找到每个段所对应的主存区,实现了从逻辑段到物理主存区的映射。每个段在表中占有一个表项,在其中记录了该段在主存中的起始地址(又称为“基址”)和段的长度。
  为了实现从逻辑地址到物理地址的变换功能,系统中设置了段表寄存器,用于存放段表始址和段表长度。

系统采用段式存储管理方案,假设某作业的段表如下图,求逻辑地址(0,168)、(1,58)、(2,98)、(3,300)和(4,100)能否转换为对应的物理地址?为什么?将以上逻辑地址分别转换成对应的物理地址是多少?


(0,168)、(1,58)、(2,98)和(3,300)可以转换成对应的物理地址,(4,100)不能转换为对应的物理地址,因为地址越界,100 > 96。
逻辑地址(0,168)对应的物理地址:219 + 168 = 387
逻辑地址(1,58)对应的物理地址是:2300 + 58 = 2358
逻辑地址(2,98)对应的物理地址是:90 + 98 = 188
逻辑地址(3,300)对应的物理地址是:1327 + 300 = 1627

5. 段页式存储管理

  优点:空间浪费小、存储共享容易、存储保护容易、能动态连接
  缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度大大下降(程序在执行时要先查段表,再查页表,使得系统资源消耗增加)
  基本原理:先将整个主存划分成大小相等的存储块(页框),将用户程序按程序的逻辑关系分为若干个段,并为每个段赋予一个段名,再将每个段划分成若干页,以页框为单位离散分配。在段页式系统中,其地址结构由段号、段内页号和页内地址三部分组成。

  在段页式系统中,为了实现从逻辑地址到物理地址的变换,系统中必须同时配置段表和页表。由于将段中的页进行离散地分配,段表中的内容不再是段的主存始址和段长,而是页表始址和页表长度。在段页式系统中有一个段表寄存器,用于存放段表起始地址和段表长度 TL。

  在段页式系统中逻辑地址到物理地址的变换过程:① 根据段号 S 查段表,得到页表的起始地址;② 根据页号 P 查页表,得到物理块号 b;③ 将物理块号 b 拼页内地址 W 得到物理地址。

6. 虚拟存储管理

  为了扩大主存容量而采用的一种设计方法,其容量是由计算机的地址结构决定的。如果一个作业只部分装入主存便可开始启动运行,其余部分暂时留在磁盘上,在需要时再装入主存,这样可以有效地利用主存空间。

(1)程序局部性原理

  时间局限性:指如果程序中的某条指令一旦执行,则不久的将来该指令可能再次被执行;如果某个存储单元被访问,则不久以后该存储单元可能再次被访问。典型原因:程序中存在大量循环操作。
  空间局限性:指一旦程序访问了某个存储单元,则在不久的将来,其附近的存储单元也最有可能被访问,即程序在一段时间内所访问的地址可能集中在一定的范围内。典型原因:程序是顺序执行的。

(2)虚拟存储器的实现

虚拟存储器:具有请求调入功能和置换功能,能仅把作业的一部分装入主存便可运行作业的存储器系统,是能从逻辑上对主存容量进行扩充的一种虚拟的存储器系统。其逻辑容量由主存和外存容量之和以及CPU可寻址的范围来决定,其运行速度接近于主存速度,成本也下降。虚拟存储技术是一种性能非常优越的存储器管理技术。

  • 请求分页系统:该系统是在分页系统的基础上增加了请求调页功能和页面置换功能所形成的页式虚拟存储系统。
  • 请求分段系统:是在分段系统的基础上增加了请求调段和分段置换功能所形成的段式虚拟存储系统。
  • 请求段页式系统:是在段页式系统的基础上增加了请求调页和页面置换功能所形成的段页式虚拟存储系统。

(3)请求分页管理的实现

  在纯分页系统的基础上增加了请求调页功能、页面置换功能所形成的页式虚拟存储系统,它是目前常用的一种虚拟存储器的方式。
  在请求分页系统中,每当所要访问的页面不在主存时便要产生一个缺页中断,请求OS将所缺的页调入主存,这是由缺页中断机构完成的。
  缺页中断与一般中断的主要区别:缺页中断在指令执行期间产生和处理中断信号,而一般中断在一条指令执行完,下一条指令开始执行前检查和处理中断信号;发生缺页中断时,返回到被中断指令的开始重新执行该指令,而一般中断返回到下一条指令执行;一条指令在执行期间可能会产生多次缺页中断。

(4)页面置换算法

  置换算法的好坏将直接影响系统的性能,不适当的算法可能会导致系统发生“抖动”(Thrashing),即刚被换出的页很快又被访问,需重新调入,导致系统频繁地更换页面,以至于一个进程在运行中把大部分时间花费在完成页面置换的工作上,这种现象称为系统发生了“抖动”(也称颠簸),请求分页系统的核心问题是选择合适的页面置换算法。

① 最佳(Optimal)置换算法

  一种理想化的算法,即选择哪些是永不使用的,或者是在最长时间内不再被访问的页面置换出去。这种方法性能最好,但实际上难于实现。并且要确定哪一个页面是未来最长时间内不再被访问的是很难的,所以该算法通常用来评价其他算法。

② 先进先出(FIFO)置换算法

  总是淘汰最先进入主存的页面,即选择在主存中驻留时间最久的页面予以淘汰。该算法实现简单,只需把一个进程调入主存的页面,按先后次序链接成一个队列,并设置一个指针即可。它是一种最直观性能最差的算法,有 Belady 异常现象【指如果对一个进程未分配它所要求的全部页面,有时就会出现分配的页面数增多但缺页率反而提高的异常现象】,有可能产生“抖动”

③ 最近最少未使用(Least Recently Used,LRU)置换算法

  选择最近最少未使用的页面予以淘汰,系统在每个页面设置一个访问字段,用于记录这个页面自上次被访问以来所经历的时间 T ,当要淘汰一个页面时,选择 T 最大的页面,但在实现时需要硬件的支持(寄存器或栈),不会产生“抖动”

④ 最近未用(Not Used Recently,NUR)置换算法

  也称为最近未用算法,将最近一段时间未引用过的页面换出,是一种LRU的近似算法。

(5)工作集

  为了解决:应该为每个进程分配多少个物理块才能把缺页率保持在一个合理的水平上,这一问题,引入了工作集理论。
  工作集:指在某段时间间隔 ( △ ) (△) (△) 里进程实际要访问的页面的集合。把某进程在时间 t t t 的工作集记为 w ( t , △) w(t,△) w(t,△),变量 △ △ △ 称为工作集“窗口尺寸(Windows Size)”。正确地选择工作集窗口 (△) (△) (△) 的大小,对存储器的有效利用和系统吞吐量的提高都将产生重大的影响。
  程序在运行时对页面的访问是不均匀的,即往往在某段时间内的访问仅局限于较少的若干个页面,如果能够预知程序在某段时间间隔内要访问哪些页面,并能将它们提前调入主存,将会大大地降低缺页率,从而减少置换工作,提高CPU的利用率。当每个工作集都已达到最小值时,虚存管理程序跟踪进程的缺页数量,根据主存中自由页面的数量可以适当增加其工作集的大小。

四、 设备管理

  是操作系统中最繁杂而且与硬件紧密相关的部分,包括各种设备分配、缓冲区管理和实际物理I/O设备操作,通过管理达到提高设备利用率和方便用户的目的。

1. 设备管理概述

  设备是计算机系统与外界交互的工具,具体负责计算机与外部的输入/输出工作。在计算机系统中,将负责管理设备和输入/输出的机构称为I/O系统【由设备、控制器、通道、总线和I/O软件组成】。

(1)设备的分类

  • 按数据组织分类:块设备(Block Device)【指以数据块为单位来组织和传送数据信息的设备】和字符设备(Character Device)【指以单个字符为单位来传送数据信息的设备】。
  • 按照设备的功能分类:输入设备、输出设备、存储设备、网络联网设备、供电设备等等。
  • 从资源分配角度分类:独占设备【在一段时间内只允许一个用户(进程)访问的设备】、共享设备【指在一段时间内允许多个进程同时访问的设备】和虚拟设备【指通过虚拟技术将一台独占设备变换为若干台供多个用户(进程)共享的逻辑设备】。
  • 按数据传输率分类:低速设备【指传输速率为每秒钟几个字节到数百个字节的设备】、中速设备【指传输速率在每秒钟数千个字节到数十千个字节的设备】和高速设备【指传输速率在每秒数百千个字节到数兆字节的设备】。

(2)设备管理的目标与任务

  目标:如何提高设备的利用率【提高CPU与I/O设备之间的并行操作程度】,为用户提供方便、统一的界面。主要利用的技术:中断技术、DMA技术、通道技术和缓冲技术。
  任务:保证在多道程序环境下,当多个进程竞争使用设备时,按一定的策略分配和管理各种设备,控制设备的各种操作,完成I/O设备与主存之间的数据交换。
  主要功能:动态地掌握并记录设备的状态、设备分配和释放、缓冲区管理、实现物理I/O设备的操作、提供设备使用的用户接口及设备的访问和控制。

2. I/O软件

  设计I/O软件的主要目标:设备独立性和统一命名。I/O软件独立于设备,就可以提高设备管理软件的设计效率。
  I/O设备管理软件一般分为4层:中断处理程序、设备驱动程序、与设备无关的系统软件和用户级软件。

3. 设备管理采用的相关技术

(1)程序控制方式

  也称程序查询方式,即整个数据的传输控制很多时候都要CPU的介入,CPU主动查询外设是否完成数据传输,此时外设会处于非常被动的位置,即不会主动的去返回信息,如是否完成等信息,而是由CPU主动发出查询指令,进而对信息进行查询。这种方式效率是最为低级的,也是CPU介入最多的一种机制

(2)程序中断方式

  大部分与程序控制方式相同,由于增加了中断方式,主动性更强,如果外设完成了数据的传输等操作,外设会发出中断指令,系统就会做下一步的处理,效率比程序控制方式高

(3)通道技术

  目的:使数据的传输独立于CPU,使CPU从烦琐的I/O工作中解脱出来。CPU只需向通道发出I/O命令,通道收到命令后,从主存中取出本次I/O要执行的通道程序并执行,仅当通道完成了I/O任务后才向CPU发出中断信号。

(4)DMA 技术

  直接主存存取(Direct Memory Access,DMA):指数据在主存与I/O设备间直接成块传送,即在主存与I/O设备间传送一个数据块的过程中不需要CPU的任何干涉,只需要CPU在过程开始启动与过程结束时的处理,实际操作由DMA硬件直接执行完成,CPU在此传送过程中可做别的事情,效率高很多

(5)缓冲技术

  可提高外设利用率,尽可能使外设处于忙状态。缓冲技术可以采用硬件缓冲和软件缓冲。硬件缓冲是利用专门的硬件寄存器作为缓冲,软件缓冲是通过操作系统来管理的。

(6)Spooling 技术

  Simultaneous Peripheral Operations On Line(外围设备联机操作),由“预输入程序”“缓输出程序”和“井管理程序”以及输入和输出井组成的。实际上是用一类物理设备模拟另一类物理设备的技术,是使独占使用的设备变成多台虚拟设备的一种技术,也是一种速度匹配技术。
  Spooling 技术技术核心在于开辟了缓冲区,把要输出或输入的数据先缓存起来,这样就解决了外设的低俗和内部系统的高效之间的瓶颈差异,一般系统内部都内置了这个技术。

4. 微内核操作系统

  将内核做小的操作系统,问题出现的概率大大降低了。微内核操作系统中分了用户态和核心态,核心态就是微内核中的内核情况,用户态就是核心态之外进行的,即,在用户态这里出现的问题都没有关系,都可以通过一定方式解决,但核心态出现故障就会比较严重;用户态和核心态之间有交互,只有到了非常关键的部分才会在核心态处理。

5. 磁盘调度

  磁盘:可被多个进程共享的设备。当有多个进程请求访问磁盘时,为了保证信息的安全,系统在每一时刻只允许一个进程启动磁盘进行I/O操作,其余的进程只能等待。
  磁盘调度的目标:使磁盘的平均寻道时间最少。

(1)磁盘驱动调度

  • 先来先服务(First-Come First-Served,FCFS):最简单的磁盘调度算法,它根据进程请求访问磁盘的先后次序进行调度。优点【公平、简单,且每个进程的请求都能依次得到处理,不会出现某进程的请求长期得不到满足的情况】。缺点【平均寻道时间可能较长】。
  • 最短寻道时间优先(Shortest Seek Time First,SSTF):要求访问的磁道与当前磁头所在的磁道距离最近,使得每次的寻道时间最短,但不能保证平均寻道时间最短
  • 扫描算法(SCAN):又称“电梯调度算法”,不仅考虑到要访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。头在磁盘上双向移动,其会选择离磁头当前所在磁道最近请求访问的磁道,且与磁头移动方向一致,磁头永远都是从里向外或者从外向里一直移动完才掉头。
  • 单向扫描调度算法(CSCAN):磁头只做单向移动,即只能从里向外或者从外向里

(2)旋转调度算法

  当移动臂定位后,有多个进程等待访问该柱面时,系统应该选择延迟时间最短的进程对磁盘的扇区进行访问,当有若干等待进程请求访问磁盘上的信息时:
(1)进程请求访问的是同一磁道上不同编号的扇区。
(2)进程请求访问的是不同磁道上不同编号的扇区。
(3)进程请求访问的是不同磁道上具有相同编号的扇区。
对于(1)和(2),旋转调度总是让首先到达读/写磁头位置下的扇区先进行传送操作;对于(3),旋转调度可以任选一个读/写磁头位置下的扇区进行传送操作。
  当进程请求读磁盘时,操作系统先进行移臂调度,再进行旋转调度

五、 文件管理

  引入文件系统专门负责管理外存储器上的信息,而这些信息是以文件的形式存放的,使用户可以“按名”高效、快速和方便地存取信息。

1. 文件与文件系统

(1)文件

  文件(File):具有符号名的、在逻辑上具有完整意义的一组相关信息项的集合,包括文件体【文件真实的内容】和文件说明【操作系统为了管理文件所用到的信息】。
  是一种抽象机制,它隐藏了硬件和实现细节,提供了将信息保存在磁盘上而且便于以后读取的手段。文件管理中的一个非常关键的问题在于文件的命名,当其他进程要使用文件时必须显式指出该文件名,操作系统根据文件名对其进行控制和管理。
  信息项:是构成文件内容的基本单位,可以是一个字符,也可以是一个记录【可以等长,也可以不等长】。

(2)文件系统

  是操作系统中实现文件统一管理的一组软件和相关数据的集合,专门负责管理和存取文件信息的软件机构,简称文件系统。文件系统的功能包括:按名存取;统一的用户接口;并发访问和控制;安全性控制;优化性能;差错恢复。

(3)文件的类型

  文件分类的目的:对不同文件进行管理,提高系统效率,提高用户界面友好性。根据文件的存取方法和物理结构的不同还可以将文件分为不同的类型。

2. 文件的结构和组织

  文件的结构:指文件的组织形式。

(1)文件的逻辑结构

  • 有结构的记录式文件【由一个以上的记录构成的文件】:所有的记录通常都是描述一个实体集的,有着相同或不同数目的数据项,记录的长度可分为定长【记录的长度相同,特点是处理方便,开销小,是目前较常用的一种记录格式,被广泛用于数据处理中】和不定长【记录的长度不相同,数据项本身的长度不定】两类。
  • 无结构的流式文件【由一串顺序字符流构成的文件】:文件体为字节流,不划分记录。通常采用顺序访问方式,并且每次读/写访问可以指定任意数据长度,其长度以字节为单位。

(2)文件的物理结构

  指文件的内部组织形式,即文件在物理存储设备上的存放方法。

  • 连续结构:也称顺序结构,将逻辑上连续的文件信息依次存放在连续编号的物理块上。只要知道文件的起始物理块号和文件的长度,就可以很方便地进行文件的存取。优点【批量存取效率最高】,缺点【不便于记录增加、删除,随机查找、修改单个记录效率低】。
  • 链接结构:也称串联结构,是将逻辑上连续的文件信息存放在不连续的物理块上,每个物理块设有一个指针指向下一个物理块。只要知道文件的第一个物理块号,就可以按链指针查找整个文件。
  • 索引结构:将逻辑上连续的文件信息存放在不连续的物理块中,系统为每个文件建立一张索引表。索引表记录了文件信息所在的逻辑块号对应的物理块号,并将索引表的起始地址放在与文件对应的文件目录项中。
  • 多个物理块的索引表:索引表是在文件创建时由系统自动建立的,并与文件一起存放在同一文件卷上。根据一个文件大小的不同,其索引表占用物理块的个数不等,一般占一个或几个物理块。多个物理块的索引表可以有两种组织方式:链接文件和多重索引方式。

3. 文件目录

  为了实现“按名存取”,系统必须为每个文件设置用于描述和控制文件的数据结构【至少要包括文件名和存放文件的物理地址】,这个数据结构称为文件控制块(FCB),文件控制块的有序集合称为文件目录。
  文件目录是由文件控制块【也称为文件的说明或文件目录项(简称目录项)】组成的,专门用于文件的检索。

(1)文件控制块

  • 基本信息类
  • 存取控制信息类
  • 使用信息类

(2)目录结构

  文件目录结构的组织方式直接影响到文件的存取速度,关系到文件的共享性和安全性。

  • 一级目录结构:是一个线性结构,在整个系统中只需建立一张目录表,系统为每个文件分配一个目录项。主要用在单用户环境中使用。优点【结构简单】;缺点【查找速度慢,不允许重名和不便于实现文件共享等】
  • 二级目录结构:由主文件目录(Master File Directory,MFD)和用户目录(User File Directory,UFD)组
    成的。在主文件目录中,每个用户文件目录都占有一个目录项,其目录项中包括用户名和指向该用户目录文件的指针。用户目录是由用户所有文件的目录项组成的。优点【提高了检索目录的速度,较好地解决了重名问题】
  • 多级目录结构【也称为树型目录结构】:从树根向下,每一个结点是一个目录,叶结点是文件。
  • 绝对路径:是从盘符开始的路径
  • 相对路径:是从当前路径开始的路径。

若当前目前为:D:\,要求:J1.java 路径,则绝对路径:D:\Program\Java-profram\J1.java,相对路径:Java-profram\J1.java

(3)文件属性及文件名的组成

  • 文件属性:R(只读文件属性)、A(存档属性)、S(系统文件)、H(隐藏文件)
  • 文件名的组成:驱动器号、路径、主文件名、扩展名

4. 存取方法和存储空间的管理

(1)文件的存取方法

  指读/写文件存储器上的一个物理块的方法。通常有顺序存取【指对文件中的信息按顺序依次进行读/写】和随机存取【随机存取方法是指对文件中的信息可以按任意的次序随机地读/写】

(2)文件存储空间的管理

  外存空闲空间管理的数据结构通常称为磁盘分配表(Disk Allocation Table)。

  • 空闲区表:将外存空间上的一个连续的未分配区域称为"空闲区"。操作系统为磁盘外存上的所有空闲区建立一张空闲表,每个表项对应一个空闲区,空闲表中包含序号、空闲区的第一块号、空闲块的块数和状态等信息,适用于连续文件结构
  • 位示图:在外存上建立一张位示图(Bitmap),记录文件存储器的使用情况。每一位对应文件存储器上的一个物理块,取值 0 0 0 和 1 1 1 分别表示空闲和占用。

某文件管理系统在磁盘上建立了位示图,记录磁盘的使用情况。若系统的字长为32位,磁盘上的物理块依次编号为:0、1、2、…,那么4096号物理块的使用情况在位示图中的第(1)个字中描述;若磁盘的容量为200GB,物理块的大小为1MB,那么位示图的大小为(2)个字。
(1)A.129      B.257      C.513      D.1025
(2)A.600      B.1200      C.3200      D.6400


(1) 4096 4096 4096 号物理块其实是第 4097 4097 4097 个物理块,那么 ( 4096 + 1 ) / 32 = 128.03125 > 128 (4096 + 1)/ 32 = 128.03125 > 128 (4096+1)/32=128.03125>128
因此物理块的使用情况在位示图中的第 128 + 1 128 + 1 128+1 个字中描述,选 A A A
(2) 由于磁盘的容量为200GB,物理块的大小为1MB,而磁盘有 200 × 1024 = 204800 200 × 1024 = 204800 200×1024=204800 个物理块,故位示图的大小为 204800 / 32 = 6400 204800 / 32 = 6400 204800/32=6400 个字。

  • 空闲块链:每个空闲物理块中有指向下一个空闲物理块的指针,所有空闲物理块构成一个链表,链表的头指针放在文件存储器的特定位置上,不需要磁盘分配表,节省空间。
  • 成组链接法:UNIX系统采用该方法。

5. 文件的使用

  文件系统将用户的逻辑文件按一定的组织方式转换成物理文件存放到文件存储器上,文件系统为每个文件与该文件在磁盘上的存放位置建立了对应关系。
  操作系统在操作级向用户提供的命令有目录管理类命令、文件操作类命令和文件管理类命令等。

6. 文件的共享和保护

(1)文件的共享

  指不同用户进程使用同一文件,它不仅是不同用户完成同一任务所必需的功能,还可以节省大量的主存空间,减少由于文件复制而增加的访问外存的次数。文件共享有多种形式,采用文件名和文件说明分离的目录结构有利于实现文件共享。
  常见的文件链接有硬链接和符号链接两种。

  • 硬链接【也称基于索引结点的链接】:指两个文件目录表目指向同一个索引结点的链接。 缺点【不利于文件主删除它拥有的文件,因为文件主要删除它拥有的共享文件,必须首先删除(关闭)所有的硬链接,否则就会造成共享该文件的用户的目录表目指针悬空】
  • 符号链接:建立新的文件或目录,并与原来文件或目录的路径名进行映射,当访问一个符号链接时,系统通过该映射找到原文件的路径,并对其进行访问,采用符号链接可以跨越文件系统。缺点【其他用户读取符号链接的共享文件比读取硬链接的共享文件需要增加读盘操作的次数】
(2)文件的保护

  文件系统对文件的保护常采用存取控制【不同的用户对文件的访问规定不同的权限,以防止文件被未经文件主同意的用户访问】方式进行。

  • 存取控制矩阵:是一个二维矩阵,一维列出计算机的全部用户,另一维列出系统中的全部文件,矩阵中的每个元素 A i j A_{ij} Aij​ 表示第 i i i 个用户对第 j j j 个文件的存取权限。通常,存取权限有可读 R R R、可写 W W W 、可执行 X X X以及它们的组合。优点【在概念上简单、清楚】缺点【当一个系统用户数和文件数很大时,二维矩阵要占很大的存储空间,验证过程也将耗费许多系统时间】
  • 存取控制表:按用户对文件的访问权力的差别对用户进行分类,由于某一文件往往只与少数几个用户有关,所以这种分类方法可使存取控制表大大简化。
  • 用户权限表:以用户或用户组为单位将用户可存取的文件集中起来存入表中,这称为用户权限表。表中的每个表目表示该用户对应文件的存取权限,这相当于存取控制矩阵一行的简化。
  • 密码:在创建文件时,由用户提供一个密码,在文件存入磁盘时用该密码对文件内容加密。在进行读取操作时,要对文件进行解密,只有知道密码的用户才能读取文件。

7. 系统的安全性与可靠性

(1)系统的安全

  系主要任务是:不允许未经授权的用户进入系统,从而也防止了他人非法使用系统中各类资源。系统级管理的主要措施有注册与登录。一般从 4 4 4 个级别上对文件进行安全性管理:系统级、用户级、目录级和文件级。
  用户级安全管理:通过对所有用户分类和对指定用户分配访问权,不同的用户对不同文件设置不同的存取权限来实现。
  目录级安全管理:为了保护系统中各种目录而设计的,它与用户权限无关。为了保证目录的安全,规定只有系统核心才具有写目录的权利。
  文件级安全管理:通过系统管理员或文件主对文件属性的设置来控制用户对文件的访问。

(2)文件系统的可靠性

  指系统抵抗和预防各种物理性破坏和人为性破坏的能力。

  • 转储和恢复:在文件系统中无论是硬件或软件都会发生损坏和错误,最简单和常用的措施是通过转储操作形成文件或文件系统的多个副本,常用的转储方法有静态转储和动态转储、海量转储和增量转储。
  • 日志文件:一旦发生故障,操作系统恢复子系统利用日志文件来进行系统故障恢复,并可协助后备副本进行介质故障恢复。
  • 文件系统的一致性:影响文件系统可靠性的因素之一。采用文件系统的一致性检查,一致性检查包括块的一致性检查和文件的一致性检查。

六、 作业管理

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

1. 作业与作业控制

(1)作业控制

  脱机和联机两种控制方式控制用户作业的运行。

  • 脱机控制方式:作业运行的过程无须人工干预。
  • 联机控制方式:作业的运行过程需要人工干预。

  作业:由程序、数据和作业说明书 3 3 3 个部分组成。

  • 作业说明书:包括作业基本情况【包括用户名、作业名、编程语言和最大处理时间等】、作业控制【包括作业控制方式、作业步的操作顺序、作业执行出错处理】、作业资源要求【包括处理时间、优先级、主存空间、外设类型和数量等】的描述,它体现用户的控制意图。

(2)作业状态及转换

  • 提交:作业提交给计算机中心,通过输入设备送入计算机系统的过程状态称为提交状态。
  • 后备:通过Spooling系统将作业输入到计算机系统的后备存储器(磁盘)中,随时等待作业调度程序调度时的状态。
  • 执行:一旦作业被作业调度程序选中,为其分配了必要的资源,并为其建立相应的进程后,该作业便进入了执行状态。
  • 完成:当作业正常结束或异常终止时,作业进入完成状态。此时,由作业调度程序对该作业进行善后处理。

(3)作业控制块和作业后备队列

  作业控制块(JCB):记录与该作业有关的各种信息的登记表。是作业存在的唯一标志,包括用户名、作业名和状态标志等信息。为了便于作业调度程序调度,通常将作业控制块排成一个或多个队列,而这些队列称为作业后备队列。

2. 作业调度

(1)作业调度算法

  • 先来先服务:按作业到达的先后进行调度,即启动等待时间最长的作业。
  • 短作业优先:以要求运行时间的长短进行调度,即启动要求运行时间最短的作业。
  • 响应比高优先:响应比高的作业优先启动。
      定义响应比如下: R p = 作业响应时间 作业执行时间 R_p = \frac{作业响应时间}{作业执行时间} Rp​=作业执行时间作业响应时间​
      其中,作业响应时间为作业进入系统后的等候时间与作业的执行时间之和,即 R p = 1 + 作业等待时间 作业执行时间 R_p = 1 + \frac{作业等待时间}{作业执行时间} Rp​=1+作业执行时间作业等待时间​
  • 优先级调度算法:可由用户指定作业优先级,优先级高的作业先启动。也可由系统根据作业要求的紧迫程度,或者照顾“I/O繁忙”的作业,以便充分发挥外设的效率等。
  • 均衡调度算法:作业调度程序轮流地从这些不同类别的作业中挑选作业执行。这种算法力求均衡地使用系统的各种资源,即注意发挥系统效率,又使用户满意。

作业JI、J2、J3的提交时间和所需运行时间如下表所示。若采用响应比高者优先调度算法,求作业调度次序。


① 系统在6:00时,因为系统输入井中只有作业J1,因此J1先运行。
② 作业J2的响应比: 1 + 10 20 = 1.5 1 + \frac{10}{20} = 1.5 1+2010​=1.5
③ 作业J3的响应比: 1 + 5 6 = 1.83 1 + \frac{5}{6} = 1.83 1+65​=1.83
所以,作业调度次序为:J1 → J3 → J2

(2)作业调度算法性能的衡量指标

  在一个以批量处理为主的系统中,通常用平均周转时间或平均带权周转时间来衡量调度性
能的优劣。假设作业 J 1 ( i = 1 , 2 , … , n ) J_1(i=1,2,…,n) J1​(i=1,2,…,n) 的提交时间为 t s i t_{si} tsi​ ,执行时间为 t r i t_{ri} tri​ ,作业完成时间为 t o i t_{oi} toi​ 。则作业 J i J_i Ji​ 的周转时间 i _i i​ T和带权周转时间 W i W_i Wi​,分别定义为:
T i = t o i − t s i ( i = 1 , 2 , … , n ) T_i = t_{oi} - t_{si} (i=1,2,…,n) Ti​=toi​−tsi​(i=1,2,…,n)
W i = T i t r i ( i = 1 , 2 , … , n ) W_i = \frac{T_i}{t_{ri}} (i=1,2,…,n) Wi​=tri​Ti​​(i=1,2,…,n)
  从整个系统的角度来说,不可能满足每个用户的这种要求,而只能是系统的平均周转时间或平均带权周转时间最小。

3. 用户界面(User Interface)

  是计算机中实现用户与计算机通信的软/硬件部分的总称。用户界面也称用户接口,或人机界面。

  • 控制面板式用户界面:这是计算机发展早期,用户通过控制台开关、板键或穿孔纸带向计算机送入命令或数据,而计算机通过指示灯及打印机输出运行情况或结果。
  • 字符用户界面:基于字符型的,用户通过键盘或其他输入设备输入字符,由显示器或打印机输出字符。优点【功能强、灵活性好、屏幕开销少】;缺点【操作步骤烦琐,学会操作也较费时】。
  • 图形用户界面:用户既可使用传统的字符,也可使用图形、图像和声音同计算机进行交互。优点【操作将更加自然、更加方便】。现代界面的关键技术是超文本,将文本的概念扩充到超文本,超文本的最大特点是具有指向性
  • 新一代用户界面:人将作为参与者,以自然的方式与计算机生成的虚拟环境进行通信,计算机将通过多种感知通道来理解用户的意图,实现用户的要求,仅以二维屏幕向用户输出,而且以真实感(立体视觉、听觉、嗅觉和触觉等)的计算机仿真环境向用户提供真实的体验。特征【以用户为中心、自然、高效、高带宽、非精确、无地点限制等是新一代用户界面的】。技术支持【多媒体、多通道及智能化是新一代用户界面】。

更多推荐

操作系统知识【软考】

本文发布于:2024-03-08 07:37:42,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1720229.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:操作系统   软考   知识

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!