zoukankan      html  css  js  c++  java
  • 计算机专业考研复试面试----操作系统

    1.

    ----- 进程和程序的区别 ①状态: 进程是动态的,程序是静止的。进程是程序的执行,程序是有序代码的集合。 ② 存储时间:进程是暂时的,程序是永久的。进程是一个状态变化的过程,程序可以长久保存。 ③ 进程和程序的组成不同:进程包括程序,数据和进程控制块。 ④ 通过多次执行,一个程序可以对应多个进程;通过调度关系一个进程可 以包括多个程序。 ⑤ 进程可以创建其他进程,但是程序不能形成新的程序。

    -----进程和线程的区别 ① 基本单位:线程是独立调度的基本单位,进程是拥有资源的基本单位,而线程不拥有系统资源(除了少量资源,比如栈,程序计数器,寄存器) ② 并发性:在引入线程的操作系统中,不仅进程之间可以并发执行,而且同一个进程内的多个线程之间 也可以并发执行,能提高系统的吞吐量,系统的并发性也更好。 ③ 系统开销:在创建进程和撤销进程时,系统都要为之分配或回收资源,所以操作系统为进程付出的系统开销远大于创建线程或撤销线程的开销。 ④ 同步和通信:多线程之间的同步和通信容易实现。

    ------进程和作业的区别 一个进程是一个程序在某个数据集合上的执行过程,是分配资源的基本单位。作业是用户需要计算机完成的某项任务,是要求计算机所做工作的集合。

     

    2. 什么是 DMA?什么是中断?两者的区别。 

    DMA:是一种无须CPU的参与就可以让外设与系统内存之间进行双向数据传输的硬件机制,

    使用DMA可以使系统CPU从实际的I/O数据传输过程中摆脱出来,从而大大提高系统的吞吐率.

    中断:是指CPU在执行程序的过程中,出现了某些突发事件时CPU必须暂停执行当前的程序,转去处理突发事件,处理完毕后CPU又返回源程序被中断的位置继续执行源程序。

    所以中断和DMA的区别就是DMA不需CPU参与而中断是需要CPU参与的

    3.硬中断和软中断是什么?区别是什么? 软中断: 1、编程异常通常叫做软中断 2、软中断是通讯进程之间用来模拟硬中断的一种信号通讯方式。 3、中断源发中断请求或软中断信号后,CPU 或接收进程在适当的时机自动进行中断处理或完成软中断信号 对应的功能 4、软中断是软件实现的中断,也就是程序运行时其他程序对它的中断;而硬中断是硬件实现的中断,是程序运 行时设备对它的中断。 硬中断: 1、硬中断是由外部事件引起的因此具有随机性和突发性;软中断是执行中断指令产生的,无外部施加中断 请求信号,因此中断的发生不是随机的而是由程序安排好的。 2、硬中断的中断响应周期,CPU 需要发中断回合信号(NMI 不需要),软中断的中断响应周期,CPU 不 需发中断回合信号。 3、硬中断的中断号是由中断控制器提供的(NMI 硬中断中断号系统指定为 02H);软中断的中断号由指 令直接给出,无需使用中断控制器。 4、硬中断是可屏蔽的(NMI 硬中断不可屏蔽),软中断不可屏蔽

     区别:

    1、软中断发生的时间是由程序控制的,而硬中断发生的时间是随机的

    2、软中断是由程序调用发生的,而硬中断是由外设引发的

    3、硬件中断处理程序要确保它能快速地完成它的任务,这样程序执行时才不会等待较长时间。

    4. 页面置换算法有哪些?什么是 LRU?

     ① 最佳置换算法(OPT):在预知一个进程的页面号引用串的情况下,每次都淘汰以后不再使用的 或以后 最迟再被使用的页面。该算法不能实现,只能作为一个标准来衡量其他置换算法的优劣。

    ② 先进先出算法(FIFO):每次总是淘汰最先进入内存的页面,也就是将在内存中驻留时间最长的页面 淘汰。(可能会产生 Belady 异常,缺页次数随着分配的物理块的增加而增加)。

    ③ 最近最少使用算法(LRU):选择最近最少未被使用的页面淘汰,其思想是用以前的页面引用情况来预 测将来会出现的页面引用情况。利用了局部性原理。

    ④ 时钟置换算法(CLOCK):是 LRU 和 FIFO 的折中,具体方法略。

    ⑤ 最近未使用(NRU)

    5. 什么是操作系统? 操作系统(Operating System,简称 OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运 行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。操作系统是用 户和计算机的接口,同时也是计算机硬件和其他软件的接口。操作系统的功能包括管理计算机系统的硬件、 软件及数据资源,控制程序运行,改善人机界面,为其它应用软件提供支持等,使计算机系统所有资源最 大限度地发挥作用,提供了各种形式的用户界面,使用户有一个好的工作环境,为其它软件的开发提供必 要的服务和相应的接口。

    6. 操作系统的组成

    • 操作系统基本特性 
    1. 并发
    2. 共享
    3. 虚拟
    4. 异步
    • 操作系统内容分为那几块? 什么叫做虚拟内存,和主存的关系如何? 
      操作系统主要组成部分有: 进程和线程的管理,存储管理,设备管理,文件管理。
    • 进程与线程 
      进程是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。为使多个程序能并发运行,系统必须为每个程序建立进程。 
      通常在一个进程中可以包含多个线程,他们可以利用进程所拥有的资源。 
      通常把进程作为分配资源的基本单位,把线程作为独立运行和独立调度的基本单位。
    • 进程的特征 
    1. 动态性
    2. 并发性
    3. 独立性
    4. 异步性
    • 进程的三种状态 
    1. 就绪状态
    2. 执行状态
    3. 阻塞状态
    • 进程控制块PCB的作用 
    1. 作为独立运行基本单位的标志
    2. 能实现间断性运行方式
    3. 提供进程通信管理所需要的信息
    4. 提供进程调度所需要的信息
    • 什么是死锁,条件是什么? 如何避免死锁? 
      死锁定义:

        在两个或多个并发进程中,如果每个进程持有某种资源而又都等待别的进程释放它或它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。通俗地讲,就是两个或多个进程被无限期地阻塞、相互等待的一种状态。

     产生条件:

        1:互斥条件 – 一个资源一次只能被一个进程使用 
        2:请求保持条件 – 一个进程因请求资源而阻塞时,对已经获得资源保持不放 
        3:不可抢占条件 – 进程已获得的资源在未使用完之前不能强行剥夺 
        4:循环等待条件 – 若干进程之间形成一种头尾相接的循环等待资源的关系 

        这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。 

      
     预防避免死锁的方法 
      1:破坏“请求和保持”条件:规定所有进程在开始运行之前,都必须一次性的申请其在整个运行过程所需要的全部资源。 
      优点:简单,安全。 缺点:资源严重浪费,恶化了系统的利用率;

      2:破坏“不剥夺”条件:进程逐个的提出资源请求,当一个已经保持了某些资源的进程,再提出新的资源请求而不能立即得到满足时,必须释放它已经保持了的所有资源,待以后需要时再重新申请。 
        缺点:实现复杂,代价大,反复地申请和释放资源,而使进程的执行无限的推迟、延长了进程的周转时间增加系统开销、降低系统吞吐量。

      3:破坏“环路等待”条件:将所有的资源按类型进行线性排队,并赋予不同的序号。所有进程请求资源必须按照资源递增的次序提出,防止出现环路。 
        缺点:1、序号必须相对稳定,限制了新设备类型的增加2、作业(进程)使用资源顺序和系统规定的顺序不同而造成资源的浪费3、限制了用户编程

      注意:由于互斥条件是非共享设备所必需的,不能改变

     

    7. 操作系统中用到了哪些数据结构?请举例说明

    操作系统原理课程里面有很多数据结构的实现,部分归纳总结如下:

    链表

    进程管理-PCB的连接    外存分配方式-链接分配

    队列

    进程通信-消息队列的实现       处理机调度-任务就绪列队的实现

    存储器管理-先进先出算法/时钟置换算法的实现(循环队列)

    存储器管理-LRU(Least Recently used)最近最少使用置换算法

    进程管理-进程家族关系描述:进程树

    散列表

    内存管理-连续分配方式:Hash算法   文件管理-hash文件

    8. 进程调度算法有哪些?

    调度的原因===因为用户进程数一般都多于处理机数,导致他们都互相争夺处理机,这就要按照一定的策略,从就绪队列中挑选一个进程作为CPU将要运行的下一个进程。

    ① 先来先服务调度 FCFS ② 短作业优先调度 SJF ③ 优先级调度 Priority④ 时间片轮转调度 RR ⑤ 高响应比优先调度 ⑥ 多级队列调度 ⑦ 多级反馈队列调度

     

    9.最具有代表性的避免死锁的算法--银行家算法

     ①每一个新进程进入系统时,必须声明需要每种资源的最大数目,其数目不能超过系统所拥有的资源数量。

     ②当进程请求一组资源时,系统必须首先确定是否有足够的资源分配给该进程。

     ③若有,再进一步打算,再将这些资源分配给进程后,是否会使系统处于不安全状态。

     ④如果不会才将资源分配给它,否则让进程等待。

    10.分段和分页的区别

    段是信息的逻辑单位 便于存储和保护信息。页是信息的物理单位。(物理地址:硬件支持的地址空间  逻辑地址:一个运行的程序所拥有的地址范围。)

    段的大小不固定 页的大小固定。

     

     11.应用程序的逻辑地址是如何映射到物理地址的?

    a。cpu要逻辑地址

    b。内存单元MMU寻找逻辑地址和物理地址的映射

    c。控制器从总线发送请求,去找对应的物理地址。

    d。内存将物理地址发送给CPU

    f。建立逻辑地址和物理地址之间的映射关系,确保程序不相互干扰。

    12.单级页表和多级页表的区别

    单级页表是连续存储的,多级页表是离散存储的。

    13.饥饿和死锁的区别

    饥饿是处于就绪状态的一个进程,死锁是两个或者多个进程,处于执行状态。

  • 相关阅读:
    MySQL索引底层的实现
    mysql索引深入优化
    explain详解与索引最佳实践
    (MYSQL)回表查询原理,利用联合索引实现索引覆盖
    为什么重复值高的字段不能建索引(比如性别字段等)
    Spring的事务
    为什么要用Redis?Redis为什么这么快?
    spring AOP
    钩子教程
    钩子教程
  • 原文地址:https://www.cnblogs.com/shangstacey/p/12637321.html
Copyright © 2011-2022 走看看