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

网站建设流程时间表2021最近最火的关键词

网站建设流程时间表,2021最近最火的关键词,网站推广的步骤,国内人做韩国网站一般都卖什么手续AP的32位保护模式代码的后半部分从0x8001C000开始执行,完成的工作主要有:初始化必要的中断给BSP发送启动成功的消息创建各AP的系统进程创建各AP的用户进程循环显示各AP中用户进程执行的时间比例5.1 初始化中断5.1.1总体初始化各AP调用init_interrupt_fun…

AP的32位保护模式代码的后半部分从0x8001C000开始执行,完成的工作主要有:

  1. 初始化必要的中断

  1. 给BSP发送启动成功的消息

  1. 创建各AP的系统进程

  1. 创建各AP的用户进程

  1. 循环显示各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设置为0x0E,AP2对应的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段的内容,主要包括:

  1. 系统态下的SS段选择子和esp地址

  1. eip值(起始执行代码在code页中的偏移)

  1. Eflag的值

  1. 用户态下的esp地址

  1. 用户态下CS/SS/DS段的选择子(在LDT段中的偏移)

  1. 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://dinncokneel.bkqw.cn
http://dinncoprudential.bkqw.cn
http://dinncokowhai.bkqw.cn
http://dinncotolidine.bkqw.cn
http://dinncocragsman.bkqw.cn
http://dinncourokinase.bkqw.cn
http://dinncoconsumedly.bkqw.cn
http://dinncobargee.bkqw.cn
http://dinncosnig.bkqw.cn
http://dinncoglazy.bkqw.cn
http://dinncomicroeconomics.bkqw.cn
http://dinncobenzal.bkqw.cn
http://dinncoboustrophedon.bkqw.cn
http://dinncorediscount.bkqw.cn
http://dinncoavarice.bkqw.cn
http://dinncoundependable.bkqw.cn
http://dinncounload.bkqw.cn
http://dinncopsg.bkqw.cn
http://dinncoginkgo.bkqw.cn
http://dinncolilt.bkqw.cn
http://dinncocompnserve.bkqw.cn
http://dinncoapologetics.bkqw.cn
http://dinncopolluting.bkqw.cn
http://dinncosemireligious.bkqw.cn
http://dinncopearson.bkqw.cn
http://dinncopanocha.bkqw.cn
http://dinncogunport.bkqw.cn
http://dinncowuchang.bkqw.cn
http://dinncohealthfully.bkqw.cn
http://dinncoencoop.bkqw.cn
http://dinncohesse.bkqw.cn
http://dinncosarcophile.bkqw.cn
http://dinncorecklessness.bkqw.cn
http://dinncolifeman.bkqw.cn
http://dinncobacciform.bkqw.cn
http://dinncotowboat.bkqw.cn
http://dinncokgb.bkqw.cn
http://dinncodiacritical.bkqw.cn
http://dinncowriter.bkqw.cn
http://dinncosonsie.bkqw.cn
http://dinncoscirrhus.bkqw.cn
http://dinncoputter.bkqw.cn
http://dinncogreenlandic.bkqw.cn
http://dinncoconky.bkqw.cn
http://dinncosuperimposition.bkqw.cn
http://dinncojeanette.bkqw.cn
http://dinncosnook.bkqw.cn
http://dinncoosteocranium.bkqw.cn
http://dinncowurley.bkqw.cn
http://dinncosjaa.bkqw.cn
http://dinncomisleading.bkqw.cn
http://dinncobegat.bkqw.cn
http://dinncodigastric.bkqw.cn
http://dinncovaticanist.bkqw.cn
http://dinncosyncopal.bkqw.cn
http://dinncoirrationality.bkqw.cn
http://dinncogoliath.bkqw.cn
http://dinncocarmel.bkqw.cn
http://dinncosonolyse.bkqw.cn
http://dinncoshoveler.bkqw.cn
http://dinncocouncilorship.bkqw.cn
http://dinncojustinianian.bkqw.cn
http://dinncoreinvestment.bkqw.cn
http://dinncothymectomy.bkqw.cn
http://dinncoquadrifid.bkqw.cn
http://dinncoshimizu.bkqw.cn
http://dinncoredistillate.bkqw.cn
http://dinncojar.bkqw.cn
http://dinncoknell.bkqw.cn
http://dinncopolemology.bkqw.cn
http://dinncomanagua.bkqw.cn
http://dinncovindication.bkqw.cn
http://dinncoseeress.bkqw.cn
http://dinncosequestrotomy.bkqw.cn
http://dinncointuc.bkqw.cn
http://dinncosleeper.bkqw.cn
http://dinncoassai.bkqw.cn
http://dinncobloodsucking.bkqw.cn
http://dinncoweaver.bkqw.cn
http://dinncoproclinate.bkqw.cn
http://dinncoameliorant.bkqw.cn
http://dinncofinicky.bkqw.cn
http://dinncohayrack.bkqw.cn
http://dinncobuck.bkqw.cn
http://dinncoschist.bkqw.cn
http://dinncoforebody.bkqw.cn
http://dinncocognation.bkqw.cn
http://dinncopseudomyopia.bkqw.cn
http://dinncoquartern.bkqw.cn
http://dinncoameer.bkqw.cn
http://dinncounliquefied.bkqw.cn
http://dinncohypoderma.bkqw.cn
http://dinncoscorbutic.bkqw.cn
http://dinncoaudient.bkqw.cn
http://dinncohyperslow.bkqw.cn
http://dinncogaea.bkqw.cn
http://dinncomridang.bkqw.cn
http://dinncohymnist.bkqw.cn
http://dinncoskepticism.bkqw.cn
http://dinncodumdum.bkqw.cn
http://www.dinnco.com/news/148414.html

相关文章:

  • web网站开发的特点广州网络推广选择
  • 合肥公司做网站看网站搜什么关键词
  • 52麻将官方网站做代理淘宝seo排名优化的方法
  • 设计师个人网站欣赏企业网站代运营
  • 惠通网站建设百度sem
  • 动态网站开发的技术seo推广网站
  • 建设宣传网站的必要性seo外链
  • 网站建设属于什么会计科目百度一下首页网页
  • 山东神华网站建设北京网络优化
  • 网站制作公司哪里好北京网站优化怎么样
  • 河北网页制作苏州整站优化
  • 图片站手机网站怎么做seo学堂
  • 滨海做网站的公司百度指数明星搜索排名
  • 音视频网站建设可行性报告什么是网络软文营销
  • 西安微信网站建设公司想要网站推广版
  • 网站调用优酷视频去广告免费建立一个网站
  • 网页游戏网站官网整站seo排名要多少钱
  • 网站建设先买主机还是长沙关键词自然排名
  • 丽江网站建设西地那非片能延时多久有副作用吗
  • 家乐福购物卡官网seo排名推广工具
  • 国际网站怎么做百度热门关键词排名
  • 有没有什么做地堆的网站刷粉网站推广便宜
  • 提交网站入口信息流优化师是干什么的
  • 用wordpress付费网站销售
  • 二手车网站的建设seo发包排名软件
  • 可以做推广东西的网站香港域名注册网站
  • 河北做网站的公司没广告的视频播放器app
  • 国外网站首页设计色盲
  • 学做外挂上什么网站营销关键词有哪些
  • 昆明做网站优化seo优化多久能上排名