博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OK6410A 开发板 (八) 26 linux-5.11 OK6410A 进程角度 idle进程的建立过程
阅读量:4284 次
发布时间:2019-05-27

本文共 1422 字,大约阅读时间需要 4 分钟。

  • idle 进程的建立的 过程
idle 进程的建立的 过程 // 其实就是 init_task 结构体初始化的过程		1.sp 的初始化			// __mmap_switched -> ARM( ldmia   r4!, {r0, r1, sp} )			// __mmap_switched_data:			// .long   init_thread_union + THREAD_START_SP @ sp			// 在链接过程中确定了 一个值 (该值与 init_thread_union  相关)			// 将该值 写入 sp 中			// start_kernel 在 sp 对应的栈 中运行		2.TCB(init_task&init_thread_info)结构体的建立			// 静态创建的,不需要创建			// init_task&init_thread_info 是给 idle(一开始的裸机) 准备的 TCB		3.TCB(init_task&init_thread_info)结构体的定位			// idle 找到 为 它 准备的 TCB			// 根据current 找到该 裸机(后来的idle) 对应的结构体(init_task&init_thread_info)			// 其实不需要根据 current 找,直接 引用 init_task和init_thread_info 就可以了			// init_task  是 idle 进程的 信息1,供调度器(schedule)选择下一个进程用			// init_thread_info.cpu_context 是 idle进程的信息2,存储寄存器信息		4. init_idle:idle 进程的 信息1(init_task) 的初始化			//供 调度算法 选择 哪个进程 为 下一个进程		//5. kernel_thread/fork 的时候 建立了 其他(kenel_init) 进程		6. schedule:idle 进程的 信息2(init_thread_info.cpu_context) 的初始化			// 当前寄存器信息的保存			// idle调出 start_kernel->rest_init->schedule_preempt_disabled -> schedule -> __schedule -> context_switch			// 的时候 , 保存了 idle 的 各个寄存器 到  idle进程的信息2(init_thread_info.cpu_context)			// 这个过程是调度器的一部分,但是同时也是idle TCB 结构体初始化过程的一部分		7. 其他进程调用 schedule  , 选中 init_task 为 下一个 进程			// schedule -> __schedule -> pick_next_task		8. 将 init_task 对应的 init_thread_info.cpu_context 恢复到寄存器中			// idle调入 schedule -> __schedule -> context_switch			// 的时候 , 恢复了 idle进程的信息2(init_thread_info.cpu_context) 到 寄存器			// 此时,idle 重新执行

转载地址:http://tcigi.baihongyu.com/

你可能感兴趣的文章
了解 内核、操作系统 的一些链接
查看>>
Linux 学习笔记 (九) 软件安装
查看>>
Linux 学习笔记 (十) shell 脚本初探
查看>>
关于移动开发的一些思考
查看>>
Java 进阶 -- final 解析
查看>>
VS 2013 Professional 安装问题
查看>>
Xamarin.Forms.Xaml.XamlParseException: No embeddedresource found for
查看>>
error: Mono.Android could not be found
查看>>
使用 RDCMan
查看>>
Xamarin 实现 Button LongClick 和 Touch
查看>>
Xamarin 进阶文档
查看>>
在 Xamarin Forms 中实现 Banner
查看>>
Android 加载本地图片路径
查看>>
Android CPU 架构详解
查看>>
Android
查看>>
Android UncaughtExceptionHandler 原理分析
查看>>
Linker 分析器
查看>>
Android APP 检测安装打开 APK 三步操作
查看>>
Xamarin.Forms Performance on Android
查看>>
AndroidManifest.xml <uses-feature> 和 <uses-permisstion>
查看>>