【操作系统原理与实践】期末考试总复习——电子科技大学2023期末考试

此文章主要针对于考试的简答题,想看计算题可以移步到这篇文章:
blog.csdn.net/spicy_chicken123/article/details/131431782

操作系统引论

  1. OS的定义、目标、作用

    1. OS定义:操作系统是位于硬件层(HAL)之上,所有其它系统软件层之下的一个系统软件,使得管理系统中的各种软件和硬件资源得以充分利用,方便用户使用计算机系统。

    2. OS目标:方便性,有效性,可扩展性,开放性

    3. OS作用:作为用户与计算机硬件系统之间的接口,作为资源管理者,作为扩展机器

  2. 三种基本操作系统的基本原理和异同(批处理操作系统,分时操作系统,实时操作系统)

    1. 单道批处理操作系统:

      • 自动性、顺序性、单道性
      • 系统对作业的处理都是成批进行的,且在内存中始终仅存一道作业运行,运行结束或出错,才自动调另一道作业运行。
      • 优点:减少人工操作,解决了作业的自动接续
      • 缺点:平均周转时间长,没有交互能力
    2. 多道批处理操作系统

      • 多道性、无序性、调度性(进程调度和作业调度)

      • 在内存中存放多道作业运行,运行结束或出错,自动调度内存中的另一道作业运行。

      • 多道批处理的主要优点:提高了资源利用率和吞吐能力。

      • 多道批处理的主要缺点:平均周转时间长,没有交互能力。

    3. 分时操作系统(time-sharing system)

      • 多路性:一个主机与多个终端相连;
      • 独立性:彼此独立操作,互不干扰;
      • 及时性:系统能在很短的时间得到回答;
      • 交互性:能实现人机对话(区别于批处理系统);
    4. 实时操作系统(real time system)

      • 多路性:能对多个对象进行控制。
      • 独立性:独立运行,不混淆,不破坏。
      • 交互性:仅限于访问系统中某些特定的专用服务程序。
      • 可靠性:高可靠性,应具有多级容错防护能力。
      • 及时性:不同的系统要求不一样,控制对象必须在
        截止时间内完成。
  3. OS的特征(期中考)

    现代OS的四个基本特征:并发性(最重要的特征),共享性,虚拟性,异步性,并发是最重要的特征,其它特征都以并发为前提

    • 并发性:两个或多个事件在同一时间间隔内发生
    • 共享性:系统中的资源可供内存中多个并发执行的进程同时使用(分为互斥共享和同时访问)
    • 虚拟性:通过某种技术把一个物理实体变为若干个逻辑上的对应物的功能(时分复用技术【虚拟处理机和虚拟设备】,空分复用技术)
    • 异步性:进程是以人们不可预知的速度向前推进的
  4. OS的功能

    1. 处理机管理:进程控制,进程同步和互斥,进程通信,进程调度

    2. 存储器管理:内存分配,内存保护,地址映射,内存扩充

    3. 设备管理:缓冲管理,设备分配,设备处理

    4. 文件管理:文件存储空间管理,目录管理,文件的读/写管理和保护

    5. 向用户提供“操作系统与用户的接口”

