操作系统错题知识点1(不再更新)

操作系统错题知识点(不再更新)

 


第一章 操作系统概述

 

  1. 从用户的观点看,操作系统是 用户与计算机之间的接口
  2. 多道程序(multiprogramming)是作业之间自动调度执行、共享系统资源,并不是真正地同时执行多个作业;而多重处理(multiprocessing)系统配置多个CPU,能真正同时执行多道程序。要有效使用多重处理,必须采用 多道程序设计 技术,而 多道程序设计 原则上不一定要求多重处理系统的支持。多重处理系统比起单处理系统来说,虽增加了硬件设施,却换来了提高系统吞吐量、可靠性、 计算能力 和并行处理能力等好处。
  3. 批处理操作系统
  • 批处理(Batch Processing)操作系统的工作方式是:用户将作业交给系统操作员,系统操作员将许 多用户的作业组成一批作业 ,之后输入到计算机中,在系统中形成一个 自动转接的连续的作业流 ,然后启动操作系统,系统自动、依次执行每个作业。最后由操作员将作业结果交给用户。批处理操作系统的特点是:多道和成批处理。   
  1.  分时操作系统 
  • 分时(Time Sharing)操作系统的工作方式是:一台主机连 接了若干个终端 ,每个终端有一个用户在使用。用户 交互式地向系统提出命令请求 ,系统接受每个用户的命令,采用 时间片轮转 方式处理服务请求,并通过交互方式在终端上向用户显示结果。用户根据上步结果发出下道命令。 分时操作系统 将CPU的时间划分成若干个片段,称为时间片。操作系统以时间片为单位,轮流为每个终端用户服务。每个用户轮流使用一个时间片而使每个用户并不感到有别的用户存在。分时系统具有 多路性、交互性、“独占”性和及时性 的特征。多路性指, 同时有多个用户使用一台计算机宏观上看是多个人同时使用一个CPU微观上是多个人在不同时刻轮流使用CPU 。交互性是指,用户根据系统响应结果进一步提出新请求(用户直接干预每一步)。“独占”性是指,用户感觉不到计算机为其他人服务,就像整个系统为他所独占。及时性指,系统对用户提出的请求及时响应。它支持位于不同终端的多个用户同时使用一台计算机,彼此独立互不干扰,用户感到好像一台计算机全为他所用。   常见的通用操作系统是分时系统与批处理系统的结合。
  • 其原则是: 分时优先,批处理在后 。“前台”响应需频繁交互的作业,如终端的要求;   “后台”处理时间性要求不强的作业。
  1. 实时操作系统
  • 实时操作系统(RealTimeOperatingSystem,RTOS)是指使计算机能及时响应外部事件的请求在规定的严格时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致地工作的操作系统。实时操作系统要追求的目标是:对外部请求在 严格时间范围内做 出反应,有高可靠性完整性。其主要特点是资源的分配和调度首先要考虑实时性然后才是效率。此外,实时操作系统应有较强的容错能力
  1. 网络操作系统
  • 网络操作系统是基于 计算机网络 的,是在各种 计算机操作系统上按网络体系结构协议标准开发的软件,包括网络管理、通信、安全、资源共享和各种网络应用。其目标是 相互通信及资源共享 。在其支持下,网络中的各台计算机能互相通信和共享资源。其主要特点是与网络的硬件相结合来完成网络的通信任务。   
  1. 分布式操作系统
  • 它是为分布计算系统配置的操作系统。大量的计算机通过 网络被连结在一起 ,可以获得极高的运算能力及广泛的数据共享。这种系统被称作分布式系统(DistributedSystem) 。它在资源管理,通信控制和操作系统的结构等方面都与其他操作系统有较大的区别。由于分布计算机系统的资源分布于系统的不同计算机上,操作系统对用户的资源需求不能像一般的操作系统那样等待有资源时直接分配的简单做法而是要在系统的各台计算机上搜索,找到所需资源后才可进行分配。对于有些资源,如具有多个副本的文件,还必须考虑一致性。所谓 一致性是指若干个用户对同一个文件所同时读出的数据是一致的 。为了保证一致性,操作系统须控制文件的读、写、操作,使得多个用户可同时读一个文件,而任一时刻最多只能有一个用户在修改文件。分布操作系统的通信功能类似于网络操作系统。由于分布计算机系统不像网络分布得很广,同时分布操作系统还要支持并行处理,因此它提供的通信机制和网络操作系统提供的有所不同,它要求通信速度高。分布操作系统的结构也不同于其他操作系统,它分布于系统的各台计算机上,能并行地处理用户的各种需求,有较强的容错能力。  进程调度是由软件实现的,不需要硬件的直接支持。
  1. 批处理系统的目的是提高系统吞吐量和资源的利用率,其缺点是 无 交互性
  2. 批处理系统特点:
  • 优点:资源利用率高,系统吞吐量(系统在单位时间内所完成的总工作量)大。
  • 缺点:平均周转时间(从作业进入系统开始,直至作业完成并退出系统为止所经历的时间)长,且无交互能力(用户一旦将作业提交给系统,直至作业完成,用户都不能作业进行交互,这对修改与调试程序均是不方便的)。
  1. 分时系统特点:人机交互:能够边运行边修改;共享主机:当使用计算机时感觉是自己独占主机,不仅能够随时与计算机进行交互,并且感觉不到其他用户也在使用该计算机。
  2. 时间换空间 ,请求分页、请求分段、请求段页式,这些都是让访问时间增加了,但是扩充了主存的逻辑容量,使得大于主存容量的程序也可以得到执行。
  3. 空间换时间,各类的缓冲区、缓冲池都是的,本来需要在速度很慢的设备上I/O的,但是自从划分了些存储区域做缓冲,那么就可以减少访问时间啊。再如UNIX的文件系统中的超级块被放在内存中,减少访问时间。
  4. SPOOLing技术是在通道技术和多道 程序设计基础 上产生的,它由 主机 和相应的通道共同承担作业的输入输出工作,利用磁盘作为后援 存储器 ,实现 外围设备 同时联机操作。
  5. 覆盖:把一个程序划分为一系列功能相对独立的程序段,让执行时不要求同时装入内存的程序段组成一组(称为覆盖段) ,共享主存的同一个区域,这种内存扩充技术就是覆盖。
  6. 对换:是指将暂时不用的某个进程及数据(首先是处于阻塞状态优先级最低的)部分(或全部)从内存移到到外存(备份区或对换区)中去,让出内存空间,同时将某个需要的进程调入到内存中,让其运行。
  7. 计算机系统是由 硬件 系统和 软件 系统两部分组成。
  8. 采用多道程序设计技术能充分发挥 CPU外设 并行工作的能力。
  9. 多道程序设计的特点是 多道宏观上并行微观上串行
  10. 操作系统向用户提供了两类借口,一类是 命令级接口 ,另一类是 程序级接口
  11. 操作系统是计算机系统中的一个 系统软件,他管理和控制着计算机系统中的 软件和硬件资源
  12. 与许多个用户以交互使用计算机的操作系统称为分时操作系统
  13. 与许多个用户将多个作业提交给计算机集中处理的操作系统称为 批处理操作系统
  14. 对系统的总体设计目标来说,批处理操作系统应注重提高计算机的效率,尽量增加系统的 平均吞吐量 ,分时操作系统应保证用户 所能忍受的响应时间 ;而实时操作系统则应在保证及时响应和处理有关事件的前提下,再考虑 系统资源的利用率
  15. 为了实现多道程序设计,计算机系统在硬件方面必须提供两种支持,它们是 中断通道
  16. 批处理系统的基本特征是“批量”, 它把提高 作业的吞吐量 作为主要设计目标,同时也兼顾作业的 周转时间
  17. 单道批处理系统是在解决 人机矛盾CPU与I/O设备 的矛盾中发展起来的。
  18. 为了解决人机矛盾及CPU和I/O设备之间速度不匹配的矛盾,出现了批处理系统。它按发展历程又分为单道批处理系统、多道批处理系统(多道程序设计技术出现以后)。
  19. 操作系统的基本功能包括处理器管理、存储器管理、设备管理和文件管理。除此之外还为用户使用操作系统提供了用户接口。
  20. 通用操作系统:具有多种类型操作特征的操作系统。可以同时兼有多道批处理、分时、实时处理的功能,或其中两种以上的功能。
  21. 在分时和批处理系统结合的操作系统中引入“前台”和“后台”作业的概念,其目,的是为了提高CPU的利用率。
  22. 分时操作系统的主要特征有三个 多路性、交互性、独占性。
  23. 分时操作性痛和实时操作系统的主要区别是 及时性和高可靠性
  24. 于程序和数据都在 外围机的控制下 完成,或者说,他们在脱离主机的情况下进行的,故此称为脱机输入/输出 ,反之,在 主机的直接控制下 进行的输入/输出的方式称为联机输入/输出方式
  25.  并发和共享 是操作系统的两个最基本的特征,两者互为存在条件。
  26. 一般系统的性能指标有:
  • 1、响应时间(系统为其服务所耗费的时间)。
  • 2、 吞吐率 (简单讲就是系统在每单位时间内能处理多少个事务/请求/单位数据等)。
  • 3、 资源利用率 (常见的资源有:CPU占用率、内存使用率、磁盘I/O、网络I/O)。
  • 4、点击数(单位时间内,系统响应客户的请求,是系统处理能力的一个很有用的指标)。
  • 5、并发用户数(并发用户数用来度量服务器并发容量和同步协调能力)。  

