2024年软件设计师中级(软考中级)详细笔记【4】操作系统(分值6分)


前言

在备考软件设计师中级考试的过程中,我遇到了些许挑战,也收获了宝贵的经验。为了帮助其他同样正在为这门考试(证书)奋斗的朋友们,我决定将我的笔记整理出来,与大家分享。这些笔记不仅包含了书本上的知识,还加入了我对重点和难点的个人理解以及考试技巧,力求帮助大家更加高效地复习。我希望这份笔记能够成为你备考路上的一份支持,也祝愿你在考试中取得理想的成绩👍👍👍

如果有写的不好或者需要改进的地方,恳请在评论区指正!🤓🤓🤓


第4章 操作系统 (6分)

4.1 操作系统概述

计算机软件通常分为系统软件应用软件两大类。系统软件是计算机系统的一部分,用来支持应用软件的运行。应用软件是指计算机用户利用计算机的软件、硬件资源为某一专门的应用目的而开发的软件。例如,科学计算、工程设计、数据处理、事务处理和过程控制等方面的程序,以及文字处理软件、表格处理软件、辅助设计软件(CAD)和实时处理软件等。常用的系统软件有操作系统、语言处理程序、链接程序、诊断程序和数据库管理系统等。操作系统是计算机系统中必不可少的核心系统软件,其他软件是建立在操作系统的基础上,并在操作系统的统一管理和支持下运行的,是用户与计算机之间的接口。

在这里插入图片描述

4.2 进程管理

进程管理也称处理机管理。在多道程序批处理系统和分时系统中有多个并发执行的程序,为了描述系统中程序执行时动态变化的过程引入了进程。进程是资源分配和独立运行的基本单位。进程管理重点需要研究诸进程之间的并发特性,以及进程之间相互合作与资源竞争产生的问题。

4.2.1 基本概念

  1. 程序与进程【了解概念】
    1. 程序顺序执行的特征
      前趋图是一个有向无循环图,由结点和有向边组成,结点代表各程序段的操作,而结点间的有向边表示两个程序段操作之间存在的前趋关系(→)。程序段Pi和Pj的前趋关系表示成Pi→Pj,其中,Pi是Pj的前趋,Pj是Pi的后继,其含义是Pi执行结束后Pj才能执行。例如,图4-1为3个程序段,其中输入是计算的前驱(计算是输入的后继),输入结束才能进行计算;计算是输出的前驱,计算结束才能进行输出。
      程序顺序执行时的主要特征包括顺序性、封闭性和可再现性。

    2. 程序并发执行的特征
      若在计算机系统中采用多道程序设计技术,则主存中的多道程序可处于并发执行状态。对于上述有3个程序段的作业类,虽然每个作业有前趋关系的各程序段不能在CPU和输入/输出各部件并行执行,但是同一个作业内没有前趋关系的程序段或不同作业的程序段可以分别在CPU和各输入/输出部件上并行执行。例如,某系统中有一个CPU、一台输入设备和一台输出设备,每个作业具有3个程序段输入I,计算C;和输出P(i=1,2,3)。图4-2为3个作业的各程序段并发执行的前驱图。

      从图4-2中可以看出,I₂与C₁并行执行;I₃、C₂与P₁并行执行;C₃与P₂并行执行。其中,I₂、I₃受到I₁的间接制约,C₂、C₃受到C₁的间接制约,P₂、P₃受到P₁的间接制约,而C₁、P₁受到I₁的直接制约,等等。

      在这里插入图片描述

      程序并发执行时的特征如下。
      (1)失去了程序的封闭性。
      (2)程序和机器的执行程序的活动不再一一对应。
      (3)并发程序间的相互制约性。

4.2.1.1 信号量机制实现前驱关系做题技巧【掌握】

每一对前驱关系都是一个进程多级同步问题(需要保证一前一后的操作)
因此,

  1. 要为每一对前驱关系各设置一个同步信号量,信号量的初值为0
  2. 在“前操作”之后对相应的同步信号量执行V操作
  3. 在“后操作”之前对相应的同步信号量执行P操作
  • P(S)实现系统资源的申请
  • V(S)实现系统资源的释放

图4-2-1 进程前趋

  • 如何判断S1,S2,S3…
    • 根据P1→P2,P1→P3,P2→P3,P3→P4
    • 12,13,23,34进行比较大小,从小到大进行S1、S2、S3排序