处理机管理

  1. 进程和线程的概念

    在引入线程的操作系统中,线程是调度和分配的基本单位 ,进程是资源拥有的基本单位

    在未引入线程的操作系统中,进程是程序在一个数据集合上运行的过程,是系统进行资源分配和调度的基本单位

  2. 进程的基本状态及状态转换的原因

    1. 进程五种状态

      • 就绪:准备执行
      • 执行:占用处理机(单处理机环境中,某一时刻仅一个进程占用处理机)
      • 阻塞:等待某事件发生才能执行,如等待I/O完成等
      • 新建:进程已经创建,但未被OS接纳为可执行进程,并且程序还在辅存,PCB在内存
      • 终止:因停止或取消,被OS从执行状态释放
    2. 进程转换模型image.png

      ① 空 → 新状态:新创建的进程首先处于新状态。

      ② 新状态 → 就绪状态:当系统允许增加就绪进程时,操作系统接纳新建状态进程,将它变为就绪状态,插入就绪队列中。

      就绪状态 → 执行状态:当处理机空闲时,将从就绪队列中选择一个进程执行,该选择过程称为进程调度,或将处理机分派给一个进程,该进程状态从就绪转变为执行

      ④ 执行状态 → 终止状态:执行状态的进程执行完毕,或出现诸如访问地址越界、非法指令等错误,而被异常结束,则进程从执行状态转换为终止状态。

      执行状态 → 就绪状态:分时系统中,时间片用完,或优先级高的进程到来,将中断较低优先级进程的执行。进程从执行状态转变为就绪状态,等待下一次调度。

      ⑥ **执行状态 → 阻塞状态:**执行进程需要等待某事件发生。通常,会因为进程需要的系统调用不能立即完成,如读文件、共享虚拟内存、等待I/O操作、等待另一进程与之通信等事件而阻塞。

      阻塞状态 → 就绪状态:当阻塞进程等待的事件发生,就转换为就绪状态。进入就绪队列排队,等待被调度执行。

  3. PCB的概念、作用、包含信息、组织方式

    1. 为使程序(含数据)能独立运行,应为之配置一进程控制块,即PCB(Process Control Block)

    2. 由程序段、相关的数据段和PCB三部分便构成了进程实体

    3. 进程控制块的作用:

      1) 作为独立运行基本单位的标志;
      2) 能实现间断性运行方式;
      3) 提供进程管理所需要的信息;
      4) 提供进程调度所需要的信息;
      5) 实现与其他进程的同步与通信。

    4. 进程控制块中的信息:进程标识符,处理机状态,进程调度信息,进程控制信息

    5. PCB的组织方式:线性方式,链接方式,索引方式

  4. 进程控制的原语操作

    常见的进程控制原语:进程创建原语,进程终止原语,进程阻塞原语,进程唤醒原语,进程挂起原语,进程激活原语,wait,signal

  5. 进程互斥、临界区、进程同步的基本概念、同步准则

    1. 进程同步的主要任务:是使并发执行的诸进程之间能有效地共享资源和相互合作,从而使程序的执行具有可再现性。
    2. 进程同步是进程之间的直接制约关系,是指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调他们的工作次序而等待、传递信息所产生的制约关系
    3. 进程互斥是进程之间的间接制约关系,当一个进程进入临界区使用临界资源时,另一个进程必须等待,当占用临界资源的进程退出临界区后,这个进程才会解除阻塞状态。
    4. 临界资源:一段时间内只允许一个进程访问的资源
    5. 临界区:在每个进程中访问临界资源的那段程序
    6. 同步准则
      • 空闲让进:如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入
      • 忙则等待:任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待
      • 有限等待:进入临界区的进程要在有限的时间内退出,以便其它进程能及时进入自己的临界区
      • 让权等待:如果进程不能进入自己的临界区,则应该让出CPU,避免进程出现“忙等”的现象
  6. 四种信号量机制:整型信号量,记录型信号量,AND型信号量,信号量集

    记录型信号量:

    在信号量机制中,除了需要一个用于代表资源数目的整型变量value外,还应增加一个进程链表指针L,用于链接上述的所有等待进程。

    记录型信号量是由于它采用了记录型的数据结构而得名的。

    typedef struct {
     int value;
     struct process_control_block *list;
    } semaphore;
    
    // 等待操作
    void wait(semaphore *S) {
     S->value --;
     if (S->value < 0) {
         // 将当前进程加入等待队列
         block(S->L);
     }
    }
    
    // 信号操作
    void signal(semaphore *S) {
     S->value ++;
     if (S->value <= 0) {
         // 唤醒等待队列中的进程
         wakeup(S->L);
     }
    }
    
  7. 信号量的应用

    用信号量实现进程互斥

    利用信号量实现前趋关系

  8. 经典进程同步问题:生产者与消费者问题,哲学家进餐问题,读者-写者问题

    考察伪代码

    生产者与消费者问题:

    #define BUFFER_SIZE n
    
    item buffer[BUFFER_SIZE]; // 缓冲区数组
    int in = 0; // 生产者向缓冲区中添加数据的位置
    int out = 0; // 消费者从缓冲区中取出数据的位置
    
    // 生产者进程
    void producer() {
     while (true) {
         produce_item(); // 生产一个数据项
         // 等待缓冲区中有空的位置
         P(empty);
         // 获取对缓冲区的访问权
         P(mutex);
         // 将数据项添加到缓冲区
         buffer[in] = item;
         in = (in + 1) % BUFFER_SIZE;
         // 释放对缓冲区的访问权
         V(mutex);
         // 增加full计数
         V(full);
     }
    }
    
    // 消费者进程
    void consumer() {
     while (true) {
         // 等待缓冲区中有数据
         P(full);
         // 获取对缓冲区的访问权
         P(mutex);
         // 从缓冲区中取出一个数据项
         item = buffer[out];
         out = (out + 1) % BUFFER_SIZE;
         // 释放对缓冲区的访问权
         V(mutex);
         // 增加empty计数
         V(empty);
         consume_item(item); // 消费数据项
     }
    }
    
  9. 进程间通信的原理和实现方法

    共享存储器系统,管道通信系统,消息传递系统,客户机-服务器系统

    消息传递系统分为直接消息传递系统和信箱通信

    系统为信箱通信提供了若干条原语,分别用于信箱的创建、撤消和消息的发送、接收等。

    优点:在读/写时间上的随机性

    写进程->信箱(中间实体)->读进程原语

    消息的发送和接收

    Send (mailbox, message)

    Receive (mailbox, message)

    信箱分为以下三类:

    (1)私用信箱

    (2)公用信箱

    (3)共享信箱

    在利用信箱通信时,在发送进程和接收进程之间,存在以下四种关系:

    (1)一对一关系。

    (2)多对一关系,客户/服务器交互。

    (3)一对多关系, 广播方式。

    (4)多对多关系。

  10. 处理机调度的基本概念和种类(期中考)

    1. 高级调度

      ▪调度对象:作业

      ▪又称作业调度、长程调度、接纳调度

      ▪实现:作业管理程序

      ▪将外存作业调入内存,创建PCB等,插入就绪队列。

      ▪用于批处理系统,分/实时系统一般直接入内存,无此环节。

      ▪频度:最低,分钟级

    2. 低级调度

      ▪又称进程调度或短程调度

      ▪对象:就绪进程(或内核线程)

      ▪功能:决定就绪队列中的那个进程应获得处理机,并将处理机分配给选中的进程。

      ▪实现者 :分派程序(dispatcher)

      ▪应用范围:都有

      ▪频度:最频繁,毫秒级

    3. 中级调度

      ▪又称内存调度、中程调度

      ▪对象:挂起的进程

      ▪功能:把外存上那些已经具备运行条件的就绪进程重新载入内存。从静止就绪到活动就绪。

      ▪实现:内存管理中的对换进程

      ▪应用范围:具有对换功能的操作系统

      ▪频度:中等

  11. 选择调度算法的准则,周转时间,带权周转时间,响应时间

    1. 周转时间:接纳等待时间、执行等待时间、执行时间、I/O时间。

    2. 带权周转时间:作业的周转时间T与系统为它提供服务的时间Ts之比。 W = T/Ts

    3. 响应时间:等待时间与要求服务时间之和

  12. 常见调度算法

    先来先服务,短作业优先,高响应比优先,轮转调度算法,多级反馈队列调度算法

  13. 常见的两种实时调度算法

    最早截止时间优先算法(EDF),最低松弛度优先算法(LLF)

  14. 死锁概念,处理死锁的基本方法、死锁产生的原因,四个必要条件

    1. 如果一组进程中的每一个进程都在等待仅由该组进程中的其他进程才能引发的事件,那么该组进程是死锁的。

    2. 产生死锁的原因可归结为如下两点:
      (1)竞争资源:可重用资源的竞争,可消耗资源的竞争,不可抢占资源的竞争
      (2)进程间推进顺序非法

    3. 四个必要条件:

      (1)互斥条件
      (2)请求和保持条件
      (3)不剥夺条件
      (4)环路等待条件

  15. 死锁的预防

    1. 破坏请求与保持:系统规定所有进程在开始运行之前,都必须一次性地申请其在整个运行过程所需的全部资源。从而进程在整个运行期间,便不会再提出资源要求,从而摒弃了请求和保持条件,由此可以避免发生死锁。
      ▪优点:简单、易于实现且很安全。
      ▪缺点:资源被严重浪费,使进程延迟运行。
    2. 破坏不剥夺:当一个已经保持了某些资源的进程,再提出新的资源请求而不能立即得到满足时,必须释放它已经保持了的所有资源。待以后需要时再重新申请。从而摒弃了“不剥夺”条件。
      ▪缺点:实现起来比较复杂且要付出很大代价
    3. 破坏环路等待:系统将所有资源按类型进行线性排队,并赋予不同的序号。 所有进程对资源的请求必须严格按照资源序号递增的次序提出
  16. 死锁的检测与解除

    死锁的检测——资源分配图,死锁定理

    1. 死锁定理:如果资源分配图中不存在环路,则系统中不存在死锁;反之,如果资源分配图中存在环路,则系统中可能存在死锁,也可能不存在死锁。
    2. 若能消去资源分配图中所有结点的连接边,使全部结点都成为孤立结点,则称该图是可完全简化图;若不能使该图完全简化,则称该图是不可完全化简图。可以证明:当且仅当系统某状态S所对应的资源分配图是不可完全化简的,则S是死锁状态。该充分条件称为死锁定理

    死锁的解除——当发现有进程死锁时,常采用的两种方法是解除死锁:
    (1)剥夺资源。从其它进程剥夺足够数量的资源给死锁进程,以解除死锁状态。
    (2)撤消进程。最简单的撤消进程的方法,是使全部死锁进程都夭折掉;或者按照某种顺序逐个地撤消进程,直至有足够的资源可用,使死锁状态消除为止。

