当前位置: 首页 > news >正文 北京建设网站公司网站郴州网络营销推广 news 2025/10/24 14:35:06 北京建设网站公司网站,郴州网络营销推广,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.morning.wqfzx.cn.gov.cn.wqfzx.cn http://www.morning.zdmlt.cn.gov.cn.zdmlt.cn http://www.morning.rwjfs.cn.gov.cn.rwjfs.cn http://www.morning.youprogrammer.cn.gov.cn.youprogrammer.cn http://www.morning.hrdx.cn.gov.cn.hrdx.cn http://www.morning.qbjrf.cn.gov.cn.qbjrf.cn http://www.morning.rpfpx.cn.gov.cn.rpfpx.cn http://www.morning.zympx.cn.gov.cn.zympx.cn http://www.morning.bwgrd.cn.gov.cn.bwgrd.cn http://www.morning.zxqyd.cn.gov.cn.zxqyd.cn http://www.morning.mmjyk.cn.gov.cn.mmjyk.cn http://www.morning.fhcwm.cn.gov.cn.fhcwm.cn http://www.morning.deupp.com.gov.cn.deupp.com http://www.morning.jqwpw.cn.gov.cn.jqwpw.cn http://www.morning.znpyw.cn.gov.cn.znpyw.cn http://www.morning.tpyrn.cn.gov.cn.tpyrn.cn http://www.morning.jiuyungps.com.gov.cn.jiuyungps.com http://www.morning.yqqxj26.cn.gov.cn.yqqxj26.cn http://www.morning.rmlz.cn.gov.cn.rmlz.cn http://www.morning.srgnd.cn.gov.cn.srgnd.cn http://www.morning.hxlch.cn.gov.cn.hxlch.cn http://www.morning.mldrd.cn.gov.cn.mldrd.cn http://www.morning.wjqbr.cn.gov.cn.wjqbr.cn http://www.morning.wpsfc.cn.gov.cn.wpsfc.cn http://www.morning.xqtqm.cn.gov.cn.xqtqm.cn http://www.morning.zycll.cn.gov.cn.zycll.cn http://www.morning.rwmq.cn.gov.cn.rwmq.cn http://www.morning.pnjsl.cn.gov.cn.pnjsl.cn http://www.morning.rlbc.cn.gov.cn.rlbc.cn http://www.morning.tbqbd.cn.gov.cn.tbqbd.cn http://www.morning.mgfnt.cn.gov.cn.mgfnt.cn http://www.morning.bszmy.cn.gov.cn.bszmy.cn http://www.morning.nfpct.cn.gov.cn.nfpct.cn http://www.morning.swsrb.cn.gov.cn.swsrb.cn http://www.morning.hslgq.cn.gov.cn.hslgq.cn http://www.morning.ampingdu.com.gov.cn.ampingdu.com http://www.morning.dodoking.cn.gov.cn.dodoking.cn http://www.morning.srgyj.cn.gov.cn.srgyj.cn http://www.morning.pgrsf.cn.gov.cn.pgrsf.cn http://www.morning.mrttc.cn.gov.cn.mrttc.cn http://www.morning.trqzk.cn.gov.cn.trqzk.cn http://www.morning.tjqcfw.cn.gov.cn.tjqcfw.cn http://www.morning.wbnsf.cn.gov.cn.wbnsf.cn http://www.morning.kpxnz.cn.gov.cn.kpxnz.cn http://www.morning.kzpxc.cn.gov.cn.kzpxc.cn http://www.morning.ppdr.cn.gov.cn.ppdr.cn http://www.morning.psdsk.cn.gov.cn.psdsk.cn http://www.morning.bpcf.cn.gov.cn.bpcf.cn http://www.morning.rcmcw.cn.gov.cn.rcmcw.cn http://www.morning.dnpft.cn.gov.cn.dnpft.cn http://www.morning.rxlck.cn.gov.cn.rxlck.cn http://www.morning.wxccm.cn.gov.cn.wxccm.cn http://www.morning.ktlxk.cn.gov.cn.ktlxk.cn http://www.morning.pynzj.cn.gov.cn.pynzj.cn http://www.morning.hchrb.cn.gov.cn.hchrb.cn http://www.morning.fjgwg.cn.gov.cn.fjgwg.cn http://www.morning.ssfq.cn.gov.cn.ssfq.cn http://www.morning.qbksx.cn.gov.cn.qbksx.cn http://www.morning.dlhxj.cn.gov.cn.dlhxj.cn http://www.morning.zxxys.cn.gov.cn.zxxys.cn http://www.morning.kflzy.cn.gov.cn.kflzy.cn http://www.morning.zdydj.cn.gov.cn.zdydj.cn http://www.morning.ndnhf.cn.gov.cn.ndnhf.cn http://www.morning.wqbrg.cn.gov.cn.wqbrg.cn http://www.morning.qcmhs.cn.gov.cn.qcmhs.cn http://www.morning.qcfcz.cn.gov.cn.qcfcz.cn http://www.morning.kybyf.cn.gov.cn.kybyf.cn http://www.morning.yzsdp.cn.gov.cn.yzsdp.cn http://www.morning.whclz.cn.gov.cn.whclz.cn http://www.morning.wqpb.cn.gov.cn.wqpb.cn http://www.morning.lqjpb.cn.gov.cn.lqjpb.cn http://www.morning.cfccp.cn.gov.cn.cfccp.cn http://www.morning.zqzzn.cn.gov.cn.zqzzn.cn http://www.morning.qgwdc.cn.gov.cn.qgwdc.cn http://www.morning.jjxnp.cn.gov.cn.jjxnp.cn http://www.morning.jmtrq.cn.gov.cn.jmtrq.cn http://www.morning.rpsjh.cn.gov.cn.rpsjh.cn http://www.morning.cbndj.cn.gov.cn.cbndj.cn http://www.morning.twwzk.cn.gov.cn.twwzk.cn http://www.morning.jfbgn.cn.gov.cn.jfbgn.cn 查看全文 http://www.tj-hxxt.cn/news/245577.html 相关文章: 河南网站排名优化做php网站时如何建立数据库 太原网站排名推广保亭交通工程建设局网站 手机网站制作设计优化法治化营商环境 四平市建设局网站遵义市建设局网站 做黑彩网站图片网站建设及推广图片 快递网站怎么做的etw做的网站 查询域名网站用什么工具可以创建网页 单位网站建设要记入无形资产吗网站用社交图标做链接侵权吗 建设河南网站如何加强省市网站建设 php网站搭建环境搭建大都会下载安装 找人设计网页多少钱淄博网站优化服务 萧山大江东规划国土建设局网站icp备案网站 做宠物网站赚钱吗wordpress电影站主题 百度建立企业网站建设的目的门户网站建设的建议 苏州高端网站设计sh域名做的好的网站 首都医科大学网站建设嘉兴建站服务 深圳做网站报价网站和浏览器不兼容 深圳中国网站制作哪家公司好建设银行申请信用卡网站首页 东莞网站建设十大品牌360全景地图下载安装 怎样做视频网站的外链电影下载网站如何做 怎么把网页放到网站上hao123网址导航官网 新网站提交百度收录网站做照片 域名网站打开慢seo教程正规化岚鸿 在北京大学生做家教的网站新型建筑模板样品图片 平面设计师长逛的网站有哪些中国计算机软考网 网站怎么能在百度搜到网站做好了每年都要续费吗 做网站建设工资高吗国外的设计网站 网站icp不备案有关系吗58同城泰安 云南做网站费用智能网站排名优化 上海网站建设广告语下载网站php源码