第一篇:操作系統課程設計--基于Windows進程互斥實現機制
學生姓名:
班 學 號:193121 指導教師:袁國斌
中國地質大學計算機學院 2013年 12 月 4 日 操作系統課程實驗報告 實習題目:基于Windows進程互斥實現機制
【需求規(guī)格說明】
基于Microsoft Visual Studio環(huán)境的多線程編程驗證互斥的原理,理解多線程編程中關鍵元素的定義與使用,通過使用Semaphore,mutex等控制元素,實現對生產者消費者模型的真實模擬。函數的功能與實現自己定義。
【算法設計】
(1)設計思想:
通過輸入生產者消費者數量信息,以及緩沖區(qū)大小、循環(huán)次數來實現對生產者消費者模型的真實模擬。當緩沖區(qū)Buffer為空時,等待生產者生產,消費者停止消費;當緩沖區(qū)Buffer為滿時,等待消費者消費,生產者停止生產。
(2)設計表示:
? 用Buffer_Size 定義緩沖區(qū)大小 ? 用變量Thread[]數組來存儲線程
? 使用函數調用ProducerPrintf()來輸出生產的情況 ? 使用函數調用ConsumerPrintf()來輸出正在消費的情況 ? 通過如下同步對象實現互斥:
? 設一個互斥量Mutex,實現生產者在查詢和保留緩沖區(qū)的下一個空位置時進行互斥。
? 設置Semaphore信號量數組表示相應產品已經生產,實現生產者與消費者之間的同步。同時,用表示空緩沖區(qū)樹木的信號量semephore指示是否存在空位置,實現類似的同步,以便開始下一個產品的生產。? 設置臨界區(qū)對象數組Critical實現每個緩沖區(qū)上消費者之間的互斥
(3)詳細設計表示:
主要過程:
1.主函數
2.輸入并讀取消費者生產者數量信息 3.輸入緩沖區(qū)大小及循環(huán)操作次數
4.創(chuàng)建生產線程和消費線程完成線程相關同步對象的初始化 5.創(chuàng)建線程,模擬生產者和消費者 6.等待所有線程結束 7.程序結束
消費者線程:
1.有無消費請求?有,則繼續(xù),無,則結束 2.進入臨界區(qū)(請求同一產品的消費者之間互斥)3.消費產品,并判斷是否應該釋放產品所占緩沖區(qū) 4.退出臨界區(qū) 5.結束消費者線程
生產者線程:
1.存在空緩沖區(qū)?有,則繼續(xù);無,則阻塞退出 2.進入臨界區(qū)(請求同一產品的生產者之間互斥)3.在緩沖區(qū)中為本線程產品分配空間 4.退出臨界區(qū)
5.寫入產品到分配的緩沖區(qū)空間中 6.結束生產者線程
【調試報告】、【附錄】
#include
int NUM=0;//定義緩沖區(qū)中產品數量的變量 int P_NUM=1;//生產次數計數
int C_NUM=1;//消費次數計數 int times=0;//循環(huán)次數
int Buffer_Size=0;//定義緩沖區(qū)大小的變量
HANDLE Mutex;//互斥信號量
HANDLE FullSemaphore;//當緩沖區(qū)滿是使生產者等待 HANDLE EmptySemaphore;//當緩沖區(qū)空時使消費者等待 HANDLE Thread[N];//存儲線程的數組
DWORD WINAPI producer(LPVOID);DWORD WINAPI consumer(LPVOID);DWORD Producer_ID[N/2];DWORD Consumer_ID[N/2];
void ProducerPrintf();//輸出生產的情況 void ConsumerPrintf();//輸出正在消費的情況
void main(){ int i=1;int P_thread=0,C_thread=0;//定義線程變量
int choice=0;printf(“t*****************************************n”);printf(“t*t歡迎進入P-C進程調度系統 *n”);printf(“t*t
1、進入模擬調度 *n”);printf(“t*t 0、退出本系統 *n”);printf(“t*****************************************n”);printf(“tt請選擇:”);
//創(chuàng)建生產線程和消費線程 for(i=0;i
//創(chuàng)建信號量
Mutex=CreateMutex(NULL,FALSE,NULL);FullSemaphore=CreateSemaphore(NULL,Buffer_Size-1,Buffer_Size-1,NULL);EmptySemaphore=CreateSemaphore(NULL,0,Buffer_Size,NULL);WaitForMultipleObjects(P_thread+C_thread,Thread,TRUE,INFINITE);//while(P_NUM printf(“tt4、請輸入循環(huán)操作次數:”);break;} DWORD WINAPI producer(LPVOID lpParameter){ } DWORD WINAPI consumer(LPVOID lpParameter){ } void ProducerPrintf(){ int i=0;{ if(P_NUM<=times)NUM++;printf(“n生產者正在生產n”); for(i=1;i<=NUM;i++) if(P_NUM==P_NUM-NUM+i)printf(“(%d)”,P_NUM-NUM+i);printf(“%d ”,P_NUM-NUM+i);else printf(“ <-n”);while(C_NUM } return 0;WaitForSingleObject(EmptySemaphore,INFINITE);WaitForSingleObject(Mutex,INFINITE);ConsumerPrintf();Sleep(500);ReleaseMutex(Mutex);ReleaseSemaphore(FullSemaphore,1,NULL);while(P_NUM } return 0;WaitForSingleObject(FullSemaphore,INFINITE);WaitForSingleObject(Mutex,INFINITE);ProducerPrintf();Sleep(500);//設置延遲時間 ReleaseMutex(Mutex);//釋放互斥信號量 ReleaseSemaphore(EmptySemaphore,1,NULL);//釋放信號量 } } P_NUM++;} void ConsumerPrintf(){ } int i=0;{ NUM--;printf(“n消費者正在消費n”);for(i=0;i<=NUM;i++) if(C_NUM==C_NUM+i)printf(“<-(%d)”,C_NUM+i);printf(“%d ”,C_NUM+i);else if(C_NUM<=times)printf(“n”);printf(“n消費完畢!n”);if(C_NUM==times)C_NUM++;} 演講稿 工作總結 調研報告 講話稿 事跡材料 心得體會 策劃方案 WINDOWS操作系統 【Windows XP】 概述 Windows xp是微軟公司發(fā)布的一款視窗操作系統。它發(fā)行于2001年8月25日,原來的名稱是Whistler。微軟最初發(fā)行了兩個版本,家庭版(Home)和專業(yè)版(Professional)。家庭版的消費對象是家庭用戶,專業(yè)版則在家庭版的基礎上添加了新的為面向商業(yè)的設計的網絡認證、雙處理器等特性。且家庭版只支持1個處理器,專業(yè)版則支持2個。字母XP表示英文單詞的“體驗”(experience)。 Windows XP是基于Windows 2000代碼的產品,同時擁有一個新的用戶圖形界面(叫做月神Luna),它包括了一些細微的修改,其中一些看起來是從Linux的桌面環(huán)境(desktop environmen)諸如KDE中獲得的靈感。帶有用戶圖形的登陸界面就是一個例子。此外,Windows XP還引入了一個“基于人物”的用戶界面,使得工具條可以訪問任務的具體細節(jié)。 它包括了簡化了的Windows 2000的用戶安全特性,并整合了防火墻,以用來確保長期以來以著困擾微軟的安全問題。 版本 Windows XP Home Edition Windows XP Home Edition是家庭版,雖然微軟推薦家用計算機使用Home版,但其實Home版的性能和安全性并不比Professional版 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結 調研報告 講話稿 事跡材料 心得體會 策劃方案 好多少(性能好像稍微差一些)。而且有些軟件是需要Professional版支持的。Home版本主要是為了跟Professional區(qū)分,添加了少量娛樂功能,去掉了某些家庭很少使用的功能(比如IIS等)降低售價,允許廠家以低廉的價格裝配給用戶。 Windows XP Professional Windows XP Professional在系統可靠性與性能表現方面提出了最新標準。該操作系統的設計思想主要體現為,滿足由各種規(guī)模的商務企業(yè)和希望充分發(fā)掘計算體驗的廣大用戶所提出的相關需求。 Windows XP 64-Bit Edition Microsoft 已經開始開發(fā)它的第一個64位客戶操作系統--Windows XP 64-Bit Edition,來滿足電影特效制作、3D動畫、工程和科學應用這樣的特殊用戶對大量內存和高浮點運算性能的需求。 其他版本 在2002年11月,微軟發(fā)布了兩個為特殊硬件使用的新版本XP: Windows XP Media Center Edition 為專門個人電腦使用的Windows XP Media Center Edition(媒體中心版本)?,F在,這些個人電腦包括HP Media Center電腦,以及Alienware Navigator系列。這些電腦擁有遙控器,擁有開啟Windows XP Media Center上的媒體的功能。Windows XP Media Center版本必須捆綁在這些計算機上,并不單獨銷售。在香港, 如果購買了單獨出售的Windows XP Media Cente就會被視為使用翻版軟件。 Windows XP Media Center Edition 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結 調研報告 講話稿 事跡材料 心得體會 策劃方案 為平板可旋轉式的筆記本電腦(Tablet PC,微軟的概念)設計的Windows XP Tablet PC Edition,帶有支持觸屏手寫的特性。同樣它必須捆綁在這些平板筆記本電腦上,并不單獨銷售。 Windows XP Media Center與Windows XP Tablet PC Edition都是Windows XP Professional的超集(Superset)。 低價的入門版 為了壓制東南亞區(qū)高盜版率所帶來的威脅,微軟將在東南亞地區(qū)國家如馬來西亞,印尼,泰國發(fā)布了相關語言的入門版的Windows XP,即Windows XP Starter Edition。該版本將以非常低的價格來吸引一些買不起高價的Windows XP(專業(yè)版與家庭版)的家庭用戶或一些學校,政府機構。不過入門版的Windows XP有功能上限制,如只支持最高256MB內存,只能同時運行3個程序,最高800x600解析度等等。 64位版 微軟在2003年3月28日發(fā)布了64位的Windows XP。 64位的Windows XP稱Windows XP 64-Bit Edition。其實就是64位版本的Windows XP Professional。根據不同的微處理器架構,它分為兩個不同版本: IA-64版的Windows XP 針對英特爾(Intel)的IA-64架構的安騰2(Itanium2)純64位微處理器的Windows XP 64-Bit Edition Version 2003 for Itanium-based Systems。它是擁有64位尋址能力的強大的操作系統,主要面向頂級的高端IA-64架構的工作站,用在高端的科學運算,石油探測工藝,立體繪 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結 調研報告 講話稿 事跡材料 心得體會 策劃方案 圖,復雜的動畫制作等等,是一種用在高效能運算(High Performance Computing)的強大的操作系統。估計它可能會改名為Windows XP Professional Itanium-based Edition。支持雙處理器;最低支持1GB的內存,最高支持16GB的內存。 x86-64版的Windows XP 針對超微(AMD)的x86-64架構的Opteron與Athlon 64所屬的64位擴展微處理器的Windows XP 64-Bit Edition for 64-Bit Extended Systems。由于英特爾也發(fā)布了x86-64架構的EM64T技術的Xeon與Pentium 4的64位擴展微處理器,故微軟將該版本的的Windows XP 64-Bit Edition改為Windows XP Professional x64 Edition,它支持AMD與Intel的x86-64架構??梢允褂迷谝话鉿86-64架構的工作站,桌面電腦以及筆記本電腦,用途與32位Windows XP Professional一樣,但具有64位尋址能力。支持雙處理器;最低支持256MB的內存,最高支持16GB的內存。 微軟提供Windows XP Professional x64 Edition的預覽版免費下載,試用期為一年,下載者的電腦必須配備有AMD的Opteron/Athlon64或Intel的Xeon(EM64T)/Pentium 4(EM64T)才能安裝使用Windows XP Professional x64 Edition。 補丁 Windows XP Service Pack 1(2002.8) Microsoft 始終堅持不懈地改進其軟件產品。作為這種努力的一部分,我們開發(fā)已知問題的更新和修補程序,并向客戶發(fā)布。我們會 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結 調研報告 講話稿 事跡材料 心得體會 策劃方案 經常性地將很多修補程序放入一個軟件包內向您提供,以便您能安裝在自己的計算機上。這些軟件包稱為 Service Pack(服務軟件包)。 Windows XP Service Pack 1(SP1)提供 Windows XP 系列操作系統的安全性與可靠性的最新更新。Windows XP SP1 是設計用于確保 Windows XP平臺與新發(fā)行的軟件和硬件之間的兼容性的;其中還含有更新,可以解決客戶或 Microsoft 的內部測試組所發(fā)現的問題。要確定是否安裝 Windows XP SP1,我們建議您查看 Windows XP 文檔及以下信息。 Windows XP Service Pack 2(2004.8) Microsoft 大約每年都會發(fā)布一個針對 Windows XP 的升級。這些升級包含了在過去的1年中對 Windows XP 進行的所有修補和增強。用戶可以通過升級文件(被稱作服務包[Service Packs])獲得最全、最新的驅動程序、工具、安全更新、補丁程序以及應用戶要求所做的產品修改。 Windows XP 服務包 Service Pack 2(SP2)著重于安全問題,是 Microsoft 有史以來發(fā)布的最為重要的服務包之一。它提供了對病毒、黑客和蠕蟲的更好保護,并且內置Windows 防火墻,Internet Explorer 彈出窗口攔截程序,并且新增了 Windows 安全中心。 增加了對Cool'n'Quiet的支持。 外觀 Windows XP是基于Windows 2000代碼的產品,同時擁有一個新的用戶圖形界面(叫做月神Luna)。 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結 調研報告 講話稿 事跡材料 心得體會 策劃方案 Windows XP擁有一個叫做“月神”Luna的豪華亮麗的用戶圖形界面。Windows XP的視窗標志也改為較清晰亮麗的四色視窗標志。Windows XP帶有用戶圖形的登陸界面;全新的XP亮麗桌面,用戶若懷舊以前桌面可以換成傳統桌面。此外,Windows XP還引入了一個“選擇任務”的用戶界面,使得工具條可以訪問任務的具體細節(jié)。然而,批評家認為這個基于任務的設計指示增加了視覺上的混亂,因為它除了提供比其它操作系統更簡單的工具欄以外并沒有添加新的特性。而額外進程的耗費又是可見的。 它包括了簡化了的Windows 2000的用戶安全特性,并整合了防火墻,以用來確保長期以來以著困擾微軟的安全問題。 由于微軟把很多以前是由第三方提供的軟件整合到操作系統中,XP受到了猛烈的批評。這些軟件包括防火墻、媒體播放器(Windows Media Player),即時通訊軟件(Windows Messenger),以及它與Microsoft Passport網絡服務的緊密結合,這都被很多計算機專家認為是安全風險以及對個人隱私的潛在威脅。這些特性的增加被認為是微軟繼續(xù)其傳統的壟斷行為的持續(xù)。[編輯本段]【Windows Server 2003】 概述 Windows Server 2003是目前微軟推出的使用最廣泛的服務器操作系統。 一開始,該產品叫作“Windows.NET Server”,改成“Windows.NET Server 2003”,后最終被改成“Windows Server 2003”,于2003年 3精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結 調研報告 講話稿 事跡材料 心得體會 策劃方案 月28日發(fā)布,并在同年四月底上市。 改進 此版本做了很多改進,特別是: 改進的Active Directory(活動目錄)(如可以從schema中刪除類) 改進的Group Policy(組策略)操作和管理 改進的磁盤管理,如可以從Shadow Copy(卷影復制)中備份文件。 版本 Windows Server 2003有多種版本,每種都適合不同的商業(yè)需求: Windows Server 2003 Web版 Windows Server 2003 標準版 Windows Server 2003 企業(yè)版 Windows Server 2003 數據中心版 Windows Server 2003 Web版 價格 Windows Server 2003 標準版零售價格為USD999.00,包括5個Active Directory。客戶也可以通過原始廠商OEM與批量許可(又稱大量授權)(Volume License)方式取得。 Windows Server 2003 企業(yè)版的32位版本零售價格為USD3,999.00,包括25個Active Directory??蛻粢部梢酝ㄟ^原始廠商OEM與批量許可(Volume License)方式取得。至于64位版本的Windows Server 2003 Enterprise Edition只能通過OEM與Volume 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結 調研報告 講話稿 事跡材料 心得體會 策劃方案 License方式取得。 Windows Server 2003 Web版的Open NL價格為USD399,不需要客戶端訪問授權。此版本沒有零售版,只能通過OEM與Volume License方式取得。 Windows Server 2003 數據中心版不論32位版還是64位版都必須通過OEM方式獲得,因此價格未知。[編輯本段]【Windows Vista】 全新的Windows Vista(以前代號為Longhorn)業(yè)已在2006年11月30日發(fā)布。人們可以在Vista上對下一代應用程序(如WinFX、Avalon、Indigo 和 Aero)進行開發(fā)創(chuàng)新。Vista是目前最安全可信的Windows操作系統,其安全功能可防止最新的威脅,如蠕蟲、病毒和間諜軟件。 新功能 1,操作系統核心進行了全新修正。winxp和2k的核心并沒有安全性方面的設計,因此只能一點點打補丁,vista 在這個核心上進行了很大的修正。例如在vista中,部分操作系統運行在核心模式下,而硬件驅動等運行在用戶模式下,核心模式要求非常高的權限,這樣一些病毒木馬等就很難對核心系統形成破壞。 Vista上的“heap”設計更先進,方便了開發(fā)者,提高了他們的效率。在電源管理上也引入了睡眠模式,讓我們的vista可以從不關機,而只是極低電量消耗的待機,啟動起來非???,比現在的休眠效率高多了。 內存管理和文件系統方面引入了superFetch技術,可以把經常使 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結 調研報告 講話稿 事跡材料 心得體會 策劃方案 用的程序預存入到內存,提高性能,此外你的后臺程序不會奪取較高的運行等級了,不用擔心突然一個后臺程序運作其他讓你動彈不得。因為硬件驅動運作在用戶模式,驅動壞了系統也沒事,而且裝驅動都不用重啟了。 2,網絡方面集成IPv6支持,防火墻的效率和易用性更高,優(yōu)化了TCP/IP模塊,從而大幅增加網絡連接速度,對于無線網絡的支持也加強了。 3,媒體中心模塊將被內置在Home Premium版本中,用戶界面更新、支持CableCard,可以觀看有線高清視頻了。 4,音頻方面,音頻驅動工作在用戶模式,提高穩(wěn)定性,同時速度和音頻保真度也提高了不少,內置了語音識別模塊,帶有針對每個應用程序的音量調節(jié)。 5,顯示方面,vista內置Direct X 10,這個可是vista only的,使用更多的dll,不向下兼容,顯卡的畫質和速度會得到革命性的提升。 6,集成應用軟件:取代系統還原的新SafeDoc功能讓你自動創(chuàng)建系統的影像,內置的備份工具將更加強大,許多人可以用它取代ghost;在vista上outlook升級為了windows mail,搜索功能將非常強大,還有內置日程表模塊,新的圖片集程序、movie maker、windows media player11等等都是眾所期待的升級。 7,Aero Glass以及新的用戶界面,窗口支持3D顯示提高工作效率。顯卡現在也是一個共享的資源,它也負責windows的加速工作,再加上雙核處理器的支持,以后大型游戲對于windows來說也不會是 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結 調研報告 講話稿 事跡材料 心得體會 策劃方案 什么大任務了,開啟一個小窗口就可以運行。 8,重新設計的內核模式加強了安全性,加上更安全的IE7、更有效率的備份工具,你的vista會安全很多。 版本 由于計算機用戶對計算機的需求和使用模式千差萬別,微軟提供了不同版本的 Windows Vista 以滿足這些需求。與 Windows XP 后期的各種變異版本(某些功能僅適用于某些版本的 Windows)不同,Windows Vista 的功能分布是為了提供“好的、更好的和最好的”選項來滿足消費者的需求。 與現今存在的兩類 Windows XP(家庭版和專業(yè)版)密切對應,Windows Vista。Windows Vista 也分為家庭版和企業(yè)版兩個大類。 家庭/消費類用戶版包含四種版本: ● Windows Vista Starter ● Windows Vista Home Basic ● Windows Vista Home Premium ● Windows Vista Ultimate 企業(yè)用戶版包含三種版本: ● Windows Vista Ultimate ● Windows Vista Business ● Windows Vista Enterprise 除了這七種版本之外,還提供了其他的選擇以滿足一些特殊地區(qū)用戶的需求。例如,在位于歐盟的一些地區(qū),將提供標記為 Windows 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結 調研報告 講話稿 事跡材料 心得體會 策劃方案 Vista Home Basic N 和 Windows Vista Business N 的額外版本,這些版本但不會包括 Windows Media Player 和其他與媒體相關的功能。在韓國也會提供一些類似的、減少了功能的版本。 外觀 Windows Vista將包含四種不同的外觀: Windows Aero Aero界面是新設計的Windows用戶界面,此模式是建基于一個新的桌面引擎名為桌面窗口管理器(Desktop Window Manager),實現了與Linux下XGL類似的功能,整體玻璃感能讓使用者一眼望穿。Windows Aero包含了Windows Flip 3D、磨砂玻璃界面、活按鈕等華麗的視覺效果。此模式不包含于低價入門版和家用入門版中,并需通過Windows正版增值計劃和達到Windows Vista Premium Ready標簽貼紙測試的要求才能執(zhí)行(在某些Capable PC中也相同能執(zhí)行,因為Premium Ready包含一些不是每個人常用到的硬體,如:電視卡)。 Windows Vista 標準模式 此模式與Windows Aero類似,但少了玻璃界面、Windows Flip 3D等這些華麗的視覺效果,但同樣使用桌面窗口管理引擎,此模式是家用入門版的默認界面。 Windows Vista 基本模式 此模式比Windows Vista 標準模式更為精簡,不使用桌面窗口管理器,亦不使用新的顯示卡驅動模式名為Windows Display Driver Model。此模式是為顯示卡不能支持Windows Aero的電腦的默認界面。 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結 調研報告 講話稿 事跡材料 心得體會 策劃方案 Windows 傳統模式 此模式含六種主題配色,外觀與Windows 2000相同。 Vista的菜單有了很大的區(qū)別,有點象Mac,透明的圖標也很好看,IE7使用起來也很好玩,總之默認的色調讓Vista看起來有些神秘感,由于系統太慢,只得匆匆換回原來的2003系統。 看來以后電腦內存的標準配置又得提高一個檔次,內存至少得512M起,分區(qū)得20G起,雖然Vista是Windows一個非常重要的版本,但它對硬件的要求太高,同傳統的Windows系統使用起來也有很大差別,估計最近幾年都很難流行起來。現在快2006年了,但win98仍然有廣泛人群使用,Win2003也仍然不如Windows XP暢銷好用,而64位的Vista將使得很多軟件又得重新升級代碼,所以要真正使用Vista作為自己日常使用的OS,仍然有相當長一段時間要走。[編輯本段]【Windows Server 2008】 Microsoft Windows Server 2008 代表了下一代 Windows Server。使用 Windows Server 2008,IT 專業(yè)人員對其服務器和網絡基礎結構的控制能力更強,從而可重點關注關鍵業(yè)務需求。Windows Server 2008 通過加強操作系統和保護網絡環(huán)境提高了安全性。通過加快 IT 系統的部署與維護、使服務器和應用程序的合并與虛擬化更加簡單、提供直觀管理工具,Windows Server 2008 還為 IT 專業(yè)人員提供了靈活性。Windows Server 2008 為任何組織的服務器和網絡基礎結構奠定了最好的基礎。[編輯本段]【Windows 7】 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結 調研報告 講話稿 事跡材料 心得體會 策劃方案 1月9日星期五,微軟將面向公眾發(fā)布Windows 7客戶端Beta 1測試版。而此前一天,即1月8日,微軟將率先發(fā)布Windows 7服務器版本的Beta 1測試版。 Windows 7是微軟的下一代操作系統,當前業(yè)內普遍認為,微軟將在今年圣誕購物旺季前發(fā)布Windows 7正式版。 去年12月16日,微軟針對部分測試人員發(fā)出了Windows 7 Beta 1測試邀請。微軟在邀請函中稱,面向公眾開放下載的Windows7 Beta 1要到2009年初才會發(fā)布。 但12月底,版本號為“7000”的Windows 7測試版系統被提前發(fā)布到互聯網上。有業(yè)內人士指出,該版本很可能就是微軟將發(fā)布的Windows7 Beta 1。 在微軟剛剛發(fā)布的Windows 7 RC版本中,已經集成DirectX 11和Internet Explorer 8。 DirectX 11作為3D圖形接口,不僅支持未來的DX11硬件,還向下兼容當前的DirectX 10和10.1硬件。DirectX 11增加了新的計算shader技術,可以允許GPU從事更多的通用計算工作,而不僅僅是3D運算,這可以鼓勵開發(fā)人員更好地將GPU作為并行處理器使用。[編輯本段]Windows 8? 據國外媒體報道,日前有消息稱Windows 8計劃的發(fā)布將是2012年下半年。 微軟或于2012年發(fā)布Windows8操作系統(圖片來自互聯網) 從一份來自微軟意大利分公司的路線圖顯示,微軟計劃將于201 2精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結 調研報告 講話稿 事跡材料 心得體會 策劃方案 年下半年發(fā)布Windows 8操作系統。但在這份外泄的路線圖上,在“2012”這一日期前有一個“~”符號,這一符號通常表示尚未確定。 微軟Windows部門總裁稱表示,為避免出現類似vista發(fā)布前多次跳票的情況,此后的Windows發(fā)布日期的計劃將采取盡量保守的策略。因此,微軟內部制定的Windows 8發(fā)布計劃可能早于路線圖中的2012年下半年。[編輯本段]【展望】 概述 Microsoft Windows Server 2008 用于在虛擬化工作負載、支持應用程序和保護網絡方面向組織提供最高效的平臺。它為開發(fā)和可靠地承載 Web 應用程序和服務提供了一個安全、易于管理的平臺。從工作組到數據中心,Windows Server 2008 都提供了令人興奮且很有價值的新功能,對基本操作系統做出了重大改進。 更強的控制能力 使用 Windows Server 2008,IT 專業(yè)人員能夠更好地控制服務器和網絡基礎結構,從而可以將精力集中在處理關鍵業(yè)務需求上。增強的腳本編寫功能和任務自動化功能(例如,Windows PowerShell)可幫助 IT 專業(yè)人員自動執(zhí)行常見 IT 任務。通過服務器管理器進行的基于角色的安裝和管理簡化了在企業(yè)中管理與保護多個服務器角色的任務。服務器的配置和系統信息是從新的服務器管理器控制臺這一集中位置來管理的。IT 人員可以僅安裝需要的角色和功能,向導會自動完成許多費時的系統部署任務。增強的系統管理工具(例如,性 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結 調研報告 講話稿 事跡材料 心得體會 策劃方案 能和可靠性監(jiān)視器)提供有關系統的信息,在潛在問題發(fā)生之前向 IT 人員發(fā)出警告。 增強的保護 Windows Server 2008 提供了一系列新的和改進的安全技術,這些技術增強了對操作系統的保護,為企業(yè)的運營和發(fā)展奠定了堅實的基礎。Windows Server 2008 提供了減小內核攻擊面的安全創(chuàng)新(例如 PatchGuard),因而使服務器環(huán)境更安全、更穩(wěn)定。通過保護關鍵服務器服務使之免受文件系統、注冊表或網絡中異?;顒拥挠绊懀琖indows 服務強化有助于提高系統的安全性。借助網絡訪問保護(NAP)、只讀域控制器(RODC)、公鑰基礎結構(PKI)增強功能、Windows 服務強化、新的雙向 Windows 防火墻和新一代加密支持,Windows Server 2008 操作系統中的安全性也得到了增強。 更大的靈活性 Windows Server 2008 的設計允許管理員修改其基礎結構來適應不斷變化的業(yè)務需求,同時保持了此操作的靈活性。它允許用戶從遠程位置(如遠程應用程序和終端服務網關)執(zhí)行程序,這一技術為移動工作人員增強了靈活性。Windows Server 2008 使用 Windows 部署服務(WDS)加速對 IT 系統的部署和維護,使用 Windows Server 虛擬化(WSv)幫助合并服務器。對于需要在分支機構中使用域控制器的組織,Windows Server 2008 提供了一個新配置選項:只讀域控制器(RODC),它可以防止在域控制器出現安全問題時暴露用戶帳戶。 它將取代的是 Windows Server 2003 SP1 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結 調研報告 講話稿 事跡材料 心得體會 策劃方案 功能簡介 更加簡單:Windows 7將會讓搜索和使用信息更加簡單,包括本地、網絡和互聯網搜索功能,直觀的用戶體驗將更加高級,還會整合自動化應用程序提交和交叉程序數據透明性.更加安全:Windows 7將包括改進的安全和功能合法性,還會把數據保護和管理擴展到外圍設備.Windows 7將改進基于角色的計算方案和用戶賬戶管理,在數據保護和堅固協作的固有沖突之間搭建溝通橋梁,同時也會開啟企業(yè)級的數據保護和權限許可.更好的連接:Windows 7將進一步增強移動工作能力,無論何時、何地、任何設備都能訪問數據和應用程序,開啟堅固的特別協作體驗,無線連接、管理和安全功能將會擴展.性能和當前功能以及新興移動硬件將得到優(yōu)化,多設備同步、管理和數據保護功能將被拓展.最后,Windows 7將帶來靈活計算基礎設施,包括胖、瘦、網絡中心模型.更低的成本:Windows 7將幫助企業(yè)優(yōu)化它們的桌面基礎設施,具有無縫操作系統、應用程序和數據移植功能,并簡化PC供應和升級,進一步朝完整的應用程序更新和補丁方面努力.Windows 7還將包括改進的硬件和軟件虛擬化體驗,并將擴展PC自身的Windows幫助和IT專業(yè)問題解決方案診斷.其他功能 有部分功能本來是為Vista而設計的,如Windows PowerShell和Windows FS,雖然他們也會是Windows 7的基礎部分,但是它他們可能會在完成之后才單獨發(fā)布?,F時Windows PowerShell己單獨發(fā)放 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結 調研報告 講話稿 事跡材料 心得體會 策劃方案 出來。 Windows 7還會有“Sandbox”(沙盒)功能,其功能接近于在開發(fā)Longhorn系統時的“Alpha/White Box”,所有非管理代碼將會在沙盒系統中運行,這樣接入「外界」將被操作系統控制。對底層的訪問將被從沙盒內部禁止,同樣還有對文件系統、硬件抽象層(HAL)以及完全內存地址的直接訪問。所有對外部應用程序、文件和協議的請求都將被操作系統管理,任何惡意行為都將被立刻中止。如果這一方法成功,它預示著極強的安全和保障,如果惡意軟件能被有效地鎖在一個玻璃盒中的話,那么它事實上不可能對系統造成任何傷害。 比爾·蓋茨亦提到了另一個有趣的功能,就是一種通用語言可以解讀使用者的指令。這包含了「自動完成全句指示」的功能,在現時主流搜尋引擎中已具備這項功能(例如:微軟自家的Live Search, Yahoo及Google),它功能是可以輸入錯誤的語法亦能讓電腦正常執(zhí)行該條指令。 精心收集 精心編輯 精致閱讀 如需請下載! windows操作系統序列號大全 PWIN95 S/N: 425-0022172 EWIN95 S/N: 111-1111111 CWIN97 S/N: 26495-OEM-0004782-75026 EWIN97 S/N: 00100-OEM-0123456-00100 PWIN97 S/N: 00100-OEM-0123456-00100 CWIN98 S/N: DC688-DET96-5SCN7-E5RLK-XL413 EWIN98 S/N: K4HVD-Q9TJ9-6CRX9-C9G68-RQ2D3 PWIN98 S/N: VR9TR-74M8W-YPT9C-4VDF4-R7PD8 PWIN98 OEM(第二版)S/N: BBH2G-D2VK9-QD4M9-F63XB-43C33 PWIN98 2A 2222版 S/N: QY7TT-VJ7VG-7QPHY-QXHD3-B838Q MB9HY-M4JGJ-B3RV2-FPH8D-FP8KY WHWGP-XDR8Y-GR9X3-863RP-67J2T Windows98(第三版)th OEM 升級程序密碼:1 Windows98(第三版)th OEM 密碼:QY7TT-VJ7VG-7QPHY-QXHD3-B838Q WINDOWS ME 簡體中文正式零售版 S/N: HJPFQ-KXW9C-D7BRJ-JCGB7-Q2DRJ WINDOWS ME 正式英文零售版 S/N: RBDC9-VTRC8-D7972-J97JY-PRVMG PwindowsXP:簡體中文正式零售版 S/N:FCKGW-RHQQ2-YXRKT-8TG6W-2B7Q8 Windows XP 專業(yè)版 : CCC64-69Q48-Y3KWW-8V9GV-TVKRM Windows XP 家庭版 : BQJG2-2MJT7-H7F6K-XW98B-4HQRQ Windows 2000 Professional : PQHKR-G4JFW-VTY3P-G4WQ2-88CTW Windows 2000 Server : H6TWQ-TQQM8-HXJYG-D69F7-R84VM Windows 2000 Advanced Server: RBDC9-VTRC8-D7972-J97JY-PRVMG windows NT Server 4.0 sn: 727-1111111 windows NT WorkStation 4.0 sn: 727-1111111 Windows 98 Second Edition sn: QY7TT-VJ7VG-7QPHY-QXHD3-B838Q Windows2003的序列號: JB88F-WT2Q3-DPXTT-Y8GHG-7YYQY windows2003序列號: cky24-q8qrh-x3kmr-c6bcy-t847y win2003有三種版本: win2003 Enterprise Server: QW32K-48T2T-3D2PJ-DXBWY-C6WRJ win2003 Standard Server: M6RJ9-TBJH3-9DDXM-4VX9Q-K8M8M win2003 Web Server: D42X8-7MWXD-M4B76-MKYP7-CW9FD Win2003 enterprise edition english version cPROduct KEY: QW32K3D2PJC6WRJ Microsoft Windows 2000 Professional For USEnglish With SP2 Microsoft Windows 2000 Server For USEnglish With SP2 Microsoft Windows 2000 Advanced Server For USEnglish With SP2 s/n: RBDC9-VTRC8-D7972-J97JY-PRVMG 韓文版 Windows Xp ProFessional 序列號 Sn:FCKGW-RHQQ2-YXRKT-8TG6W-2B7Q8 win2003 Enterprise Server: QW32K-48T2T-3D2PJ-DXBWY-C6WRJ 可以Updata,但不可以激活 JK6JC-P7P7H-4HRFC-3XM7P-G33HM JCGMJ-TC669-KCBG7-HB8X2-FXG7M 企業(yè)版: QW32K-48T2T-3D2PJ-DXBWY-C6WRJ 標準版: C4C24-QDY9P-GQJ4F-2DB6G-PFQ9W 企業(yè)VLK: JB88F-WT2Q3-DPXTT-Y8GHG-7YYQY 標準VLK: JB88F-WT2Q3-DPXTT-Y8GHG-7YYQY Enterprise Retail: QW32K-48T2T-3D2PJ-DXBWY-C6WRJ Standard Retail..: M6RJ9-TBJH3-9DDXM-4VX9Q-K8M8M All VOL..........: JB88F-WT2Q3-DPXTT-Y8GHG-7YYQY All OEM DELL.....: TPPJH-FG9MV-KQPXW-HVHKJ-6G728 Windows Server 2003 for Small Business Server 的CD-KEY: CD-KEY:BBGC6-TXDG9-J9CDW-JXK3R-GTMMB Windows Server 2003 for Small Business Server 的CD-KEY: CD-KEY:BBGC6-TXDG9-J9CDW-JXK3R-GTMMB 重新整理 PWIN95 S/N: 425-0022172 EWIN95 S/N: 111-1111111 WIN95:00200-0123456-00200CWIN97 S/N: 26495-OEM-0004782-75026 Windows95a:12095-OEM-0004226-12233 Windows95:32397-OEM-0027426-81349 EWIN97 S/N: 00100-OEM-0123456-00100 PWIN97 S/N: 00100-OEM-0123456-00100 CWIN98 S/N: DC688-DET96-5SCN7-E5RLK-XL413 EWIN98 S/N: K4HVD-Q9TJ9-6CRX9-C9G68-RQ2D3 PWIN98 S/N: VR9TR-74M8W-YPT9C-4VDF4-R7PD8 PWIN98 OEM(第二版)S/N: BBH2G-D2VK9-QD4M9-F63XB-43C33 PWIN98 2A 2222版 S/N: QY7TT-VJ7VG-7QPHY-QXHD3-B838Q MB9HY-M4JGJ-B3RV2-FPH8D-FP8KY WHWGP-XDR8Y-GR9X3-863RP-67J2T Windows98(第三版)th OEM 升級程序密碼:1 Windows98(第三版)th OEM 密碼:QY7TT-VJ7VG-7QPHY-QXHD3-B838Q Windows98:Upgrade98:G2FGT-6HYRW-X2W2C-RT7HW-RF7WX Windows98:HGBRM-RBK3V-M9FXV-YCXDK-V38J4 Windows98 SE:CMGRR-XCBMG-4P8TB-DR9FW-62PFB WINDOWS ME 簡體中文正式零售版 S/N: HJPFQ-KXW9C-D7BRJ-JCGB7-Q2DRJ WINDOWS ME 正式英文零售版 S/N: RBDC9-VTRC8-D7972-J97JY-PRVMG PwindowsXP:簡體中文正式零售版 S/N:FCKGW-RHQQ2-YXRKT-8TG6W-2B7Q8 Windows XP 專業(yè)版 : CCC64-69Q48-Y3KWW-8V9GV-TVKRM Windows XP 家庭版 : BQJG2-2MJT7-H7F6K-XW98B-4HQRQ windows XP sp2 3KHMJ-DW7BX-77XHM-DFCW3-J4GHW Windows XP Professional序列號:BX6HT-MDJKW-H2J4X-BX67W-TVVFG 安裝后激活碼只需全輸“0” 韓文版 Windows Xp ProFessional Sn:FCKGW-RHQQ2-YXRKT-8TG6W-2B7Q8 Windows 2000 Professional : PQHKR-G4JFW-VTY3P-G4WQ2-88CTW TQ4CV-XPJR3-KPG3Q-HGH74-BMYWT Windows 2000 Server : H6TWQ-TQQM8-HXJYG-D69F7-R84VM Windows 2000 Advanced Server: RBDC9-VTRC8-D7972-J97JY-PRVMG windows NT Server 4.0 sn: 727-1111111 windows NT WorkStation 4.0 sn: 727-1111111 Windows 98 Second Edition sn: QY7TT-VJ7VG-7QPHY-QXHD3-B838Q Windows2003:JB88F-WT2Q3-DPXTT-Y8GHG-7YYQY cky24-q8qrh-x3kmr-c6bcy-t847y win2003有三種版本: win2003 Enterprise Server: QW32K-48T2T-3D2PJ-DXBWY-C6WRJ win2003 Standard Server: M6RJ9-TBJH3-9DDXM-4VX9Q-K8M8M win2003 Web Server: D42X8-7MWXD-M4B76-MKYP7-CW9FD Win2003 enterprise edition english version cPROduct KEY: QW32K3D2PJC6WRJ可以Updata,但不可以激活 Office2000 j2mv9-jyyq6-jm44k-qmyth-8rb2w Windows 2003 servr序列號: JK6JC-P7P7H-4HRFC-3XM7P-G33HM JCGMJ-TC669-KCBG7-HB8X2-FXG7M 企業(yè)版: QW32K-48T2T-3D2PJ-DXBWY-C6WRJ 標準版: C4C24-QDY9P-GQJ4F-2DB6G-PFQ9W 企業(yè)VLK: JB88F-WT2Q3-DPXTT-Y8GHG-7YYQY 標準VLK: JB88F-WT2Q3-DPXTT-Y8GHG-7YYQY Enterprise Retail: QW32K-48T2T-3D2PJ-DXBWY-C6WRJ Standard Retail..: M6RJ9-TBJH3-9DDXM-4VX9Q-K8M8M All VOL..........: JB88F-WT2Q3-DPXTT-Y8GHG-7YYQY All OEM DELL.....: TPPJH-FG9MV-KQPXW-HVHKJ-6G728 Windows Server 2003 for Small Business Server 的CD-KEY: CD-KEY:BBGC6-TXDG9-J9CDW-JXK3R-GTMMB 很多使用 windows 2003 的朋友,若不能夠在線更新,可以使用以下的方法: 1。建立一個.reg 文件 2。編輯此文件,內容如下: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersion] “ProductId”=“69713-640-9722366-45198” [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersion] “CurrentBuild”=“1.511.1()(Obsolete data-do not use)” “InstallDate”=dword:3f6c976d “ProductName”=“Microsoft Windows Server 2003” “RegDone”=“" ”SoftwareType“=”SYSTEM“ ”CurrentVersion“=”5.2“ ”CurrentBuildNumber“=”3790“ ”BuildLab“=”3790.srv03_rtm.030324-2048“ ”CurrentType“=”Uniprocessor Free“ ”ProductId“=”69713-640-9722366-45198“ ”DigitalProductId“=hex:a4,00,00,00,03,00,00,00,36,39,37,31,33,2d,36,34,30,2d, 39,37,32,32,33,36,36,2d,34,35,31,39,38,00,5a,00,00,00,41,32,32,2d,30,30,30, 30,31,00,00,00,00,00,00,00,00,e5,3f,e9,6a,2c,ed,25,35,12,ec,11,c9,8d,01,00, 00,00,00,00,37,03,6d,3f,44,22,06,00,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,31,32,32,32,30,00,00,00,00,00,00,00,dc,0f, 00,00,bf,4a,94,6c,80,00,00,00,15,18,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,34,79,ca,d7 ”LicenseInfo"=hex:71,84,c7,56,a0,d6,10,6e,70,b4,9f,e9,10,1a,1e,7a,01,a4,41,09, 25,20,0e,80,83,80,1f,31,27,86,64,1f,31,dc,22,af,f7,7d,aa,e4,2a,b9,e5,e3,6c, e2,01,69,85,70,91,be,a7,9f,95,e5 3。運行此reg文件,將內容加入注冊表內 4。打開Internet,選擇Windows Update 5。選你要更新的內容 6。到此已完成所有步驟 操作系統課程設計 注意事項: 0.請每位同學必須按時提交課程設計報告(包括電子版和紙質版),算入期末成績 1.在三個題目中選擇一個 2.如果選擇題目 (一)進程調度算法,要求實現其中2個以上(包括2個)進程調度算法 3.如果選擇題目 (二)銀行家算法,要求能夠判斷系統的安全狀態(tài) 4.如果選擇題目 (三)頁面調度算法,要求實現其中2個以上(包含2個)進程調度算法 5.報告應包含算法分析、實驗截圖、核心算法源代碼,請各位同學認真對待,獨立完成 6.提交要求:電子版(包括實驗程序)請發(fā)至ropeal@163.com,紙質版請班長收齊,由班長統一在課堂上提交(并提交未交人員名單),截止時間第16周周三(2014.1.31)7.格式要求: 7.1 A4紙10頁左右 7.2 封面請注明班級、姓名、學號、所選題目 7.3 電子版發(fā)送時,請打包成一個文件,將文件名設置為:學號+姓名+題目名稱(如20130000張三進程調度算法課程設計),郵件主題同文件名 一、進程調度算法 1.1 實驗目的: a、設計進程控制塊PCB表結構,模擬實現進程調度算法:FIFO,靜態(tài)優(yōu)先級調度,時間片輪轉調度,多級反饋隊列調度。(實現其中之二)。* b、建立進程就緒隊列。對不同算法編制入鏈子程序。c、編寫一進程調度程序模擬程序。模擬程序只對PCB進行相應的調度模擬操作,不需要實際程序。* 由用戶輸入進程名和進程長度,然后按照短進程優(yōu)先的進程處理順序給出進程的排序。 1.2 實驗原理 調度算法是指:根據系統的資源分配策略所規(guī)定的資源分配算法。1.2.1 先來先服務和短作業(yè)(進程)優(yōu)先調度算法 1.先來先服務調度算法。先來先服務(FCFS)調度算法是一種最簡單的調度算法,該算法既可用于作業(yè)調度,也可用于進程調度。FCFS算法比較有利于長作業(yè)(進程),而不利于短作業(yè)(進程)。由此可知,本算法適合于CPU繁忙型作業(yè),而不利于I/O繁忙型的作業(yè)(進程)。 2.短作業(yè)(進程)優(yōu)先調度算法。短作業(yè)(進程)優(yōu)先調度算法(SJ/PF)是指對短作業(yè)或短進程優(yōu)先調度的算法,該算法既可用于作業(yè)調度,也可用于進程調度。但其對長作業(yè)不利;不能保證緊迫性作業(yè)(進程)被及時處理;作業(yè)的長短只是被估算出來的。1.2.2 高優(yōu)先權優(yōu)先調度算法 1.優(yōu)先權調度算法的類型。為了照顧緊迫性作業(yè),使之進入系統后便獲得優(yōu)先處理,引入了最高優(yōu)先權優(yōu)先(FPF)調度算法。此算法常被用在批處理系統中,作為作業(yè)調度算法,也作為多種操作系統中的進程調度,還可以用于實時系統中。當其用于作業(yè)調度,將后備隊列中若干個優(yōu)先權最高的作業(yè)裝入內存。當其用于進程調度時,把處理機分配給就緒隊列中優(yōu)先權最高的進程,此時,又可以進一步把該算法分成以下兩種: 1)非搶占式優(yōu)先權算法 2)搶占式優(yōu)先權調度算法(高性能計算機操作系統) 2.優(yōu)先權類型。對于最高優(yōu)先權優(yōu)先調度算法,其核心在于:它是使用靜態(tài)優(yōu)先權還是動態(tài)優(yōu)先權,以及如何確定進程的優(yōu)先權。3.高響應比優(yōu)先調度算法 為了彌補短作業(yè)優(yōu)先算法的不足,我們引入動態(tài)優(yōu)先權,使作業(yè)的優(yōu)先等級隨著等待時間的增加而以速率a提高。該優(yōu)先權變化規(guī)律可描述為:優(yōu)先權=(等待時間+要求服務時間)/要求服務時間;即 =(響應時間)/要求服務時間 1.2.3 基于時間片的輪轉調度算法 1.時間片輪轉法。時間片輪轉法一般用于進程調度,每次調度,把CPU分配隊首進程,并令其執(zhí)行一個時間片。當執(zhí)行的時間片用完時,由一個記時器發(fā)出一個時鐘中斷請求,該進程被停止,并被送往就緒隊列末尾;依次循環(huán)。2.多級反饋隊列調度算法 多級反饋隊列調度算法多級反饋隊列調度算法,不必事先知道各種進程所需要執(zhí)行的時間,它是目前被公認的一種較好的進程調度算法。其實施過程如下: 1)設置多個就緒隊列,并為各個隊列賦予不同的優(yōu)先級。在優(yōu)先權越高的隊列中,為每個進程所規(guī)定的執(zhí)行時間片就越小。 2)當一個新進程進入內存后,首先放入第一隊列的末尾,按FCFS原則排隊等候調度。如果他能在一個時間片中完成,便可撤離;如果未完成,就轉入第二隊列的末尾,在同樣等待調度?? 如此下去,當一個長作業(yè)(進程)從第一隊列依次將到第n隊列(最后隊列)后,便按第n隊列時間片輪轉運行。3)僅當第一隊列空閑時,調度程序才調度第二隊列中的進程運行;僅當第1到第(i-1)隊列空時,才會調度第i隊列中的進程運行,并執(zhí)行相應的時間片輪轉。4)如果處理機正在處理第i隊列中某進程,又有新進程進入優(yōu)先權較高的隊列,則此新隊列搶占正在運行的處理機,并把正在運行的進程放在第i隊列的隊尾。 1.3 實驗要求 a、使用模塊化設計思想來設計; b、給出算法的流程圖或偽碼說明。c、學生可按照自身條件,隨意選擇采用的算法,(例如:采用冒泡法編寫程序,實現短進程優(yōu)先調度的算法) d、進程調度程序模擬程序只對PCB進行相應的調度模擬操作,不需要實際程序。 1.4 算法簡析 a、每個進程可有三個狀態(tài),并假設初始狀態(tài)為就緒狀態(tài)。b、為了便于處理,程序中的某進程運行時間以時間片為單位計算。各進程的優(yōu)先數或輪轉時間數以及進程需運行的時間片數的初始值均由用戶給定。c、在優(yōu)先數算法中,優(yōu)先數可以先取值為(50-該進程所需時間),進程每執(zhí)行一次,優(yōu)先數減3,CPU時間片數(CPUtime)加1,* 進程還需要的時間片數(needtime)減1。在時間片輪轉算法中,采用固定時間片 (即:每執(zhí)行一次進程,該進程的執(zhí)行時間片數為已執(zhí)行了2個單位),這時,CPU時間片(CPUtime)數加2,* 進程還需要的時間片數(needtime)減2,并排列到就緒隊列的尾上。 d、對于遇到優(yōu)先數一致的情況,采用FIFO策略解決。 二、銀行家算法 2.1 概述 2.1.1 設計目的1、了解多道程序系統中,多個進程并發(fā)執(zhí)行的資源分配。 2、掌握死鎖的產生的原因、產生死鎖的必要條件和處理死鎖的基本方法。 3、掌握預防死鎖的方法,系統安全狀態(tài)的基本概念。 4、掌握銀行家算法,了解資源在進程并發(fā)執(zhí)行中的資源分配策略。 5、理解死鎖避免在當前計算機系統不常使用的原因 2.2 關于死鎖 2.2.1 死鎖概念: 在多道程序系統中,雖可借助于多個進程的并發(fā)執(zhí)行,來改善系統的資源利用率,提高系統的吞吐量,但可能發(fā)生一種危險━━死鎖。所謂死鎖(Deadlock),是指多個進程在運行中因爭奪資源而造成的一種僵局(Deadly_Embrace),當進程處于這種僵持狀態(tài)時,若無外力作用,它們都將無法再向前推進。一組進程中,每個進程都無限等待被該組進程中另一進程所占有的資源,因而永遠無法得到的資源,這種現象稱為進程死鎖,這一組進程就稱為死鎖進程。 2.2.2 關于死鎖的一些結論: 參與死鎖的進程最少是兩個(兩個以上進程才會出現死鎖) 參與死鎖的進程至少有兩個已經占有資源 參與死鎖的所有進程都在等待資源 參與死鎖的進程是當前系統中所有進程的子集 注:如果死鎖發(fā)生,會浪費大量系統資源,甚至導致系統崩潰。 2.2.3 資源分類: 永久性資源: 可以被多個進程多次使用(可再用資源),分為:可搶占資源與不可搶占資源 臨時性資源:只可使用一次的資源;如信號量,中斷信號,同步信號等(可消耗性資源) “申請--分配--使用--釋放”模式 2.2.4 產生死鎖的四個必要條件: 1、互斥使用(資源獨占) 一個資源每次只能給一個進程使用 2、不可強占(不可剝奪) 資源申請者不能強行的從資源占有者手中奪取資源,資源只能由占有者自愿釋放 3、請求和保持(部分分配,占有申請) 一個進程在申請新的資源的同時保持對原有資源的占有(只有這樣才是動態(tài)申請,動態(tài)分配) 4、循環(huán)等待 存在一個進程等待隊列 {P1 , P2 , ? , Pn},其中P1等待P2占有的資源,P2等待P3占有的資源,?,Pn等待P1占有的資源,形成一個進程等待環(huán)路 2.2.5 死鎖的解決方案 1 產生死鎖的例子 申請不同類型資源產生死鎖 P1: ? 申請打印機 申請掃描儀 使用 釋放打印機 釋放掃描儀 ? P2: ? 申請掃描儀 申請打印機 使用 釋放打印機 釋放掃描儀 ? 申請同類資源產生死鎖(如內存) 設有資源R,R有m個分配單位,由n個進程P1,P2,?,Pn(n > m)共享。假設每個進程對R的申請和釋放符合下列原則: * 一次只能申請一個單位 * 滿足總申請后才能使用 * 使用完后一次性釋放 m=2,n=3 資源分配不當導致死鎖產生 2死鎖預防: 定義:在系統設計時確定資源分配算法,保證不發(fā)生死鎖。具體的做法是破壞產生死鎖的四個必要條件之一 ①破壞“不可剝奪”條件 在允許進程動態(tài)申請資源前提下規(guī)定,一個進程在申請新的資源不能立即得到滿足而變?yōu)榈却隣顟B(tài)之前,必須釋放已占有的全部資源,若需要再重新申請 ②破壞“請求和保持”條件 要求每個進程在運行前必須一次性申請它所要求的所有資源,且僅當該進程所要資源均可滿足時才給予一次性分配 ③破壞“循環(huán)等待”條件 采用資源有序分配法: 把系統中所有資源編號,進程在申請資源時必須嚴格按資源編號的遞增次序進行,否則操作系統不予分配。 2.2.6 安全狀態(tài)與不安全狀態(tài) 安全狀態(tài): 如果存在一個由系統中所有進程構成的安全序列P1,?Pn,則系統處于安全狀態(tài)。一個進程序列{P1,?,Pn}是安全的,如果對于每一個進程Pi(1≤i≤n),它以后尚需要的資源量不超過系統當前剩余資源量與所有進程Pj(j < i)當前占有資源量之和,系統處于安全狀態(tài)(安全狀態(tài)一定是沒有死鎖發(fā)生的)。 不安全狀態(tài):不存在一個安全序列,不安全狀態(tài)一定導致死鎖。 2.3 數據結構設計 1.可利用資源向量矩陣AVAILABLE。這是一個含有m個元素的數組,其中的每一個元素代表一類可利用的資源數目,其初始值是系統中所配置的該類全部可用資源的數目,其數值隨該類資源的分配和回收而動態(tài)地改變。如果AVAILABLE [j]= K,則表示系統中現有R類資源K個 2.最大需求矩陣MAX。這是一個n*m的矩陣,用以表示每一個進程對m類資源的最大需求。如果MAX [i,j]=K,則表示進程i需要R類資源的數目為K。 3.分配矩陣ALLOCATION。這也是一個n*m的矩陣,它定義了系統中每一類資源當前已分配給每一進程的資源數。如果ALLOCATION [i,j]=K,則表示進程i當前已分得R類資源的數目為K。 4.需求矩陣NEED。這也是一個n*m的矩陣,用以表示每一個進程尚需的各類資源數。如果NEED [i,j]=K,則表示進程i還需要R類資源K個,才能完成其任務。上述矩陣存在下述關系: NEED [i,j]= MAX[i,j]﹣ ALLOCATION[i,j] 2.4 算法的實現 2.4.1 初始化 由用戶輸入數據,分別對可利用資源向量矩陣AVAILABLE、最大需求矩陣MAX、分配矩陣ALLOCATION、需求矩陣NEED賦值。2.4.2 銀行家算法 在避免死鎖的方法中,所施加的限制條件較弱,有可能獲得令人滿意的系統性能。在該方法中把系統的狀態(tài)分為安全狀態(tài)和不安全狀態(tài),只要能使系統始終都處于安全狀態(tài),便可以避免發(fā)生死鎖。 銀行家算法的基本思想是分配資源之前,判斷系統是否是安全的;若是,才分配。它是最具有代表性的避免死鎖的算法。 設進程cusneed提出請求REQUEST [i],則銀行家算法按如下規(guī)則進行判斷。(1)如果REQUEST [cusneed] [i]<= NEED[cusneed][i],則轉(2);否則,出錯。 (2)如果REQUEST [cusneed] [i]<= AVAILABLE[cusneed][i],則轉(3);否則,出錯。(3)系統試探分配資源,修改相關數據: AVAILABLE[i]-=REQUEST[cusneed][i];ALLOCATION[cusneed][i]+=REQUEST[cusneed][i];NEED[cusneed][i]-=REQUEST[cusneed][i];(4)系統執(zhí)行安全性檢查,如安全,則分配成立;否則試探險性分配作廢,系統恢復原狀,進程等待。 2.4.3 安全性檢查算法 (1)設置兩個工作向量Work=AVAILABLE;FINISH(2)從進程集合中找到一個滿足下述條件的進程,FINISH==false;NEED<=Work;如找到,執(zhí)行(3);否則,執(zhí)行(4)(3)設進程獲得資源,可順利執(zhí)行,直至完成,從而釋放資源。 Work+=ALLOCATION;Finish=true;GOTO 2(4)如所有的進程Finish= true,則表示安全;否則系統不安全。 三、頁面調度算法 3.1 實驗名稱 頁式虛擬存儲管理:頁面調度算法 3.2 實驗目的 頁式虛擬存儲器實現的一個難點是設計頁面調度(置換)算法,即將新頁面調入內存時,如果內存中所有的物理頁都已經分配出去,就要按某種策略來廢棄某個頁面,將其所占據的物理頁釋放出來,供新頁面使用。本實驗的目的是通過編程實現幾種常見的頁面調度(置換)算法,加深讀者對頁面思想的理解。3.3 實驗原理 頁面調度算法 目前有許多頁面調度算法,本實驗主要涉及先進先出調度算法、最近最少調度算法、最近最不常用調度算法。本實驗使用頁面調度算法時作如下假設,進程在創(chuàng)建時由操作系統為之分配一個固定數目物理頁,執(zhí)行過程中物理頁的數目和位置不會改變。也即進程進行頁面調度時只能在分到的幾個物理頁中進行。 下面對各調度算法的思想作一介紹。 <1> 先進先出調度算法 先進先出調度算法根據頁面進入內存的時間先后選擇淘汰頁面,先進入內存的頁面先淘汰,后進入內存的后淘汰。本算法實現時需要將頁面按進入內存的時間先后組成一個隊列,每次調度隊首頁面予以淘汰。 <2>最近最少調度算法 先進先出調度算法沒有考慮頁面的使用情況,大多數情況下性能不佳。根據程序執(zhí)行的局部性特點,程序一旦訪問了某些代碼和數據,則在一段時間內會經常訪問他們,因此最近最少用調度在選擇淘汰頁面時會考慮頁面最近的使用,總是選擇在最近一段時間以來最少使用的頁面予以淘汰。算法實現時需要為每個頁面設置數據結構記錄頁面自上次訪問以來所經歷的時間。 <3>最近最不常用調度算法 由于程序設計中經常使用循環(huán)結構,根據程序執(zhí)行的局部性特點,可以設想在一段時間內經常被訪問的代碼和數據在將來也會經常被訪問,顯然這樣的頁面不應該被淘汰。最近最不常用調度算法總是根據一段時間內頁面的訪問次數來選擇淘汰頁面,每次淘汰訪問次數最少的頁面。算法實現時需要為每個頁面設置計數器,記錄訪問次數。計數器由硬件或操作系統自動定時清零。 缺頁調度次數和缺頁中斷率、缺頁置換率計算 缺頁中斷次數是缺頁時發(fā)出缺頁中斷的次數。 缺頁中斷率=缺頁中斷次數/總的頁面引用次數*100% 缺頁調度次數是調入新頁時需要進行頁面調度的次數 缺頁置換率=缺頁調度次數/總的頁面引用次數*100% 3.4 實驗內容 (1)設計程序實現以上三種頁面調度算法,要求: ①.可以選擇頁面調度算法類型; ②.可以為進程設置分到物理頁的數目,設置進程的頁面引用情況,可以從鍵盤輸入頁面序列,也可從文件中讀?。?/p> ③.隨時計算當前的頁面調度次數的缺頁中斷率; ④.使用敲鍵盤或響應WM-TIMER的形式模仿時間的流逝; ⑤.以直觀的的形式將程序的執(zhí)行情況顯示在計算機屏幕上; ⑥.存盤及讀盤功能,可以隨時將數據存入磁盤文件,供以后重復實驗時使用。 (2)假定進程分配到3個物理塊,對于下面的頁面引用序列:(test.txt) 7-0-1-2-0-3-0-4-2-3-0-3-2-1-2-0-1-7-0-1 請分別用先進和先出調度算法,最近最少用調度算法,最近最不常用調度算法計算缺頁中斷次數,缺頁中斷率和缺頁調度次數、缺頁置換率。 再假定進程分配到4、5個物理塊,重復本實驗。 (3)假定進程分配到3個物理塊,對于下面的頁面引用序列:(test2.txt) 4-3-2-1-4-3-5-4-3-2-1-5-0-7-3-8-9-0-2-1-4-7-3-9 請分別用先進先出調度算法、最近最少用調度算法,最近最不常用調度算法計算缺頁中斷次數,缺頁中斷率和缺頁調度次數、缺頁置換率。 再假定進程分配到4、5個物理塊,重復本實驗。 (4)假定進程分配到3個物理塊,使用程序的動態(tài)頁面序列生成算法,生成一個頁面序列,將此序列存入磁盤文件。再從磁盤文件讀入該序列,用程序分別計算三種算法下的缺頁中斷次數、缺頁中斷率和缺頁調度次數、缺頁置換率。 湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 (操作系統課程設計) 連續(xù)動態(tài)分區(qū)內存 管理模擬實現 學生姓名: 韓 慧 學生學號: 031140312 班 級: 031140--3 0311401、02、03、04班制 二〇一三年十二月 湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 目錄 《操作系統》課程設計.......................................................1 引言......................................................................3 課程設計目的和內容......................................................3 需求分析.........................................................................3 概要設計...................................................................3 開發(fā)環(huán)境........................................................................4 系統分析設計.....................................................................4 有關了解內存管理的相關理論..................................................4 內存管理概念........................................................................4 內存管理的必要性..............................................................4 內存的物理組織.............................................................4 什么是虛擬內存.................................................................5 連續(xù)動態(tài)分區(qū)內存管理方式...................................................5 單一連續(xù)分配(單個分區(qū))...................................................5 固定分區(qū)存儲管理...............................................................5 可變分區(qū)存儲管理(動態(tài)分區(qū))..............................................5 可重定位分區(qū)存儲管理........................................................5 問題描述和分析....................................................................6 程序流程圖........................................................................6 數據結構體分析..................................................................8 主要程序代碼分析...............................................................9 分析并實現四種內存分配算法.................................................11 最先適應算.....................................................................11 下次適應分配算法..........................................................13 最優(yōu)適應算法...............................................................16 最壞適應算法...............................................................18 回收內存算法................................................................20 調試與操作說明.................................................................22 初始界面.......................................................................22 模擬內存分配...............................................................23 已分配分區(qū)說明表面............................................................24 空閑區(qū)說明表界面.............................................................24 回收內存界面.....................................................................25 重新申請內存界面..........................................................26.總結與體會......................................................................28 湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 參考文獻.........................................................................28 引言 操作系統是最重要的系統軟件,同時也是最活躍的學科之一。我們通過操作系統可以理解計算機系統的資源如何組織,操作系統如何有效地管理這些系統資源,用戶如何通過操作系統與計算機系統打交道。 存儲器是計算機系統的重要組成部分,近年來,存儲器容量雖然一直在不斷擴大,但仍不能滿足現代軟件發(fā)展的需要,因此,存儲器仍然是一種寶貴而又緊俏的資源。如何對它加以有效的管理,不僅直接影響到存儲器的利用率,而且還對系統性能有重大影響。而動態(tài)分區(qū)分配屬于連續(xù)分配的一種方式,它至今仍在內存分配方式中占有一席之地。 課程設計目的和內容: 理解內存管理的相關理論,掌握連續(xù)動態(tài)分區(qū)內存管理的理論;通過對實際問題的編程實現,獲得實際應用和編程能力。 編寫程序實現連續(xù)動態(tài)分區(qū)內存管理方式,該程序管理一塊虛擬內存,實現內存分配和回收功能。分析并實現四種內存分配算法,即最先適應算法,下次最先適應算法,最優(yōu)適應算法,最壞適應算法。內存分配算法和回收算法的實現。 需求分析 動態(tài)分區(qū)分配是根據進程的實際需要,動態(tài)地為之分配內存空間。在實現動態(tài)分區(qū)分配時,將涉及到分區(qū)分配中所用的數據結構、分區(qū)分配算法和分區(qū)的分配和回收操作這樣三個問題。常用的數據結構有動態(tài)分區(qū)表和動態(tài)分區(qū)鏈。在對數據結構有一定掌握程度的情況下設計合理的數據結構來描述存儲空間,實現分區(qū)存儲管理的內存分配功能,應該選擇最合適的適應算法(首次適應算法,最佳適應算法,最后適應算法,最壞適應算法),在動態(tài)分區(qū)存儲管理方式中主要實現內存分配和內存回收算法,在這些存儲管理中間必然會有碎片的產生,當碎片產生時,進行碎片的拼接等相關的內容 概要設計 本程序采用機構化模塊化的設計方法,共分為四大模塊。⑴最先適應算法實現 從空閑分區(qū)表的第一個表目起查找該表,把最先能夠滿足要求的空閑區(qū)分配給作業(yè),這種方法目的在于減少查找時間。為適應這種算法,空閑分區(qū)表(空閑區(qū)鏈)中的空閑分區(qū)要按地址由低到高進行排序。該算法優(yōu)先使用低址部分空閑區(qū),在低址空間造成許多小的空閑區(qū),在高地址空間保留大的空閑區(qū)。⑵下次適應分配算法實現 湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 該算法是最先適應算法的變種。在分配內存空間時,不再每次從表頭(鏈首)開始查找,而是從上次找到空閑區(qū)的下一個空閑開始查找,直到找到第一個能滿足要求的的空閑區(qū)為止,并從中劃出一塊與請求大小相等的內存空間分配給作業(yè)。該算法能使內存中的空閑區(qū)分布得較均勻。⑶最優(yōu)適應算法實現 它從全部空閑區(qū)中找出能滿足作業(yè)要求的、且大小最小的空閑分區(qū),這種方法能使碎片盡量小。為適應此算法,空閑分區(qū)表(空閑區(qū)鏈)中的空閑分區(qū)要按從小到大進行排序,自表頭開始查找到第一個滿足要求的自由分區(qū)分配。⑷最壞算法實現 最壞適應分配算法要掃描整個空閑分區(qū)或鏈表,總是挑選一個最大的空閑分區(qū)分割給作業(yè)使用。該算法要求將所有的空閑分區(qū)按其容量從大到小的順序形成一空閑分區(qū)鏈,查找時只要看第一個分區(qū)能否滿足作業(yè)要求。 開發(fā)環(huán)境: win7 下 VC++6.0 系統分析設計: 相關算法原理,算法流程圖,涉及的數據結構內容都相應包含在各章節(jié)中 有關了解內存管理的相關理論 內存管理概念: 內存管理,是指軟件運行時對計算機內存資源的分配和使用的技術。其最主要的目的是如何高效,快速的分配,并且在適當的時候釋放和回收內存資源。內存不是預先劃分好的,而是在系統運行的過程中建立分區(qū).當作業(yè)裝入主存時,根據作業(yè)所需要的主存容量查看是否有足夠的主存空間,若有則按需要分割一個分區(qū)給該作業(yè);否則令該作業(yè)等待.分區(qū)長度不固定分區(qū)個數不固定。這種存儲管理的方法克服了固定分區(qū)嚴重浪費主存的問題,提高了主存資源的利用率。 內存管理的必要性: 內存管理對于編寫出高效率的 Windows 程序是非常重要的,這是因為Windows 是多任務系統,它的內存管理和單任務的 DOS 相比有很大的差異。DOS是單任務操作系統,應用程序分配到內存后,如果它不主動釋放,系統是不會對它作任何改變的;但 Windows 卻不然,它在同一時刻可能有多個應用程序共享內存,有時為了使某個任務更好地執(zhí)行,Windows 系統可能會對其它任務分配的內存進行移動,甚至刪除。因此,我們在 Windows 應用程序中使用內存時,要遵循Windows 內存管理的一些約定,以盡量提高 Windows 內存的利用率。湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 1.3 內存的物理組織: 物理地址: 把內存分成若干個大小相等的存儲單元,每個存儲單元占 8 位,稱作字節(jié)(byte)。每個單元給一個編號,這個編號稱為物理地址(內存地址、絕對地址、實地址)。 二、物理地址空間: 物理地址的集合稱為物理地址空間(主存地址空間),它是一個一維空間。 什么是虛擬內存: 虛擬內存是內存管理技術的一個極其實用的創(chuàng)新。它是一段程序(由操作系統調度),持續(xù)監(jiān)控著所有物理內存中的代碼段、數據段,并保證他們在運行中的效率以及可靠性,對于每個用戶層(user-level)的進程分配一段虛擬內存空間。當進程建立時,不需要在物理內存件之間搬移數據,數據儲存于磁盤內的虛擬內存空間,也不需要為該進程去配置主內存空間,只有當該進程被被調用的時候才會被加載到主內存。 連續(xù)動態(tài)分區(qū)內存管理方式的實現 在早期的操作系統中,主存分配廣泛采用連續(xù)分配方式。連續(xù)分配方式,是指為一個用戶程序分配一個連續(xù)的內存空間,該連續(xù)內存空間指的的是物理內存。下面介紹連續(xù)分配的四種方式。 單一連續(xù)分配(單個分區(qū)) 最簡單的存儲管理方式,用于多道程序設計技術之前。內存分為系統區(qū)和用戶區(qū),系統區(qū)由操作系統使用。用戶區(qū)作為一個連續(xù)的分區(qū)分配給一個作業(yè)。分區(qū)存儲管理是滿足多道程序設計的最簡單的一種存儲管理方法,它允許多 4個用戶程序同時存在系統內存中,即共享內存空間。按分區(qū)劃分方式可分為固定分區(qū)和可變分區(qū)。 固定分區(qū)存儲管理 把內存的用戶區(qū)預先劃分成多個分區(qū),每個分區(qū)大小可以相同,也可以不同。(分區(qū)的劃分由計算機的操作員或者由操作系統給出,并給出主存分配表)分區(qū)個數固定,分區(qū)的大小固定。一個分區(qū)中可裝入一個作業(yè),作業(yè)執(zhí)行過程中不會改變存放區(qū)域。早期的 IBM 的 OS/MFT(具有固定任務數的多道程序系統)采用了這種固定分區(qū)的方法。 可變分區(qū)存儲管理(動態(tài)分區(qū)) 內存不是預先劃分好的,而是在系統運行的過程中建立分區(qū).當作業(yè)裝入主存時,根據作業(yè)所需要的主存容量查看是否有足夠的主存空間,若有則按需要分割一個分區(qū)給該作業(yè);否則令該作業(yè)等待。分區(qū)長度不固定分區(qū)個數不固定。這種存儲管理的方法克服了固定分區(qū)嚴重浪費主存的問題,提高了主存資源的利用率。IBM操作系統OS/MVT采用可變分區(qū)存儲管理。湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 可重定位分區(qū)存儲管理 解決碎片問題的一種簡單方法是采用可重定位分區(qū)分配.。其中心思想是,把不同程序,且在內存中地址不連續(xù)的想法讓他們連續(xù)。 例:內存中現有 3 個空閑區(qū),現有一作業(yè)到達,要求獲得 30k 內存空間,沒有分區(qū)滿足容量要求,若想把作業(yè)裝入,可將內存中所有作業(yè)進行移動,這樣把原來分散的空閑區(qū)匯集成一個大的空閑區(qū)。將內存中的作業(yè)進行移動使它們連接在一起把原來分散的多個小分區(qū)拼接成一個大的空閑區(qū).這個過程稱為”緊湊”或”移動”。需解決的問題:每次”緊湊”后程序或數據裝入的物理地址變化采用動態(tài)重定位。 問題描述和分析 系統應利用某種分配算法,從空閑分區(qū)鏈表中找到所需大小的分區(qū),如果空閑分區(qū)大小大于請求分區(qū)大小,則從該分區(qū)中按改請求的大小劃分出一塊內存空間大小劃分出一塊內存空間分配出去,余下的部分仍留在空閑鏈表中。然后,將分配區(qū)的首址返回給調用者。 當進程運行完畢師范內存時,系統根據回收區(qū)的首址,從空閑區(qū)中找到相應的插入點,此時可能出現以下四種情況之一: ⑴該空閑區(qū)的上下兩相鄰分區(qū)都是空閑區(qū):將三個空閑區(qū)合并為一個空閑區(qū)。新空閑區(qū)的起始地址為上空閑區(qū)的起始地址,大小為三個空閑區(qū)之和??臻e區(qū)合并后,取消可用表或自由鏈中下空閑區(qū)的表目項或鏈指針,修改上空閑區(qū)的對應項。 ⑵該空閑區(qū)的上相鄰區(qū)是空閑區(qū):將釋放區(qū)與上空閑區(qū)合并為一個空閑區(qū),其起始地址為上空閑區(qū)的起始地址,大小為上空閑區(qū)與釋放區(qū)之和。合并后,修改上空閑區(qū)對應的可用表的表目項或自由鏈指針。 ⑶該空閑區(qū)的下相鄰區(qū)是空閑區(qū):將釋放區(qū)與下空閑區(qū)合并,并將釋放區(qū)的起始地址作為合并區(qū)的起始地址。合并區(qū)的長度為釋放區(qū)與下空閑區(qū)之和。同理,合并后修改可用表或自由鏈中相應的表目項或鏈指針。 ⑷兩相鄰區(qū)都不是空閑區(qū):釋放區(qū)作為一個新空閑可用區(qū)插入可用表或自由鏈。 程序流程圖 內存分配流程圖,如圖 湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 從頭開始查表檢索完否?NY返回分區(qū)大小>所需大小N繼續(xù)檢索下一個表項Y分區(qū)大小-所需大小<=不可再分割大小N從該分區(qū)中劃出所需大小的新分區(qū)Y將該分區(qū)從鏈中移出將該分區(qū)分配給請求者修改有關數據結構返回 內存回收流程圖,如圖 湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 開始判斷空閑區(qū)上下內存情況上為空下為空上下都為空上下都不為空將上面的空閑區(qū)合并,并回收將下面的空閑區(qū)合并,并回收將上下的空閑區(qū)合并,并回收直接將其回收結束 數據結構體分析 ⑴進程屬性結構體 typedef struct readyque { char name[10];int size;}readyque,*readyqueue;⑵空閑鏈表結構體 typedef struct idlyspace { int from;int size;idlyspace * next;}idlyspace,*idly;⑶已分配鏈表結構體 typedef struct busyspace { int from;readyque r;湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 busyspace * next;}busyspace,*busy 主要程序代碼分析 ⑴主函數//代碼請?zhí)砑舆m當的注釋。int main(){ Is=(idly)malloc(sizeof(idlyspace));Is->from=0;Is->size=256;Is->next=NULL;Is2=Is;Bs=(busy)malloc(sizeof(busyspace));Bs->next=NULL;int t,t1;printf(“n.......................歡迎來到動態(tài)分區(qū)存儲管理系統..................nn”);printf(“...........................請選擇要執(zhí)行的算法:...........................n”);printf(“.........................1.最先適應算法 ...............................n”);printf(“.........................2.下次適應算法............................n”);printf(“..........................3.最優(yōu)適應算法 ...............................n”);printf(“.........................4.最壞適應算法................................n”);printf(“........................................................................n”);printf(“請輸入您的選擇:”);scanf(“%d”,&t);int i;while(i!=5){ printf(“........................................................................n”); printf(“.........................操作菜單如下:(請選擇).......................n”); printf(“..........................1.輸入進程分配空間...........................n”); printf(“.........................2.進程撤銷回收空間...........................n”); printf(“.........................3.輸出所有空閑分區(qū) ..........................n”); printf(“..........................4.輸出所有已分配分區(qū)..........................n”); printf(“..........................5.退 出..........................n”); printf(“........................................................................n”); scanf(“%d”,&i); switch(i) { case 1: switch(t) { case 1: t1=FF();湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 break; case 2: t1=NF(); break; case 3: t1=BF(); break; case 4: t1=WF(); break; default: printf(“選擇算法錯誤n”); return 1; } if(t1) printf(“分配空間成功n”); else printf(“分配空間失敗n”); break; case 2: t1=recover(); if(t1) printf(“回收成功n”); else printf(“回收失敗n”); break; case 3: Isprint(); break; case 4: Bsprint(); break; } } return 0;} 第三章 :分析并實現四種內存分配算法 最先適應算法 空閑區(qū)按地址從小到大的次序排列。 分配:當進程申請大小為 SIZE 的內存時,系統順序查找空閑區(qū)表(鏈),直到找到容量滿足要求(≥SIZE)的空閑區(qū)為止。從該空閑區(qū)中劃出大小為 SIZE的分區(qū)分配給進程,余下的部分仍作為一個空閑區(qū),但要修改其首址和大小。湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 優(yōu)點:這種算法是盡可能地利用低地址部分的空閑區(qū),而盡量地保證高地址 6部分的大空閑區(qū),有利于大作業(yè)的裝入。 缺點:主存低地址和高地址分區(qū)利用不均衡。在低地址部分集中了許多非常小的空閑區(qū)碎片降低了主存的利用率。最先適應算法 int FF(){ int t=0;readyque D;printf““請輸入進程名:””);scanf““%””,D.name); printf““輸入進程申請空間大小:””);scanf““%””,&D.size); idly l=Is;int mt=256;busy b=Bs;idly min=NULL;while(l) //尋找空閑表中大小滿足申請進程所需大小并且起址最小的空閑結點 { if(D.size<=l->size) { if(l->from { mt=l->from;min=l;t=1; } } l=l->next;} if(mt!=256) { busy j; j=(busy)malloc(sizeof(busyspace)); //如果找到則為進程分配空間 湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 j->from=min->from; for(int i=0;i<10;i++) { j->r.name[i]=D.name[i]; } j->r.size=D.size; while(b->next) { if(b->next->from b=b->next;else break; } j->next=b->next; b->next=j; min->from=min->from+D.size; min->size=min->size-D.size;} return t;} 下次適應分配算法 最先適應算法的變種。 總是從空閑區(qū)上次掃描結束處順序查找空閑區(qū)表(鏈),直到找到第一個滿足容量要求的空閑區(qū)為止,分割一部分給作業(yè),剩余部分仍作為空閑區(qū)。下次適應分配算法 int NF(){ int t=0;readyque D;printf““請輸入進程名:””);scanf““%””,D.name); 湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 printf““輸入進程申請空間大小:””);scanf““%””,&D.size); int mt=256;idly l=Is2;idly min=NULL;busy b=Bs;while(l)//尋找空閑表中大小滿足申請進程所需大小并且起址最小的空閑結點 { if(D.size<=l->size) { if(l->from { mt=l->from;min=l;t=1; } } l=l->next;} if(mt!=256) { busy j; j=(busy)malloc(sizeof(busyspace)); j->from=min->from; for(int i=0;i<10;i++) { j->r.name[i]=D.name[i]; } j->r.size=D.size; while(b->next) { if(b->next->from b=b->next;else break; //如果找到則為進程分配空間 湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 } //將申請空間進程插入到已分配鏈表中 j->next=b->next; b->next=j; //修改相應空閑節(jié)點的起址和大小 min->from=min->from+D.size; min->size=min->size-D.size; Is2=min->next; 結點 t=1; return t;} l=Is;//l指向空閑表的頭 while(l!=Is2) { if(D.size<=l->size) { if(l->from { mt=l->from;min=l;t=1; } } l=l->next;} if(mt!=256){ busy j; j=(busy)malloc(sizeof(busyspace)); j->from=min->from; for(int i=0;i<10;i++) { //ls2指向修改結點的下一個 //循環(huán)查找 湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 j->r.name[i]=D.name[i]; } j->r.size=D.size; while(b->next) { if(b->next->from b=b->next;else break; } j->next=b->next; b->next=j; min->from=min->from+D.size; min->size=min->size-D.size; Is2=min->next; t=1; return t;} return t;} 最優(yōu)適應算法 空閑區(qū)按容量遞增的次序排列。 分配:當進程申請存儲空間,系統順序查找空閑區(qū)表(鏈),直到找到第一個滿足容量要求的空閑區(qū)為止。采用最優(yōu)適應算法選中的空閑區(qū)是滿足容量要求的最小空閑區(qū)。優(yōu)點:選中的空閑區(qū)是滿足容量要求的最小空閑區(qū),而不致于毀掉較大的空閑區(qū)。 缺點:空閑區(qū)的大小一般與申請分區(qū)大小不相等,因此將其一分為二,留下來的空閑區(qū)一般情況下是很小的,以致無法使用。隨著時間的推移,系統中的小空閑區(qū)會越來越多,從而造成存儲空間的浪費。最優(yōu)適應算法 int BF(){ int t=0;湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 readyque D;printf““請輸入進程名:””);scanf““%””,D.name); printf““輸入進程申請空間大小:””);scanf““%””,&D.size); idly l=Is;idly min=NULL;int mt=256;busy b=Bs;while(l)//在空閑鏈中尋找第一個大于所輸入的進程大小的空閑塊 { if(D.size<=l->size) { if(l->size { mt=l->size;min=l;t=1; } } l=l->next;} if(mt!=256) { busy j; j=(busy)malloc(sizeof(busyspace));空間 j->from=min->from; //申請分配用于存放進程的內存 //找到第一個滿足要求的空閑塊 //將第一個滿足要求的空閑塊(min)的首地址賦給j for(int i=0;i<10;i++) { j->r.name[i]=D.name[i];16 湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 } j->r.size=D.size; while(b->next) //按從小到大的順序查找新進程在已分配區(qū)中的位置 { if(b->next->from b=b->next;else break; } j->next=b->next; b->next=j; min->from=min->from+D.size; min->size=min->size-D.size; } return t;} 最壞適應算法 為了克服最佳適應算法把空閑區(qū)切割得太小的缺點,人們提出了一種最壞適應算法,即每次分配時,總是將最大的空閑區(qū)切去一部分分配給請求者,剩余的部分仍是一個較大的空閑區(qū)。避免了空閑區(qū)越分越小的問題。要求空閑區(qū)按容量遞減的順序排列。 分配:進程申請存儲區(qū)時,檢查空閑區(qū)表(鏈)的第一個空閑區(qū)的大小是否滿足要求,若不滿足則令進程等待;若滿足則從該空閑區(qū)中分配一部分存儲區(qū)給用戶,剩下的部分仍作為空閑區(qū)。最壞適應算法 int WF(){ int t=0;readyque D;printf““請輸入進程名:””);scanf““%””,D.name); printf““輸入進程申請空間大小:””); //將所輸入的進程插入進程鏈 //改變該空閑塊的起始地址 //改變該空閑塊的剩余大小 湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 scanf““%””,&D.size); //輸入進程申請的空間大小 idly l=Is;//l指向空閑鏈表ls頭 idly min=NULL;int mt=0;busy b=Bs; //b指向已分配鏈表Bs頭 //找到空閑分區(qū)中大小滿足進程的請求且尺寸最大的結點 while(l){ if(D.size<=l->size)//判斷進程所申請的大小是否小于空閑區(qū)的各結點大小 { if(l->size>mt) { mt=l->size;min=l;//min指向空閑區(qū)中尺寸最大的結點 t=1; } } l=l->next;} if(mt!=0)點 { busy j; j=(busy)malloc(sizeof(busyspace)); j->from=min->from; for(int i=0;i<10;i++) { j->r.name[i]=D.name[i]; } j->r.size=D.size; //判斷是否找到了空閑區(qū)的滿足結 //l指向空閑鏈表下一個結點 湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 while(b->next)置 //尋找插入到已分配鏈表中的位 { if(b->next->from b=b->next;else break; } //把此進程結點j插入到已分配鏈表中 j->next=b->next; b->next=j; //修改空閑鏈表的相應結點的參數 min->from=min->from+D.size; min->size=min->size-D.size;} return t;} 可變分區(qū)的回收 當某個進程釋放某存儲區(qū)時,系統首先檢查釋放區(qū)是否與系統中的空閑區(qū)相鄰若相鄰則把釋放區(qū)合并到相鄰的空閑區(qū)去,否則把釋放區(qū)作為一個空閑區(qū)插入到空閑表的適當位置。 釋放區(qū)與空閑區(qū)相鄰的四種情況。 (1)釋放區(qū)與前空閑區(qū)相鄰:把釋放區(qū)與前空閑區(qū)合并到一個空閑區(qū)。其首址仍為前空閑區(qū)首址,大小為釋放區(qū)大小與空閑區(qū)大小之和。 (2)釋放區(qū)與后空閑區(qū)相鄰:則把釋放區(qū)合并到后空閑區(qū),其首地址為釋放區(qū)首地址,大小為二者之和。 (3)釋放區(qū)與前后兩空閑區(qū)相鄰:這三個區(qū)合為一個空閑區(qū),首地址為前空閑區(qū)首址,大小為這三個空閑區(qū)之和,并取消后空閑區(qū)表目。 (4)釋放區(qū)不與任何空閑區(qū)相鄰:將釋放區(qū)作為一個空閑區(qū),將其大小和首址插入到空閑區(qū)表的適當位置。 湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 回收內存算法 int recover(){ readyque D;printf““請輸入想要回收的進程名””); scanf““%””,D.name); busy b=Bs;idly l=Is;while(b->next)鏈表中 { bool yo=1; for(int i=0;i<10;i++) { if(b->next->r.name[i]==D.name[i])yo=yo*1; else yo=0; } //如果在已分配鏈表中則釋放該結點所占空間 if(yo) { int t=b->next->from; int ts=b->next->r.size; //查找輸入的進程名是否在已分配湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 while(l) { if(l->from>t+ts)不鄰接 { idly tl;tl=(idly)malloc(sizeof(idlyspace));tl->from=t;tl->size=ts;tl->next=l;Is=tl;break;} if(l->from==t+ts) l->from=t; l->size=l->size+ts; busy tb=b->next; b->next=b->next->next; free(tb); return 1;} if(l->from+l->size idly tl; tl=(idly)malloc(sizeof(idlyspace)); tl->from=t; tl->size=ts; tl->next=l->next; l->next=tl; break;} else if(l->from+l->size==t) //所回收進程與空閑結點上鄰接 { //所回收進程與空閑結點上下都不鄰接 //所回收進程與空閑結點下鄰接 { //所回收進程與空閑結點上下都 21 湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 l->size=l->size+ts; if(l->from+l->size==l->next->from)接 { l->size=l->size+l->next->size; idly tm=l->next; l->next=l->next->next; freI); } br l=l->next; } //從已分配鏈表中釋放所回收進程 busy tb=b->next; b->next=b->next->next; free(tb); return 1; } b=b->next;} printf(“沒找到這”進程n”);return 0;} //所回收進程與空閑結點上下都鄰調試與操作說明 初始界面 程序初始界面,有四個塊選擇,選擇要執(zhí)行的算法,調試以最壞算法為例,如圖 湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 選擇最壞適應算法,如圖 模擬內存分配 給進程a分配內存20,如圖 湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 已分配分區(qū)說明表界面 同理,給進程b分配內存30,給進程c分配內存40,給進程d分配50,給進程e分配60,如圖 空閑分區(qū)說明表界面 湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 查看空閑分區(qū),如圖 回收內存界面 回收進程b和d所占內存,如圖 已分配分區(qū)說明表和空閑分區(qū)說明表 如圖 湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 重新申請內存界面 再為新進程i分配內存30,如圖 湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 根據最壞適應算法結合圖所示可知,該算法將會從空閑分區(qū)表中選擇一塊最大的內存空間分配給進程i,從圖也可看出該模擬算法實現了最壞適應算法 湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 總結與體會 本次做的課題是動態(tài)分區(qū)分配算法實現,此次課程設計成功實現了內存分配和內存回收,內存分配中包含了四種算法,分別是首次適應算法,循環(huán)首次適應算法,最佳適應算法和最壞適應算法。經編碼調試,表明該程序模塊是有效可行的。 通過這門課程的學習讓我充分了解了內存管理的機制實現,從而更深一步的的對計算機 有了很多了解,這對于以后我們的研究和學習計算機系統起到了很重要的作用。 對于本次論文制作,自己的編程能力有所提高,對操作系統內存分配,存儲空間的回收都有全新的認識。 在這次操作系統課程設計中,我使用了c++編寫系統軟件,對os中可變分區(qū)存儲管理有了深刻的理解,但是過程中遇到了很多困難,一邊做一邊學,對c++有了比較多的理解。 實驗中遇到很多問題,浪費了很多時間,總而言之是自己學習還不夠好,不扎實,希望在以后學習中加以改善,學到更多知識。 參考文獻 【1】 湯子瀛,哲鳳屏,湯小丹.計算機操作系統.西安:西安電子科技大學出版社,2001.。湖北民族學院信息工程學院11級計算機專業(yè)操作系統課程設計 【2】 任愛華.操作系統實用教程.北京:清華大學出版社,2001。第二篇:WINDOWS操作系統
第三篇:windows操作系統序列號
第四篇:操作系統課程設計
第五篇:操作系統課程設計