存储器管理

  1. 存储器管理的基本任务

    1. 主存储器的分配和管理:按用户要求把适当的存储空间分配给相应的作业。一个有效的存储分配机制,应在用户请求时能作出快速的响应,分配相应的存储空间;在用户不再使用它时,应立即回收,以供其他用户使用。为此,这个存储分配机制应具有如下功能:
      • 记住每个存储区域的状态:哪些是已分配的,哪些是可以用作分配的。
      • 实施分配:在系统程序或用户提出申请时,按所需的量给予分配;修改相应的分配记录表。
      • 接受系统或用户释放的存储区域:并相应地修改分配记录表。
    2. 提高主存储器的利用率:使多道程序能动态地共享主存,最好能共享主存中的信息。
    3. “扩充”主存容量:这是借助于提供虚拟存储器或其它自动覆盖技术来达到的。即为用户提供比主存的存储空间还大的地址空间。
    4. 存储保护:确保各道用户作业都在所分配的存储区内操作,互不干扰。即要防止一道作业由于发生错误而损害其它作业,特别需要防止破坏其中的系统程序。这个问题不能用特权指令来加以解决,而必须由硬件提供保护功能,并由软件配合实现。
  2. 重定位的基本概念,为什么引入,动态重定位的概念、实现方式,什么情况下需要重定位

    装入内存时,相对地址(数据、指令地址)要作出相应的修改以得到正确的物理地址,这个修改的过程称为重定位。

    源程序经过编译产生的目标模块一般总是从0开始编址的,其中的地址都是相对于起始地址的相对地址。在将目标模块经过链接装入内存时,其分配到的内存空间的起始地址通常不为0,因此指令和数据的实际物理地址和装入模块内的相对地址是不同的,为了使程序能够正确执行,必须将相对地址转换成物理地址,即进行重定位

    静态重定位:地址变换是在装入内存时一次完成的,且以后不能
    移动。

    动态重定位:装入程序将装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序执行时进行。在硬件地址变换机构的支持下,随着对每条指令或数据的访问自动进行地址变换,故称为动态重定位。

    在内存分配过程中,不免出现许多不可利用的小的空闲空间以至于造成了内存的利用率不高。如果让已经存在的程序紧凑起来,那么,那些不可利用的小的空闲空间也就连成了更大的空闲空间以供利用,移动已经在内存中的程序就是动态重定位。

    实现方式:要在不影响指令执行速度的同时实现地址变换,必须有硬件地址变换机构的支持,即须在系统中增设一个重定位寄存器,用它来存放程序在内存中的起始地址。程序在执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的。

  3. 比较连续分配和离散分配,连续分配的三种方式

    (1)连续分配是指为一个用户程序分配一个连续的地址空间,包括单一连续分配方式,分区式分配方式(固定分区和动态分区),动态重定位分区(引入了紧凑)三种分配方式。单一方式将内存分为系统区和用户区,最简单,只用于单用户单任务操作系统;分区方式分固定和动态分区。
    (2)离散分配方式分为分页、分段和段页式存储管理。分页式存储管理旨在提高内存利用率,分段式存储管理旨在满足用户(程序员)的需要,段页式存储管理则将两者结合起来,具有分段系统便于实现、可共享、易于保护和动态链接等优点,又能像分页系统很好解决外部碎片及为各段可离散分配内存等问题,是比较有效的存储管理方式。

    连续分配方式不需要额外的硬件支持,且实现算法相对简单。但是在很多情况下会造成内存利用率低,系统吞吐量小和CPU利用率低等情况,虽然可以通过紧凑等方式有所调节,但是紧凑也会造成很大的系统开销。

    离散分配方式需要额外的硬件支持,且实现的算法相对比较复杂,但是出于用户或操作系统的角度,离散分配方式在系统性能上或实现功能上明显比连续分配更灵活。比如信息的保护和共享等等方面,离散比连续更加容易实现。

  4. 动态分区分配方式:分配、回收算法

    首次适应算法,最佳适应算法,最差适应算法,下次适应算法

  5. 动态可重定位分区分配

    动态重定位:改变程序驻留位置后的地址重定位问题解决方法

    紧凑:将内存中的所有作业进行移动,使它们全都相邻接,这样,可把原来分散的多个小分区合成一个大分区。这种技术称为存储器的“紧凑”。(减少由于外零头造成的浪费)

    在动态运行时转入的方式中,作业装入内存后的所有地址仍然都是相对逻辑地址。而将相对地址转换为绝对(物理)地址的工作被推迟到程序指令要真正执行时进行。为使地址的转换不会影响到指令的执行速度,必须有硬件地址变换机构的支持,程序在执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的。
    地址变换过程是在程序执行期间,随着对每条指令或数据的访问自动进行的,故称为动态重定位。当系统对内存进行了“紧凑”,而使若干程序从内存的某处移至另一处时,不需对程序做任何修改,只要用该程序在内存的新起始地址去置换原来的起始地址即可。

  6. 基本分页存储管理方式:为什么引入;地址变换机构和过程(含具有快表的情况)

    分页的优点:彻底消除了外零头,仅存在很少的内零头, 提高了内存利用率。

  7. 基本分段存储管理方式:为什么引入;地址变换机构和过程(含具有快表的情况);信息的共享和保护

    分段引入原因:方便编程,信息共享,信息保护,动态增长,非常适合动态链接

    分段易于实现段的共享和段的保护

  8. 虚拟存储器的基本概念:为什么要引入;特征;实现虚拟存储的关键技术

    1. 虚拟存储器:是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。
    2. 虚拟存储器的特征:
      • 多次性:是指一个作业被分成多次调入内存运行。
      • 对换性:是指作业的运行过程中进行换进、换出。换进和换出能有效地提高内存利用率。
      • 虚拟性:是指能够从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际内存容量。
    3. 虚拟存储器的实现方法:
      • 分页请求系统:在纯分页系统的基础上增加了请求调页、页面置换两大功能所形成的页式虚拟存储系统。
        • 为了实现请求调页、页面置换两大功能,系统必须提供如下的硬件支持:1. 请求分页的页表机制。2. 缺页中断机构。3. 地址变换机构。
        • 此外,实现请求调页、页面置换两大功能还需得到OS的支持。①实现请求调页的软件②实现页面置换的软件
      • 请求分段系统:它是在纯分段系统的基础上增加了请求调段、分段置换两大功能所形成的段式虚拟存储系统。
        • 为了实现请求调段、分段置换两大功能,系统必须提供如下的硬件支持:1. 请求分段的段表机制。2. 缺段中断机构。3. 地址变换机构。
        • 此外,实现请求调段、分段置换两大功能还需得到OS的支持。
  9. 请求分页系统的基本原理:页表机制;地址变换过程;页面置换算法

    1. 工作原理:作业运行时,只将当前的一部分装入内存其余的放在辅存,一旦发现访问的页不在主存中,则发出缺页中断,由OS将其从辅存调入主存,如果内存无空块,则根据某种算法选择一个页淘汰以便装入新的页面。

    2. 请求页表机构:

      页号页框号(物理块号)状态位P访问字段A修改位M外存地址
      • 状态位(存在位)P:用于说明该页是否已调入内存,供程序访问时参考;D=0,该页不在内存。 D=1,该页在内存
      • 访问位A:用于记录本页在一段时间内被访问的次数,或最近已有多长时间未被访问,提供给置换算法选择换出页面时参考。A=0,该页未被访问。A=1,该页被访问
      • 修改位M:用于表示该页在调入内存后是否被修改过,也是提供给置换算法在换出页面时是否将该页面写回外存作参考。M=0,该页在内存中未被修改。M=1,该页在内存中已经被修改
      • 外存地址:用于指出该页在外存上的地址,供调入该页时使用。
    3. 地址变换过程。image.png

    4. 5种页面置换算法

  10. 访问内存的有效时间

    1. 假设使用了快表,则CPU访问内存时有以下三种情况:设内存读写周期为t,查找快表时间为λ,缺页中断处理时间为ɛ
    2. 页面在内存且页表项在快表中:只需一次访问内存 :EAT= λ + t
    3. 页面在内存但页表项不在快表中:需两次访问内存,一次读取页表,一次读取数据,另外还需更新快表:EAT= λ + t + t + λ=2(λ + t)
    4. 页面不在内存:考虑查找快表时间、查找页表时间、缺页中断处理时间、更新快表时间、访问实际物理地址时间:EAT= λ + t +ɛ + λ + t = ɛ + 2(λ + t)
    5. 引入快表命中率为α,缺页中断率为f,则有效访问内存时间为:EAT= λ + α t + (1- α)[t + f(t +ɛ +λ) + (1-f)(t +λ)]