4.2.1.2 并发执行【做题技巧】

先读题,可能需要看优先级什么的->缺什么补什么,例如下面题型,答案BAC
在这里插入图片描述

4.2.1.3 进程的状态及其状态间的切换
  1. 三态模型(掌握)图一定要记
    在多道程序系统中,进程在处理器上交替运行,状态也不断地发生变化,因此进程一般有3 种基本状态:运行、就绪和阻塞。图4-3 显示了进程基本状态及其转换,也称三态模型。
    图4-3 进程的三态模型

    1. 运行。当一个进程在处理机上运行时,则称该进程处于运行状态。显然,对于单处理机系统,处于运行状态的进程只有一个。
    2. 就绪。一个进程获得了除处理机外的一切所需资源,一旦得到处理机即可运行,则称此进程处于就绪状态。
    3. 阻塞。阻塞也称等待或睡眠状态,一个进程正在等待某一事件发生(例如请求 I/O 等待 I/O 完成等)而暂时停止运行,这时即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态。

    习题:

    1. 在单处理机系统中,采用先来先服务调度算法。系统中有4个进程 P1、 P2、 P3、 P4(假设进程按此顺序到达),其中 P1为运行状态,P2 为就绪状态,P3 和 P4 为等待状态,且 P3 等待打印机,P4 等待扫描仪。若 P1 (23),则P1、P2、 P3 和P4 的状态应分别为(24)。(2019年上半年)
      (23) A. 时间片到 B. 释放了扫描仪 C. 释放了打印机 D.已完成
      (24) A. 等待、就绪、等待和等待
      B. 运行、就绪、运行和等待
      C.就绪、运行、等待和等待
      D.就绪、就绪、等待和运行

    答案:A;C此题可以用23题的选项放到24题中选项,进行排除法

    1. 在单处理机计算机系统中有1台打印机、1台扫描仪,系统采用先来先服务调度算法。假设系统中有进程 P1、P2、P3、P4,其中 P1 为运行状态,P2 为就绪状态,P3 等待打印机,P4 等待扫描仪。此时,若 P1 释放了扫描仪,则进程 P1、P2、 P3、P4 的状态分别为。
      A. 等待、运行、等待、就绪
      B. 运行、就绪、等待、就绪
      C.就绪、就绪、等待、运行
      D.就绪、运行、等待、就绪

    答案:根据题目描述,系统采用先来先服务调度算法,即按照进程到达的顺序进行调度。根据进程的状态和释放的设备,可以得出以下答案:

    P1 释放了扫描仪后,进程状态变化如下:

    P1:等待(释放了扫描仪)

    P2:运行(就绪状态的进程中最先到达)

    P3:等待(等待打印机)

    P4:就绪(等待扫描仪的进程中最先到达)

    因此,进程 P1、P2、P3、P4 的状态分别为: A. 等待、运行、等待、就绪

  2. 五态模型(了解)
    事实上,对于一个实际的系统,进程的状态及其转换更复杂。例如,引入新建态和终止态构成了进程的五态模型,如图4-4所示。
    图4-4 进程的五态模型

