计算机操作系统面经(二)

计算机操作系统面经(一)

计算机操作系统面经(二)

计算机操作系统面经(三)

1.什么是死锁?为什么会产生死锁?死锁产生的必要条件?怎么解决死锁?

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

    (2)死锁产生的原因:

        (2.1)系统资源的竞争:

        (2.2)进程推进顺序非法:进程在运行过程中,请求和释放资源的顺序不当

    (3)死锁产生的必要条件(缺一不可):

        (3.1)互斥条件:在一段时间内某资源仅为一个进程所占有;

        (3.2)不剥夺条件:进程所获得的资源在未使用完之前,不能被其他进程强行夺走;

        (3.3)请求并保持条件:进程己经保持了至少一个资源,但又提出了新的资源请求,而该资源己被其他进程占有,此时请求进程被阻塞,但对自己已获得的资源保持不放。

        (3.4)循环等待条件:存在一种进程资源的循环等待链,链中每个进程已获得的资源同时被链中下一个进程所请求

    (4)死锁的处理策略:设法破坏产生死锁的4个必要条件之一,或允许死锁产生,但当 死锁发生时能检测出死锁,并有能力实现恢复。

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

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

        (4.3)死锁的检测及解除:无须采取任何限制性措施,允许进程在运行过程中发生死锁。通过系统的检测机构及时地检测出死锁的发生,然后采取某种措施解除死锁。

2.什么是内存管理?为什么要进行内存管理?

    (1)内存管理是指软件运行时对计算机内存资源的分配和使用的技术。

    (2)若不对内存进行管理,则容易导致内存数据的混乱,以至于限制进程的并发执行。因此,为了更好地支持多道程序并发执行,必须进行内存管理。

3.为什么要引入动态重定位?如何实现?

    (1)在程序执行过程中,每当访问指令或数据时,将要访问的程序或数据的逻辑地址转换成物理地址,引入了动态重定位;

    (2)具体的实现方法是在系统中增加一个重定位寄存器,用来装入程序在内存中的起始位置,程序执行时,真正访问的内存地址是相对地址与重定向寄存器中的地址相加之和,从而实现了动态重定位。

4.分区存储管理(属于连续分配管理)中常采用哪些分配策略?有何优缺点?

    (1)首次适应( First Fit)算法。空闲分区以地址递增的次序链接。分配内存时顺序查找,找到大小能满足要求的第一个空闲分区。

          优点:保留高地址部分的大空闲区,有利于后来的大型作业分配;

          缺点:低地址部分被不断划分,留下许多难以利用的小空闲区;每次分配时都要从低地址部分开始查找,增加了查找的系统开销

    (2)最佳适应 (Best Fit)算法。空闲分区按容量递增的方式形成分区链,找到第一个能满足要求的空闲分区。

          优点:每次分配的空闲区都是最适合的;

          缺点:在内存中留下许多难以利用的小空闲区;

    (3)最坏适应(Worst Fit)算法。又称最大适应( Largest Fit)算法,空闲分区以容量递减的次序链接,找到第一个能满足要求的空闲分区,即挑选出最大的分区。

         优点:产生碎片的几率最小,对中小型作业有利

         缺点:缺乏大的空闲区,对大型作业不利;

    (4)邻近适应 (Next Fit)算法。又称循环首次适应算法,由首次适应算法演变而成。 不同之处是,分配内存时从上次查找结束的位置开始继续查找。

         优点:使内存中的空闲分区分布更均匀,减少查找时的系统开销;

         缺点:缺乏大的空闲区,对大型作业不利;

