从缓冲机构、执行效率和运行的状态的角度简述UNIX系统流文件的读写和系统调用的文件读写之间的区别与关系。

admin2016-05-14  36

问题 从缓冲机构、执行效率和运行的状态的角度简述UNIX系统流文件的读写和系统调用的文件读写之间的区别与关系。

选项

答案标准I/O库主要通过用户态空间的自动缓冲机构向程序员提供效率高、功能强和可移植的文件访问或字符串处理功能,在用户态空间的缓冲区满了或空了时,通过系统调用自动刷新或填充缓冲区。 系统调用的文件读写是通过核心态的缓冲控制块和缓冲区进行。 循环执行读写系统调用时,如每次向文件读写较少字节,需要很多次系统调用,花费很多从用户态转换到核心态和从核心态转回到用户态的开销,而通过标准I/O库循环执行读写操作时,需要的是很多次函数调用。在实际系统中,一次函数调用所费的时间比甩户态与核心态之间的切换所费的时间少得多,故当不是以整块的方法输入或输出数据时,使用流文件操作比使用系统调用效率高很多。 如每次读写整块文件数据时,循环执行读系统调用与循环执行标I/O比较起来,两者的系统调用次数是一样的,使用标准I/O库还多了一次函数调用,故略多耗时些。 两种读写方法实际进行的物理读写盘的次数是一样的。 文件的系统调用运行在核心态,文件的标准I/O库运行在用户态。

解析
转载请注明原文地址:https://kaotiyun.com/show/4iNx777K
本试题收录于: 操作系统题库理工类分类
0

随机试题
最新回复(0)