进程创建的细节
来源:互联网 发布:iphone清单软件 编辑:程序博客网 时间:2024/04/30 12:26
原文:http://ocelot1985-163-com.iteye.com/blog/966119
最先,我接触的操作系统教材讲述进程创建。当调用fork()函数后,系统会复制父进程的进程控制块(PCB)和相关的资源给子进程。这时,我以为父进程在创建子进程时,给子进程分配了它的地址空间。不过,最近看了一些资料,发现还有其他细节。
父进程在调用fork()函数后,确实产生了一个新的PID,也就是子进程的进程描述符。但是,此时父进程与子进程是共享父进程的地址空间的。当子进程调用exec()函数时,会调入新的程序入内存执行。此时,由于子进程与父进程共享内存空间,所以,会产生page fault异常。正是在产生这个异常的时候,kernel才会真正的去为子进程分配新的内存空间。
这种技术就是通常所说的copy-on-write。因为复制整个进程内存空间并不是一个高效的操作。所以,kernel为了避免这种情况频发,使用了copy-on-write技术。
- 进程创建的细节
- 进程的细节
- 进程转入中断的细节
- Operating Systems: Three Easy Pieces(操作系统:三个简单方面)4.3进程创建的更多细节
- 一起talk C栗子吧(第一百三十三回:C语言实例--创建进程时的内存细节)
- 创建进程的例子
- 进程的创建
- 进程的创建
- 进程的创建
- 进程的创建
- Windows进程的创建
- Windows的进程创建
- 进程的创建过程
- 进程的创建
- Windows的进程创建
- 守护进程的创建
- 回头看进程的创建
- 2、进程的创建
- Console类
- 导入Myeclipse里面的项目会出现编码错误问题
- 上大学和没上大学的区别
- 消费者与生产者线程同步程序
- SWFUpload 使用总结
- 进程创建的细节
- 【转】会议论文
- ubuntu 安装jdk一些坎坷
- 读取控制台输入
- 用 c 写 CGI 程序简要指南
- 谈谈C++继承中的重载,覆盖和隐藏
- 编程珠玑第8章:具有n个浮点数字的向量x,在任何相邻子向量中找出最大和。
- 已有范围和缺失范围的计算
- C语言中的取模(%)运算