五、输入输出管理(二)I/O管理概述

news2024/11/16 16:01:48

目录

2.1 I/O 软件层次结构

2.1.1用户层 I/O 软件

2.1.2设备独立软件

2.1.3设备驱动程序

2.2应用程序与I/O接口

2.2.1字符设备接口

2.2.2块设备接口

2.2.3网络设备接口

2.2.4阻塞/非阻塞 I/O


I/O系统概述I/O接口、I/O控制的四种方式(程序直接控制方式程序中断方式DMA方式通道方式)、中断处理程序在计组最后一章已经介绍过了。

在操作系统这里只补充I/O软件层次结构应用程序与I/O接口。

2.1 I/O 软件层次结构

2.1.1用户层 I/O 软件

实现了与用户交互的接口

向上为用户提供与I/O操作相关的库函数对设备进行操作。

向下通过一组系统调用来获取操作系统服务。

2.1.2设备独立软件

即设备无关性软件。为实现设备独立性,引入了逻辑设备和物理设备的概念,从而实现I/O重定向,即I/O操作的设备可以更换,而不必改变应用程序。

  • 向上为用户层软件提供系统调用接口
  • 进行设备保护(即特殊文件保护) 
  • 差错处理
  • 设备的分配与回收(逻辑设备名映射为物理设备名)
  • 数据缓冲区管理

具体细节将在下一小节介绍。

2.1.3设备驱动程序

硬件直接相关,负责具体实现系统对设备发出的操作指令,驱动I/O设备工作的驱动程序。

每类设备配置一个设备驱动程序,它是I/O进程与设备控制器之间的通信程序,常以进程形式存在。

设备驱动程序向上层用户程序提供一组标准接口,设备具体的差别被设备驱动程序所封装

2.2应用程序与I/O接口

2.2.1字符设备接口

数据的存取和传输是以字符为单位的设备。

传输速率较低、不可寻址,并且在输入/输出时通常采用中断驱动程序

字符设备都属于独占设备,需实现互斥共享。

2.2.2块设备接口

数据的存取和传输是以块为单位的设备

传输速率高、可寻址。磁盘设备的I/O常采用DMA方式

2.2.3网络设备接口

提供网络软件和网络通信接口,使计算机能够通过网络与网络上的其他计算机进行通信或上网浏览。

许多操作系统提供的网络I/O接口为网络套接字接口,套接字接口的系统调用使应用程序创建的本地套接字连接到远程应用程序创建的套接字,通过此连接发送和接收数据。

2.2.4阻塞/非阻塞 I/O

阻塞I/O:用户进程调用I/O操作时,该进程被阻塞,需要等待I/O操作完成,进程才被唤醒继续执行。(程序中断方式)

非阻塞I/O:用户进程调用I/O操作时,不阻塞该进程,该I/O操作返回一个错误值,进程需要通过轮询方式来查询I/O操作是否完成。(程序轮询方式)

大多数操作系统提供的I/O接口都是采用阻塞I/O。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/70921.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Trimble Tekla Structures支持14种不同的语言

Trimble Tekla Structures支持14种不同的语言 Tekla Structures被称为前Xsteel,是Trimble Software的产品,Trimble软件是一种强大的BIM机器。该软件为用户提供的环境,用户可以绘制接下来的三个模型并从中提取接下来的两个模型。该软件制作的模…

linux下pycharm运行错误解决办法

错误1: Inspection info:this inspection detects names that should resolve but dont.due to dynamic dispatch 重新设置虚拟环境即可,前面几篇文章有如何配置虚拟环境的教程 错误2: 有时候即使我们配好环境后在代码中也会出…

【玩转c++】c++内存管理 new/delete

本期主题:c/c内存管理。 博客主页:小峰同学分享小编的在Linux中学习到的知识和遇到的问题小编的能力有限,出现错误希望大家不吝赐身为程序员 ,不会有人没有女朋友吧。 目录 🍁1. 了解c/c内存区域划分 🍁2.…

hbuilderx升级3.6.5版本后运行到手机端同步资源失败,未得到同步资源的授权,请停止运行后重新运行,并注意手机上的授权提示

问题1: hbuilderx升级3.6.5版本后运行到手机端同步资源失败,未得到同步资源的授权,请停止运行后重新运行,并注意手机上的授权提示。 解决问题指路。 https://uniapp.dcloud.net.cn/tutorial/run/run-app-faq.html#node https://un…

在线考试系统毕业设计,线上考试系统设计与实现,毕业设计论文源码开题报告需求分析

项目背景和意义 目的:本课题主要目标是设计并能够实现一个在线考试的java系统,整体使用了基于浏览器的B/S架构,技术上使用了基于java的springboot框架;使用浏览器,通过后台添加考试题目,学生通过浏览器登录…

一文解决网络系统调用接口到内核的请求

