I/O设备种类繁多,特性各异。终端、打印机、鼠标、硬盘驱动器、软盘驱动器、CD-ROM等,各有不同的物理特性,各自实现不同的I/O功能。
1.设备分类
可以从不同角度对设备进行分类。
(1)按照工作特性可把设备分成存储设备和I/O设备两大类。
①存储设备,也称为外存或后备存储器、辅助存储器。它们主要是计算机用来存储信息的设备。虽然它们的存储速度比内存慢,但容量比内存大得多,价格相对也便宜。存储设备通常包括磁盘(硬盘和软盘)、磁带等,提供了基本的联机信息(程序和数据)的存储。大多数程序——像编译程序、汇编程序、排序例程、编辑程序、格式化程序等,都是存放在磁盘上的,在使用时才调入内存。在这类设备上存储的信息,在物理上往往是按字符块组织的,因此,这类设备也叫作面向块的设备,或简称块设备。
②I/O设备:输入设备是计算机用来接收来自外部世界信息的设备,例如,终端键盘输入、卡片输入机、纸带输入机等;输出设备是将计算机加工处理好的信息送向外部世界的设备,例如,终端屏幕显示或打印输出部分、行式打印机、卡片输出机等。由于I/O设备上的信息往往是以字符为单位组织的,所以这种设备也称为面向字符的设备,或简称字符设备。
但有个别设备并不符合这两类设备的特性,如时钟,它定时产生中断,但它既不是存储设备,也不能产生或接收字符流。
(2)根据设备的使用性质可将设备分成独占设备、共享设备和虚拟设备三种。
①独占设备。独占设备是不能同时共用的设备,即在一段时间内,该设备只允许一个进程独占,如行式打印机、读卡机、磁带机等。
②共享设备。共享设备是可由若干进程同时共用的设备。这类设备具有高速、容量大、可直接存取等特点。例如,有一台磁盘机,用户甲读自己的文件,用户乙写文件,用户丙访问数据库文件,这些文件都存放在这个磁盘上,各用户进程共用一个磁盘设备。
③虚拟设备。虚拟设备是利用某种技术把独占设备改造成可由多个进程共用的设备,这种设备并非物理上变成了共享设备,而是用户使用它们时“感觉”它们是共享设备,而不像独占设备。虚拟设备属于可共享设备,因而可把它分配给多个进程使用。(www.xing528.com)
(3)按照数据传输的方式可将设备分为串行设备和并行设备。
①串行设备。串行设备是指数据按二进制位一位一位地顺序传送的设备,如键盘、鼠标、USB设备、外置Modem以及老式摄像头和写字板等设备。相应的接口称作串行接口,简称串口,也就是COM接口,是采用串行通信协议的扩展接口。现在的PC机一般至少有两个串行口,即COM1和COM2。
②并行设备。并行设备是指8位数据同时通过并行线进行传送的设备,如打印机、扫描仪、磁盘驱动器、光驱、磁带机等。相应的接口称作并行接口,简称并口。
还可以从其他角度出发对设备进行分类。例如:按传输速率的快慢,可分为低速设备(键盘、鼠标等)、中速设备(行式打印机、激光打印机等)和高速设备(磁盘机、磁带机等);按设备的从属关系可分为系统设备和用户设备。
2.设备标识
一个计算机系统中可以配置多种类型的设备,并且同一类型的设备又可以有多台,例如,有10台终端,3台打印机。怎样标识各台设备呢?也就是说,如何给每台设备命名呢?各系统中对设备命名的方法虽不相同,但基本思想类似,就是系统按某种原则为每台设备分配一个唯一的号码,用作硬件(设备控制器)区分和识别设备的代号,称作设备的绝对号(或绝对地址)。它如同内存中每一个单元都有一个地址那样。
在多道程序环境中,系统中的设备被多个用户共享,用户并不知道系统中哪台设备忙、哪台设备闲,哪台可用、哪台不可用,只能由操作系统根据当时设备的具体情况决定哪个用户用哪台设备。这样,用户在编写程序时就不能通过设备绝对号来使用设备,他只需向系统说明他要使用的设备类型,例如,是打印机,还是显示器。为此,操作系统为每类设备规定了一个编号,称为设备的类型号。例如,在UNIX/Linux系统中,类型号称为主设备号。该系统中所有块设备的设备名由两部分构成:主设备号和次设备号,前者表示设备类型,后者表示同类设备中的相对序号。例如,rfd0和rfd1分别表示第一个和第二个软盘驱动器。
用户程序往往会同时使用几台同类设备,并且对每一台设备都可能多次使用。这样,用户程序必须向操作系统说明当时他要用的设备是哪类设备的第几台。这里的“第几台”是设备相对号,是用户自己规定的所用同类设备中的第几台,应与系统为每台设备规定的绝对号相区别。
用户程序中提出使用设备的申请时,使用系统规定的设备类型号以及用户自己规定的设备相对号,由操作系统进行“地址转换”,变成系统中的设备绝对号。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。