输入/输出系统

本文详细介绍了操作系统中的输入/输出系统,包括硬件层面的I/O设备和控制器,用户层I/O软件的系统调用和库函数,设备无关性软件的作用及功能,设备驱动程序的目的和功能,以及软件和硬件的交界面——中断机构和中断处理程序。通过对输入/输出系统的理解,可以更好地掌握设备管理和数据传输的过程。
摘要由CSDN通过智能技术生成

一、硬件层面

   1.1 I/O设备

  1.2 I/O控制器

操作系统不与设备打交道,只通过设备控制器来操作设备;

二、用户层I/O软件

  2.1 系统调用:

  2.2 库函数:

三、设备无关性软件

  3.1 目的:

  3.2 作用:

   3.2.1 对独立设备的分配和回收

  3.2.2 将逻辑设备名映射为物理设备名 

   3.2.3 缓冲管理

   3.2.4  差错控制

   3.2.5 独立于设备的逻辑数据块

四、设备驱动程序

  4.1 设备驱动程序的目的:

  4.2 设备驱动程序的功能:

    4.2.1 接受与设备无关软件发来的命令和参数

    4.2.2 检查用户I/O请求的合法性

    4.2.3 发出I/O命令

    4.2.4 及时响应有设备控制器发来的中断请求

五、软件和硬件的交界面(中断机构和中断处理程序)

读、写磁盘的步骤:

总结




前言

I/O系统的功能就是:隐藏具体细节,并且提高对IO设备的利用率,确保对设备的安全、共享使用,并提供给用户程序简单接口进行使用;


一、硬件层面

   1.1 I/O设备

        IO设备大致分为两类:块设备和字符设备;

        功能:完成具体的操作;(对磁盘的读写操作)

 

  1.2 I/O控制器

        接受CPU发来的命令,去控制I/O设备,为了将处理机能够从繁杂的设备控制事务中解脱出来;

设备控制器的基本功能:

  1. 接受和识别命令
  2. 数据交换
  3. 标识和报告设备的状态
  4. 地址识别
  5. 数据缓冲区
  6. 差错控制

操作系统不与设备打交道,只通过设备控制器来操作设备;

二、用户层I/O软件

  2.1 系统调用:

    为使进程能够有条不紊地使用I/O设备,且保护设备的安全性,操作系统提供系统调用完成相应操作;

 write(int fd, const void *buf, size_t count);

  2.2 库函数:

    在C语言中提供很多库函数,对具体系统调用进行屏蔽,提供更为简单的库函数供用户使用;

fwrite(const void *buffer, size_t size, size_t item_num, FILE *pf),

工作步骤:

在用户层,用户程序通过调用C语言提供的库函数(共享区),传递相应参数等,进入系统调用,交由设备无关性软件处理;

用户层IO软件和设备无关性软件的接口:系统调用

三、设备无关性软件

  3.1 目的:

    为了方便应用程序使用I/O设备,不局限于使用某个具体的设备,使得编写访问文件的程序与具体设备无关;

  3.2 作用:

  主要涉及两个方面:

(1)向用户层提供统一接口:系统调用

(2)执行所有设备的共有操作: 

   3.2.1 对独立设备的分配和回收

  在考虑设备的固有属性、分配算法、安全性后

(1)应用程序使用逻辑设备名请求I/O设备,系统根据设备类别系统设备表(SDT)中依次找出第一个可供使用的设备(DCT)

 (2)再到设备控制表DCT中找出与该设备链接的控制器控制表COCT,并查询设备控制器运行状态,如忙则挂在该控制器的等待队列,否则将该控制器分配给进程;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值