#define PDT 3 // 页目录表的下标 #define PT1 4 // 第1 个页表的下标 #define PT2 5 // 第2 个页表的下标 #define PT3 6 // 第3 个页表的下标 #define PT4 7 // 第4 个页表的下标 // ......省略其它页表 #define CODE 20 #define STACK 21 #define DATA 22 #define BUFFER 23 #define DISPLAYMEM 24
2、初始化页目录表、页表中的数据
p = (unsigned int *)PysicalMemAddr[PDT]; // p 指向页目录表
p[FirstLinearAddr>>22] = (unsigned int)PysicalMemAddr[PT1];// 将第1 个页表的地址填入页目录表中
p = (unsigned int *)PysicalMemAddr[PT1]; // p 指向第1 个页表
p[(FirstLinearAddr+4096*IDT)>>12 & 0x3FF] = (unsigned int)PysicalMemAddr[IDT];// 将 IDT 页的起始地址填入页表
p[(FirstLinearAddr+4096*TSS)>>12 & 0x3FF] = (unsigned int)PysicalMemAddr[TSS];// 将 TSS 页的起始地址填入页表 p[(FirstLinearAddr+4096*GDT)>>12 & 0x3FF] = (unsigned int)PysicalMemAddr[GDT];// 将 GDT 页的起始地址填入页表 p[(FirstLinearAddr+4096*PDT)>>12 & 0x3FF] = (unsigned int)PysicalMemAddr[PDT];// 将 PDT 页的起始地址填入页表 p[(FirstLinearAddr+4096*PT1)>>12 & 0x3FF] = (unsigned int)PysicalMemAddr[PT1];// 将 PT1 页的起始地址填入页表 p[(FirstLinearAddr+4096*PT2)>>12 & 0x3FF] = (unsigned int)PysicalMemAddr[PT2];// 将 PT2 页的起始地址填入页表 p[(FirstLinearAddr+4096*PT3)>>12 & 0x3FF] = (unsigned int)PysicalMemAddr[PT3];// 将 PT3 页的起始地址填入页表 p[(FirstLinearAddr+4096*PT4)>>12 & 0x3FF] = (unsigned int)PysicalMemAddr[PT4];// 将 PT4 页的起始地址填入页表
3、虚拟地址到物理地址的变换
linear = 0xC0401010;
p = (unsigned int *)PysicalMemAddr[PDT]; // p 指向页目录表 pTable = (unsigned int *)p[linear>>22]; // pTable 指向页表 pChar = (char *)pTable[linear>>12 & 0x3FF]; // pChar 指向物理内存 printf(\自行变换线性地址:C0404010H、C0414010H
四、实验材料的提交与成绩评定
1、本实验的实验报告一份(电子版或纸质版一份,具体形式由任课教师确定,格式参考学院统一实验报告)
2、实验源程序一份,请表明题号(电子版)
备注:做下一次实验之时提交上一次实验的材料,由各班学习委员以班为单位收集并上交任课教师。
3、实验成绩总分为10分,由指导老师根据学生实验表现和实验材料进行评定,本门课程结束后实验平均成绩(实验总成绩/实验次数)按照10%的比例记入期末考试总成绩。
实验八 页面置换算法的模拟实现
一、实验目的
1、熟悉基本分页存储管理。 2、掌握FIFO页面置换算法。 3、掌握LRU页面置换算法。
二、实验理论基础及教材对应关系
1、操作系统中内存管理。
2、基本分页内存、分段内存管理。 3、常用页面置换算法的实现。
三、实验内容与步骤
1、定义相关数据
#define InitPysiBlocks 4 #define MaxPages 16:
unsigned int PysicalBlocks[InitPysiBlocks] = { 0 };
unsigned int PageSequence[30] = { 1,2,3,6,4,7,3,2,1,4,7,5,6,5,2,1};
2、按照教材中FIFO、LRU算法描述进行算法设计 unsigned FIFO(unsigned *py,unsigned *pg) unsigned LRU(unsigned *py,unsigned *pg) 3、查看运行结果是否与手工计算一致。
四、实验材料的提交与成绩评定
1、本实验的实验报告一份(电子版或纸质版一份,具体形式由任课教师确定,格式参考学院统一实验报告)
2、实验源程序一份,请表明题号(电子版)
备注:做下一次实验之时提交上一次实验的材料,由各班学习委员以班为单位收集并上交任课教师。
3、实验成绩总分为10分,由指导老师根据学生实验表现和实验材料进行评定,本门课程结束后实验平均成绩(实验总成绩/实验次数)按照10%的比例记入期末考试总成绩。
实验九 磁盘调度中的电梯调度算法实现
一、实验目的
1、掌握操作系统中I/O管理。
2、理解磁盘的工作原理与各种调用算法。 3、掌握SCAN(电梯调度)算法的实现。
二、实验理论基础及教材对应关系
1、操作系统中IO管理。 2、操作系统的磁盘调度算法。
三、实验内容与步骤
1、参照教材第5章第6节的相关描述和图5-27的具体数据,进行算法设计并验证是否与手工计算相一致。 其余步骤前述实验(略)。
四、实验材料的提交与成绩评定
1、本实验的实验报告一份(电子版或纸质版一份,具体形式由任课教师确定,格式参考学院统一实验报告)
2、实验源程序一份,请表明题号(电子版)
备注:做下一次实验之时提交上一次实验的材料,由各班学习委员以班为单位收集并上交任课教师。
3、实验成绩总分为10分,由指导老师根据学生实验表现和实验材料进行评定,本门课程结束后实验平均成绩(实验总成绩/实验次数)按照10%的比例记入期末考试总成绩。