4.2.3 进程间的通信

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

  1. 同步与互斥
    同步是合作进程间的直接制约问题,互斥是申请临界资源进程间的间接制约问题。

    1. 进程间的同步
      在计算机系统中,多个进程可以并发执行,每个进程都以各自独立的、不可预知的速度向前推进,但是需要在某些确定点上协调相互合作进程间的工作。例如,进程A向缓冲区送数据,进程 B从缓冲区取数据加工,当进程 B要取数据加工时,必须是进程 A 完成了向缓冲区送数据的操作,否则进程B必须停下来等待进程A的操作结束。可见,所谓进程间的同步是指在系统中一些需要相互合作,协同工作的进程,这样的相互联系称为进程的同步。
    2. 进程间的互斥
      进程的互斥是指系统中多个进程因争用临界资源而互斥执行。在多道程序系统环境中,各进程可以共享各类资源,但有些资源一次只能供一个进程使用,称为临界资源 (Critical Resource, CR),如打印机、共享变量和表格等。
    3. 临界区管理的原则(相当于厕所)
      临界区(Critical Section,CS)是进程中对临界资源实施操作的那段程序。对互斥临界区管理的4条原则如下。
      (1)有空即进。当无进程处于临界区时,允许进程进入临界区,并且只能在临界区运行有限的时间。
      (2)无空则等。当有一个进程在临界区时,其他欲进入临界区的进程必须等待,以保证进程互斥地访问临界资源。
      (3)有限等待。对于要求访问临界资源的进程,应保证进程能在有限的时间进入临界区,以免陷入“饥饿”状态。
      (4)让权等待。当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入忙等状态。
  2. 信号量机制【PV操作】
    荷兰学者 Dijkstra 于1965 年提出的信号量机制是一种有效的进程同步与互斥工具。目前,信号量机制有了很大的发展,主要有整型信号量、记录型信号量和信号量集机制。

    1. 整型信号量与PV操作
      信号量是一个整型变量,根据控制对象的不同被赋予不同的值。信号量分为如下两类:

      1. 公用信号量。实现进程间的互斥,初值为1 或资源的数目。
      2. 私用信号量。实现进程间的同步,初值为0或某个正整数。

      信号量S的物理意义:S≥0 表示某资源的可用数,若S<0,则其绝对值表示阻塞队列中等待该资源的进程数。
      对于系统中的每个进程,其工作的正确与否不仅取决于它自身的正确性,而且与它在执行中能否与其他相关进程正确地实施同步互斥有关。PV操作是实现进程同步与互斥的常用方法。P操作和V操作是低级通信原语,在执行期间不可分制。其中,P 操作表示申请一个资源,V操作表示释放一个资源。
      P操作的定义:S:=S-1,若 S≥0,则执行 P操作的进程继续执行:若 S<0,则置该进程为阻塞状态(因为无可用资源),并将其插入阻塞队列。
      P操作可用如下过程表示,其中,Semaphore 表示所定义的变量是信号量。

      Procedure V(Var S: Semaphore);
      Begin
      S:=S+1;
      If S≤0 then R(S)
      {从阻塞队列中唤醒一个进程}
      End;
      

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

      Procedure V(Var S:Semaphore);
      Begin
      S:=S+1:
      If S≤0 then R(S)
      {从阻塞队列中唤醒一个进程}
      End;
      
    2. 利用PV操作实现进程的互斥(mutex)
      PV必须成对出现
      令信号量 mutex 的初值为1,当进入临界区时执行P操作,退出临界区时执行V操作。这样,利用 PV操作实现进程互斥的代码段如下:

      P(mutex)
      临界区
      V(mutex)
      
    3. 利用PV操作实现进程的同步
      前V后P
      进程的同步是由于进程间合作引起的相互制约的问题,要实现进程的同步可用一个信号量与消息联系起来,当信号量的值为0时表示希望的消息未产生,当信号量的值为非0时表示希望的消息己经存在。假定用信号量S表示某条消息,进程可以通过调用P操作测试消息是否到达,调用V操作通知消息己准备好。最典型的同步问题是单缓冲区的生产者和消费者的同步问题。

4.2.3.1 信号量机制【做题技巧】
  1. 通过信号量S的值,算等待进程个数
    • 当S<0时,则表示有|S|个进程在等待
  2. 求信号量的取值区范围
    • 若有n个进程共享m个设备,那么信号量S的取值范围为 − ( n − m )   m -(n-m)~m (nm) m
    • 例如:假设系统采用PV操作实现进程同步与互斥。若n个进程共享两台打印机,那么信号量的取值范围为 − ( n − 2 )   2 -(n-2)~2 (n2) 2
4.2.3.2 进程的同步与互斥【做题技巧】
  • 互斥信号量初值为1

【例4.2】生产者进程P₁不断地生产产品送入缓冲区,消费者进程P₂不断地从缓冲区中取产品消费。请给出实现进程同步的模型图。
解:为了实现P₁与P₂进程间的同步问题,需要设置两个信号量S₁和S₂,但信号量初值不同可有如下两种实现方案。

  • 方案1:信号量S₁的初值为1,表示缓冲区空,可以将产品送入缓冲区;信号量S₂的初值为0,表示缓冲区有产品。其同步过程如图4-6所示。
  • 方案2:信号量S₁的初值为0,信号量S₂的初值为0,此时同步过程如图4-7所示。
    在这里插入图片描述

