下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
习题1.给出以下概念的解释说明。CPU的控制流正常控制流异常控制流进程逻辑控制流物理控制流并发(concurrency)并行(parallelism)多任务时间片进程的上下文系统级上下文用户级上下文寄存器上下文进程控制信息上下文切换内核空间用户空间内核控制路径异常处理程序中断服务程序故障(fault)陷阱(trap)陷阱指令终止(abort)中断请求信号中断响应周期中断类型号开中断/关中断可屏蔽中断不可屏蔽中断断点程序状态字寄存器程序状态字向量中断方式中断向量中断向量表异常/中断查询程序中断描述符表I/O中断时钟中断处理器中断现场信息I/O中断服务程序中断服务例程系统调用系统调用号系统调用处理程序系统调用服务例程2.简单回答下列问题。(1)引起异常控制流的事件主要有哪几类?(2)进程和程序之间最大的区别在哪里?(3)进程的引入为应用程序提供了哪两个方面的假象?这种假象带来了哪些好处?(4)“一个进程的逻辑控制流总是确定的,不管中间是否被其他进程打断,也不管被打断几次或在哪里被打断,这样,就可以保证一个进程的执行不管怎么被打断其行为总是一致的。”计算机系统主要靠什么机制实现这个能力?(5)在进行进程上下文切换时,操作系统主要完成哪几项工作?(6)在IA-32/Linux系统平台中,一个进程的虚拟地址空间布局是怎样的?(7)简述异常和中断事件形成异常控制流的过程。(8)调试程序时的单步跟踪是通过什么机制实现的?(9)在异常和中断的响应过程中,CPU(硬件)要保存一些信息,这些信息包含哪些内容?(10)在执行异常处理程序和中断服务程序过程中,(软件)要保存一些信息,这些信息包含哪些内容?(11)普通的过程(函数)调用和操作系统提供的系统调用之间有哪些相同之处?有哪些不同之处?(12)在IA-32中,中断向量表和中断描述符表各自记录了什么样的信息?3.根据下表给出的4个进程运行的起、止时刻,指出每个进程对P1—P2、P1-P3、P1-P4、P2—P3、P3-P4中的两个进程是否并发运行?进程开始时刻结束时刻PI]7P246P338P425参考答案:P1和P2并发;P1和P3并发;P1和P4并发;P2和P3并发;P3和P4并发。4.假设在IA-32/linux系统中一个main函数的C语言源程序P如下:unsignedshortb[2500J;unsignedshortk;main()(b[1000]=1023;6 b[2500]=2049%k;
7b[l0000]=20000;8 )经编译、链接后,第5、6和7行源代码对应的指令序列如下:1movw$0x3ff,0x80497d0//b[1000]=10232movw0x804a324,%cx//R[cx]=^3movw$0x801,%ax//Rlax]=20494xorw%dx,%dx//R[dx]=O5div%cx//R[dx]=2049%k6movw%dx,0x804a324//b[2500]=2049%%7movw$0x4e20,0x804de20//b[10000]=20000假设系统采用分页虚拟存储管理方式,页大小为4KB,第1行指令对应的虚拟地址为0x80482c0,在运行P对应的进程时,系统中没有其他进程在运行,回答下列问题。(1)对于上述7条指令的执行,是否可能在取指令时发生缺页异常?(2)执行第1、2、6和7行指令时,在访问存储器操作数的过程中是否会发生页故障或其他什么问题?哪些指令中的问题是可恢复的?哪些指令中的问题是不可恢复的?分别画出第1行和第7行指令所发生故障的处理过程示意图。(3)执行第5条指令时会发生什么故障?该故障能否恢复?参考答案:因为Linux在初始化时,通常将所有段的段基址都设为0,所以,虚拟(逻辑)地址就是线性地址。(1)第1行指令的虚拟地址为0x80482c0,其线性地址为0x80482co,而页大小为4KB,因此,第1行指令不是一个页面的起始地址,所以,在执行第1行指令前面的指令时,上述7条指令被同时装入主存,因而,上述7条指令的执行过程中都不会在取指令时发生缺页。(2)执行第1行指令过程中,数据访问时会发生缺页,但是是可恢复的故障。因为,对于地址为0x80497d0的b[1000]的访问,是对所在页面(起始地址为0x8049000,是一个4KB页面的起始位置)的第一次访问,因而对应页面不在主存。当CPU执行到该指令时,检测到缺页异常,即发生了页故障,此时,CPU暂停P对应的用户进程的执行,将控制转移到操作系统内核,调出内核中的“页故障处理程序”执行。在由故障处理程序中,检杳是否地址越界或访问越权,显然这里没有发生越界和越权情况,故将地址0x80497d0所在页面从磁盘调入内存,处理结束后,再回到这条movl指令重新执行,此时,再访问数据就没有问题了。处理过程如下图所示。用户讲程时于第2行指令的执行,数据访问时会发生缺页,因为在地址0x804a324位于起始地址为0x804a000的页面中,对地址0x804a324的访问是该页的第一次访问。与第1行指令的数据访问一样,是可恢复的故障。对于第6行指令的执行,数据访问时不会发生缺页,因为地址0x804a324所在的页面(其起始地址为0x804a000的页面)己经在主存中。但是,该指令的执行会破坏原来存放在地址0x804a324中的变量k的值。对于第7行指令的执行,数据访问时很可能会发生页故障,而且是不可恢复的故障。显然,a[10000]并不存在,不过,C编译器牛.成了对应的指令“movl$0x4e20,0x804de20”,其中的地址0x804de20偏离数组苜地址0x8049000(2达2x10000+2=20002个单元,即偏离了4、5个页面,很可能超出了可读写数据区范围,因而当CPU执行该指令时,很可能发生地址越界或访问越权。若是这样的话,CPU就通过异常响应机制转到操作系统内核,即调出内核中的页故障异常处理程序执行。在页故障处理程序中,检测到发生了地址越
界或访问越权,因而页故障处理程序发送一个“段错误”信号(SIGSEGV)给用户进程,用户进程接受到该信号后就调出一个信号处理程序执行,该信号处理程序根据信号类型,在扉幕上显示“段故障(segmentationfault)”信息,并终止用户进程。处理过程如下图所示。用户讲程movl$0x4e20,0x804de20用户讲程movl$0x4e20,0x804de20 页故障OS的页故障处理程序"检测到地址越界或访问越权,发送"SIGSEGV”信号给用户进程(3)因为这里忘记给k赋值,且上是未初始化的变量,所以k/E.bss节中。通常.bss节中的变量初值都自动设为0,因而,执行第5条指令时,会发生“整除0”故障,该故障是不能恢复的。5.若用户程序希望将字符串“hello,world!\n”中的14个字符显示在标准输出设备文件stdout匕则可以使用系统调用write对应的封装函数write。,“hello,world!\n”,14),在IA-32/Linux系统中,可以用以下机器级代码(用汇编指令表示)实现。1movl$4,%eax〃调用号为4,送EAX2movl$1,%ebx〃标准输出设备stdout的文件描述符为1,送EBX3movlSstring,%ecx〃字符串“hello,world!\n”的首地址等于string的值,送ECX4movl$14,%edx〃字符串的长度为14,送EDX5int$0x80〃系统调用针对上述机器级代码,回答下列问题或完成下列任务。(1)执行该段代码时,系统处于用户态还是内核态?为什么?执行完第5行指令后的下一个时钟周期,系统处于用户态还是内核态?(2)第5行指令是否属于陷阱指令?执行该指令时,通过5种类型(中断门、系统门、系统中断门、陷阱门和任务门)门描述符中的哪种类型门描述符来激活异常处理程序?对应的中断类型号是多少?对应门描述符中的字段P、DPL、TYPE的内容分别是什么?根据对应门描述符中的段选择符取出的GDT中的段描述符中的基地址、限界、字段G、S、TYPE(包含A)、DPL、D和P分别是什么?(3)参考第727节的内容,详细描述第5行指令的执行过程。参考答案:(I)因为该段代码执行的是用户程序的功能,因此,在执行第5行软中断指令(int$0x80)进行系统调用之前,系统处于用户态,执行完第5行指令后的下一个时钟周期,系统从用户态陷入到内核态执行。(2)第5行指令属于陷阱指令。执行该指令时,通过系统门(systemgate)描述符来激活异常处理程序,对应的中断类型号是128。对应门描述符中的P=1(Linux总是把P设成1),DPL=3,TYPE=111IBO根据对应门描述符中的段选择符取出的GDT中的段描述符应该是内核代码段对应的段描述符(Linux下设定为表6.2中所示的内核代码段,因为执行系统调用后应调出内核代码执行),所以,其基地址为0,限界为FFFFFH,G=l,S=l,TYPE=1010,DPL=0,D=l,P=l.(参看6.1.1节和7.2.8节)有关TYPE的含义参见下图。
type<8fl寸TYPE/说明•type>=8B寸十进制值・<3数据段♦TYPE/说明+,2只读」十迸制值。♦3R。A-代码段,I*3只读、已访问♦'8*13(Pa漱行/2〉2a皿读写♦22OP2只执行、已访问一3^Op2a读写、已访问「|1(P32wa执行、可读。42wa*只读、向下扩展」3i*3执行、可读、已访问,32w3只读、向下扩展、已访问“12/22a3只执行、一致」6^awip读写、向下扩展*13,I*533只执行、一致、已访问,7。aI*3w读写、向下扩展、已访问「1“w3执行、可读、一致*15^aI*51“执行、可读、一致、已访问"(3)第5行指令的执行过程如下:①确定中断类型号为128(0x80),从IDTR指向的IDT中取出第128个表项,这个表项实际上就是Linux初始化时在IDT的第128项中设定的系统门描述符,其中P=l,DPL=3,TYPE=1111B,段选择符为0x60,指向GDT中的内核代码段描述符(kernel_code)oLinux全局描述符表(GDT)如下。Unux全局描述符表null段选择野10x0Linux全局描述符豪 TSSLDTreserved0x800x38reservedPNPBIOS32-bhcode0x90reservedPNPBIOS16bitcode0x96notusedPNPBIOS16-bitdataOxaOnotusedPNPBIOS16-brtdau0xa8TLS#10x33PNPBIOS16bndataOxbOTLS120x3bAPMBIOS32-bitcode0xb8TLS#30x43APMBIOS16*bitcodeOxcOreservedAPMBIOSdata0xc8reservednotusedreservednotusedkernelcode0x60(_KfRNEL_CS)notusedkerneldata0x68(_KERNEL^DS)notusedusercode0x73(_USER_CS)notuseduserdataOx7b(_USER_DS)doublefuiltTSS0xf8匕②根据IDT中的段选择符,从GDTR指向的GDT中取出相应的段描述符,得到对应异常处理程序或中断服务程序所在段的DPL、基地址等信息。Linux下即为内核代码段,所以DPL为0,基地址为0。③将当前特权级CPL(CS寄存器最低两位,00为内核特权级,11为用户特权级)与段描述符中的DPL比较。若CPL小于DPL,则产生13号异常(#GP)。因为,Linux内核代码段的DPL总是0,因此不管怎样都不会发生CPL小于DPL的情况。④检查是否发生了特权级变化,即判断CPL是否与相应段描述符中的DPL不同。因为执行第5行指令时处于用户态,因此CPL=3,而DPL=0,故需要从用户态切换至内核态,以使用内核对应的栈。通过以下步骤完成栈的切换:a)读TR寄存器,以访问正在运行进程的TSS段;b)将TSS段中保存的内核栈的段选择符和栈指针分别装入寄存器SS和ESP,然后在内核栈中保存原来的用户栈的SS和ESPo⑤将第5行后面一条指令的逻辑地址写入CS和EIP,以保证内核程序处理后回到卜一条指令执行。⑥在当前栈中保
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026汽车后市场完整性评估与售后服务链重构策略
- 2026轻工业投资扩张方向与市场潜力评估报告
- 2026中国智能家居设备渗透率提升路径与商业模式探讨报告
- 2026中国新能源汽车传动轴行业市场现状供需分析及投资评估规划分析研究报告
- 2026中国叶黄素酯行业隐形冠军企业成长路径研究报告
- 2026Fast芯片组多场景压力测试与性能极限报告
- 2026中国数字营销行业深度分析与发展趋势与投资策略研究报告
- 2026马来西亚伊斯兰金融产品创新伊斯兰债券投资市场与全球竞争力比较分析
- 2026圣文森特和格林纳丁斯金融服务行业创新运营模式研究及投资产品设计变化分析
- 2026中国智能厨电行业市场现状分析及投资评估规划前景研究报告
- GB/T 13320-2025钢质模锻件金相组织评级图及评定方法
- 2026中国资源循环集团电池有限公司招聘4人备考题库及一套参考答案详解
- JJG(交通) 111-2012 前插式激光测距自动弯沉仪
- 《化工企业可燃液体常压储罐区安全管理规范》解读课件
- 高中高三数学解析几何专项课件
- GB/T 46623-2025金属增材制造成形件机械性能与其取样方向、位置的相关性
- 2025至2030中国生物质燃气设备行业市场发展分析及发展前景与投资报告
- 小儿败血症课件
- 危楼拆除安全培训课件
- 客运安全专题培训课件
- 心率失常教学课件
评论
0/150
提交评论