- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
11级《操作系统原理实验》试卷A及答案11级《操作系统原理实验》试卷A及答案
《中山大学授予学士学位工作细则》第六条
考试作弊不授予学士学位
《》期末试考试时间小时
FloppyWriter)写入(C/H/S=80/4/63的)10MB硬盘映像文件后,可创建(不含引导代码的)分离的主引导扇区和(序列号为你学号的)FAT12的分区引导扇区,初始化两个FAT表,并在根目录中添加名为“10MB OS HD”卷标条目。
编写可生成COM文件的完整汇编程序,要求在文本屏幕顶行中央,每间隔一秒钟,交互显示黑底亮白字的字符O和S。
已知已经初始化好的GDTR指针为GdtPtr,已知32位代码段的选择符为SelectorCode32,写出进入保护模式汇编程序的剩余代码部分。
《操作系统原理实验》试题参考答案
一.填空题(每小题2分,共30分)
虚拟机中的Linux(Ubuntu)、VMware
1.44、FAT12
FS、GS
256、32
mount、GCC
org、-Ttext
Executable and Linkable Format、可执行与可链接格式
0、10h
内存(访问)保护、虚拟内存(管理)
GDTR、LDTR、IDTR、TR
64、16
保存任务运行现场(用于任务切换)、全局(GDT)
CR0、最低/0/PE
CPL、DPL、RPL
目标、首个先决条件(源代码文件)
二.问答题(每小题5分,共30分)
实模式下的进程调度涉及三种不同的栈:应用程序栈、进程表栈、内核栈。其中的进程表栈,只是为了保存和恢复进程的上下文寄存器值,而临时设置的一个伪局部栈,不是正常的程序栈。
在时钟中断发生时,实模式下的CPU会将FLAGS、CS、IP先后压入当前被中断进程(应用程序)的堆栈中。为了及时保护中断现场,进程调度程序将所有上下文寄存器也保存在被中断程序的堆栈中。
在调度程序中,再切换到进程表栈,将这些寄存器值复制到内核进程表中的对应PCB中。
为了能够同时完成进程切换和栈切换,先切换到下一进程的栈,再将返回指令RETF所需的IP和CS的值,预先压入此栈中,在恢复上下文寄存器值后,再使用RETF指令进行进程切换。
可访问大容量内存、提供内存保护、支持内存分页/虚拟内存管理。
保护模式下可访问32位的地址空间,突破了实模式的20位地址空间限制;
在保护模式下,提供了段长和特权级,通过特权级验证、访问限制和越界检查,可以保护操作系统和应用程序的代码和数据不被非法访问和修改。而实模式下无任何访问控制,一个程序都可以访问和修改任何其他程序的代码和数据,无任何安全可言;
保护模式下提供了建立在基本的带保护的分段机制之上的内存分页机制,支持虚拟内存管理。而实模式下只有无保护的分段机制;
大容量内存的访问、内存的保护和分页,是构建现代操作系统的基础。
在保护模式下,16位的段寄存器的内容,不再是实模式下(最大64KB段长的)段基址,而是指向段描述符的一种数据结构段——选择符,包含段描述符表(GDT或LDT)的索引(偏移值,因为描述符的大小为8字节,所以该偏移值的低3位为0)和特权级等设置。其低2位为特权级别,第3位为0/1对应于全局/局部描述符表,高13位为在描述符表中的偏移值(的高13位)。其实在IA-32处理器中,为了避免地址转换时的频繁内存访问,除了6个可见的段寄存器外,还有隐藏不可见的与每个段寄存器对应的64位影子结构(内容来自段描述符),包含段的基地址、界限和访问信息,用于实现分段管理中的定位和保护功能,它们会在(用MOV指令)装入选择符时被CPU由对应描述符来同步设置。
GDT:Global Descriptor Table,全局描述符表,可含有(系统程序的代码段和数据段的)段描述符和LDT、IDT、TSS、任务门和调用门等描述符表项,用于程序和LDT、IDT、TSS、任务等的寻址。
LDT:Local Descriptor Table,局部描述符表,可含有(应用程序的代码段、数据段和堆栈段的)段描述符、任务门和调用门描述符表项,一般用于应用程序的寻址。
区别:GDT可包含LDT、IDT和TSS等描述符表项,可用于访问操作系统内核及LDT、IDT和TSS等系统数据结构,LDT不能可包含LDT、IDT和TSS等描述符表项,只能用于访问应用程序的各种段。整个系统只有一个GDT,而每个应用程序一般都有一个自己的LDT(但是CPU中只有一个LDTR寄存器,用于存放当前应用程序的LDT)。GDT本身不是一个段,而LDT本身是一个段(为LDT类型的系统段),GDT中必须包含指向每个LDT段的段描述符,使用对应的段选择符访问。
准备页目录PD和页表PT(分配内存空间、在描述符表中增加PD和PT的段描述符)
让控制寄存器CR3指向PD的起始地址
置控制寄存器CR0的最高位PG为1
短跳转启动分页机制
逻辑地址:
构成:
文档评论(0)