某学院操作系统课程设计报告(存储管理实验)内容摘要:
uction* 100% 结束 从 main[] 获取一个 CPU待处理得页面号 Y 该 page[]单元是否在内存中。 将内存页面和待处理的进程页面建立联系 是否有位 于内存中、以后 CPU不再处理的页面。 pagecontrol是否占满。 将其换出 找出 CPU最晚处理到的页面,将其换出 【 代码 】 文件: ifndef _PAGE_H //(条件编译命令)如果 —— PAGE_H 之前未被定义则编译 define_page_h define _PAGE_H //宏定义 class CPage { public: //以下的为公用部分 int m_nPageNumber, m_nPageFaceNumber, m_nCounter, m_nTime。 // 以上是定义 4 个类成员 ,都定义为整形变量 }。 endif 文件 : ifndef _PAGECONTROL_H //若 _PAGECONTROL_H 之前的未被定义则编译 define_pagecontrol_h define _PAGECONTROL_H class CPageControl { public: int m_nPageNumber,m_nPageFaceNumber。 class CPageControl * m_pNext。 //类似于一个结构体 }。 endif 文件 : ifndef _MEMORY_H //(条件编译)若 _MEMORY_H之前没被定义过,则编译 ifndef _MEMORY_H define _MEMORY_H //宏定义 class CMemory { //声明一个名为 CMemory 的类 public: //声明以下部分为公有的(即公有部分) CMemory()。 //构造函数 void initialize(const int nTotal_pf)。 //初始化函数对相关页面赋值 void FIFO(const int nTotal_pf)。 //先进先出的算法 void LRU(const int nTotal_pf)。 //最近最少使用的算法 void NUR(const int nTotal_pf)。 //最近未使用算法 void OPT(const int nTotal_pf)。 //最佳置换算法 //以上是对构造函数的原型声明 private: //声明以下部分为私有的成员变量 vectorCPage _vDiscPages。 vectorCPageControl _vMemoryPages。 //以上是分别创建两个向量的对象 ,_vDiscPages 和 _vMemoryPag CPageControl *_pFreepf_head,*_pBusypf,*_pBusypf_tail。 //定义 3 个指针变量,依次是空页面头的指针, 忙页面头的指针,忙页尾的指针 vector〈 int〉 _vMain,_vPage,_vOffset。 //定义 3 个增长数组 int _nDIseffect。 //定义一个整型变量,表示页面换入的次数 }。 CMemory::CMemory():_vDicsPages(TOTAL_VP), //以下是对构造函数里 用到的成员函数 _vMemoryPages(TOTAL_VP), //内存也 _vMain(TOTAL_VP), _vPage(TOTAL_INSTRUCTION), _vOffset(TOTAL_INSTRUCTION), //Offset 是, 320 份中每页的平均偏移量 int s,i nRand。 //定义 3 个整型变量,以备下面计 算随机序列所用 srand(getpid()*10)。 //以 getpid()*10 为种子产生随机数 nRand=rand()%32767。 //根据前面的种子,返回一个随机数, 对其取模余后赋给 nRand s=(float)319*nRand/32767+1。 //计算 s for(i=0。 iTOTAL_INSTRUCTION。 i+=4) { _vMain[i]=s。 //将 s 赋给随即序列 _vMain[i+1]= _vMain[i]+1。 nRand=rand()%32767。 _vMain[i+2]=(float)_vMain[i]*nRand/32767。 _vMain[i+3]= _vMain[i+2]+1。 nRand=rand()%32767。 s=(float)nRand*(318_vMain[i+2])/32767+_vMain[i+2]+2。 } for(i=0。 iTOTAL_INSTRUCTION。 i++) { _vPage= _vMain[i]/10。 _vOffset[i]= _vMain[i]%10。 //偏移量为随即序列对 10 取模余 _vPage[i]%=32。 } }/* 以上程序用于产生一个随机的进程页面序列 */ void CMemory::initialize(const nt nToatl_pf) { //对构造函数 initialize 的定义 int ix。 //定义一个临时变量 _nDiseffect=0。 //初始化页面换入次数为零 for(ix=0。 ix()。 ix++) { //for 循环,如果 ix 少于物理页的 size,则进行下面操作 _vDiscPages[ix].m_nPageNumber=ix。 //将 ix 赋为进程页面的页号 _vDiscPages[ix].m_nPageFaceNumber=INVALID。 //初始化页面号码为 INVALID,此时没把页面调入内存 _vDiscPages[ix].m_nCounter=0; //计数器初始化为零 _vDiscPages[ix].m_ntime=1。 //m_nTime 是一个用来记录某页面多久没被 CPU 使用的属性, 将其初始化为 1 } for(ix=1。 ixnTotal_pf。 ix++) { //当 ix 少于总共页面数时,执行 for 循环 _vMemoryPages[ix].m_pNext=amp。 _vMemoryPages[ix]。 //将内存页的地址赋给它的下一页 _vMemoryPages[ix].m_nPageFaceNumber=ix1。 //内存页面号码为 ix1 }/*此时,跳出 for 循环 */ _vMemoryPages[nTotal_pf1].m_pNext=NULL。 //内存最后一页的所指向的下一页为空 _vMemoryPages[nTotal_pf1].m_nPageFaceNumber=nTotal_pf1。 //内存最后一页的页面号码为 nTotal_pf1 _pFreepf_head=amp。 _vMemoryPages[0]。 //将空页面的头指针指向内存页中下标为 0 的那一页 } /*initialize () 是对程序执行前进行初始化,尚未有页面调入内存 *? void CMemory::FIFO(const int nTotal_pf) { int i。 CPageControl *p。 //定义 CPageControl 的指针 P initialize(nTotal_pf)。 //调用构造函数 initialize() _pBustpf_head=_pBustpf_tail=NULL。 //忙时的头指针和忙时的尾指针置空 for(i=0。 iTOTAL_INSTRUCTION。 i++){ //调入内存的次数 i 小于页面使用总数,执行 for 语句 if(_vDiscPages[_vPage[i]].m_nPageFageNumber==INVALID) //要调入的页面号不存在内存页面中,则执行 if 语句 { _nDiseffect+=1。 //页面交换总数加 1 if(_pFreepf_head==NUL。某学院操作系统课程设计报告(存储管理实验)
相关推荐
奖励新马泰游一次给 营运总经理 助理和部 4 门 经理 ;当年获得 4 次季度优秀团队的 部门 ,各奖励欧洲游一次给 营运总经理助理和部门 经理。 奖励旅游于次年起 1 年内享受完毕,逾期不再享受。 5.各项管理指标具体考核内容公司另文通知 ,由质检部门的人员和我们共同进行考核 ; 6.各项管理指标所占考核分值可根据公司阶段性工作重点进行调整。 三、因岗位变动的年绩效考核办法。 1.
\nOr you can ask yourteacher for help.\n)。 break。 } } } else printf(User canseled\nGood Bye\n)。 } 表表 81 实实 验验 设设 计计 的的 文文 件件 系系 统统 与与 真真 正正 文文 件件 系系 统统 的的 区区 别别 调用中断访问外存 调用库函数访问外存 不依赖于其他操作系统 依赖其他操作系统
盖章确认。 (《调价补差核算表》参见如下格式) 调价补差核算表 日期 供货商 品牌型号 原供价 现供价 单台调价 盘库数 调价补差 02/12/5 上海盛南通讯设备有限公司 TCL8388 1300 1100 200 15 3000 02/12/5 上海盛南通讯设备有限公司 TCL8988 1500 1350 150 10 1500 合计 25 4500 1. 3.
露因本人职务而获取的 甲方 内部商业机密以及客户的内幕消息, 决不利用该信息为本人或其他个人和机构的利益服务, 不利用内幕消息为他人买卖证券提供咨询,决不探询、获取、使用未经授权的保密信息 , 发现秘密被泄露或是有可能被泄露的,及时向 甲方 反映 ; 如若 乙方 因故离职, 乙方 理解并 承诺 : ( 1) 将在规定的时间内按照 甲方 规定程序办理离职手续; ( 2)
月 第六十 四 条 加班值班补贴:见公司加班值班管理办法。 第六十 五 条 交通补贴 (含于本薪水中) : 业务部 门 100 元 /月 ,中层及以上级别 200 元 /月 ,其余人员根据公司规定的标准及相关主管审核后方可报销。 未经请示领导批准 ,所有打车费及其他车旅费一律不予报销 . 第六十 六 条 午餐补贴: 150 元 /月 (特殊岗位工资中补贴,其他发放餐卡) □ 奖励类: 第六十 七
检修工作中的安全注意事项,班后会总结工作经验,杜绝不安全因素的发生,班长日志中应有详细、真实的记录。 严格执行工作票制度。 工作负责人在填写工作票时要认真审核每项安全措施,在没有做好安全措施时,不准进行检修,严禁擅自扩大工作范围和无票作业并履行好自身的安全责任。 在检修施工中,严格执行《电业安全工作规程》中的规定。 在禁火区域进行检修工作,必须办理动火工作票,在变电站内、现场安全通道附近