实验二

实验二、pcb进程

专业 网络工程   姓名 方俊晖 学号 201406114309

一、        实验目的

通过本实验可以加深对有关进程控制块、进程队列的概念的进一步理解。

二、        实验内容和要求

1.进程PCB的结构体定义

2.定义结构体

3.输入进程序列

4.排序(按到位时间)

5.输出进程运行的结果

三、        实验方法、步骤及结果测试

#include<stdio.h>
typedef struct PCB
{
int time;
int member;
int head;
int end;
}pcb;

void main()
{
int a,b,c,flag=0;
pcb i[10],j;
printf("请输入进程个数:");
scanf("%d",&a);
for( b=0;b<a;b++){
printf("请输入第%d个进程时间:",b+1);
scanf("%d",&b[i].time);
i[b].member=b+1;
i[b].head=i[b].end=0;
}
for(b=0;b<a;b++)
{
for(c=0;c<a;c++)
{
if(i[c].time>i[b].time)
{
j=i[b];
i[b]=i[c];
i[c]=j;
}

}}

for(b=0;b<a;b++)
{
for(c=0;c<=i[b].time;c++)
{
if(c==i[b].time)
{
i[b].head=flag;
i[b].end=flag=flag+c;
printf("进程名称:%d\n完成用时为:%d\n所需时间为:%d \n\n",i[b].member,c,flag);
}
}
}
for(b=0;b<a;b++)
{
printf("执行第%d个进程\n开始时间:%d\n结束时间:%d\n",i[b].member,i[b].head,i[b].end);
}

}

2.原理分析

主函数:实现对函数的运用

void main()
{
int a,b,c,flag=0;
pcb i[10],j;
printf("请输入进程个数:");
scanf("%d",&a);
for( b=0;b<a;b++){
printf("请输入第%d个进程时间:",b+1);
scanf("%d",&b[i].time);
i[b].member=b+1;
i[b].head=i[b].end=0;
}
for(b=0;b<a;b++)
{
for(c=0;c<a;c++)
{
if(i[c].time>i[b].time)
{
j=i[b];
i[b]=i[c];
i[c]=j;
}

}}

for(b=0;b<a;b++)
{
for(c=0;c<=i[b].time;c++)
{
if(c==i[b].time)
{
i[b].head=flag;
i[b].end=flag=flag+c;
printf("进程名称:%d\n完成用时为:%d\n所需时间为:%d \n\n",i[b].member,c,flag);
}
}
}
for(b=0;b<a;b++)
{
printf("执行第%d个进程\n开始时间:%d\n结束时间:%d\n",i[b].member,i[b].head,i[b].end);
}

}

定义结构体:

typedef struct PCB
{
int time;
int member;
int head;
int end;
}pcb;

实验结果:

实验总结

遇到问题:

长时间没有用过C++,对C++的运用不太灵活,对结构体的定义,因此在这过程中需要对PCB进程管理反复试验,才能完成。

时间: 2024-10-11 10:18:04

实验二的相关文章

软件测试实验二——使用Selenium

In this Experiment, I used RunWith(Parameterized.class) to finish the task. Problems I met in this lab: 1. Install Selenium IDE in FireFox and add Selenium to my java project. Solution: (1)Selenium IDE:   (2) Selenium WebDriver: Download:http://www.s

软件测试实验二

2, (1)写一个程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示.(单词之间用空格隔开,如“Hello World My First Unit Test”): (2)编写单元测试进行测试: (3)用ElcEmma查看代码覆盖率,要求覆盖达到100%. import java.io.BufferedReader; import java.io.FileReader; import java.util.ArrayList; import java.util.Collec

Software Testing Lab2 (软件测试实验二) —— Selenium安装及入门

Download and install Firefox browser If you are the user of WINDOWS, there is a link available for you. Download and install selenium&firebug There is the way that how I finish this step. Open Firefox, click the buttom like picture. Then, search sele

Software Testing(软件测试 实验二)Lab2 Seleium

Selenium Experiment 1. Install the SeleiumIDE plugin (1)   Download firefox40.0.2 from https://ftp.mozilla.org/pub/firefox/releases/40.0.2/win32/zh-CN/ Add install the firefox browser following the instruction. (2)   Add Seleium plugin Search for "Se

实验二+124+高小娟

一.实验目的 掌握基于覆盖理论与基本路径的基本白盒测试方法和实践 二.实验要求 运用逻辑覆盖测试的覆盖准则设计被测程序的测试用例,并运行测试用例检查程序的正确与否,给出程序缺陷小结. 三.实验内容 (1) 被测原代码 1 package 软件测试实验1; 2 import java.util.Scanner; 3 4 public class NextDate { 5 //nextdate函数 6 public static String nextdate(int month,int day,i

MySQL数据库实验二:单表查询

实验二   单表查询 一.实验目的 理解SELECT语句的操作和基本使用方法. 二.实验环境 是MS SQL SERVER 2005的中文客户端. 三.实验示例 1.查询全体学生的姓名.学号.所在系. SELECT Sname,S#,Sdept FROM S: 2.查询全体学生的详细记录. SELECT  * FROM S: 3.查全体学生的姓名及其出生年份. SELECT Sname,2011-Sage    /*假定当年的年份为2011年*/ FROM S: 4.查询选修了课程的学生学号.

20145221高其&amp;20145326蔡馨熠《信息安全系统设计基础》实验二 固件设计

20145221高其&20145326蔡馨熠<信息安全系统设计基础>实验二 固件设计 实验目的与要求 了解多线程程序设计的基本原理,学习 pthread 库函数的使用. 了解在 linux 环境下串行程序设计的基本方法. 掌握终端的主要属性及设置方法,熟悉终端I /O 函数的使用.学习使用多线程来完成串口的收发处理. 熟悉linux开发环境,学会基于S3C2410的linux开发环境的配置和使用.使用linux的armv4l-unknown-linux-gcc编译,使用基于NFS方式的

软件测试实验六

请用所学的软件测试知识和技术方法,对bookstore项目中的购物车模块进行测试,并写出测试的缺陷报告. 说明: 1.bookstore项目即实验7发给大家的项目 2.要求至少发现2个缺陷,即要写2份缺陷报告 3.缺陷报告参考课本P264页 4.缺陷报告中的严重度和优先级按照课本P263页中规定的严重度和优先级 5.页面布局.美观.链接等不符合需求,也算缺陷,但本题请不要写这些方面的缺陷,否则不给分. 购物车模块缺陷报告 缺陷编号:01.01.01                        

实验二 作业调度模拟程序

实验二 作业调度模拟程序 一.        实验目的 (1)加深对作业调度算法的理解: (2)进行程序设计的训练. 二.        实验内容和要求 用高级语言编写一个或多个作业调度的模拟程序. 单道批处理系统的作业调度程序.作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所运行的时间等因素.      作业调度算法: 1)      采用先来先服务(FCFS)调度算法,即按作业到达的先后次序进行调度.总是首先调度在系统中等待时间