当前位置: 技术问答>linux和unix
kernel 进程创建的实现,初级问题,大家指教
来源: 互联网 发布时间:2016-07-21
本文导语: 谁知道linux kernel 在一个cpu上创建进程的代码在哪? do_fork我看了一下,都是一些上层的东西,copy_fs等,还有就是队列的东西, 想知道最底层涉及到处理器部分的东西在哪?就是如果我想在一个cpu上自己写一个产...
谁知道linux kernel 在一个cpu上创建进程的代码在哪?
do_fork我看了一下,都是一些上层的东西,copy_fs等,还有就是队列的东西,
想知道最底层涉及到处理器部分的东西在哪?就是如果我想在一个cpu上自己写一个产生进程的函数和管理的话,这部分代码在哪?(要最底层的而不是上层的那些队列,结构什么的)
谢谢了
do_fork我看了一下,都是一些上层的东西,copy_fs等,还有就是队列的东西,
想知道最底层涉及到处理器部分的东西在哪?就是如果我想在一个cpu上自己写一个产生进程的函数和管理的话,这部分代码在哪?(要最底层的而不是上层的那些队列,结构什么的)
谢谢了
|
创建进程/线程无非就是在一些队列里面加一个新的元素,下次队列调度的时候这个新的元素就是新的进程/线程了。
你到底要找什么?
你到底要找什么?
|
创建进程就是填充一个task_struct结构,这一点是毫无疑问的,当然这其中会有很多检查和复制,当然最主要的最能体现进程概念的我个人认为是复制父进程的地址空间,这个在do_fork里面可以找到的,但其实还有好多工作就不是在这个函数里面做的了,比如COW可能会更底层一些(通过缺页中断实现),但是这些都和一个进程是相关的,所以说你要先弄清楚进程工作的流程,进程创建之初,父子进程好多东西都一样的,随着执行,随着COW,才出现分化,这是个动态的过程,当然还要对虚拟地址的概念和MMU有充分的理解。