写入时复制

✍ dations ◷ 2025-08-17 04:25:57 #计算机编程

写入时复制(英语: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策略。

相关

  • 视黄醇结合蛋白质视黄醇结合蛋白质(英语:Retinol-binding protein,简称为RBP,又称为维甲醇结合蛋白质)是一具有多种功能的蛋白质家族,是结合了视黄醇的载体蛋白。对视黄醇结合蛋白质的评估在关于健
  • 蛋,是卵生的羊膜动物所生带有硬壳的卵,受精之后可孵出小动物,为人类食用已有几千年历史。蛋由蛋壳保护,而当中的蛋白和蛋黄被各种薄膜包裹。蛋黄和全蛋存储大量的蛋白质、胆碱和
  • 捷诺维西格列汀(英语:Sitagliptin),商品名为佳糖维,是一种口服降糖药(抗糖尿病药),属于二肽基肽酶-4(DPP-4)抑制剂,由默克公司研发和销售。西格列汀可以单独应用也可以与其他口服降糖药组成复
  • 巴尔的摩-华盛顿都会区巴尔的摩-华盛顿都市区(Baltimore–Washington metropolitan area)是一个联合统计区(部分相邻的大都市统计区被合称为联合统计区),它覆盖了巴尔的摩和华盛顿的都市区。See List o
  • 冈萨雷斯诉卡哈特案冈萨雷斯诉卡哈特案(Gonzales v. Carhart,550 U.S.(2007)),是近年美国联邦最高法院对于妇女堕胎问题的重要案例,最高法院推翻下级法院见解,认为2003年经由美国总统小布什签署的联
  • 章利片章利片(根据《汉语官话方言研究》;《中国语言地图集》称章桓小片,归沧惠片)是冀鲁官话的一个分支,分布在山东省北部。该小片分两部分,中间有冀鲁官话沧惠片阳寿小片相隔。
  • 陈骏陈骏(1954年11月-),江苏扬州人,中国地质学家,南京大学教授、原校长。1973年参加工作,1980年毕业于南京大学地质系地球化学专业,1984年加入中国共产党,1985年获矿床学博士学位并留校任
  • 韦素园韦素园(1902年6月18日-1932年8月1日),乳名文魁,原名崇文,又名漱园,安徽霍丘人,中国作家、翻译家。韦丛芜之兄。光绪二十八年(1902年)六月十八日出生在霍邱县叶家集北大街一个小商家庭
  • Mac ProMac Pro是苹果公司推出的高端台式机系列产品,搭载英特尔(Intel)Xeon CPU以及PCI Express总线架构。苹果电脑公司在2006年8月7日的全球研发者大会(WWDC)上发表了这台电脑。它是接
  • 澳洲连接航空澳洲连接航空(英语:QantasLink)是澳洲航空附属的一家澳大利亚地区性航空公司,是寰宇一家的成员航空公司。澳洲连接航空是区域快线航空和维珍澳洲地区航空的主要竞争对手。截止20