操作系统期末复习

1.计算机操作系统的基本概念,特征,类型

     基本概念:

            1.是配置在硬件上的第一层软件。

            2.是对硬件系统的首次扩充

            3.提高了系统的利用率和吞吐量

            4.管理硬件设备,便于用户和应用程序使用硬件设备

    特征:

           并发,共享,异步,虚拟

    类型:

          人工操作,脱机IO,单道批处理,多道批处理,实时操作系统,分时操作系统,微机,嵌入,网络,分布式

 2.多道批处理操作系统的基本特征

1.资源利用率高:

           利用其因IO操作二暂停执行的cpu的空挡时间,在调度另一道程序运行,以保证cpu一直处于忙碌的状态,在内存中装入多道程序,可以提高IO设备的利用率和内存的利用率

2.系统的吞吐量大:

          cpu和其他资源保持忙碌状态,仅当作业完成时或者进行不下去时进行切换,系统开销小。

3.平均周转时间长:

          由于作业需要排队并依次进行处理,进程处理等待时间较长,因此时间周转时间比较长

4.无交互性;

          用户一旦把作业提交给系统,那么直至作业完成,用户都不能与自己的作业进行交互,这对用户来说修改和调试程序是极不方便的

                 

 3.实时操作系统的基本概念

是指系统能及时的响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有的实时任务协调一致的运行。

4.实时任务

基本概念:

       实时任务是指需要在规定的时间范围内完成并能够保证任务完成的时间精度和可靠性的任务。它通常用于需要对外部事件做出快速响应的应用程序

分类:

       周期性实时任务,非周期性实时任务,硬实时任务,软实时任务,软硬的区别在于对截止时间的要求大小,硬实时任务对截止时间有着严格的要求

基本特征:多路性,独立性,及时性,交互性,可靠性

 5.进程和线程

进程的基本概念:

        是程序的一次执行,是一个程序及其数据在处理机上的顺序执行时所发生的活动,是具有独立功能的程序在一个数据集上执行的过程,是系统进行资源分配和调度的一个基本单位

线程的基本概念:

        增加并发度,线程成了程序执行的最小单位,是处理机调度的单位,也具有就绪阻塞,运行这三种状态。

区别:

  1. 进程是资源分配的基本单位,线程是CPU调度的基本单位。每个进程有自己的地址空间、文件句柄、系统资源等,而线程共享进程的地址空间和系统资源。

  2. 进程间互相独立,不能直接访问其他进程的资源,而线程可以直接访问所属进程的资源。

  3. 进程之间切换开销较大,需要保存和恢复多个上下文,而线程之间切换开销较小,只需要保存和恢复少量的上下文。

  4. 进程间通信需要比较复杂的机制,如管道、消息队列、共享内存等,而线程之间可以通过共享内存等简单的机制进行通信。

  5. 进程可以在不同的计算机上运行,而线程只能在同一个进程中运行。

联系:

