写入时复制

✍ dations ◷ 2025-07-22 02:45:34 #计算机编程

写入时复制(英语:Copy-on-write,简称COW)是一种计算机程序设计领域的优化策略。其核心思想是,如果有多个调用者(callers)同时请求相同资源(如内存或磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源,直到某个调用者试图修改资源的内容时,系统才会真正复制一份专用副本(private copy)给该调用者,而其他调用者所见到的最初的资源仍然保持不变。这过程对其他的调用者都是透明的(transparently)。此作法主要的优点是如果调用者没有修改该资源,就不会有副本(private copy)被创建,因此多个调用者只是读取操作时可以共享同一份资源。

一般把这种被共享访问的页面标记为只读。当一个task试图向内存中写入数据时,内存管理单元(MMU)抛出一个异常,内核处理该异常时为该task分配一份物理内存并复制数据到此内存,重新向MMU发出执行该task的写操作。

Linux等的文件管理系统使用了写时复制策略。

数据库服务器也一般采用了写时复制策略,为用户提供一份snapshot。

C++标准程序库中的std::string类,在C++98/C++03标准中是允许写时复制策略。但在C++11标准中为了提高并行性取消了这一策略。 GCC从版本5开始,std::string不再采用COW策略。

相关

  • 万国宫万国宫(法语:Palais des Nations;英语:Palace of Nations),位于瑞士日内瓦,建于1929年并于1938年设定为国际联盟总部。虽然瑞士直到2002年才加入联合国,但从1950年代开始,万国宫就作
  • 行为能力行为能力(capacity)为一种法律上的概念,其与“权利能力”及“意思能力”不同,乃指为法律行为之资格,亦即个人以独自的意思表示,使其行为发生法律上效果的资格而言。民法中基于私法
  • 心脏杂音心杂音是血流通过心脏瓣膜时产生的心音,可以用听诊器听见。心杂音有两种类型。功能性杂音(生理杂音)主要由心脏以外的生理构造造成;病理性杂音则是由心脏构造异常所引起。功能性
  • 旅行旅行指以步行或交通工具进行的“长距离”位移,亦指为观赏不同景色及了解异与自身文化的差别而到不同城市、地区、国度或到遥远陌生地区参观、游玩、体验的文化概念。与旅游最
  • 鼻衄鼻衄即鼻出血,是多种疾病的常见症状,本节只讨论内因引起的鼻衄;出血严重者又称鼻洪。鼻衄甚者,口鼻皆出血,称为鼻大衄、脑衄,若鼻衄经久不愈,称为鼻久衄。导致鼻衄的原因很多,可发生
  • 幻龙目幻龙目(Nothosauroidea)又名孽子龙目,是群三叠纪的海生爬行动物,属于鳍龙超目,可能类似现代的海豹,在水中捕抓食物而回到岸边的岩石与海滩。它们的身长平均约3米,有长的身体与尾巴
  • 利·朱利叶斯利·朱利叶斯(英语:Leigh Julius,1985年3月25日-)是南非男子田径运动员。2005年世界田径锦标赛,Leigh Julius在200米预赛以20.37秒(W:+4.3)排名该组第六,顺利晋级到四分之一决赛。
  • 瓦策峰坐标:46°59′22″N 10°47′44″E / 46.98944°N 10.79556°E / 46.98944; 10.79556瓦策峰(德语:Watzespitze),是奥地利的山峰,位于该国西部,由蒂罗尔州负责管辖,属于奥兹塔尔阿尔
  • 杨景锺杨景锺(音译;韩语:양경종,1920年3月3日 – 1992年4月7日),朝鲜裔军人。第二次世界大战中,他曾经服役于大日本帝国陆军、苏联红军以及德意志国防军。然而,其事迹是否真实还存在着一些
  • 杰克逊维尔美洲虎国家橄榄球联盟(1995年至今)联会冠军(0)分区冠军(3)杰克逊维尔美洲虎(英语:Jacksonville Jaguars)是一支职业美式橄榄球球队位于佛罗里达州的杰克逊维尔。他们是美国美式橄榄球联合会