操作系统简答题总结

  1. 请简要说明进程的三种状态,画出进程状态转换图并说明转换关系。

答: 1) 运行态(Running,在该时刻实际占用处理机)

2) 就绪态(Ready,可运行,因其他进程正在运行而暂时被挂起)

 
 

3) 阻塞态(Blocked,除非某种外部事件发生,否则不能运行)

 
 
 
 

    1            3         2

  1. 请简要说明进程调度在什么情况下肯定会发生,在什么情况下可能发生。

答:肯定会发生:

  1. 当一个进程退出时。
  2. 当一个进程在I/O或信号量上阻塞时。

有可能发生:

  1. 当一个新进程创建时
  2. 当一个I/O中断发生时
  3. 当一个时钟中断发生时
  1. 请简要解释直接存储器存取(DMA)是怎样工作的。

答: DMA的工作过程大致如下:

  1. 当外设准备好,可以进行DMA传送时,外设向DMA控制器发出DMA传送请求信号DREQ;
  2. DMA控制器收到请求后,向CPU发出“总线请求”信号HOLD,表示希望占用总线;
  3. CPU在完成当前总线周期后会立即对HOLD信号进行响应。响应包括两个方面:一是CPU将数据总线、地址总线和相应的控制信号线均置为高阻态,由此放弃对总线的控制权。另一方面,CPU向DMA控制器发出“总线响应”信号HLDA;
  4. DMA控制器收到HLDA信号后,就开始控制总线,并向外设发出DMA响应信号
  5. DMA控制器送出地址信号和相应的控制信号,实现外设与内存或内存与内存之间的直接数据传送。例如,在地址总线上发出存储器的地址,向存储器发出写信号,同时向外设发出I/O地址、和AEN信号,即可从外设向内存传送一个字节;
  6. DMA控制器自动修改地址和字节计数器,并据此判断是否需要重复传送操作。规定的数据传送完后,DMA控制器就撤销发往CPU的HOLD信号。CPU检测到HOLD失效后,紧接着撤销HLDA信号,并在下一时钟周期重新开始控制总线,继续执行原来的程序
  1. 内核态和用户态的区别是什么?对于一个操作系统来说,这种区别为什么很重要?

答:核心态下进程可以执行特权指令,而用户态下不行。内核态下运行的程序,收到硬件保护,用户不能随便去算改它的内容,一般是操作系统的组成部分。用户态程序,因为不是操作系统的组成部分,是操作系统上独立的程序,可以很容易被其它程序代替。因为这种区别可以很好的保护操作系统,防止用户修改,所以对操作系统很重要。

  1. 为什么操作系统设计者都尽可能地提供设备无关的输入/输出?

答:所谓设备无关性,其含义就是应该能够写出可以访问任意I/O而不需要事先指定设备的驱动程序。设备有很多种,而且都是各种各样,如果用户编程涉及到硬件特性,调用设备控制器提供的接口,编程将会变得异常复杂。所以操作系统设计者都尽可能地提供设各无关性的入/输出。

  1. 请简要说明进程和程序的区别和联系。

答:1) 进程是程序及其数据在计算机的一次运行活动,是一个运行过程,是一个动态的概念。进程的运行实体是程序,离开程序的进程没有存在的意义。而程序是一组有序的指令集合,是一种静态概念。

  1. 进程是程序的一次执行过程,它是动态地创建和消亡的,具有一定的生命周期,是暂时存在的;而程序则是一组代码的集合,它是永久存在的,可长期保存。
  2. 一个进程可以执行一个或几个程序,一个程序也可以构成多个进程。进程可以创建进程,而程序不能形成新的程序。
  3. 进程和程序的组成不同。从静态角度看,进程由程序、数据和进程控制块(PCB)三部分组成。而程序是一组有序的指令集合。
  1. 请简要说明临界区的概念以及临界区解决方案需要具备的四个条件。

答:临界区:指的是一个访问共用资源的程序片段,而这些共用资源又无法同时被多个线程访问的特性。

四个条件:1) 任何两个程序不能同时处于临界区。

  1. 不应对CPU的速度和数目做任何假设。
  2. 临界区外的进程不得阻塞其他进程。
  3. 不得使进程在临界区外无休止的等待。
  1.  请简要解释虚拟存储器的概念。

答:程序的代码、数据和栈的总大小可以超过实际可用的物理内存的大小。操作系统把当前需要用到的部分保留在内存中,而把其余部分保存在磁盘上。

  1.  请简要说明死锁的定义及其必要条件。

定义:如果一个进程集合中的每一个进程都在等待只能由本集合中的其他进程才能引发的事件,那么该进程是死锁的。

必要条件:1) 互斥条件。每一个资源要么被分配给了一个进程,要么就是可用的。

  1. 占有和等待条件。已分配到了一些资源的进程可请求新的资源。
  2. 不可抢占条件。已分配给一个进程的资源不能强制性地被抢占,只能被占有它的进程显式地释放。
  3. 环路等待条件。死锁发生时,系统中必然有一条由两个或两个以上的进程组成的环路,该环路中的每一个进程都在等待下一个进程占用资源。
  1. 操作系统的两个主要功能是什么?如何理解操作系统的两个功能?
  1. 作为扩展机:操作系统可以将硬件细节与编程人员隔离开,用户可以使用操作系统提供的各种命令,直接打开文件、读写文件、更改目录等,,并不用考虑硬件是如何动作,从而隐藏了底层硬件的特性。
  2. 作为资源管理器:操作系统可以用来管理硬件资源和数据、程序等软件资源,控制、协调各个程序对这些资源的利用,尽可能地充分发挥各种资源的作用。

 

猜你喜欢

转载自blog.csdn.net/nanaz11/article/details/81128393