- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
linux进程创建与切换
进程创建
1.系统调用与进程创建
2.Do_fork()
3. copy_process
4.资源拷贝和属性设置
其中copy_thread
p-thread.ip为switch_to之后的入口地址:(查看switch_to)
关于pt_regs
5. ret_from_fork
关于pushl %eax
Call schedule_tail
关于Jump syscall_exit():
现在esp正好指向pt_regs, 执行系统调用退出, 最后会执行RESTORE_ALL和iret等弹出pt_regs的所有内容(entry_32.s)。
进程切换
进程调度的开始schedule(主动让出,被抢占)
2. 目标进程的选择。
Pick_next_task
调度类:
1.首先判断本地调度队列的进程是否全部属于CFS调度类
2.依次使用实时调度类,CFS调度类,IDLE调度类选择下一个进程,选好进程即返回。
CFS类基本原理:
RT调度类,使用了2.6..23以前的调度算法的思想,维护了100个不同优先级的实时进程队列。
选定进程后的切换 context_switch
Switch_mm:
核心是加载下一个进程的pgd页目录基地址到cr3。完成地址空间切换。
在do_fork的copy_mm中可以发现所有进程的内核页目录项都是一致,从swap_pg_dir开始的256项,下面对堆栈等内核数据结构的操作不受影响。
Switch_to :
标号 1 将schedule函数分成了两段。
切换的过程:
保存切换回来时需要的内容
加载新进程的上下文,手动修改eip完成跳转。
设置next_ip为返回地址,jmp __switch_to执行后续工作,注意这里使用 jmp而不是call
关于实验中的问题
要求(3):从CPU的IP值的变化上,说明在switch_to宏执行后,执行了哪个函数?执行了这个函数之后,又到哪里执行了? 两种情况:p-thread.ip = (unsigned long) ret_from_fork();
执行ret_from_fork()这个函数。
在ret_from_fork重置EFLAGS。要求(4):说明哪一行代码切换了堆栈,在切换堆栈前后,求current_thread_info有什么变化 要求(5):说明哪一行代码切换了地址空间,在切换堆栈前还是后?为什么地址空间的切换不会影响后续切换代码的执行? context_switch—switch_mm load_cr3(next-pgd);
要求(6):说明哪一行代码的执行,使得current宏所代表的进程发生了变化 #define current get_current()
static __always_inline struct task_struct *get_current(void)
{
return x86_read_percpu(current_task);
}
最终是读取系统的current_task值。
在_switch_to中执行以下代码,即改变current_task的值
要求(7):说明哪一行代码的执行,使得任务状态段中关于内核堆栈的信息发生了变化 _switch_to中:load_sp0(tss, next);
关于3次fork
共分为三代8个进程
子进程
子进程2
子进程1
父进程
子进程11
子进程21
子进程12
子进程111
您可能关注的文档
- JAVA常用类介绍.ppt
- Java教程英文版.ppt
- java毕业设计-基于JAVA的网络安全聊天工具网络功能部分.doc
- Java框架介绍Quartz从入门到进阶.doc
- Java程序设计教程测试题及答案.doc
- java程序设计第二章教学课件.ppt
- Java程序设计自学指导体系.doc
- Java笔试大IBM全.doc
- Java英汉小词典.doc
- Java编程思想第十三章字符串.ppt
- 某某单位2024年党建工作总结及2025年工作计划.doc
- 某某市发改委关于2024年度落实党风廉政建设工作责任制情况的报告.doc
- 某某局2024年全面从严治党和党风廉政建设工作总结.doc
- 某某区财政局2024年法治政府建设总结及2025年工作谋划.doc
- 2024年党管武装工作述职报告2篇.doc
- 2024年度国企党委书记抓基层党建工作述职报告3篇.doc
- 公司党委书记2024年述职述廉报告.docx
- 2024年度乡镇党委领导班子民主生活会(四个带头)对照检查材料.doc
- 市医疗保障局关于2024年法治政府建设工作情况的报告.docx
- 市民政局党组2024年巡察整改工作情况报告.docx
文档评论(0)