系统架构设计综合知识(1.1)计算机系统基础知识

前言

这里主要内容为系统架构设计师教程(第二版)第一章内容,计算机系统基础知识。其中计算机硬件对应教材2.2这里写了一些考点。计算机软件部分每年都考,对应2.3.2这里除了教材内容做了补充,也是需要掌握的。

文档内容是看了视频后整理,如有遗漏,欢迎评论补充。刷题使用51CTO小程序 如果大家有更好的 可以分享一下。


第一章 计算机系统

计算机系统概述

计算机系统是指用于数据管理的计算机硬件,软件及网格组成的系统。它是按人的要求接收和存储信息,自动进行数据处理和计算并输出结果信息的机器系统。
计算机系统可划分为。硬件子系统和软件子系统两部分。硬件由机械、电子元器件、磁介质和光介质等物理实体构成。软件是一系列按照特定顺序组织的数据和指令,并控制硬件,完成指定的功能。
典型计算机系统的组成
典型计算机系统的组成
计算其系统的分类维度很多,也较为复杂,可以从硬件的结构、性能、规模上划分。也可从软件的构成、特征上划分,或者从系统的整体用途、服务对象等进行分类。
计算机分类:
计算机分类

计算机硬件

​ 计算机组成结构(Camputer Architectural)源于冯.诺伊曼计算机结构。该结构成为现代计算机系统发展的基础。

计算机的基本硬件系统由运算器、控制器、存储器、输入设备和输出设备5大部件组成

  • 运算器、控制器等部件被集成在一起统称为中央处理单元(Central ProcessingUnit,CPU)。CPU是硬件系统的核心,用于数据的加工处理,能完成各种算术逻辑运算及控制功能
  • 存储器是计算机系统中的记忆设备,分为内部存储器和外部存储器。前者速度高、容量小,一般用于临时存放程序、数据及中间结果。而后者容量大、速度慢,可以长期保存程序和数据。
  • 输入设备和输出设备合称为外部设备(简称外设),输入设备用于输入原始数据及各种命令,而输出设备则用于输出计算机运行的结果。
中央处理单元 处理器(Central Processing Unit,CPU)
CPU 的功能:

​ (1)程序控制。CPU通过执行指令来控制程序的执行顺序,这是CPU的重要功能,(控制器)
​ (2)操作控制。一条指令功能的实现需要若干操作信号配合来完成,CPU产生每条指令的操作信号并将操作信号 送往对应的部件,控制相应的部件按指令的功能要求进行操作。(控制器)
​ (3)时间控制。CPU 对各种操作进行时间上的控制,即指令执行过程中操作信号的出现时间、持续时间及出现的时间顺序都需要进行严格控制。(控制器)
​ (4)数据处理。CPU通过对数据进行算术运算及逻辑运算等方式进行加工处理数据加工处理的结果被人们所利用。所以,对数据的加工处理也是CPU 最根本的任务。(运算器)

​ 此外,CPU还需要对系统内部和外部的中断(异常)做出响应,进行相应的处理

CPU的组成:

​ CPU主要由运算器、控制器、寄存器组和内部总线等部件组成

  • 运算器:由算术逻辑单元ALU(实现对数据的算术和逻辑运算)、累加寄存器AC(运算结果或源操作数的存放区)、数据缓冲存器DR(暂时存放内存的指令或数据)、和状态条件寄存器PSW(保存指令运行结果的条件码内容,如溢出标志等)组成。执行所有的算术运算,如加减乘除等;执行所有的逻辑运算并进行逻辑测试,如与、或、非、比较等。
  • 控制器:由指令寄存器IR(暂存CPU执行指令)、程序计数器PC(存放指令执行地址)、地址寄存器AR(保存当前CPU所访问的内存地址)、指令译码器ID(分析指令操作码)等组成。控制整个CPU的工作,最为重要。
  • CPU依据指今周期的不同阶段来区分二进制的指令和数据,因为在指令周期的不同阶段,指令会命令CPU分别去取指令或者数据。

典型的处理器体系结构:
在这里插入图片描述

处理器芯片不断涌现,常见的有**图形处理器(GraphicsProcessing Unit,GPU)处理器、信号处理器(Digital Signal Processor,DSP)以及现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)**等。GPU 是一种特殊类型的处理器,具有数百或数千个内核,经过优化可并行运行大量计算,因此近些年在深度学习和机器学习领域得到了广泛应用。DSP专用于实时的数字信号处理,通过采用饱和算法处理溢出问题,通过乘积累加运算提高矩阵运算的效率,以及为傅里叶变换设计专用指令等方法,在各类高速信号采集的设备中得到广泛应用。

校验码

码距 :就单个编码A:00而言,其码距为1,因为其只需要改变一位就变成另一个编码。在两个编码中,从A码到B码转换所需要改变的位数称为码距,如A:00要转换为B:11,码距为2。一般来说,码距越大,越利于纠错和检错。

奇偶校验码

​ 在编码中增加1位校验位来使编码中1的个数为奇数(奇校验)或者偶数(偶校验),从而使码距变为2。例如:
​ 奇校验:编码中,含有奇数个1,发送给接收方,接收方收到后,会计算收到的编码有多少个1,如果是奇数个,则无误,是偶数个,则有误。
​ 偶校验同理,只是编码中有偶数个1,由上述,奇偶校验只能检1位错,并且无法纠错

循环冗余校验码(Cyclic Redundancy Check,CRC)

​ CRC只能检错,不能纠错。使用CRC编码,需要先约定一个生成多项式G(x)。生成多项式的最高位和最低位必须是1。假设原始信息有m位,则对应多项式M(x)。生成校验码思想就是在原始信息位后追加若干校验位,使得追加的信息能被G(x)整除。接收方接收到带校验位的信息,然后用G(x)整除。余数为0,则没有错误;反之则发生错误

例题

例:假设原始信息串为10110,CRC的生成多项式为G(x)=x^4+x+1,求CRC校验码

(1)在原始信息位后面添0,假设生成多项式的阶为r,则在原始信息位后添加r个0,本题中,G(x)阶为4,则在原始信息串后加4个0,得到的新串为101100000,作为被除数。

(2)由多项式得到除数,多项中x的幂指数存在的位置为1,不存在的位置为0。本题中,x的幂指数为0,1,4的变量都存在,而幂指数为2,3的不存在,因此得到串10011。

(3)生成CRC校验码,将前两步得出的被除数和除数进行模2除法运算(即不进位也不借位的除法运算)。除法过程如下图所示。

在这里插入图片描述

得到余数1111。注意:余数不足r,则余数左边用若干个0补齐。如求得余数为11,r=4,则补两个0 得到0011。

(4)生成最终发送信息串,将余数添加到原始信息后。上例中,原始信息为10110,添加余数1111后,结果为10110 1111。发送方将此数据发送给接收方

(5)接收方进行校验。接收方的CRC校验过程与生成过程类似,接收方接收了带校验和的帧后,用步骤(2)得到的除数来除。余数为0,则表示信息无错;否则要求发送方进行重传。

注意:收发信息双方需使用相同的生成多项式。

指令系统
计算机指令的组成:

​ 一条指令由操作码和操作数两部分组成,操作码决定要完成的操作,操作数指参加运算的数据及其所在的单元地址。

