在《深入理解Linux内核》中看到这么一句 不理解
发布网友
发布时间:2022-05-07 20:05
我来回答
共1个回答
热心网友
时间:2023-11-09 03:44
Linux 的设计就是针对多用户的,所以一个文件有可能被多个用户读写。
注意是*读写*。
所以每个文件打开请求都要单独处理。因为有可能这个程序正要写入,另一个程序就把文件删了。这种冲突的解决办法就是每个文件针对每个程序都提供一个单独的对象来处理操作。
Windows 的设计是单用户的,所以他的文件只能有一个程序独占写入功能。
这个好处是磁盘读写部分的系统功能简单,代价就是大规模部署会频繁遇到文件权限独占而影响文件存储系统的效率。
尤其是在数据库操作的时候,主要是数据库程序为了性能有时会自己启动多个自己的线程、进程什么的。当然大型数据库都有自己的解决办法,不会去傻傻的真等文件读写权限独占被释放后再写入。
这个功能印象里是借助磁盘缓冲的技术,来实现每个程序都有自己的一个独立的文件打开对象,系统这个时候就是打开句柄和真实磁盘之间的衔接层,系统的文件处理功能再最终解决多个文件对象如何写入磁盘。
热心网友
时间:2023-11-09 03:43
Linux 的设计就是针对多用户的,所以一个文件有可能被多个用户读写。
注意是*读写*。
所以每个文件打开请求都要单独处理。因为有可能这个程序正要写入,另一个程序就把文件删了。这种冲突的解决办法就是每个文件针对每个程序都提供一个单独的对象来处理操作。
Windows 的设计是单用户的,所以他的文件只能有一个程序独占写入功能。
这个好处是磁盘读写部分的系统功能简单,代价就是大规模部署会频繁遇到文件权限独占而影响文件存储系统的效率。
尤其是在数据库操作的时候,主要是数据库程序为了性能有时会自己启动多个自己的线程、进程什么的。当然大型数据库都有自己的解决办法,不会去傻傻的真等文件读写权限独占被释放后再写入。
这个功能印象里是借助磁盘缓冲的技术,来实现每个程序都有自己的一个独立的文件打开对象,系统这个时候就是打开句柄和真实磁盘之间的衔接层,系统的文件处理功能再最终解决多个文件对象如何写入磁盘。
热心网友
时间:2023-11-09 03:44
Linux 的设计就是针对多用户的,所以一个文件有可能被多个用户读写。
注意是*读写*。
所以每个文件打开请求都要单独处理。因为有可能这个程序正要写入,另一个程序就把文件删了。这种冲突的解决办法就是每个文件针对每个程序都提供一个单独的对象来处理操作。
Windows 的设计是单用户的,所以他的文件只能有一个程序独占写入功能。
这个好处是磁盘读写部分的系统功能简单,代价就是大规模部署会频繁遇到文件权限独占而影响文件存储系统的效率。
尤其是在数据库操作的时候,主要是数据库程序为了性能有时会自己启动多个自己的线程、进程什么的。当然大型数据库都有自己的解决办法,不会去傻傻的真等文件读写权限独占被释放后再写入。
这个功能印象里是借助磁盘缓冲的技术,来实现每个程序都有自己的一个独立的文件打开对象,系统这个时候就是打开句柄和真实磁盘之间的衔接层,系统的文件处理功能再最终解决多个文件对象如何写入磁盘。
热心网友
时间:2023-11-09 03:44
Linux 的设计就是针对多用户的,所以一个文件有可能被多个用户读写。
注意是*读写*。
所以每个文件打开请求都要单独处理。因为有可能这个程序正要写入,另一个程序就把文件删了。这种冲突的解决办法就是每个文件针对每个程序都提供一个单独的对象来处理操作。
Windows 的设计是单用户的,所以他的文件只能有一个程序独占写入功能。
这个好处是磁盘读写部分的系统功能简单,代价就是大规模部署会频繁遇到文件权限独占而影响文件存储系统的效率。
尤其是在数据库操作的时候,主要是数据库程序为了性能有时会自己启动多个自己的线程、进程什么的。当然大型数据库都有自己的解决办法,不会去傻傻的真等文件读写权限独占被释放后再写入。
这个功能印象里是借助磁盘缓冲的技术,来实现每个程序都有自己的一个独立的文件打开对象,系统这个时候就是打开句柄和真实磁盘之间的衔接层,系统的文件处理功能再最终解决多个文件对象如何写入磁盘。