————————

第2章 进程管理

 

  1. 优先权的分类:
  2. 静态优先权
  • 静态优先权是在创建进程时确定的,且在进程的整个运行期间保持不变.
  • 一般地,优先权是利用某一范围内的一个整数来表示的,例如,07或0255中的某一整数, 又把该整数称为优先数.只是具体用法各异:有的系统用”0”表示最高优先权,当数值愈大时,其优先权愈低;而有的系统恰恰相反.
  • 确定进程优先权的依据有如下三个方面:
    • (1)进程类型.(系统进程/用户进程)
    • (2) 进程对资源的需求.(需求量的大小)
    • (3) 用户要求.(用户进程紧迫程度)
  1.  动态优先
  • 动态优先权是指在创建进程时所赋予的优先权,可以随进程的推进或随其等待时间的增加而改变的,以便获得更好的调度性能.
  • 例如,我们可以规定,在就绪队列中的进程,随其等待时间的增长,其优先权以速率a提高.若所有的进程都具有相同的优先权初值,则显然是最先进入就绪队列的进程,将因其动态优先权变得最高而优先获得处理机,此即FCFS算法.
  • 优先权的变化规律可描述为:
  • 由于等待时间与服务时间之和,就是系统对该作业的响应时间,故该优先权又相当于响应比RP.
  1. 抢占式和非抢占式
  • 非抢占式优先权算法
    • 在这种方式下,系统一旦把处理机分配给就绪队列中优先权最高的进程后,该进程便一直执行下去,直至完成;或因发生某事件使该进程放弃处理机时,系统方可再将处理机重新分配给另一优先权最高的进程。这种调度算法主要用于批处理系统中;也可用于某些对实时性要求不严的实时系统中。
  • 抢占式优先权调度算法
    • 在这种方式下,系统同样是把处理机分配给优先权最高的进程,使之执行。但在其执行期间,只要又出现了另一个其优先权更高的进程,进程调度程序就立即停止当前进程(原优先权最高的进程)的执行,重新将处理机分配给新到的优先权最高的进程。因此,在采用这种调度算法时,是每当系统中出现一个新的就绪进程i 时,就将其优先权Pi与正在执行的进程j 的优先权Pj进行比较。如果Pi≤Pj,原进程Pj便继续执行;但如果是Pi>Pj,则立即停止Pj的执行,做进程切换,使i 进程投入执行。显然,这种抢占式的优先权调度算法能更好地满足紧迫作业的要求,故而常用于要求比较严格的实时系统中,以及对性能要求较高的批处理和分时系统中。
  • 非抢占式(Nonpreemptive):让进程运行直到结束或阻塞的调度方式   容易实现   适合专用系统,不适合通用系统   
  • 抢占式(Preemptive):允许将逻辑上可继续运行的在运行过程暂停的调度方式   可防止单一进程长时间独占CPU   系统开销大(降低途径:硬件实现 进程切换 ,或扩充主存以贮存大部分程序)
  1. 三态模型:在多道程序系统中,进程在处理器上交替运行,状态也不断地发生变化。进程一般有3种基本状态:运行、就绪和阻塞。
  • 运行:当一个进程在处理机上运行时,则称该进程处于运行状态。处于此状态的进程的数目小于等于处理器的数目,对于单处理机系统,处于运行状态的进程只有一个。在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。
  • 就绪:当一个进程获得了除处理机以外的一切所需资源, 一旦得到处理机即可运行 ,则称此进程处于就绪状态。就绪进程可以按多个优先级来划分队列。例如,当一个进程由于时间片用完而进入就绪状态时,排入低优先级队列;当进程由I/O操作完成而进入就绪状态时,排入高优先级队列。
  • 阻塞:也称为等待或睡眠状态,一个进程正在等待某一事件发生(例如请求I/O而等待I/O完成等)而暂时停止运行,这时即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态。

 

  • 活跃就是在内存中,静止就是在磁盘中。
  • 活跃就绪:是指进程在主存并且可被调度的状态。
  •  静止就绪(挂起就绪):是指进程被对换到辅存时的就绪状态,是不能被直接调度的状态,只有当主存中没有活跃就绪态进程,或者是挂起就绪态进程具有更高的优先级,系统将把挂起就绪态进程调回主存并转换为活跃就绪。
  • 活跃阻塞:是指进程已在主存,一旦等待的事件产生便进入活跃就绪状态。
  • 静止阻塞:是指进程对换到辅存时的阻塞状态,一旦等待的事件产生便进入静止就绪状态。
  1. 非剥夺进程调度:分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生 进程调度某事件而阻塞时,才把处理机分配给另一个进程。
  • 剥夺式进程调度:当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理机,将之分配给其它进程。
  1. 每个进程中 访问临界资源 的那段程序称为临界区
  2. 整型信号量(integer semaphore):信号量是整数

