考研面试复习题

操作系统

1. 通道技术,DMA, 两者的区别是什么?这两个技术哪个先提出来的?哪个性能更强?

  • DMA (Direct memory access)直接内存访问,数据交换不经过CPU,直接在内存和I/O 设备之间进行。
  • 常用的设备和CPU之间数据传送控制方式有4种,它们是程序直接控制方式、中断控制方式、DMA方式和通道方式。程序直接控制方式和中断控制方式都只适用于简单的、外设很少的计算机系统,因为程序直接控制方式耗费大量的CPU时间,而且无法检测发现设备或其他硬件产生的错误,设备和CPU、设备和设备只能串行工作。中断控制方式虽然在某种程度上解决了上述问题,但由于中断次数多,因而CPU仍需要花较多的时间处理中断,而且能够并行操作的设备台数也受到中断处理时间的限制,中断次数增多导致数据丢失。DMA方式和通道方式较好地解决了上述问题。这两种方式采用了外设和内存直接交换数据的方式。只有在一段数据传送结束时,这两种方式才发出中断信号要求CPU做善后处理,从而大大减少了CPU的工作负担。DMA方式与通道控制方式的区别是,DMA方式要求CPU执行设备驱动程序启动设备,给出存放数据的内存始址以及操作方式和传送字节长度等;而通道控制方式则是在CPU发出I/O启动命令之后,由通道指令采完成这些工作。
  • 一、轮询方式
      对I/O设备的程序轮询的方式,是早期的计算机系统对I/O设备的一种管理方式。它定时对各种设备轮流询问一遍有无处理要求。轮流询问之后,有要求的,则加以处理。在处理I/O设备的要求之后,处理机返回继续工作。
      尽管轮询需要时间,但轮询不比I/O设备的速度要快得多,所以一般不会发生不能及时处理的问题。
      当然,再快的处理机,能处理的输入输出设备的数量也是有一定限度的。而且,程序轮询毕竟占据了CPU相当一部分处理时间,因此程序轮询是一种效率较低的方式,在现代计算机系统中已很少应用。
  • 二、中断方式
      处理器的高速和输入输出设备的低速是一对矛盾,是设备管理要解决的一个重要问题。为了提高整体效率,减少在程序直接控制方式中CPU之间的数据传送,是很必要的。
      在I/O设备中断方式下,中央处理器与I/O设备之间数据的传输步骤如下:
      ⑴在某个进程需要数据时,发出指令启动输入输出设备准备数据
      ⑵在进程发出指令启动设备之后,该进程放弃处理器,等待相关I/O操作完成。此时,进程调度程序会调度其他就绪进程使用处理器。
      ⑶当I/O操作完成时,输入输出设备控制器通过中断请求线向处理器发出中断信号,处理器收到中断信号之后,转向预先设计好的中断处理程序,对数据传送工作进行相应的处理。
      ⑷得到了数据的进程,转入就绪状态。在随后的某个时刻,进程调度程序会选中该进程继续工作。
      中断方式的优缺点
      I/O设备中断方式使处理器的利用率提高,且能支持多道程序和I/O设备的并行操作。
      不过,中断方式仍然存在一些问题。首先,现代计算机系统通常配置有各种各样的输入输出设备。如果这些I/O设备都同过中断处理方式进行并行操作,那么中断次数的急剧增加会造成CPU无法响应中断和出现数据丢失现象。
      其次,如果I/O控制器的数据缓冲区比较小,在缓冲区装满数据之后将会发生中断。那么,在数据传送过程中,发生中断的机会较多,这将耗去大量的CPU处理时间。
  • 三、直接内存存取(DMA)方式
      直接内存存取技术是指,数据在内存与I/O设备间直接进行成块传输。
      DMA技术特征
      DMA有两个技术特征,首先是直接传送,其次是块传送。
      所谓直接传送,即在内存与IO设备间传送一个数据块的过程中,不需要CPU的任何中间干涉,只需要CPU在过程开始时向设备发出“传送块数据”的命令,然后通过中断来得知过程是否结束和下次操作是否准备就绪。
      DMA工作过程
      ⑴当进程要求设备输入数据时,CPU把准备存放输入数据的内存起始地址以及要传送的字节数分别送入DMA控制器中的内存地址寄存器和传送字节计数器。
      ⑵发出数据传输要求的进行进入等待状态。此时正在执行的CPU指令被暂时挂起。进程调度程序调度其他进程占据CPU。
      ⑶输入设备不断地窃取CPU工作周期,将数据缓冲寄存器中的数据源源不断地写入内存,直到所要求的字节全部传送完毕。
      ⑷DMA控制器在传送完所有字节时,通过中断请求线发出中断信号。CPU在接收到中断信号后,转入中断处理程序进行后续处理。
      ⑸中断处理结束后,CPU返回到被中断的进程中,或切换到新的进程上下文环境中,继续执行。
  • DMA与中断的区别
      ⑴中断方式是在数据缓冲寄存器满之后发出中断,要求CPU进行中断处理,而DMA方式则是在所要求传送的数据块全部传送结束时要求CPU 进行中断处理。这就大大减少了CPU进行中断处理的次数。
      ⑵中断方式的数据传送是在中断处理时由CPU控制完成的,而DMA方式则是在DMA控制器的控制下,不经过CPU控制完成的。这就排除了CPU因并行设备过多而来不及处理以及因速度不匹配而造成数据丢失等现象。
  • DMA方式的优缺点
      在DMA方式中,由于I/O设备直接同内存发生成块的数据交换,因此I/O效率比较高。由于DMA技术可以提高I/O效率,因此在现代计算机系统中,得到了广泛的应用。许多输入输出设备的控制器,特别是块设备的控制器,都支持DMA方式。
      通过上述分析可以看出,DMA控制器功能的强弱,是决定DMA效率的关键因素。DMA控制器需要为每次数据传送做大量的工作,数据传送单位的增大意味着传送次数的减少。另外,DMA方式窃取了始终周期,CPU处理效率降低了,要想尽量少地窃取始终周期,就要设法提高DMA控制器的性能,这样可以较少地影响CPU出理效率。
  • 四、通道方式
      输入/输出通道是一个独立于CPU的,专门管理I/O的处理机,它控制设备与内存直接进行数据交换。它有自己的通道指令,这些通道指令由CPU启动,并在操作结束时向CPU发出中断信号,见图6-3。
      输入/输出通道控制是一种以内存为中心,实现设备和内参内直接交换数据的控制方式。在通道方式中,数据的传送方向、存放数据的内存起始地址以及传送的数据块长度等都由通道来进行控制。
  • 另外,通道控制方式可以做到一个通道控制多台设备与内存进行数据交换。因而,通道方式进一步减轻了CPU的工作负担,增加了计算机系统的并行工作程度。
  • 1、通道一般用在大型计算机系统中(不是大型机)。
    2、通道实质是一台能够执行有限的输入输出指令,并能被多台外设共享的小型DMA专用处理机。
    3、通道的作用–解决了两个问题。
    a.由cpu承担输入输出的工作。
    虽然dma无需cpu进行外设与内存的数据交换工作,但是这只是减少了cpu的负担。因而dma中,输入输出的初始化仍然要由cpu来完成。
    b.大型计算机系统中高速设备共享dma接口的问题。大型计算机系统的外设太多以至于不得不共享有限的dma接口(小型计算机系统比如pc机中每个高速设备分配一个dma接口)。
    所以通道技术时间早,能力强。dma更加适用于小型微机。
    2. 同步锁,自旋锁
  • 自旋锁(spin lock)与互斥锁类似,都是为了保护共享资源。互斥锁是当资源被占用,申请者进入睡眠状态;而自旋锁则循环检测保持着是否已经释放锁。
  • 自旋锁:如果锁可用,则“锁定”被设置,而代码继续进入临界区;相反,如果锁被其他人获得,则代码进入忙循环(而不是休眠,这也是自旋锁和一般锁的区别)并重复检查这个锁,直到该锁可用为止,这就是自旋的过程。