​ 在计算机中,操作要求和操作数地址都由二进制数码表示,分别称作操作码和地址码,整条指令以二进制编码的形式存放在存储器中。

计算机指令执行过程

取指令–分析指令–执行指令三个步骤,首先将程序计数器PC中的指令地址取出,送入地址总线,CPU依据指令地址去内存中取出指令内容存入指令寄存器IR;而后由指令译码器进行分析,分析指令操作码;最后执行指令,取出指令执行所需的源操作数。

指令寻址方式

顺序寻址方式:当执行一段程序时,是一条指令接着一条指令地顺序执行。

跳跃寻址方式:指下一条指令的地址码不是由程序计数器给出,而是由本条指令直接给出。程序跳跃后,按新的指令地址开始顺序执行。因此,程序计数器的内容也必须相应改变,以便及时跟踪新的指令地址。

指令操作数的寻址方式

立即寻址方式:指令的地址码字段指出的不是地址,而是操作数本身

直接寻址方式:在指令的地址字段中直接指出操作数在主存中的地址。

间接寻址方式:指令地址码字段所指向的存储单元中存储的是操作数的地址。

寄存器寻址方式:指令中的地址码是寄存器的编号

​ 基址寻址方式:将基址寄存器的内容加上指令中的形式地址而形成操作数的有效地址,其优点是可以扩大寻址能力。(了解)

​ 变址寻址方式:变址寻址方式计算有效地址的方法与基址寻址方式很相似,它是将变址寄存器的内容加上指令中的形式地址而形成操作数的有效地址。(了解)

CISC与RISC

CISC是复杂指令系统,兼容性强,指令繁多、长度可变,由微程序实现;指令少,使用频率接近,主要依靠硬件实现(通用寄存器

RISC是精简指令系统,硬布线逻辑控制)
具体区别如下:

在这里插入图片描述

指令流水线

原理: 将指令分成不同段,每段由不同的部分去处理,因此可以产生叠加的效果,所有的部件去处理指令的不同段

RISC中的流水线技术:
(1)超流水线(super Pipe Line)技术。它通过细化流水、增加级数和提高主频,使得在每个机器周期内能完成一个甚至两个浮点操作。其实质是以时间换取空间。

(2)超标量(superscalar)技术。它通过内装多条流水线来同时执行多个处理,其时钟频率虽然与一般流水接近,却有更小的CPI。其实质是以空间换取时间。

(3)超长指今字(VeryLongInstruction Word,VLlW)技术。VLIW 和超标量都是20 世纪80年代出现的概念,其共同点是要同时执行多条指令,其不同在于超标量依靠硬件来实现并行处理的调度,VLIW 则充分发挥软件的作用,而使硬件简化性能提高。

在这里插入图片描述

流水线时间计算

流水线周期:指令分成不同执行段,其中执行时间最长的段为流水线周期。
流水线执行时间:1条指令总执行时间+(总指令条数-1)*流水线周期。
流水线吞吐率计算:吞吐率即单位时间内执行的指令条数。公式:指令条数/流水线执行时间
流水线的加速比计算:加速比即使用流水线后的效率提升度,即比不使用流水线快了多少倍,越高表明流水线效率越高,公式:不使用流水线执行时间/使用流水线执行时间。

例题

例题1: 流水线的吞吐率是指流水线在单位时间里所完成的任务数或输出的结果数。设某流水线有5段,有1段的时间为2ns,另外4段的每段时间为1ns,利用此流水线完成100个任务的吞吐率约为()个/s 。

解析: 由题可得 周期流水线执行100个任务所需要的时间为:(2+1+1+1+1)+(100-1)*2=204ns。所以每秒吞吐率为:(100/204)109=490106

注意:1秒=10^9纳秒。

例题2: 假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间为15us,由缓冲区送至用户区的时间是5us,在用户区内系统对每块数据的处理时间为1us,若用户需要将大小为10个磁盘块的Doc文件逐块从磁盘读入缓冲区,并送至用户区进行处理,那么采用单缓冲区需要花费的时间为()us;采用双缓冲区需要花费的时间为()us。

解析: 单缓冲区:前两段要合并,是两段流水线,21+20*(10-1)=201*

双缓冲区:标准三段流水线,21+15*(10-1)=156

例题3: 流水线技术是通过并行硬件来提高系统性能的常用方法。对于一个k段流水线,假设其各段的执行时间均相等(设为t),输入到流水线中的任务是连续的理想情况下,完成n个连续任务需要的总时间为()。若某流水线浮点加法运算器分为5段,所需要的时间分别是6ns、7ns、8ns、9ns和6ns,则其最大加速比为()。

解析:当流水线各段执行时间相等时,公式化简后,完成n个连续任务需要的总时间为(k+n-1)t。加速比定义为顺序执行时间与流水线执行时间的比值,根据题干假设,假设一共有n条指令,则顺序执行时间为(6+7+8+9+6)n=36n,该流水线周期为最长的9ns,则在流水线中的执行时间为36+9(n-1)=9n+27,因此加速比为36n/(9n+27),题目问的是最大加速比,由这个公式可以知道当n越大时,该公式值越大,因此最大的时候就是n趋向于无穷大的时候,此时可忽略分母的27也就是36n/9n=4.

存储系统
计算机存储结构层次图

在这里插入图片描述

​ 计算机采用分级存储体系的主要目的是为了解决存储容量、成本和速度之间的矛盾问题。两级存储映像为:Cache-主存、主存-辅存(虚拟存储体系)。

存储器的分类:

  • 按存储器所处的位置:内存、外存。
  • 按存储器构成材料:磁存储器(磁带)、半导体存储器、光存储器(光盘)。按存储器的工作方式:可读可写存储器(RAM)、只读存储器(ROM只能读,PROM可写入一次,EPROM 和EEPOM 既可以读也可以写,只是修改方式不用)。
  • 按存储器访问方式:按地址访问、按内容访问(相联存储器)。
  • 按寻址方式:随机存储器(访问任意存储单元所用时间相同)、顺序存储器(只能按顺序访问,如磁带)、直接存储器(二者结合,如磁盘,对于磁道的寻址是随机的,在一个磁道内则是顺序的)。

计算机采用分级存储体系的主要目的是为了解决存储容量、成本和速度之间的矛盾问题。

局部性原理

​ 总的来说,在CPU运行时,所访问的数据会趋向于一个较小的局部空间地址内,包括下面两个方面:

时间局部性原理:如果一个数据项正在被访问,那么在近期它很可能会被再次访问,即在相邻的时间里会访问同一个数据项

空间局部性原理:在最近的将来会用到的数据的地址和现在正在访问的数据地址很可能是相近的,即相邻的空间地址会被连续访问。

cache

​ 高速缓存Cache用来存储当前最活跃的程序和数据,直接与CPU交互,位于CPU和主存之间,容量小,速度为内存的5-10倍,由半导体材料构成。其内容是主存内存的副本拷贝,对于程序员来说是透明的。

Cache由控制部分和存储器组成,存储器存储数据,控制部分判断CPU要访问的数据是否在Cache中,在则命中,不在则依据一定的算法从主存中替换。

地址映射方法:

​ 在CPU工作时,送出的是主存单元的地址,而应从Cache存储器中读/写信息。这就需要将主存地址转换为Cache存储器地址,这种地址的转换称为地址映像,由硬件自动完成映射,分为下列三种方法:

直接映像:将Cache存储器等分成块,主存也等分成块并编号。主存中的块与Cache中的块的对应关系是固定的,也即二者块号相同才能命中。地址变换简单但不灵活,容易造成资源浪费。(如图所示)

在这里插入图片描述

全相联映像:同样都等分成块并编号。主存中任意一块都与Cache中任意一块对应。因此可以随意调入Cache任意位置,但地址变换复杂,速度较慢。因为主存可以随意调入Cache任意块,只有当Cache满了才会发生块冲突,是最不容易发生块冲突的映像方式。(如图所示)

在这里插入图片描述

组组相连映像:前面两种方式的结合,将Cache存储器先分块再分组,主存也同样先分块再分组,组间采用直接映像,即主存中组号与Cache中组号相同的组才能命中,但是组内全相联映像,也即组号相同的两个组内的所有块可以任意调换

替换算法

​ 替换算法的目标就是使Cache 获得尽可能高的命中率。常用算法有如下几种。

  • 随机替换算法。就是用随机数发生器产生一个要替换的块号,将该块替换出去。
  • 先进先出算法。就是将最先进入Cache的信息块替换出去,
  • 近期最少使用算法。这种方法是将近期最少使用的Cache 中的信息块替换出去。
  • 优化替换算法。这种方法必须先执行一次程序,统计Cache的替换情况有了这样的先验信息,在第二次执行该程序时便可以用最有效的方式来替换。

命中率及平均时间

​ Cache有一个命中率的概念,即当CPU所访问的数据在Cache中时,命中,直接从Cache中读取数据,设读取一次Cache时间为1ns,若CPU访问的数据不在Cache中则需要从内存中读取,设读取一次内存的时间为1000ns,若在CPU多次读取数据过程中,有90%命中Cache,则CPU读取一次的平均时间为(90%*1+10%*1000)ns

例题

例题1:按照Cache地址映像的块冲突概率,从高到低排列的是()

A.全相联映像→直接映像→组相联映像

B.直接映像→组相联映像→全相联映像

C.组相联映像→全相联映像→直接映像

D.直接映像→全相联映像→组相联映像

答案:B
例题2:以下关于Cache与主存间地址映射的叙述中,正确的是()。

A.操作系统负责管理Cache与主存之间的地址映射

B.程序员需要通过编程来处理Cache与主存之间的地址映射

C.应用软件对cache与主存之间的地址映射进行调度

D:由硬件自动完成Cache与主存之间的地址映射

答案:D

虚拟存储器

​ 虚拟存储器是一个容量非常大的存储器的逻辑模型,不是任何实际的物理存储器。

​ 它借助于磁盘等辅助存储器来扩大主存容量,使之为更大或更多的程序所使用。虚拟存储器管理方式分为页式虚拟存储器、段式虚拟存储器和段页式虚拟存储器。

​ 虚拟存储器是由硬件和操作系统自动实现存储信息调度和管理的。它的工作过程包括6个步骤:

  • 中央处理器访问主存的逻辑地址分解成组号a和组内地址b,并对组号a进行地址变换,即将逻辑组号a作为索引,查地址变换表,以确定该组信息是否存放在主存内。
  • 如该组号已在主存内,则转而执行④;如果该组号不在主存内,则检查主存中是否有空闲区,如果没有,便将某个暂时不用的组调出送往辅存,以便将需要访问的信息调入主存。
  • 从辅存读出所要的组,并送到主存空闲区,然后将那个空闲的物理组号a和逻辑组号a登录在地址变换表中。
  • 从地址变换表读出与逻辑组号a对应的物理组号a。
  • 从物理组号a和组内字节地址b得到物理地址。
  • 根据物理地址从主存中存取必要的信息。

​ 页式调度是将逻辑和物理地址空间都分成固定大小的页。主存按页顺序编号,而每个独立编址的程序空间有自己的页号顺序,通过调度,辅存中程序的各页可以离散装入主存中不同的页面位置,并可据页表一一对应检索。

磁盘

磁盘结构和参数

​ 磁盘有正反两个盘面,每个盘面有多个同心圆,每个同心圆是一个磁道,每个同心圆又被划分为多个扇区,数据就被存放在-一个个扇区中

磁头首先要寻找到对应的磁道,然后等待磁盘进行周期旋转,旋转到指定的扇区,才能读取到对应的数据,因此,会产生寻道时间和等待时间公式为:存取时间=寻道时间+等待时间(平均定位时间+转动延迟)

​ 注意:寻道时间是指磁头移动到磁道所需的时间;等待时间为等待读写的扇区转到磁头下方所用的时间。

磁盘调度算法

​ 磁盘数据的读取时间分为寻道时间+旋转时间,也即先找到对应的磁道,而后再旋转到对应的扇区才能读取数据,其中寻道时间耗时最长,需要重点调度,有如下调度算法:

  • 先来先服务FCFS:根据进程请求访问磁盘的先后顺序进行调度。
  • 最短寻道时间优先SSTF:请求访问的磁道与当前磁道最近的进程优先调度,使得每次的寻道时间最短。会产生“饥饿”现象,即远处进程可能永远无法访问。
  • 扫描算法SCAN:又称“电梯算法”,磁头在磁盘上双向移动,其会选择离磁头当前所在磁道最近的请求访问的磁道,并且与磁头移动方向一致,磁头永远都是从里向外或者从外向里一直移动完才掉头,与电梯类似。
  • 单向扫描调度算法CSCAN:与SCAN不同的是,其只做单向移动,即只能从里向外或者从外向里。

例题

例题1:

在这里插入图片描述

解析:11个物理块 即11个扇区 一个旋转周期为33 则一个扇区为3 从R0开始 读需要3 处理需要3 则需要6 此时磁头已旋转至R2 因此 R1 时间则为 3*10+3+3 所以最长时间为 33x10 +6 .

答案 CB

例题2

解析:柱面号即磁道 按最短寻道算法 则21最近为23 然后为17

答案D

输入输出技术

计算机系统中存在多种内存与接口地址的编址方法,常见的是下面两种:

1)内存与接口地址独立编址方法

​ 内存地址和接口地址是完全独立的两个地址空间。访问数据时所使用的指令也完全不同,用于接口的指令只用于接口的读/写,其余的指令全都是用于内存的因此,在编程序或读程序时很易使用和辨认。这种编址方法的缺点是用于接口的指令太少、功能太弱

2)内存与接口地址统一编址方法

​ 内存地址和接口地址统一在一个公共的地址空间里,即内存单元和接口共用地址空间优点是原则上用于内存的指令全都可以用于接口,这就大大地增强了对接口的操作功能,而且在指令上也不再区分内存或接口指令。该编址方法的缺点就在于整个地址空间被分成两部分,其中一部分分配给接口使用,剩余的为内存所用,这经常会导致内存地址不连续。

计算机和外设间的数据交互方式

程序控制(查询)方式:CPU主动查询外设是否完成数据传输,效率极低

程序中断方式:外设完成数据传输后,向CPU发送中断,等待CPU处理数据效率相对较高。中断响应时间指的是从发出中断请求到开始进入中断处理程序。中断处理时间指的是从中断处理开始到中断处理结束。中断向量提供中断服务程序的入口地址。多级中断嵌套,使用堆栈来保护断点和现场。