【例4.3】一个生产者和一个消费者,缓冲区中可存放n件产品,生产者不断地生产产品,消费者不断地消费产品,如何用PV操作实现生产者和消费者的同步。可以通过设置3个信号量S、S₁和S₂,其中,S是一个互斥信号量,初值为1,因为缓冲区是一个互斥资源,所以需要进行互斥控制;S₁表示是否可以将产品放入缓冲区,初值为n;S₂表示缓冲区是否存有产品,初值为0。其同步过程如图4-8所示。

在这里插入图片描述

4.2.6 死锁

【例4.6】 同类资源分配不当引起死锁。若系统中有m个资源被n个进程共享,当每个进程都要求k个资源,而m<nk时,即资源数小于进程所要求的总数时,可能会引起死锁。例如,m=5, n=3,k=3,若系统采用的分配策略是轮流地为每个进程分配,则第一轮系统先为每个进程分配一台,还剩下两台:第二轮系统再为两个进程各分配一台,此时,系统中己无可供分配的资源,使得各个进程都处于等待状态导致系统发生死锁。

  • 当有n个进程、m个资源、且每个进程所需要的资源数为 k,并且系统采用的分配策略是轮流地为每个进程分配资源时,(软考题目都是这个策略)
  • 判断是否会发生死锁的公式如下:
    m≥n×(k-1)+1为真就不会发生死锁、为假就会发生死锁
    资源个数≥进程数✖️(进程最大需求-1)+1

【进程资源图】
在这里插入图片描述

  • 分配是拿走资源,使用完才还回去
  • 申请资源只是申请,不是完全拿走该资源
  1. 死锁的处理
    死锁的处理策略主要有4 种:鸵鸟策略(即不理睬策略)、预防策略、避免策略和检测与解除死锁。
    1. 死锁预防(了解)
      死锁预防是采用某种策略限制并发进程对资源的请求,破坏死锁产生的4个必要条件之一,使系统在任何时刻都不满足死锁的必要条件。预防死锁的两种策略如下。
      1. 预先静态分配法。破坏了“不可剥夺条件”,预先分配所需资源,保证不等待资源。该方法的问题是降低了对资源的利用率,降低进程的并发程度:有时可能无法顶先知道所需资源。
      2. 资源有序分配法。破坏了“环路条件”,把资源分类按顺序排列,保证不形成环路。该方法存在的问题是限制进程对资源的请求:由于资源的排序占用系统开销。
    2. 死锁避免(掌握)
      死锁预防是设法破坏产生死锁的4个必要条件之一,严格防止死锁的产生。死锁避免则不那么严格地限制产生死锁的必要条件。最著名的死锁避免算法是 Dijkstra 提出的银行家算法,死锁避免算法需要很大的系统开销。
      银行家算法对于进程发出的每一个系统可以满足的资源请求命令加以检测,如果发现分配资源后系统进入不安全状态,则不子分配:若分配资源后系统仍处于安全状态,则实施分配。与死锁预防策略相比,它提高了资源的利用率,但检测分配资源后系统是否安全增加了系统开销。
      所谓安全状态,是指系统能按某种顺序如<P1,P2,...,Pn>来为每个进程分配其所需资源,直到最大需求,使每个进程都可顺序完成。通常称<P1,P2,...,Pn>序列为安全序列。若系统不存在这样一个安全序列,则称系统处于不安全状态。
      图4-2-6 死锁避免

4.2.7 线程

传统的进程有两个基本属性:可拥有资源的独立单位;可独立调度和分配的基本单位。引入线程的原因是进程在创建、撒销和切换中,系统必须为之付出较大的时空开销,故在系统中设置的进程数目不宜过多,进程切换的频率不宜太高,这就限制了并发程度的提高。引入线程后,将传统进程的两个基本属性分开,线程作为调度和分配的基本单位,进程作为独立分配资源的单位。用户可以通过创建线程来完成任务,以减少程序并发执行时付出的时空开销。

例如,在文件服务进程中可设置多个服务线程,当一个线程受阻时,第二个线程可以继续运行,当第二个线程受阻时,第三个线程可以继续运行⋯从而显著地提高了文件系统的服务质量及系统的吞吐量。

