首页 > 编程语言 >应用程序IO接口

应用程序IO接口

时间:2024-10-23 11:15:00浏览次数:5  
标签:字符 映射 接口 内存 IO 磁盘 应用程序 设备

img

img

img

img

字符设备接口

字符设备是指数据的存取和传输是以字符为单位的设备,如键盘、打印机等。基本特征是传输速率较低、不可寻址,并且在输入/输出时通常采用中断驱动方式。

  • get 和 put 操作。由于字符设备不可寻址,只能采取顺序存取方式,通常为字符设备建立一个字符缓冲区,用户程序通过 get 操作从缓冲区获取字符,通过 put 操作将字符输出到缓冲区。
  • in-control 指令。字符设备类型繁多,差异甚大,因此在接口中提供一种通用的 in-control 指令来处理它们(包含了许多参数,每个参数表示一个与具体设备相关的特定功能)。
  • 字符设备都属于独占设备,为此接口中还需要提供打开和关闭操作,以实现互斥共享。

块设备接口

块设备是指数据的存取和传输是以数据块为单位的设备*,典型的块设备是磁盘。基本特征是传输速率较高、可寻址。磁盘设备的 I/O 常采用 DMA 方式。

  • 隐藏了磁盘的二维结构。在二维结构中,每个扇区的地址需要用磁道号和扇区号来表示。块设备接口将磁盘的所有扇区从0到n-1依次编号,这样,就将二维结构变为一种线性序列。
  • 将抽象命令映射为低层操作。块设备接口支持上层发来的对文件或设备的打开、读、写和关闭等抽象命令,该接口将上述命令映射为设备能识别的较低层的具体操作。
  • 内存映射接口通过内存的字节数组来访问磁盘,而不提供读/写磁盘操作。映射文件到内存的系统调用返回包含文件副本的一个虚拟内存地址。只在需要访问内存映像时,才由虚拟存储器实际调页。内存映射文件的访问如同内存读/写一样简单,极大地方便了程序员。

网络设备接口

现代操作系统都提供面向网络的功能,因此还需要提供相应的网络软件和网络通信接口,使计算机能够通过网络与网络上的其他计算机进行通信或上网浏览。
许多操作系统提供的网络 I/O 接口为网络套接字接口,套接字接口的系统调用使应用程序创建的本地套接字连接到远程应用程序创建的套接字,通过此连接发送和接收数据。

阻塞I/O和非阻塞I/O

img

设备驱动程序接口

img

img

标签:字符,映射,接口,内存,IO,磁盘,应用程序,设备
From: https://www.cnblogs.com/AH20/p/18495949

相关文章

  • STAR: A Simple Training-free Approach for Recommendations using Large Language M
    目录概符号说明STARRetrievalRanking最后的结果LeeD.,KraftA.,JinL.,MehtaN.,XuT.,HongL.,ChiE.H.andYiX.STAR:Asimpletraining-freeapproachforrecommendationsusinglargelanguagemodels.2024.概本文提出了一种融合语义/协同/时序信息的方法,......
  • JavaSE——IO流5:高级流(序列化与反序列化流/对象操作流)
    目录一、序列化流/对象操作输出流——ObjectOutputStream二、反序列化流/对象操作输入流——ObjecInputStream三、序列化流和反序列化流使用细节1.Serializable接口2.序列化后的文件不可修改3.serialVersionUID4.transient修饰的不能被序列化四、用对象流读写多个对象......
  • 迁移线程migration
    每个处理器有一个迁移线程,线程名称是“migration/<cpu_id>”,属于停机调度类,可以抢占所有其他进程,其他进程不可以抢占它。迁移线程有两个作用。(1)调度器发出迁移请求,迁移线程处理迁移请求,把进程迁移到目标处理器。(2)执行主动负载均衡。如图所示,每个处理器有一个停机工作管理器,成员......
  • Django+MySQL接口开发完全指南
    前言本文将详细介绍如何使用Django结合MySQL数据库开发RESTfulAPI接口。我们将从环境搭建开始,一步步实现一个完整的接口项目。环境准备首先需要安装以下组件:Python3.8+Django4.2MySQL8.0mysqlclientdjangorestframework安装命令#创建虚拟环境python-mvenvvenvs......
  • Windows下给Visual Studio添加OpenSSL
    一、安装OpenSSL1.下载OpenSSLWin32/Win64OpenSSLInstallerforWindows-ShiningLightProductions可以下载已经编译好的包含lib和include文件的安装包有Win32和Win64可选,这里的位数指的是你使用OpenSSL开发出来的软件的位数版本,而不是你计算机的位数。注意,不要下载......
  • 前端vue-接口的调用和特殊组件的封装
                 ......
  • NullPointerException—配置属性为null
    1.问题描述空指针异常,获取属性配置类AliOssProperties中的endpoint属性时,为空。配置文件中正确配置了相关的属性,并且AliOssProperties上加了@ConfigurationProperties,启动类上通过@EnableConfigurationProperties(AliOssProperties.class)启用了配置属性支持。Errorstarti......
  • Anticipation prediction
    PaperTitleAuthorsSourceYearCitationsDOIAbstractSummaryAnticipatingObjectStateChangesVictoriaManousaki+5arXiv.org20240DOIThispaperproposesamethodforanticipatingobjectstatechangesinimagesandvideosbyintegratingvisuala......
  • Gradio(二):利用纯python代码创建Web应用最简单的包
    接上文“Gradio:利用纯python代码创建Web应用最简单的包”本文进一步介绍Gradio包的使用。1、多个输入与多个输出当需要多个输入和多个输出时importgradioasgrdefgreet(name,is_morning,temperature):salutation="Goodmorning"ifis_morningelse"Goodeve......
  • 基于FFT + CNN - BiGRU-Attention 时域、频域特征注意力融合的电能质量扰动识别模型
    往期精彩内容:Python-电能质量扰动信号数据介绍与分类-CSDN博客Python电能质量扰动信号分类(一)基于LSTM模型的一维信号分类-CSDN博客Python电能质量扰动信号分类(二)基于CNN模型的一维信号分类-CSDN博客Python电能质量扰动信号分类(三)基于Transformer的一维信号分类模型-......