操作系统进程管理实验报告.docx

上传人:b****1 文档编号:17378447 上传时间:2023-04-24 格式:DOCX 页数:7 大小:31.88KB
下载 相关 举报
操作系统进程管理实验报告.docx_第1页
第1页 / 共7页
操作系统进程管理实验报告.docx_第2页
第2页 / 共7页
操作系统进程管理实验报告.docx_第3页
第3页 / 共7页
操作系统进程管理实验报告.docx_第4页
第4页 / 共7页
操作系统进程管理实验报告.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

操作系统进程管理实验报告.docx

《操作系统进程管理实验报告.docx》由会员分享,可在线阅读,更多相关《操作系统进程管理实验报告.docx(7页珍藏版)》请在冰豆网上搜索。

操作系统进程管理实验报告.docx

操作系统进程管理实验报告

计算机科学与工程学院(院、系)网络工程专业083班_组操作系统课

学号************姓名****实验日期教师评定

实验一、进程管理(3学时、必做)

一、实验目的

通过实验使学生进一步了解进程、进程状态、进程控制等基本概念。

基本能达到下列

具体的目标:

1、理解进程PCB的概念,以及PCB如何实现、如何组织以及管理。

2、复习数据结构中如何对链的操作,包括建链、删除、插入结点等,来实现进程的管

理。

二、实验内容

1、建立一个结点,即PCB块包括用户标识域、状态域(执行、等待、就绪)、link域。

2、建立三个队列(执行队列、就绪队列、等待队列)。

3、根据进程状态转换实现对三个队列的具体操作。

具体的驱动可以采用时间片算法或

手动调度的形式完成三个状态之间的转换

4、用switch选择语句选择状态。

5、按照自己的设定能完成所有的状态转换的运行(包括创建和运行结束)。

三、实验步骤

1、复习进程管理三状态模型部分内容。

2、预习C++Builder或VC++Delphi、JBuilder线程编程。

3、运行示例程序,进一步明确实验要求。

可以采用控制台模式或窗口模式。

4、上机编程、调试程序。

5、完成实验报告。

四、实验过程

1、进程管理三状态模型部分内容

进程从因创建而产生直至撤销而消亡的整个生命周期中,有时占用处理器执行,有时虽然可以运行但分不到处理器,有时虽然处理器空闲但因等待某个事件发生而无法执行,

这一切都说明进程和程序不同,进程是活动的且有状态变化,状态及状态之间的转换体现

进程的动态性,为了便于系统管理,一般来说,按照进程在执行过程中的不同情况至少要定义三种进程状态。

(1)运行态:

进程占用处理器运行的状态。

(2)就绪态:

进程具备运行条件,等待系统分配处理器以便起运行的状态。

(3)等待态:

进程不具备运行条件,正在等待某个时间完成的状态。

2、程序设计环境

表1程序设计环境表

设备名称

详细要求

处理器

英特尔Corei5M460@

内存容量

2GB

操作系统

Windows7旗舰版32位

3、程序界面设计

本实验的目的不在界面的创新,所以界面的设计模仿示例程序二,程序界面设计如下:

图1.程序界面设计

界面中的元件包括:

标题、队列管理、进程状态转换操作、进稈转换示意图、作者版本信息。

各元件的设计具体如下:

1)标题:

蓝底白字“进程管理演示”,其部分代码如下:

开始

 

ifo.getAgeou"0)宀ezame()+=1E^^>AfonvAhfm-v--)-

)e-se宀

HmeOufHT-MEOUTezame()+-it圧厚輻翡AfonvAhfm-v--二

().sefss-(D(o)-

s

°

)e-se宀

etAgeo.getAge(TI)-

ifo.getAgeoHH0)宀ezame()+-IE^^>AfonvAhfm-v--)-

e-seif()Hnu=)宀

ezame()+-當77AfonvAhfm-v--)-

 

Node

实时更新进程就绪队列、进程执行队列、进程阻塞队列,及进程执行队列中进程

(模拟PCB块)的更新。

a)队列:

存放于包中,具体接口信息如下图:

图3.接口信息

图4.接口信息

b)进程:

存放于包中,具体接口信息如下图7:

其中name表示进程名,age表示进程所需的剩余的时间片,next用于在进程队列Link中,指向下一个进程结点Nodestate表状态域(执行、等待、就绪)。

5、进程状态转换操作

在进程名输入域中输入已存在的进程名:

(不存在时点击任何按钮不产生状态转换,并提示“不存在正在**的进程**”

a)如果该进程在执行队列(处于运行态)中,则单击“执行一>就绪(a)”按钮可以把进程切换到就绪态,并提示“进程**:

执行一>就绪”信息。

具体的操作如下:

其中,切断进程链的操作是相当重要的,在以下的每次状态转换都需要执行此操作。

如果没有及时切断进程链,将会导致结点的next中仍然残存着其他信息,这样会在不断的

进程切换时,链表变成循环链表,将导致程序发生致命错误。

b)单击“执行一>阻塞(s)”按钮可以把进程切换到等待态,并提“进程**:

执行一>阻塞”信息。

具体的操作如下:

Nodenode=();

(null);

(3);

(node);

(null);

c)如果该进程在执行队列中,则单击“就绪一>执行(d)”按钮可以把进程切换到执行

态,并提“进程**:

就绪一>执行”信息。

具体的操作如下:

把正在执行的进程放入就绪队列

Nodenode=();

(null);

(0);

(node);

(null);

就绪队列中的进程放入执行队列

node=(processName);

(processName);

(null);

(1);

(node);

d~~>就绪⑴”按钮可以把进程切换到

就绪态,并提“进程**:

阻塞一>就绪”信息。

具体的操作如下:

Nodenode=(processName);

(processName);

(null);

(0);

(node);

四、实验心得

本实验模拟了进程的管理,包括新建进程、进程状态转换等操作,并且还独立设计了专用的链表以模拟进程队列。

程序使用JAVA编写,以面向对象的思维抽象出进程和

进程队列。

通过本实验,我更加了解进程、进程状态、进程控制等基本概念。

同时也复习了

JAVASwing图形界面编程、数据结构中的链、JAVA多线程管理等知识。

但还是有不足的,程序设定进程名不能重复,使得程序不能很好的模拟PCB。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1