记录型信号量(record semaphore):每个信号量s除一个整数值s.value(计数)外,还有一个进程 等待队列 s.L,其中是阻塞在该信号量的各个进程的标识

二进制信号量(binary semaphore):只允许信号量取0或1值

  1. 互斥访问中,每类资源的信号量初值设置为1;

条件同步中,信号量初值设为0;

  1. 响应比=作业周转时间/作业执行时间
  2. 题型:已知作业的到达时间和运行时间,按照高响应比优先算法,对作业的执行次序进行排序。
  3. 在消息缓冲通信中, 消息队列 属于临界资源,在消息缓冲区操作的前后,都要执行P、V操作,对该队列进行互斥访问控制。
  4. 批处理系统常用调度算法:

①、先来先服务: FCFS

②、最短作业优先

③、最短剩余时间优先

④、响应比最高者优先

分时系统调度算法:

①、轮转调度

②、优先级调度

③、多级队列调度

④、彩票调度

实时系统调度算法:

①、单比率调度:在实时系统中,事件是周期性发生的,单比率调度是视周期长度而定的抢占式策略,周期越短,优先级越高。

②、限期调度:当一个事件发生时,对应的实时进程/线程就被加入就绪队列,此队列按照截止期限排序,对于周期性事件,截止期限即为事件下一次发生的时间。

③、最少裕度法:先计算各个进程/线程的富裕时间,即裕度,然后选择裕度最少者执行。计算公式为:裕度=截止时间-(就绪时间+计算时间);裕度越小说明进程/线程越紧迫,就绪后令其尽快运行。

  1. 剥夺式(抢占式)调度轮转调度算法(RR),最短剩余时间有限算法(SRTF)。
  2. 1、对I/O型进程,让其进入最高优先级队列,以及时响应需要I/O 交互的进程。通常执行一个小的时间片,在该时间片内要求可处理完一次I/O请求的数据,然后转入到阻塞队列。

2、对计算型进程,每次执行完时间片后进入更低级队列。最终采用最大时间片来执行。

I/O型进程优先级高于计算型进程。

  1. 进程在运行过程中,请求和释放资源的顺序不当( 进程推进顺序不当 ),导致了 进程死锁
  2. 产生死锁的原因主要是:

(1) 因为系统资源不足。

(2) 进程运行推进的顺序不合适。

(3) 资源分配不当等。

  1. 死锁的四个必要条件:1)互斥条件 2)占有和等待条件 2)不可抢占条件 4)环路等待条件(循环等待)

死锁的处理方法:

