当前位置: 首页 > news >正文

高米店网站建设网络运营培训学校

高米店网站建设,网络运营培训学校,虹口手机网站制作,火车头采集wordpress发布AP的32位保护模式代码的后半部分从0x8001C000开始执行#xff0c;完成的工作主要有#xff1a;初始化必要的中断给BSP发送启动成功的消息创建各AP的系统进程创建各AP的用户进程循环显示各AP中用户进程执行的时间比例5.1 初始化中断5.1.1总体初始化各AP调用init_interrupt_fun…AP的32位保护模式代码的后半部分从0x8001C000开始执行完成的工作主要有初始化必要的中断给BSP发送启动成功的消息创建各AP的系统进程创建各AP的用户进程循环显示各AP中用户进程执行的时间比例5.1 初始化中断5.1.1总体初始化各AP调用init_interrupt_function进行中断的初始化。设置线程锁保证对IDT段的操作是原子执行。初始化IO APIC寄存器使能IO APIC功能。将AP对应的IO APIC寄存器的基地址设置为0同时使能该AP的IO APIC功能。 不同的BSP、AP需对应不同的IO APIC的ID。这里将AP1对应的IO APIC的ID设置为0x0EAP2对应的IO APIC的ID设置为0x0C。屏蔽LINT0所有外部中断由IO APIC产生。打开SVR寄存器的APIC enable位(第8位)。这里需要注意该位在BSP中自动被设置为使能而在AP中该位默认是关闭的。IDT段的地址设置为0x80002000。设置0x31号中断用于AP1接收BSP的HPET0发送过来的消息10ms一次。设置0x32号中断用于AP2接收BP的HPET0发送过来的消息10ms一次。设置0x38号中断用于设置AP用户进程休眠的时间。设置0x39号中断用于AP用户进程读取硬盘的对应扇区数据。5.1.2接收BSP的时钟消息AP通过接收BSP发过来的时钟消息来实现系统进程和用户进程的切换BSP在do_hpet_timer0_handler接口中向AP1和AP2发送IPI消息。其中0x31号中断由AP1使用0x32号中断由AP2使用。下面通过0x31中断对应的中断接口do_int31h_handler来进行说明。通过ap1_running_usr标志判断当前运行的是系统进程0还是用户进程1。如果是系统进程系统进程的ticks加一ap1_sys_whole_ticks。之后当前进程的运行时隙减一。如果当前进程的时隙还大于0退出本接口。执行到这里说明当前进程的时隙已经使用完毕需要切换到另一个进程。需要判断是从系统进程切换到用户进程还是从用户进程切换到系统进程。一个AP仅运行一个系统进程和一个用户进程如果ap1_running_usr标志不为0说明当前运行的是用户进程需要切换到系统进程。ap1_usr_pro_enable标志指示用户进程是否能够被运行。ap1_usr_pro_enable可以通过命令行“ap1 run“ 以及 “ap1 stop”来设置。“ap1 run“设置ap1_usr_pro_enable标志为1“ap1 stop” 设置ap1_usr_pro_enable标志为0。如果ap1_usr_pro_enable标志指示用户进程不能被运行重新设置当前进程的时隙并退出接口。这里是从系统进程切换到用户进程。用户进程运行的ticks值加一当前运行状态改为“用户进程”。将用户进程运行的时隙写入ap1_switch再通过AP1用户进程的TSS段在GDT中的选择子切换到AP1的用户进程。这里是从用户进程切换到系统进程。系统进程运行的ticks值加一当前运行状态改为“系统进程”。将系统进程运行的时隙写入ap1_switch再通过AP1系统进程的TSS段在GDT中的选择子切换到AP1的系统进程。5.1.3进程休眠AP通过0x38号中断提供用户进程休眠的系统调用对应的函数是do_int38h_handler。首先判断是AP1还是AP2使用该系统调用。如果是AP1调用的ap1_running_usr标志改为0表示当前运行的是系统进程重新设置进程的运行时隙再通过AP1系统进程的TSS段在GDT中的选择子切换到AP1的系统进程。对AP2的处理与上面的AP1一致。5.1.4读取硬盘扇区AP通过0x39号中断提供读取硬盘扇区的系统调用对应的函数是do_int39h_handler。do_int39h_handler直接调用read_hard_disk_0函数来获取对应扇区的数据一次读取一个扇区512字节。其中eax对应读取的扇区号ebx对应数据读取到的地址。5.2 返回启动成功的消息AP在中断初始化完毕之后都会向BSP发送“启动成功”的消息。以上指令对应目标CPU对应的ID号为0x00, 交付模式为Fixed目标CPU的中断号为0x30。5.3 创建系统进程和用户进程通过获取APIC ID号判断当前运行的是AP1还是AP2。初始化AP1对应的系统进程和用户进程的配置参数。系统进程的配置参数结构在“global_vars_for_all.inc”文件中定义该结构用于记录系统进程的TSS段地址以及系统进程TSS段在GDT中的选择子。用户进程的配置参数结构也在“global_vars_for_all.inc”文件中定义该结构记录参数的功能已在参数后面注明。init_ap1_configs函数将填写系统进程结构以及用户进程结构中的各个参数这些参数在创建系统进程和用户进程时被使用。 Load_Sys_Task函数用于创建各AP的系统进程使用线程锁避免AP1和AP2在这里同时操作。将系统进程的TSS段清空。将当前页目录地址写入系统进程TSS段的0x1c偏移处该处记录系统进程对应的页目录。注意此处写入TSS段页目录地址的代码必须要有在系统进程向用户进程切换时系统不会主动将页目录地址保存到TSS段中。在GDT中写入TSS段描述符再将TSS在GDT中的偏移写入TR寄存器。 Load_Usr_Task函数用于创建各AP的用户进程使用线程锁避免AP1和AP2在这里同时操作。将系统进程使用的页目录的数据拷贝到用户进程对应的页目录页。其中usr_task_confg.page_dir写入的是页面的实地址加上0x80000000为页面对应的虚拟地址。将用户进程页目录的第0项指向页表0。其中usr_task_confg.page_dir写入的是页面的实地址加上0x80000000为页面对应的虚拟地址。向用户进程的页表0的第1项指向虚拟地址0x0~0x0FFF该区域对应的页的实地址为0x0000E000用户进程的code代码将写入这一页。向用户进程的页表0的第2项指向虚拟地址0x1000~0x1FFF该区域对应的页的实地址为0x0000F000用户进程的堆栈指向这一页。将用户进程对应的code代码从硬盘扇区读取到用户进程code代码页。初始化用户进程的LDT段代码描述符和数据描述符都设置为平坦模式。将设置好的用户LDT段加入DGT段LDT段在GDT段中的偏移在usr_task_confg.ldt_sel中已经设置好这样的目的是为了减少判断时使用的代码但是灵活性更差。将用户进程的TSS段清空。逐项填写用户进程TSS段的内容主要包括系统态下的SS段选择子和esp地址eip值起始执行代码在code页中的偏移Eflag的值用户态下的esp地址用户态下CS/SS/DS段的选择子在LDT段中的偏移ldt选择子将填写好的用户TSS段加入GDT段TSS在GDT中的偏移为usr_task_confg.tss_sel。后面系统将根据系统进程TSS段在GDT中的偏移以及用户进程TSS段在GDT中的偏移来切换系统进程和用户进程。5.4 用户进程执行时间比例的显示在AP最后的循环中通过调用do_ap1_usr_ratio和do_ap2_usr_ratio来显示AP1和AP2中用户进程执行时间与总运行时间的比例。我们通过do_ap1_usr_ratio来讲解。首先判断ap1_usr_whole_ticks是否为0为0说明AP1的用户进程还没有运行起来直接退出本函数。系统当前ticks值减去上一次记录的ticks值大于100说明超过1秒钟可以进行计算并记录本次当前系统的ticks值用于下一次计算。计算相比1秒钟前AP1用户进程增加的ticks数值。计算相比1秒钟前AP1系统进程增加的ticks数值。计算在1秒的间隔中AP1系统进程和用户进程总增加的ticks数。AP1用户进程增加的ticks数乘以100再除以总增加的ticks数得到1秒间隔内AP1用户进程执行的比例。该结果再除以10商在ax余数在dx。调用0x82系统调用显示AP1用户进程在1秒间隔中运行的比率数字。ap_32.asm源代码地址:https://download.csdn.net/download/hanspruce_bird/87502148
http://www.hkea.cn/news/14567096/

