文章目录

  • 1.什么是操作系统?操作系统的主要功能是? 它的主要特征是什么?(重点)
  • 2.进程与线程的关系以及区别(重点)
  • 3.Windows下的内存是如何管理的?(简单了解即可)
  • 4.中断和轮询的特点
  • 5.什么是临界区、如何解决冲突?什么叫临界资源?
  • 6.分段和分页的区别?
  • 7.进程间通信有哪些方式?它们的区别?
  • 8.线程间的通信机制
  • 9.什么是死锁?产生条件?如何避免死锁?要使一个系统不发生死锁,一般可采用哪些方法?(特别特别重要)
  • 10.进程间同步与互斥的区别?
  • 11.线程同步的方式?
  • 12.进程的调度算法有哪些?
  • 13. 简述进程和程序的区别。(重点)
  • 14.什么是安全状态?当系统不安全时就是系统进入了死锁状态吗?
  • 15.什么是虚拟存储器?虚拟存储器的主要特征是什么?
  • 16.文件目录和目录文件的区别?目前广泛采用的目录结构形式是哪种?有何优点?
  • 17.系统调用是什么?与一般过程调用有何区别?
  • 18.在设备管理中,何谓设备独立性?如何实现设备独立性?
  • 19.什么是 DMA 方式?它与中断方式的主要区别是什麽?
  • 20.试述缺页中断与一般中断有何区别?
  • 21.为了实现重定位需要哪些硬件?
  • 22.在交互式系统中,非剥夺是不是一个好的策略?为什么?
  • 23.在可变分区管理中,需要哪些硬件机制?
  • 24.CPU不执行程序时在干什么?
  • 25.页面置换算法有哪些?
  • 26.缓冲(buffer)和缓存(Cache)区别和联系 ?
  • 27.什么是银行家算法?(死锁的避免)

各位小伙伴大家好,这是我为各位考研的小伙伴准备的操作系统题库,都是一些比较常见常考的知识点,希望大家能通过题库的学习掌握一些基本的操作系统知识,最后通过复试!

1.什么是操作系统?操作系统的主要功能是? 它的主要特征是什么?(重点)

操作系统是管理系统软硬件资源的最基本的系统软件,他可以为用户使用计算机提供友好的接口
主要功能
1、进程管理。主要是对处理机进行管理。
2、存储管理。主要是对内存的分配、保护和扩充。
3、设备管理。对所有输人、输出设备的管理。
4、文件管理。主要涉及文件的逻辑组织和物理组织,目录的结构和管理。
5、作业管理。为用户提供一个友好的环境,方便用户组织自己的工作流程。
主要特征:
并发性:指两个或多个事件在同一时间间隔内发生;(并行性:在同一时刻…)
共享性:系统中的资源可供内存中多个并发执行的进程共同使用;
虚拟性:把一个物理上的实体变成若干个逻辑上的对应物; 异步性:进程的执行并不是一气呵成的,而是以不可预知的速度向前推进.

2.进程与线程的关系以及区别(重点)

进程定义:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的基本单位.   
线程定义:线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源。
关系:一个程序至少有一个进程,一个进程至少有一个线程。
区别:
从粒度性分析:线程粒度小于进程
从健壮性分析:一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些.
从开销分析: 线程开销小,但不利于资源的管理和保护;进程与之相反。

3.Windows下的内存是如何管理的?(简单了解即可)

1.虚拟内存: 最适合用来管理大型对象或者结构数组
2.内存映射文件: 最适合用来管理大型数据流(通常来自文件)以及在单个计算机上运行多个进程之间共享数据
3.内存堆栈: 最适合用来管理大量的小对象

4.中断和轮询的特点

程序轮询是一种效率较低的方式,现代计算机系统中已很少应用。等待时间很长,CPU利用率不高;
中断容易遗漏一些问题,CPU利用率高。

5.什么是临界区、如何解决冲突?什么叫临界资源?