死锁预防:破坏四个条件;有序资源分配法可以破坏循环等待的条件;静态分配资源可以打破“占有和等待条件”

死锁避免:分配资源前先判断是否会出现死锁;包括 银行家算法

死锁检测;

死锁恢复:进程终止;进程回退;资源抢占剥夺;

  1. 有序资源分配:这种算法资源按某种规则系统中的所有资源统一编号,申请时必须以上升的次序。系统要求申请进程:

  1、对它所必须使用的而且属于同一类的所有资源,必须一次申请完;

  2、在申请不同类资源时,必须按各类设备的编号依次申请。

银行家算法:该算法需要检查申请者对资源的最大需求量,如果系统现存的各类资源可以满足申请者的请求,就满足申请者的请求。

  这样申请者就可很快完成其计算,然后释放它占用的资源,从而保证了系统中的所有进程都能完成,所以可避免死锁的发生。

  1. 进程同步:在多道程序环境下,进程是并发执行的,不同进程之间存在着不同的相互制约关系。
  2. 进程控制块包含的信息:

1.程序ID(PID、进程句柄):它是唯一的,一个进程都必须对应一个PID。PID一般是整型数字

2.特征信息:一般分系统进程、用户进程、或者内核进程等

3.进程状态 :运行、就绪、阻塞,表示进程现的运行情况

4.优先级:表示获得CPU控制权的优先级大小

5.通信信息:进程之间的通信关系的反映,由于 操作系统 会提供 通信信道

6.现场保护区:保护阻塞的进程用

7.资源需求、分配 控制信息

8.进程实体信息,指明程序路径和名称,进程数据在物理内存还是在 交换分区 (分页)中

9.其他信息:工作单位,工作区,文件信息等

  1. 进程控制块包含的信息:

1.标识信息。

用于唯一地标识一个进程,常常分由用户使用的外部标识符和被系统使用的内部标识号。几乎所有操作系统中进程都被赋予一个唯一的、内部使用的数值型的进程号,操作系统的其他控制表可以通过进程号来交叉引用进程控制表。常用的标识信息包括进程标识符、父进程的标识符、用户进程名、用户组名等。

2.现场信息。

用于保留一个进程在运行时存放在处理器现场中的各种信息,任何一个进程在让出处理器时必须把此时的处理器现场信息保存到进程控制块中,而当该进程重新恢复运行时也应恢复处理器现场。常用的现场信息包括通用寄存器的内容、控制寄存器(如PSW寄存器)的内容、用户堆战指针、系统堆饺指针等。 

3.控制信息。

用于管理和调度一个进程。常用的控制信息包括:

l)进程的调度相关信息,如进程状态、等待事件和等待原因、进程优先级、队列指引元等;

2)进程组成信息,如正文段指针、数据段指针;

3)引进程间通信相关信息,如消息队列指针、信号量等互斥和同步机制;

4)进程在辅存储器内的地址;

5)CPU资源的占用和使用信息,如时间片余量、进程己占用CPU的时间、进程己执行的时间总和,记账信息;

6)进程特权信息,如在内存访问和处理器状态方面的特权;

  1. 进程主要由数据段、程序段和PCB三部分内容组成。
  2. 进程的基本特征有 动态性、并发性、独立性、异步性及结构性。

1 动态性:进程是程序的一次执行,它有着创建、活动、暂停、终止等过程,具有一定的生命周期,是动态地产生、变化和消亡的。动态性是进程最基本的特征。

2 并发性:指多个进程实体,同存于内存中,能在一段时间内同时运行,并发性是进程的重要特征,同时也是操作系统的重要特征。引入进程的目的就是为了使程序能与其他进程的程序并发执行,以提高资源利用率。

3 独立性:指进程实体是一个能独立运行、独立获得资源和独立接受调度的基本单位。凡未建立PCB的程序都不能作为一个独立的单位参与运行。

4 异步性:由于进程的相互制约,使进程具有执行的间断性,即进程按各自独立的、 不可预知的速度向前推进。异步性会导致执行结果的不可再现性,为此,在操作系统中必须配置相应的进程同步机制。

5 结构性:每个进程都配置一个PCB对其进行描述。从结构上看,进程实体是由程序段、数据段和进程控制段三部分组成的。

  1. 进程是一个 独立运行 的基本单位,也是一个 资源分配CPU调度 的基本单位。
  2. 进程的队列组织通常采用 链接索引 的形式。
  3. 临界资源的概念是“ 一次仅允许一个进程访问的资源 ”,而临界区是指 进程中访问临界资源的那段程序代码
  4. 对每个资源类只有一个资源的死锁检测程序根据“ 资源分配表 ”和“ 进程等待表 ”,判别是否出现死锁。
  5. 用于实现互斥的同步机制必须遵循(临界区的访问规则):

空闲则入;

忙则等待;

有限等待;

让权等待;

  1. 为实现基于消息缓冲队列的进程通信,在进程控制块中应增加 消息队列指针、消息队列的互斥信号量、消息队列的资源信号量。
  2. 进程通信使用的信箱逻辑上分成 信箱头信箱体 两部分 。
  3. 用户和操作系统之间的接口主要分成 命令接口系统功能调用两 类。
  4. 根据作业的方式不同,命令接口又分为 联机命令接口脱节命令接口
  5. 处理机调度分为四级: 作业调度 ,交换调度, 进程调度 , 线程调度 。

作业调度:又称宏观调度,或 高级调度 。作业调度的主要功能是根据 作业控制块 中的信息,审查系统能否满足用户作业的资源需求,以及按照一定的算法,从外存的后备队列中选取某些作业调入内存,并为它们创建进程、分配必要的资源。然后再将新创建的 进程插入 就绪 队列 ,准备执行。

