预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共47页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

《操作系统原理》实验报告院(部):管理工程学院专业:信息管理和信息系统试验项目:试验一二三五班级:信管102姓名:张凤丹学号:021418目录引言4试验一、模拟进程创建、终止、阻塞、唤醒原语6试验目标:6试验内容:6试验步骤:7试验代码:7程序运行结果及分析12试验感想:13试验二、模拟进程调度功效14试验目标:14试验内容:14试验步骤:14试验代码:15程序运行结果及分析19试验感想:20试验三:模拟动态分区首次适应分配和回收算法20试验目标:20试验内容:20试验步骤:20试验代码:21程序运行结果及分析27试验感想:28试验五:模拟使用银行家算法判定系统状态28试验目标:28试验步骤:28试验代码:28程序运行结果及分析33试验感想:34引言操作系统是信息管理和信息系统专业一门关键专业理论课程,了解和掌握操作系统基础概念、功效和实现原理,对认识整个计算机系统工作原理十分关键。操作系统试验是操作系统课程一个关键组成部分,经过试验步骤锻炼使同学们不仅能够对以前所学过基础知识加以巩固,同时能够经过上机试验,对操作系统抽象理论知识加以了解,最终达成融会贯通目标,所以,试验步骤是同学们了解、掌握操作系统基础理论一个关键步骤。本试验指导书,依据教材中关键内容设定了对应试验题目,因为试验课程课时有限,我们要求了必做题目和选做题目,其中必做题目必需在要求上机课时中完成,必需有对应预习汇报和试验汇报。选做题目是针对有能力或感爱好同学利用课余时间或上机课时剩下时间完成。试验一、模拟进程创建、终止、阻塞、唤醒原语试验目标:经过设计并调试创建、终止、阻塞、唤醒原语功效,有利于对操作系统中进程控制功效了解,掌握操作系统模块设计方法和工作原理。试验内容:1、设计创建、终止、阻塞、唤醒原语功效函数。2、设计主函数,采取菜单结构(参见后面给出步骤图)。3、设计“显示队列”函数,目标能将就绪、阻塞队列中进程信息显示在屏幕上,以供随时查看各队列中进程改变情况。试验步骤:其中:进程名用P1,P2标识。优先级及运行时间:为试验题目二做准备。状态为:就绪、运行、阻塞,三种基础状态。指针:指向下一个PCB。1、进程PCB中应包含以下内容:进程名优先级运行时间状态指针2、系统总体结构:开始系统主菜单1…创建2…阻塞3…唤醒4…终止5…显示0…退出请输入您需要功效(0-5):输入选择=?543210退出创建阻塞唤醒终止显示结束试验代码:#include<stdio.h>#include<string.h>structPCB{charname[4];intpriority;intruntime;};voidmain(){intx,t;inta=0;intk=0,r=1,i=0,j=0;//k为就绪队列总数,r堵塞队列总数charname[4];structPCBpcb[10];structPCBpcb1[10];structPCBpcb2[10];printf("---------------------菜单---------------------\n\n\n");printf("0----退出系统\n");printf("1----创建进程\n");printf("2----堵塞进程\n");printf("3----唤醒进程\n");printf("4----终止进程\n");printf("5----显示进程\n");printf("------------------------------------------------\n");strcpy(pcb1[0].name,"s");//堵塞队列pcb1[0].priority=2;pcb1[0].runtime=3;//printf("%s%d%d",pcb1[0].name,pcb1[0].priority,pcb1[0].runtime);while(1){printf("请输入你选择:");scanf("%d",&x);if(x==0)break;if(x==1){printf("-----------------创建进程---------------\n");printf("进程名:");scanf("%s",&pcb[k].name);printf("优先级:");scanf("%d",&pcb[k].priority);printf("运行时间:");scanf("%d",&pcb[k].runtime);k=k+1;}if(x==2){printf("-----------------堵塞进程---------------\n");printf("请输入要查找进程:");scanf("%s",name);for(j=0;j<=k;j++){if(strcmp(pcb[j].name,name