1.进程和线程都可以执行程序,是操作系统中的基本执行单位。

  1. 进程和线程都可以被操作系统管理和调度,操作系统可以分配资源和时间片给它们,并确保它们的正确执行。

  2. 进程和线程都可以共享一些资源,如代码段、数据段等,这些资源可以被多个进程或线程共享,提高了系统的效率。

  3. 进程和线程都可以协同工作,实现复杂的任务。进程可以通过创建多个线程来并行处理任务,而线程可以通过同步机制来协同完成任务。

 6.进程的基本状态及其特征

 基本状态及其特征;

        

  1. 新建状态(New):当进程被创建时,它处于新建状态。在新建状态下,操作系统为进程分配必要的资源,如内存空间、文件句柄等。

  2. 就绪状态(Ready):当进程已经准备好运行,但还未得到CPU的分配时,它处于就绪状态。在就绪状态下,进程等待CPU分配资源,以便开始运行。

  3. 运行状态(Running):当进程被CPU分配到资源并开始执行时,它处于运行状态。在运行状态下,进程正在执行指令,使用CPU和其他系统资源。

  4. 阻塞状态(Blocked):当进程因为某些原因无法继续执行时,它处于阻塞状态。例如,进程需要等待输入/输出操作完成、等待某个事件发生或等待其他进程的信号等。在阻塞状态下,进程暂停执行,直到条件满足后才能继续执行。

  5. 终止状态(Terminated):当进程完成它的任务或者被操作系统终止时,它处于终止状态。在终止状态下,进程释放已经占用的资源,并将其占用的资源返回给操作系统。

 7.进程的状态转换基本条件和过程

  1. 新建状态 --> 就绪状态:当操作系统为进程分配了必要的资源并准备好运行时,进程从新建状态转换为就绪状态。在就绪状态下,进程等待调度程序分配CPU资源。

  2. 就绪状态 --> 运行状态:当调度程序将CPU资源分配给进程时,进程从就绪状态转换为运行状态。在运行状态下,进程正在执行指令,使用CPU和其他系统资源。

  3. 运行状态 --> 阻塞状态:当进程需要等待某个事件发生,如等待输入/输出操作完成或等待其他进程的信号等,进程从运行状态转换为阻塞状态。在阻塞状态下,进程暂停执行,直到条件满足后才能继续执行。

  4. 阻塞状态 --> 就绪状态:当进程等待的事件发生并已经准备好继续执行时,进程从阻塞状态转换为就绪状态。在就绪状态下,进程等待调度程序分配CPU资源。

  5. 运行状态 --> 就绪状态:当进程执行完当前的指令或者时间片用完时,进程从运行状态转换为就绪状态。在就绪状态下,进程等待调度程序分配CPU资源。

  6. 运行状态 --> 终止状态:当进程完成它的任务或者因为某种原因被操作系统终止时,进程从运行状态转换为终止状态。在终止状态下,进程释放已经占用的资源,并将其占用的资源返回给操作系统。

  7.  

 8.进程同步控制的基本方法

软件同步机制:

        互斥锁:互斥锁是一种最基本的进程同步控制方法,它可以保证同一时间只有一个进程访问共享资源。当一个进程需要访问共享资源时,它需要先获得互斥锁,访问完毕后再释放锁。其他进程只能等待锁被释放后才能访问共享资源。互斥锁常用于对文件、共享内存、消息队列等资源的访问控制。

 硬件同步机制:

        1.关中断:是实现互斥最简单的方法之一,在进入测试之前关闭中断,直到完成锁测试并上锁之后,才能打开中断。

        2.利用Test-and-Set指令实现互斥:用硬件的原语实现,执行的过程不允许被中断

        3.利用swap指令实现进程互斥

信号量机制:

        1.整型信号量机制:表示资源数目的整型量,仅通过两个标准的原子操作完成,当一个进程修改某信号量机制时,没有其他进程可同时对该信号量机制进行修改

        2.记录型信号量机制:初始值表示系统中某类资源的数目,每次对其进行P操作,意味着进程请求一个单位的该类资源,当记录量小于0.此时进程调用black原语,进行自我阻塞,放弃处理机,资源利用释放后,进行v操作对其进行唤醒 

 9.运用信号量机制解决实际问题

例题一:

 信号量机制的绝对值表示正处于等待的进程

列题二:

有m个进程同时访问同一临界资源,运用信号量机制实现对魔偶个临界资源的的互斥访问,求信号量的范围:

    信号量的初始值为1,所以范围的max为没有进程请求进入临界区的时候,此时信号量最大,当m个进程同时进入请求访问时,此时的信号量机制递减,为1-m,由于只有一个资源因此,只能一个进程对临界资源进行访问其他程序处于阻塞状态,综上的出:信号量机制的范围是1-m到1

列题三:

若有4个进程共同访问同一程序段,而且每次最多允许3个进程进入该程序段,则信号量的变化范围?

       设初值为3,由上述方法同样的算法,则信号量的变化范围是-1到3,

       关于计数信号量初值的设定,在一般情况设置为1(在未说明可以同时访问的数量时)计数信号量的初值可以为任意整数。通常情况下,将计数信号量的初值设置为共享资源的数量,以便控制多个进程对共享资源的访问。例如,如果有5个共享资源需要被多个进程访问,可以将计数信号量的初值设置为5,表示该资源最多可以被5个进程同时访问。

 10.进程的调度

