基本分頁存儲管理的模擬實現(xiàn) 課程設計.doc_第1頁
基本分頁存儲管理的模擬實現(xiàn) 課程設計.doc_第2頁
基本分頁存儲管理的模擬實現(xiàn) 課程設計.doc_第3頁
基本分頁存儲管理的模擬實現(xiàn) 課程設計.doc_第4頁
基本分頁存儲管理的模擬實現(xiàn) 課程設計.doc_第5頁
免費預覽已結束,剩余5頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

操作系統(tǒng)課程設計報告 基本分頁存儲管理的模擬實現(xiàn) 學 院 計算機科學與技術 專 業(yè) 計算機科學與技術( 師范) 學 號 學 生 姓 名 指導教師姓名 2012年6月 20日一 、設計目的與內容 1、 課程設計的目的:操作系統(tǒng)課程設計是計算機專業(yè)重要的教學環(huán)節(jié),它為學生提供了一個既動手又動腦, 將課本上的理論知識和實際有機的結合起來,獨立分析和解決實際問題的機會。 進一步鞏固和復習 作系統(tǒng)的基礎知識。 培養(yǎng)學生結構化程序、模塊化程序設計的方法和能力。 提高學生調試程序的技巧和軟件設計的能力。 提高學生分析問題、解決問題以及綜合利用C語言進行程序設計的能力。2、 設計內容: 根據設計要求實現(xiàn)對基本分頁存儲管理的模擬 3、 設計要求: 選擇恰當的數據結構表示頁表 進程名,進程所需頁數,進程進行的操作 (裝入/退出)等操作可有鍵盤輸入,也可從文件讀出。 每進行一次進程的裝入或者退出操作,就顯示出操作執(zhí)行后內存中各頁的分配情況。二、算法的基本思想主要功能函數:Void creatA() /內存初始化函數void NewNode(LinkList &L) /建立新進程函數void FreeNode(LinkList &L) /回收進程函數void Printf(LinkList L) /顯示所有進程信息void look(LinkList L) / 查看某個進程信息void showit() /顯示內存塊使用情況算法思想:通過creatA()函數將內存初始化,設置為未被占用,通過NewNode(LinkList &L)建立新進程,輸入進程號、進程名、進程大小,并計算出該進程所需的頁數,分配物理塊。通過FreeNode(LinkList &L)刪除你所要刪除進程的一切信息,并空出內存。用Printf(LinkList L)顯示以上兩個函數產生的所有進程信息。look(LinkList L)可以查看某個進程信息。Showit()函數內存塊使用情況。三、主要功能模塊流程圖 建立進程開 始p=L輸入進程號new_node-f輸入進程號次數j=0(j3,終止)p-f=new_node-f?Y進程存在,重新輸入Np = p-next輸入進程名稱、大小進程頁數n=size/1024若頁內地址k!=0,n=n+1顯示所需頁數頁數n物理塊數? 內存物理塊不足,新建進程失敗YN分配內存物理塊四、四、系統(tǒng)測試主要運行界面如下:建立進程:回收進程:內存使用情況:進程查看:五、結論 此基本分頁存儲管理模擬系統(tǒng)滿足了基本要求,可以對進程進行內存塊分配,并能對調用結束的進程回收內存塊。用戶界面設計為菜單模式,使用戶能夠容易使用。該程序不是通過頁面映像表(即頁表)顯示。由于時間關系和知識儲備不夠,對文件讀入程序無法實現(xiàn)。 六、源程序#include stdio.h#include stdlib.h#include string.hint A100; /內存物理塊,0:未使用,非0:已使用int max = 99; /記錄內存的物理塊數,值為A100最大下標int count = 100;/記錄內存未使用物理塊數typedef struct LNodeint f; /進程號char name8;/進程名int size; /進程大小int n; /進程頁數int ye100;/頁表,下標表示頁號,內容表示進程各頁所在物理塊struct LNode *next;LNode,*LinkList;/內存初始化void CreatA()int i = 0;for(i = 0;i f);j=0; while(p != NULL&jf!=new_node-f)p = p-next;elseprintf(n該進程已存在,重新輸入:);scanf(%d,&new_node-f); p = L;/p重新指向頭結點j+; if(jname);printf(n輸入進程的大小:);scanf(%d,&new_node-size);new_node-n=new_node-size/1024;k=new_node-size%1024;if(k!=0)new_node-n=new_node-n+1;printf(所需要的頁數為:);printf(%dn,new_node-n);if(new_node-n count)printf(n內存物理塊不足,新建進程失敗!nn);elsecount -=new_node-n;m = 0;for(i= 0; i= max; i+)if(Ai = 0 & m n) Ai=new_node-f;new_node-yem = i;m+;if(L = NULL)L = new_node;elsep = L;/查找最后一個節(jié)點while(p-next != NULL)p = p-next;p-next = new_node;new_node-next = NULL;else printf(n錯誤次數過多,返回主菜單:);/回收進程,釋放內存void FreeNode(LinkList &L)LinkList p,q;int z;printf(請輸入要刪除的進程號:);scanf(%d,&z);p = L;/查找進程;用p記錄q = p;while(p != NULL)if(p-f=z)printf(該進程已刪除);break;elseq = p;p = p-next;if(p = NULL)printf(n該進程不存在!n);elsefor(int i = 0; i n; i+)Ap-yei = 0;count += p-n;if(p-f= q-f)/要刪除的是頭結點L = p-next;elseq-next = p-next;/顯示所有進程占用的物理塊void Printf(LinkList L)int i = 0;printf(n內存物理塊分配情況:n);LinkList p = L;printf(n各進程信息:n);printf(進程號tt進程名稱t進程頁數t所用物理塊n);while(p != NULL)printf(%dtt,p-f);printf(%stt,p-name);printf(%dtt,p-n);int i;for(i = 0;i n; i+)printf(%d,p-yei);printf(n);p = p-next;/ 查看進程void look(LinkList L)int z;printf(輸入要查詢的進程號);scanf(%d,&z);LinkList p = L;while (p!=NULL)if(p-f =z)printf(進程號tt進程名稱t進程頁數t所用物理塊n);printf(%dtt,p-f); printf(%stt,p-name); printf(%dtt,p-n); int i; for(i = 0;i n; i+) printf(%d,p-yei); printf(n);break;else p=p-next; if(p=NULL)printf(要查詢的進程不存在n);/顯示內存塊使用情況,不分進程void showit()int i = 0;printf(n*n);printf(| 內存物理塊分配情況 |n);printf(*n);for(i = 0; i = max; i+)printf(%dt,Ai);if(i%10 = 9)printf(n);void main()CreatA();printf(n* 基本分頁算法 *n); LinkList L = NULL;int i = 0; do printf(n*菜單*n);printf( 1 進程裝入n);printf( 2 進程退出n);printf( 3 內存使用情況n);printf( 4 進程查看n);printf( 5 退出程序n);printf( *n);printf(請輸入你的選擇(select):);scanf(%d,&i);switch(i)case 1:NewNode(L);/建立新的進程 Printf(L);/輸出內存物理塊分配情況和

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論