1.管道文件
管道文件读写主要面临问题:
一次读写完毕后,下一次可能需要等好久。
解决方法:
文件系统将这个请求挂起,不发送应答给进程,导致进程阻塞。
在能够执行完成的时候,重新唤醒进程。
2.终端设备文件
2.1 终端设备的i节点(inode)中有两个数字:1)主设备号
主设备号给出了设备类型: ram,软盘,硬盘,终端。
2)次设备号
此设备号指明了所使用的设备号,如终端2,驱动器1,
有时候还会包含一些设备信息以便驱动程序处理。
2.2 读写设备文件步骤:
1)从文件的i节点中提取主、次设备号;
2)去访问文件系统表,找到相应的设备驱动程序的进程号;
3)若驱动程序能立即执行操作,则执行,若不能则把消息记录在它自己的内部表,
文件系统此时将调用进程挂起;
4)驱动程序获得数据后,将数据传送到用户进程的缓冲区,
文件系统发送应答,报告结果给用户进程,并将其解除阻塞。