操作系统 空分复用_时分复用频分复用码分复用空分复用 - CSDN
  • 操作系统原理总结

    2018-07-10 23:15:47
    转载:... 操作系统的资源管理技术资源管理解决物理资源数量不足和合理分配资源这两个问题。 操作系统虚拟机为用户提供了一种简单、清晰、易用、高效的计算机模型。虚拟机的每种资源...

    转载:https://blog.csdn.net/yanglingwell/article/details/53745758 


    操作系统原理总结

    made by @杨领well (yanglingwell@sina.com)

    一、基础知识点

    1. 操作系统的资源管理技术

    资源管理解决物理资源数量不足合理分配资源这两个问题。
    PM2VM
    操作系统虚拟机为用户提供了一种简单、清晰、易用、高效的计算机模型。虚拟机的每种资源都是物力资源通过复用虚拟抽象而得到的产物。
    虚拟机提供进程运行的逻辑计算环境。从概念上来说,一个进程运行在一台虚拟机上,可以认为一个进程就是一台虚拟机,一台虚拟机就是一个进程。

    • 复用空分复用共享时分复用共享
      a. 空分复用共享(space-multiplexed sharing): 将资源从“空间”上分割成更小的单位供不同进程使用。在计算机系统中,内存和外存(磁盘)等是空分复用共享的。
      b. 时分复用共享(time-multiplexed sharing): 将资源从“时间”上分割成更小的单位供不同进程使用。在计算机系统中,处理器和磁盘机等是时分复用共享的。

    • 虚拟:对资源进行转化、模拟或整合,把一个物理资源转变成多个逻辑上的对应物,也可以把多个物理资源变成单个逻辑上的对应物,即创建无须共享独占资源的假象,或创建易用且多于实际物理资源的虚拟资源假象,以达到多用户共享一套计算机物理资源的目的。虚拟技术可用于外部设备(外部设备同时联机操作(SPOOLing)),存储资源(虚拟内存)和文件系统(虚拟文件系统(Virtual File System, VFS))中。

      复用和虚拟相比较,复用所分割的是实际存在的物理资源,而虚拟则实现假想的同类资源。虚拟技术解决某类物理资源不足的问题,提供易用的虚拟资源和更好的运行环境。

    • 抽象:通过创建软件来屏蔽硬件资源的物理特性和实现细节,简化对硬件资源的操作、控制和使用。

      复用和虚拟的主要目标是解决物理资源数量不足的问题,抽象则用于处理系统复杂性,重点解决资源易用性。

    2. 系统调用

    • 系统调用: 为给应用程序的运行提供良好环境,内核提供了一系列具有预定功能的服务例程,通过一组称为系统调用(System Call)的接口呈现给用户,系统调用把应用程序的请求传送至内核,调用相应的服务例程完成所需处理,将处理结果返回给应用程序。
      OS_System_Call

      注:系统调用的编号称为功能号

    • 系统调用的执行过程: 当CPU执行程序中编写的由访管指令(supervisor, 也称自陷指令(trap)或中断指令(interrupt), 指引起处理器中断的机器指令)实现的系统调用时会产生异常信号,通过陷阱机制(也称异常处理机制,当异常或中断发生时,处理器捕捉到一个执行线程,并且将控制权转移到操作系统中某一个固定地址的机制),处理器的状态由用户态(user mode, 又称目态或普通态)转变为核心态(kerbel mode, 又称管态或内核态),进入操作系统并执行相应服务例程,以获得操作系统服务。当系统调用执行完毕时,处理器再次切换状态,控制返回至发出系统调用的程序。

    • 系统调用是应用程序获得操作系统服务的唯一途径

    系统调用的作用
    1. 内核可以基于权限和规则对资源访问进行裁决,保证系统的安全性。
    2. 系统调用对资源进行抽象,提供一致性接口,避免用户在使用资源时发生错误,且编程效率大大提高。

    系统调用与函数调用的区别
    1. 调用形式和实现方式不同。功能号 VS 地址; 用户态转换到内核态 VS 用户态。
    2. 被调用代码的位置不同。 动态调用 + 操作系统 VS 静态调用 + 用户级程序。
    3. 提供方式不同。 操作系统 VS 编程语言。

    3. 操作系统内核

    • 内核: 是一组程序模块,作为可信软件来提供支持进程并发执行的基本功能和基本操作,通常驻留在内核空间,运行于内核态,具有直接访问硬件设备和所有内存空间的权限,是仅有的能够执行特权指令的程序。

    • 内核的功能:
      a. 中断处理。中断处理是内核中最基本的功能,也是操作系统赖以活动的基础。
      b. 时钟管理。时钟管理是内核的基本功能。
      c. 短程调度。短程调度的职责是分配处理器,按照一定的策略管理处理器的转让,以及完成保护和恢复现场工作。
      d. 原语管理。 原语是内核中实现特定功能的不可中断过程。

    内核是操作系统对裸机的第一次改造,内核和裸机组成了第一层虚拟机,进程在虚拟机上运行。


    4. 处理器状态: 内核态和用户态

    • 仅在内核态下才能使用的指令称为特权指令,执行这些指令不仅影响运行程序自身,而且还会干扰其他程序及操作系统。 非特权指令在内核态和和用户态下都能工作。

    现代计算机为处理器建立硬件标志位,称处理器状态位,通常是程序状态字(Program Status Word, PSW)中的一位,来将处理器的状态设置为内核态或用户态。

    • 用户态向内核态转换的情况:
      a. 程序请求操作系统服务, 执行系统调用。
      b. 在程序运行时产生中断事件(如I/O操作完成),运行程序被中断,转向中断处理程序处理。
      c. 在程序运行时产生异常事件(如在目态下执行特权指令),运行程序被打断,转向异常处理程序工作。

    以上三种情况都是通过中断机制发生,可以说中断和异常是用户态到内核态转换的仅有途径。

    • 用户栈和核心栈
      a. 用户栈是用户进程空间中的一块区域。用于保存应用程序的子程序(函数)间相互调用的参数,返回值,返回点和子程序的局部变量。
      b. 核心栈是内存中操作系统空间的一块区域。用于保存中断现场和保存操作系统程序(函数)间相互调用的参数,返回值,返回点和程序的局部变量。

    5. 中断(Interupt)

    • 中断:程序执行过程中遇到急需处理的事件时,暂时终止现行程序在CPU上的运行,转而执行相应的事件处理程序,待处理完成后再返回断点或调度其他程序的执行过程。

    • 中断的分类:
      a. 外中断(又称中断或异步中断): 来自处理器之外的中断信号,如,时钟中断、键盘中断等。外中断可分为可屏蔽中断和非可屏蔽中断。
      b. 内中断(又称异常或同步中断),来自处理器内部的中断信号,如,访管中断,硬件故障中断,程序性中断等。内中断不能被屏蔽

    • 中断和异常的响应: 发现中断源 → 保护现场 → 转向中断/异常事件处理程序执行 → 恢复现场

    6. 进程

    • 进程:具有独立功能的程序在某个数据集合上的一次运行活动,也是操作系统进行资源分配和保护的基本单位。
      a. 从原理角度看,进程是支持程序执行的一种系统机制,它对处理器上运行程序的活动进行抽象。
      b. 从实现角度看,进程是一种数据结构,用来准确地刻画运行程序的状态和系统动态变化状况。

    • 进程状态的七态模型

      OS_SEVEN

      a. 新建态(new): 进程被创建,尚未进入就绪队列。
      b. 就绪态(ready): 进程具备运行条件,等待系统分配处理器。
      c. 挂起就绪态(ready suspend):进程具备运行条件,但目前在外存中。
      d. 运行态(running): 进程占有处理器正在运行。
      e. 终止态(exit): 进程达到正常结束点或被其他原因所终止,下一步将被撤销。
      f. 等待态(wait): 又称阻塞态或休眠态。进程正在等待某个事件完成,目前不具备运行条件。
      g. 挂起等待态(blocked suspend): 进程正在等待某个事件完成,并且在外存中。

    • 程序和数据刻画进程的静态特征,称为进程控制块的一种数据结构刻画进程的动态特征。进程映像(process image)包括进程控制块、进程程序块、进程核心块、进程数据块等要素。

    • 进程控制块(Process Control Block, PCB):进程存在的唯一标识,操作系统掌握进程的唯一资料结构和管理进程的主要依据。包括标识信息、现场信息和控制信息等信息。

    • 进程队列(process queue):处于同一状态的所有进程的PCB链接在一起的数据结构。 有两种队列组织方式:链接方式和索引方式。

    • 进程切换必定在内核态而非用户态发生。

    • 进程可以分为两部分,资源集合和线程集合。进程要支撑线程运行,为线程提供虚拟地址空间和各种资源。进程封装管理信息,线程封装执行信息。

      OS_MultiThread

    7. 处理器调度

    • 处理器调度层次:
      OS_Scheduling
      a. 高级调度: 又称作业调度、长程调度。从输入系统的一批作业(job, 用户提交给操作系统计算的一个独立任务)中按照预定的调度策略挑选若干作业进入内存,为其分配所需资源并创建对应作业的用户进程。
      b. 中级调度: 又称平衡调度,中程调度。根据内存资源情况决定内存所能容纳的进程数目,并完成外存和内存中进程对换工作。
      c. 低级调度:又称进程调度/线程调度,短程调度。根据某种原则决定就绪队列中那个进程/线程先获得处理器,并将处理器出让给它使用。

    • 低级调度算法:
      a. 先来先服务(First Come First Server, FCFS)算法
      b. 最短作业优先(Shortest Job First, SJF)算法
      c. 最短剩余时间优先(Shortest Remaining Time First, SRTF)算法: 假设当前某进程/线程正在运行,如果有新进程/线程移入就绪队列,若它所需的CPU运行时间比当前运行的进程/线程所需的剩余CPU时间还短,抢占式最短作业优先算法强行剥夺当前执行者的控制权,调度新进程/线程执行。
      d. 最高响应比优先(Highest Response Ratio First, HRRF)算法:非剥夺式算法。其中,响应比 = (作业已等待时间 + 作业处理时间) / 作业处理时间。
      e. 优先级调度算法:优先级高的选择进程/线程优先选择。
      f. 轮转调度(Round-Robin, RR)算法: 也称时间片调度。就绪队列的进程轮流运行一个时间片。
      g. 多级反馈队列(Multi-Level Feedback Queue, MLFQ)算法

      衡量调度算法的性能指标:
      a. 资源利用率: CPU利用率 = CPU有效工作时间/(CPU有效工作时间 + CPU空闲等待时间)
      b. 吞吐率: 单位时间内CPU处理作业的个数。
      c. 公平性: 确保每个进程都能获得合理的CPU份额和其他资源份额,不会出现饥饿现象。
      d. 响应时间: 从交互式进程提交一个请求(命令)直到获得响应之间的时间间隔。
      e. 周转时间: 批处理用户从向系统提交作业开始到作业完成为止的时间间隔。
      平均周转时间:T = (ni=1ti∑i=1nti ) / n , 其中 titi 表示作业i的周转时间。
      平均带权作业周转时间: T = (ni=1wi∑i=1nwi) / n, 其中 wi=ti/tkwi=ti/tktiti 表示作业i的周转时间。 tktk 表示作业i的运行时间。

    8. 进程的交互

    • 进程互斥(Mutual Exclusion): 若干进程因相互抢夺独占型资源而产生的竞争制约关系。
    • 进程同步(Synchronization): 为完成共同任务的并发进程基于某个条件来协调其活动,因为需要在某些位置上排定执行的先后次序而等待、传递信息或消息所产生的协作制约关系。

      资源竞争会引发两个控制问题:
      a. 死锁: 一组进程因争夺资源陷入永远等待的状态。
      b. 饥饿: 一个可运行进程由于由于其他进程总是优先于它,而被调度程序无限期地拖延而不能被执行。

    9. 临界区管理

    • 并发进程中与共享变量有关的程序段称为临界区(Critical Section)。共享变量所代表的资源称为临界资源(Critical Resource),即一次仅能供一个进程使用的资源。

    • 临界区调度原则:
      a. 择一而入。 一次之多只有一个进程进入临界区内执行。
      b. 忙则要等。 如果已有进程在临界区中, 试图进入此临界区的其他进程应等待。
      c. 有限等待。 进入临界区内的进程应在有限时间内退出。

    • 临界区管理的软件算法:Peterson算法
      为每个进程设置标志,当标志值为 true 时表示该进程要求进入临界区,另外再设置一个指示器 turn 以指示可以由哪个进程进入临界区,当 turn = i 时则可由 Pi 进入临界区。

      /* Peterson 算法 */
      
      bool inside[2];
      inside[0] = false;
      inside[1] = false;
      enum { 0, 1 } turn;
      
      /* 进程0 */
      process P0(){
          inside[0] = true;               //请求...
          turn = 1;
          while(inside[1] && turn == 1) ; //等待...
      
          /*临界区 */
      
          inside[0] = false;              //归还...
      }
      
      /* 进程1 */
      process P1(){
          inside[1] = true;               //请求...
          turn = 0;
          while(inside[0] && turn == 0) ; //等待...
      
          /*临界区 */
      
          inside[1] = false;              //归还...
      }
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28

      Peterson算法满足临界区管理的三个原则。

    • 临界区管理的硬件设施:
      a. 关中断。 在进程进入临界区时关中断,进程退出临界区时开中断。
      b. 测试并设置指令。 利用机器指令TS(Test and Set)实现临界区的上锁和开锁原语操作。
      c. 对换指令。 利用对换指令实现临界区的上锁和开锁原语操作。

    10. 信号量(samaphore)和PV操作

    PV操作都是原语操作, 不可中断。

    • 信号量和PV操作

      // 信号量
      typedef struct semaphore {
          int value;                 // 信号量值
          struct pcb* list;          // 指向“等待该信号量的进程队列”的指针
      };  
      
      // P操作
      void P(semaphore s){
          s.value--;                 // 信号量值减一
      
          // 如果信号量值小于0, 执行P操作的进程调用sleep(s.list)阻塞自己,
          // 被置成“等待信号量s”状态,并移入s信号量队列,转向进程调度程序。
          if(s.value < 0) sleep(s.list);
      }
      
      // V操作
      void V(semaphore s){
          s.value++;                 // 信号量值加一
      
          // 如果信号量小于等于0, 则调用wakeup(s.list)释放一个等待信号量s的进程,
          // 并转换成就绪态, 进程则继续执行。
          if(s.value <= 0) wakeup(s.list);
      }
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23

      a. 若信号量值 s.value 为正值, 此值等于在封锁进程之前对信号量 s 可施行P操作的次数,即,s所代表的实际可用的资源数。
      b. 若信号量值 s.value 为负值, 其绝对值等于登记在 s 信号量队列中的等待进程的数目。
      c. 通常P操作意味着请求一个资源,V操作意味着释放一个资源。在一定条件下,P操作也可表示挂起进程的操作,V操作代表唤醒被挂起进程的操作。

    • 信号量实现互斥

      semaphore mutex;
      mutex = 1;
      
      //进程Pi, i = 12 ..., n
      process Pi(){
          P(mutex);
      
          /* 临界区 */
      
          V(mutex);
      }
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11

    11. 管程

    • 管程(monitor):代表共享资源的数据结构及并发进程在其上执行的一组构成就构成管程,管程被请求和释放资源的进程锁调用。

      OS_manitor

      a. 条件变量。 管程内的一种数据结构。只有在管程中才能被访问,进程可以在条件变量上等待或被唤醒。只能通过 wait()signal() 原语操作来控制。
      b. wait() 原语。 挂起调用进程并释放管程,直至另一个进程在条件变量上执行 signal()
      c. signal() 原语。如果有其他的进程因对条件变量执行 wait() 而被挂起,便释放之。 如果没有进程在等待,那么相当于空操作,信号不被保存。

    12. 死锁

    • 死锁的主要解决方法: 死锁防止、死锁避免、死锁检测和恢复。

    • 死锁产生的必要条件:
      a. 互斥条件。 临界资源是独占资源,进程应互斥且排他地使用这些资源。
      b. 占有和等待条件。 进程在请求资源得不到满足而等待时,不释放已占有的资源。
      c. 不剥夺条件。已获资源只能由进程资源释放,不允许被其他程序剥夺。
      d. 循环等待条件。 存在循环等待链,其中每个进程都在等待下一个进程所持有的资源。

      死锁的防止就是去破坏死锁产生的必要条件。 如,使资源可同时使用(破坏互斥条件)、静态分配资源(破坏占有和等待条件)、剥夺调度(破坏不剥夺条件)、层次分配策略(循环等待条件)等。

    • 死锁避免: 银行家算法 (额…自己百度去吧。 = =!)

    • 死锁检测和恢复: 进程-资源分配图(额…还是去百度吧。)
      a. 如果进程-资源分配图中无环路,此时系统没有死锁。
      b. 如果进程-资源分配图中有环路,且每个资源类中只有一个资源,则系统发生死锁。
      c. 如果进程-资源分配图中有环路,且所涉及的资源类有多个资源,则不一定会发生死锁。

    13. 可变分区存储管理

    • 可变分区存储分配算法:
      a. 最先适应分配算法。从未分配区的开始位置开始扫描,在找到的第一个能满足长度要求的空闲区上分配存储空间。
      b. 下次适应分配算法。从未分配区上次扫描结束处开始顺序查找,在找到的第一个能满足长度要求的空闲区上分配存储空间。
      c. 最优适应分配算法。扫描整个未分配区,选择能满足用户进程要求的最小分区分配存储空间。
      d. 最坏适应分配算法。扫描整个未分配区,选择能满足用户进程要求的最大分区分配存储空间。
      e. 快速适应分配算法。为经常用到的长度的空闲区设立单独的空闲区链表。

    14. 分页存储管理

    • 基本概念:
      a. 页面进程逻辑地址空间分成大小相等的区,每个区称为页面或页。(@杨领well注: 页面的本质是逻辑地址空间)
      b. 页框(kuàng, 0.0)。 又称页帧。内存物理地址空间分成大小相等的区,其大小和页面大小相等,每个区就是一个页框。(@杨领well注: 页框的本质是物理地址空间)
      c. 逻辑地址。分页存储器的逻辑地址由页号和页内偏移两部分组成。

      OS_PageOffset

      d. 内存页框表。页框表的表项给出物理块使用情况:0为空闲,1为占用。
      e. 页表。页表是操作系统为进程建立的,是程序页面和内存页框的对照表,页表的每一栏指明程序中的某一页面和分得的页框之间的关系。

    • 分页存储管理的地址转换

      OS_PageTable

    • 翻译快表:也称转换后援缓冲(Translation Look_aside Buffer, TLB)。用来存放进程最近访问的部分页表项。(@杨领well注: 翻译快表之于页表类似于Cache之于存储器)

    • 二级页表:把整个页表分割成许多小页表,每个称为页表页,每个页表页含有若干个页表表项。页表页允许分散对应不连续的页框。为了找到页表页,应建立地址索引,称为页目录表,其表项指出页表页起始地址。

    • 二级页表实现逻辑地址到物理地址转换的过程: 由硬件“页目录表基址寄存器”指出当前运行进程的页目录表的内存起始地址,加上“页目录位移”作为索引,可找到页表页在内存的起始地址,再以“页目录位移”作为索引,找到页表页在内存的起始位置,再以“页表页位移”作为索引,找到页表页的表项,此表项中包含一个页面对应的页框号,由页框号和页内偏移便可生成物理地址。

      OS_TwoLvPageTable

      @杨领well注: 类比于书的目录,找某一段内容的时候,先在目录上找到对应的章节,再在对应的章节下面找具体的知识点。比如,我要在《操作系统原理》中查“多级页表”。首先我知道它是在存储管理一章的,于是就找到了“第四章 存储管理”(类似于找到了页目录表)。 然后在第四章下面找“多级页表”(类似于在页目录表下面找具体的页表页)。最后找到“多级页表”对应的页码(类似于在页表页中找到其对应的页框)。最后查阅对应的章节页码(类似于读取对应页框的数据)。

    15. 分段存储管理

    OS_Segment

    分段和分页的比较:
    a. 分段是信息的逻辑单位,由源程序的逻辑结构及含义所决定,是用户可见的,段长由用户根据需要来确定,段起始地址可以从任何内存地址开始。引入的目的是满足用户模块化程序设计的需要
    b. 分页是信息的物理单位,与源程序的逻辑无关,是用户不可见的,页长由系统(硬件)决定,页面只能从页大小的整数倍地址开始。引入目的是实现离散分配并提高内存利用率

    16. 虚拟存储管理

    • 虚拟存储管理的基本思路:

      OS_VirtualMemory

      把磁盘空间当做内存的一部分,进程的程序和数据部分放在内存中,部分放在磁盘上。程序运行时,它执行的指令或访问的数据在哪里由存储管理负责判断,并针对情况采取响应的措施。

    • 请求分页虚存管理: 将进程信息副本存放在外存中,当它被调度投入运行时,程序和数据没有全部装进内存,仅装入当前使用页面,进程执行过程中访问到不在内存的页面时,产生缺页异常,再由系统自动调入。

    • 全局页面替换策略(页面替换算法的作用范围是整个系统,不考虑进程的属主)
      a. 最佳页面替换算法(Optimal Replacement, OPT)。 淘汰不再访问的页或者距现在最长时间后才访问的页。
      b. 先进先出页面替换算法(First in First Out Replacement, FIFO)。淘汰在内存中驻留时间最长的页。
      c. 最近最少使用页面替换算法(Least Recently Used Replacement, LRU)。 淘汰最近一段时间内最久未被使用的页面。
      d. 第二次机会页面替换算法(Second Chance Replacement, SCR)。 首先检查FIFO页面队列中的队首,这是最早进入内存的页面,如果其“引用位”为0,那么它最早进入且未被引用,此页被淘汰。如果其“引用位”为1,说明虽然它最早进内存,但最近仍在使用,于是将“引用位”清零,并把这个页面移到队尾,把它看做新调入的页面,再给它一次机会。
      e. 时钟页面替换算法(Clock Policy Replacement, Clock)。与SCR算法思路一致。只是用循环队列来构造页面队列,队列指针指向可能被淘汰的页面。如果队列指针指向的页的“引用位”为1,则将其置为0,同时队列指针指向下一个页。

    • 局部页面替换算法(页面替换算法的作用局限于进程自身,要为进程维护称为工作集的一组页面)
      a. 局部最佳页面替换算法(Local Minimum Replacement, MIN)。 在t时刻时,若页面P在未来(t, t+delta)时间段内未被引用,则它被淘汰。
      b. 工作集置换算法。 在t时刻时,若页面P在未来(t-delta, t)时间段内未被引用,则它被淘汰。
      c. 模拟工作集替换算法
      d. 缺页频率替换算法

    17. 请求段页式虚拟内存管理

    OS_SegmentPage

    • 虚地址以程序的逻辑结构划分为段。
    • 实地址划分为位置固定、大小相等的页框(块)。
    • 逻辑地址分为三个部分:段号s、段内页号p、页内位移d。对于用户而言,段式虚拟地址应该由段号s和段内位移d’组成,操作系统内部自动把d’解释成段内页号p和页内位移号d。

    18. I/O硬件原理:I/O控制方式

    • 轮询方式: 又称程序直接控制方式。使用查询指令测试设备控制器的忙闲状态位,确定内存和设备是否能能交换数据。(@杨领well注:所谓轮询,就好比,老湿依次问每一个童鞋:“有问题没?”, 如果没问题,就继续问下一个童鞋。如果这个童鞋有问题,这个老湿就停下了解决这个问题。然后又继续询问下一个童鞋。)
    • 中断方式: 要求CPU和设备控制器及设备之间存在中断请求线,设备控制器的状态寄存器有相应的中断允许位。
      a. 进程发出启动I/O指令。
      b. 设备控制器检查状态寄存器的内容,执行相应的I/O操作,一旦传输完成,设备控制器通过中断请求线发出I/O中断信号。
      c. CPU收到并响应I/O中断后,转向设备的I/O中断处理程序执行。
      d. 中断处理程序执行数据读取操作,将I/O缓冲寄存器的内容写入内存。操作结束后退出中断程序恢复之前的状态。
      e. 执行中断前之前运行的进程。
      (@杨领well注: 类似于老湿在上面讲课,有童鞋问问题时,老湿就记录下自己讲到的位置,然后取回答童鞋的问题,回答完之后,又回到刚刚讲课的地方继续讲课)

    • DMA(Direct Memory Access, 直接存储器存取)方式: 内存和设备之间有一条数据通路成块的传输数据,无须CPU干9预,实际数据传输操作由DMA直接完成。

    • 通道方式: CPU在执行主程序时遇到I/O请求,启动在指定通道上选址的设备,一旦启动成功,通道开始控制设备进行操作,这时CPU就可以执行其他任务并与通道并行工作,直到I/O操作完成;当通道发出I/O操作结束中断时,处理器才响应并停止当前工作,转而处理I/O操作结束时间。

    19. I/O软件原理

    • I/O中断处理程序: 通常是设备驱动程序的组成部分之一。检查设备状态寄存器内容,判断产生中断原因,根据I/O操作的完成情况进行相应处理。若数据传输有错,应向上层软件报告设备出错信息,实施重新执行;若正常结束,应唤醒等待传输的进程,使其转换为就绪态;若有等待传输的I/O命令,应通知相关软件启动下一个I/O请求。
    • I/O设备驱动程序:设备驱动程序是设备专有的。把用户提交的逻辑I/O请求转化为物理I/O的启动和执行。同时监督设备是否正确执行,管理数据缓冲区,进行必要的纠错处理。
    • 独立于设备的I/O软件
    • 用户空间的I/O软件

    20. 缓冲技术

    • 缓冲技术的基本思想: 当进程执行写操作输出数据时,先向系统申请一个输出缓冲区,然后将数据送至缓冲区,若是顺序写请求,则不断地把数据填入缓冲区,直至装满为止,此后进程可以继续计算,同时,系统将缓冲区的内容写在设备上。当进程执行读操作输入数据时,先向系统申请一个输入缓冲区,系统将设备上的一条物理记录读至缓冲区,根据要求把当前所需要的逻辑记录从缓冲区中选出并传送给进程。
    • 单缓冲: 是最简单的缓冲技术,每当有I/O请求时,操作系统就在内存的系统区中开设一个缓冲区。不允许多个进程同时对一个缓冲器操作。

      OS_SingleBuffer

    • 双缓冲: CPU可把输出到设备的数据放入其中一个缓冲器(区)、让设备慢慢处理;然后,它又可以从另一个为终端设置的缓冲器(区)中读取所需要的输入数据。

      OS_TwoBuffer

    • 多缓冲: 是把多个缓冲区连接起来组成两部分,一部分专门用于输入,另一部分专门用于输出的缓冲结构。

      OS_MultiBuffer

    21. 驱动调度技术

    • 磁盘的物理结构:
      OS_DISK
      磁盘包括多个盘面,每个盘面有一个读写磁头,所有的磁头都固定在唯一的移动臂上同时移动。一个盘面上的读写磁头的轨迹称为磁道,读写磁头下的所有磁道形成柱面,一个磁道又可以划分为多个扇区。在磁盘上定位某个物理记录需要知道其柱面号磁头号以及扇区号。定位物理记录时,磁头到达指定扇区的时间称为查找时间, 选择磁头号并旋转至指定扇区的时间称为搜索延迟
    • 磁道(柱面)的搜索定位算法:
      a. 先来先服务算法(First Come First Server algorithm, FCFS)
      b. 最短查找时间优先算法: 总是执行查找时间最短的请求。
      c. 扫描算法: 移动臂来回的扫过所有柱面,扫描处遇到I/O请求便进行处理。
      d. 分步扫描算法: 将I/O请求分为长度为N的子队列,按FIFO算法依次处理每个队列,而每个子队列采用扫描算法,处理完一个后再服务下一个队列。
      e. 电梯调度算法: 又称LOOK算法。
      OS_Elevator
      磁头号由外向内递增。
      f. 循环扫描算法: 移动臂总是从0号柱面至最大号柱面顺序扫描,然后直接返回0号柱面重复进行,归途中不提供服务(而扫描算法归途是要提供服务的)。

    22. 设备独立性

    • 设备独立性: 用户通常不指定物理设备,而是指定逻辑设备,使得用户作业和物理设备分离开来,再通过其他途径建立逻辑设备和物理设备之间的映射,设备的这种特性称为设备独立性。

    23. 虚拟设备

    • 外部设备同时联机操作(Simultaneous Peripheral Operations On Line, SPPPLing)
      OS_SPOOLing

      a. 预输入程序。 控制信息从输入设备至输入井,填写预输入表以便在作业执行过程中要求输入信息时可以随时找到其存放位置。
      b. 井管理程序。 作业执行过程中要求启动某台设备进程I/O操作时,作业控制程序截获这个要求并调用井管理程序控制从相应输入井读取信息,或将信息送至输出井。
      c. 缓输出程序。 当处理器空闲时,操作系统调用缓输出程序执行缓输出,它查看缓输出表是否有输出打印的文件,文件打印前还可能组织作业或文件标题,也可能对从输出井中读出的信息进行格式加工。

    24. 文件逻辑结构

    • 文件的逻辑结构的两种形式:
      a. 流式文件。 一种无结构的文件,文件内的数据不再组成记录,只是一串顺序的信息集合,称为字节流文件。
      b. 记录式文件。 一种有结构的文件,包含若干逻辑记录,逻辑记录是文件中按信息在逻辑上独立含义所划分的信息单位。

    25. 文件物理结构

    • 文件物理结构: 文件的物理结构和组织是指逻辑文件在物理存储空间中的存放方法和组织关系。
    • 常见组织方式:顺序文件、连接文件、直接文件和索引文件。

    二、Q&A

    1. 什么是操作系统?操作系统在计算机系统中的主要作用是什么?

    • 定义: 操作系统尚无严格的定义。 一般可把操作系统定义为: 管理系统资源、控制程序执行、改善人机界面、提供各种服务,并合理组织计算机工作流程和为用户方便有效地使用计算机提供良好的运行环境的一种软件系统。

    • 作用:
      a. 服务用户。 操作系统作为用户接口和公共服务程序。
      b. 进程交互。 操作系统作为进程执行的控制者和协调者。
      c. 系统实现。 操作系统作为扩展机或虚拟机。
      d. 资源管理。 操作系统作为资源的管理者和控制者。

    2. 什么是多道程序设计?多道程序设计有什么特点?

    • 多道程序设计(multiprogramming): 允许多个作业(程序)同时进入计算机系统的内存并启动交替计算的方法。

    • 多道程序设计的特点: 从宏观上看是并行的,从微观上看是串行的。

    3. 计算机操作系统为什么引入进程?

    • 刻画程序的并发性。
    • 解决资源的共享性。

    4. 在分时系统中,什么是响应时间?它与哪些因素有关?

    • 从交互式进程提交一个请求(命令)直到获得响应之间的时间间隔称为响应时间
    • 影响分时操作系统的响应时间的因素很多,如,CPU的处理速度、联机终端的数目、所用时间片的大小、系统调度开销和对换信息量的多少等。

    5. 解释并发性与并行性

    • 计算机操作系统中把并行性和并发性明显区分开,主要是从微观的角度来说的,具体是指进程的并行性(多处理机的情况下,多个进程同时运行)和并发性(单处理机的情况下,多个进程在同一时间间隔运行的)。
    • 并行性是指硬件的并行性,两个或多个事件在同一时刻发生。
    • 并发性是指进程的并发性,两个或多个事件在同一时间段内发生。

    6. 试述存储管理的基本功能。

    • 存储分配
    • 地址映射
    • 存储保护
    • 存储共享
    • 存储扩充

    7. 何谓地址转换(重定向)?哪些方法可以实现地址转换?

    • 地址重定位: 又称地址转换,地址映射。 可执行程序逻辑地址转换(绑定)为物理地址的过程。
    • 实现方法:
      a. 静态地址重定位。 由装载程序实现装载代码模块的加载和地址转换,把它装入分配给进程的内存指定区域,其中的所有逻辑地址修改成内存物理地址。
      b. 动态地址重定位

      OS_Dynamic

      由装载程序实现装载代码模块的加载和地址转换,把它装入分配给进程的内存指定区域,但对链接程序处理过的应用程序的逻辑地址则不做任何修改,程序内存起始地址被置于硬件专用寄存器 —— 重定位寄存器。程序执行过程中,每当CPU引用内存地址(访问程序和数据)时,由硬件截取此逻辑地址,并在它被发送到内存之前加上重定位寄存器的值,以便实现地址转换。
      c. 运行时链接地址重定位

      程序链接的三种方式:
      a. 静态链接。在程序装载到内存和运行前,就已将它的所有目标模块及所需要的库函数进行链接和装配成一个完整的可执行程序且此后不可拆分。
      b. 动态链接。在程序装入内存前并未事先进行程序各目标模块的链接,而是在程序装载时一边装载一边链接,生成一个可执行文件。
      c. 运行时链接。 将某些目标模块或库函数的链接 推迟到执行时才进行。

    8. 什么是文件的共享?介绍文件共享的分类和实现思想。

    • 文件共享: 不同进程共同使用同一个文件。
    • 文件共享的分类:
      a. 静态共享。 两个或多个进程通过文件链接(一个文件同时属于多个目录,但实际上仅有一处物理存储)达到共享同一个文件的目的,无论进程是否运行,其文件的链接关系都是存在的,因此称为静态共享。
      b. 动态共享。 系统不同的应用程序或同一用户的不同进程并发地访问同一文件,这种共享关系只有当进程存在时才可能出现,一旦进程消亡,其共享关系也就随之消失。
      c. 符号链接共享

    展开全文
  • 复用有包括时分复用(主要针对CPU)和空分复用(主要针对内存)。其中实现空分复用面临两个问题: 一、程序之间如何防护,以及内核如何防护其它程序。 二、如何处理重定位。下面是经典的解决策略: 利用一个检测...
    计算机实现多道程序的基础是复用(共享)。复用有包括时分复用(主要针对CPU)和空分复用(主要针对内存)。其中实现空分复用面临两个问题:
         一、程序之间如何防护,以及内核如何防护其它程序。
         二、如何处理重定位。
    下面是经典的解决策略:
         利用一个检测单元实现程序保护,利用一个映射单元实现重定位。
         实现中则是利用一个基址寄存器(base register)和一个界限寄存器(limit register)。前者保证程序不可能引用到低于该基址的存储空间,而后者保证程序不可能引用到高于界限寄存器值的存储空间。这一策略同时解决了程序防护和重定位着两个问题。
        在这里完成检测和映射工作的逻辑电路称为内存管理单元(Memory Management Unit——MMU)。
        稍微复杂一些的MMU分别有两个基址寄存器和界限寄存器。这就实现了对程序段和数据段的分别定位。可以使多个用户共享一个程序段成为可能。
        事实上,实际中的MMU则更为复杂。
    展开全文
  • 操作系统知识点整理

    2018-08-28 21:45:45
    1.操作系统的定义: 管理系统资源、控制程序执行、改善人机界面、提供各种服务,并合理组织计算及工作流程的和为用户方便而有效地使用计算机提供良好运行环境的最基本的系统软件。(为应用程序的运行提供良好的环境...

    今天回顾之前本科时候期末考试整理的知识点,并整理在此:

    一.概述

    1.操作系统的定义:

    管理系统资源、控制程序执行、改善人机界面、提供各种服务,并合理组织计算及工作流程的和为用户方便而有效地使用计算机提供良好运行环境的最基本的系统软件。(为应用程序的运行提供良好的环境)

    2.操作系统两大角色,大致的作用:

    (1).管理者,管理计算机各种资源;                    (2)服务者,为应用程序运行提供环境。

    3.现代计算机系统软件组成结构:

    系统软件(操作系统)、支撑软件(编译程序、汇编程序、数据库)、应用软件

    4.怎么理解操作系统是一台“虚拟计算机” *:

    用户输入的操作命令会都会涉及底层硬件操作,但用户用到的都是操作系统提供的接口,操作系统就是一台以这些命令作为机器语言的虚拟计算机。

    5.操作系统的管理资源的三种方法(正确区分)

    (1)资源复用:解决物理资源数量不足的问题。两种基本方法:空分复用共享(内存、磁盘)和时分复用共享(CPU)

    (2)资源虚化:解决物理资源数量不足,提高操作系统用户服务的能力和水平。(虚拟打印机)

    (3)资源抽象:处理系统的复杂性,重点解决资源的易用性。(CPU->进程,磁盘->文件,显示器->窗口,物理计算机->虚拟机 )

    6.三种基础抽象方法:进程抽象——对CPU;虚存抽象——对内存;文件抽象——对磁盘     计算机系统的物理资源可分为计算类和存储及接口类。

    7.操作系统几大主要功能:处理器管理,存储管理,设备管理,文件管理,网络与通信管理,用户接口

    8.三种基本的操作系统类型,他们各自用于什么地方:

    批处理操作系统,用于计算量很大,人为干预少的地方;

    分时操作系统,以时间片形式公平把时间分配给每个用户;

    实时操作系统,实时控制和实时信息处理

    9.系统调用的概念:给编程使用的接口。作用,(1)系统调用是内核对外的唯一接口;(2)系统调用保证系统的安全性

    10.为何要引入POSIX *:为了解决接口复杂、使用困难和应用程序可移植性受限的问题

    11.API、库函数与系统调用:API、库函数封装0到若干个系统调用,是可供应用程序直接使用的接口

    二. 处理器管理

    1. 处理器管理的内容:负责管理、调度和分配计算机系统的处理器,处理器分配和运行是以进程为单位,所以处理器管理也可视为对进程的管理。

    2.处理器管理在操作系统中的核心地位:处理区管理是操作系统最核心的部分,无论是应用程序,还是系统程序,最终都要在处理器上执行以实现起功能。(理解其定义)

    3.特权指令与非特权指令:特权指令:仅供内核使用的指令;非特权指令:可以被应用程序和内核使用的指令;用户态只可以使用非特权指令,核心态可使用特权和非特权指令

    4.处理器状态:核心态、用户态,*用户态通过中断和异常转为核心态。

    5.PSW,里面装的什么:PSW用来指示处理器状态,控制指令的执行顺序,并且保留和指示与运行程序有关的各种信息,主要作用是实现程序状态的保护和恢复。

    6.中断的概念:指程序在运行过程中,遇到继续处理的事件,暂时停止在cpu上的运行,转而执行相应事件的处理程序,处理完后再返回断点或调度其他程序执行。

    1. 中断的分类和产生:软中断:外中断:处理器外部产生的中断;内中断:处理器内部产生的中断;硬中断:信号:内核或进程产生的中断;软件中断:硬中断服务程序对内核的中断
    2. 为何外部中断有些可屏蔽,而异常都不可屏蔽 :中断与CPU是异步的,不是当前进程所需要的,中断具有不同的优先级,处理高级中断时,往往会屏蔽低级中断。而异常与cpu同步,是当前进程所需要的,必须处理。*
    3. 异常的几种处理方式(参照Linux中的四种分类):故障,陷阱,终止,编程异常

    故障发生后,处理完毕后将原来引发故障的指令再执行一遍;陷阱与编程异常发生后,处理完毕之后,执行原指令的下一条指令;终止则不再返回原来的指令。

    10.信号机制是模仿了外部中断的处理方式 *:信号源性质相同(1)都是处理器外部产生的中断;(2)都是两条指令中间产生异常。

    11.中断处理的一般过程:程序正常运行,接收到中断信号,暂停运行的程序,保护好现场,转而执行相应的中断处理程序,完成后,恢复现场,继续执行原程序。

    12.时钟中断及其作用(主要的两大作用):

    时钟是内核进行进程调度的重要工具。作用:(1)确保操作系统在必要时获得控制权;(2)获取时间

    13.进程的概念,进程包括哪些东西:进程:一个正在执行的程序,包括:代码,数据,管理结构

    14.进程与程序的区别与联系,或者说,为什么要引入进程

    程序:存放在磁盘上的文件 进程:正在执行的程序。

    为什么引入进程:在多道程序设计之下,原来的“程序”概念已经不能用来描述这时候的情况了,程序只是一个静态的概念,而进程是一个动态的概念

    15.进程的几种状态,它们之间的转换(尤其注意,不存在从阻塞态到运行态的转换)

    运行态,就绪态,等待态(为便于管理,加入新建态和终止态,挂起态)

    16.进程的三种上下文:用户级上下文:经常自己的代码数据等、系统级上下文:内核所使用的内存管理信息等、寄存器上下文:寄存器当时的信息,用于保护和恢复现场

    17.进程控制块的概念,它的作用:进程存在的唯一标识,内核用来记录和刻画进程状态的数据结构,管理和调度进程的依据。

    18.进程切换的过程 *:略

    19.线程的概念:线程是进程中能够并发执行的实体,是进程的组成部分,也是处理器调度和分派的基本单位

    20.为什么要引入线程:为了减少程序并发执行时所付出的时空开销,使得并发力度更细、并发性更好。

    21.线程与进程的区别和联系:进程有自己的独立空间,线程没有自己完全独立的空间

    22.为何线程没有挂起态:线程不是资源的拥有单位,挂起状态对于线程是没有意义的

    23.什么叫处理器调度:进行涉及处理器调度和资源分配的工作

    24.三种调度层次,哪种是必须的:

    高级调度(作业调度)      中级调度(进程调度)      低级调度(线程调度) 必须的

    25.衡量一个调度算法好坏的标准:资源利用率② 吞吐量③ 公平性④ 响应时间⑤ 周转时间

    26.会计算调度的“平均周转时间”:例:进程p1、p2、p3运行时间为2、4、7,平均周转时间为:(2+6+13)/3=7

    27.几种典型的调度算法:先来先服务、短作业优先(时间短的先运行)、时间片轮转(每个按序运行时间片上的时间见P155)、优先级调度、彩票调度算法(例:1秒钟随机抽取50次,每次分配20ms)

    三.并发管理

    1.并行情况下会出现的问题、原因 *:顺序程序设计效率不高

    2.同步的目的:1 使得并行情况下,结果依然保持确定性 2 限制越少越好

    3.Peterson算法:一种纯软件算法,通过两个变量来实现互斥访问临界区。是免锁编程的基本算法之一,这个算法设计得很巧妙,核心就是三个标志位是怎样控制两个方法对临界区的访问的。

    4.信号量的定义,取值含义,PV操作:

    信号量:表示物理资源的实体,是一个与队列有关的整型变量。

    取值:用一个结构型数据结构表示,有两个分量(1)信号量的值 (2)信号量队列的指针 PV操作:p操作申请资源,v操作释放资源

    5.PV操作实现生产者、消费者问题

    伪代码:

    int B;

    semaphore empty;         //可用的空缓存区

    semaphore full;          //缓冲区内可用的产品数

    empty=1;                 //缓冲区内允许放入一件产品

    full=0;                  //缓冲区内没用产品

    cobegin                

    process producer(){         process comsumer(){

    while (true){                       while (true){

    produce();                               P(full);

    P(empty);                                take() from B;

    append() to B;                        V(empty);

    V(full);                                       consum();

    }                                            }

    }                                         }

    coend

    睡眠、唤醒机制实现生产者、消费者问题

    如果生产者发现缓冲区满了,则唤醒消费者,自己睡眠;如果消费者发现缓冲区空了,则唤醒生产者,自己睡眠

    几种进程间通信机制(1)信号通信机制(2)管道通信机制(3)共享主存通信机制(4)信息传递机制(5)信号量机制

    死锁的概念: 如果一个进程集合中的每个进程都在等待只能由此集合中的其他进程才能引发的事件,而无限期陷入僵持的局面称为死锁。

    死锁产生的四个必要条件,破坏死锁方法的原则

    互斥条件 (2)占有和等待 (3)不剥夺条件 (4)循环等待

    破坏死锁的原则:破坏四个必要条件中任一个

    银行家算法的思想:系统将进程放入集合,安全状态下,系统进行试探性非配,系统将可用资源数和进程需求资源数进行比较,找出剩余资源能满足的最大需求量的进程。将进程从集合删除,归还其占有的所有资源。反复执行上述步骤,若最后进程集合为空,则可以执行分配;否则,不进行分配。

    四.存储管理

    1. 编译、链接和加载都干了些什么 *:

    编译:将源程序翻译为机器指令,生成目标文件,这些目标文件并不能直接执行。

    链接:将多个目标文件模块装配成一个完整的程序,它解析符号表,把对符合的引用转换成具体的数值地址。

    加载:执行程序之前,当获得了一块实际的内存之后,加载器根据该内存的首地址,再次修改和调整可执行文件中的地址,完成地址的最后绑定。

    2.现代计算机系统的存储器层次:

    现代的存储器,已经不仅仅指内存了,它包括了寄存器,缓存,内存,磁盘这样一种层次结构

    特点:(从下往上)访问速度越来越快,容量越来越少,价格越来越贵

    金字塔型(从下往上)磁带,磁盘,主存储器,高速缓存,寄存器

    3.几种不太主流的内存管理方法:固定分区、可变分区、伙伴系统

    (1)固定分区:主存空间被划分成固定数目、大小不等的分区,每个分区可执行一个作业,

    各作业并发执行。

    执行方法:根据当天的作业情况,进行分区;建立“主存分配表”;根据待运行作业的内存需求,选择合适的分区,载入运行。

    (2)可变分区:根据作业的大小选择分区,但分区的划分是根据作业和空余内存来动态分配的。

    执行方法:每当来一个新进程,从可用内存中划分出一块连续的区域,供进程使用,没有合

    适的区域,则等待别的进程释放内存。

    (3)伙伴系统:任何尺寸为2^i的空闲块,都可以分解成两个2^(i-1)的块,反过来也可以把他们合并起来,这两个块,成为伙伴。

    执行方法:建立一个空闲数组free[i],i=0,…N,每个元素表示一个链表,该链表中的元素

    是大小为2^i的分配单元。

    4.伙伴系统算法 *

    5.分页系统牵涉到哪些东西(实际操作)

      (1)页面 (2)页表 (3)页表基址寄存器 (4)MMU

    6.一级页表、二级页表中虚拟地址到物理地址的映射(实际操作)

    7.虚拟空间的大小(实际操作)

    8.页表项里主要记录了什么

      记录了物理页面的内存起始地址,以及其他的关于该物理页面的信息

    9.在Intel处理器下,虚拟地址的构成(一级页表、二级页表)(实际操作)

    10.为何要引入二级甚至多级页表,它的原理是什么 *

    11.段式管理的概念:段式管理:一个进程分成几个部分,每一个部分占据一个区(逻辑) 段式管理最大的一个特点:每个段都是一个独立的虚拟地址空间。(这里的“段”,指的是逻辑段,它们也要通过某种映射机制,把逻辑段,映射为物理内存的专门区域)

    12.段式管理能解决页式管理哪两个问题 *(1)共享内存(2)进程所需内存超过虚拟内存

    13.段式管理的虚拟空间大小(实际操作)

       长度:页式(固定) 段式(可变)

    虚拟空间大小:页式(透明,相对固定) 段式(不透明,不定)

    (每一个段长都根据需要,各有长短,但实际上,每一个段最长可以有最大虚拟空间地址 因此采用段式管理,每个进程的虚拟地址空间,可以远大于4G(以32位机器为例))

    14.段式管理下,虚拟地址的组成(实际操作)

    (段寄存器、段选择符

    在实模式下,CS,DS,ES,SS用来存放一个段的基地址

    在保护模式下,它们存放了新的东西—段选择符,里面存放了段表内偏移

    因为怕不够,Intel又增加了两个段寄存器FS,GS

    段表、段表项

    它们的关系跟页表、页表项的关系一样,段表里面放了很多段表项,Intel里叫“段描述符”

    段描述符里存放了,该逻辑段,会被映射到的物理段的基地址

    段选择符里存放了应该访问第几个段描述符,即上面图中的“段号”

    段选择符结构(段表内偏移)

    段描述符结构(段表项)

    段表基址寄存器

    同CR3一样,每一个进程,都有一个段表,他保存的是该进程的段表的基地址)

    15.根据给定的虚拟地址,算出物理地址(简单的方式)

    16.虚拟存储

    虚拟存储器:在具有层次结构存储器的计算机系统中,自动实现部分装入和部分替换功能,能从逻辑上为用户提供一个比物理主存容量大得多的、可寻址的“主存储器”。实际上,虚拟存储器对用户隐蔽可用物理存储器的容量和操作细节,虚拟存储器的容量与物理主存大小无关,而受限于计算机的地址结构和可用的磁盘容量,如Intel x86的地址线是32位,则程序可寻址范围是4GB,Windows 和Linux都为应用进程提供一个4GB的逻辑主存。

    17.局部性的概念,有什么用 *

    局部性:某存储单元被引用之后,程序倾向于过短时间再次引用该单元(时间局部性),或者倾向于过一段时间引用该单元附近的存储单元(空间局部性)

    18.在现代存储器层次中,当处理器发出一个内存地址调用时,会如何来寻找 *

    19.缺页中断率的计算公式   缺页率f=F/A       (F为不成功访问次数,S为运行中成功访问的次数,A=S+F)

    五.文件管理

    1.文件系统是对磁盘使用的抽象

    (1)文件系统的功能:让人可以方便地存取数据(2)特点:①可以看做是对使用磁盘的抽象,使人们可以不用去管磁盘具体是如何来存储,读取数据②屏蔽了底层的磁盘使用上面的繁琐细节,而用一种简单的逻辑结构呈现给用户

    1. 文件系统的设计目标:让用户可以仅凭文件名来操作文件
    2. 文件系统包括两大基本要素:文件、目录

    文件:保存的信息的组织形式

    目录:保存文件的有关信息

    文件系统就是对文件和目录的组织和操作

    2.文件的概念,文件名、文件类型、文件属性等

    文件:由文件名所标识的一组信息的集合

    (1)文件名:文件主要的存取根据,文件系统的设计目标就是能够按照文件名来操作文件。各个系统对文件名有不一样的安排,比如有些系统有大小写要求,有些对文件名长度有要求,有些系统凭后缀名来识别文件类型,等等

    (2)文件类型:以Linux为例,一般有以下几种文件类型:普通文件、目录文件、块设备文件,字符设备文件、管道文件、套接字文件等,他们分别有不同的作用

    (3)文件属性:比如文件的拥有者、组拥有者、文件权限、文件的时间(创建时间、最后访问时间、最后修改时间等)、上锁标志、文件口令等

    1. 文件内容三种访问方式:顺序、随机、索引
    2. 目录、目录项的概念,它们里面各存放了什么

    目录概念:目录就是存放了文件的信息,我们首先通过目录,然后才能找到文件 存放内容:目录中存放了文件,以及其他目录,从而组成了一个树形结构

    1. 从抽象观点看,磁盘的组成: 若从抽象观点看,整个磁盘可以看做一个连续的大的数组。  主引导记录(①主引导程序②分区表③魔数);分区
    2. 以使用inode的文件系统为例,了解一个这样的文件系统的磁盘组成(超级块、inode区,数据区)
    3. FAT文件系统如何来存文件的内容放在哪
    4. inode类型的文件系统,如何来存文件内容放在哪

    FAT的主要缺陷是什么:整表放入内存,占用过大内存

    1. inode类型的文件系统,其目录项是什么构成(PS:文件对应i-node号,文件名)
    2. 如何通过给定的路径字符串,找到对应的文件(结合p415)

    以/usr/bin/mbox为例,说明如何来找到这个文件

    首先,根目录/的i-node位于分区开始后的固定位置(0号i-node),所以很容易找到/的i-node,从而得到/目录项里的文件有哪些然后得到/usr这个目录项的磁盘位置

    查看/usr的目录项,找出其i-node号,然后在i-node表中根据i-node号,找到/usr

    对应的i-node,查看其内容,找到/usr/bin目录项的磁盘地址

    。。。依次这么寻找,就能找到mbox这个文件的每一部分具体的磁盘地址

    展开全文
  • 操作系统

    2016-03-08 09:55:15
    物力资源的复用共享有两种基本方法:空分复用共享和时分复用共享。 (2) 虚拟 虚拟又称虚拟性,是指操作系统中实现对计算机软硬件资源进行有效管理的技术和手段,能进一步提高操作系统为用户服务的能力和水平。虚拟...

    第一章 操作系统概论

    操作系统采用的资源管理技术
    (1) 复用
    操作系统让众多进程共享物理资源,这种共享称为资源复用。通过适当复用可以创建虚拟资源和虚拟机,以解决物力资源数量不足的问题。物力资源的复用共享有两种基本方法:空分复用共享和时分复用共享。
    (2) 虚拟
    虚拟又称虚拟性,是指操作系统中实现对计算机软硬件资源进行有效管理的技术和手段,能进一步提高操作系统为用户服务的能力和水平。虚拟的本质是对资源进行转化、模拟或整合。
    (3) 抽象
    资源抽象是指通过创建软件来屏蔽硬件资源的物理特性和实现细节,简化对硬件资源的操作、控制和使用,即不考虑物理细节而对资源执行操作的技术。

    操作系统的功能和基本特征
    答:特性:
    (1) 并发性
    (2) 共享性
    (3) 异步性
    从资源管理的角度来看,主要功能:
    (1) 处理器管理
    (2) 存储器管理
    (3) 设备管理(外部设备)
    (4) 文件管理
    (5) 联网与通信管理

    操作系统微内核技术及微内核基本功能。
    答:内核是一组程序模块,作为可信软件来提供支持进程并发的基本功能和基本操作,通常驻留在内核空间,运行于内核态,具有直接访问硬件设备和所有内存空间的权限,是仅有的能够执行特权指令的程序。
    操作系统仅将所有应用必需的核心功能放入内核,称为微内核。
    微内核功能:中断处理、时钟管理、短程调度、原语管理

    在分时系统中,什么是响应时间?它与哪些因素有关?
    答:响应时间:从交互式进程提交一个请求(命令)直到获得响应之间的时间间隔。
    影响因素:cpu的处理速度、联机终端的数目、所用时间片的长短、系统调度开销和对换信息量的多少等。

    7.试述系统调用与函数(过程)调用之间的主要区别。
    答:a>调用形式和实现方式不同。函数调用所转向的地址是固定不变的,但系统调用中不包括内核服务例程入口地址,仅提供功能号,按功能号调用;函数调用是在用户态执行,只能访问用户栈;系统调用要通过陷阱设置,从用户态转换到内核态,服务例程在内核态执行并访问核心栈。
    b>被调用代码的位置不同。函数调用是静态调用,调用程序和被调用代码处于同一程序内,经链接后可作为目标代码的一部分,这是用户级程序当函数升级或者修改时,必须重新编译和链接;系统调用是动态调用,系统调用的服务例程位于操作系统中,这是系统级程序,这样当系统调用的服务例程升级或修改时与调用程序无关,而且调用程序的长度大为缩减,能减少其所占用的内存空间。
    c>提供方式不同。函数调用通常有编程需要提供,不同语言所提供的函数功能、类型和数量可以不同;系统调用由操作系统提供,一旦操作系统设计好,系统调用的功能、类型和数量便固定不变。

    简述操作系统资源管理的资源复用技术。
    系统中相应地有多个进程竞争使用资源,由于计算机系统的物理资源是宝贵和稀有的,操作系统让众多进程共享物理资源,这种共享称为资源复用。
    (1)时分复用共享资源从时间上分割成更小的单位供进程使用
    (2)空分复用共享资源从空间上分割成更小的单位供进程使用

    第二章 处理器管理

    什么是系统调用?试述API、库函数和系统调用之间的关系

    1. 系统调用是为了方便应用使用操作系统的接口,而库函数是为了方便人们编写应用程序而引出的,比如你自己编写一个函数其实也可以说就是一个库函数。
    2. 系统调用 可以理解为内核提供给我们在用户态用的接口函数,可以认为是某种内核的库函数。
    3. 操作系统API的主要作用是把操作系统的功能完全展示出来,提供给应用程序,基于该操作系统,与文件、内存、时钟、网络、图形、各种外设等互操作的能力。此外,操作系统API通常还提供许多工具类的功能,比如操纵字符串、各种数据类型、时间日期等。
      API函数和系统调用之间有着直接的关系,一个API函数可以由一个系统调用实现,也可以通过调用多个系统调用来实现,还可以完全不使用任何系统调用。
    4. 系统调用效率不一定比库函数高

    进程,为什么要引入进程的概念。
    进程:可并发执行的程序在某个数据集合上的一次计算活动,也是操作系统作为资源分配和保护的基本单位。
    目的:
    a>刻画程序的并发性。进程是并发程序设计的一种有力工具,操作系统中引入进程概念能较好地刻画系统内部程序的并发执行,从而提高资源利用率。
    b>解决资源的共享性。
    属性:
    (1) 结构特征:进程控制块PCB、程序段、相关的数据段
    (2) 动态性:进程实体的执行过程
    (3) 并发性:多个进程实体同存于内存中,能在一段时间内同时运行
    (4) 独立性:能独立运行、独立分配资源和独立接受调度的基本单位
    (5) 异步性:进程是进程实体的运行过程,是系统进行资源分配和高度的一个独立单位

    2.什么是进程控制块(PCB)。
    答:每个进程有切仅有一个进程控制块,或称进程描述符,它是进程存在的唯一标识,是操作系统用来记录和刻画进程状态及环境信息的数据结构,是进程动态特征的集合,也是操作系统掌握进程的唯一资料结构和所处的状态的主要依据

    3.进程控制块(PCB)的作用是什么,为什么说进程控制块(PCB)是进程存在的唯一标志。
    答:使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位或与其它进程并发执行的进程,因为PCB包含了进程的描述信息和控制信息,是进程的动态特征的集中反映,系统在建立进程的同时建立该进程的PCB,在撤销一个进程时也就撤销其PCB,系统根据PCB而感知某一进程的存在,所以PCB是进程存在的唯一标志。

    4.PCB包含了哪些基本信息。
    答:
    a>标识信息。标识信息用于唯一地标识一个进程,分为用户使用的外部标识符和系统使用的内部标识符。
    b>现场信息。现场信息用于保留进程在运行时存放在处理器现场中的各种信息。
    c>控制信息。控制信息用于管理和进程调度。

    5.进程的状态(三态、五态)及转换。
    运行态:进程占有处理器正在运行的状态。
    就绪态:进程具备运行条件,等待系统分配处理器以便运行的状态。
    等待态:又称阻塞态或睡眠态,指进程不具备运行条件,正在等待某个事件完成的状态。
    新建态:对应进程被创建时的状态,尚未进入就绪队列
    终止态:指进程完成任务到达正常结束点,或出现无法克服的错误而异常终止,或被操作系统及有终止权的进程所终止时所处的状态。
    进程5态转换

    6.处理器调度类型。
    高级调度:又称作业调度、长度调度,在多道批处理操作系统中,从输入系统的一批作业按照预定的调度策略挑选若干作业进去内存,为其分配所需资源并创建对应作业的用户进程后,便完成启动阶段的高级调度任务,已经为进程做好运行前的准备工作,等待进程被调度运行,在作业完成后还要做结束阶段的善后工作。
    中级调度:又称平衡调度、中度调度,根据内存资源情况决定没错中所能容纳的进程数目,并完成外存和内存中的进程对换工作。
    低级调度:又称进程调度或线程调度、短程调度,根据某种原则决定就绪队列中的哪个进程/线程获得处理器,并将处理器让出给它使用。

    7.进程调度典型算法及应用。
    答:先来先服务算法(FCFS)、最短作业优先算法(SJF)、最短剩余时间优先算法(SRTF)、最高响应比优先算法(HRRF)、优先级调度算法、轮转调度算法(RR)、多级反馈队列调度算法(MLFQ)

    第三章 同步、通信与死锁

    1.临界区、临界资源、临界区管理的基本原则是什么?
    并发进程中与共享变量有关的程序段称为临界区。共享变量所代表的资源称为临界资源,即一次仅能供一个进程使用的资源。
    原则一:一次至多只有一个进程进入临界区内执行。
    原则二:如果已有进程在临界区中,试图进入此临界区的其他进程应等待。
    原则三:进入临界区内的进程应在有限的时间内退出,以便让等待队列中的一个进程进入。

    2.什么是信号量?如何对其进行分类?
    在操作系统中用信号量表示物理资源的实体,它是一个与队列有关的整型变量。 具体实现时,信号量是一种产量类型,用一个记录型数据结构表示,有两个分量,一个是信号量的值,另一个是信号量队列指针。

    信号量按其用途可分为两种:
    a>公用信号量,联系一组并发进程均可在此信号量上执行pv操作,初值置为一,用于实现进程互斥;
    b>私有信号量,联系一组并发进程,仅允许此信号量所拥有的进程执行P操作,而其相关进程可在其上施行V操作,初值往往为0或正整数,多用于并发进程同步。

    信号量按其取值可分为两种:
    a> 二值信号量,仅允许取值为0或1,主要作用用于解决进程互斥问题;
    b> 一般信号量,又称计数信号量,允许取大于1的整型值,主要用于解决进程同步问题。

    3.信号量机制及利用信号量机制实现进程同步。
    信号量机制即利用pv操作来对信号量进行处理进程通信方式。

    4.什么是管程?如何通过管道机制实现进程间的通信?
    管道:是连接读写进程的一个特殊文件,允许按照FIFO方式传送数据,也能使进程同步执行
    写进程在管道的尾端写入数据,读进程在管道的首端读出数据。数据读出后将从管道中移走,其他进程都不能再读到这些数据。进程试图读管道时,再有数据写入管道前,进程将一直阻塞。同样,管道已经满时,进程再试图写入管道,在其他进程从管道中移走数据之前,写进程将一直阻塞。

    5.死锁的定义。
    如果一个进程集合中的每个进程都在等待只能由此集合中的其他进程才能引发的事件,而无限期陷入僵持的局面称为死锁。

    6.产生死锁的原因,产生死锁需要具备的必要条件。
    1>互斥条件:临界资源是独占资源,进程应互斥且排他地使用这些资源。
    2>占有和等待条件:进程在请求资源得不到满足而等待时,不释放已占有资源。
    3>不剥夺条件:又称不可抢占,已获资源只能由进程自愿释放,不允许被其他进程剥夺。
    4>循环等待条件:又称环路条件,存在循环等待链,其中每个进程都在等待链中等待下一进程所持有的资源,造成这组进程处于永远等待状态。

    7.处理死锁的基本方法。
    预防死锁:这是一种较简单和直观的事先预防的方法。该方法是通过设置某些限制条件,去破坏产生死锁的四个必要条件中的一个或几个条件,来预防发生死锁。预防死锁是一种较易实现的方法,已被广泛使用。但由于所施加的限制条件往往太严格,因而可能会导致系统资源利用率和系统吞吐量降低。
    避免死锁:该方法同样是属于事先预防的策略,但它并不须事先采取各种限制措施去破坏产生死锁的四个必要条件,而是在资源的动态分配过程中,用某种方法去防止系统进入不安全状态,从而避免发生死锁。这种方法只需事先施加较弱的限制条件,便可获得较高的资源利用率及系统吞吐量,但在实现上有一定的难度。目前在较完善的系统中常用此方法来避免发生死锁。
    检测死锁:这种方法并不须事先采取任何限制性措施,也不必检查系统是否已经进入不安全区,而是允许系统在运行过程中发生死锁。但可通过系统所设置的检测机构,及时地检测出死锁的发生,并精确地确定与死锁有关的进程和资源; 然后,采取适当措施,从系统中将已发生的死锁清除掉。
    解除死锁:这是与检测死锁相配套的一种措施。当检测到系统中已发生死锁时,须将进程从死锁状态中解脱出来。常用的实施方法是撤消或挂起一些进程,以便回收一些资源,再将这些资源分配给已处于阻塞状态的进程,使之转为就绪状态,以继续运行。死锁的检测和解除措施有可能使系统获得较好的资源利用率和吞吐量,但在实现上难度也最大。

    8.银行家算法:安全状态的定义。
    是指系统能按某种顺序如

    第四章 存储管理

    链接的类型
    - 静态链接(程序装载前完成链接)
    - 动态链接(程序便装载边链接)
    - 运行时链接(目标模块在使用到的时候再进行链接)

    装载类型
    - 绝对装载(绝对地址,指令内部地址和内存的地址相同)
    - 可重定位链接(相对地址,根据当时内存情况,决定目标模块的装载地址)
    - 动态运行时装载(相对地址,可将程序对换到磁盘再对换进内存)

    地址重定位
    - 静态地址重定位
    - 动态地址重定位(重定位寄存器)
    - 运行时链接地址重定位

    分区类型
    - 固定分区(对于内存大小和出现频率已知的程序十分适合)
    - 可变分区(分配:最先适应算法,下次适应算法【常用】,最优适应算法【常用】,最坏适应算法,快速适应算法,去分配)

    1. 程序的局部性原理。
    局部性原理是指程序在执行时呈现出局部性规律,即在一段时间内,整个程序的执行仅限于程序中的某一部分

    2. 虚拟存储器的定义
    定义:在具有层次结构存储器的计算机系统中,自动实现部分装入和部分替换功能,能从逻辑上为用户提供一个比物理内存容量大得多的、可寻址的“内存储器”
    当程序执行的指令或访问的数据在内存中时可顺利执行;如果在磁盘上,为了继续执行,由系统自动将这部分信息从磁盘装入,这称“部分装入”;如果没有足够的空闲内存空间,便把内存中暂时不用的信息移至磁盘,这称“部分替换”。
    必要性:可用较小的内存空间执行较大的程序,能容纳更多的并发执行程序。
    可能性:基于程序的局部性原理

    3. 虚拟存储器的特征
    虚拟存储器最基本的特征是离散性,在此基础上又形成了多次性及对换性的特征。其所表出来的最重要的特征是虚拟性。
    [1]、离散性
    离散性是指在内存分配是采用离散分配方式,这是其他几个特征的基础。没有离散性,也就不可能实现虚拟存储器。
    [2]、多次性
    多次性是指一个作业被分成多次地调入内存运行,即在运行时没有必要将其全部装入,只须将当前要运行的那部分程序和数据装入内存即可;以后运行到那一部分时在将它调入。
    [3]、对换性
    对换性是指允许在作业的运行过程中换进、换出。在进程运行期间,允许将那些暂不使用的程序和数据,从内存调至外存的对换区(换出),以后需要时再将它们从外存调至内存换入;甚至还允许将暂时不运行的进程调至外存,具备运行条件时再调入内存。换进、换出能有效地提高内存利用率。可见,虚拟存储器具有对换性特征
    [4]、虚拟性
    虚拟性是指能够从逻辑上扩允内存容量,使用户所看到的内存容量远大于实现内存容量。这是虚拟存储器所表现出来的最重要的特征,也是实现虚拟存储器的最重要的目标
    4. 试述实现虚拟存储器的基本原理
    作业运行之前仅将当前要运行的那部分页面和段先装入内存便可开始运行,在程序的运行中,发现所要访问的段不在内存中时,再有操作系统将其调入内存,程序便可继续执行下去。

    5. 重定位的定义。
    可执行的程序逻辑地址转换(绑定)为物理地址的过程称为地址转换(重定位)。

    6. 重定位的方式有哪两种?比较它们的不同
    实现方法:静态地址重定位,动态地址重定位.
    静态重定位:即在程序装入内存的过程中完成,是指在程序开始运行前,程序中的各个地址有关的项均已完成重定位,地址变换通常是在装入时一次完成的,以后不再改变,故称为静态重定位。
    动态重定位:它不是在程序装入内存时完成的,而是CPU每次访问内存时 由动态地址变换机构(硬件)自动进行把相对地址转换为绝对地址。动态重定位需要软件和硬件相互配合完成。

    7. 分区存储管理中采用那些分配策略?比较其优、缺点
    固定分区
    优点:固定分区能解决单道程序运行在并发环境下不能与cpu速度匹配的问题,同时也解决了单道程序运行是内存空间利用低的问题。
    缺点:ⅰ.由于预先已经规定分区大小,是的大作业无法装入,用户不能采用覆盖能技术加以补救,这样不但加重用户负担,而且极其不方便;ⅱ.内存空间利用率不高,作业很少会恰好填满分区;ⅲ.如果一个作业要求在运行过程中动态扩充存储空间,采用固定分区是相当困难的;ⅳ.分区数目是在系统初启是确定的这就会限制多道运行程序的道数,特别不适应分时系统交互型用户及内存需求变化很大的情况。
    可变分区
    优点:ⅰ.能克服固定分区内存资源的浪费问题;ⅱ.有利于多道程序设计;ⅲ.实现了多个程序作业对内存的共享。
    缺点:ⅰ.回收算法复杂;ⅱ.它的各种分配算法有一定缺陷,难以避免内存碎片的产生;ⅲ.采用动态地址重定位需要硬件寄存器的支持

    8. 基本分页存储管理的基本原理。
    在存储器管理中,连续分配方式会形成许多“碎片”,虽然可通过“紧凑”方法将许多碎片拼接成可用的大块空间,但须为之付出很大开销。
    如果允许将一个进程直接分散地装入到许多不相邻的分区中,则无须再进行“紧凑”。基于这一思想而产生了离散分配方式。如果离散分配的基本单位是页,则称为分页存储管理方式。在分页存储管理方式中,如果不具备页面对换功能,则称为基本分页存储管理方式,或称为纯分页存储管理方式,它不具有支持实现虚拟存储器的功能,它要求把每个作业全部装入内存后方能运行。

    9. 页式存储管理中页面大小怎么确定?页表长度怎么确定?
    若地址用A位表示,其中B位表示页号,则页的大小为2A-B字节。
    页表长度=虚存容量÷页面大小
    页面大小:物理硬件确定
    页表长度:进程大小

    10. 基本分段存储管理方式的基本原理。
    出现原因:如果说推动存储管理方式从固定分区到动态分区分配,进而又发展到分页存储管理方式的主要动力,是提高内存利用率,那么,引入分段存储管理方式的目的,则主要是为了满足用户(程序员)在编程和使用上多方面的要求,其中有些要求是其它几种存储管理方式所难以满足的。因此,这种存储管理方式已成为当今所有存储管理方式的基础。
    原理:分段存储管理的实现基于可变分区存储管理原理。可变分区以整个作业为单位来划分和连续存放。而分段方法是以段为单位来划分和连续存放,为作业的各段分配一个连续内存空间,而各段之间不一定连续。在进行存储分配时,应为进入内存的作业建立段表,各段在内存中的情况可由段表来记录,它指出内存中各分段的段号、段起始地址和段长度。在撤销进程时,回收所占有的内存空间,并清除此进程的段表。

    11. 基本分页存储和基本分段存储管理方式的主要区别。
    分段是信息的逻辑单元,由源程序的逻辑结构及含义决定,是用户可见的,段长由用户根据需要来确定,段起始地址可从任何内存地址开始。在分段方式中,源程序经链接装配后仍保持二维(地址)结构,引入目的是满足用户模块化程序设计的需要。
    分页是信息的物理单位,与源程序的逻辑结构无关,是用户不可见的,页长由系统(硬件)确定,页面只能从页大小的整数倍地址开始。在分页方式中,源程序经链接装配后变成一维(地址)结构,引入目的是实现离散分配并提高内存利用率。

    12. 请求分页存储管理系统中的页面置换算法。
    (最优算法OPT【无实际意义】,先进先出算法FIFO,最近最少使用LRU【向前搜索出现最早】,第二次机会算法SCR,时钟页面替换算法Clock,局部页面替换算法)

    第五章 设备管理

    1.试述设备管理的基本功能
    设备中断处理、缓冲区处理、设备分配和去配、设备驱动调度、实现虚拟设备

    2.试述各种I/O控制方式及其主要优、缺点
    (1)轮询方式:又称程序直接控制方式,使用查询指令测试设备控制器的忙闲状态位,确定内存和设备是否能交换数据。
    优点:原理简单,成本低廉。
    缺点:a>.一旦cup启动了I/O设备,便不断的查询I/O设备的准备情况,终止了原程序的执行;b>.cpu在反复查询过程中,浪费了宝贵的cpu时间,c>.I/O设备准备就绪后,cpu参与数据的传输工作,此时cpu也不能执行原程序。总之,轮询方式的主要缺点是运行效率不足。
    (2)中断控制方式:cpu启动I/O设备后不必查询I/O设备是否准备就绪,而是继续执行现行程序,对设备是否准备就绪不加过问。
    优点:不必忙于查询I/O准备情况,cup和I/O设备可实现部分并行,大大提升了cup的利用率。
    缺点:输入输出操作直接由中央处理器控制,每传送一个字符或一个字,都要发生一次中断,仍耗费大量中央处理器时间。
    (3)DMA方式:内存和设备之间有一条数据通路成块的传说数据,在主机和I/O设备之间成块的传送数据过程中,无需CPU干预,实际操作有DMA直接执行完成。
    优点:实现线路简单,价格低廉。
    缺点:增加主存地址寄存器,数据移位寄存器等硬件,不仅有中断结构,还增加了DMA传输控制结构,增加了成本,但功能较差,不能满足复杂的I/O操作要求。
    (4)通道方式:又称I/O处理器,能完成内存和设备之间的信息传送,与CPU并行的执行操作。
    优点:a>.自成独立体系,大大减少了外围设备和中央处理器的逻辑关系,把中央处理器从琐碎的输入输出操作中解放出来;b>.外围和中央处理器能实现并行操作;c>.通道和通道之间能实现并行操作;d>.各通道上的外围设备也能实现并行操作。
    缺点:a>.具有通道装置的计算机的主机、通道、控制器和设备之间用四级连接,实施三级控制;b>.价格较高,一般在大型机中使用。

    3.缓冲技术方法,为什么要设置缓冲?
    (1) 缓和CPU与I/O设备间速度不匹配的矛盾。
    (2) 减少对CPU的中断频率, 放宽对CPU中断响应时间的限制。
    (3) 提高CPU和I/O设备之间的并行性。
    (4) 协调逻辑记录大小与物理记录大小不一致的问题
    方法:单缓冲、双缓冲、循环缓冲、缓冲池

    4.缓冲的基本思想。
    基本思想:当进程执行写操作输出数据时,先向系统申请一个输出缓冲区,然后将输入送入缓冲区,若是顺序写请求,则不断的将数据填入缓冲区,直至装满为止,此后进程可以继续计算,同时系统将缓冲区的内容写到设备上;当进程执行读操作输入数据时,先向系统申请一个输入缓冲区,系统将设备上的一条物理记录读至缓冲区,根据要求把当前所需要的逻辑记录从缓冲区中选出并传送给进程

    5.设备独立性的定义。
    在现代OS中,为了提高OS的可适应性和可扩展性,实现设备独立性,也称为设备无关性。其基本含义是:应用程序独立于具体使用的物理设备。在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,是使用物理设备名称。系统必须具有将逻辑设备名称转换为某物理设备名称的功能

    6.在计算机系统中实现了设备独立性的功能后可带来哪些好处。
    应用程序与具体的物理设备无关,系统要增减或变更设备时对源程序不必加如何修改,易于应对I/O设备故障,增加设备分配的灵活性,能更有效的理由设备资源,实现多道程序设计

    7.什么是独占设备的定义?什么是共享设备的定义。
    独占设备:在一段时间内只允许一个进程独占
    共享设备:允许多个进程同时共享

    8.独占设备和共享设备在分配方式上有什么不同?
    独占设备:采用独享分配策略。
    共享设备:可同时分配给多个进程使用。

    9.设备虚拟及虚拟设备,SPOOLing技术。
    设备虚拟:将一台物理I/O设备虚拟为多台逻辑I/O设备,同样允许多个用户共享一台物理I/O设备。寄来技术是SPOOLing技术。

    10.典型磁盘调度算法及应用。
    ((1)先来先服务调度算法;(2)最短查找时间优先算法;(3)扫描算法;(4)分布扫描算法;(5)电梯调度算法;(6)循环扫描算法)

    提高IO速度的方法:
    提前读,延迟写,虚拟盘

    什么是虚拟设备?实现虚拟设备的主要条件是什么?
    答:虚拟设备:为了提高独占设备的利用率,采用SPOOLING技术,用可共享的设备模拟独占设备,使独占设备成为共享设备,使每个作业感到自己分到了速度极高的独占设备。这种模拟的独占设备称为虚拟设备。
    (1) 预输入程序; (2) 井管理程序; (3) 缓输出程序。

    为什么要引入设备独立性?如何实现设备独立性?
    答:应用程序与具体物理设备无关,系统增减或变更设备时对源程序不必加以修改;易于应对I/O设备故障,提高系统可靠性;增加设备分配的灵活性,更有效地利用逻辑设备资源,实现多道程序设计。
    实现:为了实现设备独立性而引入了逻辑设备和物理设备两概念。 在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,还必须使用物理设备名称。

    第六章 文件管理

    1.什么是文件、什么是文件系统?
    文件:具有文件名的一组相关元素的集合。
    文件系统:在磁盘上组织文件的方法。

    2.文件系统目录及文件系统中对目录管理的要求。
    文件系统通常采用分层结构实现,大致分为三层:文件管理、目录管理和磁盘管理。
    文件管理层实现文件的逻辑结构,为用户供各种文件系统调用及文件访问权限的设置等工作。
    目录管理负责查找文件描述符,进而找到需要访问的文件,并进行访问权限检查等工作,此外还需完成目录的添加、删除、重排等操作。
    磁盘管理除管理文件空间外,还将文件的逻辑地址转换成磁盘的物理地址,设备与内存之间的数据传输操作由文件系统调用设备管理实现。

    3.文件的逻辑结构定义。
    是用户可以直接处理的数据及其结构

    4.文件的逻辑结构的类型
    (1)有结构文件。这是由若干个记录所构成的文件,故又称为记录式方式。根据记录的长度是定长的还是可改变的又可进一步分为定长记录文件和可变长记录文件。
    (2)无结构文件。直接由字符序列所构成的文件,故称为流式文件。

    5.文件的物理结构定义
    指文件在外存上的存储组织形式

    6.文件的物理结构的类型
    (1)顺序文件。它是指把逻辑文件中的记录顺序地存储到连续的去里盘块中
    (2)连接文件。它是指文件中的各个记录可以存放在不相邻接的各个物理盘快中,通过物理块中的链接针对,将它们连接成一个链表。
    (3)索引文件。它是指文件中的各个记录可存储在不相邻接的各个物理块中。

    7.什么是文件共享?文件共享的优点及共享的实现方式。
    文件的共享是指不同进程使用同一个文件,文件共享不仅为不同进程完成共同任务所必需,而且还节省大量的外存空间,减少因文件复制而增加的I/O操作次数

    8.文件系统中对目录管理的要求?
    实现“按名存取”、提高对目录的检索速度、文件共享、允许文件重名

    9.确保文件系统安全性的常用措施
    (1) 通过存取控制机制来防止由人为因素所造成的文件不安全性。
    (2) 通过磁盘容错技术来防止由磁盘部分的故障所造成的文件不安全性。
    (3) 通过“后备系统”来防止由自然因素所造成的不安全性。

    10. 试述下列术语的的定义并说明它们之间的关系:卷、块、记录、文件
    卷:硬盘上的存储区域。一个硬盘包括好多卷,一卷也可以跨越许多磁盘。
    块:存储介质上连续信息所组成的一个区域。
    记录:是一组相关数据的集合,用于描述一个对象在某方面的属性。
    文件:是由信息按一定结构组成,可持久性保存的抽象机制,由于它必定存储在某中存储设备上,故也可以认为文件是设备的一种抽象。

    展开全文
  • 操作系统教程总结

    2019-10-19 21:27:35
    操作系统虚拟机为用户提供了一种简单、清晰、易用、高效的计算机模型。虚拟机的每种资源都是物力资源通过复用、虚拟和抽象而得到的产物。 虚拟机提供进程运行的逻辑计算环境。
  • 一:操作系统概述。  操作系统:管理系统资源、控制程序运行、改善人机界面、提供各种服务,并合理组织计算机工作流程和为用户方便而有效的使用计算机提供良好的运行环境的最基本的系统软件 。  传统的操作系统...
  • I/O 多路复用技术是为了解决进程或线程阻塞到某个 I/O 系统调用而出现的技术,使进程不阻塞于某个特定的 I/O 系统调用。 select(),poll(),epoll()都是I/O多路复用的机制。I/O多路复用通过一种机制,可以监视多个...
  • 虚拟:通过时分复用(如时系统)以及空分复用(如虚拟内存)技术实现把一个物理实体虚拟为多个 异步:系统中的进程是以走走停停的方式执行的,且以一种不可预知的速度推进 操作系统的主要功能 处理机管理:
  • 1、操作系统的四个特性 ... 虚拟:通过时分复用(如时系统)以及空分复用(如虚拟内存)技术实现把一个物理实体虚拟为多个 异步:系统中的进程是以走走停停的方式执行的,且以一种不可预知的速度推进 2...
  • 操作系统特性和功能

    2018-06-14 09:49:05
    操作系统的四个特性并发:同一段时间内多个程序执行(注意区别并行和并发,前者是同一时刻的多个事件,后者是同一时间段内的多个事件)共享:系统中的资源可以被内存中多个并发执行的进线程共同使用虚拟:通过时分复用...
  • 目录 操作系统(Operating System,OS)初识: 什么是操作系统? 操作系统的目标: 操作系统的作用: ...操作系统作为用户和计算机硬件系统之间的接口;...推动操作系统发展的主要动力: ...空分复用技术: 异步: ...
  • 多数是根据英文版原版答案翻译过来,少部分加了个人的理解 1、操作系统的两大主要作用是...2、在1.4节中描述了9中不同类型的操作系统,列举每种操作系统的应用(每种系统一种应用) 1.大型操作系统(Mainf...
  • 操作系统概论总结

    2016-04-06 10:12:52
     >复用空分复用共享 时分复用共享  >虚拟:把少变多 把多变少  >操作系统中的基础抽象:进程抽象、虚存抽象和文件抽象 3.操作系统功能和特性  >功能:处理器管理 存储管理 设备管理 文件管理 联网与...
  • 批处理操作系统操作系统(Unix)、实时操作系统、网络操作系统、分布式操作系统、微机操作系统(Linux、Windows、IOS等)、嵌入式操作系统。 2.操作系统的4个特征: 并发性、共享性、虚拟性、不确定性。 ...
  • 一、操作系统概述 1.1 操作系统的基本概念 在信息化时代,软件被称为计算机系统的灵魂。而作为软件核心的操作系统,已经与现代计算机系统密不可分、融为一体。计算机系统自下而上可粗分为四个部分:硬件、操作系 统...
  • 第一章1.1计算机系统的层次结构1.1.1计算机系统简介1.1.2计算机系统的层次结构(1)硬件处在最低层,不附加任何软件的物理计算机.(2)操作系统是附加在裸机上的第一层,是对裸机的首次扩充,构成了一个比裸机更强,...
  • 翻译自网站http://www.revolutionwifi.net/revolutionwifi/2015/3/how-ofdm-subcarriers-work,本文... 你有没有想过,在一个正交频分复用系统(OFDM)中,子载波如何能在没有任何保护带宽作分隔的情况下如此紧密地...
  • 操作系统引论 操作系统是配置在计算机硬件上的第一层软件,是对硬件系统的第一次扩充。其主要功能为管理计算机设备,提高他们的利用率和系统吞吐量,并为用户和应用程序提供简单的接口,便于用户使用。OS是现代...
  • 分复用

    2019-07-04 22:05:42
    关于代码复杂性的一些观点
  • 操作系统之基础篇 一、 操作系统概述  1. 操作系统的演进   无操作系统:人工操作,用户独占,CPU等待人工操作,资源利用率很低。   批处理系统:批量输入任务,无需等待人工操作,资源利用率提升,提出多道...
1 2 3 4 5 ... 20
收藏数 70,618
精华内容 28,247
关键字:

操作系统 空分复用