网络套接字入口函数 //所有的网络套接字系统调用函数(socket bind listen connect )都使用一个共同的入口函数:sys_socketcall /* 第一个参数call表示被调用的应用层接口函数,第二个参数是一个指针,指向具体被调用函数…

【综合案例】原生JS实现购物商城

目录一、案例说明1、目录结构2、conf文件夹3、用户名密码的正则和ajax的封装二、登录页的实现1、案例效果2、登录页逻辑3、接口文档4、代码实现5、返回信息显示三、首页的实现1、案例效果2、首页的逻辑3、接口文档4、代码实现5、返回信息显示四、个人中心1、案例效果2、个人页的…

springboot车辆管理系统的设计与实现毕业设计源码031034

车辆管理系统的设计与实现 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。在现实运用中&…

Runtime源码解析-alloc

Runtime源码解析-alloc 前言alloc 通过汇编查看调用流程1. objc_alloc方法2. callAlloc方法 首次进入非首次进入LLVM优化 3. _objc_rootAllocWithZone方法4. _class_createInstanceFromZone方法 instanceSize:计算内存大小 fastInstanceSizealignedInstanceSize mal…

TS201的DMA通信基本原理以及IIR的加深理解(含源代码)

实验目的: 了解DMA通信基本原理,掌握内存与SDRAM间一维DMA通信方式、二维DMA通信方式以及相关控制方法。学习数字滤波器设计方法,掌握其调试步骤,使学生加深对IIR的理解,进一步提高对数字信号处理理论的认识。 实验任…

Java+SSM美妆商城全套电商购物(含源码+论文+答辩PPT等)

项目功能简介: 本项目含代码详细讲解视频,手把手带同学们敲代码从0到1完成项目 该项目采用技术Springmvc、Spring、MyBatis、Tomcat服务器、MySQL数据库 项目含有源码、配套开发软件、软件安装教程、项目发布教程以及代码讲解教程 项目功能介绍: 系统管理…

[附源码]计算机毕业设计酒店物联网平台系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

国标码的发展历史以及编码方式

文章目录引言GB2312GBKunicode 和 ISO10646ISO10646的编码结构结论参考文献引言 由于物理实现比较容易等原因计算机等数字系统内部使用二进制字符的记录、存贮、传递和交换通过编码来实现。字符的机内编码其实就是该字符在字符图库中的序号。拼音文字一般仅有几十个字母组成。而…

【传输层】TCP、三次握手、四次挥手、可靠传输、TCP拥塞控制、慢开始、拥塞避免、快重传、快恢复

文章目录TCP------打电话----可靠有序、不丢不重复--------提供全双工-------------发送接收缓存----------面向字节流--------搬砖一样加个头运走TCP首部格式-----源端口目的端口一共4B-------序号字段(报文第一个字节的序号)--------确认号&#xff08…

手机软件系统测试用例设计大全

一、 等价类分析法 二、 边界值分析 三、 错误猜测法 四、 判定表法 五、 流程分析方法 六、 正交试验设计法 七、 状态迁移法 等价类分析法等价类划分方法针对手机状态大致可以归几个大类: 按键类(等价法):有效输入和无效…

python在Keras中使用LSTM解决序列问题

时间序列预测是指我们必须根据时间相关的输入来预测结果的问题类型。时间序列数据的典型示例是股市数据,其中股价随时间变化。 最近我们被客户要求撰写关于LSTM的研究报告,包括一些图形和统计输出。 递归神经网络(RNN)已被证明可…

D-026 LVDS硬件电路设计

LVDS硬件接口电路设计1 简介2 硬件设计实战3 硬件设计要点4 Layout注意事项5 MIPI与LVDS的区别1 简介 LVDS(Low-Voltage Differential Singnaling,低电压差分信号)可以实现点对点或者一点对多点的连接,具有低功耗、低误码率、低串…

蓝桥杯比赛 NOC竞赛C++项目,选择题真题和模拟题汇总答案解析

题目来源:第10届蓝桥杯青少年组C选拔赛 1、下面哪个密码最安全 D A. 111111 B. 123456 C. qwerty D. Z2a8Q1 2、如果今天是星期六,再过60天是星期几?A A. 星期三 B. 星期四 C. 星期五 D. 星期六 3、90到100之间有几个素数&#xff1f…

HTML学生作业网页 传统端午节节日 学生节日网页设计作业源码(HTML+CSS+JS)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

Android Studio的ADV无法启动解决办法【IDEA 的ADV无法启动解决办法】

Android Studio的ADV无法启动解决办法【IDEA 的ADV无法启动解决办法】 开发者指南:https://developer.android.google.cn/guide 一、BIOS开启Intel VT-x 这一步如果在创建Android项目时,可以启动的话,证明已经开启了,可以忽略 1. 开始菜单&am…