資源簡介
C#編寫的模擬操作系統虛擬內存分頁請求管理 計算機操作系統第三版 湯小丹等編著 根據課本算法流程編寫 原創

代碼片段和文件信息
using?System.Collections.Generic;
using?System.Linq;
using?System.Windows.Forms;
using?OSTest.DataStruct;
using?System.Diagnostics;
using?System;
using?System.Threading;
namespace?OSTest
{
????public?partial?class?Form1?:?Form
????{
????????public?Form1()
????????{
????????????InitializeComponent();
????????????Control.CheckForIllegalCrossThreadCalls?=?false;
????????}
????????#region?全局變量定義
????????#region?輸出變量
????????//調頁數
????????int?_invokePageTimes?=?20;
????????//置換數
????????int?_replaceTimes?=?0;
????????//缺頁數
????????int?_lacePageNumber?=?0;
????????//缺頁率
????????double?_lacePageChance?=?0.00;
????????#endregion
????????#region?輸入變量
????????//頁表
????????PageTableEntry[]?_pageTable?=?null;
????????//塊表
????????List?fastTable?=?new?List();
????????//調度的頁面
????????List?invokePage?=?new?List();
????????//最小物理塊數
????????static?int?_minBlockNumber?=?0;
????????//程序頁面數
????????static?int?_maxPageNumber?=?0;
????????//內存
????????PageTableEntry[]?_memoryPages?=?null;
????????#endregion
????????//生成隨機數
????????Random?_random?=?new?Random();
????????//默認初始調用序列
????????int[]?_pageNumbers?=?new?int[20]?{?7?0?1?2?0?3?0?4?2?3?0?3?2?1?2?0?1?7?0?1?};
????????//記錄內存已用物理塊數,用于判斷內存是否已滿
????????int?_isMemoryFull?=?0;
????????//算法標志,某個算法執行一次之后mark自增
????????int?_mark?=?0;
????????#endregion
????????#region?窗體事件
????????//顯示內存信息
????????private?void?btnOk_Click(object?sender?EventArgs?e)
????????{
????????????if?(txtMaxPageNumber.Text?==
????????????????““?||?txtMinBlockNumber.Text?==?““?||?txtPageNumbers.Text?==?““)
????????????{
????????????????MessageBox.Show(@“數據不完整請輸入!“);
????????????}
????????????else
????????????{
????????????????txtMemoryShow.Text?=?“當前內存最小物理塊數為:“?+?txtMinBlockNumber.Text;
????????????????txtMemoryShow.Text?+=?“\r\n\r\n當前程序最大頁面為:“?+?txtMaxPageNumber.Text;
????????????????txtMemoryShow.Text?+=?“\r\n其中具體頁面為:“;
????????????????for?(int?i?=?0;?i?<=?Convert.ToInt32(txtMaxPageNumber.Text);?i++)
????????????????{
????????????????????txtMemoryShow.Text?+=?i.ToString()?+?“?“;
????????????????}
????????????????txtMemoryShow.Text?+=?“\r\n\r\n當前程序將要調入內存的頁面序列為:“;
????????????????for?(int?i?=?0;?i?????????????????{
????????????????????txtMemoryShow.Text?+=?_pageNumbers[i].ToString()?+?“?“;
????????????????}
????????????????txtMemoryShow.Text?+=?“\r\n\r\n初始化完畢,即將點擊開始進行模擬頁面調度...“;
????????????}
????????}
????????//初始化最小物理塊數和程序頁面數
????????private?void?txtGenerateNumbers_Click(object?sender?System.EventArgs?e)
????????{
????????????_maxPageNumber?=?_random.Next(3?10);
????????????_minBlockNumber?=?_random.Next(2?5);
????????????txtMaxPageNumber.Text?=?_maxPageNumber.ToString();
????????????txtMinBlockNumber.Text?=?_minBlockNumber.ToString();
????????}
????????//初始化調用頁面號數組
????????private?void?btnGeneratePageNumbers_Click(object?sender?Syste
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????218624??2014-06-13?19:40??虛擬內存管理\OSTest\OSTest\bin\Debug\OSTest.exe
?????文件??????46592??2014-06-13?19:40??虛擬內存管理\OSTest\OSTest\bin\Debug\OSTest.pdb
?????文件??????11600??2014-06-13?19:40??虛擬內存管理\OSTest\OSTest\bin\Debug\OSTest.vshost.exe
?????文件????????490??2013-06-18?20:28??虛擬內存管理\OSTest\OSTest\bin\Debug\OSTest.vshost.exe.manifest
?????文件????????263??2014-06-09?23:14??虛擬內存管理\OSTest\OSTest\DataStruct\FastTable.cs
?????文件????????452??2014-06-09?15:17??虛擬內存管理\OSTest\OSTest\DataStruct\PageTableEntry.cs
?????文件??????38795??2014-06-13?19:40??虛擬內存管理\OSTest\OSTest\Form1.cs
?????文件??????16120??2014-06-13?08:14??虛擬內存管理\OSTest\OSTest\Form1.Designer.cs
?????文件?????150336??2014-06-13?08:06??虛擬內存管理\OSTest\OSTest\Form1.resx
?????文件???????2867??2014-06-13?18:35??虛擬內存管理\OSTest\OSTest\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache
?????文件???????6440??2014-06-13?19:40??虛擬內存管理\OSTest\OSTest\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????文件???????2440??2014-06-13?08:17??虛擬內存管理\OSTest\OSTest\obj\x86\Debug\GenerateResource.read.1.tlog
?????文件???????2894??2014-06-13?08:17??虛擬內存管理\OSTest\OSTest\obj\x86\Debug\GenerateResource.write.1.tlog
?????文件???????5287??2014-06-13?19:40??虛擬內存管理\OSTest\OSTest\obj\x86\Debug\OSTest.csproj.FileListAbsolute.txt
?????文件???????1060??2014-06-13?19:21??虛擬內存管理\OSTest\OSTest\obj\x86\Debug\OSTest.csproj.GenerateResource.Cache
?????文件???????9174??2014-06-11?19:57??虛擬內存管理\OSTest\OSTest\obj\x86\Debug\OSTest.csprojResolveAssemblyReference.cache
?????文件?????218624??2014-06-13?19:40??虛擬內存管理\OSTest\OSTest\obj\x86\Debug\OSTest.exe
?????文件??????96635??2014-06-13?08:17??虛擬內存管理\OSTest\OSTest\obj\x86\Debug\OSTest.Form1.resources
?????文件??????46592??2014-06-13?19:40??虛擬內存管理\OSTest\OSTest\obj\x86\Debug\OSTest.pdb
?????文件??????97454??2014-06-13?08:17??虛擬內存管理\OSTest\OSTest\obj\x86\Debug\OSTest.Properties.Resources.resources
?????文件???????7897??2014-06-11?10:41??虛擬內存管理\OSTest\OSTest\obj\x86\Debug\ResolveAssemblyReference.cache
?????文件???????5120??2014-06-12?22:18??虛擬內存管理\OSTest\OSTest\obj\x86\Debug\TempPE\Properties.Resources.Designer.cs.dll
?????文件???????3972??2014-06-13?08:17??虛擬內存管理\OSTest\OSTest\OSTest.csproj
?????文件????????227??2014-06-12?22:00??虛擬內存管理\OSTest\OSTest\OSTest.csproj.user
?????文件????????487??2014-06-09?14:52??虛擬內存管理\OSTest\OSTest\Program.cs
?????文件???????1344??2014-06-09?14:52??虛擬內存管理\OSTest\OSTest\Properties\AssemblyInfo.cs
?????文件???????3363??2014-06-12?22:18??虛擬內存管理\OSTest\OSTest\Properties\Resources.Designer.cs
?????文件???????6451??2014-06-12?22:18??虛擬內存管理\OSTest\OSTest\Properties\Resources.resx
?????文件???????1092??2014-06-09?14:52??虛擬內存管理\OSTest\OSTest\Properties\Settings.Designer.cs
?????文件????????249??2014-06-09?14:52??虛擬內存管理\OSTest\OSTest\Properties\Settings.settings
............此處省略21個文件信息
- 上一篇:C#實現簡單的Socket文件傳輸
- 下一篇:L網上校友錄設計與實現(源代碼+論文)
評論
共有 條評論