- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统存储器管理实验报告
实验2 存储器管理
实验目的
编程模拟实现存储器页面置换的常用算法,调试分析相关存储器管理程序,加深对存储器页面置换常用算法的理解和实现技巧
实验内容
自定义存储器管理有关的数据结构;
依据最佳置换算法(Optimal)、先进先出置换算法(FIFO)、最近最久未使用算法(LRU)原理,编写对应函数,模拟系统的存储器页面置换功能;
为了更好地模拟和评价算法的性能,允许用户自行指定可用页块数并输入需访问的页面号序列;
统计以上算法实际需要的总页面数、缺页中断次数以及它们的缺页率;
比较/分析以上算法的置换性能,并作出自己的评价。
预备知识
存储器页面置换常用算法的相关知识参考课堂《计算机操作系统》教材
实验指导
请求分页存储器管理模拟系统界面
图3.1请求分页存储器管理模拟系统界面
图形界面可以自行设计、也可以使用控制台终端输出信息。“访问页面号序列”和“页块数”为输入信息,列表框(或编辑框)“具体的页面置换情况”及其统计数据为输出信息。控制台终端的输出信息可以通过剪贴板复制保存为电子实验记录文件。图形界面可以通过“保存”按钮保存列表框的输出信息。采用编辑框显示的输出信息,也可以通过剪贴板复制保存。Optimal、LRU、FIFIO算法分别由其对应按钮或函数实现。
2、全局变量
int PageSeq[MAXPAGENUM]; //用来放置页面号序列的整型数组
CString pageSeqNum; //带分隔符的访问页面序列字符串备份
int totalPageCount; //实际输入的总页面数
int failPageCount; //缺页中断次数
int pageBlock[9],priority[9]; //已在内存页面号, 及其优先数
bool metathesis,space; //是否缺页, 是否有空页
CString str,memo,output; //信息标题, 调页记录, 输出信息
3、主对话框类声明
class CPageMetathesisDlg : public CDialog
{
// Construction
public:
BOOL UpdatePageSeq();
void Optimal(int *,int);
void LRU(int *,int);
void FIFO(int *,int);
CPageMetathesisDlg(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CPageMetathesisDlg)
enum { IDD = IDD_PAGEMETATHESIS_DIALOG };
CEdit m_BlockCount_Control;
CListBox m_Display;
CEdit m_PageSeqNum_Control;
CString m_Hint;
CString m_PageSeqNum;
int m_BlockCount;
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CPageMetathesisDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
HICON m_hIcon;
// Generated message map functions
//{{AFX_MSG(CPageMetathesisDlg)
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnButtonClr();
afx_msg void OnButtonExit();
afx_msg void OnButtonLru();
afx_msg void OnButtonFifo();
afx_msg void OnButtonOptimal();
afx_msg void OnButtonSave();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
4、参考代码
//实现Optimal算法的函数
void CPageMetathesis
文档评论(0)