文档锁定

文档锁定是一种在特定时间只允许一个用户或进程拥有对特定计算机文档访问权限的机制。[1]计算机系统实现该特性以避免竞争读写。以下是竞争写的一个例子:

  1. 进程A从一个包含顾客账户信息(包括其账户结余和电话号码)的文档中读取一条记录。
  2. 进程B从同一个文档中读取同一条记录并有一份自己的拷贝。
  3. 进程A在它的那份记录中修改账户结余并将记录写回文档。
  4. 进程B自己的记录中仍然包含原有的账户结余数据,它在自己的记录中也修改了它并写回文档。
  5. 进程B的写回操作导致进程A的更改丢失。

绝大多数操作系统支持记录锁定的概念,也就是任何文档中单个记录可以被锁定,从而增加并发更新进程的数量。数据库维护需要锁定文档,从而它有权访问数据库的整个物理文档。虽然这确实阻止其他进程访问此文档,但减少每个锁的经常性开销比整体锁定文档中很大数量的区域更高效。

文档锁定的不合理用法可能产生差的性能或死锁。文档锁定可能也指用户使用如Windows安全、NTFS访问权限或第三方的文档锁定软件提供文档额外安全性的过程。

Microsoft Windows

Microsoft Windows使用三种不同的机制管理对共享文档的访问:

  1. 应用进程对整个文档的共享访问方式,包括读、写、删除。[2]
  2. 对单个文档的字节范围锁定[3]
  3. Windows文档系统不允许执行已经按照写或删除方式打开的文档

Windows继承了MS-DOS 3.3引入的文档共享访问控制。如果打开文档时不指定共享访问方式,缺省禁止其他进程按照读、写、删除来打开该文档(但读取文档属性是允许的)。

操作系统默认锁定正在运行的可执行进程,阻止其他进程修改或删除它。但允许改名、复制。


参考文献

  1. . 2013-08-29 [2016-09-29]. (原始内容存档于2019-12-07) (中文). 这是文档的一种安全的更新方式,当一个进程正在对文档进行写操作时,文档就会进入一种暂时状态,在这个状态下,如果另一个进程尝试读这个文档,它就会自动停下来等待这个状态结束
  2. windows-sdk-content. . docs.microsoft.com. [2018-11-07]. (原始内容存档于2019-04-19) (美国英语).
  3. windows-sdk-content. . docs.microsoft.com. [2018-11-07]. (原始内容存档于2019-06-21) (美国英语).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.