精华内容
下载资源
问答
  • 操作系统基础知识复习总结

    万次阅读 多人点赞 2018-06-11 13:55:23
    操作系统 操作系统概述 操作系统作用 存储管理 处理机管理 设备管理 文件管理 用户接口 操作系统的定义 是管理和控制计算机系统中各种硬件和软件资源、合理地组织计算机工作流程的...

    操作系统

    操作系统概述

    操作系统作用

    1. 存储管理

    这里写图片描述
    2. 处理机管理
    这里写图片描述
    3. 设备管理
    这里写图片描述
    4. 文件管理
    这里写图片描述
    5. 用户接口
    这里写图片描述

    操作系统的定义

    是管理和控制计算机系统中各种硬件和软件资源、合理地组织计算机工作流程的系统软件,是用户与计算机之间的接口。

    • 多道批处理系统
    1. 在内存中同时存放多道程序,在管理程序的控制下交替执行,这些作业共享CPU和系统其他资源。
      
    2. ![这里写图片描述](https://img-blog.csdn.net/20180611133851521)
      
    3. 这里写图片描述
    • 分时系统

    把处理机运行时间分成时间片,按时间片轮转的方式,把处理机分配给各联机作业使用。允许多个用户与计算机直接交互。

    • 实时系统

    系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。提供即时响应和高可靠性,响应时间快,可以在毫秒级甚至微秒级立即处理。

    操作系统的特征

    1. 并发

      并发是指两个或多个事件在同一时间间隔内发生。

      微观上还是程序在分时地交替执行。

    2. 共享

      共享是指系统中的资源可供内存中多个并发执行的进程共同使用。

      1. 互斥共享方式

        如打印机、磁带机。在一段时间内只允许一个进程访问该资源。

      2. 同时访问方式

        如磁盘设备

    3. 虚拟

      虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。比如说虚拟处理器,虚拟内存,虚拟外部设备

    4. 异步

      在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。

    操作系统最基本的特征是并发和共享,两者互为存在条件。

    进程管理

    程序基本概念

    • 程序执行的两种方式:
      1. 顺序执行:一个计算的若干操作必须按照严格的先后次序顺序地执行,这类计算过程就是程序的顺序执行过程。
      2. 并发执行:指一组在逻辑上相互独立的程序或程序段在执行过程中,其执行时间在客观上相互重叠,即一个程序段的执行尚未结束,另一个程序段的执行已经开始的这种执行方式。

    进程基本概念

    • 定义

    进程是指一个具有独立功能的程序对某个数据集在处理机上的执行过程和分配资源的基本单位。

    引入进程的概念,以便更好地描述和控制程序的并发执行。

    程序封闭性是指进程执行的结果只取决于进程本身,不会受外界影响。

    • 进程和程序的区别

    这里写图片描述

    • 进程的组成

    进程通常由程序、数据集合和进程控制块PCB三部分组成。程序和它操作的数据是进程存在的静态实体,而专门的数据结构PCB用来描述进程当前的状态、本身的特性等。

    当进程被中断时,操作系统会把程序计数器和处理器寄存器(上下文数据)保存在PCB中的对应位置,进程状态已被改变为其他的值,例如阻塞态或就绪态。

    PCB是进程存在的唯一标志。故操作系统是根据进程控制块来对并发执行的进程进行控制和管理。

    PCB内含的数据结构主要有:进程标志信息、进程控制信息、进程资源信息、CPU现场信息。

    每个进程包含独立的地址空间,进程各自的地址空间是私有的,只有执行自己地址空间中的程序,且只能访问自己地址空间中的数据,相互访问会导致指针的越界错误。

    对进程的管理和控制功能是通过执行各种原语实现的,如创建原语。

    进程状态

    • 运行态
    • 就绪态
    • 阻塞态
    • 新建态
    • 退出态

    进程创建

    1、给新进程分配一个唯一的进程标识符

    2、给进程分配空间

    3、初始化进程控制块

    4、设置正确的连接

    5、创建或扩充其他数据结构

    线程

    线程基本概念

    引入线程,是为了减小程序在并发执行时所付出的时空开销,提高操作系统的并发性能。

    线程最直接的理解就是“轻量级进程”,它是一个基本的CPU执行单元,也是程序执行流的最小单元。

    线程共享进程拥有的全部资源。

    线程不拥有系统资源,但是它可以访问进程所拥有的系统资源。

    线程没有自己独立的地址空间,他共享他所属的进程的空间。

    线程的实现方式

    1. 用户级线程
    2. 内核级线程

    进程间通信

    • 共享存储
    • 消息传递
    • 管道通信:固定大小,半双工通信,即某一时刻只能单向传输。
    • 共享文件

    处理机调度

    调度的层次

    1. 作业调度,又称高级调度。就是内存与辅存之间的调度。
    2. 中级调度。又称内存调度。引入中级调度是为了提高内存利用率和系统吞吐量。使那些暂时不能运行的进程,调至外存等待,把此时的进程状态称为挂起状态。当他们具备运行条件且内存又稍有空闲时,由中级调度来决定,把外存上的那些已具备运行条件的就绪进程再重新调入内存。
    3. 进程调度。又称为低级调度。按照某种方法和策略从就绪队列中选取一个进程给CPU。

    进程调度方式

    1. 非剥夺调度方式
    2. 剥夺调度方式

    典型的调度算法

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

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

      从后备队列中选择一个或若干个估计运行时间最短的作业,将他们调入内存运行。

    3. 短进程优先(SPF)调度算法

      从就绪队列中选择一个估计运行时间最短的进程,将处理机分配给它,使之立即执行。

    4. 优先级调度算法

      根据能否抢占进程,可将调度算法分为:

      1. 非剥夺式优先级调度算法
      2. 剥夺式优先级调度算法

      根据进程创建后其优先级是否可以改变,分为:

      1. 静态优先级。优先级在创建进程时确定,且在进程的整个运行期间保持不变。
      2. 动态优先级。可动态调整优先级。
    5. 高响应比优先调度算法

      这里写图片描述

    6. 时间片轮转调度算法

    7. 多级反馈队列调度算法

    这里写图片描述

    这里写图片描述

    进程同步

    基本概念

    1. 临界资源

    我们把一次仅允许一个进程使用的资源称为临界资源。

    1. 同步

    同步亦称直接制约关系,他是指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调他们的工作次序而等待、传递信息所产生的制约关系。

    实现临界区互斥的基本方法

    软件实现方法

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    硬件实现方法

    1. 中断屏蔽方法

      当一个进程正在使用处理机执行它的临界区代码时,要防止其他进程再进入其临界区访问的最简单方法是禁止一切中断发生。因为CPU只在中断发生时进行进程切换,这样屏蔽中断就能保证当前运行进程将临界区代码顺利地执行完。

    2. 硬件指令方法

      这里写图片描述

      这里写图片描述

    信号量

    信号量只能被两个标准的原语wait(S)和signal(S)来访问,也可以记为“P操作“和”V操作“。

    原语是指完成某种功能且不被分割不被中断执行的操作序列,通常可由硬件来实现完成不被分割执行特性的功能。

    1. 利用信号量实现同步

    这里写图片描述

    1. 利用信号量实现进程互斥

    这里写图片描述

    管程

    管程是由一组数据以及定义在这组数据之上的对这组数据的操作组成的软件模块,这组操作能初始化并改变管程中的数据和同步进程。

    这里写图片描述

    死锁

    所谓死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。

    死锁产生的条件

    • 互斥
    • 不剥夺
    • 请求和保持
    • 循坏等待

    死锁的处理策略

    1. 预防死锁

    设置某些限制条件,破坏产生死锁的四个必要条件中的一个或几个,以防止发生死锁。

    1. 避免死锁

    在资源的动态分配过程中,用某种方法防止系统进入不安全状态,从而避免死锁。

    银行家算法

    这里写图片描述

    1. 死锁的检测及解除

    通过系统的检测机构及时地检测出死锁的发生,然后采取某种措施解除死锁。

    这里写图片描述

    内存管理

    程序执行过程

    这里写图片描述

    逻辑地址空间与物理地址空间

    这里写图片描述

    覆盖与交换

    • 覆盖

    这里写图片描述

    • 交换

    这里写图片描述

    连续分配管理方式

    • 单一连续分配

    这里写图片描述

    • 固定分区分配

    可以有大小相等的分区和大小不等的分区

    会有内部碎片

    • 动态分区分配

    会有外部碎片,可以通过紧凑技术来解决(就是操作系统不时地对进程进行移动和整理,需要动态重定位寄存器支持。

    这里写图片描述

    非连续分配管理方式

    • 分页存储管理
    • 分段存储管理
    • 段页式管理方式

    虚拟内存管理

    1. 传统存储管理方式的特征
    • 一次性:作业必须一次性全部装入内存,方能运行。
    • 驻留性:作业被装入内存后,就一直驻留在内存中,其任何部分都不会被换出,直至作业运行结束。
    1. 局部性原理

      • 时间局部性

      如果程序中的某条指令一旦执行,不久以后该指令可能再次执行;如果某数据被访问过,不久以后该数据可能再次被访问。

      所以时间局部性是通过将进来使用的指令和数据保存到高速缓存存储器中。

      • 空间局部性

      一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问。

      所以空间局部性通常是使用较大的高速缓存,并将预取机制集成到高速缓存控制逻辑中实现。

    页面置换算法

    1. 最佳置换算法(OPT)

    这里写图片描述

    1. 先进先出页面置换算法

    这里写图片描述

    1. 最近最久未使用置换算法(LRU)

    这里写图片描述

    文件系统

    文件的概念

    文件是以计算机硬盘为载体存储在计算机上的信息集合,文件可以是文本文档、图片、程序等。

    在用户进行的输入、输出中,是以文件为基本单位。

    文件的属性

    1. 名称
    2. 标识符
    3. 类型
    4. 位置
    5. 大小
    6. 保护
    7. 时间、日期和用户标识

    文件的逻辑结构

    1. 无结构文件(流式文件)

    无结构文件是最简单的文件组织形式。无结构文件将数据按顺序组织成记录并积累保存,他是有序相关信息项的集合,以字节为单位。

    1. 有结构文件(记录式文件)

      1. 顺序文件

      文件中的记录一个接一个地顺序排列,记录通常是定长的,可以顺序存储或以链表形式存储。

      ​ 1. 串结构

      ​ 记录之间的顺序与关键字无关,通常按照存入时间的先后排列。

      ​ 2. 顺序结构

      ​ 指文件中的所有记录按关键字顺序排列。

      1. 索引文件

      2. 索引顺序文件是顺序和索引两种组织形式的结合。索引顺序文件将顺序文件中的所有记录分为若干组,为顺序文件建立一张索引表,在索引表中为每组中的第一个记录建立一个索引项。

      3. 直接文件或散列文件

        给定记录的键值或通过Hash函数转换的键值直接决定记录的物理地址。

    目录结构

    文件控制块和索引

    1. 文件控制块。FCB用来存放控制文件所需要的各种信息的数据结构。FCB的有序集合称为文件目录,一个FCB就是一个文件目录项。

      FCB主要包含以下信息:

      1. 基本信息
      2. 存取控制信息
      3. 使用信息
    2. 索引节点

    目录结构

    1. 单级目录结构。整个文件系统中只建立一张目录表,每个文件占一个目录项。
    2. 两级目录结构。将文件目录分为主文件目录和用户文件目录。主文件目录项记录用户名及相应用户文件目录所在的存储位置。用户文件目录项记录该用户文件的FCB信息。
    3. 多级目录结构
    4. 无环图目录结构。引入改种目录结构是为了实现文件共享。

    文件共享

    1. 基于索引结点(硬连接):共享文件指向同一个索引结点
    2. 基于符号链(软连接):保存共享文件的路径名

    文件保护

    1. 口令保护:通过口令访问文件
    2. 加密保护:对文件进行加密处理
    3. 访问控制:根据访问者的身份进行限制

    文件系统层次结构

    文件系统类型:FAT32、NTFS、ext2、ext3、ext4

    这里写图片描述

    目录实现

    1. 线性列表
    2. 哈希表

    文件实现

    1. 文件分配方式
      1. 连续分配
      2. 链接分配
      3. 索引分配

    这里写图片描述

    文件存储器的空间管理

    1. 空闲表法:把所有空闲块组织成表
    2. 空闲链表法:把所有空闲块组织成链表
    3. 位示图:利用二进制的每位记录空闲块
    4. 成组链接:空闲表和空闲链表的结合,适合大的文件系统

    磁盘调度算法

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

    这里写图片描述

    1. 最短寻找时间优先算法(SSTF)算法

    这里写图片描述

    1. 扫描(SCAN)算法(又称电梯算法)

    这里写图片描述

    1. 循环扫描(C-SCAN)算法

    这里写图片描述

    这里写图片描述

    这里写图片描述

    I/O管理

    I/O控制方式

    1. 程序直接控制方式

    2. 中断驱动方式

      允许I/O设备主动打断CPU的允许并请求服务,从而“解放”CPU,使得其向I/O控制器发送读命令后可以继续做其他有用的工作。

    3. DMA方式

      DMA方式的基本思想是在I/O设备和内存之间开辟直接的数据交换通路,彻底“解放”CPU。DMA方式的特点:

      1. 基本单位是数据块
      2. 所传送的数据,是从设备直接送入内存的,或者相反
      3. 仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在DMA控制器的控制下完成的。

      这里写图片描述

    4. 通道控制方式

    这里写图片描述

    这里写图片描述

    这里写图片描述

    展开全文
  • 操作系统复习习题

    万次阅读 多人点赞 2020-07-07 08:56:31
    1-2下面什么功能不是操作系统直接完成的功能?删除文件 1-3早期的OS主要追求的是?B有效性 1-4单处理机计算机系统中,下面什么操作是可以并行的?A处理机操作和IO操作 1-5要求在规定的时间内对外界的请求必须给予...

    第一章

    课上习题

    • 1-1与计算机硬件关系最密切的软件是 OS
    • 1-2下面什么功能不是操作系统直接完成的功能?对程序进行编译
    • 1-3早期的OS主要追求的是?B有效性
    • 1-4单处理机计算机系统中,下面什么操作是可以并行的?A处理机操作和IO操作
    • 1-5要求在规定的时间内对外界的请求必须给予及时相应的OS是?B实时系统
    • 1-6对多用户分时系统最重要的是?交互性
    • 1-7在下面关于并发性的叙述正确的是?并发性是指若干事件在同一时间间隔发生
    • 1-8操作系统的资源共享有什么方式?互斥访问共享;同时访问共享
    • 1-9下面对OS不正确的描述是?D.OS是系统态程序的集合
    • 1-10下面哪个不是微内核的基本功能 C文件管理

    客观题

    • 单选题
      1. 用户在程序设计过程中,可通过 系统调用 获得操作系统的服务
      2. 在设计分时操作系统时,首先要考虑的是 交互性和响应时间
      3. 在设计批处理操作系统时,首先要考虑的是 周转时间和系统吞吐量
      4. 在设计实时操作系统时,首先要考虑的是 实时性和可靠性
      5. 在多道批处理系统中,为了充分利用各种资源,系统总是优先选择 计算型和IO型均衡的 多个作业投入运行
      6. 在多道批处理系统中,为了提高吞吐量,系统总是想方设法缩短用户作业的 周转时间
      7. 分时系统的响应时间(及时性)主要是根据 用户所能接受的等待时间 确定的。
      8. 实时系统的响应时间主要是根据 控制对象所能接受的时延 确定的。
      9. 在分时系统中,为使多个用户能够同时与系统交互,最关键的问题是 能在较短的时间内,使所有用户程序都得到运行
      10. 在分时系统中,当用户数目为100时,为保证响应时间不超过2s,此时的时间片最大应为20ms
      11. 分时系统和实时系统都具有交互性,实时系统的交互性允许用户访问专用服务程序
      12. 分时系统和实时系统都具有交互性,分时系统的交互性允许用户请求系统提供多方面的服务
      13. 实时操作系统必须在规定时间内处理完来自外部的事件。
      14. 资源利用率不是设计实时系统主要追求的目标。
      15. 在下列系统中,民航售票系统是实时信息系统。
      16. 在下列系统中,火箭飞行控制系统是实时控制系统。
      17. 在单处理机系统中,可以并发但不可以并行工作的是进程与进程
      18. 采用微内核结构时,将OS分成用于实现OS最基本功能的内核和提供各种服务的服务器两个部分。
      19. 通常,下列模块中必须包含在操作系统内核中的是中断处理模块。
      20. 在3.X版本以前的MS-DOS是单用户单任务操作系统
      21. Windows95是单用户多任务操作系统
      22. Windows XP是多用户多任务操作系统
      23. UNIX操作系统最初是由Bell实验室推出的
      24. UNIX操作系统属于多用户多任务类操作系统。
      25. Linux操作系统属于多用户多任务类操作系统。
      26. 所谓linux是一个“free software”,这意味着 Linux可以自由修改和发布
    • 填空题
      27. 设计现代OS的主要目标是提高资源利用率方便用户
      28. 单道批处理系统是在解决人机矛盾CPU与I/O设备速度不匹配的矛盾中发展起来的。
      29. 当前比较流行的微内核的操作系统结构,是建立在层次化结构的基础上的,而且还采用了客户机/服务器模式和面向对象程序设计技术。
      30. 在单处理机环境下的多道程序设计具有多道、宏观上同时运行微观上交替运行的特点。
      31. 现代操作系统的两个最基本的特征是并发资源共享,除此之外,它还具有虚拟性异步性的特征。
      32. 从资源管理的角度看,操作系统具有四大功能:处理机管理存储器管理设备管理文件管理;而为了方便用户,操作系统还必须提供友好的用户接口
      33. 除了传统操作系统中的进程管理、存储器管理、设备管理、文件管理等基本功能外,现代操作系统中还增加了系统安全网络多媒体等功能。
      34. 操作系统的基本类型主要有批处理系统分时系统实时系统
      35. 批处理系统的主要优点是资源利用率高系统吞吐量大;主要缺点是无交互作用能力作业平均周转时间长
      36. 实现分时系统的关键问题是人机交互,为此必须引入时间片的概念,并采用时间片轮转调度算法。
      37. 分时系统的基本特征是:多路性独立性交互性及时性
      38. 若干事件在同一时间间隔内发生称为并发;若干事件在同一时刻发生称为并行
      39. 实时系统可分为实时信息处理系统实时控制系统、多媒体系统和嵌入式系统等类型;民航售票系统属于实时信息处理系统,而导弹飞行控制系统则属于实时控制系统
      40. 为了使实时系统高度可靠和安全,通常不强求资源利用率
    • 判断题
      41.对批处理作业,必须提供相应的作业控制信息。(√)
      42.对于分时系统,不一定全部提供人机交互功能。(×)
      43.从响应角度看,分时系统与实时系统的要求相似。(×)
      44.采用分时操作系统的计算机系统中,用户可以独占计算机操作系统中的文件系统。(×)
      45.从交互角度看,分时系统与实时系统相似。(×)
      46.并发性是指若干事件在同一时刻发生。(×)
      47.并发性是指若干事件在不同时刻发生。(×)
      48.并发性是指若干事件在同一时间间隔内发生。(√)
      49.并发性是指若干事件在不同时间间隔内发生。(×)
      50.模块化程序使程序设计更为方便,但比较难维护。(×)
      51.模块化程序便于由多人分工编制大型程序。(√)
      52.模块化程序便于软件功能扩充。(√)
      53.模块化程序设计在内存能够容纳的前提下,应使模块尽可能大,以减少模块的个数。(×)
      54.模块之间的接口叫数据文件。(×)
      55.只要模块接口不变,各模块内部实现细节的修改,不会影响别的模块。(√)
      56.模块化程序使程序易于理解,也利于排错。(√)
      57.模块间的单向调用关系,形成了模块的层次式结构。(√)
      58.模块愈小,模块化的优点愈明显。一般来说,一个模块的大小在10行以下。(×)
      59.一个模块实际上是一个进程。(×)
    • 完型填空
      60.在计算机系统中配置操作系统的主要目的是提高系统资源的利用率。操作系统的主要功能是管理计算机系统中的资源。其中包括处理机存储器,以及文件和设备。这里的处理机管理主要是对进程进行管理。
      61.操作系统有多种类型:允许多个用户以交互方式使用计算机的操作系统称为分时操作系统;允许多个用户将若干个作业提交给计算机系统集中处理的操作系统称为批处理操作系统;在实时操作系统的控制下,计算机系统能及时处理由过程控制反馈的数据,并做出响应;在IBM-PC机上的操作系统称为微机操作系统
      62.操作系统是一种系统软件,它负责为用户和用户程序完成所有与硬件相关并与应用相关的工作,高级程序设计语言的编译不是操作系统关心的主要问题。
      63.在OS中采用多道程序设计技术,能有效地提高CPU、内存和1/O设备的利用率:为实现多道程序设计需要有更大的内存
      64.推动批处理系统形成和发展的主要动力是提高系统资源利用率,推动分时系统形成和发展的动力是方便用户,推动微机OS发展的主要动力是计算机硬件的不断更新换代

    主观题

    • 简答题

      1. 设计现代OS的主要目标是什么?

        • 其主要目标是有效性、方便性、可扩充性、开放性。
      2. OS的作用可表现在哪几个方面?

        • OS作为用户与计算机硬件系统之间的接口;
        • OS作为计算机资源的管理者;
        • OS实现了对计算机资源的抽象。
      3. 试说明推动操作系统系统发展的主要动力是什么?

        • 不断提高计算机资源利用率
        • 方便用户
        • 器件不断更新换代
        • 计算机体系结构的不断发展
      4. 何谓脱机I/O和联机I/O?

        • 脱机I/O是指事先将装有用户程序和数据的纸带或卡片转入纸带输入机或卡片机,在外围机的控制下,把纸带或卡片上的数据或程序输入到磁带上。该方式下的输入输出由外围机控制完成,是在脱离主机的情况下进行的。
        • 而联机I/O方式是指程序和数据的输入输出都是在主机的直接控制下进行的。
      5. 试从交互性、及时性以及可靠性方面,将分时系统与实时系统进行比较。

        • 交互性,实时信息处理系统虽然也具有交互性,但这里人与系统的交互仅限于访问系统中某些特定的专用服务程序。
        • 及时性,实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定的;而实时控制系统的及时性,则是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级到毫秒级,甚至有的要低于100微秒。
        • 可靠性,分时系统虽然也要求系统可靠,但相比之下,实时系统则要求系统具体高度的可靠性。
      6. OS有哪几大特征?其最基本的特征是什么?

        • OS有并发、共享、虚拟和异步这四个基本特征。并发和共享特征是操作系统最基本的特征。
      7. 处理机管理有哪些主要功能?它们的主要任务是什么?

        • 主要功能:创建和撤销进程(线程),对诸进程(线程)的运行进行协调,实现进程(线程)之间的信息交换,以及按照一定的算法把处理机分配给进程(线程)。
        • 进程控制:进程控制的主要功能是为作业创建进程,撤消已结束的进程,以及控制进程在运行过程中的状态转换。
        • 进程同步:进程同步的主要任务是为多个进程(含线程)的运行进行协调。
        • 进程通信:在多道程序环境下,为了加速应用程序的运行,应系统中建立多个进程,并且再为一个进程建立若干个线程,由这些进程(线程)相互合作去完成一个共同的任务。而在这些进程(线程)之间,又往往需要交换信息。当相互合作的进程(线程)处于同一计算机系统时,通常在它们之间是采用直接通信方式,即由源进程利用发送命令直接将信息(Message)挂到目标进程的消息队列上,以后由目标进程利用接受命令从其消息队列中取出消息。
        • 调度:在后备队列上等待的每个作业都需经过调度才能执行
        • a. 作业调度:作业调度的基本任务是从后备队列中按照一定算法,选择出若干个作业,为它们分配运行所需的资源(首行是分配内存)。
        • b. 进度调度:进程调度的任务是从进程的就绪队列中,按照一定是算法选出一个进程,把处理机分配给它,并为它设置运行现场,使进程投入执行。
      8. 内存管理有哪些主要功能?他们的主要任务是什么?

        • 主要任务是为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以及能从逻辑上扩充内存。有内存分配、内存保护、地址映射和内存扩充等功能。
        • 内存分配:内存分配的主要任务是为每道程序分配内存空间,使它们“各得其所”;提高存储器的利用率,以减少不可用的内存空间;允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。
        • 内存保护:内存保护的主要任务是确保每道用户程序都只在自己的内存空间内运行批此互不干扰;绝不允许用户程序访问操作系统和数据;也不允许用户程序转移到非共享的其它用户程序中去执行。
        • 地址映射:存储器管理必须提供地址映射功能,以将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。该功能应在硬件的支持下完成。
        • 内存扩充:存储器管理中的内存扩充任务并非是去扩大物理内存的容量,而是借助于虚拟存储技术,从逻辑上去扩充内存容量,使用户所感觉到内存容量比实际内存容量大得多,以便让更多用户程序并发运行。
      9. 设备管理有哪些主要功能?其主要任务是什么?

        • 主要任务是:完成用户进程提出的I/O请求;为用户进程分配器所需的I/O设备;提高CPU和I/O设备的利用率;提高I/O速度;方便用户使用I/O设备。有缓冲管理、设备分配和设备处理以及虚拟设备等功能。
        • 缓冲管理:在I/O设备和CPU之间引入缓冲,提高CPU利用率,进而提高系统的吞吐量。在现代计算机系统中,都无例外地在内存设置了缓冲区,而且还可通过增加缓冲区容量的方法来改善系统的性能。对于不同的系统,可以采用不同的缓冲区机制。
        • 设备分配:设备分配的基本任务是根据用户进程的I/O请求、系统的现有资源情况以及按照某种设备的分配策略,为之分配其所需的设备。如果在I/O设备和CPU之间还存在着设备控制器和I/O通道时,还须为分配出去的设备分配相应的控制器和通道。
        • 设备处理:设备处理程序又称为设备驱动程序。其基本任务是用于实现CPU和设备控制器之间的通信,即由CPU向设备控制器出I/O命令,要求它完成指定的I/O操作;反之,由CPU接收从控制器发来的中断请求,并给予迅速的响应和相应的处理。
      10. 文件管理有哪些主要功能?其主要任务是什么?

        • 文件管理的主要任务是对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性。为此,文件存储空间的管理、目录管理、文件的读写管理,以及文件的共享与保护等功能。
        • 文件存储空间的管理:其主要人去是为每个文件分配必要的外存空间,提高外存的利用率,并能有助于提高文件系统的存/取速度、
        • 目录管理:目录管理的主要任务是为每个文件建立其目标项,并对众多的目录项加以有效是组织、以实现方便的按名存取,即用户只须提供文件名便可对该文件进行存取。
        • 文件的读/写管理和保护:文件的读/写管理其功能是根据用户的请求,从外存中读取数据,或将数据写入外存。文件保护其为了防止系统中文件被非法窃取和破坏,在文件系统中必须提供有效的存取控制功能。
      11. 试描述什么是微内核OS。

        • 足够小的内核
        • 基于客户/服务器模式
        • 应用机制与策略分离原理
        • 采用面向对象技术
      12. 微内核操作系统具有哪些优点?

        • 提高了系统的可扩展性
        • 增加了系统的可靠性
        • 可移植性
        • 提高了对分布式系统的支持
        • 融入了面向对象技术
      13. 何谓微内核技术?在微内核中通常提供了哪些功能?

        • 内核是指精心设计的、能实现现代操作系统最基本的核心功能的部分。微内核并非是一个完整的操作系统,而只是操作系统中最基本的部分。通常用于:

        • 实现硬件紧密相关的处理。

        • 实现一些较基本功能。

        • 负责客户和服务器之间的通信。

    第二章

    课上习题

    2-1 前趋图是否允许有循环?不允许有循环
    2-2 在这里插入图片描述
    图中,哪些进程可以并发执行?P2,P3,P4可以并发执行;P5,P6,P7可以并发执行;P3,P6,P7可以并发执行
    2-3进程和程序的一个本质区别是?前者为动态的,后者为静态的
    2-4-1下列进程状态转换中,绝对不可能发生的状态转换是( );就绪→阻塞
    2-4-2下列进程状态转换中,一般不会发生的状态转换是( );就绪→阻塞;阻塞→执行
    2-5下列信息中,哪个不属于PCB的内容?完整的程序代码
    2-6 引起创建进程的事件不包含哪一项?用户退出

    2-7 引起进程终止(Termination of Process)的事件不包括哪一项?进程调度

    2-8 引起进程阻塞和唤醒的事件有哪些?等待某种操作完成 ;请求共享资源失败;新数据尚未到达

    2-9 下面哪一样对象不属于临界资源?非共享变量

    2-10 同步机制都应遵循的准则有哪些?空闲让进;有限等待;忙则等待;让权等待

    2-11 在整型信号量机制中的wait操作,只要是信号量S≤0,就会不断地测试,并未遵循同步机制的什么准则?D、让权等待

    2-12 信号量集Swait(S,1,1)原语蜕化为互斥信号量的条件是什么?S=1

    2-13 设有10个进程互斥使用一个临界资源,则所采用的互斥信号量初值应该是()1

    2-14 试画出下面四条语句的前趋图:
    A、S1:a=x+y;
    B、S2:b=z+1;
    C、S3:c=a-b;
    D、S4:w=c+1;
    并且利用信号量实现上述语句的前驱关系
    semaphore a=b=c=0;
    p1(){S1;V(a);}
    p2(){S2;V(b);}
    P3(){P(a);P(b);S3;V( c);}
    P4(){P( c);S4;}
    Main(){cobegin
    P1();P2();P3();P4();
    coend;}

    在这里插入图片描述

    2-15 在生产者一消费者问题中,应设置互斥信号量mutex、资源信号量full和empty。它们的初值应分别是?1,0,n
    2-16 仅利用记录型信号量解决哲学家进餐问题是否会可能引起死锁?有可能引起死锁
    2-17 利用记录型信号量解决读者-写者问题中的Readcount(表示正在读的进程数目)是否为临界资源?是临界资源
    2-18 利用共享文件进行进程通信的方式属于?共享存储器
    2-19 引入线程概念后,操作系统以()作为资源分配的基本单位。进程
    2-20 在采用用户级线程的操作系统中,进行CPU调度的对象是( )。进程

    客观题

    • 单选题
      进程A和B共享同一临界资源,并且进程A正处于对应的临界区内执行。请从下列描述中选择一条正确的描述 进程A的执行能被中断,而且只要B进程就绪,就可以将CPU调度给B进程

    • 填空题

      1. 在单用户单任务环境下,用户独占全机,此时机内资源的状态,只能由运行程序的 操作加以改变,此时的程序执行具有封闭性可再现性特征
      2. 并发进程之间的相互制约,是由于它们共享资源相互合作而产生的,因而导致程序在并发执行时具有间断性或异步性特征
      3. 程序并发执行句顺序执行时相比产生了一些新特征,分别是间断性失去封闭性不可再现性
      4. 引入进程的目的是使程序能正确地并发执行,以提高资源利用率和系统吞吐量,而引入线程的目的是减少并发执行的开销,提高程序执行的并发程度
      5. 进程由进程控制块;PCB程序段数据段组成,其中进程控制块;PCB是进程存在的唯一标志
      6. 进程最甚本的特征是动态性并发性,除此之外,它还有独立特征、和异步性特征
      7. 由于进程的实质是程序的一次执行,故进程有动态性的基本特征,该特征还表现在进程由创建而产生,由调度而执行,由撤销而消亡,即进程具有一定的生命期。
      8. 引入进程带来的好处提高资源利用率增加系统吞吐量
      9. 当前正在执行的进程由于时间片用完而暂停执行时,该进程应转变为就绪状态:若因发生某种事件而不能继续执行时,应转为阻塞状态;若应终端用户的请求而暂停执行时,它应转为静止就绪状态
      10. 系统中共有5个用户进程,且当前CPU在用户态下执行,则最多可有4个用户进程处于就绪状态,最多可有4个用户进程处于阻塞状态:若当前在核心态下执行,则最多可有5个用户进程处于就绪状态,最多可有5个用户进程处于阻塞状态
      11. 为了防止OS本身及关键数据(如PCB等),遭受到应用程序有意或无意的破坏, 通常也将处理机的执行状态分成用户态系统态两种状态
      12. 进程同步主要是对多个相关进程在执行次序上进行协调
      13. 同步机制应遵循的准则有是空闲让进忙则等待有限等待让权等待
      14. 在记录型信号量机制中,S.value>0时的值表示可用的临界资源数量:每次wait操作意味着申请一个临界资源, 因此应将S.value减1;-1,当S.value小于0;<0时,进程应阻塞
      15. 在利用信号量实现进程互斥时,应将临界区置于wait操作signal操作之间
      16. 在每个进程中访问临界资源的那段代码称为临界区。为实现对它的共享,应保证进程互斥地进入自己的临界区,为此在毎个进程的临界区前应设置进入区 ,临界区后应设置退出区
      17. 利用共享的文件进行进程通信的方式被称作管道通信,除此之外,进程通信的类型还有共享存储器消息系统客户机-服务器系统三种类型
      18. 客户机一服务器系统通信机制主要的实现方法有是套接字远程过程调用远程方法调用三种
      19. 为实现消息缓冲队列通信,应在PCB中增加消息队列首指针mq;消息队列互斥信号量mutex消息队列资源信号量Sm三个数据项
      20. 引入线程概念后,操作系统以进程作为资源分配的基本单位,以线程作为CPU调 度和分派的基本单位。
      21. 在采用用户级线程的系统中,OS进行CPU调度的对象是进程;在采用内核支持 的线程的系统中,CPU调度的对象是线程
      22. 线程之所以能减少并发执行的开销是因为线程基本不拥有资源
      23. 用户为阻止进程继续运行,应利用挂起原语,若进程正在执行,应转变为静止就绪状态;以后,若用户要恢复其运行,应利用激活原语,此时进程应转变为活动就绪状态
      24. 在记录型信号量机制中,每次signal操作意味着释放一个临界资源,因此应将S.value加1,当S.valueSO时,表示仍有请求该资源的进程被阻塞,此时应唤醒相应阻塞队列中的首进程。
    • 判断题

      1. 临界区是指进程中用于实现进程互斥的那段代码(×)
      2. 临界区是指进程中用于实现进程同步的那段代码(×)
      3. 临界区是指进程中用于实现进程通信的那段代码(×)
      4. 临界区是指进程中访问临界资源的那段代码(√)
      5. 操作系统的一个重要概念是进程,不同进程所执行的代码也不同。(×)
      6. 操作系统通过PCB来控制和管理进程,用户进程可从PCB中读出与本身运行状态相关的信息(×)
      7. 当进程由执行状态变为就绪状态时,CPU现场信息必须被保存在PCB中(√)
      8. 当进程申请CPU得不到满足时,它将处于阻塞状态(×)
      9. 进程是可与其他程序并发执行的程序在一个数据集合上的运行过程,所以程序段 是进程存在的唯一标志(×)
      10. 一个进程的状态发生变化总会引起其他一些进程的状态发生变化(×)
      11. 进程被挂起(suspend)后,状态变为阻塞状态(×)
      12. 信号量的初值不能为负数(√)
      13. 线程是CPU调度的基本单位,但不是资源分配的基本单位(√)
      14. 在进程对应的代码中使用wait、signal操作后,可以防止系统发生死锁(×)
      15. 管程每次只允许一个进程进入(√)
      16. wait、signal操作可以解决一切互斥问题(√)
      17. 程序的顺序执行具有不可再现性(×)
    • 完整填空

      1. 从静态的角度看,进程是由( 程序段 )、( 数据段 )、(PCBC)三部分组成的,其中(PCBC)是进程存在的 唯一标志。当几个进程共享(程序段)时,(程序段)应当是可重入代码。
      2. 某进程所要求的一次打印输出结束,该进程被(唤醒),其进程的状态将从(阻塞到就绪)
      3. 下列进程状态转换中,绝对不可能发生的状态转换是(就绪—阻塞); —般不会发生的状态转 换是(阻塞—执行)
      4. 在一个单处理机系统中,存在5个进程,最多可有(4)个进程处于就绪队列;如果 这5个进程中有一个系统进程IDLE (也叫空转进程,因为它只是不断循环地执行空语句) , 则最多可有(4)个进程处于阻塞状态
      5. 正在执行的进程由于其时间片用完被暂停执行,此时进程应从执行状态变为(活动就绪)状 态;处于静止阻塞状态的进程,在进程等待的事件出现后,应变为(静止就绪)状态;若进程正处于 执行状态时,因终端的请求而暂停下来以便研究其运行情况,这时进程应转变为(静止就绪)状态, 若进程已处于阻塞状态,则此时应转变为(静止阻塞)状态
      6. 为使进程由活动就绪转变为静止就绪,应利用(suspend)原语;为使进程由执行状态转变 为阻塞状态,应利用(block)原语;为使进程由静止就绪变为活动就绪,应利用(active)原语;从阻 塞状态变为就绪状态应利用(wakeup)原语
      7. 下列信息中,不属于CPU现场信息的依次是(进程的就绪、阻塞、执行等基本状态)和(保存在堆栈中的函数参数、函数返回地址)
      8. 下列信息中,(完整的程序代码)不属于PCB的内容
      9. 在将CPU的执行状态分为用户态和核心态的系统中,应该在核心态下执行的指令 依次为(屏蔽所有中断)、(设置时钟)和(存取内存中某地址单元的值)。而从用户状态转换到系统状态是通过(访管指令或中断)实现的
      10. 在分时系统中,导致进程创建的典型事件是(用户登录);在批处理系统中,导致进程创建 的典型事件是(作业调度);由系统专门为运行中的应用进程创建新进程的事件是(提供服务)。在创建进程 时,(为进程分配CPU)不是创建所必需的步骤
      11. (整型信号量)是一种只能由wait和signal操作所改变的整型变量,(控制变量)可用于实现进程的(互斥) 和(同步), (互斥)是排它性访问临界资源
      12. 对于记录型信号量,在执行一次wait操作时,信号量的值应当(减1),当其值为(小于0) 时,进程应阻塞。在执行signal操作时,信号量的值应当(加1),当其值为(小于等于0)时,应唤醒阻 塞队列中的进程
      13. 用信号量S实现对系统中4台打印机的互斥使用S.value的初值应设置为(4), 若S.value的当前值为-1,则表示S.L队列中有(1)个等待进程。
      14. 设有10个进程共享一个互斥段,如果最多允许有1个进程进入互斥段,则所采用 的互斥信号M初值应设置为(1),而该信号量的取值范围为(1 〜-9);如果最多允许有3个进程 同时进入互斥段,则所采用的互斥信号量初值应设置为(3).
      15. 在生产者_消费者问题中,应设置互斥信号量mutex、资源信号量full和empty。 它们的初值应分别是( 1 )、( 0)、(+n)
      16. 在直接通信方式中,系统通常提供的两条通信原语如下,请选择适当的参数填入send ((receiver), (message)); receive((sender), (message))
      17. 有两个程序:A程序按顺序使用CPU 10秒、设备甲5秒、CPU 5秒、设备乙10 秒、CPU 10秒;B程序按顺序使用设备甲10秒、CPU10秒、设备乙5秒、CPU 5秒、设 备乙10秒。在顺序环境下,执行上述程序,CPU的利用率约为(50%),若允许它们采用非抢占方式并发执行,并不考虑切换等开销,则CPU的利用率约为(90%)
      18. 在引入线程的操作系统中,资源分配和调度的基本单位是(进程),CPU调度和分派的 基本单位是(线程)
      19. 使用mail命令的信箱通信属于(非实时通信),因为信息是被发送到接收方的(信箱)中;使用write 命令,实现的是(实时通信)通信,因为信息是被送到收方的(屏幕);使用共享文件进行通信的方式属 于(管道通信)通信。
      20. 对生产者一消费者问题的算法描述如下,请选择正确的答案编号填入方框中
        Producer(){ consumer(){
        while(wait(empty)){ while(wait(empty)){
        (wait(empty)); (wait(full));
        (wait(mutex)); (wait(mutex));
        buffer(in)=m; m=buffer(out);
        in=(in+1)% out=(out+1)%
        n; n;
        (signal(mutex)) (signal(mutex))
        (signal(full)); (signal(empty))

      21.正在等待他人释放临界资源的进程处于(阻塞)状态,已分配到除CPU外的所有资源的 进程处于(就绪)状态,已获得CPU的进程处于(执行)状态
      22.进程的三个基本状态是(就绪)、(执行)、(阻塞)。由(就绪)到(执行)是由进程调度所引起的:由(执行) 到(ci是正在执行的进程发生了_某事件,使之无法继续执行而引起的。
      23.进程和程序的一个本质区别是(前者为动态的,后者为静态的)
      24.

      在这里插入图片描述
      试选择(A)—(D),以便能正确地描述图2.12所示的前趋关系
      var a, b, c: semaphore:=0» 0, 0;
      begin parbegin
      begin SI; (signal(a));
      end; begin S2;
      (signal(b)); end; begin
      wait((signal(a)); wait(signal(b)); S3; (signal©);
      end
      begin (wait©), S4 end
      parend end

    第三章

    • 单选题
    1. 从下面关于安全状态和非安全状态的论述中,选出.一条正确的论述。
      安全状态是没有死锁的状态,非安全状态是有可能死锁的状态
    • 填空题
    1. 高级调度又称作作业调度调度,其主要功能是按照一定的算法从外存的后备队列中选若干作业进入内存,并为它们创建进程;低级调度又称作进程调度调度,其主要 功能是按一定算法从就绪队列中选一个进程投入执行

    2. 作业调度必须做接纳多少个作业接纳哪些作业两个决定

    3. 进程调度的主要任务是保存CPU现场按某种算法选择一个就绪进程把CPU分配给新进程,进程调度的方式主要有抢占调度非抢占调度两种方式

    4. 在抢占调度方式中,抢占的原则主要有:时间片原则短作业优先优先权原则

    5. 在设计进程调度程序时,应考虑引起调度的因素调度算法的选择调度算法的选择三个问题

    6. 为了使作业的平均周转时间最短,应该选择短作业(进程)优先调度算法:为了使当前执行的进程 总是优先权最高的进程,则应选择立即抢占的高优先权优先调度算法;而分时系统则常采用时间片轮转调度算法

    7. 分时系统中,时间片选得太小会造成系统开销增大的现象,因此,时间片的大小一般选择为略大于一次典型的交互所需要的时间

    8. 采用动态优先权时,为了避免一个低优先权的进程处于饥饿状态,可以随着进程等待时间的增加而提高其优先权:而 为了避免一个高优先权的长作业长期垄断CPU,则可以随着进程运行时间的增加而降低其优先权

    9. 高响应比优先调度算法综合考虑了作业的运行时间等待时间,因此会兼顾到长、短作业

    10. 死锁产生的主要原因是竞争资源进程推进顺序非法

    11. 死锁产生的必要条件是互斥条件请求与保持条件不剥夺条件环路等待条件

    12. 通过破坏死锁产生的四个必要条件可进行死锁的预防,其中互斥条件一般是不允许破坏的,一次性分配所有资源破坏的是其中的请求与保持条件,资源的有序分配破坏的是其中的环路等待条件。

    13. 避免死锁,允许进程动态地申请资源,但系统在进行分配时应先计算资源分配 的安全性。若此次分配不会导致系统进入不安全状态,便将资源分配给它,否则便让进程等待

    14. 解决死锁问题的方法有预防、避免、检测并解除等,一次性分配所有的资源采用 的是其中的预防死锁方法,银行家算法采用的是其中的避免死锁方法

    15. 根据死锁定理,一个状态为死锁状态的充分条件是当且仅当该状态的资源分配图是不可完全简化时。

    16. 撤消进程剥夺资源是解除死锁的两种常用方法

    • 判断题

      1. 计算型作业的优先权,应高于I/O型作业的优先权。(× )

      2. 长作业的优先权,应高于短作业的优先权 (× )

      3. 用户进程的优先权,应高于系统进程的优先权。 (× )

      4. 资源要求多的作业,其优先权应高于资源要求少的作业。 (× )

      5. 在动态优先权中,随着作业等待时间的增加,其优先权将随之下降。 (× )

      6. 在动态优先权时,随着进程执行时间的增加,其优先权降低 (√ )

    • 完型填空

    1. 在三种基本类型的操作系统中,都设置了(进程调度),在批处理系统中还应设置(作业调度);在分 时系统中除了((进程调度)以外,通常还设置了(中级调度),在多处理机系统中则还需设置(多处理机调度)

    2. 在面向用户的调度准则中,(截止时间的保证)是选择实时调度算法的重要准则,(响应时间快)是选择分时系 统中进程调度算法的重要准则,(平均周转时间短)是批处理系统中选择作业调度算法的重要准则,而(优先权高的作业能获得优先服务) 准则则是为了照顾紧急作业用户的要求而设置的

    3. 作业调度是从处于(后备)状态的队列中选取作业投入运行,(周转时间)是指作业进入系统到作 业完成所经过的时间间隔,(时间片轮转)算法不适合作业调度

    4. 下列算法中,(FCFS调度算法)只能采用非抢占调度方式,(时间片轮转法)的只能采用抢占调度方式,而其余的 算法既可采用抢占方式,也可采用非抢占方式

    5. 我们如果为每一个作业只建立一个进程,则为了照顾短作业用户,应采用(短作业优先);为 照顾紧急作业的用户,应采用(高响应比优先);为能实现人机交互作用应采用(时间片轮转法);为了兼顾短作业和 长时间等待的作业,应采用(高响应比优先);为了使短作业、长作业及交互作业用户都比较满意,应采 用(多级反馈队列调度算法);为了使作业的平均周转时间最短,应采用(短作业优先)算法

    6. 下列调度方式和算法中,最容易引起进程长期等待的是(抢占式静态优先权优先算法)

    7. 支持多道程序设计的操作系统在运行过程中,不断地选择新进程运行来实现CPU 的共享,但其中(有新进程进入就绪队列)不是引起操作系统选择新进程的直接原因

    8. 下列选项中,降低进程优先级的最合理的时机是(进程的时间片用完)

    9. 假设就绪队列中有10个进程,以时间片轮转方式进行进程调度,时间片大小为 300 ms, CPU进行进程切换要花费10 ms,则系统开销所占的比率约为(3% );若就绪队列中 进程个数增加到20个,其余条件不变,则系统开销所占的比率将(不变)。

    10. EDF算法选择(截止时间最早的进程)为下一个执行的进程,LLF算法则优先选择(松弛度最低的进程)为下一个执行的进程

    11. 实时系统中的优先级倒置是指(优先级进程被低优先级进程延迟或阻塞)

    12. 系统产生死锁是指(若干进程等待被其他进程所占用而又不可能被释放的资源)。产生死锁的基本原因是(系统资源不足 )和(进程推进顺序不当),产生死锁的四个必要条 件是互斥条件、(请求和保持条件)、不剥夺条件和(环路条件)

    13. 设m为同类资源R的数目,n为系统中并发进程数。当n个进程共享m个互斥资 源R时,每个进程对R的最大需求是w;则下列情况会出现死锁的是(m=4,n=2,w=3)

    14. 在多道程序的环境中,不会因竞争(可被抢占的资源)而产生死锁

    15. 下述解决死锁的方法中,属于死锁预防策略的是(资源有序分配法),属于死锁避免策略的是(银行家算法)

    16. 死锁的四个必要条件中,一般情况下,无法破坏的是(互斥使用资源)

    17. 死锁的预防是通过破坏产生死锁的四个必要条件来实现的,下列方法中,(一次性分配策略)破坏 了 “请求与保持”条件,(资源有序分配策略)破坏了 “循环等待”条件。

    18. 某系统中有13台磁带机,K个进程共享这些设备,每个进程最多请求使用3台, 则系统不会死锁的K值是(不大于6)

    第四章

    • 单选题

      1. 要保证进程在主存中被改变了位置后仍能正确执行,则对主存空间应采用动态重定位
      2. 在伙伴系统中,一对空闲分区为伙伴是指两个大小均为2KB的相邻空闲分区,且前一个分区的起始地址是2K+1B的倍数.
      3. 在段页式存储管理中,用于地址映射的映射表是(每个进程一张段表, 每个段一张页表)
    • 填空题

      1. 使每道程序能在内存中“各得其所”是通过内存分配功能实现的;保证每道程序在不受千扰的环境下运行, 是通过内存保护功能实现的; 为缓和内存紧张的情况而将内存中暂时不能运行的进程调至外存,是对换功能实现的;能让较大的用户程序在较小的内存空间中运行,是通过内存扩充(或虚拟存储器) 功能实现的。
      2. 程序装入的方式有绝对装入方式可重定位装入方式动态运行时装入方式三种方式。
      3. 程序的链接方式有静态链接装入时动态链接运行时动态链接三种方式。
      4. 把作业装入内存中随即进行地址变换的方式称为静态重定位;而在作业执行期间,当访问到指令和数据时才进行地址变换的方式称为动态重定位
      5. 地址变换机构的基本任务是将地址空间中的逻辑地址变换为内存空间中的物理地址.
      6. 通常, 用户程序使用逻辑地址, 处理机执行程序时则必须用物理地址.
      7. 在首次适应算法中,空闲分区以地址递增的次序拉链;在最佳适应算法中,空闲分区以空闲区大小递增的次序拉链。
      8. 在连续分配方式中可通过紧凑来减少内存零头,它必须得到动态重定位技术的支持。
      9. 在伙伴系统中, 令buddyk(x) 表示大小为2^k,起始地址为x的块的伙伴的地址, 则buddyk(x)的通用表达式为x+2K-[(x/2)%2)]*2(k+1)(其中“%2”表示除以2然后取余数).
      10. 现进程对换应具备对换空间的管理进程换入进程换出三方面的功能。
      11. 分页系统中若页面较小, 虽有利于减少块内碎片, 但会引起页表太长; 而页面较大, 虽可减少页表长度 但会引起块内碎片增大.
      12. 分页系统中,页表的作用是实现页号物理块号的转换。
      13. 在分页系统中为实现地址变换而设置了页表寄存器, 其中存放了处于执行状态进程的页表长度页表始址;而其他进程的上述信息则被保存在它们的PCB中。
      14. 引入分段主要是满足用户的需要, 具体包括便于编程分段共享分段保护动态链接等方面。
      15. 在页表中最基本的数据项是物理块号; 而在段表中则是段的内存基址段长.
      16. 把逻辑地址分成页号和页内地址是由机器硬件 进行的,故分页系统的作业地址空间是维的;把逻辑地址分成段号和段内地址是由程序员进行的,故分段系统的作业地址空间是维的。
      17. 在段页式系统中(无快表), 为获得一条指令或数据, 都需三次访问内存。 第一次从内存中取得页表起始地址;第二次从内存中取得块号 ;第三次从内存中取得指令或数据.
    • 判断题

      1. 即使在多道程序设计的环境下,用户也能设计出用物理地址直接访问内存的程序。(× )
      2. 内存分配最基本的任务是为每道程序分配内存空间,其所追求的主要目标是提高存储空间的利用率。(√)
      3. 为了提高内存保护的灵活性,内存保护通常由软件实现。(× )
      4. 交换技术已不是现代操作系统中常用的技术。(× )
      5. 地址映射是指将程序空间中的逻辑地址变为内存空间的物理地址。(√ )
      6. 虚拟存储器是物理上扩充内存容量。(× )
    • 完型填空

      1. 使每道程序能在不受干扰的环境下运行,主要是通过内存保护功能实现的;使分配到与 其地址空间不一致的内存空间的程序,仍能正常运行则主要是通过地址映射功能实现的。
      2. 静态重定位是在作业的装入过程中进行的,动态重定位是在作业执行过程中进行的。
      3. 在进程的地址空间中,有一条将第1000单元中的数据装入寄存器R1的指令“LOAD R1, 1000”,采用静态重定位技术时,装入内存后,该指令的第二个操作数修改为1000和装入该进程的内存起始地址之和;采用动态重定位技术时,则 仍然为1000
      4. 静态链接是在装入程序之前中进行的;而动态链接是在装入某段程序时调用某段程序时进行的,其中在 调用某段程序时 进行链接,可提高内存利用率;适用于动态链接的存储方式是 分段存储管理
      5. 由连续分配方式发展为分页存储管理方式的主要推动力是 提高内存利用率 ;由分页系统发展为分段系统, 进而又发展为段页式系统的主要动力是 满足用户需要既满足用户要求,又提高内存利用率 .
      6. 在动态分区式内存管理中, 倾向于优先使用低址部分空闲区的算法是 首次适应算法 ; 能使内存空间中空闲区分布得较均匀的算法是 循环首次适应算法 ;每次分配时, 把既能满足要求, 又是最小的空闲区分配给进程的算法是 最佳适应算法
      7. 在首次适应算法中, 要求空闲分区按 空闲区起始地址递增 的顺序形成空闲分区链;在最佳适应算法中是按 空闲区大小递增 的顺序形成空闲分区链; 最坏适应算法是按 空闲区大小递减 的顺序形成空闲链.
      8. 采用动态分区存储管理系统中, 主存总容量为 55 MB, 初始状态全空, 采用最佳适应算法,内存的分配和回收顺序为:分配15MB,分配30MB,回收15MB,分配8MB,分配 6MB, 此时主存中最大的空闲分区大小是 9MB ; 若采用的是首次适应算法, 则应该是10 MB.
      9. 在回收内存时可能出现下述四种情况:(1)释放区与插入点前一分区F1相邻接,此时应 以F1分区的表项为新表项, 但修改新表项的大小 :(2)释放区与插入点后一分区F2相邻接,此时应 以F2分区的表项作为新表项,同时修改新表项的大小和始址 :(3)释放区不与F1和F2相邻接,此时应 为回收区建立一分区表项,填上分区的大小和始址 :(4)释放区既与F1相邻接,又与F2相邻接,此时应 以F1分区的表项为新表项,但修改新表项的大小且还要删除F2所对应的表项 .
      10. 对重定位存储管理方式,应 在整个系统中设置一个重定位寄存器 ,当程序执行时,是由 有效地址在整个系统中设置一个重定位寄存器 中的 起始地址 相加得到 物理地址 ,用 物理地址 来访问内存。
      11. 对外存对换区的管理应以 提高换入换出速度 为主要目标,对外存文件区的管理应以 提高存储空间的利用率 为主要目标。
      12. 分页系统中, 主存分配的单位是 物理块 , 而地址转换工作是由 硬件 完成的。
      13. 在页式存储管理中,其虚拟地址空间是 一维 的;在段式存储管理中,其虚拟地址空间是 二维 的;在段页式存储管理中, 其虚拟地址空间是 二维 的。
      14. 在没有快表的情况下, 分页系统每访问一次数据, 要访问 2次内存; 分段系统每访问一次数据,要访问2次内存;段页式系统每访问一次数据,要访问3次内存。
      15. 通常情况下,在下列存储管理方式中, 固定分区支持多道程序设计、管理最简单,但存储碎片多; 页式使内存碎片尽可能少, 而且使内存利用率最高。
      16. 下述存储管理方式中,会产生内部碎片的是页式和段页式, 会产生外部碎片的是动态分区方式和段式.
      17. 在动态分区式内存管理中,若某一时刻,系统内存的分配情况如图所示。当一进程要申请一块20K的内存空间时,首次适应算法选中的是始址为60K的空闲分区,最佳适应算法选中的是始址为270K 的空闲分区,最坏适应算法选中的是始址为390K的空闲分区。

    第五章

    • 单选题

      1. 现代操作系统中,提高内存利用率主要是通过(虚拟存储器 )功能来实现的。
      2. Linux采用(请求分页)存储管理方式.
      3. Linux内核的页面分配程序采用(伙伴系统)算法进行页框的分配和回收。
    • 填空题

      1. 在请求调页系统中,地址变换过程可能会因为逻辑地址越界缺页访问权限错误等原因而产生中断.
      2. 虚拟存储器的基本特征是多次性对换性,因而决定了实现虚拟存储器的关键技术是请求调页(段)页(段)置换.
      3. 实现虚拟存储器,除了需要有一定容量的内存和相当容量的外存外,还需要有页表机制地址变换机构缺页中断机构的硬件支持.
      4. 为实现请求分页管理,应在纯分页的页表基础上增加状态位访问字段修改位外存地址等数据项.
      5. 在请求调页系统中要采用多种置换算法,其中OPT是最佳置换算法,LRU是最近最久未用置换算法,NUR是最近未用置换算法,而LFU则是最少使用置换算法,PBA是页面缓冲算法.
      6. VAX/VMS 操作系统采用页面缓冲算法: 它采用FIFO算法选择淘汰页, 如果淘汰页未被修改, 则将它所在的物理块插到空闲页面链表中, 否则便将其插入修改页面链表中, 它的主要优点是可以大大减少换进/换出而读写磁盘次数.
      7. 在请求调页系统中, 调页的策略有预调页请求调页两种方式.
      8. 在请求调页系统中,反复进行页面换进和换出的现象称为抖动,它产生的原因主要是置换算法选用不当.
      9. 分页系统的内存保护通常有越界检查存取控制两种措施.
      10. 分段系统中的越界检查是通过段表寄存器中存放的段表长度和逻辑地址中的段号的比较,以及段表项中的段长和逻辑地址中的段内地址的比较心实现的.
      11. 为实现段的共享,系统中应设置一张共享段表,每个被共亭的段占其中的一个表项,其中应包含了被共享段的段名共享进程计数段在内存的起始地址段长等数据项:另外,还在该表项中记录了共享该段的每个进程的情况.
      12. 在分段系统中常用的存储保护措施有越界检查存取控制权限检查环保护机构三种方式.
      13. 在采用环保护机制时,一个程序可以访问驻留在相同环或较低特权环中的数据:可以调用驻留在相同环或较高特权环中的服务.
      14. Intel x86/Pentium 系列CPU 可采用实模式保护模式两种工作模式.
      15. Intel x86/Pentium 的分段机制, 每个进程用于地址映射的段表也叫做局部描述符表LDT; 另外,当进程运行在特权级别为0的核心态下时, 它必须使用全局描述符表GDT来进行地址映射.
      16. Intel x86/Pentium 的分页机制,采用级分页模式,其外层页表也叫做页目录.
    • 判断题

      1. 非虚拟存储器要求作业在运行前,必须全部装入内存,且在运行过程中也必须一直驻留内存(√)
      2. 非虚拟存储器要求作业在运行前,不必全部装入内存,且在运行过程中不必一直驻留内存.(× )
      3. 非虚拟存储器要求作业在运行前,不必全部装入内存,但在运行过程中必须一直驻留内存.(× )
      4. 非虚拟存储器要求作业在运行前,必须全部装入内存,但在运行过程中不必一直驻留内存.(× )
      5. 在请求段页式系统中,以页为单位管理用户的虚空间,以段为单位管理内存空间(× )
      6. 在请求段页式系统中, 以段为单位管理用户的虚空间, 以页为单位管理内存空间(√ )
      7. 为提高请求分页系统中内存的利用率, 允许用户使用不同大小的页面。(× )
      8. 在虚拟存储器中,为了能让更多的作业同时运行, 通常只应装入10%~30%的作业后便启动运行.(× )
      9. 实现虚拟存储器的最常用的算法,是最佳适应算法OPT.(× )
      10. 由于有了虚拟存储器,于是允许用户使用比内存更大的地址空间(√ )
      11. 分段的尺寸受内存空间的限制, 且作业总的尺寸也受内存空间的限制(× )
      12. 分段的尺寸受内存空间的限制, 但作业总的尺寸不受内存空间的限制(√)
      13. 分段的尺寸不受内存空间的限制, 且作业总的尺寸不受内存空间的限制(×)
      14. 分段的尺寸不受内存空间的限制,但作业总的尺寸受内存空间的限制(×)
    • 完型填空

      1. 虚拟存储器最基本的特征是 多次性 ; 该特征主要是基于 局部性原理 ; 实现虚拟存储器最关键的技术是 请求调页(段) .

      2. 虚拟存储器管理系统的基础是程序的局部性理论。 此理论的基本含义是 程序执行时对主存的访问是不均匀的 . 局部性有两种表现形式,时间局部性和 空间的局部性 ,它们的意义分别是 最近被访问的单元, 很可能在不久的将来还要被访问最近被访问的单元,很可能它附近的单元也即将被访问 。根据局部性理论,Denning 提出了 工作集理论

      3. 实现虚拟存储器的目的是 扩充主存容量 ;下列方式中, 可变分区管理 不适用于实现虚拟存储器。

      4. 一个计算机系统的虚拟存储器的最大容量是由 计算机的地址结构 确定的,其实际容量是由 内存和硬盘容量之和 确定的。

      5. 在请求分贝系统的贞表中增加了若干项,其中状态位供 程序访问 参考; 修改位供 换出页面 时参考:访问位供 置换算法 参考;外存始址供 调入页面 参考。

      6. 在请求调页系统中,若逻辑地址中的页号超过页表控制寄存器中的页表长度,则会引起 越界中断 ;否则,若所需的页不在内存中,则会引起 缺页中断 ,在前面步骤处理完成后,进程将执行 被中断的那一条 指令。

      7. 在请求调页系统中,内存分配有 固定分配可变分配 两种策略,第一种的缺点是可能导致频繁地出现缺页中断而造成CPU利用率下降.

      8. 在请求调页系统中有着多种置换算法;(1)选择最先进入内存的页面予以淘汰的算法称为 FIFO算法 ;(2)选择在以后不再使用的页面予以淘汰的算法称为 OPT算法 ;(3)选择自上次访问以来所经历时间最长的页面予以淘汰的算法称为 LRU算法 ;(4) 选择自某时刻开始以来, 访问次数最少的页面予以淘汰的算法称为 LFU算法 .

      9. 在页面置换算法中, 存在Belady 现象的算法是 FIFO ;其中, Belady现象是指 当分配到的内存块数增加时,缺页中断的次数有可能反而增加 .

      10. 在请求调页系统中,凡未装入过内存的页都应从 文件区 调入;已运行过的页主要是从 对换区 调入, 有时也从 页面缓冲池 调入。

      11. 系统抖动是指 被调出的页面又立刻需要被调入所形成的频繁调入调出现象;其产生的原因主要是 置换算法选择不当 .

      12. 在环保护机构中, 操作系统应处于 最高特权环 内, 一般应用程序应处于 最低特权环 内, 并应遵循下述规则:(1)一个程序可以访问驻留在 相同和较低特权环 中的数据;(2)一个程序可以调用驻留在 相同和较高特权环 中的服务。

      13. 测得某个请求调页的计算机系统部分状态数据为:CPU利用率20%,用于对换空间的硬盘的利用率97.7%,其他设备的利用率5%.由此断定系统出现异常。此种情况, 减少运行的进程加内存条,增加物理空间容量 能提高CPU的利用率。

      14. 虚拟存储器的功能由 硬件 完成。在虚拟存储器系统中,采用 高速缓冲存储器 提高 动态地址翻译 的速度。

      15. 某虚拟存储器的用户编程空间共32个页面,每页1KB,主存为16KB。假定某时刻用户页表中已调入主存的页面的虚页号0,1,2,3和对照物理页号5,10,4,7。则与下面十六进制虚地址相对应的物理地址为(如果主存中找不到,即为页失效):虚地址0A5C的物理地址 125C ,虚地址1A5C的物理地址 页失效

    第六章

    • 单选题

      1. 在一般大型计算机系统中,主机对外围设备的控制可通过通道、控制器和设备三个层次来实现。从下述叙述中选出一条正确的叙述。
        通道控制控制器,设备在控制器控制下工作.
      2. 从下面关于设备属性的论述中,选择一条正确的论述。共享设备必须是可寻址的和随机访问的设备。
      3. 在程序I/O方式中,对于输出设备,准备就绪是指(输出缓冲区已空 )
      4. 从下面关于设备独立性的论述中, 选择一条正确的论述。设备独立性是指用户程序独立于具体使用的物理设备的一种特性.
      5. 下面关于虚拟设备的论述中, 选择一条正确的论述。虚拟设备是指把一个物理设备变换成多个对应的逻辑设备。
      6. 从下列论述中选出一条正确的论述。同一用户所使用的1/O设备也可以并行工作。
      7. 从下列关于驱动程序的论述中, 选出一条正确的论述。对于一台多用户机,配置了相同的8个终端,此时可只配置一个由多个终端共享的驱动程序。
    • 填空题】

      1. 对打印机的/O控制方式常采用中断驱动方式,对磁盘的I/0控制方式常采用DMA控制方式
      2. 【填空题】DMA是指允许I/O设备内存之间直接交换数据的设备。在DMA中必须设置地址寄存器,用于存放内存地址;还必须设置数据缓冲寄存器用来暂存交换的数据。
      3. 设备控制器是CPUI/O设备之间的接口,它接受来自CPU的I/0命令,并用于控制I/O设备的工作。
      4. 缓冲池中的每个缓冲区由缓冲首部缓冲体两部分组成。
      5. I/0软件通常被组织成用户层软件设备独立性软件设备驱动程序I/O中断处理程序四个层次。
      6. 驱动程序与I/0设备特性紧密相关,如果计算机中连有3个同种类型的彩色终端和2个同种类型的黑白终端,可以为它们配置2个设备驱动程序。
      7. 为实现设备分配,系统中应配置设备控制表系统设备表的数据结构;为实现控制器和通道的分配,系统中还应配置控制器控制表通道控制表的数据结构。
      8. 除了设备的独立性外,在设备分配时还要考虑设备的固有属性设备的分配算法设备分配中的安全性三种因素。
      9. 为实现设备独立性,在系统中必须设置逻辑设备表LUT表,通常它包括逻辑设备名物理设备名设备驱动程序入口地址三项。
      10. SPOOLing系统是由磁盘中的输入井输出井,内存中的输入缓冲区输出缓冲区输入进程输出进程以及井管理程序构成的。
      11. 实现后台打印时,SPOOLing系统中的输出进程,只为请求I/O的进程做两件事:(1)为之在输出井中申请一空闲缓冲区,并将要打印的数据送入其中;(2)为用户进程申请一张用户打印请求表,并将用户的打印需求填入表中,再将该表排在假脱机文件队列中。
      12. 磁盘的访问时间由寻道时间旋转延迟时间数据传输时间三部分组成,其中所占比重比较大的是寻道时间,故磁盘调度的目标为使磁盘的平均寻道时间最短
      13. 在磁盘调度中,选择优先为离当前磁头最近的磁道上的请求服务的算法为SSTT算法,这种算法的缺点是会产生饥饿现象;选择优先为当前磁头移动方向上、离当前磁头最近的磁道上的请求服务的算法为SCAN算法。
    • 判断题

      1. 构成SPOOLing系统的基本条件,是具有外围输入机和外围输出机。(×)
      2. 构成SPOOLing系统的基本条件,是只要具有大容量、高速硬盘作为输入井与输出井。(×)
      3. 构成SPOOLing系统的基本条件,是只要操作系统中采用多道程序技术。(×)
      4. SPOOLing系统是建立在分时系统中。(×)
      5. SPOOLing系统是虚拟存储技术的体现。(×)
      6. SPOOLing系统是在用户程序要读取数据时启动输入进程输入数据。(×)
      7. 当输出设备忙时,SPOOLing系统中的用户程序暂停执行,待I/O空闲时再被唤醒,去执行操作。(×)
      8. SPOOLing系统实现了对/0设备的虚拟,只要输入设备空闲,SPOOLing可预先将输入数据从设备传送到输入井中供用户程序随时读取。(×)
      9. 在SPOOLing系统中,用户程序可随时将输出数据送到输出井中,待输出设备空闲时再执行数据输出操作。(×)
    • 连线题
      为了对缓冲池中的队列进行操作而设置了互斥信号量MS[type]和资源信号量RS[type],相应地,两个操作过程Getbuf及Putbuf的描述如下:

    procedure Getbuf(type)
    begin
    wait(RS[type]));
    wait(MS[type]));
    B(n):=Takebuf(type);
    wait(RS[type]));
    end
    procedure Putbuf(type,n)
    begin
    wait(MS[type]));
    Addbuf(type,n);
    wait(RS[type]));
    signal(RStype]));
    end

    • 完型填空

      1. 通道是一种特殊的 处理机 ,具有 执行I/O指令集 能力。主机的CPU与通道可以并行工作,并通过 I/O指令和I/O中断 实现彼此之间的通信和同步。

      2. 在I/O控制方式的发展过程中,最主要的推动因素是 减少主机对I/O控制的干预 。提高I/O速度和设备利用率,在OS中主要依靠 缓冲管理 功能。使用户所编制的程序与实际使用的物理设备无关是由 设备独立性 功能实现的。

      3. 磁盘属于 块设备 ,其信息的存取是以 固定长数据块 为单位的;磁盘的I/O控制主要采取 DMA 方式;打印机的I/0控制主要采取 程序中断 方式。

      4. 在利用RS-232接口进行通信时,其通信速率为9.6KB/S(B为Bit)。如果在通信接口中仅设置了一个8位寄存器作为缓冲寄存器,这意味着大约每隔 0.8ms 的时间便要中断一次CPU,且要求CPU必须在 1ms 时间内予以响应。

      5. 假定把磁盘上一个数据块中的信息输入到一单缓冲区的时间T为100us,将缓冲区中的数据传送到用户区的时间M为50us,而CPU对这一块数据进行计算的时间C为50us,这样,系统对每一块数据的处理时间为 150 s ;如果将单缓冲改为双缓冲,则系统对每一块数据的处理时间为100us

      6. 操作系统中采用缓冲技术的目的是为了增强系统 并行操作 的能力;为了使多个进程能有效地同时处理输入和输出,最好使用 缓冲池

      7. 设备独立性是指 用户程序 独立于 物理设备

      8. 在单用户系统中可为 整个系统 设置一张逻辑设备表,在多用户系统中应为 每个用户(进程) 设置一张逻辑设备表。

      9. 为实现设备分配,应为每个设备设置一张 设备控制表 ,在系统中配置一张 系统设备表 ;为实现设备独立性,系统中应设置一张 逻辑设备表

      10. SPOOLing是对脱机I/O工作方式的模拟,SPOOLing系统中的输入井是对脱机输入中的 磁盘 进行模拟,输出井是对脱机输出中的 磁盘 进行模拟,输入进程是对脱机输入中的 外围控制机 进行模拟,输出进程是对脱机输出中的 外围控制机 进行模拟。

      11. 下列磁盘调度算法中,平均寻道时间较短,但容易产生饥饿现象的是 SSTF ;电梯调度算法是指 SCAN ;能避免磁臂粘着现象的算法是 FSCAN

    第七章

    • 单选题

      1. —个文件系统中,FCB占64 B, —个盘块大小为1KB,采用一级目录,假定文件 目录中有3200个目录项,则检索一个文件平均需要100次访问磁盘。
      2. 在图7.8所示的树形目录结构中,Wang用户需要经常性地访问Zhang用户的 /Zhang/Course/Coursel/fl文件,他可以通过 这个文件链接到Wang目录下,但不能使用原来的文件名 来提高检索速度并简化操作过程。

    在这里插入图片描述

    1. 在linux中,设文件F1的当前链接计数为1,先建立F1的符号链接文件F2,再建立F1的硬链接文件F3,则此时文件F1、F2和F3的链接计数值分别是2, 1,2

    2. 如果采用符号链接的方式共享文件,那么当文件被删除的时候,该共享链接会失效

    • 填空题

      1. 文件管理应具有文件存储空间的管理目录管理文件的读/写管理文件的共享和保护等功能。
      2. 文件按逻辑结构可分成字符流式记录两种类型,现代操作系统普遍采用的是其中的字符流式结构。
      3. 记录式文件,把数据的组织分成数据项记录文件三级。
      4. 数据项是用来描述一个实体的某个属性:记录是用来描述一个实体的某方面(相对完整)的属性:文件用于描述一个实体集(即群体) 的某方面的属件。
      5. 一个文件系统模型由最低层对象及其属性、中间层对对象进行操纵和管理的软件集合和最高层用户接口H个层次组成。
      6. 对文件的访问有顺序访问随机访问两种方式。
      7. 从文件管理的角度来看,文件是由文件控制块FCB和文件体两部分组成的;而在具体实现时, 前者的信息通常以目录项磁盘索引结点的方式存放在文件存储器上。
      8. 文件目录的最主要功能是实现按名存取(文件名到物理地址的转换),故目录项的内容至少应包含文件名文件的物理地址
      9. 对目录管理的要求,首先是能实现按名存取,其次是提高对目录的检索速度,同时应允许多个用户共享文件,以及允许文件重名,以便不同用户能按自己的习惯对文件命名。
      10. 在采用树形目录结构的文件系统中,树的结点分为三类:根结点表示根目录,枝结点表示子目录文件,叶结点表示数据文件
      11. 在利用线性检索法对树形目录进行检索时,系统首先读入路径名的第一个分量名,将它与根目录;当前工作目录文件 中的各目录项中的文件名进行比较。若匹配,便可得到FCB;索引结点指针
      12. 文件保护是指避免文件拥有者或其他用户因有意或无意的错误操作使文件受到破坏;文件共享是指允许多个用户共同使用同一个文件。
      13. 引入索引结点后,一个文件在磁盘中占有的资源包括一个磁盘索引结点一个(或多个)目录项若干个存放文件内容的磁盘块三部分。
      14. 文件在使用前必须先执行打开操作,其主要功能是把文件的FCB;索引结点从外存复制到内 存中,并在用户指定文件之间津立一备诵.路,再返回给用户一个文件描述符
    • 判断题

      1. 在利用顺序检索法时,对树型目录应采用文件的路径名,且应从根目录开始逐级检索。(× )
      2. 由于Hash法具有较快的检索速度,故现代操作系统中已开始用它取代传统的顺序检索法。(× )
      3. 在顺序检索法的查找过程中,只要有一个文件分量名未能找到,便应停止查找。(√)
      4. 在顺序检索法的查找完成时,即应得到文件的物理地址。(× )
    • 完型填空

      1. 文件系统最基本的目标是 按名存取 ,它主要是通过 目录管理 功能实现的,文件系统所追求的最 重要的目标是 提高对文件的存取速度 .

      2. 在文件系统中可命名的最小数据单位是 数据项 ,用户以 记录 为单位对文件进行存取、检 索等,对文件存储空间的分配则以 文件 为单位。

      3. 按逻辑结构可把文件分为 记录式文件流式文件 两类,LINUX文件系统采用 流式文件 结构

      4. OS用来控制和管理一个文件的文件属性信息被称作该文件的 FCB ,它通常存放在 该文件的上级目录的数据盘块 中。

      5. 在文件系统中是利用 目录 来组织大量的文件的,为了允许不同用户的文件使用相同 的文件名,通常文件系统中采用 多级目录 ;在目录文件中的每个目录项通常就是 FCBB ;在UNIX 系统中的目录项则是 文件名和索引结点指针

      6. Windows FAT32的目录项中不会包含 件控制块的物理位置 ;而Unix的磁盘索引结点中不会包含 文件名信息。

      7. 在树型目录结构中,用户对某文件的首次访问通常都采用 文件路径名 ;文件被打开后,对 文件的访问通常采用 用户文件描述符. ;打开文件操作完成的主要工作是 把指定文件的目录项复制到内存指定的区域

      8. 利用Hash法查找文件时,如果目录中相应的目录项是空,则表示 系统中无指定文件名 ;如果目录项 中的文件名与指定的文件名相匹配,则表示 找到了指定文件 ;如果目录项中的文件名与指定的文件名 不匹配,则表示发生了冲突

      9. 有一共享文件,它具有下列文件名:/usr/Wang/test/report、/usr/Zhang/report 及 /usr/Lee/report,试填写图 7.7 中的 root , usrLeetestreport

    在这里插入图片描述
    10. 在执行close过程时,若系统打开文件表项引用计数f.count=0不成立,应 置用户文件描述符表项为空 ;若 f.count=0但内存索引结点引用计数i.count=0不成立,则应 用户文件描述符表项和文件表项皆为空 ;若i.count=0,则应 关闭文件
    11. 在create处理过程中,若未检索到指定文件的索引结点,此时属于 创建新文件 ;检索到指 定文件的索引结点,此时若允许写,则此时属于 重写文件 ,否则是 出错
    12. 在访问矩阵中,如果在域Di中运行的进程能够增删所有保护域中对对象j的访问 权,则访问权组access(i,j)中必须包含 所有权 ;如果在域Di中运行的进程拥有对对象j进行读 的权利,而且他可以将对对象j进行读的权利扩展到其他域中去,则访问权组aCCeSS(i,j) 中必须包含对读操作的 拷贝权 ;如果在域Di中运行的进程可以删改域Dm中的访问权,则访 问权组access(i, j)(j列代表域Dm)中必须包含 控制权
    13. 将访问矩阵按列进行划分,可为每个列建立一张 访问控制表 ,如果对应列代表一个文件, 则可将 访问控制表 放在该文件的 文件控制块 中;将访问矩阵按行进行划分,则可为每个行建立一张 访问权限表 。通 过 访问权限表访问控制表 来实现控制矩阵的主要目的是 减少访问矩阵的空间开销

    第八章

    • 单选题

      1. 从下面的描述中选出一条错误的描述 一个文件在同一系统中、不同的存储介质上的拷贝,应采用同一种物理结构
    • 填空题

      1. 文件的物理结构中要有顺序结构链接结构索引结构三种类型,其中顺序访问效率最高的是顺序结构,随机访问效率最高的是索引结构
      2. 可将顺序文件中的内容装入到连续的多个盘块中,此时,文件FCB的地址部分给出的是文件的首个物理块的块号,为了访问到文件的所有内容,FCB中还必须有文件长度信息。
      3. 可将链接式文件中的文件内容装入到离散的多个盘块中,并通过链接指针将它们构成一个队列,显式链接文件具有较高的检索速度。
      4. 对字符流式文件,可将索引文件中的文件内容装入到离散的多个盘块中,并为每个 文件建立一张索引表,其中毎个表项中含有逻辑块号对应的物理块块号
      5. UNIX SvstemV将分配给文件的前十个数据盘块的地址登记在索引结点的直接地址项中,而所有后 续数据块的地址则登记在一次间址盘块中:再将这些登记数据块地址的首个盘块的块号登记在索引结点的一次间址项中,其他块的块号则登记在二次间址盘块中。
      6. 在利用空闲链表来管理外存空间时,可有两种方式:一种以空闲盘块为单位拉成一条链: 另一种以空闲盘区为单位拉成一条链。
      7. 在成组链接法中,将毎一组的盘块数和该组的所有的盘块号记入前一组的最后一个盘块中:再将第一组的上述信息记入超级块的空闲盘块号栈中,从而将各组盘块链接起来。
      8. 磁盘的第一级容错技术SFT-I包含双份目录双份文件分配表热修复重定向写后读校验等措施。
      9. 磁盘的第二级容错技术SFT-II主要用于防止磁盘驱动器和磁盘控制器的故障所导致的数据损坏,常用 的措施有磁盘镜像磁盘双工
      10. 集群系统的主要工作模式有双机热备份双机互为备份公用磁盘三种方式。
      11. 进行链接计数的一致性检查,需要检杳文件系统的所有目录,从而得到每个文件对应的目录项个数,并将其和该文件索引结点中的链接计数进行比较。
    • 判断题

      1. 一个文件在同一系统中、不同的存储介质上的拷贝,应采用同一种物理结构。(×)
      2. 文件的物理结构不仅与外存的分配方式相关,还与存储介质的特性相关,通常在 磁带上只适合使用顺序结构。(√)
      3. 采用顺序结构的文件既适合进行顺序访问,也适合进行随机访问。(√)
      4. 虽然磁盘是随机访问的设备,但其中的文件也可使用顺序结构 (√)
      5. 顺序文件适合于建立在顺序存储设备上,而不适合于建立在磁盘上。(×)
      6. 在显式链接文件中是在每个盘块中设置一链接指针,用于将文件的所有盘块都链 接起来。(×)
      7. 顺序文件必须采用连续分配方式,而链接文件和索引文件则可采用离散分配方式。(√)
      8. 在MS-DOS中采用的是隐式链接文件结构。(×)
      9. 在索引文件中,索引表的每个表项中含有相应记录的关键字和该记录的物理地址。(√)
      10. 对顺序文件进行检索时,首先从FCB中读出文件的第一个盘块号;而对索引文件 进行检索时,应先从FCB中读出文件索引表的始址。(√)
      11. 对一个具有三级索引表的文件,存取一个记录通常需要三次访问磁盘。(×)
      12. 在文件较大时,无论进行顺序存取还是随机存取,通常都以索引文件方式为最快。(×)
      13. 虚拟盘是一种易失性存储器,因此它通常只用于存放临时文件。(√)
      14. 优化文件物理块的分布可显著地减少寻道时间,因此能有效地提高磁盘I/O的 速度。(√)
      15. 对随机访问的文件,可通过提前读提高对数据的访问速度。(×)
      16. 延迟写可减少启动磁盘的次数,因此能等效地提高磁盘丨/0的速度(√)
    • 完型填空

      1. 假定盘块的大小为1KB,对于1.2 MB的软盘,FAT需占用( 1.8KB )的存储空间;对于 100 MB的硬盘,FAT需占用( 250KB )的存储空间。
      2. 某些系统中设置了一张 位示图 表,其中的每一个二进制位可用来表示磁盘中的一个块 的使用情况;也有些系统中设置了一张 文件分配表 表,其中的每个表项存放着文件中下一个盘块的物理地址。
      3. 在下列物理文件中,顺序文件将使文件顺序访问的速度最快; 隐式链接文件 最不适合对文件进行随 机访问;直接文件 能直接将记录键值转换成物理地址。
      4. 对文件空闲存储空间的管理,在MS-DOS中是采用 文件分配表 ; UNIX中采用 成组链接法 : Linux 的extfs则采用 位示图
      5. 如果利用20行、30列的位示图来标志空闲盘块的状态,假定行号、列号和盘块号 均从1开始编号,则在进行盘块分配时,当第一次找到的空闲盘块(即该位的值为“0”) 处于第5行、第12列,则相应的盘块号为 132 ;第二次找到值为“0”的位处于第11行、 第18列,则相应的盘块号为 318 。在回收某个盘块时,若其盘块号为484,则它在位示图 中的位置应为第 17 行,第 4 列。
      6. 磁盘高速缓冲设在内存 中,其主要目的是提高磁盘I/O的速度
      7. 下列方式中, 在磁盘上设置多个分区无法提高磁盘I/O的速度, 磁盘高速缓存不能改善磁盘系统的可靠性。
      8. 为实现磁盘镜像功能,需要在系统中配置 两台磁盘驱动器 ;而为实现磁盘双工功能,则需要在系统中配置两台磁盘控制器

    第九章

    • 单选题

      1. 从下述关于脱机命令接口的不同论述中,选择一条正确的论述。 该接口是作业控制语言
      2. 用户程序发出磁盘I/O请求后,系统的正确处理流程是 用户程序一系统调用处理程序一设备驱动程序一中断处理程序
    • 填空题

      1. 用户程序必须通过程序接口方能取得操作系统的服务,该接口主要是由一组系统调用组成的
      2. 在字符界面下,用户必须通过命令接口方能取得操作系统的服务,该接口按对作业控制方式的不同又可分为联机命令接口脱机命令接口
      3. 在联机命令接口中,实际上包含了终端处理程序命令解释程序一组联机命令三部分
      4. 在键盘终端处理程序中,有面向字符方式面向行方式两种方式实现字符接收的功能。
      5. 回显是指终端处理程序将用户从终端键盘输入的每个字符送屏幕显示。用软件方式来实现回显可以使它更方便、更灵活
      6. MS-DOS中的COMMAND.COM或UNIX中的Shell通常被叫做命令解释程序,它们放在操作系统的最高层,其主要功能是解释并执行终端命令
      7. 用户与系统管理员协商一个唯一的用户名,供该用户以后进入系统时使用,称此过程为注册:用户每次打开自己的终端后,根据系统的提示,依次键入自己的用户名和口令 的过程称为登录
      8. 图形用户接口使用了WIMP技术,将窗口图标菜单指点设备(如鼠标) 和面向对象技术集成在一起,形成了一个视窗操作环境
      9. 将系统调用参数传递给内核函数有多种方式,MS-DOS采用将参数送入寄存器的方式,Unix则常采用参数表方式,有的系统还可以通过陷入指令自带参数方式来传递少暈的参数
    • 判断题

    1. 终端处理程序将从终端打入的字符,直接送给用户程序。(×)
    2. 在现代大、中型机中,为了暂存用户从终端打入的字符,通常为每个终端设置一 个可容纳几行字符的专用缓冲区 (×)
    3. 为了提高回送的显示速度,往往用硬件来实现,只是在要求回送速度不高的场合, 才用软件来实现 (×)
    4. 在有的计算机中,从键盘送出的是键码,此时应采用某种转换机构,将键码转换 为ASCII码(√)
    5. 联机命令接口,是用户程序与0S之间的接口,因此它不是命令接口 (×)
    6. 联机命令接口包括键盘和屏幕两部分。 (×)
    7. 联机命令接口包括一组键盘命令、终端处理程序及命令解释程序三个部分(√)
    8. 联机命令接口是用户程序 (×)
    9. Shell是一种编程语言,它提供选择、循环等控制结构 (√)
    10. Shell是一个命令解释器,它对用户输入的命令进行解释执行 (√)
    11. Shell命令就是由Shell实现的命令,它们的代码包含在Shell内部 (×)
    12. 在Unix和Linux系统中,有多种不同的Shell供用户选择 (√)
    • 完型填空
    1. OS向用户提供的接口有多种:通过(联机命令接口),用户可从终端键入dir(或丨s)并按下回车键 来显示当前目录的内容;通过(图形用户接口),用户可双击窗口中的图标来运行相应的程序;通过(系统调用接口), 用户程序可使用open()来打开一个文件;通过(脱机用户接口),用户可将作业说明书和作业一起提交给 系统,从而让系统按作业说明书的要求来运行作业

    2. 使命令的执行结果不在屏幕上显示,而将之引向另一个文件,这种功能称为(输出重定向); 使命令所需的处理信息,不是从键盘接收,而是取自另一个文件,该功能称为(输入重定向);用于实 现把第一条命令的输出作为第二条命令的输入:又将第二条命令的输出作为第三条命令的 输入的功能的设施称为(管道线)。

    3. 在Intel X86处理机上,用户进程P通过系统调用creat创建一新文件时,是通过(int指令) 将控制转向creat的处理程序的;系统调用前,CPU运行在(用户态);在执行creat对应的处理 程序时,则运行在(核心态);系统调用返回后,(P进程或其他用户进程)将得到CPU。

    4. 在同一台计算机上,可以运行Windows、Linux、UNIX、DOS等不同的操作系统,它们的系统调用一般是通过执行(相同的)系统调用指令来完成的;对运行在不同的硬件平台上 的Linux操作系统,它们执行的系统调用指令一般是(不同的)

    展开全文
  • 操作系统复习

    千次阅读 多人点赞 2018-06-26 21:31:10
    操作系统复习复习手册主要针对选择填空判断和简答。计算相关题目会特别标注出涉及到的点。 概论 简述:计算机系统由硬件和软件两部分组成。 操作系统,简称OS(Operating System),是计算机系统中最...

    操作系统复习

    本复习手册主要针对选择填空判断和简答。计算相关题目会特别标注出涉及到的点。

    概论

    • 简述:计算机系统由硬件和软件两部分组成。
      操作系统,简称OS(Operating System),是计算机系统中最重要最基本的系统软件,是所有其它软件运行的基础。操作系统是配置在计算机硬件上的第一层软件,是对硬件的首次扩充。在计算机系统中占据了特别重要的地位。
    • 概念:一组控制和管理计算机硬件和软件资源、合理地对各类作业进行调度,以及方便用户的程序的集合。
    • 目标:有效性,方便性,可扩充性,开放性
    • OS管理哪些资源:处理机,存储器,设备管理,文件管理(在后续章节会一一提到)
    • 计算机系统的发展:
      • 人工操作:资源利用率低,CPU快和I/O慢的矛盾(为解决这个矛盾出现了脱机输入输出:I/O操作在外围机的控制下,脱离主机进行。优点是外围机和主机并行工作,减少了CPU的空闲时间;提高I/O速度)
      • 单道批处理系统
      • 多道批处理系统:引入多道程序设计技术的根本目的是提高CPU的利用率,充分发挥系统部件的并行性。优点:提高CPU利用率,提高内存和设备利用率,增加系统吞吐量。缺点:无交互能力,作业平均周转周期(这个概念之后说)长。
      • 分时系统:分时技术就是把处理机的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用。若某个作业在分配给它的时间片内不能完成其计算,则该作业暂停运行,把处理机让给另一个作业使用,等待下一轮时再继续其运行。特征:多路性,交互性,及时性
      • 实时系统(Real Time System):是指系统能及时响应外部事件的请求,在规定的时间范围内完成对该事件的处理,并控制实时任务协调一致地运行。
    • 操作系统的基本特征:并发,共享,虚拟,不确定
      • 并发:是指两个或多个事件在同一时间间隔内发生。为了使多个程序并发执行,引入了进程。为了进一步提高系统的并发性,引入了线程
      • 区分并发和并行:并发是指两个或多个事件在同一时间间隔内发生。并行是指两个或多个事件在同一时刻发生
      • 共享:互斥共享(一段时间,一个访问),同时访问(一段时间,多个访问)
      • 最基本特征:并发和共享,互为存在条件。
      • 互为存在条件的解释:一方面,资源的共享是以程序的并发执行为条件的,若系统不允许程序的并发执行,自然不存在资源共享问题;另一方面,若系统不能对资源共享实施有效的管理,也必将影响到程序的并发执行,甚至根本无法并发执行。
      • 虚拟:物理实体到逻辑对应物的转化。举例:多道程序设计,分时技术,虚拟内存技术
      • 不确定性,也就是异步性,好理解。
    • 操作系统的功能:管理软硬件资源,提供用户接口(可能会考简答
      • 处理机管理:进程控制,进程同步,进程通信,调度(作业调度和进程调度)
      • 存储器管理:内存分配,内存保护,地址映射,内存扩充(地址映射:将逻辑地址转换为物理地址。)
      • 设备管理功能:缓冲管理,设备分配,设备处理
      • 文件管理:文件存储空间管理,目录管理,文件读写管理及保护
      • 接口:用户接口和程序接口。系统调用,是用户程序取得操作系统服务的惟一途径
    • OS结构演变:无结构->模块化结构->分层结构->微内核结构
    • 模块法的优缺点:优点:提高OS设计的正确性、可理解性和可维护性增强OS的适应性加速OS的开发过程 问题:接口设计难于满足实际需求
    • 分层结构优缺点:优点:易保证系统的正确性易扩充和易维护缺点:系统效率降低
    • 微内核的优缺点:优点:提高了系统的可扩展性增强了系统的可靠性提高了系统的可移植性提供了对分布式系统的支持问题:系统运行效率有所降低
    • 课后习题: P31 1,3,4,13,14

    进程管理

    • 目的:使多道程序并发执行
    • 顺序执行:顺序性,封闭性,可再现性
    • 并发执行:间断性,失去封闭性,不可再现性
    • 进程
      • 定义:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
      • 特点:结构性,动态性,并发性,独立性,异步性
      • 进程的三种基本状态:就绪,执行和阻塞
      • 三态模型图:
      • 进程挂起的原因:终端用户的请求,父进程的请求,负荷调节的需要,操作系统的要求
      • 挂起状态:静止就绪(就绪挂起)和静止阻塞(阻塞挂起)
      • 增加了挂起的图:
      • 状态转化的相关内容要了解一下,具体看课件
      • 增加创建状态和终止状态
      • 五态图:
      • 七态图:
      • 进程控制块(PCB,Process Control Block)是操作系统维护的,用于描述和管理进程的数据结构。它是进程实体*的一部分,操作系统通过PCB感知进程的存在,PCB是进程存在的唯一标志。
      • 进程控制块中的信息:进程标识信息,处理机状态信息,进程调度和状态信息,进程控制信息。
      • PCB组织方式:链接方式,索引方式
      • 原语:原语是由若干条机器指令构成的,用以完成特定功能的一段程序,这段程序在执行期间不可分割
      • 进程同步
        • 两种形式的进程制约关系:相互协作,资源共享。
        • 临界资源(Critical Resources, CR):一段时间内仅允许一个进程使用的资源称为临界资源。
        • 互斥:当一个进程正在访问某共享资源时,就不允许其他进程对其访问。
        • 临界区(Critical Section, CS):进程中访问临界资源的那段代码称为临界区,又称临界段。
        • 解决互斥问题遵循的原则:空闲让进,忙则等待,有限等待,让权等待
        • 同步:多个相关进程在执行次序上的协调。
        • 互斥与同步:互斥是解决进程间竞争关系的手段。同步是解决进程间协作关系的手段。
      • 信号量机制(考大题的地方)
        • 整形信号量:仅能通过两个标准的原子操作wait(S)和signal(S)来访问Wait操作意味着申请一个资源,signal操作意味着释放一个资源。缺点: wait操作中只要是信号量S≤0,就会不断地测试。因此,该机制并未遵循“让权等待”的准则,而是使进程处于“忙等”的状态
        • 记录型信号量:是一个记录型数据结构,包含信号量值和一个等待队列,其中信号量值是一个具有非负初值的整型变量,等待队列是一个初始状态为空的队列。(记录型信号量的具体用法看课件,非常重要)
        • 利用信号量实现互斥:
        • 利用信号量实现前驱关系
        • 例题:
      • 管程机制(只考概念,不考大题)
        • 定义:管程定义了一个数据结构和在该数据结构上能为并发进程所执行的一组操作,这组操作能同步进程和改变管程中的数据。
        • 构成:名字,共享数据结构,一组操作,设置初始值的语句
      • 三个经典的进程同步问题
        • 生产者-消费者问题
        • 哲学家进餐问题
        • 上述算法有可能会出现死锁,需要规定至多允许四个哲学家同时进餐。仅当左、右两支筷子均可用时,才允许拿起筷子进餐。奇数号哲学家先拿左边筷子再拿右边筷子,偶数号哲学家相反。
        • 读者-写者问题
        • 下面是读者写者问题的限制版:最多只允许RN个读者同时读
        • wait和signal操作的优缺点:优点:简单而且表达能力强,缺点:wait,signal操作使用不当会出现死锁,遇到复杂的同步互斥问题时实现复杂
      • 进程通信
        • 信号量:低级,效率低
        • 共享存储器系统
        • 消息传递系统:直接通信方式(消息缓冲通信):发送进程将消息发送到接收进程,并将其挂在接收进程的消息队列上;接收进程从消息队列上取消息。间接通信方式(信箱通信):发送进程将消息发送到信箱,接收进程从信箱中取消息。
        • 管道通信:互斥同步存在
    • 线程:
      • 目的:在操作系统中再引入线程(Thread) ,则是为了减少程序并发执行所付出的时空开销,使操作系统具有更好的并发性
      • 概念:是进程内的一个执行单元(执行路径)是系统独立调度和分派的基本单位资源分配的实体还是进程
      • 属性:轻型实体,独立调度和分派的基本单位,可并发执行,共享进程资源
      • 内核支持线程和用户级线程
    • 课后习题 P81 2 3 20 22 27

    处理机调度与死锁

    • 高级调度:哪个作业调入内存
    • 进程调度:CPU分配给哪个进程
    • 中级调度:如何缓解内存紧张的问题
    • 并非所有的系统都需要作业调度和中级调度
    • 作业调度
      • 作业的状态:提交,后备,执行,运行
    • 进程调度
      • 功能:保存处理机的现场信息。按调度算法选择进程运行。由分配程序实施处理机的分配及回收
      • 进程调度的两种方式:抢占式和非抢占式
    • 中级调度:中级调度的运行频率介于进程调度和作业调度两者之间
      • 选择调度算法的准则:
        • 面向用户的准则:周转时间段,响应时间快,截止时间保证,稳定性
        • 周转时间:
        • 带权周转时间:
        • 面向系统的准则:系统吞吐量搞,CPU利用率好,各类资源平衡利用
    • 调度算法(考大题)

      1. 先来先服务 FCFS 特点:算法简单,易于实现,有利于长作业,不利于短作业有利于CPU繁忙型作业,不利于I/O繁忙型作业 ,可能导致I/O设备和CPU利用率低未考虑作业的紧迫程度
      2. 短作业优先调度算法:非抢占式(默认),抢占式(最短剩余时间调度算法)特点:算法调度性能较好缺点是对长作业不利;未考虑作业的紧迫程度;需要估计运行时间。
      3. 优先权调度算法(非抢占式和抢占式)
        • 优先权分为静态优先权和动态优先权
        • 调整优先权的原则:占用CPU时间越长,优先权越低。等待时间越长,优先权越高
      4. 最高响应比优先调度算法:在每次调度作业时,先计算后备作业队列中每个作业的响应比,然后挑选响应比最高者投入运行。
      5. 时间片轮转调度算法:系统将所有就绪进程按到达时间的先后次序排成一个队列(FIFO队列),每次调度时把CPU分配给队首进程,并令其执行一个时间片。当时间片用完时,停止该进程的执行,将它送至就绪队列末尾等待下一次执行,然后再把处理机分配给就绪队列中的新队首进程。如此不断循环,直至完成为止
      6. 多级反馈队列调度算法(最难的一个,有可能考,但概率不大)
        • 同一队列中进程执行的时间片大小相同,不同队列时间片大小不同,队列的优先级越高,其相应的时间片就越短。
        • 多级反馈队列调度算法能较好满足各类用户的需求
    • 死锁

      • 概念:死锁是指多个进程因竞争系统资源而造成的一种僵局,若无外力作用,这些进程都将永远不能向前推进。
      • 原因:竞争资源,进程推进顺序不当
    • 可剥夺资源和不可剥夺资源
      • 产生死锁的必要条件:互斥条件,请求和保持条件,不可剥夺条件,环路等待条件
      • 处理死锁的方法:预防死锁,避免死锁,检测死锁及解除
      • 有序资源分配法
      • 银行家算法(考大题)
        • 可用资源向量Available
        • 最大需求矩阵Max
        • 分配矩阵Allocation
        • 需求矩阵Need
      • 死锁的检测
        • 资源分配图
        • 死锁检测算法:资源剥夺法,撤销进程法
    • 习题 P118 1 8 30 31

    存储器管理

    • 存储器的层次结构:
    • 程序的装入
      • 绝对装入方式
      • 可重定位装入方式:静态地址变换 特点:不需硬件支持,但程序运行时不能在内存移动,程序需要连续存储空间,难以共享
      • 动态运行时装入方式 需要硬件支持。程序可以在内存中移动,可以实现虚拟存储
    • 程序的链接
      • 静态链接
      • 装入时动态链接
      • 运行时动态链接
    • 内存分配方式
      • 连续分配方式
        • 单一连续分配:系统区,用户区 单任务,单用户
        • 固定分区分配:缺点:预先规定了分区的大小,大程序无法装入,预先限制了活跃进程的最大数,主存利用率不高,内存的扩充和共享是困难的
        • 动态分区分配
        • 分区分配算法考大题
          1. 首次适应算法 地址递增的次序排列
          2. 循环首次适应算法
          3. 最佳适应算法
          4. 最坏适应算法 容量大小递减次序排列
        • 分区回收
        • 相对灵活,但会产生外碎片
        • 伙伴系统的内存分配(可有可能考大题)
        • 伙伴地址公式
        • 缺点:增加了系统开销,存储空间有浪费
        • 内部碎片是指分配给作业的存储空间中未被利用的部分
        • 外部碎片是指系统中无法利用的小存储块
        • 对换:把内存中暂时不能运行的进程或者暂时不用的程序和数据,调出到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需要的程序和数据,调入内存。
        • 空闲分区表和空闲分区链
        • 分页存储管理:把一个作业放到若干不相邻的分区中去
        • 页表
        • 地址变换(可能考大题):将逻辑地址映射为物理地址
        • 快表
        • 两级和多级页表
        • 分段存储管理方式(可能考大题)
        • 优点:方便编程,便于共享和保护,可以实现动态链接及段的动态增长
        • 分段和分页的主要区别:
        • 可重入代码
        • 段页式存储管理方式
        • 地址变换:
    • 虚拟存储器
      • 定义:虚拟存储器是指具有请求调入和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。
      • 理论基础:局部性原理
      • 局部性原理体现在:时间局部性和空间局部性(循环结构和顺序执行)
      • 物质基础:相当数量的外存,一定容量的内存,地址变换机构
      • 常用的虚拟存储技术:请求分页系统,请求分段系统,请求段页式系统
      • 特征:多次性,对换性和虚拟性
      • 扩充后的页表项:
      • 缺页中断和一般中断的区别:
      • 内存分配策略和分配算法:进程需要的最少物理块数,分配策略和分配算法
      • 固定分配局部置换
      • 可变分配全局置换
      • 可变分配局部置换
      • 页面置换算法(一定考大题)
        1. 最佳置换算法
        2. 先进先出算法
        3. 最近最久未使用置换算法
        4. 时钟置换算法
        5. 其它置换算法
      • 缺页
      • 有效访问时间
      • 影响缺页率的因素:分配给进程的物理块数,页面本身的大小,程序编制方式,页面置换算法
      • 抖动:如果运行进程的大部分时间都用于页面的换入/换出,而几乎不能完成任何有效的工作,则称此进程处于抖动状态。抖动又称为颠簸。(局部抖动和全局抖动)
      • 抖动产生的原因有:进程分配的物理块太少,置换算法选择不当,全局置换使抖动传播
      • 请求分段系统
      • 分段保护:越界检查,存取方式检查,环保护机构
    • 习题:P152 3 9 13
    • 习题:P177 5 13

    设备管理

    • I/O系统
      • 分类:多种分类方式(一个:独占设备,共享设备,虚拟设备)
      • 通道类型
        • 字节多路通道
        • 数组选择通道
        • 数组多路通道
      • I/O控制方式
        • 程序I/O方式
        • 中断驱动I/O方式
        • DMA I/O控制方式
        • I/O通道控制方式
    • 缓冲管理
      • 原因:(1) 缓和CPU与I/O设备速度不匹配的矛盾。 (2) 减少对CPU的中断频率,放宽对CPU中断响应时间的限制。 (3) 提高CPU和I/O设备之间的并行性。
      • SPOOLing技术:为了缓和CPU的高速性与I/O设备低速性间的矛盾而引入了脱机输入、脱机输出技术
    • 磁盘存储器管理
      • 磁盘时间相关:
      • 磁盘调度算法(可能考大题)
        1. 先来先服务(FCFS)
        2. 最短寻道时间优先(SSTF)
        3. 扫描算法(SCAN)
        4. 循环扫描算法(CSCAN)
        5. N-Step-SCAN
        6. FSCAN
      • 磁盘高速缓存
      • 提高磁盘I/O速度的其它方法
        1. 提前读
        2. 延迟写
        3. 优化物理块分布
        4. 虚拟盘
    • 课后习题 P220 5 15 25 29 30

    文件管理

    • 文件和文件系统
      • 数据项:基本数据项和组合数据项
      • 记录:记录是一组相关数据项的集合,用于描述一个对象在某方面的属性。
      • 文件:文件是指由创建者所定义的、 具有文件名的一组相关元素的集合,可分为两种:有结构文件:文件由若干个相关记录组成;无结构文件:可看成是一个字符流。文件在文件系统中是一个最大的数据单位,它描述了一个对象集。
      • 文件的逻辑结构和物理结构
      • 无结构的文件,流式文件
      • 连续分配
      • 优点:顺序访问容易,顺序访问速度快
      • 缺点:要求有连续的存储空间,必须事先知道文件的长度
      • 链接分配
      • 隐式链接
      • 显式链接
      • 索引分配
    • 目录管理
      • 要求:实现按名存取,提高对目录的检索速度,文件共享,允许文件重名
      • 利用符号链实现文件共享:在利用符号链方式实现文件共享时,只有文件主才拥有指向其索引结点的指针;而共享该文件的其他用户,则只有该文件的路径名,并不拥有指向其索引结点的指针。
    展开全文
  • 超硬核!操作系统学霸笔记,考试复习面试全靠它

    万次阅读 多人点赞 2021-03-22 18:43:49
    (这里同操作系统的并发性) 独立性:进程实体是一个能独立运行,独立获得资源和独立接收调度的基本单位 异步性:同操作系统的异步性 进程的三种基本状态: 就绪状态:进程已经分配到除了CPU之外的所有资源,只要...

    之后会发布基于基础知识的大部分算法的模拟代码合集,敬请关注。

    进程基础

    进程的基本概念

    • 程序顺序执行的特征:

      1)顺序性:处理机严格按照程序所规定的顺序执行,每一步操作必须在下一步操作开始前执行

      2)封闭性:程序在封闭的环境下运行,程序独占资源,资源的状态由程序决定,程序一旦开始执行,外界环境不会影响程序的执行结果。

      3)可再现性:只要程序的初始条件和环境相同,程序的执行结果就相同。

    • 程序的并发执行的特征:(顺序执行会浪费资源)

      1)间断性:程序共享系统的资源,以及为完成同一个任务共同合作,并发执行的程序之间相互制约,(不是运行完一个在运行另一个)

      2)失去封闭性:各程序共享系统资源,资源的状态由各程序所决定。

      3)不可再现性:由于失去了封闭性,(即初始的环境状态和条件相同,程序的执行结果却可能不同),该特征超级垃圾,必须想办法避免。

    • 进程的概念:

      具有独立功能的程序在某一个数据集合上的执行过程,它是系统进行资源分配和调度的一个独立单位。

    • 进程的特征:

      • 结构特征:

        PCB(进程控制块),与进程共存亡,用于记录进程的基本情况和活动过程,一般常驻内存
        程序段(一般为需要的时候动态调入内存),描述要完成的功能
        数据段(一般为需要的时候动态调入内存),操作的对象即工作区
      • 动态性:进程最基本的特征,进程不是静态的,而是动态的,它由创建而产生,由调度(这里主要指进程调度,而不是作业调度)而执行,由撤销而消亡

      • 并发性:指多个进程实体存于内存中,且能在同一时间段内执行,(这里同操作系统的并发性)

      • 独立性:进程实体是一个能独立运行,独立获得资源和独立接收调度的基本单位

      • 异步性:同操作系统的异步性

    • 进程的三种基本状态:

      • 就绪状态:进程已经分配到除了CPU之外的所有资源,只要获得CPU便可以立刻执行,处于就绪状态的进程维持一个就绪队列。
      • 执行状态:已经获得CPU,正在执行的进程。(单处理机系统中,同一时刻只能有一个进程处于执行状态,多处理机系统中,可以同时有多个进程处于执行态)
      • 阻塞状态/等待状态:在执行的过程中由于发生某些事件(I/O请求,申请缓存等),暂时无法执行的进程,是由于进程本身引起的阻塞。处于阻塞状态的进程可以维持一个阻塞队列。
      • 进程是自己阻塞自己的,但是阻塞的进程需要其他进程将其唤醒
    • 三种基本状态的转换:

     

    ​ 就绪—>执行:进程调度,获得CPU资源

    ​ 执行—>就绪:在分时操作系统中时间片花完

    ​ 执行—>阻塞:I/O请求,申请缓存等,自己被迫进入阻塞状态

    ​ 阻塞—>就绪:I/O完成,造成阻塞的原因得到解决(又变成只差CPU的状态)

    • 进程的创建状态和终止状态

      创建状态:进程成为就绪状态之前的状态

      终止状态:当一个进程到达了自然结束点,或者遇到无法客服的困难,或者被操作系统所终结等的时候,就进入了终止状态。

    • 挂起操作及引入的原因:

      1)进程被挂起之后处于静止状态。

      2)引入的原因:

      • 终端用户的需要:当终端用户想要暂停自己程序的运行的时候
      • 父进程请求:当父进程想要挂起某个子进程的时候
      • 负荷调节的需要:当实时系统中的工作负荷较重,系统可以将某些不重要的进程挂起,保证程序的正常运行。
      • 操作系统的需要:操作系统有事需要将某些进程挂起,已检查运行过程中资源的使用情况

      3)引入挂起操作后,进程的状态转换:

       

      (1)阻塞态可以通过释放变为就绪态。活动阻塞释放变为活动就绪,静止阻塞释放变为静止就绪。

      (2)活动态和静止态可以进行相互转换,活动到静止称为挂起,静止到活动可以称为激活。活动态和静止态最本质的区别为活动态在内存中,静止态暂时调出内存,进入外存

      (3由执行态可以直接变为静止就绪态,即时间片用完,直接调离内存

      (4)静止态(外存)必须通过激活变为非静止态(调入内存)才能够参与进程的三台转换。

      4)进程挂起之后不是原封不动的将进程移出内存,而是会先将一些必要的信息写入外存。再释放PCB

    • 进程管理中的数据结构

      • 操作系统中用于管理控制的数据结构:内存表,设备表,文件表,进程表(程序控制快PCB)

      • 进程控制块PCB的作用:

        1)作为独立运行基本单位的标志

        2)能实现间断性的运行方式

        3)提供进程管理所需要的全部信息

        4)提供进程调度所需要的全部信息

        5)实现与其他进程的同步和通信

      • 进程控制块中的信息:

        进程标识符:唯一表示一个进程,有两种:

        1)外部标识符:方便用户对进程的访问,通常有数字和字母组成

        2)内部标识符:方便系统对进程的访问,每一个进程有一个唯一的数字标识符。

        处理机状态:(主要指的是处理机中寄存器的状态)

        1)通用寄存器:又称为用户寄存器,用户的程序可以访问,用于暂存信息,一般为8~32个

        2)指令计数器:存放了将要访问的下一条指令的地址。

        3)程序状态字(PSW​):含有状态信息,条件码,执行方式(指在系统还是用户状态下执行),中断屏蔽标志(允不允许在执行的过程中被打断)

        4)用户栈指针:每个用户进程都有系统栈,用于存放过程和系统调用参数及调用地址。

        进程调度信息

        1)进程状态:指明了进程的当前状态

        2)进程优先级:即一个整数,用于描述进程使用CPU的优先级,数字越大,优先级越高

        3)其他信息:与采用的进程调度算法有关

        4)事件:指进程由执行状态变为阻塞状态所等待发生的事件。

        进程控制信息

        1)程序和数据的地址:由于程序段和数据段并不是常驻内存的,而是使用的时候才调入,因此需要保存其地址

        2)进程同步和通信机制:

        3)资源清单:一张清单列出了该进程在运行期间所需的全部资源(除了CPU资源),另一张列出了分配到该进程的资源的清单。

        4)链接指针:给出了本进程(PCB)所在队列中的下一个进程的PCB的首地址。

      • 进程控制块的组织方式:

        线性方式:不重要

        链接方式:类似静态链表,把具有同一状态的PCB用其中的链接字链接成一个队列

       

       

      注:进程资源的分配并不是在该进程执行之前将该进程所需的资源全部分配给他,而是在其执行的过程中进行动态的分配。

    进程与程序的区别与关系

    • 进程与程序的区别:
      • 进程是一个动态的概念(有 “ 生命 ” ),程序是静态的概念。
      • 进程可以具有并行性(在多处理器的系统中),但是程序没有
      • 进程是竞争系统资源的基本单位
    • 进程与程序的关系:
      • 一个程序对应多个进程,一个进程又可以为多个程序服务。

    进程控制

    1.基本知识

    • 进程控制是进程管理中最基本的功能,主要包括进程的创建,进程的终止和运行中的进程的状态转换等功能。进程控制一般是由OS的内核中的原语来实现的。

    2.进程的创建

    • 进程的层次结构

    • 进程图

    • 引起进程创建的事件

      1)用户登录:在分时系统中,用户成功登录,系统将为该用户分配新的进程

      2)作业调度:在多道批处理系统中,作业调度程序将某些作业调度内存,并且为他们创建进程

      3)提供服务:运行中的用户程序提出某种请求

      4)应用请求:由用户进程自己创建,帮助自己完成特定的任务

    • ==进程的创建过程:==OS调用进程创建原语Create创建一个新进程

      1)申请空白PCB:新进程获得一个唯一的数字标识符(对于操作系统)

      2)为新进程分配器运行所需的资源:包括物理资源和逻辑资源

      3)初始化进程控制块PCB:

      (1)初始化标识符信息:系统分配的标识符信息装入PCB

      (2)初始化处理机状态信息:主要为一些寄存器

      (3)初始化处理机控制信息:一般初始化为就绪状态

      (4)如果进程就绪队列允许,将进程插入就绪队列

    3.进程的终止

    • 引起进程终止的事件:

      1)正常结束

      2)异常结束:1)越界错误(访问自己范围外的),2)保护错误(访问自己无权利访问的)3)非法指令:试图运行不存在的指令,4)特权指令;5)运行超时;6)等待超时;7)算术运算错;8)I/O故障

      3)外界的干预:1)操作员或者操作系统干预;2)父进程的请求(父进程的权利大于子进程)3)父进程的终止:当父进程终止时,其所有子进程也应当终止。

    • ==进程终止的过程:==OS调用进程终止原语

      1)根据要终止的进程的标识符,搜索出该进程的PCB,从中获得该进程所处的状态

      2)如果该进程正处于执行状态,立刻终止该进程,并且置调度标志为真,表示在该进程结束后应该进行重新调度(即不要让CPU空闲)

      3)若该进程有子孙进程,让其所有子孙进程都终止。

      4)被终止进程所拥有的所有资源归还给父进程或者操作系统

      5)将终止进程的PCB从所在队列中移除,等待其他程序来收集信息。

    4.进程的阻塞与唤醒

    • 引起进程阻塞和唤醒的事件:阻塞和唤醒是相对应的

      1)向系统请求共享资源失败

      2)等待某种操作的完成

      3)新数据尚未到达

      4)等待新任务的到达

    • 进程阻塞的过程:进程通过调用阻塞原语block==将自己==阻塞

      1)进入block后立即停止执行

      2)保存现场

      3)将进程控制块中的现行状态改为阻塞,并将PCB插入阻塞队列

      4)转调度程序,进行重新调度

    • 进程唤醒的过程:当阻塞的进程所期待的事件发生时,有关进程(不是本身)调用唤醒原语wakeup,将等待该事件的进程唤醒。唤醒之后进入就绪队列。

      1)将被阻塞的进程从等待该事件的阻塞队列中移除

      2)将PCB的现行状态由阻塞改为就绪

      3)然后再将该PCB插入就绪队列中

      4)转进程调度或者返回

    • block原语和wakeup原语是一对作用刚好相反的原语,必须成对使用。

    5.进程的挂起与激活

    • 进程的挂起过程:当出现了引起进程挂起的事件之后,OS利用挂起原语将指定的进程挂起(即调出内存)

      首先检查进程的状态(不同的状态采取不同的处理方式),若该进程正处于活动就绪状态,将其改为静止就绪态;若该进程处于活动阻塞状态,将该进程改为静止阻塞状态;若该进程处于执行状态,将其改为静止就绪状态,调度程序重新进行调度。

    • 进程的激活过程:

      1)首先将进程从外存调入内存,

      2)检查进程所处的状态,如果进程处于静止就绪,将其改为活动就绪,如果处于静止阻塞,将其改为活动阻塞

      3)检查进程的优先级,如果优先级高,可以进行抢占当前运行进程的资源

    4.进程同步

    1.进程同步的基本概念

    • 进程同步的目的:1)按照一定的规则共享系统资源;2)对多个相关进程在执行次序上进行协调,是程序具有可再现性。

    • 两种形式的制约关系:

      1)间接相互制约关系:多个进程在并发执行时,由于共享系统的临界资源而相互制约,如磁带机,打印机,表格等。(互斥)

      2)直接相互制约关系:多个进程为完成同一任务而相互合作(同步)

    • **临界资源:**一次仅允许一个进程使用的共享资源。例如打印机,磁带机,表格等。

    • 互斥和同步的概念:

      1)互斥:并发的多个进程由于竞争同一资源而产生的相互排斥的关系

      2)同步:进程间共同完成一项任务时直接发生相互作用的关系

    • 临界区:每个进程中访问临界资源的那段代码

    /*一个访问临界资源的循环进程*/
    while(true)
    {
        进入区://对欲访问的临界资源进行检查,查看其是否正被访问,如果此刻临界资源未被访问,进程便可以进入临界区对临界资源进行访问,并设置它正被访问的标志,如果此刻临界资源正被访问,则不能进入临界区。即后边的wait()操作
        临界区://执行临界资源的那段代码
        退出区://将临界区正被访问的标志恢复为未被访问的标志,signal()操作
        剩余区://除上述三个区之外的代码叫做剩余区
    }
    • 同步机制应遵循的原则:

      1)空闲让进

      2)忙则等待

      3)有限等待:不能一直等

      4)让权等待:进程不能进入临界区,就应当释放==处理机==,让权指让出处理机

    2.硬件同步机制

    3.信号量机制:Dijkstra提出

    • 信号量:

      • 是一种数据结构
      • 值与相应资源的使用情况有关
      • 仅与P,V操作有关,P,V代表两种原子操作,P为等候原语wait(S),V为释放原语signal(S)。
      • wait操作即在申请资源,signal操作是释放资源
      • wait操作其实就是进入临界区之前的进入区,signal操作是从临界区出来之后的退出区
      • 原子操作的特点,操作一开始执行,半中间不可以打断,原语即为原子操作。
    • 整型信号量

      • 概念:Dijkstra把整型信号量定义为一个用于表示资源数目的整型量S。
      /*等候原语*/
      wait(S){
          while(S <= 0);  //当S<=0的时候便一直处于等待状态,直到获得相应的资源,不符合让权等待的原则      
          S--;     //获得资源后,资源的数目减一,S表示该类资源可用的数目      
      }
      
      /*释放原语*/
      signal(S){
          S++;      //释放资源后,资源的数目加一     
      }
      • 优缺点:

        优点:实现简单

        缺点:违背了同步机制中的让权等待原则,浪费资源(只要S<=0,就会等待)

    • **记录型信号量:**当前用的最多的

      • 特点:采用了记录型的数据结构
      /*记录型数据结构*/
      typedef struct{
          int value;      //>=0的时候,表示系统中可用资源的数量,<0的时候其绝对值表示因为该资源而阻塞的进程的数目
          struct process_control_block *list;    //维持阻塞队列的指针
      }semaphore;
      
      /*等待原语*/
      wait(semaphopre *S){
          S->value--;    //一个进程过来,首先将S->value--;
          if(S->value < 0){     //<0表示资源已经用光,将该进程加入阻塞队列
              block(S->list);
          }
      }
      
      /*释放原语*/
      signal(semaphore *S){
          S->value++;      //释放资源,S->value++;
          if(S->value <= 0){      //S->value++之后,还<=0,直接唤醒一个阻塞的进程,唤醒的进程拥有了该资源的使用权(不需要再次执行P操作),然后进入就绪队列。如果>0,直接将资源释放即可
              wakeup(S->list);
          }
      }
      • wait操作:每次都相当于进程请求一个单位的该类资源

        signal操作:每次都相当于释放一个单位资源

      • 当S->value的初值为1的时候,表示只允许一个进程访问临界资源,信号量转化为互斥型信号量

      • 优点:通过维持阻塞队列的指针,使得满足了让权等待的原则,弥补了整型信号量的缺点

      • **缺点:**只适用于对单一资源的管理,如果一个进程需要请求多类资源的时候,很容易产生死锁。

    • AND型信号量:解决记录型信号量会发生的死锁的问题

      • 当一个进程需要两个或者更多的共享资源来完成一个目标的时候,多个进程之间可能会发生阻塞(刚开始前半部分资源占有了,但是后半部分资源无法获得,自己再阻塞自己,即发生了死锁)
      • AND的解决思想:将一个进程运行过程中所需要的全部资源一次性都分给他,待进程使用完之后,在一起进行释放。(即一起申请,一起释放)
      /*等候原语:全分配*/
      Swait(S1, S2, …, Sn)
       {
          While(TRUE)
          {
              //多类资源同时满足的时候才进行分配,先判断再分配。
          	if (S1 >=1 and … and Sn>=1 ){
                	for( i=1 ;i<=n; i++) Si - -;
      			break;
      		}
              else{
                  Place the process in the waiting queue associated with the first Si found with Si <1,and set the progress count of this process to the beginning of Swait operation	(将即将阻塞的进程挂到第一个不能满足他的资源的阻塞队列,然后设置该进程的起始地址为Swait操作的开始)
              }
          }
      }
      
      /*释放原语:全释放*/
      Ssignal(S1, S2, …, Sn){
      	while(TRUE){    
      		for (i=1; i<=n; i++) {
                  Si++ ;
                  Remove all the process waiting in the queue associated with Si into the ready queue(将因为该资源得不到满足而阻塞的所有进程都从阻塞队列释放进入就绪队列,重新进行排队)
        		 }
      	}
      }

      注意:

      1)在分配资源的时候首先判断是否所有资源均全部满足相应的条件,满足才进行分配。

      2)释放的时候是将因为该资源得不到满足而阻塞的所有进程都从阻塞队列释放进入就绪队列,重新进行排队,因为OS需要根据调度算法重新选取新的进程占据CPU

    • 信号量集

    Swait(S1, t1, d1; …; Sn, tn, dn)
        if (S1>= t1 and … and Sn>= tn) then
            for i:=1 to n do
               Si:= Si - di ;
            endfor
        else
           Place the executing process in the waiting queue of the first Si with Si < ti and set its program counter to the beginning of the Swait Operation
        endif

    注意:

    1)继承了AND型信号量的思想,先判断是否所有所需资源均满足条件。满足才进行分配。

    2)引入了下限值的概念。Si表示可用的资源的数量;ti表示想要分配资源成功至少需要的该资源的数目(ti(下限值)包括两部分,一部分是系统执行该进程所需,另一部分是该进程所请求的,因此一般大于di);di表示该进程所请求的该类资源的数目。

    4.信号量的应用

    1、利用信号量实现进程互斥

    semaphore  mutex =1;
        begin
        parbegin
            process 1: begin
                            repeat
                                wait(mutex);
                                critical section
                                signal(mutex);
                                remainder section
                            until false;
                        end
            process 2: begin
                            repeat
                                wait(mutex);
                                critical section
                                signal(mutex);
                                remainder section
                            until false; 
                        end
        parend        
        end

    注意:

    1)利用信号量实现进程互斥地访问某种资源。首先应将mutex设为1

    2)wait操作和signal操作必须成对地出现,如果缺少wait操作可能会造成系统的混乱;如果缺少signal操作,那么该资源永远不会得到释放,因该资源而被阻塞的进程也将永远不会被唤醒。

    2、利用信号量实现前驱关系图(进程同步)

    如下图:

    semaphore  a, b, c, d, e, f, g = 0, 0, 0, 0, 0, 0, 0;
        begin
            parbegin
                begin  S1; signal(a); signal(b); end;
                begin  wait(a); S2; signal(c); signal(d); end;
                begin  wait(b); S3; signal(e); end;
                begin  wait(c); S4; signal(f); end;
                begin  wait(d); S5; signal(g); end;
                begin  wait(e); wait(f); wait(g); S6; end;
            parend
        end

    注意:

    1)信号量的初值必须被设置为0,必须等某个进程之前的进程完之后,释放资源,后边的进程才能够执行。

     

    经典的进程同步问题

    普通版:一类进程作为生产者,生产产品,生产的产品放入一个缓冲区,消费者从缓冲区中取出产品,需要保证生产者不可以向满的缓冲区中添加产品,消费者不可以从空的缓冲区中取出产品。同一时刻只可以有一个生产者生产产品或者消费者消费产品。

    升级版可以实现同一个时刻既有生产者生产产品,又有消费者消费产品。但是绝对不可以同一时刻多个生产者生产产品或者多个消费者消费产品。同时使用count记录缓冲区中产品的数量。

    • 生产者消费者问题

      1)生产者进程和消费者进程都以异步方式运行, 但它们之间必须保持同步。

      2)可利用互斥信号量$mutex$实现诸进程对缓冲池的互斥使用(不可以同时既向缓冲区中放入数据,又从缓冲区中拿出数据);利用资源信号量empty和full分别表示缓冲池中空缓冲池和满缓冲池的数量。 假定这些生产者和消费者相互等效

      /*
      in表示放入数据的地址,out表示取出数据的地址
      buffer[n]:表示大小为n的缓冲池(由多个缓冲区组成) 
      mutex,mutex1,mutex2:互斥型信号量,初值为1
      empty,full:资源型信号量,empty表示空缓冲区的数量,full表示满缓冲区的数量
      item:表示一个数据项
      */
      Int in=0,out=0;  
      Item buffer[n];   
      Semaphore mutex1=1,mutex2 = 1,empty=n,full=0;  
      
      //生产者
      Void producer(){ 
       	do{
      		生产一个产品放入nextp;
              
              /*
               * 进入区
               * 先申请资源信号量,在申请互斥信号量
               * mutex1控制同一个时间段内只能有一个生产者生产产品
               */
      		wait(empty);
      		wait(mutex1);
              
              /*临界区*/
      		buffer[in]=nextp;
      		in=(in+1) % n;
              
              /*退出区*/
      		signal(mutex1);
      		signal(full);
              
              /*对计数器count的互斥访问*/
              wait(mutex);
              count++;
              signal(mutex);
      	}while(TRUE)
      }
      
      //消费者
      Void consumer(){ 
          do{
             /*进入区*/
      	   wait(full);
      	   wait(mutex2);     //消费者对缓冲区的互斥访问
             
             /*临界区*/
      	   nextc =buffer[out];          //只有一份
      	   out =(out+1) mod n;
              
             /*退出区*/
      	   signal(mutex2);
      	   signal(empty);
              
              /*对计数器count的互斥访问*/
              wait(mutex);
              count--;
              signal(mutex);
      	   消费 nextc中的产品;                        
      	}while(TRUE)
      }
      
      
      Void main(){
      	cobegin
      	    proceducer();
       	    consumer();
      	coend
      }

      注意:

      1)每个程序的互斥操作wait()和signal()必须成对的出现。

      2)输入进程不可以向满的缓冲池中输入数据,计算进程不可以从空的缓冲池中取数据

      3)在每个程序中的多个wait操作顺序不能颠倒,必须先执行对资源信号量的wait操作,在进行对互斥信号量的wait操作,否则可能引起进程死锁。

      4)可以使用三个互斥信号量mutex、mutex1、mutex2实现同一时刻既有生产者生产,又有消费者消费。

    • 读者—写着问题

      该问题涉计两类进程,第一类进程是读进程Reader,另一类进程是写进程Writer,多个读进程可以同时读一个文件(共享资源),多个写的进程不可以同时写一个文件(对写互斥),并且读的时候不能写,写的时候不能读(对读互斥)。

      1)问题核心:保证一个Writer进程必须与其他进程互斥地访问共享对象的同步问题。

      2)只要求读文件的进程称为“Reader进程”,其它进程则称为“Writer进程”。

      3)允许多个进程同时读一个共享对象,但不允许一个Writer进程和其他Reader进程或Writer进程同时访问共享对象(共享对象并不是临界资源,因为他允许多个进程对其访问)

      /*
      记录型信号量解决读者—写者问题
      
      rmutex:读进程对Readcount的互斥
      wmutex:writer对reader和writer的互斥
      readcount:表示正在读的进程数目,只有当readcount=0的时候才需要申请wmutex权限,大于0的时候不需要
      */
      
      semaphore rmutex=1, wmutex =1;
      int readcount =0;
      Void Reader(){
      	do{
      		wait(rmutex);          //防止多个reader进程对readcount的访问
      		if (Readcount==0){    //如果readcount不等于0,表示有进程正在进行读操作,绝对没有写操作
      			wait(wmutex);
      		}
      		Readcount ++;
      		signal(rmutex);
      		…
      		读;
      		…
      		wait(rmutex);
      		Readcount - -;
      		if (Readcount==0){      //只有等于0的时候才需要释放资源,使得写进程可以工作
      			signal(wmutex);
      		}
      		signal(rmutex);
      	}while(TRUE);
      }
      Void writer(){
          do{
              wait(wmutex);      //申请写权限的资源
              写;
              signal(wmutex);
          }while(TRUE);
      }
      
      Void main(){
          cobegin
             reader();  writer();
      	Coend
      }

      利用信号量集的机制实现读者-写者问题

      int RN;
      semaphore L = RN;             //表示读者的数量
      mx = 1;						//对写者进行互斥的访问
      
      void Reader(){
          while(true){
              Swait(L, 1, 1);         //申请一个读者进程
              Swait(mx, 1, 0);       //判断当前是否有写者进程在写,该出相当于一个开关
              
              operation...
                  
              Ssignal(L, 1);
          }
      }
      
      void Writer(){
          while(true){
              //此处首先申请一个mx,如果当前系统中无写者进程,则该语句必定执行成功,Reader进程中的
              //Swait(mx, 1, 0)便处于关闭状态,只需要等系统中的读进程执行完毕,(L, RN,0)执行成
              //功,打开开关即可。
              Swait(mx, 1, 1; L, RN, 0);
              
              operation...;
              
              //释放一个写进程
              Ssignal(mx, 1);
          }
      }
      
      void main(){
          cobegin
              Reader();
          	Writer();
          coend;
      }

       

    • 哲学家的进餐问题

      五个哲学家共用一张圆桌,分别坐在周围的五张椅子上,在桌子上有五只碗和五只筷子,他们的生活方式是交替地进行思考和进餐。平时,一个哲学家进行思考,饥饿时便试图取用其左右最靠近他的筷子,只有在他拿到两只筷子时才能进餐。进餐毕,放下筷子继续思考。

      /*
      记录型信号量解决问题
      */
      //每一只筷子均为临界资源
      semaphore chopstick[5]={1,1,1,1,1};
      //所有的信号量均被初始化为1,第i位哲学家的活动可描述为:
      do{
      	wait(chopstick[i]);          //拿左手的筷子
      	wait(chopstick[(i+1) mod 5] );      //拿右手的筷子
      	…
      	eat;
      	…
      	signal(chopstick[i]);    //放左手
      	signal(chopstick[(i +1)mod 5]);       //放右手
      	…
      	think;
      }while(TRUE);

      存在的问题:假如五位哲学家同时饥饿而各自拿起左边的筷子时,就会使五个信号量chopstick均为0,当他们再试图去拿右边的筷子时,都将因无筷子可拿而无限等待。进入死锁状态。

      解决办法:

      **1)**至多只允许有四位哲学家同时去拿左边的筷子,最终能保证至少有一位哲学家能够进餐,并在用毕后释放出他用过的两只筷子,从而使更多的哲学家能够进餐。

      semaphore chopstick[5]={1,1,1,1,1};
      semaphore count=4;
      void philosopher(int i)
      {
          while(true)
          {
              think();
              wait(count); //请求进入房间进餐
              wait(chopstick[i]); //请求左手边的筷子
              wait(chopstick[(i+1)%5]); //请求右手边的筷子
              eat();
              signal(chopstick[(i+1)%5]); //释放右手边的筷子
              signal(chopstick[i]); //释放左手边的筷子
              signal(count); //退出房间释放信号量
          }
      }

      **2)**仅当哲学家的左右两只筷子均可用时,才允许他拿起筷子进餐。

      /*
      使用AND型信号量解决,本质当同时拥有两只筷子的时候才允许拿起筷子进餐
      */
      semaphore chopstick[5]={1,1,1,1,1};
      Philosopher i
      do{
      	think;
      	Swait(chopstick[(i+1)mod 5],chopstick[i ]);     //同时分配两只筷子
      	eat;
      	Ssignal(chopstick[(i+1)mod 5], chopstick[i ] );     //同时放下两只筷子  
      }while(TRUE)

      **3)**规定奇数号哲学家先拿他左边的筷子,然后再去拿右边的筷子;偶数号哲学家则相反。

      semaphore chopstick[5]={1,1,1,1,1};
      //第i 位哲学家的活动可描述为:
      do{
          //奇数位哲学家先拿左手的筷子
      	if  i mod 2=1 {
      		wait(chopstick[ i ]);
      		wait(chopstick[ ( i +1) mod 5] )
      	}
          //偶数位哲学家先拿右手边的筷子
      	else
      	{
      		wait(chopstick[ ( i +1) mod 5] );
      		wait(chopstick[ i ])
      	}
      	eat;
      	signal(chopstick[ i ]);
      	signal(chopstick[(i +1)mod 5]);
      	…
      	think;
      }while(TRUE)

    处理机调度

    1. 调度层次
      1. 高级调度(作业调度)
      2. 中级调度(进程调度)
      3. 低级调度
    2. 作业调度
      1. FCSF先来先服务,作业等待时间得长短。比较有利于长作业(进程),而不利于短作业(进程)。
      2. SJF短作业优先,作业的运行时间。
        1. 优点:能有效的降低作业的平均等待事件,提高系统吞吐量。
        2. 缺点:对长作业不利;该算法完全未考虑作业的紧迫程度,因而不能保证紧迫性作业(进程)会被及时处理;由于作业(进程)的长短含主观因素,不一定能真正做到短作业优先。

      1. 高响应比优先  

    优先权=等待时间+要求服务时间/要求服务时间

      1. RR轮转调度算法,时间片的确定要适中
      2. 多级反馈队列
      3. EDF最早截至时间优先

    下图中有两个周期性任务,任务A的周期时间为20ms,每个周期的处理时间为10ms;任务B的周期时间为50ms,每个周期的处理时间为25ms

      1. LLF最低松弛度优先

    松弛度=必须完成时间-其本身的运行时间-当前时间

    进程切换条件:有任务完成;有任务松弛度降到0。

    1. 死锁
      1. 定义:是指多个进程在运行过程中因为争夺资源而造成的一种僵局,当进程处于这种状态时,若无外力作用,他们都将无法再向前推进
      2. 原因:竞争资源(不可抢占资源,可消耗资源),进程间推进顺序非法。
      3. 产生死锁得必要条件:互斥条件、请求和保持条件、不可抢占(不可剥夺)条件、环路等待条件
      4. 处理死锁的基本方法:
        1. 预防死锁:破坏产生死锁得必要条件,其中破坏互斥条件是最不实际的
          1. 破坏“请求和保持”条件:系统规定所有进程在开始运行之前,都必须一次性的申请其在整个运行过程所需的全部资源
          2. 破坏“不剥夺”条件
          3. 破坏“环路等待”条件:所有进程对资源的请求必须严格按照资源序号递增的次序提出
        2. 预防死锁:银行家算法、安全性算法
        3. 检测死锁:资源分配图,死锁定理
        4. 解除死锁:剥夺资源(从其他进程剥夺足够数量的资源给死锁进程以解除死锁状态。),撤销进程(最简单的是让全部进程都死掉;温和一点的是按照某种顺序逐个撤销进程,直至有足够的资源可用,使死锁状态消除为止。)
    2. 银行家算法
      1. 安全状态

      1. 银行家算法

    T0时刻的安全性:用安全性算法对T0时刻的资源分配情况进行分析,存在着一个安全序列{P1,P3,P4,P2,P0},故系统是安全的

    P1发出资源请求向量Request1(1,0,2),系统按银行家算法检查:

    (1)Request1(1,0,2)<=Need1(1,2,2)

    (2)Request1(1,0,2)<=Available1(3,3,2)

    (3)系统先假定可为P1分配资源,并修改向量Available,Allocation1,Need1

    (4)再利用安全性算法检查此时系统是否安全。如下表:

    由安全性检查得知,能找到一个安全序列{P1,P3,P4,P0,P2},因此,系统是安全的,可以立即将P1所申请的资源分配给它。

    死锁定理:S状态为死锁状态的充分条件是当且仅当S状态的资源分配图是不可完全简化的。<死锁定理>

     

    存储器

    重定位

    程序的装入

    1. 绝对装入方式
    2. 可重定位的装入方式(静态)
    3. 动态运行时装入方式(动态)重定位寄存器

    内存的分配方式

    1. 连续的分配方式
    2. 离散的分配方式

    连续的分配方式

    1. 单一连续分配:一道程序在内存中,内存浪费严重
    2. 固定分区分配:程序变多缺点:会产生内碎片
    3. 动态分区分配(重点)不能消除外碎片  思想:按需分配
    4. 可重定位的分区分配
      1. 在动态分区分配方式上增加一个紧凑(拼接碎片)功能
      2. 以动态运行时装入方式为前提

    动态分区分配算法​

    首次适应算法FF

        FF算法要求空闲分区表以地址递增的次序排列。在分配内存时,从表首开始顺序查找,直至找到一个大小能满足要求的空闲分区为止;然后按照作业的大小,从该分区中划出一块内存空间分配给请求者,余下的空闲分区仍留在空闲分区表中。若从头到尾不存在满足要求的分区,则分配失败。

    优点:优先利用内存低址部分的内存空间

    缺点:低址部分不断划分,产生小碎片(内存碎块、内      存碎片、零头);每次查找从低址部分开始,增      加了查找的开销

    循环首次适应算法NF

    在分配内存空间时,从上次找到的空闲分区的下一个空闲分区开始查找,直到找到一个能满足要求的空闲分区,从中划出一块与请求大小相等的内存空间分配给作业。

    优点:使内存空闲分区分布均匀,减少查找的开销

    缺点:缺乏大的空闲分区

    最佳适应算法BF

    所谓“最佳”是指每次为作业分配内存时,总是把能满足要求、又是最小的空闲分区分配给作业,避免“大材小用”。要求将所有的空闲分区按其容量以从小到大的顺序形成一空闲分区链。

        缺点:产生许多难以利用的小空闲区

    离散的分配方式

    分页存储管理方式

    (可能在最后一页产生内碎片)进程分页,内存分块(页和块等大小) 

    页表

     

     

     

    页式地址映射

    (逻辑地址转换城物理地址)

     

     

     

     

    地址转换机构(页表在内存,页表寄存器快表。页表很庞大时采取两级或多级页表)

    有快表有页表,先查快表;没有快表查页表

     

     

     

    分段存储管理方式

    (不可能有内碎片产生,外碎片不可避免)进程分段,各段在内存。段与段之间离散分配,某一段在内存中连续分配
    计算:给定逻辑地址合成物理地址段表

     

    段页式存储管理方式

    进程分段,段内分页,内存分块

      1. 分页和分段的主要区别

    相似点:采用离散分配方式,通过地址映射机构实现地       址变换

    不同点:页是信息的物理单位,分页是为了满足系统的    需要;段是信息的逻辑单位,含有一组意义相对完    整的信息,分段是为了满足用户的需要。

    页的大小固定且由系统确定,由系统把逻辑地址分为页号和页内地址,由机器硬件实现;段的长度不固定,取决于用户程序,编译程序对源程序编译时根据信息的性质划分。

    分页的作业地址空间是一维的;分段的作业地址空间是二维的。

    输入输出系统

    I/O设备:输入输出和存储功能的设备

     

    I/O设备的分类

    按传输的速度:

    低速设备(如键盘、鼠标、语音输入输出设备)  中速设备(如行式打印机、激光打印机等)

    高速设备(如磁带机、磁盘机、光盘机等)。

     

    设备按信息交换的单位分类

    块设备:用于存储信息。对于信息的存取总是以数据块为单位。典型例子是磁盘。该类设备基本特征是传输速率较高,另一特征是可寻址。

    字符设备:用于数据的输入和输出。基本单位是字符。如交互式终端、打印机等。其基本特征是传输速率较低,另一特征是不可寻址。

     

    设备按其共享属性分类

    独占设备:指在一段时间内只允许一个用户、进程访问的设备,即临界资源。应互斥的访问之。

    共享设备:指在一段时间内允许多个进程同时访问的设备。对每一时刻而言仍然是一个进程访问。如磁盘。

    虚拟设备:指通过虚拟技术将一台独占设备变换为若干台逻辑设备,供若干个用户(进程)同时使用。

     

    设备按其使用特性分类:

    存储设备、输入\输出设备

     

    I/O通道

    其主要目的是为了建立独立的I/O操作,去解放CPU。在设置通道后,CPU只需向通道发送一条I/O指令。通道完成任务后向CPU发中断信号。

    控制功能:CPU与设备控制器

    数据传输:内存与外设

    I/O控制方式

    1. 程序I/O方式,使用轮询的可编程I/O方式。CPU浪费
    2. 终端驱动I/O方式,使用中断的可编程I/O方式。CPU用较短的时间进行中断处理。
    3. 直接存储器访问方式(MDA),以数据块为单位,高效。缺点:不连续的数据块,不能一次处理
    4. I/O通道控制方式,通道时硬件,配合着通道程序

    设备分配

    1. 前提:大中型计算机
    2. DS:设备控制表、控制器控制表、通道控制表、系统设备表
    3. 独占设备分配步骤:分配设备、分配控制器、分配通道

    SPOOLing技术(假脱机)

    定义

    为缓和CPU的高速性与I/O设备低速性间的矛盾而引入了脱机输入、脱机输出技术。该技术是利用专门的外围控制机,将低速设备上的数据传送到高速磁盘上;或者相反。这样就可以在主机的直接控制下实现脱机输入输出。此时外围操作与CPU对数据的处理同时进行,我们把这种在联机情况下实现的同时外围操作称为SPOOLing(Simultaneaus Periphernal Operating On—Line),或称为假脱机操作。

     

    组成

    1. 输入井和输出井。是磁盘上开辟的两个大存储空间。输入井模拟脱机输入的磁盘设备,输出井模拟脱机输出时的磁盘。
    2. 输入缓冲区和输出缓冲区。在内存中开辟两个缓冲区,输入缓冲区暂存由输入设备送来的数据,后送输入井;输出缓冲区暂存从输出井送来的数据,后送输出设备。
    3. 输入进程和输出进程。利用两个进程模拟脱机I/O时的外围处理机。
    4. 井管理程序。用于控制作业与磁盘井之间信息的交换。

    特点

    1. 提高了I/O的速度。利用输入输出井模拟成脱机输入输出,缓和了CPU和I/O设备速度不匹配的矛盾。
    2. 将独占设备改造为共享设备。并没有为进程分配设备,而是为进程分配一存储区和建立一张I/O请求表。
    3. 实现了虚拟设备功能。多个进程同时使用一台独占设备,虚拟成了多台设备。
      1. 打印机是独占设备,通过虚拟技术实现“共享”的模拟
    • 缓冲区管理
    1. 引入
      1. 缓和CPU与I/O设备间速度不匹配矛盾。
      2. 减少对CPU的中断频率,放宽对CPU中断响应时间的限制
      3. 提高CPU和I/O设备之间的并行性。

    方法

    1. 单缓冲(效率低)
    2. 双缓冲区(效率比较高,当输入输出速度不匹配时效率受影响)
    3. 循环缓冲区(解决输入和输出速度相差甚远的影响)
    4. 缓冲池(解决多进程缓冲过程中内存利用率的问题)

    磁盘管理

    9个进程先后提出读盘请求访问的磁道号为:55;58;39;18;90;160 150 38 184目前磁头停留在100道。

     

    先来先服务(FCFS)

    1. 优点:公平、简单
    2. 缺点:未对寻道进行优化

         

     

    最短寻道时间优先(SSTF)

    1. 优点:寻道优化
    2. 缺点:可能导致某些进程发生“饥饿”。

          

     

    扫描SCAN算法

    1. 优点:较好的寻道性能
    2. 缺点:“不巧”的进程严重推迟

            

     

    循环扫描算法CSCAN

    1. 优点:进程的延迟变小了

     

    FSCAN算法本算法是N-Step-SCAN算法的简化。

     

    文件管理

    展开全文
  • 操作系统期末总复习

    千次阅读 多人点赞 2020-06-06 14:57:10
    操作系统期末总复习 关注我不迷路 持续更新中......
  • 操作系统复习——操作系统接口

    千次阅读 2018-06-08 14:19:11
    1:操作系统为了方便用户方便的使用向用户提供了两类接口:用户接口(联机用户接口与脱机用户接口)和程序接口2:程序接口是OS专门为用户程序设置的,它是用户程序取得OS服务的唯一接口。3:系统调用提供了用户程序...
  • 操作系统(第四版)期末复习总结(上)

    万次阅读 多人点赞 2018-07-01 16:26:38
    马上要考操作系统了,第一章操作系统引论1、操作系统是什么?操作系统为用户完成所有“硬件相关,应用无关“的工作,以给用户方便、高效、安全的使用环境1.1、定义: 操作系统是一个大型的程序系统,它负责计算机的...
  • 操作系统复习文档

    千次阅读 多人点赞 2018-01-02 13:09:19
    操作系统复习文档 1、 什么是OS?其四大管理功能是什么? 2、为什么引入分时OS? 3、若按系统能同时响应的用户数及任务数来划分,则OS可分为哪几类?服务器上应该安装哪一类?手机上应该安装哪一类? 4、若按系统...
  • 操作系统复习笔记

    万次阅读 多人点赞 2021-01-20 15:11:12
    第一章 计算机系统概述 基本概念 基本构成:处理器、内存、输入/输出模块、系统总线 处理器中各寄存器的作用 处理器分为执行单元、控制单元、寄存器(用户可见寄存器、控制和状态寄存器) 用户可见寄存器 数据...
  • 操作系统复习

    千次阅读 2020-01-15 20:32:32
    1、下列选项中,( D )不是操作系统关心的主要问题。 A 管理计算机裸机 B 设计、提供用户程序与计算机硬件系统的界面 C 管理计算机系统资源 D 高级程序设计语言的编译器 2、多道批处理系统的主要缺点是( C )。 A ...
  • 操作系统期末复习

    千次阅读 2020-06-29 20:01:01
    第一章 操作系统引论 操作系统的目标 方便性,有效性,可扩充性和开放性 操作系统的作用 1.OS作为用户与计算机硬件系统之间的接口 2.OS作为计算机系统资源的管理者 3.OS实现了对计算机资源的抽象 操作系统的发展过程...
  • 操作系统 期末复习

    千次阅读 多人点赞 2018-12-29 22:53:12
    学习资料:老师的PPT、作业、计算机操作系统(第四版)汤子瀛、汤小丹等,加自己的另一篇总结 学习计划:每天复习1章内容+例题+习题+总复习PPT的主要内容 学习时长:距离考试10天,学习计划8天,留1~2天总复习 19...
  • 操作系统期末复习【超实用】

    万次阅读 多人点赞 2019-08-28 13:54:00
    所用教材:左万历 周长林 彭涛(编著) 打印下来,考前背一背,100分get !!! 此处本来是放目录的,终于有一天发现CSDN居然自带能跳转的目录,orz 富... 资源共享性:操作系统和多个用户程序共用系统中的各种资源 ...
  • 操作系统原理复习

    千次阅读 多人点赞 2020-12-02 17:00:11
    操作系统原理复习题 1.名词解释 1.系统调用 答案:系统调用是为了扩展机器的功能,增强系统能力,方便用户使用而在内核中建立的过程(函数),它是用户程序或其它系统程序获得操作系统服务的唯一途径,系统调用也...
  • 操作系统2 期末复习

    千次阅读 2020-09-03 11:04:54
    操作系统2 第四章 编译 -> 链接(形成逻辑地址) -> 装入(地址变换) 装入 绝对装入(单道程序) 可重定位装入 ​ 不允许程序运行时在内存中移动位置 动态运行时的装入方式(重定位寄存器) ​ 经常换入换出 ...
  • 操作系统期末复习题库

    千次阅读 多人点赞 2020-06-21 15:59:56
    1.下列属于多用户多任务操作系统的是(D )。 A.CP/M B.Window XP C.MS-DOS D.Linux 2.在生产者—消费者问题中,资源信号量full的初值应为:(A )。 A.0 B.1 C.-n D.+n 3.在下述解决死锁的方法中,属于...
  • 北航操作系统复习

    千次阅读 2019-06-10 14:11:31
    北航操作系统复习 !!!本文完全原创,参照沃天宇老师课件,转载请注明出处 第一章 概论 1、操作系统定义:操作系统是一组管理计算机硬件资源的软件集合,它向计算机程序提供共性的服务。 2、批处理:把用户提交...
  • 操作系统复习要点

    万次阅读 多人点赞 2017-09-16 11:17:48
    进程是具有一定功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源调度和分配的一个独立单位。进程是程序的一次执行,包括代码和数据,是CPU分配资源的基本单位,一个进程可以包括多个线程。进程之间...
  • 第1-2章导论和操作系统结构 1、什么是操作系统操作系统作用)? 操作系统是控制和管理计算机各种软件和硬件资源、有效地组织多道程序运行的系统软件,是用户与计算机之间的接口。 2、操作系统功能:存储器管理...
  • 计算机操作系统复习资料

    千次阅读 2018-03-18 20:45:34
    · 第一讲o 什么叫操作系统§ 计算机操作系统是指控制和管理计算机的软、硬件资源,合理组织计算机的工作流程,方便用户使用的程序集合。o 操作系统的三个作用 管理者 ……虚拟机§ 计算机系统软硬件资源的...
  • 文章目录第一章 操作系统引论什么是操作系统操作系统的目标和作用操作系统的发展过程操作系统的基本特征操作系统的主要功能处理机管理存储器管理设备管理文件管理用户接口操作系统的结构设计操作系统的结构设计发展...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 85,056
精华内容 34,022
关键字:

复习操作系统