文章目录

  • 前言
  • 简答题
  • 应用题
  • 简答题(无答案)
  • 应用题(无答案)

前言

可能会考到的操作系统题目,按照章节和题型分类。首先给出的是题目以及答案,最后两项是无答案只有题目的版本。

题目不定时更新

简答题

  1. 操作系统结构】操作系统能提供什么服务,如何提供的?参数传递的方式是什么?
    1)操作系统提供用户界面、程序执行、I/O操作、文件系统操作、通信、错误检测、资源分配、统计、安全和保护等服务。
    2)(答案存疑)操作系统提供一个环境以执行程序,它向程序和这些程序的用户提供一定的服务。
    3)通过寄存器来传递参数;将参数放在内存的块或表中,传递给寄存器;将参数放在堆栈中,并通过操作系统弹出堆栈。

  2. 进程&&线程】简述进程和线程,说明它们的区别与联系,并说明PCB包括什么内容?
    1)进程:进程即运行中的程序,程序代码被称为数据段,进程还包括当前活动,通过程序计数器的值和处理器寄存器的内容来表示。另外进程通常还包括堆栈段、数据段和堆。进程是系统分配资源的最小单位。
    2)线程线程是CPU使用的基本单元。线程有线程ID、程序计数器、寄存器集合和堆栈组成。它与属于同一进程的其它线程共享代码段、数据段和其它操作系统资源。
    3)区别与联系:【1】进程拥有资源,线程不拥有资源,只是使用进程的资源;【2】一个进程可以包含单个线程,也可以包含多个线程;【3】不同进程的地址空间是相互独立的,同一进程的个线程共享同一地址空间;【4】进程间的通信需要使用操作系统的通信机制,同一进程中的个线程可以通过直接读写数据段来进行通信;【5】进程创建、撤销、切换时空开销较大,线程创建、撤销、切换时空开销较小;【6】进程可以并发执行,提高资源的利用率和系统吞吐量,线程可以提高并发执行的程度,进一步提高资源的利用率和系统吞吐量。多线程可以充分使用多处理器体系结构,以便每个进程能并行运行在不同的处理器上。

    4)PCB:PCB即进程控制块,是操作系统为例管理进程设置的一个专门的数据结构,PCB是进程存在的唯一标志,操作系统通过PCB来感知进程的存在。PCB由进程状态、程序计数器、寄存器集合、CPU调度信息、内存管理信息等组成。

  3. 虚拟内存&&内存管理】简述虚拟内存技术原理,并说明分页存储管理是如何实现的
    1)虚拟内存技术原理:虚拟内存技术允许进程不必完全在内存中,程序中暂时用不到的内容存储到外存上。虚拟内存你的优势是程序可以比物理内存大,而且,虚拟内存技术将内存抽象成一个巨大的、统一的数组,进而将用户看到的逻辑内存与物理内存分开。这种技术允许程序员不受物理内存的限制,只需要关注要解决的问题。
    2)基本分页存储管理:固定分区会产生内部碎片,动态分区会产生外部碎片,这两种技术对内存的利用率都比较低。为了尽量避免碎片的产生,我们引入分页的思想:把主存空间划分为大小相等且固定的块,块相对较小,作为主存的基本单位。每个进程也以块为单位进行划分,进程在执行时,一块为单位逐个申请主存的块空间。基本分页存储管理的地址变换通过页表实现,首先逻辑地址中的页号与页表长度进行比较,若没有产生越界中断,则物理地址为页表中页号对应的页表项地址+逻辑地址页偏移,并通过得到的物理地址去访问内存。
    3)请求分页存储管理:几点重要的点:页表项在TLB中吗;页在内存中吗?内存满了吗?该页被修改了吗?

  4. 【进程】什么是信号量
    信号量是一个整数变量,除了初始化以外,它只能通过两个标准原子操作wait()和signal()来访问,该操作也被称为P操作和V操作。信号量进制通常用来解决互斥和同步问题。

  5. 【操作系统结构】什么是系统调用
    操作系统内核提供了一系列预先定义好的功能,通过一组称为系统调用的接口呈现给编程人员。系统调用把应用程序的需求传递给系统内核,调用相应的内核函数来处理请求,将处理的结果返回给应用程序。系统调用是内核的一部分。

  6. 【进程】什么是颠簸
    颠簸是指系统分配给进程的存储块数量小于进程运行所需要的最小值,进程将很频繁地产生缺页中断,这种频繁的页调度行为称为颠簸。

  7. 【操作系统】什么是调度
    在计算机中,调度指分配某种资源使用的策略。资源可以指计算资源、存储资源或者硬件资源。比如CPU调度,调度程序将从内存汇总选择一个能够执行的进程,并为之分配CPU;虚拟内存中的页面置换,选择换出内存的页;磁盘调度,减少寻道时间;I/O调度,确定一个适合的顺序来完成I/O请求。

  8. 【I/O输入系统】什么是设备驱动程序
    设备驱动程序是一种可以使计算机和设备通信的特殊程序。相当于硬件的接口,操作系统只有通过这个接口,才能控制硬件设备的工作。

  9. 【操作系统导论】什么是操作系统
    操作系统就是管理计算机硬件的程序,它还为应用程序提供基础,并充当计算机和用户的中介。

  10. 【操作系统结构】什么是微内核
    将所有非基本部分从内核中移走,并将它们实现为系统程序或用户程序,从而得到更小的内核。微内核通常包括最小的进程管理、内存管理及通讯功能。

  11. 【文件系统接口】什么是文件
    文件是记录在外存的具有名称的相关信息集合,从用户看,文件是逻辑外存分配的最小单元。即数据除非在外存中,否则不能写入外存。

  12. 【操作系统导论】什么是内核态与用户态
    操作系统分为内核态和用户态,系统引导时,系统处于内核态。接着,装入操作系统,开始在用户模式下执行用户进程。一旦出现陷阱或中断,硬件就会从用户模式切换到内核模式。在用户模式下,用户有计算机的控制权,在内核模式下,操作系统获得计算机的控制权。我们通过一个Bit的模式位来表示是用户模式还是系统模式。特权指令只能在内核模式下执行。

  13. 【内存管理】分页存储管理如何实现进程的资源保护与共享?

  1. 可以通过与每个帧相关联的保护位实现。在页表中设置有效-无效位。当该位有效时,表示相关的页在进程的逻辑空间内,因此是合法的页;当该位无效时,表示相关的页不在进程的逻辑地址空间内。操作系统通过对该位的设置可以控制对某位的访问权。
  2. 可以通过提供页表长度寄存器来表示页表的大小,该寄存器的值可用于检查每个逻辑地址以验证其是否位于进程的有效范围内。
  1. 【操作系统结构】简述文件操作read()的参数有哪些,如果实现该函数的系统调用?
    (等一下,需要查询课本,暂时没带)
  2. 【虚拟内存】什么是缺页中断
    定义:当采用请求式分页存储管理方法时,进程所需的页不在内存中,称为缺页,进而由硬件产生中断,称为缺页中断。
    缺页中断完整处理流程
    1)检查进程的内部页表(通常和PCB在一起),以确定该引用是合法还是非法的地址访问。
    2)如果引用非法,那么终止进程。如果引用有效但是尚未调入页面,那么现在应调入,产生页错误陷阱(缺页中断)。
    3)找到一个空闲帧,如果有空闲帧,那么便使用它
    4)如果没有空闲帧,则进行页面置换
    5)调度一个磁盘操作,以便将所需要的页调入刚分配的内存。
    6)当磁盘读操作完成后,修改进程的内部表和页表,以表示该页已在内存中。
    7)重新开始因陷阱而中断的指令。进程现在能访问所需的页,就好像它似乎总在内存中一样。
  3. 【死锁】什么是死锁
    在多道程序环境下,多个进程可能竞争一定数量的资源。某个进程申请资源,如果这时资源不可用,那么该进程进入等待状态。如果申请的资源被其它等待进程占有,那么该等待进程有可能再也无法改变其状态,称为死锁
  4. 【内存管理】什么是地址再定位
    地址再定位就是当一个程序装入到与其地址空间不一致的存储空间而进行的地址变换过程。该变换将地址空间给出的逻辑地址映射到内存的物理地址上。
  5. 【内存管理】程序链接有几种方式?
    1)静态链接:在程序运行之前,先将各个目标模块以及它们所需的库函数链接成一个完整的可执行程序,以后不再拆开。
    2)装入时动态链接:将用户源程序编译后得到的一组目标模块,在装入内存时,采用边装入边链接的方式。
    3)运行时动态链接:对某些目标模块的链接,是在程序执行中需要该目标模块时才进行的。其优点是便于修改和更新,便于实现对目标模块的共享。
  6. 【内存管理】内存的装入模块在装入内存时,有几种方式?
    绝对装入:又称编译时绑定,如果在编译时就知道进程将在内存中驻留的地址,那么可以生成绝对代码。例如进程驻留在内存地址R处,则生成的编译代码就从R处开始向后扩展,若开始地址发生改变,需要重新编译。由于程序中的逻辑地址与实际内存地址完全相同,因此不需对程序和数据的地址进行修改。绝对装入方式只适用于单道程序环境。缺点:不支持多道程序环境,不利于程序浮动,不支持虚拟内存机制。
    可重定位装入(静态重定位):在多道程序环境下,多个目标模块的起始地址通常都从0开始,程序中的其它地址都是相对于始址的,此时应采用可重定位装入方式。根据内存的当前情况,将装入模块装入内存的适当位置。装入时对目标程序中指令和数据的修改过程称为重定位,地址变换通常是在装入时一次完成的,所以又称静态重定位缺点:不利于程序浮动,不支持虚拟内存机制。
    动态运行时装入(动态重定位):程序在内存中若发生移动,则需要采用动态的装入方式。装入程序把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正要执行时才进行。因此,装入内存后的所有地址均为相对地址。这种方式需要一个重定位寄存器(硬件)的支持。
  7. 【进程】什么是作业
    作业指用户一次请求计算机系统为它完成任务的工作集合。
  8. 【文件系统】简述文件存储空间的管理的技术(空闲块的组织和管理问题)
    解答:由于文件存储设备是分成若干个大小相等的物理块,并以块为单位来交换信息的,因此,文件存储空间的管理实质上是空闲块的组织和管理问题,它包括组织、分配和回收等。
    1)空闲文件目录:一个空闲文件是由文件存储器上连续的空闲块组成的。系统为所有的空闲文件建立一个单独的目录表。每个表目对应一个空闲文件,记录该空闲文件的起始块号和块数。空闲文件的分配与回收算法与内存管理中的可变式分区管理的方法相似,同样可以采用最先适应算法、最佳适应算法、最坏适应算法等。
    2)空闲块链:空闲块链把文件存储设备上的所有空闲块链接在一起。当申请者需要空闲块时,分配程序从链首取下所需的空闲块,然后调整链首指针。反之,当回收空闲块时,把释放的空闲块逐个插入空闲链上。这种方法的优点是分配和回收一个空闲块的过程都非常简单,缺点是空闲块链可能很长。改进的办法是采用空闲盘区链接法或成组链接法。
    3)位示图:位示图利用一个二进制位来记载一个物理块的使用情况。系统为每个文件存储设备建立一张位示图,反映文件存储设备所有物理块的使用情况。每个物理块对应位示图上的一位,如果该位为0,则表示所对应的块是空闲的;反之,则表示所对应的块已被分配。利用位图来进行空闲块分配时,只需查找图中为0的位,并将其置1;反之,回收时只需把相应的位由1改为0。由于位示图很小,可以将它保存在内存中。
  9. 【I/O】叙述I/O轮询中断DMA通道控制方式的各自特点和优缺点
    I/O轮询:I/O轮询又称程序直接控制方式。计算机从外部设备读取数据到存储器,每次读取一个字。对于读取的每一个字,CPU需要对外设状态进行循环检查,直到确定该字已经在I\O控制器的数据寄存器中。优点:简单且易于实现。缺点:由于CPU的高速性和I\O设备的低速性,致使CPU的绝大部分时间都处于等待I\O设备完成数据I\O的循环测试中,由于CPU和I\O设备只能串行工作,导致CPU的利用率相当低。
    中断驱动方式:允许I\O设备主动打断CPU的运行并请求服务,从而“解放”CPU,使得器向I\O控制器发送读命令后可以继续做其他有用的工作。【优点】大大提高了CPU的利用率且能支持多道程序和设备的并行工作;【缺点】由于数据中的每个字在存储器和I\O控制器之间的传输都必须经过CPU,导致了中断驱动方式仍然会消耗较多的CPU时间。
    DMA:DMA方式的基本思想是在I\O设备和内存之间开辟直接的数据交换通路。DMA传送的基本单位是块;所传送的数据,是从设备直接送入内存或者相反;仅在传送一个或多个数据块的开始和结束时,才需CPU的干预,整块数据的传送是在DMA控制器的控制下完成的。【优点】仅在传送一个或多个数据块的开始和结束时,才需CPU的干预,提高了CPU资源的利用率;【缺点】需要硬件支持,成本较高。。。
    通道控制方式: 通道控制方式与DMA方式相类似,也是一种以内存为中心,实现设备和内存直接交换数据的控制方式。与之不同的是,在DMA方式中数据传送方向、存放数据内存始址以及传送的数据块长度都是由CPU进行控制,而在通道方式中这些都是由专管输入输出的硬件通道来进行控制。
  10. 【进程】什么是进程控制块
    进程控制块(PCB)是系统为了管理进程设置的一个专门的数据结构,用它记录进程的外部特征,描述进程的运动变化过程。每个进程在操作系统内用进程控制块来表示,一个程序从被动实体转换为活动实体后,肯定要有控制它的数据结构。PCB是进程存在的唯一方式。 操作系统通过PCB来感知进程的存在。进程控制块通常由进程状态程序计数器寄存器集合CPU调度信息内存管理信息记账信息I\O信息等组成。
  11. 【进程同步】什么是临界资源
    某段时间内只允许一个进程使用的资源称为临界资源。
  12. 【死锁】列举并简述死锁的处理方法
    死锁预防:产生死锁需要四个必要条件(互斥、非抢占、占有并等待、循环等待),只要使任意一个不成立,死锁就不会发生,称为死锁预防。
    死锁避免:要求操作系统事先得到有关进程申请资源和使用资源的额外信息。有了这些信息,系统可以确定,对于一个进程的资源申请,进程是否应该等待。所以,系统必须考虑现有可用资源、已分配每个进程的资源、每个进程将来申请和释放的资源。
    死锁检测:不需要知道每个进程的最大需求资源量,而是提供一个算法来检查系统状态以确定死锁是否发生。
    死锁恢复:提供一个算法使操作系统从死锁中恢复。
    死锁忽略:不处理死锁问题。当死锁很少发生时,死锁忽略是可行的,因为更为经济。
  13. 【死锁】简述银行家算法
    1)当新进程进入系统时,它必须说明其可能需要的每种类型资源实例的最大数量,这一数量不能超过系统资源的总和。
    2)当进程申请一组资源时,系统利用安全性算法确定这些资源的分配是否会使系统处于安全状态。如果是,可以分配资源。否则,进程必须等待直到其它进程释放足够资源为止。
    3)安全性算法:已知进程执行完成之后会立即释放其所占有的全部资源,如果系统存在一个所有进程依次申请其所需全部资源的序列,使得所有进程都能完成,则系统处于安全状态。
  14. 【I\O操作】Spooling系统由几部分组成?Spooling系统有哪些特点?
    Spooling系统有输入井和输出井、输入缓冲区和输出缓冲区以及输入进程和输出进程三部分组成。
    特点:【1】提高了I\O速度。Spooling系统中的输入井和输出井,避免了CPU的高速性和I\O设备低速性之间的矛盾;【2】将独占设备改为共享设备。Spooling系统没有为任何进程实际分配设备,只是在输入井或输出井中为进程分配一个存储区和建立一张I\O请求表。【3】实现了虚拟设备功能。宏观上有多个进程在同时使用一台独占设备,但对于每个进程而言,它们认为自己独占了一台设备。
  15. 【内存管理】什么是cache? 有什么用处?
  16. 【内存管理】cache缓存的区别?
    cache:cache为高速缓冲存储器,是位于CPU和内存之间的容量较小但速度很快的存储器,因为CPU的速度远远高于主内存的速度,CPU从内存中读取数据需要等待较长时间,而Cache保存着CPU刚用过的数据或循环使用的部分数据,这是从Cache中读取数据会更快,减少了CPU等待的时间,提高了系统的性能。
    buffer: 缓冲区,用于存储速度不同步的设备或优先级不同的设备之间传输数据;通过buffer可以减少进程通信需要的等待时间,当存储快的设备与存储慢的设备进行通信时,存储慢的设备先把数据放到buffer,达到一定程度存储快的设备再读取buffer的数据,在此期间存储快的设备可以做其它事情。
    区别:cache的作用为加快访问速度,buffer的作用为减少响应次数。cache一般是加速读取内存中的块,buffer一般是加速数据写入磁盘。
  17. 【磁盘管理】磁盘都有什么管理方法?
    【磁盘格式化】在磁盘可以存储数据之前,它必须分成扇区,以便磁盘控制器能够读写,这个过程称为低级格式化或物理格式化。
    【引导块】为了开始运行计算机,如打开电源或重启时,它必须有一个初始程序来运行。这个初始自举程序往往很简单。它初始化系统的所有部分,从 CPU 寄存器到设备控制器和内存,接着启动操作系统。为此,自举程序找到磁盘上的操作系统内核,加载到内存,并转到起始地址以便幵始操作系统的执行。对于大多数计算机,自举程序处在只读存储器(ROM)中。
    【坏块】【1】手动扫描磁盘以查找坏扇区,如果找到,就在相应FAT条目中标识该块已坏,不要使用;【2】对于更复杂的磁盘,可以通过控制器维护一个磁盘坏块链表。操作系统看不到这些块,控制器可以用备用块来逻辑地替代坏块,称为扇区备用或者转寄
  18. 【磁盘】什么是磁盘调用
    在多道程序设计的系统内,各个进程可能会不断提出对磁盘的读写操作请求。在部分情况下,进程发送请求的速度要快于磁盘处理请求的速度,因此我们有必要为磁盘请求建立一个等待队列,并使用磁盘调度算法来减少磁盘寻道时间。常用的磁盘调度算法有FCFS,最短寻道时间优先算法SSTF,扫描算法SCAN,C-SCAN,LOOK,C-LOOK
  19. 【文件系统实现】文件在磁盘上的存储方式,以及各自的优缺点


  20. 【进程】什么是上下文切换
    将CPU切换到另一个进程需要保存当前进程的状态并恢复另一个进程的状态,这一任务称为上下文切换,上下文切换速度因机器而不同,它依赖于内存速度、必须复制的寄存器数量、是否有特殊指令等,一般需要几毫秒。
  21. 【存储】外存上的文件区对换区(交换区),各是什么,各有什么特点?
    文件区:离散分配,存放文件
    对换区:连续分配,存放从内存换出的进程。
  22. 【进程】什么是调度程序?短期调度程序?中期调度程序?长期调度程序?
    调度程度:进程在其生命周期中会在各种调度队列之间迁移。为了调度,操作系统必须按某种方式从这些队列中选择进程。进程选择是由相应的调度程序来执行的。
    长期调度程序:也叫做作业调度程序,从磁盘(也称为缓冲池)中选择进程,并装入内存以准备执行。绝大多数进程可分为I\O为主或CPU为主,长期调度程序在选择进程时,为了达到最好性能,需要调度一个合理的I\O为主和CPU为主的组合进程。
    中期调度程序:中期调度程序的核心思想是能将进程从内存(或CPU竞争)中移出,从而降低多道程序设计的程度。之后,进程能被重新调入内存,并从中断处继续执行。这种方案称为交换。
    短期调度程序:也叫做CPU调度程序,从准备执行的进程(已经在内存中)选择进程,并为之分配CPU。
  23. 【I/O】什么是设备独立性
    设备独立性是指的是从程序设计的角度看待I\O设备,各种I\O设备所体现的接口是一致的。不同设备之间的差异是由操作系统来处理,对用户程序加以屏蔽。
  24. 【内存管理】什么是快表(TLB)?它在地址转换中起什么作用?
    TLB是一种高速的相联存储器,用于存放正在运行的进程的当前页号和块号,或者段号和段起始地址。加入快表后,在地址转换时,首先在快表中查找,若找到就直接进行地址转换;为找到,则在内存页表中继续查找,并把查到的页号和块号放入相联存储器中。
  25. 【线程】什么是线程池?在服务器中采用线程池有什么好处?
    线程池:是指在初始化一个多线程应用程序的过程中创建一个线程集合,然后再需要执行新的任务时重用这些线程而不是新建一个新线程。线程池中线程的数量通常完全取决于可用内存数量和应用程序的需求。然而,增加可用线程数量是可能的。线程池中的每个线程都有被分配一个任务,一旦任务完成了,线程回到池子中并等待下一次分配任务。
    好处:【1】提高了资源利用率,线程池可以重复利用已经创建了的线程;【2】提高响应速度,因为当线程池中的线程没有超过线程池的最大上限时,有的线程处于等待分配任务状态,当任务到来时,无需创建线程就能被执行;【3】具有可管理性,线程池会根据当前系统特点对池内的线程进行优化处理,减少创建和销毁线程带来的系统开销。
  26. 【文件系统】简述文件系统要解决哪些问题
    文件系统应具备以下功能:【1】文件管理(创建、删除文件以及各种操作),【2】目录管理(创建、删除目录,以及权限验证等),【3】文件存储空间的管理(如外存空间的分配与回收),【4】文件的共享和保护,【5】提供方便的接口(如实现按名存取,文件系统调用等)
  27. 【内存管理】简述什么是内存的覆盖交换技术?两者有什么区别
    交换:在多道系统中,交换是指系统把内存中暂时不能运行的某部分作业写入外存交换区,腾出空间,把外存交换区中具备运行条件的指定作业调入内存。交换是利用时间来换取空间,减少对换的信息量和时间是设计时要考虑的问题。
    覆盖:由于CPU在某一时刻只能执行一条指令,所以一个作业不需要一开始就全部装入内存,而是将作业的常驻部分装入内存,而让那些不会同时执行的部分共享同一块内存区,后调入共享区的内容覆盖前面调入的内容。
    区别
    【1】交换技术由操作系统自动完成,不需要用户参与,而覆盖技术需要专业的程序员给出作业各部分之间的覆盖结构,并清楚系统的存储结构。
    【2】交换技术主要在不同的作业之间进行,而覆盖技术主要在同一个作业内进行;
    【3】覆盖技术主要在早期的操作系统中使用,而交换技术在现代操作系统中仍具有较强的生命力。
  28. 【内存管理】为什么分段技术比分页技术更容易实现程序或数据的共享?
    分段技术中每一段在逻辑上是相对完整的一组信息,分段技术中共享信息是在段一级出现的。因此,任何共享的信息可以单独作一个段,同样段中所有的内容可以用相同的方式进行使用,从而规定相同的使用权限;而页是信息的物理单元,在一个页面中可能存在逻辑上相互独立的两组或更多组信息都各有不同的使用方式和存取权限。因此,分段技术较分页技术更容易实现程序或数据的共享。
  29. 【操作系统】简述并发性与并行性
    并发性:并发性是指两个或多个事件在同一时间间隔发生。
    并行性:并行性是指两个或多个事件在同一时刻发生。
  30. 【文件系统实现】什么是目录
    文件系统需要建立这样一种数据结构,以实现文件名与文件物理位置的映射关系,体现这种对应关系的数据结构称为文件目录。目录的每个叶节点保证可以通过文件名检索,并包含这个文件物理位置的信息。目录实现的基本方法有线性列表和哈希表两种。

