• 大小: 525KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-27
  • 语言: C#
  • 标签: C#编写  

资源简介

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 < _pageNumbers.Length; 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个文件信息

评论

共有 条评论