标签:唤醒 技术 edit gcc inux 保留 还需要 img 进程id
研究如何建立,撤销,阻塞,或唤醒一个进程
系统启动时处于内核状态
初始化最后,启动名为init的内核线程,然后保留在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内核线程pid为1
负责完成一些初始化的任务
使用/etc/inittab作为脚本创建系统中的新的进程,这些新的进程又创建各自的新进程。
系统关机前还需要完成结束所有线程,是系统中所有进程的祖先。(而不是0号进程)
如pid=fork(),通过系统调用创建一个新的进程
返回值的意义:
0,只会在子进程中出现,表示当前的进程是子进程
>0,在父进程中,返回值是子进程的pid
-1,创建失败
ubuntu中编写代码
CTRL+alt+T
ls显示已有文件
gedit xx.c 进入xx.c的编辑界面
gcc xx.c 编译并运行xx.c
./a.out 显示输出
touch xx.c 创建一个新文件
标签:唤醒 技术 edit gcc inux 保留 还需要 img 进程id
原文地址:https://www.cnblogs.com/theda/p/12008588.html