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

Linux的进程控制

时间:2019-12-09 01:48:15      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:唤醒   技术   edit   gcc   inux   保留   还需要   img   进程id   

研究如何建立,撤销,阻塞,或唤醒一个进程

一 创建进程

系统启动时处于内核状态

初始化最后,启动名为init的内核线程,然后保留在idle状态(空闲状态)

系统中没有进程可运行时,调度管理器运行idle进程。

 

idle进程详解

idle进程是空闲进程,是唯一不动态分配task_struct的进程,是task数组的0号元素,记作init_task

pid为0

  注意,idle进程就是0号进程,始终位于linux系统的run_queue中,也就是系统可运行队列。在前面讲到了

使用指针*next_run和*pre_run连接形成双向循环队列RUN_QUEUE

  这个双向循环队列的基准就是这个0号进程idle

  run_queue的头部元素就是init_task之后的task_struct所代表的进程,

尾部元素是init_task之前的进程。

  也就是说,每次建立新的进程,都会被插入到init_task之前。

 

init内核线程详解

  init内核线程pid为1

  负责完成一些初始化的任务

  使用/etc/inittab作为脚本创建系统中的新的进程,这些新的进程又创建各自的新进程。

 

  系统关机前还需要完成结束所有线程,是系统中所有进程的祖先。(而不是0号进程)

 

  技术图片

 

 技术图片

 

 

fork的使用

  如pid=fork(),通过系统调用创建一个新的进程

  返回值的意义:

  0,只会在子进程中出现,表示当前的进程是子进程

  >0,在父进程中,返回值是子进程的pid

  -1,创建失败

 

  内核在fork()时完成以下的操作

  

技术图片

 

 ubuntu中编写代码

CTRL+alt+T

ls显示已有文件

gedit xx.c 进入xx.c的编辑界面

gcc xx.c 编译并运行xx.c

./a.out 显示输出

touch xx.c 创建一个新文件

 

 

 

Linux的进程控制

标签:唤醒   技术   edit   gcc   inux   保留   还需要   img   进程id   

原文地址:https://www.cnblogs.com/theda/p/12008588.html

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