DMA方式(直接主存存取):CPU只需完成必要的初始化等操作,数据传输的整个过程都由DMA控制器来完成,在主存和外设之间建立直接的数据通路,效率很高。
在一个总线周期结束后,CPU会响应DMA请求开始读取数据;CPU响应程序中断方式请求是在一条指令执行结束时

总线结构

​ 总线(Bus),是指计算机设备和设备之间传输信息的公共数据通道。总线是连接计算机硬件系统内多种设备的通信线路,它的一个重要特征是由总线上的所有设备共享,因此可以将计算机系统内的多种设备连接到总线上。

​ 从广义上讲,任何连接两个以上电子元器件的导线都可以称为总线,通常分为以下三类:

内部总线:内部芯片级别的总线,芯片与处理器之间通信的总线。
系统总线:是板级总线,用于计算机内各部分之间的连接,具体分为数据总线数据总线(并行数据传输位数)、地址总线(系统可管理的内存空间的大小)、控制总线(传送控制命令)。代表的有ISA总线、EISA总线、PCI总线。
外部总线:设备一级的总线,微机和外部设备的总线。代表的有RS232(串行总线,适合于长距离)、SCSI(并行总线,适合于短距离,速度快)、USB(通用串行总线,即插即用,支持热插拔)。

例题

例题1:计算机系统中常用的输入/输出控制方式有无条件传送、中断、程序查询和DMA方式等。当采用()方式时,不需要CPU执行程序指令来传送数据。A.中断
B.程序查询
C.无条件传送
D.DMA
答案: D
例题2:以下关于总线的说法中,正确的是()。
A.串行总线适合近距离高速数据传输,但线间串扰会导致速率受限

B.并行总线适合长距离数据传输,易提高通信时钟频率来实现高速数据传输

C.单总线结构在一个总线上适应不同种类的设备,设计复杂导致性能降低

D.半双工总线只能在一个方向上传输信息
答案:C

内存地址字节算法

​ 内存按字节编址,地址从A4000H到CBFFFH,共有 (1) 个字节。若用存储容量为32K×8bit的存储芯片构成该内存,至少需要 (2) 片。
(1)A.80K B.96K C.160K D.192K
(2)A.2 B.5 C.8 D.10
​ 试题解析:CBFFFH - A4000H + 1 = 28000H = 160K。160K / 32K = 5。答案:(1)C (2)B

​ A4000H和CBFFFH都是表示十六进制的数据,H表示的就是十六进制,所以A4000H到CBFFFH共有的字节数为:CBFFFH(835583)-A4000H(671744)+1=28000H(163840),些等式中尾数为H的表示十六进制数,而括号中的数是其相应的十进制数,所以它们中间共有163840个字节,而163840/1024=160,从而得出A4000H到CBFFFH中共有160*1024个字节。

​ 地址编号A0000H到DFFFFH的内存空间为DFFFFH-A0000H+1=40000H个若内存按字节编址,即每个空间存储一个字节则地址编号A0000H到DFFFFH的内存空间的存储容量为40000H*8比特。

​ 用存储容量为32K*8比特的存储芯片构成地址编号A0000H到DFFFFH的内存空间,则至少需要40000H*8比特/32K*8比特=40000H/8000H=5片

​ 进制转换部分可以看大佬的 进制转换(二进制、八进制、十进制、十六进制)涵盖整数与小数部分,超详细

​ 更多内存地址计算可以看大佬的 内存地址计算(存储容量计算) 存储系统 - 存储容量计算(字节编址、位编址、芯片个数)

计算机软件

概述

计算机软件是指计算机系统中的程序及其文档,是计算任务的处理对象和处理规则的描述。 任何以计算机为处理工具的任务,都是计算任务。处理对象是数据(比如数字、文字、图形、图象和声音等)或信息(数据及有关的含义)。处理规则一般指处理的动作和步骤。文档是为了便于了解程序所需的阐述性资料。

计算机软件用来扩充计算机系统的功能,提高计算机系统的效率。
软件系统是指在计算机硬件系统上运行的程序相关的文档资料和数据的集合。按照软件所起的作用和需要的运行环境的不同,通常将计算机软件分为系统软件和应用软件两大类:

  • 系统软件是为整个计算机系统配置的不同依赖特定应用领域的通用软件。根据系统软件功能的不同,可将其划分为操作系统、程序设计语言翻译系统、数据库管理系统和网络软件等。
  • 应用软件是指为某类应用需要或解决某个特定问题而设计的软件。

操作系统

操作系统的基本原理

​ 这里直接引用大佬文档 操作系统的基本原理

操作系统定义: 能有效地组织和管理系统中的各种软/硬件资源,合理地组织计算机系统工作流程,控制程序的执行,并且向用户提供一个良好的工作环境和友好的接口。

组成,作用

​ 操作系统是一种大型、复杂的软件产品,它们通常由操作系统内核(Kermel)和其他许多附加的配套软件所组成,包括图形用户界面程序、常用的应用程序(如日历、计算器、资源管理器和网络浏览器等)、实用程序(任务管理器、磁盘清理程序、杀毒软件和防火墙等)以及为支持应用软件开发和运行的各种软件构件(如应用框架、编译器和程序库等)。

​ 操作系统有三个重要的作用:

(1)管理计算机中运行的程序和分配各种软硬件资源。

(2)为用户提供友善的人机界面。人机界面的任务是实现用户与计算机之间的通信(对话)。几乎所有操作系统都向用户提供图形用户界面(GUI)。

(3)为应用程序的开发和运行提供一个高效率的平台。

操作系统的特点

  • 并发性。 并发性是指在一段时间内,宏观上有多个程序同时运行,从微观上来说,各个程序是交替、轮流执行的

  • 共享性。 共享是指操作系统中的资源(包括硬件资源和信息资源)可以被多个并发执行的进程(线程)共同使用,而不是被一个进程所独占。

  • 虚拟性。 虚拟性是指操作系统中的一种管理技术,它是把物理上的一个实体变成逻辑上的多个对应物,或把物理上的多个实体变成逻辑上的一个对应物的技术。

  • 不确定性。 在多道程序环境中,允许多个进程并发执行,但由于资源有限,在多数情况下进程的执行不是一贯到底的,而是“走走停停”。系统中的进程何时执行,何时暂停,以什么样的速度向前推进,进程总共要花多少时间执行才能完成,这些都是不可预知的。或者说该进程是以不确定的方式运行的,其导致的直接后果是程序执行结果可能不唯一。

操作系统的功能:

(1)进程管理。实质上是对处理机的执行“时间”进行管理,采用多道程序等技术将CPU的时间合理地分配给每个任务,主要包括进程控制、进程同步、进程通信和进程调度。

(2)文件管理。主要包括文件存储空间管理、目录管理、文件的读/写管理和存取控制。

(3)存储管理。存储管理是对主存储器“空间”进行管理,主要包括存储分配与回收、存储保护、地址映射(变换)和主存扩充。

(4)设备管理。实质是对硬件设备的管理,包括对输入/输出设备的分配、启动、完成和回收。

(5)作业管理。包括任务、界面管理、人机交互、图形界面、语音控制和虚拟现实等。