设备管理

  1. I/O 控制方式:四种I/O 方式的基本原理;四种I/O 方式由低效到高效的演变

    1. 使用轮询的可编程I/O方式:程序I/O(Programmed I/O)方式,或称为忙——等待方式。处理机向控制器发出一条I/O指令启动输入设备输入数据时,同时把busy置为1,再不断循环测试busy。busy=0,完成输入,处理机读取数据,送入指定单元,完成一次I/O。对状态寄存器中的忙/闲标志busy的检查实现控制。
    2. 使用中断的可编程I/O方式:当某进程要启动某个I/O 设备工作时,便由CPU向相应的设备控制器发出一条I/O 命令,然后立即返回继续执行原来的任务。设备控制器于是按照该命令的要求去控制指定I/O 设备。此时,CPU与I/O 设备并行操作。
    3. DMA控制方式的特点:①数据传输的基本单位是数据块,即在CPU与I/O设备之间,每次传送至少一个数据块;②所传送的数据是从设备直接送入内存的,或者相反;③仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。
    4. I/O通道方式:I/O通道方式是DMA方式的发展,它可进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。 可实现CPU、通道和I/O设备三者的并行操作,从而更有效地提高整个系统的资源利用率
  2. 缓冲管理:缓冲的概念,为什么引入缓冲

    缓冲区是一个存储区域,可以由专门的硬件寄存器组成,也可利用内存作为缓冲区。

    引入缓冲区的目的:为了缓和CPU与I/O设备速度不匹配的矛盾;提高CPU和I/O设备的并行性; 减少对CPU的中断频率, 放宽对CPU中断响应时间的限制;解决数据粒度不匹配问题

  3. 单缓冲如何提高I/O 速度,它存在哪些不足,双缓冲、循环缓冲又如何提高CPU 与I/O 设备的并行性

    单缓冲:在设备和处理机之间设置一个缓冲。设备与处理机交换数据时,先把交换的数据写入缓冲区,然后需要数据的设备/处理机再从缓冲区中取走数据。

    双缓冲:在设备输入时,先将数据送入第一缓冲区,装满后便转向第二缓冲区。此时操作系统可以从第一缓冲区中移出数据,并送入用户进程

    环形缓冲区方式 (1)多个缓冲区。 每个缓冲区的大小相同。 (2)缓冲区可分成三种类型:① 空缓冲区Empty,用E表示,用于存放输入数据;② 已装满数据的缓冲区Full,用F表示,其中的数据提供给计算进程使用;③ 现行工作缓冲区Current,用C表示,这是计算进程正在使用的缓冲区。

  4. 缓冲池是为了解决什么问题而引入,引入缓冲池后系统将如何处理I/O 设备和CPU 间的数据输送

    上述三种缓冲区的组织形式仅适用于某种特定的I/O进程和计算进程,属于专用缓冲。当系统中的设备很多时,将会有许多这样的循环缓冲区,消耗大量的内存空间,而且其利用率也不高。为了提高缓冲区的利用率,可以采用公共缓冲池技术,其中的缓冲区可为多个设备和进程服务。

  5. 缓冲池的工作方式及Getbuf和Putbuf过程

    缓冲池的四种工作方式:

    1. 收容输入
    2. 提取输入
    3. 收容输出
    4. 提取输出
  6. 设备独立性:什么是设备独立性,如何实现设备独立性,设备驱动程序(了解)

    1. 设备独立性的概念:设备独立性的概念为了提高OS 的可适应性和可扩展性,在现代OS 中都毫无例外地实现了设备独立性(Device Independence),也称为设备无关性。其基本含义是: 应用程序独立于具体使用的物理设备。
    2. 设备独立性软件的主要功能可分为以下两个方面:(1) 执行所有设备的公有操作。(2) 向用户层(或文件层)软件提供统一接口
  7. 虚拟设备:什么是虚拟设备,实现虚拟设备的关键技术(了解)

  8. SPOOLing 技术,SPOOLing技术的组成,如何利用SPOOLing 技术实现共享打印机(了解)

    在主机的直接控制下,实现脱机输入、输出功能。此时的外围操作与CPU对数据的处理同时进行,我们把这种在联机情况下实现的同时外围操作称为SPOOLing(Simultaneaus Periphernal Operating On Line),或称为假脱机操作。

    其工作原理为:①在磁盘中开辟若干区域,形成“共享设备”,当某作业或进程请求分配独占设备时,系统就分配给它共享设备中的某一部分,使其与独占设备相关联。②在用户申请独占设备时,用户实际得到的是磁盘上的一块区域。③采用“预输入”和“缓输出”策略,以提高低速、独占设备的利用率。

  9. 磁盘调度的目标,磁盘访问时间的计算,FCFS、SSTF、SCAN、CSCAN 等算法的应用;各算法的性能比较