临界资源: 并发进程访问的那一段的资源。
临界区:每个进程中访问临界资源的那段程序称为临界区,每次只准许一个进程进入临界区,进入后不允许其他进程进入。如果有若干个进程要求进入空闲的临界区,一次仅允许一个进程进入。且其他试图进入临界区的进程必须等待。进入临界区的进程要在有限时间内退出,以便其他进程能及时进入自己的临界区。如果不能进入自己的临界区,就应该让出CPU,避免进程出现忙等现象。

6.分段和分页的区别?

页是信息的物理单位,分页是为了减少内存的外零头,提高内存的利用率。这是便于系统管理的需要,而不是用户的需要。。
 段是信息的逻辑单位,它含有一组其意义相对完整的信息。便于用户的需要。

7.进程间通信有哪些方式?它们的区别?

1.管道:管道是一种半双工的通信方式,数据只能单向流动,而且只能在有血缘关系的进程间使用,进程的血缘关系通常是指父子进程关系。
2.命名管道:也是半双工的通信方式,但是它允许无亲缘关系关系进程间通信。
3.信号:是一种比较复杂的通信方式,用于通知接收进程某一事件已经发生。
4.信号量:信号量是一个计数器,可用来控制多个进程对共享资源的访问。它通常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。
5.消息队列:消息队列是由消息组成的链表,存放在内核中,并由消息队列标识符标识。
6.共享内存:就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问,它是针对其他进程间的通信方式运行效率低而专门设计的。
7.套接字:套接口也是进程间的通信机制,与其他通信机制不同的是它可用于不同及其间的进程通信。

8.线程间的通信机制

1.锁机制:(互斥锁、条件变量、读写锁)  
互斥锁提供了以排他方式防止数据结构被并发修改的方法。  
读写锁允许多个线程同时读共享数据,而对写操作是互斥的。  
条件变量可以以原子的方式进行阻塞进程,直到某个特定条件为真为止。
2.信号量机制:包括无名信号量和命名线程信号量
3.信号机制:类似进程间的信号处理

9.什么是死锁?产生条件?如何避免死锁?要使一个系统不发生死锁,一般可采用哪些方法?(特别特别重要)