3. 信号量机制实现?信号量怎么实现? pv操作底层?信号量是谁创建?操作系统内核还是应用层?这个变量在内核空间还是用户空间?

  • 整形信号量表示的是资源的数目S。P操作将减少一个资源,V操作将增加一个资源(即释放一个资源,因为资源不会被操作生出来,只会因别人不用而释放)。
    这里不用wait和signa这种看着含义更加明显的名词,是因为,P、V可以这么联想:一个进程想利用资源了,就拍拍手,表达自己的意愿,这样就可以将S-1,而当自己用好了,就表示一个V字手势,表示成功了,资源可以收回去了。
    既然S是可用资源的数目,那么S = 0,表示已经没有资源可用了。
    在整型信号量中,只要S <= 0,就会不断测试,看何时有资源可用。
    也因此,进程会一直等,不遵循让权等待的原则。
    原文:https://blog.csdn.net/u011240016/article/details/52628969
    在这里插入图片描述
    4. 什么是操作系统内核?在应用层上写可以改内核中的程序吗?微内核 宏内核区别?哪种操作系统微内核 哪种宏内核?是么是系统调用?

  • 微内核:提供操作系统核心功能的内核的精简版本,它设计成在很小的内存空间内增加移植性,提供模块化设计,以使用户安装不同的接口与,如DOS、Workplace OS、Workplace Unix等。IBM、Microsoft等操作系统都采用了这一研究成果的优点。(百度百科)

  • 宏内核:是操作系统核心架构的一种,此架构的特性是整个核心程序都是以核心空间(Kernel Space)的身份及监管者模式(Supervisor Mode)来运行。相对于其他类型的操作系统架构,如微核心架构或混核心架构等,这些核心会定义出一个高级的虚拟接口,由该接口来涵盖描述整个电脑硬件,这些描述会集合成一组硬件描述用词,有时还会附加一些系统调用,如此可以用一个或多个模块来实现各种操作系统服务,如进程管理、共时(Concurrency)控制、存储器管理等。(百度百科)

  • 1、微内核相当于一个信息交换中心,自身可以实现的功能较少,他的主要职责是传递一个请求,一个A模块对其他模块功能的请求。而宏内核相当于一个是一个中央集权控制中心,把内存管理,文件管理等功能全部管理。

  • 2、两个内核的优缺点:
    A、理论上来看,微内核的设计思想更好一些,它将系统分为各个小的功能模块,把设计难度大大降低

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值