码迷,mamicode.com
首页 > 系统相关 > 详细

Linux内核分析(第六周)

时间:2016-03-29 22:21:45      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:

进程的控制与创建

 

一、进程的描述

  1.操作系统内核的三大功能:进程管理(核心),内存管理,文件系统;

  2.状态:

      fork()                                         task_zombit(终止)

        task_running(就绪;但是没有运行)            task_running(正在运行)

                          task_Intertupt

                          task_Uninterrupt

  3.标识pid

  4.struct list_head    进程双向链表

   struct mm_struct 地址空间有关

 

 

二、进程的创建
1.概览
1. fork()用户态创建子进程
2. fork()在父进程和子进程中各返回一次
2.理解方法
1. fork()是一个系统调用
2. fork() vfork() clone()最终都可以在do_fork来实现进程的创建
3.复制当前进程实现创建新进程
3.浏览相关关键代码
1.复制、给新进程分配、修改PID、进程链表等;
2.sys_fork sys_clone sys_vfork 最终都return do_fork
3.alloc_thread_info_node 地址空间,分配实际内核空间
4.p=dup_init_task 复制进程
5.childregs= *current_pt_regs();复制内核堆栈
6.return_from_fork(返回用户态)
拷贝内核堆栈数据和指定新进程的第一条指令进程
4.gdb跟踪调试

三、实验

 

Linux内核分析(第六周)

标签:

原文地址:http://www.cnblogs.com/java44/p/5335045.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!