东北大学秦皇岛分校操作系统课设报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

东北大学秦皇岛分校计算机与通信工程学院

计算机操作系统课程设计

设计题目:进程管理器

专业名称计算机科学与技术

班级学号xxxx

学生姓名xxxx

指导教师xxxxx

设计时间2014-12-29~2015-1-15

课程设计任务书

专业:计算机科学与技术学号:学生姓名(签名):设计题目

1、高优先权调度算法的模拟

2、进程管理器的模拟实现

二、主要内容

1、目的:

编程模拟实现进程管理器,加深对进程、程序概念掌握. 2、进程管理器

主界面如下:

(1)源代码:

<1> Form1.cs

using System;

using System.Collections.Generic;

using ponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Management;

using System.Diagnostics;

namespace WindowsApplication1

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

this.listProcesses.MultiSelect = false;

this.listProcesses.View = View.Details;

this.listProcesses.Columns.Add("pname",(int)CreateGraphics().MeasureString(

"aaaaaaaaaaaaaaaaaaaaaa",Font).Width);

this.listProcesses.Columns.Add("pID", (int)CreateGraphics().MeasureString(

"000000000000", Font).Width);

this.listProcesses.Columns.Add("username", (int)CreateGraphics().MeasureString( "aaaaaaaaaaaaaaaaaaaaa", Font).Width);

this.listProcesses.Columns.Add("priority", (int)CreateGraphics().MeasureString( "aaaaaaaaa", Font).Width);

this.listProcesses.Columns.Add("Memory usage", (int)CreateGraphics().MeasureString(

"000000000000000",Font).Width);

}

private void Form1_Load(object sender, EventArgs e)

{

RefreshList();

}

private void RefreshList()

{

Process[] processes;

processes = Process.GetProcesses();

this.listProcesses.Items.Clear();

foreach (Process instance in processes)

{

ListViewItem lvi = new ListViewItem(instance.ProcessName);

lvi.SubItems.Add(FormatProcessID(instance.Id));

lvi.SubItems.Add(GetProcessUserName(instance.Id));

lvi.SubItems.Add(instance.BasePriority.ToString());

lvi.SubItems.Add(FormatMemorySize(instance.WorkingSet64));

string strToolTip = null;

ProcessModuleCollection modules;

if (pareTo("System") != 0 || pareTo("Idle") != 0)

{

try

{

////当进程不充允枚举模块时会产生异常

modules = instance.Modules;

foreach (ProcessModule aModule in modules)

{

strToolTip += aModule.ModuleName;

strToolTip += "; ";

}

}

catch (ponentModel.Win32Exception)

{

}

}

lvi.ToolTipText = strToolTip;

this.listProcesses.Items.Add(lvi);

}

}

//格式化内存字符串

private string FormatMemorySize(long lMemorySize)

{

return String.Format("{0,8:N0} K", lMemorySize / 1000);

}

private string FormatProcessID(int id)

{

return String.Format("{0,8}",id);

}

private static string GetProcessUserName(int pID)

{

string text1 = null;

SelectQuery query1 =

new SelectQuery("Select * from Win32_Process WHERE processID=" + pID);

ManagementObjectSearcher searcher1 = new ManagementObjectSearcher(query1);

相关文档
最新文档