这样,对于拥有资源的基本单位,不用频繁地切换,进一步提高了系统中各程序的并发程度。需要说明的是,线程是进程中的一个实体,是被系统独立分配和调度的基本单位。线程基本上不拥有资源,只拥有一点运行中必不可少的资源(如程序计数器、一组寄存器和栈),它可与同属一个进程的其他线程共享进程所拥有的全部资源。
【考点】

  • 线程与同属一个进程的其他线程共享进程所拥有的全部资源
  • 线程与线程之间不共享

4.3.3 分页存储管理

  1. 纯分页存储管理
    1. 分页原理

    2. 地址结构

      图4-16 分页地址结构

      需注意1KB与4KB,也就是十进制与十六进制的区别

      秒杀题

      图4-3-2 习题
      图4-3-3 习题

4.3.5 段页式存储管理

秒杀题

  1. 先看选项,只选最大允许

  2. 段计计算,2的前减后次方+1

  3. 页号计算:最大允许
    在这里插入图片描述

    习题:

    图4-3-5-1 习题

4.3.6 虚拟存储管理

  1. 程序局部性原理
    程序的局限性表现在时间局限性和空间局限性两个方面。
    1. 时间局限性是指如果程序中的某条指令一旦执行,则不久的将来该指令可能再次被执行:如果某个存储单元被访问,则不久以后该存储单元可能再次被访问。产生时间局限性的典型原因是在程序中存在着大量的循环操作。
    2. 空间局限性是指一旦程序访问了某个存储单元,则在不久的将来,其附近的存储单元也最有可能被访问。即程序在一段时间内所访问的地址可能集中在一定的范围内,其典型原因为程序是顺序执行的。
      图4-3-6 局部性原理

页帧号为空就不在内存中,不考虑其是否被淘汰。

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

缓冲技术p220教程课本【需要官方教材资料的可在评论区回复,有时间看到我会发】

  1. 单缓冲区
    在这里插入图片描述

  2. 双缓冲区
    在这里插入图片描述

  • 答题技巧
  • 单缓冲区公式:(T+M)× n+C
  • 双缓冲区公式:T×n+M+C
    图4-4-3 缓冲技术

4.4.4 磁盘调度

  1. 先来先服务(First-Come First-Served, FCFS)。这是最简单的磁盘调度算法,它根据进程请求访问磁盘的先后次序进行调度。此算法的优点是公平、简单,且每个进程的请求都能依次得到处理,不会出现某进程的请求长期得不到满足的情况。但此算法由于末对寻道进行优化,致使平均寻道时间可能较长。

图4-4-4-1 FCFS

  1. 最短寻道时间优先 (Shortest Seek Time First, SSTF)。该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,使得每次的寻道时间最短。但这种调度算法不能保证平均寻道时间最短。
    图4-4-4-2 SSTF磁盘调度

  2. 【电梯调度算法】扫描算法(SCAN)。扫描算法不仅考虑到要访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。例如,当磁头正在由里向外移动时,SCAN 算法所选择的下一个访问对象应是其要访问的磁道既在当前磁道之外,又是距离最近的。这样由里向外地访问,直到再无更外的磁道需要访问时才将磁臂换向,由外向里移动。这时,同样也是每次选择在当前磁道之内,且距离最近的进程来调度。这样,磁头逐步地向里移动,直到再无更里面的磁道需要访问。显然,这种方式避免了饥饿现象的出现。在这种算法中,磁头移动的规律颇似电梯的运行,故又常称为电梯调度算法。
    图4-4-4-3 SCAN磁盘调度

  3. 【 循环扫描算法】单向扫描调度算法(CSCAN)。SCAN 存在这样的问题:当磁头刚从里向外移动过某一磁道时,恰有一进程请求访问此磁道,这时该进程必须等待,待磁头从里向外,再从外向里扫描完所有要访问的磁道后才处理该进程的请求,致使该进程的请求被严重地推迟。为了减少这种延迟,算法规定磁头只做单向移动。
    图4-4-4-4 CSCAN磁盘调度

习题

在移臂调度算法中,(25)算法可能会随时改变移动臂的运动方向。(2009 年上半年)
(25) A. 电梯调度和先来先服务 B. 先来先服务和最短寻找时间优先
C. 单向扫描和先来先服务 D. 电梯调度和最短寻找时间优先
答案:B