调度的基本算法:

       1.先来先服务算法(FCFS)

              先到先运行,非抢占式算法(不会主动的抢占处理机),对短作业不利,对长作业有利,不会导致饥饿,所有的进程都会被调度

      2.短作业优先算法(SJF);

                以作业的长度来评判优先级的,作业越短其优先级就越高,非抢占式,每次调度的时候选择当前已到达的最短进程进行运行。对短作业有利,对长作业无利。可能会导饥饿(源源不断的短作业到达,会导致长作业长时间不能被运行,从而产生饥饿)

    3.优先级调度算法:非抢占式按照给定的优先级运行以及到达的时间,抢占式,在运行的按照优先级更高的,会发生饥饿现象,不断地有优先级更高的进程到达

    4.时间片轮转调度算法(RR):按照各进程达到的顺序,轮流让进程执行一个时间片,如果时间片太大,会退化为先来先服务算法

    5.高响应比优先算法;(HPPN) 响应比=(等待+要求服务)的时间/要求服务的时间,响应比越大越先上处理机运行

   6.多级反馈调度算法;一级一级的完成之后才进行下一级,一级比一级的时间片更大,最后一级轮完还没有运行完的程序继续放队尾进行第二轮的运行

11.进程调度的相关指标 

1.cpu的利用率:指cpu的忙碌时间(运行时间)占总时间的比例

  cpu的利用率=忙碌时间/总时间

2.系统的吞吐量:单位时间内完成作业的数量

   系统的吞吐量=总共完成的作业数量/总共花了多少时间

3.周转时间;从昨业提交给系统开始,到作业完成为止

   周转时间=作业完成时间-作业到达时间

4,平均周转时间=各作业的周转时间/作业数

5:带权周转时间=作业周转时间/昼夜实际运行的时间

6:平均带权周转时间=总的带权周转时间/总个数

7.等待时间:处于等待处理机状态的时间之和

8:响应时间:从提交到首次响应所用时间

12.死锁的基本概念 

      基本概念:在并发环境下,个进程竞争资源而导致的阻塞,如果一组进程中的每个进程都在等待仅由该组进程的其他进程才能引发的事件发生,那么该进程是死锁的

      必要条件:互斥条件,请求和保持条件,循环等待条件

      解决死锁的基本方法:预防死锁,避免死锁,死锁的检测和解除,

     预防:破坏请求和保持条件,破坏不可抢占条件,破坏循环等待条件,破坏互斥条件

     死锁的检测:

            1.资源剥夺法(挂起)

            2.撤销进程法(终止进程)

            3.进程回退

     避免死锁银行家算法:(安全性问题)

            max目前最大数,allocation已经拥有的 , need还需要的数量,available可提供的,可提供大于need则表示可以往下运行下去,然后释放资源,继续往下,能找到一个满足运行序列的操作循序,则此序列不会产生死锁,否则产生死锁。

13.重定位 

什么是重定位?

       重定位是指在程序执行期间,将程序中的指令和数据从其原始的内存地址“重定位”到新的内存地址的过程。这通常是由于程序在编译或链接时被分配到了一个特定的内存地址,但在实际执行时,该地址可能已被占用或不可用,因此需要将程序加载到新的内存地址来避免冲突

为什么要重定位?

使程序能在多种不同的环境中运行,提高系统的灵活性和可移植性

 14.动态重定位的实现方式

(1)连续分配方式下的动态重定位。该方式须在整个系统中设置一个重定 位寄存器,用来:存放正在执行的作业在内存中的起始地址。当CPU要 存取指令或数据时,硬件地址转换机构会自动将逻辑地址与重定位寄存器的值相加,形成指令或数据的物理地址。

(2)离散分配方式下的动态重定位。离散分配方式主要是指分页和分段存储管理方式。重定位过程为:①系统首先必须为每个作业配置- -张页 (段)表,用来记录作业的每个页(段)对应的内存块号(内存起始地址和段长),页(段)表被存放在内存中;②整个系统须设置一个页(段)表控制寄存器,用来存放正在执行的作业的页( 段)表起始地址和长度;③当CPU要存取指令或数据时,硬件的地址转换机构会自动将逻辑地址分成页号和页内地址两部分(或直接从逻辑地址中获得段号),根据页(段)号到控制寄存器所指示的页( 段)表中获得对应的物理块号(或段的内存起始地址),并与页(段)的地址相加,最终形成物理地址。

15.程序链接和装入

链接:由链接程序将编译后形成的一组目标模板一级他们的所需要的库函数链接在一块,形成完整的装入模块