交换调度:又称 中级调度  。其主要任务是按照给定的原则和策略,将处于外存交换区中的 就绪状态 或等待状态或内存等待状态的进程交换到外存交换区。交换调度主要涉及到内存管理与扩充。因此在有些书本中也把它归入内存管理部分。

进程调度:又称微观调度或 低级调度 。其主要任务是按照某种策略和方法选取一个处于就绪状态的进程占用处理机。在确立了占用处理机之后,系统必须进行 进程上下文 切换以建立与占用处理机进程相适应的执行环境。

线程调度:进程中相关堆栈和控制表等的调度。

  1. 剥夺原则:时间片原则、优先权原则、短进程优先原则。
  2. 确定优先权的方法概括起来不外乎是基于 静态特性动态特性 两种方法。前者所得到的是静态优先权,后者所得到的是动态优先权。
  3. 死锁产生的原因:

(1) 竞争资源

(2) 进程推进顺序非法

产生死锁的四个必要条件:

(1) 互斥条件:一个资源每次只能被一个进程使用。

(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。

(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。

(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。

  1. 化简资源分配图:

方法步骤:

  • 第一步:先看系统还剩下多少资源没分配,再看有哪些进程是不阻塞(“不阻塞”即:系统有足够的空闲资源分配给它)的
  • 第二步:把不阻塞的进程的所有边都去掉,形成一个孤立的点,再把系统分配给这个进程的资源回收回来
  • 第三步:看剩下的进程有哪些是不阻塞的,然后又把它们逐个变成孤立的点。
  • 第四步:最后,所有的资源和进程都变成孤立的点。这样的图就叫做“可完全简化”。

如果一个图可完全简化,则不会产生死锁;如果一个图不可完全简化(即:图中还有“边”存在),则会产生死锁。这就是”死锁定理”。

————————

第三章 内存管理

 

 

  1. 单一连续分区:采用这种管理方案时,内存被分成两个区域,一个是系统区域,仅供操作系统使用,可以驻留在内存的低地址部分,也可以驻留在高地址部分(通常设置在内存的低端);另一个是用户区,它是除系统区以外的全部内存区域,这部分区域是提供给用户使用的区域,任何时刻  主存储器 中最多只有一个作业。所以,单一连续区存储管理只适用于单用户的情况。

固定分区:又称定长分区或静态分区模式,是满足多道程序设计需要的最简单的存储管理技术。基本思想:给进入主存的用户作业划分一块连续存储区域,把作业装入该连续存储区域,若有多个作业装入主存,则它们可并发执行。

可变分区:可变分区存储管理不是预先把内存中的用户区域划分成若干固定 分区,而是在作业要求装入内存时,根据用户作业的大小和当时内存空间使用情况决定是否为该作业分配一个分区。因此 分区大小不是预先固定的,而是按作业需求量来划分的 ;分区的个数和位置也不是预先确定的。它有效地克服了固定分区方式中,由于分区内部剩余内存空置造成浪费的问题。

  1. 交换技术主要是在不同进程之间进行,而覆盖则用于同一程序或进程中。
  2. 内部碎片问题:单一连续分配、固定分区分配

外部碎片问题:动态分区分配(可变是分区管理)

分页管理不会产生外部碎片,内部碎片也很小。

  1. 可重入代码(Reentry code)也叫纯代码(Pure code)是一种允许多个进程同时访问的代码。为了使各进程所执行的代码完全相同,故不允许任何进程对其进行修改。程序在运行过程中可以被打断,并由开始处再次执行,并且在合理的范围内(多次重入,而不造成堆栈溢出等其他问题),程序可以在被打断处继续执行,且执行结果不受影响。
  2. 请求分页系统是建立在基本分页的基础上的,为了能支持虚拟存储器功能而增加了请求调页功能和页面置换功能。
  3. 静态重定位:是在目标程序装入内存时,由装入程序对目标程序中的指令和数据的地址进行修改,即把程序的逻辑地址都改成实际的地址。对每个程序来说,这种地址变换只是在装入时一次完成,在程序运行期间不再进行重定位。 

优点:是无需增加硬件地址转换机构,便于实现程序的静态连接。在早期计算机系统中大多采用这种方案。 

缺点(:1)程序的存储空间只能是连续的一片区域,而且在重定位之后就不能再移动。这不利于内存空间的有效使用。(2)各个用户进程很难共享内存中的同一程序的副本。

动态重定位:是在程序执行期间每次访问内存之前进行重定位。这种变换是靠硬件地址变换机构实现的。通常采用一个重定位寄存器,其中放有当前正在执行的程序在内存空间中的起始地址,而地址空间中的代码在装入过程中不发生变化。

优点:(1)程序占用的内存空间动态可变,不必连续存放在一处。(2)比较容易实现几个进程对同一程序副本的共享使用。 

缺点:是需要附加的硬件支持,增加了机器成本,而且实现存储管理的软件算法比较复杂。 

现在一般计算机系统中都采用动态重定位方法。

  1. 地址映射一定要有硬件地址转换机制做支持。
  2. 内存保护单元(MPU)是ARM中配备的有效保护系统资源硬件的一种,提供了内存区域保护功能
  3. 地址映射:为了保证CPU执行指令时可正确访问存储单元,需将用户程序中的 逻辑地址 转换为运行时由机器直接寻址的 物理地址 ,这一过程称为地址映射。

重定位的结果还是 逻辑地址 。

  1. 在分段式存储管理中用做存储保护的首先是段表长度。系统首先将段号与段表长度进行比较,如果段号大于等于段寄存器中的段表长度,则访问越界,产生越界中断。
  2. 在请求页式管理中,页面置换算法常用的是 先进先出最近最久未使用
  3. 段表表目的主要内容包括:段号、段在内存中的起始地址、段长度。
  4. 页表表目的主要内容包括:页号、块号。
  5. 静态重定位在程序装入内存时进行,动态重定位在程序运行时进行。
  6. 动态页式系统中的页表项比静态页式中页表项增加了存在位、修改位和外存地址,决定淘汰也是否写回外存的页表项中的依据是修改位

————————

第四章 文件管理

 

  1. 隐式链接指针在磁盘上,每一次都要读取磁盘。显示链接将磁盘上文件的链式结构用内存的一张 FAT 表去描述,查找时可以在内存中进行。定位后再读磁盘。速度比隐式快很多。
  2. 文件的逻辑结构(组织方式):

顺序文件:所有记录具有相同长度,并且由相同数目、长度固定的域按照特定的顺序组成(记录按关键字排序)。

*优点:通常用于批处理文件,即每次读或写一大批记录,顺序文件是最佳的;只有顺序文件才能存储在磁带上。

*缺点:对于查询或更新记录的交互式应用,顺序文件性能很差(在访问时,为了匹配关键字,需要顺序查找文件);增加或删除一个记录比较困难。

 

索引文件:对主文件的每个记录(可以是变长的记录),索引表中设有一个相应的表项,用于记录该记录的长度L及指向该记录的指针。由于索引表本身是一个定长记录的顺序文件,从而可以方便的实现直接存取。

检索过程:首先根据用户提供的关键字,并利用折半查找法去检索索引表,从中找到相应的表项;再利用该表项中给出的指向记录的指针值,去访问所需的记录。每当要向索引文件中增加一个新记录时,便需对索引表进行修改。

*优点:索引表具有较快的检索速度,因此主要用于对信息处理的及时性要求较高的场合。

*缺点:存储成本大。除了主文件,还需配置一张索引表,而且每个记录都要有一个索引项。

 

索引顺序文件:是顺序文件和索引文件相结合的产物,最常见的一种逻辑文件方式,克服了变长记录不便于直接存取的缺点,而且付出的代价也不算太大。

结构:将顺序文件所有记录分成若干个组;为顺序文件简历一张索引表,在索引表中为每组中的第一个记录建立一个索引项,其中含有该记录的键值和指向该记录的指针。

检索过程:首先利用用户提供的关键字以及查找算法去检索索引表,找到该记录所在记录组中第一个记录的表项,从中得到该记录组第一个记录在主文件中的位置;然后利用顺序查找法去查找主文件,从中得到所要求的记录。

 

④直接文件(Hash文件):可根据给定的记录键值,直接获得指定记录的物理地址。

特点:利用Hash函数,可将记录键值转换为相应记录的地址。通常由Hash函数所求得的并非是相应记录的地址,而是指向一目录表相应表目的指针,该表目的内容指向相应记录所在的物理地址。

 

  1. 外存分配

常用的三种文件分配方式:连续分配方式、链接分配方式、索引分配方式。

连续分配方式:为每一个文件分配一组相邻接的盘块,一组盘快地址定义了磁盘上的一段线性地址。

优点:顺序访问容易、快。

缺点:要求有连续的存储空间,会产生许多外部碎片;必须实现知道文件的大小。

 

链接分配方式:通过在每个盘块上的链接指针,将同属于一个文件的多个离散的盘块链接成一个链表,把这样形成的物理文件称为链接文件。

优点:采用离散分配方式,消除了外部碎片,提高了外存空间利用率;无需知道文件的大小,可根据需要动态分配。

缺点:局部性原理不在使用;不支持高效的直接存取(必须顺序查找)。

 

索引分配:为每个文件分配一个索引块,再把分配给文件的所有盘块号都记录在该索引块中,因而索引块就是一个含有许多盘块号的数组。

优点:支持随机访问;不会产生外部碎片;当文件较大时,由于链接分配方式。

缺点:可能花费较多的外存空间,每建立一个文件时,便需为之分配一个索引块,将分配给该文件的所有盘块号记录于其中。

  1. 空闲空间管理:正如分配给文件的空间需要管理,当前还没有分配的空间也必须管理起来。

位示图法:使用一个向量,向量的每一位对应于磁盘中的每一块。0:表示空闲块,1:表示已使用块。

优点:很容易找到一个或一组连续的空闲块;位示图很小,占用空间少。常用语微型机或小型机中。

空闲表法(空闲文件目录):类似于连续分配方式,系统为外存上的所有空闲去建立一张空闲表,每个空闲区对应于一个空闲表项,其中包括表项序号、该空闲区的第一个盘块号、该区的空闲盘块信息。

空闲链表法(自由链表法):将所有空闲盘区拉成一条空闲链。根据构成链的基本元素不同分为:空闲盘块链和空闲盘块区。

成组链接法

空闲表法和空闲链表法都不适用于大型文件系统,因为这会使空闲表和空闲链表太长。在UNIX中采用的是成组链接法,结合上述两种方法而形成的一种空闲盘块管理方法。

  1. MS-DOS采用显式链接文件结构,将各个盘块的链接指针集中存放在盘的开始,构成一张FAT表。
  2. 计算物理结构:连续、链接、索引分配的访问外存的次数:

①连续:访问1次即可。

②隐式链接:访问n次。与磁盘块的位置n有关。(一般链接分配指的是隐式链接分配)

③直接地址索引(一级索引):需要2次访外存,一次读索引块,一次真正读数据。一般不使用一级索引这个名称,一般一级索引指的是一级间接索引。

k-1级间接地址索引(k级索引):需要k+1次访外存。

  1. 一个文件系统的逻辑分区不能管理大与物理硬盘的容量。
  2. 分区类型:

◆主分区:总共最多只能分四个。(每个硬盘最多只能划分为4个主分区,或者是3个主分区加上一个扩展分区,这是因为在硬盘的开头,也就是0磁头(head)、0柱(cyliner)、0面(side)、0磁道(track)、0扇区(sector)总共512字节存放着硬盘最重要的信息MBR(Master Boot Record,主引导记录)和分区的相关信息,由于记录空间只有那么大,所以也只能记录这4个分区的信息。分区表 partition table 用来记录整块硬盘分区的状态,且只有64bytes,最多只能容纳四个分区。 )

◆扩展分区:只能有一个(这是操作系统限制的,理论上来讲,一个扩展分区可以分成多个逻辑分区,因此不需要有多个扩展分区),也算作主分区的一种,也就是说主分区加扩展分区最多有四个。但是扩展分区不能存储数据和格式化,必须再划分成逻辑分区才能使用。

◆逻辑分区:逻辑分区是在扩展分区中划分的,如果是IDE硬盘,Linux最多支持59个逻辑分区,如果是SCSI硬盘Linux最多支持11个逻辑分区。

  1. 逻辑分区不能管理大于物理硬盘的容量。
  2. 当用户提出在某个路径或目录下建立文件时,系统首先检查在该目录下是否有相同名的文件,如没有的话则在磁盘目录某个路径或目录下中建立文件的目录项,一个文件控制块FCB就是一个文件目录项。
  3. 文件保护:常采用存取控制方式进行,不同的用户对文件的访问规定不同的权限,以防止文件未被文件拥有者授权的用户访问。
  4. 文件系统管理中,有三种常用的磁盘空闲块管理方法:索引法、空闲块链表链接法和位图法
  5. open系统调用操作根据文件名搜索牡蛎,找到该文件后,将该文件的文件控制信息(主要是目录项的信息:文件属性和磁盘地址表)读入到内存的打开文件表中,方便后续调用的快速访问。
  6. close命令关闭文件,将已修改的内存文件目录信息及时写回到磁盘目录中,并释放文件的内存目录表目空间供其他进程使用。
  7. 超级块:包含文件系统信息的数据结构。文件系统的控制信息、单独文件的信息这些都包含超级块中。超级块通常存放在特定的扇区中。
  8. 文件系统使用文件名进行管理,也实现了文件名到物理地址的转换。
  9. 多级目录结构中,对文件的访问通过路径名和文件名进行。
  10. 文件被划分的物理块的大小是固定的,通常和内存管理中的页面大小一致。
  11. 逻辑记录是文件中按信息在逻辑上的独立含义来划分的信息单位,它是对文件进行存取操作基本单位
  12. 系统级安全管理的主要任务是不允许未经核准的用户进入系统,从而也防止了他人非法使用系统中的各类资源。
  13. 索引文件的优点是既适合顺序存取有适合随机存取。
  14. 索引文件大体由索引区和数据区构成。其中索引区一般按关键字的顺序存放。
  15. 系统级安全管理的主要任务是防止未经核准的用户进入系统文件级安全管理的主要任务是控制用户对文件的访问
  16. 文件按照逻辑结构分为两种:一种是记录式文件,另一种为流式文件
  17. 用户组存取权限的集合称为该文件存取控制表
  18. 文件保护是指避免文件拥有者或者其他用户因有意或无意的错误操作使文件受到破坏。
  19. 文件的结构及存取方法:

文件的组织形式是文件的结构,从不同的角度分析文件有不同的结构形式:逻辑结构和物理结构。从用户角度出发,研究文件的抽象组织方式而定义的文件组织形式为文件的逻辑结构;从系统的角度出发,研究文件的物理组织方式而定义的文件组织形式为文件的物理结构。文件的逻辑结构独立于辅存,帮助用户分析信息之间的关系及含义;而物理结构主要关注文件信息的存储形式,帮助用户了解与存储设备相关知识。

  

1、文件的逻辑结构

 

   文件的逻辑结构可以分为无结构的字符流式文件和有结构的记录式文件。

   1)无结构的字符流式文件

无结构的字符流式文件是相关的有序字符的集合。文件长度即为所含字符数。流式文件不分成记录,而是直接由一连串信息组成。对于流式文件而言,它是按信息的个数或以特殊字符为界进行存取的。常见的采用这种结构的有源程序文件和可执行文件。

无结构的字符流式文件的优点主要是空间利用上比较节省,因为没有额外的说明(如记录长度)和控制信息等;但应当注意的是文件信息的检索问题,即采用的逻辑结构应方便系统查找所需信息,减少信息存储的变动。

   2)有结构的记录式文件

文件的信息划分为多个记录,用户以记录为单位组织信息。记录是具有特定意义的信息单位,它包含记录在文件中的相对位置、记录名、记录的属性等信息组成。记录式文件中,每一个记录都有一项信息,用来唯一标识相应的记录,将各个记录区分开来,我们称这个信息为主键。一个记录中的任一数据项或若干数据项的组合均可作为记录键,除主键外的其他键成为次键。

有结构的记录式文件就是按照一定的结构来组织记录信息,按照记录的不同组织形式,常见的记录式文件可以分为连续结构和顺序结构。

1)连续结构:按照记录生成的先后顺序连续排列。

