CREAT PROCESS


fork()
|
clone(參数,决定父子函数的共享内容)
|
do_fork()
|
copy_process()
|
dup_task_struct()
创建子进程的内核堆栈。复制父进程的进程描写叙述符(task_struct)
进程描写叙述符的非常多成员被清除或者设为初值
设置子进程的状态task_struct-->state
设置子进程的权限task_struct-->flags
设置子进程的进程号task_struct-->PID
依据clone的參数,拷贝或共享:
打开的文件(task_struct-->fd),
文件系统信息(task_struct),
信号处理函数(task_struct-->struct
signal_struct *signal;)
进程的地址空间(task_struct-->struct
mm_struct *mm, *active_mm;)
让父子进程平分剩余的时间片。
|
子进程被唤醒,调用exec()并运行!

NOTE

进程几点要注意的:
1,进程能够运行一个或者多个程序,一个程序能够被多个进程运行。

2,受到共享资源的约束,进程会产生约束关系,造成进程会处于不同的状态。比方等待没有一个资源如IO请求。或造成堵塞,直到资源被满足才会释放该进程,进入运行状态。

对于时间片用完的进程会进入就绪状态。


3,临界资源一次仅仅同意一个进程使用。
EXIT PROCESS

exit()

|

do_exit()
|
对task_struct的state(设为PF_EXITING)、mm(调用__exit__mm())、segment(调用sem_exit),file(__exit_files),fs(__exit_fs),signal(exit_sighand),exit_code,notify等资源进行释放。然后调用schedule()调用其它的进程。此时进程处于僵尸状态,进程描写叙述符存在于链表中,直到父进程调用wait4()。才全然释放进程。删除链表中的进程描写叙述符task_struct和共享的资源。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

linux process management的更多相关文章

  1. Performance Tuning Using Linux Process Management Commands

    [root@bigdata-server-02 /]# ps --help all Usage: ps [options] Basic options: -A, -e all processes -a ...

  2. Linux Process Management && Process Scheduling Principle

    目录 . 引言 . 进程优先级 . 进程的生命周 . 进程表示 . 进程管理相关的系统调用 . 进程调度 . 完全公平调度类 . 实时调度类 . 调度器增强 . 小结 1. 引言 在多处理器系统中,可 ...

  3. Java Business Process Management(业务流程管理) 初识环境搭建

    一.简介 (一)什么是jbpm JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理.工作流.服务协作等领域的一个开源的.灵活的.易 ...

  4. Linux process vs thread

    Linux process vs thread Question I have a query related to the implementation of threads in Linux. L ...

  5. Linux Process VS Thread VS LWP

    Process program program==code+data; 一个进程可以对应多个程序,一个程序也可以变成多个进程.程序可以作为一种软件资源长期保存,以文件的形式存放在硬盘 process: ...

  6. Shell script for logging cpu and memory usage of a Linux process

    Shell script for logging cpu and memory usage of a Linux process http://www.unix.com/shell-programmi ...

  7. linux process cycle

    As already discussed, a new process is created through fork() and if a new executable is to be run t ...

  8. <<Linux kernel development>> Process Management

    The Process On modern operating systems,processes provide two virtualizations:a virtualized processo ...

  9. Linux Process Virtual Memory

    目录 . 简介 . 进程虚拟地址空间 . 内存映射的原理 . 数据结构 . 对区域的操作 . 地址空间 . 内存映射 . 反向映射 .堆的管理 . 缺页异常的处理 . 用户空间缺页异常的校正 . 内核 ...

随机推荐

  1. [AngularJS NG-redux] Handle Asynchronous Operations with Middleware

    Invariably the question that comes up when talking about Redux is how does one handle asynchronous o ...

  2. [Recompose] Add Local State to a Functional Stateless Component using Recompose

    Learn how to use the 'withState' and 'withHandlers' higher order components to easily add local stat ...

  3. Android 自定义RadioButton样式

     上面这种3选1的效果如何做呢?用代码写? 其实有更简单的办法,忘了RadioButton有什么特性了吗? 我就用RadioButton实现了如上效果,其实很简单的. 首先定义一张background ...

  4. 编译nodejs及其源代码研究

    本文将从 源代码 研究nodejs 的原理.本质,探讨nodejs的应用场景,以及高性能开发实践指南. 文件夹: 第一节:编译node.js 第二节:源代码分析 进入主题:下面是在win7 64 下进 ...

  5. php函数实现显示几秒前,几分钟前,几天前等方法(网络上什么都有)

    php函数实现显示几秒前,几分钟前,几天前等方法(网络上什么都有) 一.总结 网络上面什么函数都有 二.php函数实现显示几秒前,几分钟前,几天前等方法 现在很多网站的时间显示都很人性化,不再是单纯的 ...

  6. 数据库基本查询语句(SQL常用增删改查语句 简单复习 mark)

    SQL常用增删改查语句 1增 1.1[插入单行]insert [into] <表名> (列名) values (列值)例:insert into Strdents (姓名,性别,出生日期) ...

  7. 七个帮助你处理Web页面层布局的jQuery插件

    1.UI.Layout  jQuery UI布局插件 官方网站:http://layout.jquery-dev.com/index.cfm 使用大小可折叠的嵌套面板和大量选项创建高级UI布局.布局可 ...

  8. Android资源之图像资源(图层图像资源)

    曾经看别人的程序的drawable目录里有xml资源,说实话第一次见到这种xml图像资源时,我真心不知道是干什么的.抽出时间学习了一下图像资源.才了解了这类图像资源的妙用. 以下我来分享一下这部分知识 ...

  9. hdu 4865 dp

    Peter's Hobby Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) To ...

  10. QQ欢乐豆斗地主心得体会(四):合谋赢豆

    刚刚又在玩QQ欢乐斗地主,只可惜,这次不够欢乐. 本金,300万豆,运气比较好,赢到将近400万.突然,形势急转直下,一直输,一直到180多万豆.本来这一局,有硬炸在手,但是没有癞子,基本被吊打的节奏 ...