应用题

  1. 内存管理】某系统采用页式存储管理策略,拥有逻辑空间32页,每页2KB,拥有物理空间1MB。
    (1)写出逻辑地址格式 (2) 若不考虑访问权限等,进程的页表有多少项?每项至少有多少位?
    (3)如果物理空间减少一半,页表结构应相应作出怎样的改变?
    1)该系统拥有逻辑空间32页,故逻辑地址中页号必须用5位来描述;每页为2KB,因此,页内地址必须用11位来描述。故逻辑地址共有16位,11位低位为页内偏移,5位高位为页号。
    2)逻辑空间为32页,因此,进程的页表项最多为32项;若不考虑访问权限等,则页表项中只需给出页所对应的物理块块号,1MB的物理空间可以分成292^929(1MB/2KB)个内存块,页表项为了能访问到所有物理内存块,至少要有9位。
    3)若物理空间减少一半,逻辑地址不需要改变,页表的页表项数也无需改变,只需要将页表项的大小改为至少需要8位。

  2. 进程同步】一个理发师有n张椅子,当顾客到来时,如有空椅子,就坐在椅子上,否则站着等待。当有顾客时,理发师就理发,否则就睡觉。当顾客到来时,如果理发师正在睡觉,就唤醒他。理发师给顾客理完发后打发顾客走人,空出椅子,如有站着的顾客,就让其坐下。试用P,V操作描述理发师和顾客之间的同步关系。
    解答:

