美文网首页操作系统学习笔记
进程管理(二)Ucore实现

进程管理(二)Ucore实现

作者: minlover | 来源:发表于2017-06-08 16:33 被阅读8次

1、0号进程

Ucore的初始进程:idleproc,PID=0,所有进程或内核线程都是idle的后代,是idle的clone,idle是静态创建启动的。

state状态始终为PROC_RUNNABLE运行态;系统堆栈为bootstack;need_resched始终为1(需要调度),一直循环检查是否有就绪的,随时准备将CPU让出;context和trapframe为空(做完1好进城,需要调度后,0号进程失去CPU,保存现场,使context有内容);idle不在proc_list和hash_list中。


2、1号进程

initproc是一号进程,idle进程动态创建,是一个内核线程。

内核线程 --> kernel_thread  只能在内核中使用 ;用户进程 --> fork  常在用户空间使用。

均由do_fork实现,具体ucore过程见ppt。


3、用户进程

init创建的第一个用户进程。

到用户堆栈后特权级变为3,内核态为0。

(详见ppt)


4、系统调用

(1)fork —— 用户进程使用的进程创建函数

(2)exec —— 用户进程使用的加载函数

(3)yield —— 告诉内核可以让一下CPU

(4)exit —— 请求终止自己。

idle和init进程不能终止。

(5)wait —— 由父进程调用,回收已经终止的子进程

(6)kill —— 用于杀死指定进程

相关文章

  • 进程管理(二)Ucore实现

    1、0号进程 Ucore的初始进程:idleproc,PID=0,所有进程或内核线程都是idle的后代,是idle...

  • 打通Framework与Kernel-谈谈我对进程管理的理解

    Kernel:Linux学习-进程管理与调度(一)-进程描述及其生命周期Linux学习-进程管理与调度(二)-进程...

  • kill

    kill 进程管理 向进程发送控制信号,以实现对进程管理,每个信号对应一个数字,信号名称以SIG开头(可省略),不...

  • Linux进程

    进程知识 发现问题 什么是进程 操作系统为什么需要进程 进程如何实现 如何进行进程管理 进程和CPU的关系是什么 ...

  • Swoole Process

    简介 基于C语言封装的进程管理模块,方便php的多进程编程 内置管道、消息队列接口,可方便实现进程间通信 自定义信号管理

  • 二.进程管理

    2.1进程的基本概念 1.程序顺序执行时的特征: (1)顺序性 处理机的操作严格按程序规定顺序执行。 (2) ...

  • php-fpm

    php-fpm说明 php-fpm是FastCGI的实现,并提供进程管理的功能。进程包括master进程和work...

  • 进程(二)—— 控制与通信

    1. 进程控制 进程控制的主要功能是对系统中所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转...

  • PHP FPM源代码反刍品味之五:信号signal处理

    unix 的信号signal常用于进程管理.比如管理员或者操作系统通过向master进程实现重启和关闭服务.mas...

  • supervisor_twiddler的使用

    Supervisor可以很好的实现Python的进程管理,但是新增进程时需要配置文件,对于需要动态创建进程的场景不...

网友评论

    本文标题:进程管理(二)Ucore实现

    本文链接:https://www.haomeiwen.com/subject/gxctqxtx.html