相关文章:

  • 菏泽做网站公众号开通
  • 做网站什么前端框架方便网站做彩票
  • 以下属于网站seo的内容是设计公司网站设计报价明细表
  • 国内最好的软件网站建设上海网站建设哪家强
  • art2008cms网站开发网站建设人员叫什么科目
  • 网站建设需求文件ui网页设计字体
  • 内江规划建设教育网站长沙谷歌seo收费
  • 奇米网怎么做网站网站的开发流程分哪几步
  • win7主机做网站力软敏捷开发框架可以做网站后台
  • 做的好的茶叶网站什么样建广告网站
  • 建设银行人力资源网站如何找回网站备案密码
  • 微网站O2O平台平台开发微信小程序商城模板源码
  • 做网站效果怎么样游戏网站的建设
  • 河南省建设科技协会网站江西省赣州市官网
  • 网站注册便宜恶意点击竞价是用的什么软件
  • 销售型网站设计贵阳城乡和住房建设厅网站
  • 有服务器如何做网站网站如何申请微信支付功能
  • 唐山哪个公司可以建网站网站看不到预览图
  • 免费域名app下载怎么利用自媒体做网站优化
  • 江阴网站制作网站没有备案会怎样
  • 建站公司佛山企业网站翻译
  • 佳木斯网站建设公司wordpress伪静态htaccess
  • 电子商务网站建设的规划书wordpress图片批量上传插件
  • 网站开发的英文书有什么软件初级网站开发的自我推荐
  • 平台网站的策划设计北京seo顾问服务
  • 有哪些做电子小报的网站pico笔克品牌介绍
  • 创建公司网站的方案有做招聘网站用什么代码开发
  • 扎染毕业设计代做网站网络规划设计师岗位职责
  • 怎么给网站动态做伪静态近期新闻热点大事件
  • 有专门做试吃的网站吗做标志的网站