// 顾客发现没椅子宁愿站着可能挤爆理发店也要等着理发的理发师问题int waiting = 0; // 最初等待的顾客为0
int CHAIRS = n; // 共有n把椅子,且数量不会变化semaphore sitCustomers = 0; // 信号量,坐着的顾客数,初值为0
semaphore standCustomers = 0; // 信号量,站着的顾客数,初值为0
semaphore mutex = 1; // 互斥变量,初值为1
semaphore babers = 0; // 等待顾客的理发师数,或者说可以为顾客理发的理发师数,在本题中只能为0或1// 理发师进程,因为要时刻准备理发,所以有while,类似服务器
babers(){while(1){P(sitCustomers); // 理发师睡眠并等待顾客P(mutex); // 到这一步说明来客了,开启互斥,修改等待的顾客数waiting = waiting - 1; // 等待的顾客数减一V(mutex); // 修改完毕,关闭互斥V(babers); // 理发师开始为顾客理发// 理发中// 理发完成,回家if(waiting >= CHAIRS){ // 如果现在有站着等的顾客P(standCustomers); // 让站着的顾客坐着等V(sitCustomers); // 顾客坐下 }}
}// 顾客进程,可能同时有多个用户进程,但每个用户进程都只执行一次,类似客户端
customers(){if(waiting < CHAIRS){ // 如果还有空的椅子P(mutex); // 准备更改等待人数,开启互斥waiting = waiting + 1; // 等待人数加一V(mutex); // 修改完成,关闭互斥V(sitCustomers); // 顾客坐下,如果是第一个顾客则唤醒理发师P(babers); // 顾客等到理发师// 理发// 理完发,回家}else{P(mutex); // 准备更改等待人数,开启互斥waiting = waiting + 1; // 等待人数加一V(mutex); // 修改完成,关闭互斥V(standCustomers); // 没有椅子了,顾客站着等P(babers); // 站着的顾客等到理发师// 理发// 理完发,回家}
}
  1. 【内存管理】若在一分页存储管理系统中,某作业的页表如下所示。已知页面大小为1024字节,试将逻辑地址2148,5012转化为相应的物理地址。
  2. 【CPU调度】设有四个进程,它们到达就绪队列的时间及执行时间如下表,若采用剥夺式短作业优先,非剥夺式短作业优先及时间片轮转法(时间片=2),分别给出各进程的关于各算法的调度次序及平均等待时间
  3. 【进程同步】假设有空盘子最多能存放10个苹果或梨,爸爸每次随机选择一个苹果或者一个梨削皮后放到盘子中。儿子喜欢吃苹果,每次从盘子中取一个苹果并吃掉,并用countApple()来统计吃的苹果个数。女儿喜欢吃梨,每次取一个梨并吃掉,用countPear()来统计吃掉的梨的个数。请用信号量机制来描述三者的同步关系
// 信号量这种题其实灵活性很高的semaphore full = 0; // 盘子目前有多少水果
semaphore empty = 10; // 盘子还能放多少水果semaphore mutex = 1; // 我觉得这个写不写都行Father(){while(1){P(empty); // 首先判断盘子中是否已满// 随机选择一个水果,削皮P(mutex);// 放入盘子中V(mutex);V(full);
}
}Son(){if(盘子中有苹果){P(full); // 拿走一个苹果V(empty);P(mutex);// 吃吃吃V(mutex);countApple();}
}Daughter(){if(盘子中有梨){P(full); // 拿走一个梨V(empty);P(mutex);// 吃吃吃V(mutex);countPear();}
}
  1. 【死锁】判断是否会死锁
  2. 【页置换】计算缺页次数、解释Belady现象
  3. 【页置换】在一个请求分页系统中,假如一个作业的页面走向为:4,3,2,1,4,3,5,4,3,2,1,5。当分配给该作业的物理块数M为4时,分别采用最佳置换算法、LRU和FIFO页置换算法,计算访问过程中所发生的缺页次数和缺页率。
  4. 【进程同步】 描述哲学家问题,并给出几种解决思想,用信号量机制实现其中的一种
    描述:假设有5位哲学家,他们一生用来思考和吃饭。有一个圆桌,桌子中间放着一大碗米饭。每个哲学家的左手边和右手边各有一只筷子,共有五只筷子,且哲学家只能拿起他旁边的两只筷子。哲学家会感到饥饿,当哲学家拿起两只筷子时,他们就可以吃饭,吃完饭后放下筷子并继续思考。
    解决方法:【1】只有哲学家两旁的筷子可以同时拿起时,才拿起筷子;【2】在同一时间,只允许最多四位哲学家拥有至少一根筷子;【3】给哲学家编号,奇数哲学家先拿起左边再拿起右边,偶数哲学家先拿起右边再拿起左边。

// 哲学家进餐问题semaphore chopsticks[5];
semaphore seats = 4;philosopher(int i){P(seats); // 找椅子坐下// 拿起筷子P(chopsticks[i]);P(chopsticks[(i+1)%5]);//吃吃吃V(chopsticks[i]);V(chopsticks[i+1]%5);V(seats);
}
  1. 【死锁】根据资源分配图,判断是否有死锁,并简述理由
  2. 【进程同步】记录型信号量的含义和实现
// 记录型信号量
struct semaphore
{int value;struct process *L;
};void wait(semaphore S){S.value--;if(S.value < 0){// add this process to S.Lblock(S.L); // 使进程阻塞自身}
}void signal(semaphore S){S.value++;if(S.value < = 0){// remove a process P from S.LwakeUp(P); // 唤醒进程}
}
  1. 【内存管理】某一计算机系统采用段页式虚拟存储器方式,已知虚拟地址有32位,按字编址,每个字段最多可以有1K页,每页16KB,主存储器容量64MB。
    (1)求虚拟存储器容量
    (2)给出逻辑地址和物理地址的格式
    (3)求段表和页表长度
  2. 【存储管理】某文件系统采用多级索引结构,若磁盘块的大小为512字节,每个块号需占3字节,那么根索引采用一级索引时的文件最大长度为多少字节;采用二级索引时的文件最大长度为多少字节。该文件系统能否随机访问?
  3. 【进程同步】有一个仓库,可以存放A和B两种产品,但要求:(1)每次只能存放一种产品(A和B)(2) N<A产品数量 - B产品数量<M;其中N和M是正整数。试用p,v操作描述产品A和产品B的入库过程。
// 信号量机制
semaphore mutex = 1;
semaphore maxA = M - 1;
semaphore maxB = N - 1;productA(){P(maxA);P(mutex);// 放入一个A产品V(mutex);V(maxB);
}productB(){P(maxB);P(mutex);// 放入一个B产品V(mutex);V(maxA);
}

简答题(无答案)

  1. 操作系统结构】操作系统能提供什么服务,如何提供的?参数传递的方式是什么?
  2. 进程&&线程】简述进程和线程,说明它们的区别与联系,并说明PCB包括什么内容?
  3. 虚拟内存&&内存管理】简述虚拟内存技术原理,并说明分页存储管理是如何实现的?
  4. 【进程】什么是信号量
  5. 【操作系统结构】什么是系统调用
  6. 【进程】什么是颠簸
  7. 【操作系统】什么是调度
  8. 【I/O输入系统】什么是设备驱动程序
  9. 【操作系统导论】什么是操作系统

应用题(无答案)

  1. 内存管理】某系统采用页式存储管理策略,拥有逻辑空间32页,每页2KB,拥有物理空间1MB。
    (1)写出逻辑地址格式 (2) 若不考虑访问权限等,进程的页表有多少项?每项至少有多少位?
    (3)如果物理空间减少一半,页表结构应相应作出怎样的改变?
  2. 进程同步】一个理发师有n张椅子,当顾客到来时,如有空椅子,就坐在椅子上,否则站着等待。当有顾客时,理发师就理发,否则就睡觉。当顾客到来时,如果理发师正在睡觉,就唤醒他。理发师给顾客理完发后打发顾客走人,空出椅子,如有站着的顾客,就让其坐下。试用P,V操作描述理发师和顾客之间的同步关系。
  3. 【内存管理】若在一分页存储管理系统中,某作业的页表如下所示。已知页面大小为1024字节,试将逻辑地址2148,5012转化为相应的物理地址。
  4. 【CPU调度】设有四个进程,它们到达就绪队列的时间及执行时间如下表,若采用剥夺式短作业优先,非剥夺式短作业优先及时间片轮转法(时间片=2),分别给出各进程的关于各算法的调度次序及平均等待时间
  5. 【进程同步】假设有空盘子最多能存放10个苹果或梨,爸爸每次随机选择一个苹果或者一个梨削皮后放到盘子中。儿子喜欢吃苹果,每次从盘子中取一个苹果并吃掉,并用countApple()来统计吃的苹果个数。女儿喜欢吃梨,每次取一个梨并吃掉,用countPear()来统计吃掉的梨的个数。请用信号量机制来描述三者的同步关系

【笔记】操作系统题目整理相关推荐

  1. 考研操作系统题目整理

    操作系统题目整理 大家觉得有用点点赞啊啊我升到3级就可以自定义标签了谢谢~ 说复试题目过于牵强,只是自己整理的一些知识点而已,为了便于理解和背诵,有些部分定义和说明尽量简明扼要,如有错误请多多指教!( ...

  2. 数据结构笔记与题目整理

    复杂性判断: 算法可以没有输入,但一定会有输出. logN2是O(N)的.T,我也不知道为什么. 算法逻辑结构分为线性结构和非线性结构,与数据元素本身的形式.内容.相对位置.个数无关. 斐波那契数列F ...

  3. 【专栏必读】王道考研408计算机组成原理万字笔记、题目题型总结、注意事项、目录导航和思维导图

    王道考研复习指导下载(密码7281) 其他科目导航 [专栏必读]王道考研408操作系统万字笔记(有了它不需要你再做笔记了):各章节内容概述导航和思维导图 [专栏必读]王道考研408数据结构万字笔记(有 ...

  4. 【专栏必读】王道考研408计算机网络+湖科大教书匠计算机网络+网络编程万字笔记、题目题型总结、注意事项、目录导航和思维导图

    王道考研复习指导下载(密码7281) 其他科目导航 [专栏必读]王道考研408计算机组成原理万字笔记(从学生角度辅助大家理解):各章节导航及思维导图 [专栏必读]王道考研408操作系统万字笔记.题目题 ...

  5. 计算机适应性考试题目,计算机控制考试题目整理

    <计算机控制考试题目整理>由会员分享,可在线阅读,更多相关<计算机控制考试题目整理(7页珍藏版)>请在人人文库网上搜索. 1.简答题1.3计算机控制系统的典型形式有哪些?各有什 ...

  6. 【面试题】某司社招面试题目整理及答案

    某司社招面试题目整理及答案 Java基础部分 HashMap的实现原理 如何解决Hash碰撞 HashMap的存储(hash算法.hash冲突.初始化.扩容) HashMap和HashTable的区别 ...

  7. 四级网络工程师笔记-操作系统(上)

    四级网络工程师笔记-操作系统(上) 前言: 系列博文 操作系统原理 第一章 操作系统概论 1. 操作系统概述 2. 操作系统特征 3. 操作系统结构设计 4. -般指令和特权指令 5. 研究操作系统的 ...

  8. 【面试】网易游戏面试题目整理及答案(5)

    网易游戏面试题目整理及答案(5) 算法 操作系统 Linux部分 其他 参考资料 算法 Leetcode 75题:请写出一个高效的在m*n矩阵中判断目标值是否存在的算法,矩阵具有如下特征: 1)每一行 ...

  9. 【面试】网易游戏面试题目整理及答案(1)

    网易游戏面试题目整理及题目(1) Python部分 计算机网络 参考资料 Python部分 迭代器生成器,生成器是如何实现迭代的? 答:迭代器iterator:迭代器就是实现了迭代方式的容器,iter ...

  10. 大数据 -- kafka学习笔记:知识点整理(部分转载)

    一 为什么需要消息系统 1.解耦 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险.许多 ...

最新文章

  1. 搭建服务器环境 安装jdk、mysql、Tomcat 以及配置https 记录
  2. 脑洞大开,如何生成 2018 年度代码报告
  3. Windows 10 Creators Update [ISO官方镜像][15063][1703][x64][x86][创意者更新正式版]
  4. maven排除依赖冲突问题
  5. 找了个学习uboot makefile的好地方 不过不让转载 那就把网址分享一下吧
  6. vue-day01-vue模板语法
  7. Python+django网页设计入门(19):创建新模型扩展自带用户表的字段
  8. python文件操作笔记
  9. [堆] Jzoj P5861 失意
  10. NGN学习笔记8——NGN的安全问题
  11. python notebook右侧网页_Python Notebook介绍
  12. Behavior Designer 行为树中文版教程
  13. 关于Bundle Adjustment的直观理解
  14. 编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。
  15. TensorFlowX.Y核心基础与AI模型设计开篇
  16. android opengl版本太低,安卓模拟器opengl_安卓模拟器无法安装“系统opengl版本过低”的通用解决方法_安卓模拟器通用版_通用安卓模拟器...
  17. PDF Editor 6 Pro for Mac(pdf编辑器)
  18. 极狐gitlab版本升级 #JIHULAB101
  19. 74LS273芯片介绍
  20. tablecloth 使用笔记

热门文章

  1. 2018/7/9日~年中总结
  2. NPOI Word 换行 【XWPFDocument】
  3. FFmpeg指令行打开usb摄像头(windows)
  4. M1 M2 是什么意思?M1 M2的增速说明什么问题?
  5. #S/4HANA 1610: Use case series intro and collection
  6. totolink服务器未响应,totolink路由器登陆页面打不开怎么办
  7. 使用 kind 1 分钟启动一个本地 k8s 开发集群
  8. 股票多空量化策略通过合理释放beta收益一定程度上提升了组合的收益风险比?
  9. 《解读基金》 基金中统计指标含义-平均回报、标准差、夏普比率、阿尔法系数、贝塔系数、R平方
  10. P1196 [NOI2002] 银河英雄传说 题解