Skip to content

Commit c5d45b9

Browse files
committed
Update Java Notes
1 parent c6256e2 commit c5d45b9

File tree

2 files changed

+168
-76
lines changed

2 files changed

+168
-76
lines changed

DB.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9564,7 +9564,7 @@ fork()调用之后父子进程的内存关系
95649564
95659565
* 对于父进程的数据段,堆段,栈段中的各页,由于父子进程要相互独立,采用**写时复制**的技术,来最大化的提高内存以及内核的利用率
95669566
9567-
在fork之后两个进程用的是相同的物理空间(内存区),子进程的代码段、数据段、堆栈都是指向父进程的物理空间,**两者的虚拟空间不同,但其对应的物理空间是同一个**。当父子进程中有更改相应段的行为发生时,再为子进程相应的段分配物理空间,而代码段继续共享父进程的物理空间(两者的代码完全相同);而如果两者执行的代码不同,子进程的代码段也会分配单独的物理空间。
9567+
在fork之后两个进程用的是相同的物理空间(内存区),子进程的代码段、数据段、堆栈都是指向父进程的物理空间,**两者的虚拟空间不同,但其对应的物理空间是同一个**。当父子进程中有更改相应段的行为发生时,再为子进程相应的段分配物理空间,如果两者的代码完全相同,代码段继续共享父进程的物理空间;而如果两者执行的代码不同,子进程的代码段也会分配单独的物理空间。
95689568
95699569
fork之后内核会将子进程放在队列的前面,让子进程先执行,以免父进程执行导致写时复制,而后子进程再执行,因无意义的复制而造成效率的下降
95709570

0 commit comments

Comments
 (0)