装入:也称加载,由装入程序将装入模块装入内存

链接的方式:

  1. 静态链接:
    静态链接是指将所有目标文件在编译时链接成一个单独的可执行文件,这个可执行文件包含了所有需要的库和资源。静态链接的特点是程序独立,不需要运行时链接库的支持,因此具有较好的可移植性和性能。但是,由于所有的库和资源都被包含在可执行文件中,因此可执行文件的大小比较大,而且升级和维护比较困难。

  2. 动态链接:
    动态链接是指将目标文件在运行时链接成一个可执行文件,这个可执行文件依赖于系统中已经存在的动态链接库。动态链接的特点是程序的大小比较小,可以节省系统资源,同时升级和维护也比较方便。但是,由于需要依赖于系统中的动态链接库,因此可移植性和可靠性可能不如静态链接,并且在程序运行时需要加载和链接动态链接库,可能降低程序的启动速度和性能。

装入的方式:

       

  1. 绝对装入:
    绝对装入是指将程序加载到固定的内存地址中。程序编译时需要指定程序的装入地址,因此程序只能在该地址运行,不具备可移植性。绝对装入的特点是简单、快速,但浪费内存空间,且程序之间容易发生冲突。适用于单道程序运行环境

  2. 可重定位装入:
    可重定位装入是指将程序加载到内存中的任意位置。程序中的指令和数据使用相对地址进行访问,因此可以在内存中的任意位置运行,具备较好的可移植性。可重定位装入的特点是节省内存空间,但需要进行重定位,因此启动时间较长。多道程序运行环境

  3. 动态运行时装入:
    动态运行时装入是指将程序的部分或全部代码在运行时加载到内存中。程序中的指令和数据使用相对地址进行访问,因此可以在内存中的任意位置运行,具备较好的可移植性。动态运行时装入的特点是可以在程序运行期间动态加载和卸载代码,从而实现更灵活的程序设计和优化。但是,由于需要在运行时进行加载和链接,因此会带来额外的系统开销和启动时间。多道程序运行环境

 16.程序局部性原理

  1. 基本概念:
    程序局部性原理是指程序在执行时,存在一定的空间局部性和时间局部性。其中,空间局部性指程序访问的数据和代码通常在一定范围内连续存储,因此程序在访问数据和代码时通常会访问相邻的数据和代码;时间局部性指程序在执行过程中,通常会多次访问同一个数据和代码,因此程序在访问数据和代码时通常会重复访问之前访问过的数据和代码。(快表产生的理论支持)

  2. 产生原因:
    程序局部性的产生原因主要有以下几个方面:一是程序的控制结构和数据结构决定了程序的局部性,例如循环结构、数组、链表等数据结构通常会导致程序访问数据和代码的局部性;二是计算机硬件的缓存机制和虚拟内存机制也会影响程序的局部性,例如缓存机制可以提高程序访问相邻数据和代码的效率,虚拟内存机制可以将程序中的常用数据和代码放在内存中,提高程序的访问速度。

  3. 主要表现:
    程序局部性的主要表现包括空间局部性和时间局部性。空间局部性表现为程序访问相邻的数据和代码,例如程序访问数组时通常会连续访问相邻的数组元素;时间局部性表现为程序多次访问同一个数据和代码,例如程序中的循环结构会导致程序反复访问同一段代码和数据。

  4. 基本应用:
    程序局部性原理是计算机系统设计和性能优化的基础之一,其基本应用包括以下几个方面:一是缓存优化,通过提高缓存的命中率来提高程序的性能,例如使用缓存预取、缓存感知算法等技术;二是指令调度和重排,通过优化指令的执行顺序和重排数据的存储顺序来提高程序的性能;三是代码优化,通过减少程序的分支、循环和函数调用等操作来提高程序的局部性和性能;四是内存管理和虚拟内存优化,通过合理地分配和管理内存,以及使用虚拟内存机制来提高程序的局部性和性能。

17.存储器离散分区分配管理(动态分区分配) 

 基本方式(动态分区分配算法):

 1.首次适应算法:倾向于优先利用内存中低地址空闲分区,从而保留了高地址部分的大空闲分区,低地址不断被划分,会留下许多难以利用的很小的空闲分区,称之为碎片,此外每次都是从低地址开始查找,增加了查找空闲分区的时间开销(时间复杂度为n方)

