fbpx
维基百科

寫入時複製

寫入時複製(英語:Copy-on-write,简称COW)是一种计算机程式設計領域的优化策略。其核心思想是,如果有多個呼叫者(callers)同時请求相同資源(如内存或磁盘上的数据存储),他們會共同取得相同的指標指向相同的資源,直到某個呼叫者试图修改資源的内容時,系統才會真正複製一份专用副本(private copy)給該呼叫者,而其他呼叫者所见到的最初的资源仍然保持不变。這過程對其他的呼叫者都是透明的。此作法主要的優點是如果呼叫者沒有修改該資源,就不會有副本(private copy)被建立,因此多个呼叫者只是读取操作时可以共享同一份资源。

应用

虚拟内存管理中的写时复制

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

数据存储中的写时复制

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

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

软件应用中的写时复制

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

参考文献

  1. ^ Concurrency Modifications to Basic String. Open Standards. [2015-02-13]. (原始内容于2021-02-24). 

寫入時複製, 英語, copy, write, 简称cow, 是一种计算机程式設計領域的优化策略, 其核心思想是, 如果有多個呼叫者, callers, 同時请求相同資源, 如内存或磁盘上的数据存储, 他們會共同取得相同的指標指向相同的資源, 直到某個呼叫者试图修改資源的内容時, 系統才會真正複製一份专用副本, private, copy, 給該呼叫者, 而其他呼叫者所见到的最初的资源仍然保持不变, 這過程對其他的呼叫者都是透明, 此作法主要的優點是如果呼叫者沒有修改該資源, 就不會有副本, private, co. 寫入時複製 英語 Copy on write 简称COW 是一种计算机程式設計領域的优化策略 其核心思想是 如果有多個呼叫者 callers 同時请求相同資源 如内存或磁盘上的数据存储 他們會共同取得相同的指標指向相同的資源 直到某個呼叫者试图修改資源的内容時 系統才會真正複製一份专用副本 private copy 給該呼叫者 而其他呼叫者所见到的最初的资源仍然保持不变 這過程對其他的呼叫者都是透明 的 此作法主要的優點是如果呼叫者沒有修改該資源 就不會有副本 private copy 被建立 因此多个呼叫者只是读取操作时可以共享同一份资源 目录 1 应用 1 1 虚拟内存管理中的写时复制 1 2 数据存储中的写时复制 1 3 软件应用中的写时复制 2 参考文献应用 编辑虚拟内存管理中的写时复制 编辑 一般把这种被共享访问的页面标记为只读 当一个task试图向内存中写入数据时 内存管理单元 MMU 抛出一个异常 内核处理该异常时为该task分配一份物理内存并复制数据到此内存 重新向MMU发出执行该task的写操作 数据存储中的写时复制 编辑 Linux等的文件管理系统使用了写时复制策略 数据库服务器也一般采用了写时复制策略 为用户提供一份snapshot 软件应用中的写时复制 编辑 C 标准程序库中的std string类 在C 98 C 03标准中是允许写时复制策略 但在C 11标准中为了提高并行性取消了这一策略 1 GCC从版本5开始 std string不再采用COW策略 参考文献 编辑 Concurrency Modifications to Basic String Open Standards 2015 02 13 原始内容存档于2021 02 24 取自 https zh wikipedia org w index php title 寫入時複製 amp oldid 67609293, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。