操作系统的分类

  1. 批处理操作系统

​ 批处理操作系统分为单道批处理和多道批处理。单道批处理操作系统是一种早期的操作系统,用户可以向系统提交多个作业,“单道”的含义是指一次只有一个作业装入内存执行。多道批处理操作系统允许多个作业装入内存执行,在任意一个时刻,作业都处于开始点和终止点之间。多道批处理系统主要有3个特点:多道、宏观上并行运行和微观上串行运行。

  1. 分时操作系统

​ 在分时操作系统中,一个计算机系统与多个终端设备连接。分时操作系统是将CPU的工作时间划分为许多很短的时间片,轮流为各个终端的用户服务。分时系统主要有4个特点:多路性、独立性、交互性和及时性

  1. 实时操作系统

​ 实时是指计算机对于外来信息能够以足够快的速度进行处理,并在被控对象允许的时间范围内做出快速反应。实时系统对交互能力要求不高,但要求可靠性有保障。
​ 实时系统分为实时控制系统和实时信息处理系统。实时控制系统主要用于生产过程的自动控制,例如数据自动采集、武器控制、火炮自动控制、飞机自动驾驶和导弹的制导系统等。实时信息处理系统主要用于实时信息处理,例如飞机订票系统、情报检索系统等

  1. 网络操作系统

​ 网络操作系统是使联网计算机能方便而有效地共享网络资源,为网络用户提供各种服务的软件和有关协议的集合。

​ 网络操作系统的功能主要包括:高效、可靠的网络通信;对网络中共享资源(在LAN中有硬盘、打印机等)的有效管理;提供电子邮件、文件传输、共享硬盘和打印机等服务:网络安全管理;提供互操作能力。

  1. 分布式操作系统

​ 分布式计算机系统是由多个分散的计算机经连接而成的计算机系统,系统中的计算机无主、次之分,任意两台计算机可以通过通信交换信息。通常,为分布式计算机系统配置的操作系统称为分布式操作系统。
​ 分布式操作系统能直接对系统中的各类资源进行动态分配和调度、任务划分、信息传输协调工作,并为用户提供一个统一的界面与标准的接口,用户通过这一界面实现所需要的操作和使用系统资源,使系统中若干台计算机相互协作完成共同的任务,有效地控制和协调诸任务的并行执行。
​ 分布式操作系统是网络操作系统的更高级形式,它保持网络系统所拥有的全部功能,同时又有透明性、可靠性和高性能等特性。

  1. 微型计算机操作系统

​ 微型计算机操作系统简称微机操作系统,常用的有Windows、Mac OS、Linux

  1. 嵌入式操作系统

​ 嵌入式操作系统运行在嵌入式智能设备环境中,对整个智能硬件以及它所操作、控制的各种部件装置等资源进行统一协调、处理、指挥和控制,其主要特点如下:

  • 微型化:从性能和成本角度考虑,希望占用的资源和系统代码量少,如内存少、字长短、运行速度有限、能源少(用微小型电池)。
  • 可定制:从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置,以满足不同应用需要。
  • 实时性:嵌入式操作系统主要应用于过程控制、数据采集、传输通信、多媒体信息及关键要害领域需要迅速响应的场合,所以对实时性要求较高。
  • 可靠性:系统构件、模块和体系结构必须达到应有的可靠性,对关键要害应用还要提供容错和防故障措施。
  • 易移植性:为了提高系统的易移植性,通常采用硬件抽象层(HardwareAbstractionLevel,HAL)和板级支撑包(Board Support Package,BSP)的底层设计技术。

常见的嵌入式实时操作系统有 VxWorks、μClinux、PalmOS、WindowsCE、μC/OS-I和eCos 等
嵌入式系统初始化过程按照自底向上、从硬件到软件的次序依次为:片级初始化→板级初始化→系统初始化

进程管理

进程的组成和状态

进程的组成: 进程控制块PCB(唯一标志)、程序(描述进程要做什么)、数据(存放进程执行时所需数据)

进程基础的状态是下左图中的三态图。需要熟练掌握左下图中的进程三态之间的转换

左三态图 右五态图

例题

例题1:在单处理机系统中,采用先来先服务调度算法。系统中有4个进程P1、P2、P3、P4(假设进程按此顺序到达),其中P1为运行状态,P2为就绪状态,P3和P4为等待状态,且P3等待打印机,P4等待扫描仪。若P1(),则P1、P2、P3和P4的状态应分别为()。

A.时间片到 B.释放了扫描仪 C.释放了打印机 D.已完成
A.等待、就绪、等待和等待 B.运行、就绪、运行和等待

C.就绪、运行、等待和等待 D.就绪、就绪、等待和运行

答案:AC

解析:P1处于运行状态,那么对应于它的操作就是时间片到,P1进入就绪状态。而此时,P3和P4都处于等待状态,都在等待除了CPU之外的其他事物,它们等待的事物并没有到,所以还是处于等待状态,或阻塞状态。P2此时是就绪状态,获得了P1释放的CPU,进入运行状态。

前趋图

​ 用来表示哪些任务可以并行执行,哪些任务之间有顺序关系,具体如下图:可知,ABC可以并行执行,但是必须ABC都执行完后,才能执行D,这就确定了两点:任务间的并行、任务间的先后顺序

在这里插入图片描述

进程资源图

用来表示进程和资源之间的分配和请求关系,如下图所示:

在这里插入图片描述

P代表进程,R代表资源,R方框中有几个圆球就表示有几个这种资源,在上图中,R1指向P1,表示R1有一个资源已经分配给了P1,P1指向R2,表示P1还需要请求一个R2资源才能执行。

阻塞节点: 某进程所请求的资源已经全部分配完毕,无法获取所需资源,该进程被阻塞了无法继续。如上图中P2。

非阻塞节点: 某进程所请求的资源还有剩余,可以分配给该进程继续运行。如上图中P1、P3。

当一个进程资源图中所有进程都是阻塞节点时,即陷入死锁状态

例题

例题1

在这里插入图片描述

答案:CB

解析:进程资源图化简的方法是:先看系统还剩下多少资源没分配,再看有哪些进程是不阻塞的,接着把不阻塞的进程的所有边都去掉,形成一个孤立的点,再把系统分配给这个进程的资源回收回来这样,系统剩余的空闲资源便多了起来,接着又去看看剩下的进程有哪些是不阻塞的,然后又把它们逐个变成孤立的点。最后,所有的资源和进程都变成孤立的点。图中P3是不阻塞的,故P3为化简图的开始,把P3孤立,再回收分配给他的资源,可以看到P1也变为不阻塞节点了,故P3、P1P2是可以的。

进程同步与互斥

临界资源:各进程间需要以互斥方式对其进行访问的资源

临界区:指进程中对临界资源实施操作的那段程序。本质是一段程序代码

互斥:某资源(即临界资源)在同一时间内只能由一个任务单独使用,使用时需要加锁,使用完后解锁才能被其他任务使用;如打印机。

同步:多个任务可以并发执行,只不过有速度上的差异,在一定情况下停下等待,不存在资源是否单独或共享的问题;如自行车和汽车。

互斥信号量:对临界资源采用互斥访问,使用互斥信号量后其他进程无法访问,初值为1

