内存管理机制操作系统课程设计.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
内存管理机制操作系统课程设计

《操作系统》课程设计 课内存管理机制实践 系 院:计算机科学系 学生姓名: 王会娟 学 号:0734130132 专 业: 软件工程 年 级: 0701B 完成日期:2009年12月 指导教师: 刘栓 一、课程设计的性质与任务 二、课程设计的内容及其要求 时间片轮转法可选择进程 三、课程设计的时间安排 四、课程设计的 五、 2、数据结构及信号量定义的说明; LPVOID lpAddress, 分配内存区域的地址。当你使用VirtualAlloc来提交一块以前保留的内存块的时候,lpAddress参数可以用来识别以前保留的内存块。如果这个参数是NULL,系统将会决定分配内存区域的位置,并且围绕64-KB的范围   SIZE_T dwSize, 要分配或者保留的区域的大小。这个参数以字节为单位,而不是页,系统会根据这个大小一直分配到下页的边界DWORD   flAllocationType, 分配类型 ,你可以指定或者合并以下标志:MEM_COMMIT,MEM_AUTO_COMMIT,MEM_RESERVE和MEM_TOP_DOWN。   DWORD flProtect 指定了被分配区域的访问保护方式   分配类型 功能   MEM_COMMIT 在内存或者指定的磁盘页文件(虚拟内存文件)中分配一物理存储区域 函数初始化这个区域为0   MEM_PHYSICAL 该类型必须和MEM_RESERVE一起使用 分配一块具有读写功能的物理内存区   MEM_RESERVE 保留虚拟地址空间以便以后提交。   MEM_RESET   MEM_TOP_DOWN 告诉系统从最高可允许的虚拟地址开始映射应用程序。   MEM_WRITE_WATCH   访问类型   PAGE_READONLY 该区域为只读。如果应用程序试图访问区域中的页的时候,将会被拒绝访问PAGE_READWRITE 区域可被应用程序读写   PAGE_EXECUTE 区域包含可被系统执行的代码。试图读写该区域的操作将被拒绝。   PAGE_EXECUTE_READ 区域包含可执行代码,应用程序可以读该区域。   PAGE_EXECUTE_READWRITE 区域包含可执行代码,应用程序可以读写该区域。   PAGE_GUARD 区域第一次被访问时进入一个STATUS_GUARD_PAGE异常,这个标志要和其他保护标志合并使用,表明区域被第一次访问的权限   PAGE_NOACCESS 任何访问该区域的操作将被拒绝   PAGE_NOCACHE RAM中的页映射到该区域时将不会被微处理器缓存(cached)string的成员变量m_Name、m_avaiMem、m_phyMem、m_virtualMem、m_virtualTotal。 (4)双击“刷新”,代码如下: void CMemoryDlg::OnRefresh() { TCHAR namebuffer[256]; DWORD dwSize=256; GetComputerName(namrbuffer,dwSize); m_Name=namebuffer; MEMORYSTATUS mem_dail; GlobalMemoryStatus(mem_dail); m_avaiMem.Format(%ld MB,mem_dail.dwAvailPhys/(1024*1024)); m_phyMem.Format(%ld MB,mem_dail.dwTotalPhys/(1024*1024)); m_virtualMem.Format(%ld MB,mem_dail.dwAvailVirtual/(1024*1024)); m_virtualTotal.Format(%ld MB,mem_dail.dwTotalVirtual/(1024*1024)); UpdateData(FALSE); } (5)双击“申请内存”,添加代码如下: void CMemoryDlg::OnAllowmem() { bBuffer=(LPBYTE)VirtualAlloc(NULL,1024*128000,MEM_RESERVE,PAGE_READWRITE); if(bBuffer==NULL) { AfxMessageBos(失败!); } else AfxMessageBos(成功!); } 在MemoryDlg.cpp文件前定义全局变量: #define BASE_PTR 0x6000000000 LPBYTE bBuffer; (6)双击“提交”,添加代码如下: void CMemoryDlg::OnCommit() {

文档评论(0)

153****9595 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档