4.4.5 旋转调度算法

磁道算法:(磁道时间×磁道个数+延迟时间+传输时间)×总块数
当处理时间≥读取时间时

  • 处理n个记录最长时间:((n-2)×读取时间+读取时间+处理时间)×(n-1)+处理时间+读取时间
  • 处理n个记录最短时间:(读取时间+处理时间)×n

图4-4-4-5习题
在这里插入图片描述
在这里插入图片描述

【考过】

  • 在磁盘调度管理中,通常应先进行移臂调度,再进行旋转调度
  • 在访问不同柱面的信息时,需要先进行移臂调度,再进行旋转调度
  • 在访问同一磁道的信息时,只需要进行旋转调度

4.5.2 文件的结构和组织

【方式一】多级索引公式:

  • 一级索引文件最大长度KB: = 磁盘块大小 ( B ) 每个块号需占 ( B ) × 磁盘大小 ( B ) ÷ 1024 = \frac{磁盘块大小(B)}{每个块号需占(B)}\times{磁盘大小(B)\div{1024}} =每个块号需占(B)磁盘块大小(B)×磁盘大小(B)÷1024
  • 二级索引文件最大长度KB: = ( 磁盘块大小 ( B ) 每个块号需占 ( B ) ) 2 × 磁盘大小 ( B ) ÷ 1024 = (\frac{磁盘块大小(B)}{每个块号需占(B)})^2\times{磁盘大小(B)\div{1024}} =(每个块号需占(B)磁盘块大小(B))2×磁盘大小(B)÷1024
  • 单个文件最大长度: = ( 磁盘块大小 ( B ) 每个块号需占 ( B ) ) 2 + 一级索引数量 × 磁盘块大小 ( B ) 每个块号需占 ( B ) + 直接地址索引数量 = (\frac{磁盘块大小(B)}{每个块号需占(B)})^2+一级索引数量\times{\frac{磁盘块大小(B)}{每个块号需占(B)}+直接地址索引数量} =(每个块号需占(B)磁盘块大小(B))2+一级索引数量×每个块号需占(B)磁盘块大小(B)+直接地址索引数量

【方式二】若采用多级索引结构,磁盘块大小为 X B,每个块号/地址项需占 Y B

  • 一级索引文件最大长度为_____ B 取整 ( X / Y ) × X 取整(X/Y) × X 取整(X/Y)×X
  • 二级索引文件最大长度为_____ B 取整 ( X / Y ) 2 × X 取整(X/Y)^2 × X 取整(X/Y)2×X

一级索引结尾位置: 直接的数量 + ( 数据块大小 / 每个地址大小 ) ∗ 一级数量 − 1 直接的数量 + (数据块大小 / 每个地址大小) * 一级数量 - 1 直接的数量+(数据块大小/每个地址大小)一级数量1
最大文件长度_____B ( X / Y ) 2 + ( 一级索引数量 × ( X / Y ) ) + 直接地址数量 (X/Y)^2 + (一级索引数量 × (X/Y)) + 直接地址数量 (X/Y)2+(一级索引数量×(X/Y))+直接地址数量

图4-5-2 多级索引

图4-5-2 习题

4.5.3 文件目录

记住修改目录文件时发生崩溃,对系统影响最大

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

  • 若系统正在将目录文件修改的结果写回磁盘时系统发生崩溃,则对系统的影响相对较大。
  1. 文件控制块
    文件控制块中包含以下三类信息:基本信息类、存取控制信息类和使用信息类。

    1. 基本信息类。例如文件名、文件的物理地址、文件长度和文件块数等。
    2. 存取控制信息类。文件的存取权限,像 UNIX 用户分成文件主、同组用户和一般用户三类,这三类用户的读/写执行 RWX 权限。
    3. 使用信息类。文件建立日期、最后一次修改日期、最后一次访问的日期、当前使用的信息(如打开文件的进程数、在文件上的等待队列)等。
  2. 目录结构
    文件目录结构的组织方式直接影响到文件的存取速度,关系到文件的共享性和安全性,因此组织好文件的目录是设计文件系统的重要环节。常见的目录结构有3种:一级目录结构、二级目录结构和多级目录结构。

    1. 一级目录结构。
    2. 二级目录结构。
    3. 多级目录结构。
    • 全文件名:包括盘符及从跟目录开始的路径名,需要有文件名为结尾
    • 绝对路径:文件或目录在文件系统中的完整位置。它包括从根目录到文件或目录的所有层次结构,用目录分隔符(通常是斜杠“/”或反斜杠“\”)分隔各级目录。【全文件名省略掉文件就是绝对路径】
    • 相对路径:从当前工作目录下的路径名
    • …\为上级目录