同步信号量:对共享资源的访问控制,初值一般是共享资源的数量

在这里插入图片描述

P操作:申请资源,S=S-1,若S>=0,则执行P操作的进程继续执行;若S < 0,则置该进程为阻塞状态(因为无可用资源),并将其插入阻塞队列。

V操作:释放资源,S=S+1,若S >0,则执行V操作的进程继续执行;若S<=0则从阻塞状态唤醒一个进程,并将其插入就绪队列(此时因为缺少资源被P操作阻塞的进程可以继续执行),然后执行V操作的进程继续。

经典问题:生产者和消费者的问题

三个信号量:互斥信号量S0(仓库独立使用权),同步信号量S1(仓库空闲个数),同步信号量S2(仓库商品个数)。

在这里插入图片描述

例题

例题1

在这里插入图片描述

答案:CBB
解析:这种题型常考,并且也很简单。五个信号量对应前趋图上五根连线,如下图:

在这里插入图片描述

例题2

答案:CBD

进程调度

​ 进程调度方式是指当有更高优先级的进程到来时如何分配CPU。分为可剥夺和不可剥夺两种,可剥夺指当有更高优先级进程到来时,强行将正在运行进程的CPU分配给高优先级进程;不可剥夺是指高优先级进程必须等待当前进程自动释放CPU。
​ 在某些操作系统中,一个作业从提交到完成需要经历高、中、低三级调度。

  • 高级调度。高级调度又称“长调度”“作业调度”或“接纳调度”,它决定处于输入池中的哪个后备作业可以调入主系统做好运行的准备,成为一个或一组就绪进程。在系统中一个作业只需经过一次高级调度。
  • 中级调度。中级调度又称“中程调度”或“对换调度”,它决定处于交换区中的哪个就绪进程可以调入内存,以便直接参与对CPU 的竞争。
  • 低级调度。低级调度又称“短程调度”或“进程调度”它决定处于内存中的哪个就绪进程可以占用CPU。低级调度是操作系统中最活跃、最重要的调度程序,对系统的影响很大。

调度算法:

  • 先来先服务FCFS:先到达的进程优先分配CPU。用于宏观调度。
  • 时间片轮转:分配给每个进程CPU时间片,轮流使用CPU,每个进程时间片大
    小相同,很公平,用于微观调度。
  • 优先级调度:每个进程都拥有一个优先级,优先级大的先分配CPU。
  • 多级反馈调度:时间片轮转和优先级调度结合而成,设置多个就绪队列1,2,3…n,每个队列分别赋子不同的优先级,分配不同的时间片长度;新进程先进入队列1的末尾,按FCFS原则,执行队列1的时间片;若未能执行完进程,则转入队列2的末尾,如此重复。

在这里插入图片描述

死锁

​ 当一个进程在等待永远不可能发生的事件时,就会产生死锁,若系统中有多个进程处于死锁状态,就会造成系统死锁。

​ 死锁产生的四个必要条件:资源互斥、每个进程占有资源并等待其他资源系统不能剥夺进程资源、进程资源图是一个环路

​ 死锁产生后,解决措施是打破四大条件,有下列方法:

  • 死锁预防:采用某种策略限制并发进程对于资源的请求,破坏死锁产生的四个条件之一,使系统任何时刻都不满足死锁的条件。
  • 死锁避免:一般采用银行家算法来避免,银行家算法,就是提前计算出一条不会死锁的资源分配方法,才分配资源,否则不分配资源,相当于借贷,考虑对方还得起才借钱,提前考虑好以后,就可以避免死锁。
  • 死锁检测:允许死锁产生,但系统定时运行一个检测死锁的程序,若检测到系统中发生死锁,则设法加以解除。
  • 死锁解除:即死锁发生后的解除方法,如强制剥夺资源,撤销进程等。

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

例题

例题1:某系统中有3个并发进程竞争资源R,每个进程都需要5 个R,那么至少有()个R,才能保证系统不会发生死锁。
B.13
C.14
A.12
D.15
答案:B
解析:每个进程需要5个R才能执行,则当每个进程都只有4个R时是死锁最坏的情况,即3*4=12个资源是死锁发生的最大资源数,再加1就能保证不发生死锁,因此是13.

例题2:假设系统中有n个进程共享3台打印机,任一进程在任一时刻最多只能使用1台打印机。若用PV操作 控制n个进程使用打印机,则相应信号量s的取值范围为();若信号量s的值为-3,则系统中有()个进程等待使用打印机。

A.0,-1,…,-(n-1) B.3,2,1,0,-1,…,-(n-3)
C.1,0,-1,…,-(n-1) D.2,1,0,-1,…,-(n-2)

A.0 B.1 C.2 D.3

答案:B D

例题3

答案:D B

解析: 由图可知 此时剩余资源量为 2、0、1 。 因此 第一个执行的应该为P5 ,P5 执行之后资源量为3、1、1

因此根据图 下个可执行为P2。

线程

​ 传统的进程有两个属性:可拥有资源的独立单位;可独立调度和分配的基本单位。

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

​ 线程是进程中的一个实体,是被系统独立分配和调度的基本单位。线程基本上不拥有资源,只拥有一点运行中必不可少的资源(如程序计数器、一组寄存器和栈),它可与同属一个进程的其他线程共享进程所拥有的全部资源,例如进程的公共数据、全局变量、代码、文件等资源,但不能共享线程独有的资源如线程的栈指针等标识数据。

存储管理

​ 存储器的结构:寄存器–高速缓存Cache–主存–外存。

​ 地址重定位:将逻辑地址转换为实际主存物理地址的过程,分为静态重定位(在程序装入主存时就完成了转换)、动态重定位(边运行边转换)。

分区存储管理

​ 所谓分区存储组织,就是整存,将某进程运行所需的内存整体一起分配给它,然后再执行。有三种分区方式:

  • 固定分区:静态分区方法,将主存分为若干个固定的分区,将要运行的作业装配进去,由于分区固定,大小和作业需要的大小不同,会产生内部碎片。

  • 可变分区:动态分区方法,主存空间的分区是在作业转入时划分,正好划分为作业需要的大小这样就不存在内部碎片,但容易将整片主存空间切割成许多块,会产生外部碎片。可变分区的算法如下:

    ​ 系统分配内存的算法有很多,如下图所示,根据分配前的内存情况,还需要分配9K空间,对不同算法的结果介绍如下:

    • 首次适应法:按内存地址顺序从头查找,找到第一个>=9K空间的空闲块,即切割9K空间分配给进程。

    • 最佳适应法:将内存中所有空闲内存块按从小到大排序,找到第一个>=9K空间的空闲块,切割分配,这个将会找到与9K空间大小最相近的空闲块。

    • 最差适应法:和最佳适应法相反,将内存中空闲块空间最大的,切割9K空间分配给进程,这是为了预防系统中产生过多的细小空闲块。

    • 循环首次适应法:按内存地址顺序查找,找到第一个>=9K空间的空闲块,而后若还需分配,则找下一个,不用每次都从头查找,这是与首次适应法不同的地方。

      在这里插入图片描述

  • 可重定位分区:可以解决碎片问题,移动所有已经分配好的区域,使其成为一个连续的区域,这样其他外部细小的分区碎片可以合并为大的分区,满足作业要求。只在外部作业请求空间得不到满足时进行。