文件管理

  1. 文件的逻辑结构:顺序文件、索引文件和索引顺序文件,原理和特征,组织方式、访问方法及各种文件形式的比较

    1. 顺序文件,指由一系列记录按某种顺序排列所形成的文件,其中的记录可以是定长记录或可变长记录。批量存取时效率高;但是单个记录查改性能差,长度限制,增加或删除困难
    2. 索引文件,指为可变长记录文件建立一张索引表,为每个记录设置一个表项,以加速对记录的检索速度。对单个文件的查找、插入和删除速度快,但索引增加了存储开销。
    3. 索引顺序文件,这是顺序文件和索引文件相结合的产物,这里,在为每个文件建立一张索引表时,并不是为每一个记录建立一个索引表项,而是为一组记录中的第一个记录建立一个索引表项。
  2. 外存分配方式:连续分配、链接分配和索引分配原理、优缺点(显示链接FAT、增量式索引分配)

    1. 连续分配(Continuous Allocation)要求为每一个文件分配一组相邻接的盘块。一组盘块的地址定义了磁盘上的一段线性地址。把逻辑文件中的数据顺序地存储到物理上邻接的各个数据块中,这样形成的物理文件可以进行顺序存取。文件目录中为每个文件建立一个表项,其中记载文件的第一个数据块地址及文件长度。对于顺序文件,连续读/写多个数据块内容时,性能较好。

      • 连续分配的主要优点:(1)顺序访问容易。 能很快检索文件中的一个数据块。(2) 顺序访问速度快。磁头移动距离短,效率最高
      • 缺点:(1)要求有连续的存储空间。 该分配方案可能会导致磁盘碎片,严重降低外存空间的利用率。(2) 必须事先知道文件的长度。空间利用率不高;(3) 不能灵活的删除和插入数据 (4)不利于文件尺寸的动态增长。
    2. 链接文件:采用链接分配方式时,可通过在每个盘块上的链接指针,将同属于一个文件的多个离散的盘块链接成一个链表,把这样形成的物理文件称为链接文件。

      优点:消除了磁盘的外部碎片,提高了外存的利用率;对插入、删除和修改记录都非常容易;能适应文件的动态增长

      • 隐式链接:在采用隐式链接分配方式时,在文件目录的每个目录项中,都须含有指向链接文件第一个盘块和最后一个盘块的指针。每个盘块中都含有一个指向下一个盘块的指针。隐式链接分配方式的主要问题在于:它只适合于顺序访问,它对随机访问是极其低效的。
      • 显式链接:这是指把用于链接文件各物理块的指针,显式地存放在内存的一张链接表中。整个磁盘仅设置一张文件分配表(FAT)。
        • 在该表中,凡是属于某一文件的第一个盘块号,均作为文件地址被填入相应文件的FCB 的“物理地址”字段中。
        • 查找记录的过程是在内存中进行的,因而不仅显著地提高了检索速度,而且大大减少了访问磁盘的次数。
        • 由于分配给文件的所有盘块号都放在该表中,故把该表称为文件分配表FAT (File Allocation Table)。
    3. 单级索引分配:索引分配能解决连续分配和链接分配存在的诸多问题。原理:为每个文件分配一个索引块(表),再把分配给该文件的所有盘块号都记录在该索引块中,因而该索引块就是一个含有许多盘块号的数组。在建立一个文件时,只需在为之建立的目录项中填上指向该索引块的指针。

      • 优点:索引分配方式支持直接访问。基于数据块的分区能消除外部碎片
      • 缺点:索引块可能要花费较多的外存空间。每当建立一个文件时,便须为之分配一个专门的索引块,将分配给该文件的所有盘块号记录于其中。对于小文件如果采用这种方式,索引块的利用率将是极低的。大文件索引项较多,可能使一个数据块容纳不了一个文件的所有分区的索引。
    4. 多级索引分配

    5. 混合索引方式

  3. 目录管理:目录管理的要求,文件控制块(FCB)索引结点,目录结构:单级、两级和多级

    目录管理的要求:

    • 实现“按名存取”
    • 提高对目录的检索速度
    • 文件共享
    • 允许文件重名

    文件控制块(FCB):用于描述和控制文件的数据结构

    文件目录:文件控制块的有序集合。

    索引节点:把文件名和文件描述信息分开,使文件描述信息单独形成一个成为索引节点的数据结构

    在Linux中:

    1. 目录文件内容:一系列目录项(dirent)的列表,每个目录项由两部分组成:所包含文件的文件名;文件名对应的索引节点(inode)号
    2. 文件在内核中的表现形式:文件描述符表,文件表,索引节点

    单级目录结构:所有用户的全部文件目录保存在一张目录表中,每个文件的目录项占用一个表项。

    单级目录的优点是简单且能实现目录管理的基本功能——按名存取存在下述一些缺点: (1) 查找速度慢 (2) 不允许重名 (3) 不便于实现文件共享

    两级目录结构:主文件目录MFD、用户文件目录UFD

    • 一定程度解决了重名问题,提高了文件目录检索效率,简单的文件共享
    • 问题:不便用户文件的逻辑分类;进一步解决重名、共享、检索效率等问题

    多级目录结构:

    (1)目录结构:多级目录结构又称为树型目录结构,主目录在这里被称为根目录,把数据文件称为树叶,其它的目录均作为树的结点。

    (2)路径名:从树的根(即主目录)开始,把全部目录文件名与数据文件名,依次地用“/”连接起来,即构成该数据文件的路径名(path name)。系统中的每一个文件都有惟一的路径名。

    (3)当前目录:为每个进程设置一个“当前目录”,又称为“工作目录”进程对各文件的访问都相对于“当前目录”而进行。

  4. 文件磁盘空间管理:空闲表法和空闲链法,位示图法:分配和回收的具体计算

    1. 空闲分区表:空闲表法属于连续分配方式,它为每个文件分配一块连续的存储空间,即系统也为外存上的所有空闲区建立一张空闲表,每个空闲区对应于一个空闲表项,其中包括表项序号、该空闲区的第一个盘块号、该区的空闲盘块数等信息。适合于可变大小分区的连续分配方式。

    2. 空闲链表法是将所有空闲盘区拉成一条空闲链。根据构成链所用基本元素的不同,可把链表分成两种形式:空闲盘块链、空闲盘区链

      • 空闲盘块链:将磁盘上的所有空闲空间,以盘块为单位拉成一条链。当用户因创建文件而请求分配存储空间时,系统从链首开始,依次摘下适当数目的空闲盘块分配给用户。当用户因删除文件而释放存储空间时,系统将回收的盘块依次插入空闲盘块链的末尾。
      • 空闲盘区链:将磁盘上的所有空闲盘区(每个盘区可包含若干个盘块)拉成一条链。在每个盘区上含有用于指示下一个空闲盘区的指针和能指明本盘区大小(盘块数)的信息。分配盘区的方法与内存的动态分区分配类似,通常采用首次适应算法。在回收盘区时,同样也要将回收区与相邻接的空闲盘区相合并。
    3. 位示图:利用二进制位0、1表示存储空间中存储块的使用状态。空闲分区:0,已分配分区:1(或者相反)。磁盘上的所有盘块都有一个二进制位与之对应,这样,由所有盘块所对应的位构成一个集合,称为位示图。通常可用m × n 个位数来构成位示图,并使m × n等于磁盘的总块数。

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Linux操作系统编程是指使用Linux操作系统进行开发和编程的一门学科。电子科技大学(UESTC)是中国著名的高等学府,以信息与通信类学科为特色,其计算机科学与技术专业在该领域具有较高的声誉。 在Linux操作系统编程中,学生们将学习如何使用Linux作为开发平台,进行软件和应用的开发。他们将了解Linux操作系统的基本架构,理解各个组件之间的相互关系。学生将学习使用Linux系统提供的API(应用程序接口),掌握系统调用和应用编程接口的使用方法。他们将掌握基本的Linux命令行操作,了解Linux文件系统的结构和管理方法。 除了基本的操作系统知识和技能,学生还将学习Linux下的多任务处理和进程管理,理解进程通信和同步的方法。他们将学习如何使用Linux的网络编程接口进行网络应用的开发,如TCP/IP通信、Socket编程等。此外,他们还将了解Linux下的设备驱动程序开发,学习如何编写设备驱动程序以实现硬件和软件的交互。 电子科技大学作为一所具有丰富计算机科学与技术资源的高校,为学生提供了优质的实验环境和教学资源。学生将有机会参与各种实践项目,深入了解Linux操作系统的内部机制和编程模式。学校还与相关企业合作,提供实习和就业机会,帮助学生将所学知识应用到实际项目中。 之,Linux操作系统编程是一门重要的学科,通过学习Linux操作系统的原理和应用编程,学生能够全面了解和掌握操作系统的工作原理和开发方法。而电子科技大学是一所提供优质教育资源的高校,为学生提供了良好的学习和实践平台。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明月出天山_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值