【例4.17】 若某文件系统的目录结构如下图所示,假设用户要访问文件 f1java,且当前工作目录为 Program,则该文件的全文件名为(1),其相对路径为(2)。
图4-5-3 多级目录文件路径

(1)D:\Program\Java-prog\f1.java
(2)Java-prog\

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

  1. 文件的存取方法

  2. 文件存储空间的管理

    1. 空闲区表

    2. 位示图

      (2)位示图。这种方法是在外存上建立一张位示图(Bitmap),记录文件存储器的使用情况。每一位对应文件存储器上的一个物理块,取值0和1分别表示空闲和占用。例如,某文件存储器上位示图的大小为n,物理块依次编号为0,1,2,⋯。假如计算机系统中字长为32位,那么在位示图中的第0个字(逻辑编号)对应文件存储器上的 0,1,2,⋯,31号物理块:第1个字对应文件存储器上的32,33,34,63 号物理块,依此类推,如图4-30 所示。
      图4-30 位示图例

      这种方法的主要特点是位示图的大小由磁盘空间的大小(物理块总数)决定,位示图的描述能力强,适合各种物理结构。

      • 【答题技巧】必考位示图大小
      • 若系统的字节长X(32)位,磁盘上物理块编号0、1、2…,那么Y号物理块的使用情况在位示图中的第Y/X个字中描述,= 物理块使用情况 字节长 \frac{物理块使用情况}{字节长} 字节长物理块使用情况
      • 若磁盘的容量为xGB,物理块的大小为yMB,那么位示图的大小为(x/y)/字节长X个字。(注意单位换算,有可能容量为GB,需要用容量GB×1024再进行计算)
        位示图大小 = 磁盘容量 G B ∗ 1024 M B ( 物理块大小 y M B ) ∗ ( 字节长 X 位 ) 位示图大小=\frac{磁盘容量GB*1024MB}{(物理块大小yMB)*(字节长X位)} 位示图大小=(物理块大小yMB)(字节长X)磁盘容量GB1024MB

习题:

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

分析:空(1)的正确答案是 A。根据题意:系统的字长为32位,可记录32 个物理块的使用情况,这样031号物理块的使用情况在位示图中的第1个字中描述,3263号物理块的使用情况在位示图中的第2个字中描述,….,4064~4095 号物理块的使用情况在位示图中的第 128 个字中描述,4096~4127 号物理块的使用情况在位示图中的第129 个字中描述。空(2)的正确答案是D。由于磁盘的容量为200GB,物理块的大小为 1MB,而磁盘有200×1024-204800 个物理块,故位示图的大小为 204800/32-6400 个字。