分页存储管理

​ 如果采用分区存储,都是整存,会出现一个问题,即当进程运行所需的内存大于系统内存时,就无法将整个进程一起调入内存,因此无法运行,若要解决此问题,就要采用段页式存储组织,页式存储是基于可变分区而提出的。

​ 如下图所示,逻辑页分为页号和页内地址,页内地址就是物理偏移地址,而页号与物理块号并非按序对应的,需要查询页表,才能得知页号对应的物理块号,再用物理块号加上偏移地址才得出了真正运行时的物理地址。

在这里插入图片描述

在这里插入图片描述

​ 优点:利用率高,碎片小,分配及管理简单

​ 缺点:增加了系统开销,可能产生抖动现象

地址表示和转换

  • 地址组成:页地址+页内偏移地址;(页地址在高位,页内偏移地址在低位)
  • 物理地址:物理块号+页内偏移地址;
  • 逻辑地址:页号+页内偏移地址;

​ 物理地址和逻辑地址的页内偏移地址是一样的,只需要求出页号和物理块号之间的对应关系,首先需要求出页号的位数,得出页号,再去页表里查询其对应的物理块号,使用此物理块号和页内偏移地址组合,就能得到物理地址。

页面置换算法
有时候,进程空间分为100个页面,而系统内存只有10个物理块,无法全部满足分配,就需要将马上要执行的页面先分配进去,而后根据算法进行淘汰,使100 个页面能够按执行顺序调入物理块中执行完。
缺页表示需要执行的页不在内存物理块中,需要从外部调入内存,会增加执行时间,因此,缺页数越多,系统效率越低。页面置换算法如下:

  • 最优算法:OPT,理论上的算法,无法实现,是在进程执行完后进行的最佳效率计算,用来让其他算法比较差距。原理是选择未来最长时间内不被访问的页面置换,这样可以保证未来执行的都是马上要访问的。
  • 先进先出算法:FIFO,先调入内存的页先被置换淘汰,会产生抖动现象,即分配的页数越多,缺页率可能越多(即效率越低)
  • 最近最少使用:LRU,在最近的过去,进程执行过程中,过去最少使用的页面被置换淘汰,根据局部性原理,这种方式效率高,且不会产生抖动现象,使用大量计数器,但是没有LFU多。淘汰原则:优先淘汰最近未访问的,而后淘汰最近未被修改的页面。

快表
是一块小容量的相联存储器,由快速存储器组成,按内容访问,速度快,并且可以从硬件上保证按内容并行查找,一般用来存放当前访问最频繁的少数活动页面的页号
快表是将页表存于Cache中;慢表是将页表存于内存上。慢表需要访问两次内存才能取出页,而快表是访问一次 Cache 和一次内存,因此更快。

例题

例题1

在这里插入图片描述

答案:B

解析:页面大小为4K,则页内偏移地址为12位,才能表示4K大小空间;由此,偏移地址为12位,可知逻辑地址1D16H的低12位D16H为偏移地址,高4位1为逻辑页号,在页表中对应物理块号3,因此物理地址为3D16H。

例题2

在这里插入图片描述

答案: D
解析:根据局部性原理,应该优先淘汰最近未被访问过的,而后淘汰最近未被修改过的,由页表可知,023最近都被访问过,而只有3最近未被修改过,应该淘汰3。然而其实这种题目,就算不知道上述原理,也能做出,答案只有一个,肯定是与其他不同的,具有唯一性的一个,在023中,02的访问位和修改位一样,只有3不同,答案就是3.

段式存储管理

​ 将进程空间分为一个个段,每段也有段号和段内地址,与页式存储不同的是,每段物理大小不同,分段是根据逻辑整体分段的,因此,段表也与页表的内容不同,页表中直接是逻辑页号对应物理块号,而下图所示,段表有段长和基址两个属性,才能确定一个逻辑段在物理段中的位置。

在这里插入图片描述

在这里插入图片描述

优点:多道程序共享内存,各段程序修改互不影响

缺点:内存利用率低,内存碎片浪费大。

​ 综上:分页是根据物理空间划分,每页大小相同;分段是根据逻辑空间划分,每段是一个完整的功能,便于共享,但是大小不同。
地址表示
(段号,段内偏移):其中段内偏移不能超过该段号对应的段长,否则越界错误,而此地址对应的真正内存地址应该是:段号对应的基地址+段内偏移。

例题

例题1

在这里插入图片描述

答案:B

解析:试题(46)的正确选项为B。因为0段的段长只有600,而逻地址(0,1597)中的1597已经越界,不能转换成逻辑地址,而选项A和选项C中都包含逻辑地址(0,1597)所以是错误的。又因为4段的段长只有960,而逻辑地址(4,1066)中的1066已经越界,也不能转换成逻辑地址,而选项D中包含逻辑地址(4,1066)所以是错误的。

段页式存储管理

​ 对进程空间先分段,后分页,具体原理图和优缺点如下

在这里插入图片描述

优点:空间浪费小、存储共享容易、存储保护容易、能动态链接。

缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度大大下降。

设备管理

​ 设备是计算机系统与外界交互的工具,具体负责计算机与外部的输入/输出工作,所以常称为外部设备(简称外设)。在计算机系统中,将负责管理设备和输入/输出的机构称为I/O系统。因此,I/O系统由设备、控制器、通道(具有通道的计算机系统)、总线和0软件组成。

设备的分类:

  • 按数据组织分类:块设备、字符设备
  • 按照设备功能分类:输入设备、输出设备、存储设备、网络联网设备、供电设备等等。
  • 资源分配角度分类:独占设备、共享设备和虚拟设备。
  • 数据传输速率分类:低速设备、中速设备、高速设备。

​ 设备管理的任务是保证在多道程序环境下,当多个进程竞争使用设备时,按一定的策略分配和管理各种设备,控制设备的各种操作,完成I/0设备与主存之间的数据交换。

​ 设备管理的主要功能动态地掌握并记录设备的状态、设备分配和释放、缓冲区管理、实现物理I/O 设备的操作、提供设备使用的用户接口及设备的访问和控制。

I/O软件

​ I/O 设备管理软件的所有层次及每一层功能如下图:

在这里插入图片描述

​ 实例:当用户程序试图读一个硬盘文件时,需要通过操作系统实现这一操作。与设备无关软件检查高速缓存中有无要读的数据块,若没有,则调用设备驱动程序,向I/O硬件发出一个请求。然后,用户进程阻塞并等待磁盘操作的完成。当磁盘操作完成时,硬件产生一个中断,转入中断处理程序。中断处理程序检查中断的原因,认识到这时磁盘读取操作已经完成,于是唤醒用户进程取回从磁盘读取的信息,从而结束此次I/O 请求。用户进程在得到了所需的硬盘文件内容之后,继续运行。

虚设备和 SPOOLING 技术

​ 一台实际的物理设备,例如打印机,在同一时间只能由一个进程使用,其他进程只能等待,且不知道什么时候打印机空闲,此时,极大的浪费了外设的工作效率。

​ 引入 SPOOLING(外围设备联机操作)技术,就是在外设上建立两个数据缓冲区,分别称为输入井和输出井,这样,无论多少进程,都可以共用这一台打印机,只需要将打印命令发出,数据就会排队存储在缓冲区中,打印机会自动按顺序打印,实现了物理外设的共享,使得每个进程都感觉在使用一个打印机,这就是物理设备的虚拟化。如下图所示:

在这里插入图片描述

例题

例题1:以下关于I/O软件的叙述中,正确的是()

A、I/O软件开放了I/O操作实现的细节,方便用户使用I/0设备

B、I/O软件隐藏了I/O操作实现的细节,向用户提供物理接口

C、I/O软件隐藏了I/O操作实现的细节,方便用户使用I/0设备

D、I/O软件开放了I/O操作实现的细节,用户可以使用逻辑地址访问I/O设备

答案:C

解析::I/O软件隐藏了底层复杂的实现细节,只提供接口供用户方便的使用。

文件管理

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

信息项是构成文件内容的基本单位,可以是一个字符,也可以是一个记录,记录可以等长,也可以不等长。一个文件包括文件体和文件说明。文件体是文件真实的内容。文件说明是操作系统为了管理文件所用到的信息,包括文件名、文件内部标识、文件的类型、文件存储地址、文件的长度、访问权限、建立时间和访问时间等。

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

文件的类型:

  • 按文件性质和用途可将文件分为系统文件、库文件和用户文件。
  • 按信息保存期限分类可将文件分为临时文件、档案文件和永久文件。
  • 按文件的保护方式分类可将文件分为只读文件、读/写文件、可执行文件和不保护文件。
  • UNIX 系统将文件分为普通文件、目录文件和设备文件(特殊文件)。

​ 文件的逻辑结构可分为两大类:一是有结构的记录式文件,它是由一个以上的记录构成的文件,故又称为记录式文件;二是无结构的流式文件,它是由一串顺序字符流构成的文件。

​ 文件的物理结构是指文件的内部组织形式,即文件在物理存储设备上的存放方法,包括:

  • 连续结构。连续结构也称顺序结构,它将逻辑上连续的文件信息(如记录)依次存放在连续编号的物理块上。只要知道文件的起始物理块号和文件的长度,就可以很方便地进行文件的存取。
  • 链接结构。链接结构也称串联结构,它是将逻辑上连续的文件信息(如记录)存放在不连续的物理块上,每个物理块设有一个指针指向下一个物理块。因此,只要知道文件的第一个物理块号,
    就可以按链指针查找整个文件。
  • 索引结构。在采用索引结构时,将逻辑上连续的文件信息(如记录)存放在不连续的物理块中,系统为每个文件建立一张索引表。索引表记录了文件信息所在的逻辑块号对应的物理块号,并将索引表的起始地址放在与文件对应的文件目录项中。
  • 多个物理块的索引表。索引表是在文件创建时由系统自动建立的,并与文件一起存放在同一文件卷上。根据一个文件大小的不同,其索引表占用物理块的个数不等,一般占一个或几个物理块。
索引文件结构

​ 如下图所示,系统中有13个索引节点,0**-9为直接索引,即每个索引节点存放的是内容**,假设每个物理盘大小为 4KB,共可存4KB * 10=10KB 数据;

​ 10号索引节点为一级间接索引节点,大小为4KB,存放的并非直接数据,而是链接到直接物理盘块的地址,假设每个地址占4B,则共有1024个地址,对应1024个物理盘,可存1024 * 4KB=4098KB数据。

二级索引节点类似,直接盘存放一级地址,一级地址再存放物理盘快地址,而后链接到存放数据的物理盘块,容量又扩大了一个数量级,为1024 * 1024 * 4KB数据。

在这里插入图片描述

例题

例题1

在这里插入图片描述

答案:C D

解析:依题意,有5个地址项为直接地址索引,所以直接地址索引涉及到的逻辑块号为:0-4。2个地址项为一级间接索引,每个一级间接索引结点对应的逻辑块个数为:1KB/4B=256个。所以一级间接索引涉及到的逻辑块号为:5-516。二级间接索引所对应的逻辑块号即为:517以上。可表示的单个文件长度,首先计算直接地址索引,就是5个数据块,为5KB,而后一级间接地址索引,可表示256个数据块,即256KB,二级间接地址索引可存储1KB/4B=256个一级间接地址索引,每个一级间接地址索引又可存储256KB,因此是256256KB,全部加起来共5+2562+256*256=66053。

文件目录

​ 文件控制块中包含以下三类信息:基本信息类、存取控制信息类和使用信息类

  • 基本信息类。例如文件名、文件的物理地址、文件长度和文件块数等。
  • 存取控制信息类。文件的存取权限,像 UNIX 用户分成文件主、同组用户和一般用户三类,这三类用户的读/写执行 RWX 权限。
  • 使用信息类。文件建立日期、最后一次修改日期、最后一次访问的日期、当前使用的信息(如打开文件的进程数、在文件上的等待队列)等。

​ 相对路径:是从当前路径开始的路径

​ 绝对路径:是从根目录开始的路径

​ 全文件名=绝对路径+文件名。要注意,绝对路径和相对路径是不加最后的文件名的,只是单纯的路径序列。

​ 树形结构主要是区分相对路径和绝对路径,如下图所示:

在这里插入图片描述

例题

例题1

在这里插入图片描述

答案:D B

文件存储空间管理

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

​ 文件存储空间的管理:

  • 空闲区表。将外存空间上的一个连续的未分配区域称为“空闲区”。操作系统为磁盘外存上的所有空闲区建立一张空闲表,每个表项对应一个空闲区,适用于连续文件结构。

在这里插入图片描述

  • 位示图。这种方法是在外存上建立一张位示图(Bitmap),记录文件存储器的使用情况。每一位对应文件存储器上的一个物理块,取值0和1分别表示空闲和占用。

在这里插入图片描述

  • 空闲块链。每个空闲物理块中有指向下一个空闲物理块的指针,所有空闲物理块构成一个链表,链表的头指针放在文件存储器的特定位置上(如管理块中),不需要磁盘分配表,节省空间。每次申请空闲物理块只需根据链表的头指针取出第一个空闲物理块,根据第一个空闲物理块的指针可找到第二个空闲物理块,依此类推。
  • 成组链接法。例如,在实现时系统将空闲块分成若干组,每100个空闲块为一组,每组的第一个空闲块登记了下一组空闲块的物理盘块号和空闲块总数。假如某个组的第一个空闲块号等于0,意味着该组是最后一组,无下一组空闲块。

例题

例题1:某文件管理系统采用位示图(bitmap)记录磁盘的使用情况。如果系统的字长为32位,磁盘物理块的大小为4MB,物理块依次编号为:0、1、2、位示图字依次编号为:0、1、2、…,那么16385号物理块的使用情况在位示图中的第(25)个字中描述:如果磁盘的容量为1000GB,那么位示图需要(26)个字来表示。

(25)A.-128 B.256 C. 512 D.1024

(26)A.1200 B.3200 C.6400 D.8000

答案:C D

解析:在位示图中,一个物理块占1个字中的1位,第16385占到16386位(从0编号)16386/32=512余数2,可知,其在513个字中描述,但因为从0开始编号,是第512个字;磁盘容量1000GB,共1000GB/4MB = 250 * 1024个物理块,需要250Kb表示,即250*1024bit/32bit=8000个字。

  • 19
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值