2)顺序结构:设定一种顺序规则,以记录的键为索引对象,按照设定的顺序规则将记录顺序排列起来。

 

    逻辑上的文件信息最终都要按照一定存取方法存储到物理设备中,文件系统按照什么方式将文件信息存储到存储设备中,这要与文件的逻辑结构和存取内容及目的相关。

1)顺序存取:按照文件的逻辑地址依次顺序存取。

2)随机存取:用户按照记录的编号进行存取,也称为直接存取或立即存取。这种方式下,根据存取命令把读、写指令直接移动到读/写处进行操作。

3)按键存取:根据给定记录的键进行存取。给定键后,首先搜索该键在记录中的位置,然后进一步搜索包含该键的记录,在含有该键的所有记录中查找所需记录,当搜索到所需记录的逻辑位置后,再将其转换到相应的物理地址进行存取。

     

2、文件的物理结构

 

   文件的物理结构是指文件在辅助存储器上存储的结构形式,其和文件的存取方法有密切关系。文件物理结构的优劣,直接影响到文件系统系统的性能。

   为了有效地分配存储器的空间,通常把它们分成若干块,并以块为单位进行分配和传递,每一个块称为物理块,而块中的信息称为物理记录。物理块长通常是固定的,在磁盘上经常以512B至8KB为一块。文件在逻辑上可以看成是连续的,但在物理介质上存放时可以有多种形式。目前常用的文件物理结构有顺序结构文件、链接结构文件、索引文件、Hash文件。

   1)顺序结构文件