2.循环首次适应算法:在首次适应算法的基础上,将从低地址开始查找改变成从上一次查找的未知开始,减少了查找空闲分区的时间开销,但是同时也将大块的空闲分区进行了划分,会使得大块空闲分区较缺乏

3.最佳适应算法:将所有空闲分区按照从小到大的顺序进行排序,形成一个空闲分区链,每次从最小的开始遍历,查找目前最适合的空闲分区,但会在存储器中留下许多难以利用的碎片

4.最坏适应算法:与最佳适应算法相反,按容量从大到小排序,查找时只看第一个是否满足条件,优点是:查找空闲分区的时间开销小,且使剩下的空闲分区不至于太小,产生无法利用的碎片的概率小,缺点是缺乏较大的空闲分区

地址映射:

    地址映射机构是存储器管理中的重要组成部分,它负责将逻辑地址(即程序中使用的地址)映射到物理地址(即实际的硬件地址

基本工作原理:

         当程序访问一个逻辑地址时,操作系统先将逻辑地址划分为页号和页内偏移量两部分,然后根据页表中的映射关系,将页号转换为物理地址的页号并与页内偏移量相加,得到实际的物理地址。如果页表中不存在该逻辑地址的映射关系,则触发缺页中断,操作系统将相应的页面从磁盘中读取到内存中,并更新页表中的映射关系,然后再次执行地址映射过程。

如何实现地址转换:

逻辑地址对应的物理地址=页面实址+页内偏移量

页号=逻辑地址/页面长度(取整)用于判断地址是否越界

页内偏移量=逻辑地址%页面长度

物理地址=内存块号*页框大小(页面大小)+页内偏移量

工作过程:

  1. 程序访问逻辑地址;
  2. 操作系统将逻辑地址划分为页号和页内偏移量;
  3. 地址映射机构根据页表中的映射关系,将页号转换为物理地址的页号;
  4. 地址映射机构将物理地址的页号与页内偏移量相加,得到实际的物理地址;
  5. 如果页表中不存在该逻辑地址的映射关系,则触发缺页中断,操作系统将相应的页面从磁盘中读取到内存中,并更新页表中的映射关系;
  6. 地址映射机构重新执行地址映射过程,以获得实际的物理地址;
  7. 程序使用实际的物理地址进行访问。

 18.分页系统

分页系统的基本概念:

        分页系统是一种内存管理技术,将物理内存划分为大小相等的页框,将进程的逻辑地址空间划分为大小相等的页面,并通过页表将页面映射到物理内存中的页框。当进程访问一个尚未在物理内存中的页面时,会发生缺页异常,操作系统需要通过缺页置换算法将一个已经在物理内存中的页面替换出去,为新的页面腾出空间。

分页系统的工作原理以及工作机制:

  1. 将进程的逻辑地址空间划分为大小相等的页面;
  2. 将物理内存划分为大小相等的页框;
  3. 通过页表将页面映射到物理内存中的页框;
  4. 当进程访问一个尚未在物理内存中的页面时,会发生缺页异常;
  5. 操作系统需要通过缺页置换算法将一个已经在物理内存中的页面替换出去,为新的页面腾出空间;
  6. 将新的页面加载到物理内存中,并更新页表中的映射信息;
  7. 将控制权返回给进程,让进程重新执行访存指令。

分页置换的相关算法:

最佳置换算法(OPT):选择淘汰的是以后永远不会使用的或者最长时间不会使用的页面,可以获得最低的缺页率,但是实际工程无法知道后续来的页面情况,所以也是不可实现的算法

先进先出页面置换算法(FIFO):淘汰最先进入内存的页面,既选择在页面中停留时间最长的进行淘汰,算法实现简单,但是算法效率较低,会产生belady问题

最近最久未使用页面置换算法(LRU):最近的过去最近最久未使用的页面进行淘汰,往前选最久没使用的,理论依据为局部性原理,其中的时间局部性,如果程序中的某条指令被执行,则在不久之后该指令可能会被再次执行,产生局部性的原因是在程序中存在着大量的循环操作

时钟页面置换算法(clock):

简单的clock页面置换算法:为每页设置一个访问位,再将内存中的所有界面都通过链接指针链接成一个时钟形式,循环遍历,找最近访问位0的进行替换,如果是1将其置换为0,继续向下遍历。

改进时钟置换算法:在简单的基础上添加一个修改位,遍历从最多两次转换成最多四次,

第一轮表示该页最近既未被访问也没被修改,也就是置换00,

第二轮在第一轮不存在00的页面,第二轮查询时寻找被访问但未被修改的,也就是10,同时将遍历过的访问位置为0,

第三轮在第二轮的基础上再寻找一遍寻找00

第四轮第三轮失败,再遍历一轮寻找01

性能指标:

缺页率 = 缺页次数 / 访问次数(访问次数指的是一共有多少次页号查询,缺页次数指的是进行几次页面交换,刚开始直接放的也算)

命中率 = 1 - 缺页次数 / 访问次数

页面置换开销是指进行页面置换所需的时间和资源开销,包括两部分:页面置换的次数和每次页面置换所需的时间和资源开销。页面置换的次数可以通过缺页次数来计算,每次页面置换所需的时间和资源开销取决于具体的实现方式和硬件架构。

19.I/O数据传输控制的几种方式、特征及过程:

1.程序控制io:

过程:cpu发出I/O命令后需要不断轮询

特征:简单灵活效率低,因为CPU需要不断的等待设备响应,不能同时进行其他操作。

2.中断驱动方式:

过程:CPU发出I/O命令后可以做其他事儿,本次I/O完成后设备控制器发出中断信号

特征:效率较高,因为CPU可以同时进行其他操作,但处理中断的开销较大,且存在中断竞争问题。

3.直接存储器访问方式(DMA):

过程:CPU发出I/O命令后可以做其他事儿,本次I/O完成后DMA控制器发出中断请求

特征:速度快、效率高,可以大大减轻CPU的负担。但是,DMA控制器需要占用一定的系统资源,并且需要特殊的硬件支持

4.I/O通道方式(通道控制器):

过程:CPU发出I/O命令后可以做其他事儿,通道会执行通道程序以完成I/O,完成后通道向CPU发出中断信号

特征:高度自动化、效率高,且可以同时管理多个设备。但是,通道控制器需要特殊的硬件支持,且需要较为复杂的配置和管理。

20.SPOOLing技术的基本概念,系统组成,主要作用,以及实际应用案例分析 

基本概念:
SPOOLing技术的基本思想是将I/O操作从实际的物理设备上分离出来,放到一个独立的软件层中进行管理。这个软件层被称为“SPOOLer”,它负责接收来自应用程序的I/O请求,并将这些请求保存到一个队列中。然后,SPOOLer按照队列中请求的顺序,将它们逐个发送给物理设备进行处理。同时,SPOOLer还负责将输出数据缓存起来,直到应用程序准备好接收它们。

系统组成:
一个SPOOLing系统通常包括以下组件:

  1. SPOOLer软件:负责管理I/O操作,包括接收、缓存和发送数据。
  2. 队列管理器:负责管理I/O请求的队列,包括添加、删除和排序请求。
  3. 设备驱动程序:负责将SPOOLer传递的请求传递给物理设备,并将设备返回的数据传递回SPOOLer。
  4. 缓存管理器:负责管理缓存区,包括分配和释放缓存区。

主要作用:
SPOOLing技术的主要作用是提高计算机系统的效率和吞吐量。它可以让多个I/O操作同时进行,从而避免了等待时间,减少了系统的空闲时间,提高了系统的利用率。此外,SPOOLing技术还可以通过缓存输出数据,减少了对物理设备的访问次数,从而降低了系统的负载和延迟,提高了响应速度。

实际应用案例分析:
SPOOLing技术广泛应用于各种计算机系统中,包括操作系统、数据库、打印机等。以下是一些实际应用案例的分析:

  1. 打印机:SPOOLing技术可以缓存打印作业,避免了打印机忙碌时的等待时间,提高了打印效率。同时,它还可以让多个用户同时提交打印作业,而不会影响到其他用户的使用。

  2. 数据库:SPOOLing技术可以缓存查询结果,减少了对磁盘的访问次数,提高了查询效率。同时,它还可以让多个用户同时提交查询请求,而不会影响到其他用户的使用。

  3. 操作系统:SPOOLing技术可以缓存磁盘I/O操作,避免了等待时间,提高了系统的响应速度。同时,它还可以让多个应用程序同时进行磁盘I/O操作,而不会影响到其他应用程序的使用。

 21.磁盘的工作原理

磁盘是计算机中常见的存储设备之一,它的工作原理是利用磁性材料在磁场的作用下进行信息的存储和读取。磁盘的主要组成部分包括磁性盘片、读写磁头、电机和控制电路

22.磁盘调度算法 

1.FCFS调度算法:

        先来先服务,最简单的磁盘调度算法,根据请求访问的先后顺序进行访问,不会产生饥饿现象

2.SSTF调度算法:

         要求访问磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,可能会使远距离请求产生饥饿现象

3.SCAN调度算法:

        磁头向着正在移动的方向前进,直至同一方向没有请求了,再掉头往回处理请求,从而避免了进程出现饥饿的现象,但刚刚处理过的请求又再次到达时在返回的路途上会再次处理,会使得前面的进程的请求被大大的推迟

4.CSCAN循环调度算法:

       朝着某个特定的方向移动时才处理请求,而返回直接快速移动至初始位置不做任何请求的处理

23.磁盘的相关性能指标计算 

1.寻道时间

       是指把磁臂移动到指定磁道上所经历的时间,该时间是启动磁臂的时间K与磁臂移动N条磁道所花费的时间之和

                                     T=m*N+K

m是一个常数,与磁盘的驱动速度有关

2.平均旋转延迟时间

       是指某扇区移动到磁头下面的所经历的时间

                                    T=1/2*r(r为磁盘的转速)

3.传输时间

      是指从磁盘读出数据或向磁盘写入数据所经历的时间

                                   T=b/r*N

    1/r(表示磁盘转一圈的时间),b字节数,n为一条磁道上的字节数,b/n为磁臂需要旋转的圈数

4.访问时间为上述三者相加 

24.磁盘空闲区域管理的基本方法 

  1. 位图法:位图法是一种基于位图的磁盘空闲区域管理方法。在磁盘上维护一个位图,每个位表示相应的磁盘块是否空闲。当需要分配磁盘空间时,系统会扫描位图寻找空闲块。当需要回收磁盘空间时,系统将相应的位从1改为0表示该块已经空闲。位图法简单易实现,但是会浪费一定的磁盘空间。

  2. 空闲链表法:空闲链表法是一种基于链表的磁盘空闲区域管理方法。在磁盘上维护一个空闲块链表,每个块都有一个指针指向下一个空闲块。当需要分配磁盘空间时,系统会从链表中取出一个空闲块,并更新链表。当需要回收磁盘空间时,系统会将相应的块加入链表中。空闲链表法不会浪费磁盘空间,但是需要维护链表,增加了系统开销。

  3. 磁盘碎片整理:磁盘碎片是指文件在磁盘上分散存储,导致磁盘空间不连续的问题。磁盘碎片会降低磁盘读写速度,影响系统性能。磁盘碎片整理是一种将文件整理到连续的磁盘空间的方法。磁盘碎片整理可以通过操作系统自带的碎片整理工具或第三方软件来实现。

25.文件的逻辑结构分类

1.按文件是否有结构来分:

  1)有结构文件(变长记录和定长记录)

   2)无结构文件

2.按文件组织来分:

  1)顺序文件

  2)索引文件

  3)索引顺序文件

26.文件的物理结构分类 

  1. 连续分配:连续分配是将文件连续地存储在磁盘上。文件的起始位置和长度都是固定的,文件的物理地址可以通过计算得到。连续分配的特点是存取速度快,但是容易产生外部碎片。优点是存取速度快,适合于顺序访问的应用场景。缺点是容易产生外部碎片,不适合频繁插入和删除的应用场景。

  2. 链式分配:链式分配是通过链表将文件的数据块连接起来。每个数据块都包含指向下一个数据块的指针。链式分配的特点是插入和删除操作方便,但是存取速度较慢。优点是插入和删除操作方便,适合于频繁插入和删除的应用场景。缺点是存取速度较慢,不适合顺序访问。

  3. 索引分配:索引分配是建立一个索引表,将文件的数据块与索引表中的表项一一对应。每个表项包含指向数据块的指针。索引分配的特点是查找速度快,但是需要占用额外的存储空间。优点是查找速度快,适合于经常需要查询的应用场景。缺点是需要占用额外的存储空间,不适合存储大文件。

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值