4.5.5 杂题精选

  1. 如果系统采用信箱通信方式,当进程调用Send原语被设置成“等信箱”状态时,其原因是 (23)。(2010年上半年)
    A. 指定的信箱不存在 B. 调用时没有设置参数
    C. 指定的信箱中无信件 D. 指定的信箱中存满了信件

    试题(23)的正确选项为D。因为 Send 原语是发送原语,如果系统采用信箱通信方式,那么当进程调用 Send 原语被设置成“等信箱”状态时,意味着指定的信箱存满了信件,无可用空间。
    参考答案(23) D

  2. UNIX 系统采用直接、一级、二级和三级间接索引技术访问文件,其索引结点有 13 个地址项 ( i a d d r [ 0 ] 〜 i a d d r [ 12 ] ) (i_addr[0]〜i_addr[12]) iaddr[0]iaddr[12]。如果每个盘块的大小为 1KB,每个盘块号占 4B,则进程A 访问文件 F 中第 11264 字节处的数据时, (28) 。(2009 年下半年)
    (28) A. 可直接寻址 B. 需要一级间接寻址
    C. 需要二级间接寻址 D. 需要三级间接寻址
    在这里插入图片描述
    在这里插入图片描述

  3. 如果系统采用信箱通信方式,当进程调用Send原语被设置成“等信箱”状态时,其原因是 (23) 。(2010年上半年)
    (23) A. 指定的信箱不存在 B. 调用时没有设置参数
    C. 指定的信箱中无信件 D. 指定的信箱中存满了信件

    试题(23)分析
    试题(23)的正确选项为D。因为Send原语是发送原语,如果系统采用信箱通信方式,那么当进程调用Send原语被设置成“等信箱”状态时,意味着指定的信箱存满了信件,无可用空间。
    参考答案 (23)D

  4. 设计操作系统时不需要考虑的问题是 (23) 。(2014年上半年)
    (23) A. 计算机系统中硬件资源的管理 B. 计算机系统中软件资源的管理
    C. 用户与计算机之间的接口 D. 语言编译器的设计实现

    试题(23)分析
    操作系统设计的目的是管理计算机系统中的软硬件资源,为用户与计算机之间提供方便的接口。
    参考答案 (23)D

  5. 当用户通过键盘或鼠标进入某应用系统时,通常最先获得键盘或鼠标输入信息的是 (23) 程序。(2016年上半年)
    (23) A. 命令解释 B. 中断处理 C. 用户登录 D. 系统调用

    在这里插入图片描述

  6. I/O设备管理软件一般分为4个层次,如下图所示。图中①②③分别对应 (26) 。(2018年上半年)
    A. 设备驱动程序、虚设备管理、与设备无关的系统软件
    B. 设备驱动程序、与设备无关的系统软件、虚设备管理
    C. 与设备无关的系统软件、中断处理程序、设备驱动程序
    D. 与设备无关的系统软件、设备驱动程序、中断处理程序

    在这里插入图片描述

  7. 从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置。该要求体现了嵌入式操作系统的 (28) 。(2019年上半年)
    (28) A. 可定制性 B. 实时性 C. 可靠性 D. 易移植性

    在这里插入图片描述

  8. 以下关于I/O软件的叙述中,正确的是 (26) 。(2019年下半年)
    A. I/O软件开放了I/O操作实现的细节,方便用户使用I/O设备
    B. I/O软件隐藏了I/O操作实现的细节,向用户提供的是物理接口
    C. I/O软件隐藏了I/O操作实现的细节,方便用户使用I/O设备
    D. I/O软件开放了I/O操作实现的细节,用户可以使用逻辑地址访问I/O设备

    在这里插入图片描述

  9. 在磁盘调度管理中通常 (27) 。(2019年下半年)
    A. 先进行旋转调度,再进行移臂调度
    B. 在访问不同柱面的信息时,只需要进行旋转调度
    C. 先进行移臂调度,再进行旋转调度
    D. 在访问同一磁盘的信息时,只需要进行移臂调度

    在这里插入图片描述

  10. 若磁盘的转速提高一倍,则 (5) 。(2021年上半年)
    A. 平均存取时间减半
    B. 平均寻道时间加倍
    C. 旋转等待时间减半
    D. 数据传输速率加倍

    答案:C

  11. 云计算有多种部署模型(Deployment Models)。若云的基础设施是为某个客户单独使用而构建的,那么该部署模型属于 (23) 。(2021年上半年)
    (23) A. 公有云 B. 私有云 C. 社区云 D. 混合云

    答案 : B


这份笔记由我在备考软件设计师中级考试的过程中编写,包含了我对知识点的理解与总结。如果您觉得这份笔记对您有帮助,并希望分享给更多的人,我十分乐意。但请在转载时务必注明出处,以尊重作者的劳动成果,感谢您的理解与支持

在此特别强调,本人编写笔记的所需部分资源均源于网络公开资源,旨在为大家提供一个学习和交流的内容,未经原作者授权,如若不慎侵犯您的合法权益,请您立即通过有效联系方式通知我,并附上相关证明材料。一旦核实无误,我将在第一时间删除涉事资源,全力保障您的合法权利不受损害。


  • 每篇一句:“为了未来好一点,此刻苦一点有什么。”
  • 如果觉得对您有用,请点个赞或者收藏鼓励我持续更新吧!
  • 恭喜您,已挑战成功第四关上,请前往第五关下进行挑战吧【整理中……】
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值