操作系统-io软件层次结构

文章目录

  • 用户软件层
  • 设备独立性软件
  • 设备驱动程序
  • 中断处理程序
  • 硬件

用户软件层

用户软件层实现了与用户交互的接口,用户可直接使用该层所提供的io操作相关库函数完成对设备的操作。
然后用户层软件会将用户的请求翻译成格式化的io请求,并通过系统调用请求系统内核的服务

设备独立性软件

该层又可以成为设备无关性软件,与设备的硬件特性无关的功能几乎都在这层实现的。他的主要功能有:

  1. 它主要向上层(即用户软件层)提供io调用相关的接口,如read、write等。
  2. 这层还负责对设备的权限保护,他将设备看到做一个个文件,不同用户对
  3. 这些"设备文件"访问权限是不一样的,所以通过这层我们还可以完成对设备的权限控制。
  4. 当用户使用需要某个io设备后,设备独立性软件还会负责将这些设备的操作进程相关数据进行分配,使用完成后还负责回收。
  5. 内存和磁盘传输速度相差很大,所以这层还提供数据缓冲区的管理,将相关数据先放到数据缓冲区,这样就可以尽可能的屏蔽设备之间数据交换单位大小和传输速度的差异。
  6. 建立逻辑设备名到物理设备名的银蛇,根据设备类型选择调用相应的驱动程序。我们都知道一台电脑可以会各种各样的io设备,所以设备独立性软件需要通过"逻辑设备表(LUT)“确定逻辑设备对应的物理设备,从而找到对应的设备驱动程序,从而确保正确使用这个io设备,这里需要补充的是操作系统管理"逻辑设备表(LUT)“的方式可能有两种,针对单用户,整个系统可能就只有一张"逻辑设备表(LUT)”。而多用户为了保证不同用户使用的逻辑设备名可以重复,可能会使用二级目录来为用户建立"逻辑设备表(LUT)”,然后将"逻辑设备表(LUT)"存放在用户管理进程的pcb中。

操作系统-io软件层次结构_第1张图片

设备驱动程序

由于不同的io设备,io控制器内部的结构可能不一致,以及相关状态标志位等表示方式都不同。
所以设备驱动程序主要负责对硬件设备的具体工具,将上层需要的命令转为设备可以听懂的操作指令从而完成一次完美的io操作。这也就是为什么我们每次安装不同的鼠标或者键盘等,系统都会提示安装驱动中。
需要补充的是,设备驱动程序常常以独立进程的方式存在。

中断处理程序

当io任务完成时,中断处理程序会从设备中读取一个数据经过cpu在存到内存缓冲区中,从而完成一次输入。然后对cpu发出一个中断信号,让cpu进行下一步处理。
操作系统-io软件层次结构_第2张图片自上而下的工作流程如下

操作系统-io软件层次结构_第3张图片

硬件

这层就是我们日常所见到的硬件设备层了,不多赘述,所以通过上文的分析我们就可以得到下面一张io软件层次的工作图。

操作系统-io软件层次结构_第4张图片

你可能感兴趣的:(操作系统与计算机组成原理,操作系统,数据结构,链表,网络,安全)