父子进程共用mysql连接_进程——父子进程共享

一、fork()

1. 在谈fork之前,先简单说一下进程的相关知识点。

(1)进程不同于程序是动态运行在内存中的实体,占用系统资源(CPU、内存等),而程序则是存放在磁盘中的静态的资源,占用磁盘空间而不占用系统资源。进程在内存中运行,由CPU分配资源。

(2)与进程相关的两个内存:虚拟内存和物理内存。所谓虚拟内存就是我们程序员视角下的内存,比如int a = 10; &a 所得的值就是虚拟内存,是给我们程序员看的连续的地址空间。(当我们在代码中连续定义几个local object时,通过&可以观察到它们的地址是连续的)相对的,物理内存才是实实在在的存在于计算机硬件中的内存(比如买内存条时我们可以参考的4G、8G等容量参数),当执行 a = 20这条语句时,操作系统就会将 a 的虚拟地址送入 CPU的地址转换单元(MMU),如果a还没有实际的物理单元,则为a分配物理内存,写入20,反之直接将20写入a物理内存单元。

(3)为什么会有虚拟内存? 虚拟内存的产生源自物理内存的稀缺,买过SSD或者内存条的伙伴都知道,250G的SSD也就是250块左右,而仅仅8G的内存条就要250块,内存的小容量与高价格的反差促使猿们必须节省内存的开销。由此产生了虚拟内存技术,32位系统下,CPU会为每个进程分配4G的虚拟地址单元(地址编号为0-4G),分为用户空间(通常为0-3G)和内核(kernel)空间(3-4G),用户空间存放该进程的堆栈变量、全局变量等,kernel里存放该进程的进程控制块(PCB,唯一区分每一个进程)。虚拟内存单元只有在被进程访问后才会映射为物理内存单元(见(2)a=20的执行过程)。

(4)内

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值