死锁的概念:在2个或多个并发进程中,如果每个进程持有某有资源而又都等待别的进程释放它或他们现在保持的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。通俗地讲,就是2个或多个进程被无限期地阻塞、相互等待的一种状态。
死锁产生的原因:系统对于不可剥夺的资源不合理分配
死锁产生的条件:( 只要下述一个条件不成立,就不会发生死锁。
  1.互斥条件:一个资源每次只能被一个进程使用
  2.不可剥夺条件:进程已获得资源,在未使用完之前,不能被其他进程强行剥夺,只能主动释放
  3.请求和保持条件:进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源已被其他进程占有,此时请求进程被阻塞,但对自己已获得的资源保持不放。
  4.循环等待条件:即进程集合{p0,p1,p2,p3……pn};p0正在等待p1占用的资源,p1正在等待p2占用的资源,pn正在等待p0占用的资源。

避免死锁的四种方法

死锁预防:破坏死锁的四个必要条件中的一个或几个,来预防死锁的发生;
死锁避免:将系统分为安全和不安全状态,每当系统为进程分配资源时都要检测系统是否会进入不安全状态,若会,则停止分配,进入等待状态;
死锁检测:若不加任何限制措施,系统可在为进程分配资源的同时,记录下来进程的请求和分配信息,然后按某种算法计算系统是否会发生死锁;
死锁解除:系统发生死锁时通常采用撤销进程或剥夺进程资源的方法使系统解除死锁。

10.进程间同步与互斥的区别?

互斥:指某一个资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的
同步:是指在互斥的基础上(大多数情况下),通过其它机制实现访问者对资源的有序访问。大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源。
同步:体现的是一种协作性。互斥:体现的是排它性。
进程同步的主要任务:是对多个相关进程在执行次序上进行协调,以使并发执行的诸进程之间能有效地共享资源和相互合作。从而使程序的执行具有可再现性。
同步机制遵循的原则:
 1.空闲让进;
 2.忙则等待;
 3.有限等待;
 4.让权等待;

11.线程同步的方式?

线程同步是指多个线程同时访问某资源时,采用一系列的机制以保证最多只能一个线程访问该资源。线程同步是多线程中必须考虑和解决的问题,以为很有可能发生多个线程同时访问(主要是写操作)同一资源,如果不进行线程同步,很可能会引起数据混乱,造成线程死锁等问题。

线程同步的方式:临界区、互斥量、信号量、信号   
临界区:通过对多线程的串行化来访问公共资源或者一段代码,速度快,适合控制数据访问。
互斥量:采用互斥对象机制,只有拥有互斥对象的线程才有访问公共资源的权限,因为互斥对象只有一个,所以可以保证公共资源不会同时被多个线程访问。
信号量:它允许多个线程同一时刻访问同一资源,但是需要限制同一时刻访问此资源的最大线程数目。信号量对象与其他前面几种方法不同,信号允许多个线程同时使用共享资源。
信号:通过通知操作的方式来保持多线程的同步,还可以方便实现多线程的优先级比较操作。

12.进程的调度算法有哪些?

1.先来先服务(FCFS):此算法的原则是按照作业到达后备作业队列(或进程进入就绪队列)的先后次序选择作业(或进程)
  2.短作业优先(SJF:Shortest Process First):这种算法主要用于作业调度,它从作业后备序列中挑选所需运行时间最短的作业进入主存运行。
  3.时间片轮转调度算法:当某个进程执行的时间片用完时,调度程序便终止该进程的执行,并将它送到就绪队列的末尾,等待分配下一时间片再执行。然后把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。这样就可以保证队列中的所有进程,在已给定的时间内,均能获得一时间片处理机执行时间。
  4.高响应比优先:按照高响应比(已等待时间+要求运行时间)/要求运行时间 优先的原则,在每次选择作业投入运行时,先计算此时后备作业队列中每个作业的响应比RP。选择最大的作业投入运行。
  5.优先权调度算法:按照进程的优先权大小来调度。使高优先权进程得到优先处理的调度策略称为优先权调度算法。注意:优先数越多,优先权越小。
  6.多级队列调度算法:多队列调度是根据作业的性质和类型的不同,将就绪队列再分为若干个队列,所有的作业(进程)按其性质排入相应的队列中,而不同的就绪队列采用不同的调度算法。

13. 简述进程和程序的区别。(重点)

答: 进程和程序是既有联系又有区别。
主要区别:
1.程序是指令的有序集合,其本身没有任何运行的含义,它是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态概念。
2.程序的存在是永久的,而进程则是有生命的,它因创建而产生,因调度而执行,因得不到资源而暂停,因撤销而消亡。
3.程序仅是指令的有序集合。而进程则是由程序、数据和进程控制块组成。
4.进程与程序之间不是一一对应的,一个进程可以执行多个程序。

14.什么是安全状态?当系统不安全时就是系统进入了死锁状态吗?

答: 安全状态是指系统按照某种进程顺序,为进程分配资源,使得每个进程都能获取所需的最大资源,并顺利完成。 不是,但是死锁状态一定是不安全状态。

15.什么是虚拟存储器?虚拟存储器的主要特征是什么?

答: 就是采用一定的方法将一定的外存容量模拟成内存,同时对程序进出内存的方式进行管理,从而得到一个比实际内存容量大得多的内存空间,使得程序的运行不受内存大小的限制。
多次性:作业无须一次调入,允许分多次调入内存;
对换性:作业在运行过程中无须常驻内存,可以根据需要进行换入换出;
虚拟性:从逻辑上扩充内存容量。

16.文件目录和目录文件的区别?目前广泛采用的目录结构形式是哪种?有何优点?

答: 文件目录,又称文件控制块,存储的是文件的管理信息,控制对象是单个文件;
目录文件,存储的是若干个文件目录,控制对象是整个文件系统; 目前广泛采用的树形目录结构,优点是:允许文件重命名,实现了文件分类。

17.系统调用是什么?与一般过程调用有何区别?

答: 系统调用是操作系统与应用程序之间的接口,它是用户程序间接操作计算机资源的唯一途径。
一般过程调用工作在用户态,可以无限制嵌套调用; 系统调用运行在核心态,不可以嵌套调用。

18.在设备管理中,何谓设备独立性?如何实现设备独立性?

答: 设备独立性是指用户程序独立于所使用的具体设备。 实现方式是系统为每个用户进程配置一张用于联系逻辑设备名和物理设备名的映射表,以实现使用逻辑设备名来请求物理设备。

19.什么是 DMA 方式?它与中断方式的主要区别是什麽?

答: DMA方式是指内存与外设只需要在DMA控制器的控制下进行数据传输,而不需要进行CPU的干预。 与中断方式的主要区别是:
1.中断方式在每个数据需要传输时都需要中断CPU,而DMA方式是在所要求传送的一批数据全部传送完毕时才中断CPU;
2.中断方式中数据传输是由CPU控制完成的,而DMA方式中数据传输是在DMA控制器控制下完成的。

20.试述缺页中断与一般中断有何区别?

答:
主要区别:
1、范围不同:
一般中断只需要保护现场,然后就直接跳到需及时处理的地方。
缺页中断除了保护现场之外,还要判断内存中是否有足够的空间,然后再把所需页调进来再使用。
2、次数不同
在指令执行期间产生和处理缺页中断信号,一条指令在执行期间,可能产生多次缺页中断。
一般中断只产生一次,发生中断指令后转入相应处理程序进行处理,恢复被中断程序现场。

21.为了实现重定位需要哪些硬件?

答: 至少需要在系统中增设一个重定位寄存器,用来存放正在执行作业的内存地址,每次访问数据时,由硬件自动将相对地址与重定位寄存器中的起始地址相加,形成实际的物理地址。

22.在交互式系统中,非剥夺是不是一个好的策略?为什么?

答: 不剥夺并不是一个好的策略。因为除了交互性以外,及时性是很重要的性能因素。当一个作业被阻塞后,CPU就完全空闲了,别的用户的及时性就无法保证了,而完全可以把这些时间分配给别的作业运行。以提高整体的吞吐量。

23.在可变分区管理中,需要哪些硬件机制?

答: 采用可变分区方式管理时,一般均采用动态重定位方式装入作业; 地址变换要靠硬件支持,主要是两个寄存器:基址寄存器和限长寄存器,这两个值确定了一个分区的位置和大小; 限长寄存器存放作业所占分区的长度;
基址寄存器则存放作业所占分区的起始地址;
地址转换时:根据逻辑地址与限长值比较,如果不有超过这个值,表示访问地址合法,再加上基址寄存器中的值就得到了绝对地址了,否则形成“地址越界”中断。

24.CPU不执行程序时在干什么?

答: 大多数操作系统都有个空闲任务,它是一个特殊的任务。仅当CPU无事可做的时候由操作系统调度器载入它。HLT停机指令使处理器处于暂时停机状态.而空闲任务几乎总是由一个重复执行HLT停机指令的循环组成。

25.页面置换算法有哪些?

(1)最佳置换算法(Optimal):即选择那些长时间不使用的,或者是在最长时间内不再被访问的页面置换出去。(它是一种理想化的算法,性能最好,但在实际上难于实现)。

(2)先进先出置换算法FIFO:该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。

(3)最近最久未使用置换算法LRU(Least Recently
Used):该算法是选择最近最久未使用的页面予以淘汰,系统在每个页面设置一个访问字段,用以记录这个页面自上次被访问以来所经历的时间T,当要淘汰一个页面时,选择T最大的页面。

(4)Clock置换算法:也叫最近未用算法NRU(Not
RecentlyUsed)。该算法为每个页面设置一位访问位,将内存中的所有页面都通过链接指针链成一个循环队列。当某页被访问时,其访问位置“1”。在选择一页淘汰时,就检查其访问位,如果是“0”,就选择该页换出;若为“1”,则重新置为“0”,暂不换出该页,在循环队列中检查下一个页面,直到访问位为“0”的页面为止。
(5)最少使用置换算法LFU:该算法选择最近时期使用最少的页面作为淘汰页。

26.缓冲(buffer)和缓存(Cache)区别和联系 ?

缓冲与cache操作的对象就不一样。 缓冲(buffer)是为了提高内存和硬盘或其他I/0设备之间的数据交换的速度而设计的。 cache(缓存)是为了提高cpu和内存之间的数据交换速度而设计。
cpu在执行程序所用的指令和读数据都是针对内存的也就是从内存中取得的。由于内存读写速度慢,为了提高cpu和内存之间数据交换的速度,在cpu和内存之间增加了cache,它的速度比内存快,所以把这块内容放入cache后cpu就不用在访问内存了这就提高了访问速度。当然若cache中没有cpu所需要的内容还是要访问内存的。
缓冲是根据磁盘的读写设计的把分散的写操作集中进行减少磁 盘碎片和硬盘的反复寻道从而提高系统性能。
简单来说缓冲是即将要被写入磁盘的而cache是被从磁盘中读出来的。 缓冲是由各种进程分配的被用在如输入队列等方面。
两者都加快了系统的反应速度

27.什么是银行家算法?(死锁的避免)

银行家算法(Banker’s Algorithm)是一个避免死锁(Deadlock)的著名算法。它以银行借贷系统的分配策略为基础,判断并保证系统的安全运行。
  在银行中,客户申请贷款的数量是有限的,每个客户在第一次申请贷款时要声明完成该项目所需的最大资金量,在满足所有贷款要求时,客户应及时归还。银行家在客户申请的贷款数量不超过自己拥有的最大值时,都应尽量满足客户的需要。在这样的描述中,银行家就好比操作系统,资金就是资源,客户就相当于要申请资源的进程。
  银行家算法是一种最有代表性的避免死锁的算法。在避免死锁方法中允许进程动态地申请资源,但系统在进行资源分配之前,应先计算此次分配资源的安全性,若分配不会导致系统进入不安全状态,则分配,否则等待。为实现银行家算法,系统必须设置若干数据结构

计算机考研复试操作系统题库相关推荐

  1. 考研c 语言程序设计题库,温州大学c语言程序设计考研复试核心题库(23页)-原创力文档...

    2017年温州大学C语言程序设计考研复试核心题库 (一) 说明:本资料为学员内部使用,整理汇编了 2017考研复试重点题及历年复试常考题 . _.选择题 1 ,在以下给出的表达式中,与while ( ...

  2. 西安交大计算机考研软件工程编程题库(二十四)

    西安交大计算机考研软件工程编程题库(二十四) 鄙人今年备考,主要目的在于记录学习历程,望道友们勿喷~ 希望能做到每日一题~ 开始炼丹~ 上篇链接:西安交大计算机考研软件工程编程题库(二十三) 下篇链接 ...

  3. 西安交大计算机考研软件工程编程题库(二十一)

    西安交大计算机考研软件工程编程题库(二十一) 鄙人今年备考,主要目的在于记录学习历程,望道友们勿喷~ 希望能做到每日一题~ 开始炼丹~ 上篇链接:西安交大计算机考研软件工程编程题库(二十) 下篇链接: ...

  4. 西安交大计算机考研软件工程编程题库(十八)

    西安交大计算机考研软件工程编程题库(十八) 鄙人今年备考,主要目的在于记录学习历程,望道友们勿喷~ 希望能做到每日一题~ 开始炼丹~ 上篇链接:西安交大计算机考研软件工程编程题库(十七) 下篇链接:西 ...

  5. 西安交大计算机考研软件工程编程题库(二十)

    西安交大计算机考研软件工程编程题库(二十) 鄙人今年备考,主要目的在于记录学习历程,望道友们勿喷~ 希望能做到每日一题~ 开始炼丹~ 上篇链接:西安交大计算机考研软件工程编程题库(十九) 下篇链接:西 ...

  6. 西安交大计算机考研软件工程编程题库(二十七)

    西安交大计算机考研软件工程编程题库(二十七) 鄙人今年备考,主要目的在于记录学习历程,望道友们勿喷~ 希望能做到每日一题~ 开始炼丹~ 上篇链接:西安交大计算机考研软件工程编程题库(二十六) 下篇链接 ...

  7. 西安交大计算机考研软件工程编程题库(二十八)

    西安交大计算机考研软件工程编程题库(二十八) 鄙人今年备考,主要目的在于记录学习历程,望道友们勿喷~ 希望能做到每日一题~ 开始炼丹~ 上篇链接:西安交大计算机考研软件工程编程题库(二十七) 下篇链接 ...

  8. 华科计算机考研复试真题,华科计算机考研复试机试题【含参考代码】

    华科计算机考研复试机试题[含参考代码] (32页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 29.9 积分 华科历年复试机试题汇总上机考试.一般网站上公 ...

  9. 华科计算机考研复试真题,华科计算机考研复试机试题(2000-2013)

    华科计算机考研复试机试题(2000-2013),c++实现,注本人参加过2014年华科上机考试,老师说机试时可以使用c语言,c++语言. 2000年 阶乘 #include #include #inc ...

最新文章

  1. 手机号归属地区编码_这些关于手机号码的冷知识 你知道吗
  2. 苹果6s怎么导出照片_苹果手机照片误删怎么恢复?不懂的值得一看
  3. Socket的3次握手链接与4次断开握手
  4. 中科大计算机学院博士导师,中科大计算机学院招生导师
  5. Java创建一个学生类
  6. openstack nova 手动修改虚拟机状态
  7. 请求并操作指定url处的xml文件
  8. 网页flash加载不出来
  9. Oracle项目管理系统之质量控制
  10. 关于word中最后一个分节符导致的空白页删除问题
  11. 测试基础-测试的定义及原则?
  12. 用荧光素酶基因标记肿瘤细胞的实验步骤
  13. 花书 第十九章 第二十章
  14. 【计算方法】雅克比迭代法-高斯赛德尔迭代法求解线性方程组(c语言实现)
  15. 【Python】文本情感分析及绘制词云
  16. 怎么用matlab对图片缩小,使用Matlab实现对图片的缩放
  17. 【Apollo 6.0学习笔记】高精地图
  18. python最难的地方_最令人头疼的 Python 问题
  19. f_sync有大用但不可以滥用
  20. matlab仿真及分析,CSMACD性能分析及MATLAB仿真.pdf

热门文章

  1. centos 监视文件变动脚本
  2. CSDN社区运营午餐会第1期 – 人在驴途
  3. 【畅享壕礼】百度云岁末感恩季活动来袭
  4. 解决外贸电商难题,PayPal中国外贸电商大会圆满礼成
  5. Android闹钟服务AlarmManager
  6. jpa级联添加_请教一个JPA多对多级联保存的问题
  7. android 获取多个控件,Android----获取activity上所有的控件
  8. 线控制动系统(EWBS)
  9. RGB565转换为RGB88,并作线性补偿
  10. 三角形法向量与矢量乘法