把逻辑文件的信息顺序地存储到连续的物理盘块中,这样形成的文件称为顺序文件。这种文件保证了逻辑文件中的记录顺序与存储器中文件占用盘块的顺序地一致性。

优点:

<1>管理简单:一旦知道文件存储的起始块号和文件块数,就可以立即找到所需的文件信息。

<2>顺序存取速度快:要获得一批相邻的记录时,其存取速度在所有文件物理结构中是最快的。

缺点:

<1>要求连续存储空间:如同内存的连续分配一样,可能形成许多存储空间的碎片。

<2>必须事先知道文件的长度,才能为该文件分配合适的连续存储空间。

   2)链接结构文件

链接结构的特点是使用指针(也称为链接字)来表示文件中各个记录之间的关联。在链接结构文件中,一个逻辑上连续的文件,可以存放在不连续的存储块中,每个块之间用单向链表链接起来。为了使系统能方便地找到逻辑上连续的下一块的物理位置,在每个物理块中设置一个指针,指向该文件的下一个物理块号,使得存放同一个文件的物理块链接成一个队列,该结构为链接文件。

优点: <1>不要求为文件分配连续的存储空间,一定程度上解决了空间碎片问题,提高了存储空间利用率因为采用链表的思想,文件中记录的增删工作比较容易实现

