首页 > 试题广场 >

请你说说写时拷贝

[问答题]
为了提高效率,Linux的fork()采用读时共享,写时复制。当子进程只读时不额外复制父进程的资源,当进行写操作时,才将进程的资源进行复制
发表于 2022-09-05 21:56:09 回复(0)
子进程,在读时不额外复制父进程的资源,当进行写操作时,才将父进程的资源进行复制。
发表于 2022-07-05 21:04:37 回复(0)
Linux的fork()函数采用的就是写时拷贝技术,就是说当子进程只有读操作时它只会和父进程共享一个父进程的资源,只有子进程有写的操作时才会将父进程的资源进行拷贝
发表于 2023-06-13 18:59:59 回复(0)
修改的时候才复制,否则共享
发表于 2023-02-27 21:17:19 回复(0)
写时拷贝,也被称为cow。其意思就是字面意思,数据只有在被更改的时候才做一份新的复制,如果没有被更改,则多个对象共享一段内存。如果被更改,在原有的内存的基础上复制一份新的,在这份新的内存上进行更改。此技术一般用于性能优化。例如某些版本的C++ std::string 就使用的这项技术。
编辑于 2024-03-29 18:51:36 回复(0)
这是相对于父进程和子进程来说的,子进程在fork出来之后共享父进程的一些资源而不进行复制,直到子进程需要修改这部分共享资源的时候再复制然后修改,节省资源以及子进程创建代价
发表于 2024-03-21 15:37:43 回复(0)
为了提高效率,linux的fork采用读时共享写时拷贝
编辑于 2024-03-03 13:40:43 回复(0)
为了提高运行效率,fork采用读时共享写时复制的策略,当子进程只读时不额外复制父进程的地址空间,只有在写操作时才会复制
编辑于 2024-02-29 01:21:57 回复(0)
子进程在读操作时,进行与父进程资源共享,当写操作时,资源才进行复制
发表于 2023-10-26 14:36:47 回复(0)
fork()创建子进程时,会复制一份虚拟地址空间,但效率低下。 因此采用拖延战术,读时共享同一个地址空间,写时才会拷贝地址空间
发表于 2023-07-25 16:07:59 回复(0)
写时复制是一种提高效率方式,读时共享将声明该地址空间的位置,写时复制则是在真的需要调用这些地址空间的信息时。再去复制,这样的话就避免了全加载,一遇到信息就全部载入。极大的提高了效率。
发表于 2023-06-15 08:36:11 回复(0)
Linux 的 fork() 使用写时拷贝(Copy-on-write)页实现。写时拷贝是一种可以推迟甚至避免拷贝数据的技术。内核此时并不复制整个进程的地址空间,而是让父子进程共享同一个地址空间。只用在需要写入的时候才会复制地址空间,从而使各个进行拥有各自的地址空间。也就是说,资源的复制是在需要写入的时候才会进行,在此之前,只有以只读方式共享。这种技术使地址空间上的页的拷贝被推迟到实际发生写入的时候,大大提高了效率。
发表于 2023-05-12 12:32:13 回复(0)