现代操作系统-引论

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaoyilong2007101095/article/details/83036732

1,操作系统对资源的管理主要有时间复用和空间复用两种方式

     时间复用举例:每个进程在指定时间段内使用CPU

     空间复用举例:内存空间多个进程之间共享

2,虚拟内存机制使得程序需要的内存大于物理内存成为可能,其方法是把程序存放在磁盘上,把内存当做缓存,用来保存最频繁          使用的部分程序,这种机制需要快速的映射内存地址,以便把程序生成的地址快速转换为有关字节在RAM中的物理地址,这种        映像由CPU的一个部件MMU来完成,MMU(memory management unit)。

3, I/O设备

      IO设备一般都有存储本身+控制器组成,控制器可以理解为对存储的一种抽象,使使用者更容易的使用IO的存储。

     每个设备控制器都有少量的用于通信的寄存器:指定磁盘地址,内存地址,扇区计数和方向(读或者写),多有的寄存器的集合

     构成了所谓的IO端口空间。

     实现对于IO设备的输入输出的方式有三种(两大类):

     a,轮询方式:

           用户程序发出一个系统调用,系统调用由内核转换为对应设备的驱动程序的过程调用,设备驱动程序启动IO并在一个循环中 一直检测过程执行结束状态,IO结束后,设备驱动程序会把数据放到指定内存地址中(如果有需要),操作系统将控制返回给调用者,这种就是轮询方式,目前DPDK就是使用该方式(当IO量特别大的时候,忙等待比起进程之间的切换来说是一个相对更快的操作?)

   b,中断方式:

   b1,进程或者线程的IO请求到设备驱动程序后,设备驱动程序把IO请求写到设备控制寄存器中之后就返回,也就意味中用户调用返回,操作系统会阻塞该进程,并且调度其它进程使用CPU。IO控制器根据设备控制寄存器来启动IO设备,执行对应操作,执行完成之后会通知中断控制器,中断控制器通知CPU,并且把中断信号放到总线上面,CPU读取执行对应中断程序。

b2,DMA方式

     b1方式CPU在驱动程序把指令写到IO设备的控制寄存器之后才返回,DMA(direct memory access)芯片可以直接控制内存和IO设备的寄存器,不需要CPU后面持续的干预,CPU把指令发给DMA,DMA会接管接下来的动作,节省CPU时间,DMA完成之后也是发中断通知CPU。

猜你喜欢

转载自blog.csdn.net/xiaoyilong2007101095/article/details/83036732