5.在具有快表的段页式存储管理方式中,如何实现地址变换?

    (1)CPU 给出逻辑地址后,由硬件进行地址转换,将页号送入高速缓存寄存器,并将此页号与快表中的所有页号进行比较。

    (2)若找到匹配的页号,说明所要访问的页表项在快表中,则直接从中取出该页对应的页框号,与页内偏移量拼接形成物理地址。这样,存取数据仅一次访存便可实现。

    (3)若未找到匹配的页号,则需要访问主存中的页表,在读出页表项后,应同时将其存入快表,以便后面可能的再次访问。但若快表已满,则必须按照一定的算法对旧的页表项进行替换。

6.分页和分段有什么异同?

    (1)相同点:

        分页和分段都采用离散分配的方式,且都要通过地址映射机构来实现地址变换。

    (2)不同点:

        (2.1)从功能上看,页是信息的物理单位,分页是为实现离散分配方式,以消除内存的外零头,提供内存利用率,是为了满足系统管理的需求;而段是信息逻辑单位,它含有一组意义相对完整的信息,是为了满足用户的需求。

        (2.2)页的大小是由系统确定且固定不变的;而段的长度不固定,取决于用户编写的程序。

        (2.3)分页的作业地址空间是一维的,分段的作业地址空间是二维的。

7.什么是局部性原理?什么是虚拟存储器?

     (1)局部性原理表现在以下两个方面:

        (1.1)时间局部性。程序中的某条指令一旦执行,不久后该指令可能再次执行;某数据被访问过,不久后该数据可能再次被访问。产生时间局部性的典型原因是程序中存在着大量的循环操作。

        (1.2)空间局部性。一旦程序访问了某个存储单元,在不久后,其附近的存储单元也将被访问, 即程序在一段时间内所访问的地址,可能集中在一定的范围之内,因为指令通常是顺序存放、顺序执行的,数据也一般是以向量、数组、表等形式簇聚存储的。

    (2)虚拟存储器是指具有请求调入功能的和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统,基于局部性原理,在程序装入时,将程序的一部分装入内存,而将其余部分留在外存,就可启动程序执行。在程序执行过程中,当所访问的信息不在内存时,由操作系统将所需要的部分调入内存,然后继续执行程序。另一方面,操作系统将内存中暂时不使用的内容换出到外存上,从而腾出空间存放将要调入内存的信息。这样,系统好像为用户提供了一个比实际内存大得多的存储器,称为虚拟存储器。

8.有哪些页面置换算法?什么是抖动?

    (1)页面置换算法:

       (1.1) 最佳(OPT)置换算法:置换算法选择的被淘汰页面是以后永不使用的页面,或是在最长时间内不再被访问的页面,以便保证获得最低的缺页率。

        (1.2)先进先出(FIFO)页面置换算法:优先淘汰最早进入内存的页面,即在内存中驻留时间最久的页面。

        (1.3)最近最久未使用 (LRU)置换算法:选择最近最长时间未访问过的页面予以淘汰,它认为过去一段时间内未访问过的页面,在最近的将来可能也不会被访问。

        (1.4)时钟(CLOCK)置换算法:最近未使用算法

    (2)在页面置换过程中,一种最糟糕的情形是,刚刚换出的页面马上又要换入主存,刚刚换入的页面马上又要换出主存,这种频繁的页面调度行为称为抖动或颠簸

9.为什么要引入虚拟内存?

    在物理上扩展内存相对有限的条件下,应尝试以一些其他可行的方式在逻辑上扩充内存。

10.什么是文件?什么是文件系统?

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

    (2)操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。

11.文件有哪几种逻辑结构?

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

    (2)有结构文件(记录式文件)

        (2.1)顺序文件。文件中的记录一个接一个地顺序排列,记录通常是定长的,可以顺序存储或以链表形式存储,在访问时需要顺序搜索文件。

        (2.2)索引文件

        (2.3)索引顺序文件。索引顺序文件是顺序和索引两种组织形式的结合。

        (2.4)直接文件或散列文件(Hash File)。给定记录的键值或通过散列函数转换的键值直接决定记录的物理地址。这种映射结构不同于顺序文件或索引文件,没有顺序的特性。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值