第五章抢占式调度lab3.ppt
《第五章抢占式调度lab3.ppt》由会员分享,可在线阅读,更多相关《第五章抢占式调度lab3.ppt(21页珍藏版)》请在三一文库上搜索。
1、第五章,抢占式调度(lab3),提纲,用户环境的建立 中断、系统调用,用户环境的建立,用户执行环境数据结构的分配 装载并执行用户环境,用户环境的建立(续),用户环境(Environments)数据结构的分配 envs是指向一个包含1024个(1NENV(10))struct Env结构的指针,与pages指针非常类似,连建立链表的一些宏定义都和在页面管理中的一模一样 可以在分配完pages结构后,分配envs结构,并在env_init()函数中 在i386_vm_init()函数中,将envs结构映射到UENVS逻辑地址处,用户环境的建立(续),装载并执行用户环境 相关的函数调用 i386_i
2、nit-ENV_CREATE(user_hello)-env_create-env_alloc-load_icode i386_init-env_run 需要解决以下问题: 用户环境页表的配置与空间分配 装载用户执行代码 切换到用户执行代码,用户环境的建立(续),用户环境页表的配置与空间分配 页表的配置 在env_create-env_alloc-env_setup_vm 按照JOS的规划,用户执行的逻辑地址空间实际上是与内核共享4GB,内核代码在lab2中已经映射到KERNBASE(0xf0000000)以上的空间,而剩下的低地址空间则留给了用户执行代码 构建用户环境的页表,为了保持内核部分
3、的逻辑地址到物理内存的映射关系,实际上可以将内核的地址映射关系拷贝到用户环境的页表中来。 思考:通过拷贝,可以让用户环境顺利寻址到所有内核端的代码,可是用户代码装载到的低地址空间,还没有实际的物理内存页面与之进行映射,应该采用什么样的办法呢?是通过分配页面的办法将用户环境的空间填满,还是以后根据需要动态分配页面?为什么?,用户环境的建立(续),装载用户程序到内存(load_icode) 函数原型load_icode(struct Env *e, uint8_t *binary, size_t size) 其中binary指向用户程序在内存中的镜像(如何指向的?) Size是用户程序在内存中镜像
4、的大小 ELF文件的装载过程 ELF文件的格式(见第3章) 将ELF文件中的代码段、数据段、bss段拷贝到Env *e指向的用户环境中(用哪一个CR3会比较方便?) 找到用户程序的入口地址,并将该入口地址赋值到e-env_tf. tf_eip中,用户环境的建立(续),将用户环境投入执行 env_run(struct Env *e)函数 载入用户环境的页目录 将e-env_tf中包含的寄存器值赋值到物理的寄存器,使得用户环境中的程序开始执行,用户环境的建立(续),完成用户环境加载 跟踪其运行过程,直到int $0x30 思考 1. 如何赋值e-env_tf才能使装载进来的用户程序投入真正的执行?
5、 2. JOS系统在env_pop_tf之前都对e-env_tf中的值做了哪些初始化的工作? 3. 用户环境的堆栈段从什么地方开始?JOS是如何实现堆栈段的定位的? 4. env_pop_tf是如何工作的?为什么首先执行popal来设置通用寄存器,而不是先pop env_tf结构中后面的tf_ss和tf_esp?,中断、系统调用,i386的异常与中断 i386的异常或中断处理过程 TSS的作用与发生中断后堆栈的构成 JOS中的异常处理 缺页错误、系统调用的实现,中断、系统调用(续),i386的异常与中断 Exceptions and interrupts are both “protected
6、 control transfers,“ which cause the processor to switch from user to kernel mode (CPL=0) without giving the user-mode code any opportunity to interfere with the functioning of the kernel or other environments. In Intels terminology, an interrupt is a protected control transfer that is caused by an
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第五 抢占 调度 lab3
链接地址:https://www.31doc.com/p-2582776.html