<2>因为采用链表的思想,文件中记录的增删工作比较容易实现

缺点:

<1>只适合于顺序存取,不便于直接存取,为了找到某个物理块的信息,必须从头开始,逐一查找每个物理块,直到找到为止,因此降低了查找速度。

<2>在每个物理块中都要设置一个指针,占去一定的存储空间

3)链接结构文件

索引文件是实现非连续存储的另一种办法,适用于数据记录保存在随机存取存储设备上的文件。这种结构的组织方式要求为每一个文件建立一张索引表,其中每个表目指出文件逻辑记录所在的物理块号,索引表指针由FCB给出。

当文件很大时,索引表也将很大,需要占用多个盘块。管理多个盘块的索引表有两种方法:一是将存放索引表的盘块用指针链接起来,称为链接索引。链接索引需要顺序地读取索引表各索引表项。因此,与链接文件相似,读取后面的索引表项需进行多次磁盘I/O操作;另一种是采用多级索引,即为多个索引表再建立一个索引表(称为主索引表),形成二级索引。如果二级索引的主索引表仍然不能存放在一个盘块中,就需要三级索引。

优点:

是链接结构的一种扩展,具有链接结构的优点,还克服了只能作顺序存取的缺点,具有直接读写任意一个记录的能力,便于文件的增加和删除,可以方便地进行随机存取。

 

缺点:

<1>增加了索引表的空间开销和查找时间,索引表的信息量甚至可能远远超过文件记录本身的信息量。

<2>在存取文件时首先查找索引表,增加了一次读盘操作,从而降低了文件访问的速度。都但是可以采取补救措施,例如在文件读取前,事先把索引表放在内存中,这样以后的文件访问可以直接在内存中查询索引表,以加快访问速度。

4)Hash文件

在直接存取设备上,文件的物理结构还有一种组织方式,即采用寻址结构。在这种方式中,把记录中的关键码通过某种计算,转换为记录的相应地址。这种存储结构是通过指定记录在存储介质上的位置进行直接存取的,记录无所谓次序。一般来说,用于地址的总数比可能的关键码总数要少得多,所以不会出现一一对应关系。那么就有可能存在着不同的关键码计算后,得到了相同的地址,这种现象称为“地址冲突”。而这种通过对记录的关键码施加变换而获得相应地址的变换方法,通常称为Hash方法,或称为散列法、杂凑法。利用Hash方法建立的文件结构称为。Hash文件。这种物理结构适用于不宜采用连续结构,记录次序比较混乱,又需要快速存取的情况。例如,一个存取学生信息的文件,将班级信息作为索引,凡班级相同的同学作为一个数据,这样建立的Hash表可以用来快速查找同一班级学生的信息,加快了查询速度。

优点:

查找不需要做索引,可以快速地直接存取。

缺点:

当地址冲突发生时,需要有解决冲突的方法,这称为溢出处理技术,也是设计Hash文件需要考虑的主要内容。常用的溢出处理技术有线性探测法、二次探测法、拉链法、独立溢出区法等。

存取方法

1)顺序存取

数据以块的形式存放,只有前面的物理块被访问后,后续的物理块才能被访问,块与块之间用间隔分开。

2)直接存取

 

你可能感兴趣的:(操作系统)