当前位置:文档之家› 广工操作系统实验报告

广工操作系统实验报告

广工操作系统实验报告
广工操作系统实验报告

操作系统实验报告

学生学院____ 计算机学院______ 专业班级_ 计科(8)班

学号

学生姓名____ _______ 指导教师_____ ____

2013年12月29 日

目录

1 实验一进程调度 (5)

2 实验二作业调度 (9)

3 实验三可变式分区分配 (18)

4 实验四简单文件系统 (26)

实验一进程调度

一、实验目的

编写并调试一个模拟的进程调度程序,采用“短进程优先”调度算法对五个进程进行调度。以加深对进程的概念及进程调度算法的理解.

二、实验内容及要求

编写并调试一个模拟的进程调度程序,采用“短进程优先”调度算法对五个进程进行调度。

三、实验设计方案及原理

在多道程序系统中,一个作业被提交后必须经过处理机调度后,方能获得处理机执行。对调度的处理又都可采用不同的调度方式和调度算法。调度算法是指:根据系统的资源分配策略所规定的资源分配算法。

短进程优先调度算法是指对短进程优先调度的算法,它是从后备队列中选择一个或者若干个进程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时再重新调度。

四、重要数据结构或源程序中疑难部分的说明,需附详细注释

#include "stdio.h"

#include

#include

#define getpch(type) (type*)malloc(sizeof(type))

#define NULL0

struct pcb

{ /* 定义进程控制块PCB */

char name[10]; //进程名

char state; //状态

int super; //优先数

int ntime; //需要运行时间

int rtime; //运行时间

struct pcb* link;

}*ready=NULL,*p;

typedef struct pcb PCB;

int num;

sort() /* 建立对进程进行短进程优先排列函数*/

{

PCB *first, *second;

int insert=0;

if((ready==NULL)||((p->ntime)<(ready->ntime))) /*需要运行时间最小者,插入队首*/

{

p->link=ready;

ready=p;

}

else /* 进程比较需要运行时间,插入适当的位置中*/

{

first=ready;

second=first->link;

while(second!=NULL)

{

if((p->ntime)<(second->ntime)) /*若插入进程比当前进程需要运行时间小,*/

{ /*插入到当前进程前面*/

p->link=second;

first->link=p;

second=NULL;

insert=1;

}

else /* 插入进程需要运行时间最大,则插入到队尾*/

{

first=first->link;

second=second->link;

}

}

if(insert==0) first->link=p;

}

}

void input() /* 建立进程控制块函数*/

{

int i;

//clrscr(); /*清屏*/

printf("\n 请输入进程数:");

scanf("%d",&num);

for(i=0;i

{

printf("\n 进程号No.%d:\n",i);

p=getpch(PCB);

printf("\n 输入进程名:");

scanf("%s",p->name);

printf("\n 输入进程需要运行时间:");

scanf("%d",&p->ntime);

printf("\n");

p->rtime=0;p->state='w';

p->link=NULL;

sort(); /* 调用sort函数*/

}

}

void main() /*主函数*/

{

int i,len,h=0;

char ch;

input();

ch=getchar();

printf("\n调度序列为:");

p=ready;

for(i=num;i>0;i--)

{ printf(" %s",p->name);

p=p->link;

}

printf("\n\n 进程已经完成.\n"); ch=getchar();

}

五、程序运行结果

七、结果分析与实验小结

结果正确。

短进程优先需要把进程按左右运行时间排序,然后让其按顺序执行即可。

实验二作业调度

一、实验目的:用高级语言编写和调试一个或多个作业调度的模拟程序,以加深对作业

调度算法的理解。

二、实验内容:

1.写并调试一个单道处理系统的作业等待模拟程序。

2.作业等待算法:分别采用先来先服务(FCFS)、响应比高者优先(HRN)的调度算法。

3.由于在单道批处理系统中,作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所占用的

CPU时限等因素。

4.每个作业由一个作业控制块JCB表示,JCB可以包含如下信息:作业名、提交时间、所需的运行时间、所需的资源、作业状态、链指针等等。作业的状态可以是等待

W(Wait)、运行R(Run)和完成F(Finish)三种状态之一。每个作业的最初状态总是

等待W。

5.对每种调度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带权周转时间,以及这组作业的平均周转时间及带权平均周转时间。

5、重要数据结构或源程序中疑难部分的说明,需附详细注释

三、实验设计方案及原理

编写一个程序将输入的进程按其提交时间进行排列,按排列顺序进行调度,计算其开始时间、完成时间、周转时间等数值

四、重要数据结构或源程序中疑难部分的说明,需附详细注释

先来先服务

#include "stdio.h"

#include

#include

#define getpch(type) (type*)malloc(sizeof(type))

#define NULL0

struct pcb

{ /* 定义进程控制块PCB */

char name[10]; //进程名

char state; //状态

int super; //优先数

int ntime; //需要运行时间

int rtime; //运行时间

int ctime; //提交时间

int stime; //开始时间

int ftime; //完成时间

int ttime; //周转时间

float dtime; //带权周转时间

struct pcb* link;

}*ready=NULL,*p;

typedef struct pcb PCB;

int num;

void sort() /* 建立对进程先来先服务排列函数*/

{

PCB *first, *second;

int insert=0;

if((ready==NULL)||((p->ctime)<(ready->ctime))) /*达到时间最小者,插入队首*/ {

p->link=ready;

ready=p;

}

else /* 进程比较到达时间,插入适当的位置中*/

{

first=ready;

second=first->link;

while(second!=NULL)

{

if((p->ctime)<(second->ctime)) /*若插入进程比当前进程到达时间小,*/ { /*插入到当前进程前面*/

p->link=second;

first->link=p;

second=NULL;

insert=1;

}

else /* 插入进程到达时间最大,则插入到队尾*/

{

first=first->link;

second=second->link;

}

}

if(insert==0) first->link=p;

}

}

void input() /* 建立进程控制块函数*/

{

int i;

//clrscr(); /*清屏*/

printf("\n 请输入进程数:");

scanf("%d",&num);

for(i=0;i

{

printf("\n 进程号No.%d:\n",i);

p=getpch(PCB);

printf("\n 输入进程名:");

scanf("%s",p->name);

printf("\n 输入提交时间:");

scanf("%d",&p->ctime);

printf("\n 输入进程需要运行时间:");

scanf("%d",&p->ntime);

printf("\n");

p->rtime=0;p->state='w';

p->link=NULL;

sort(); /* 调用sort函数*/

}

}

void main() /*主函数*/

{ PCB *first,*second;

int i,x,y;

float s1=0,s2=0;

char ch;

input();

ch=getchar();

//输出

printf("进程名\t 开始时间\t 完成时间\t 周转时间\t 带权周转时间\n");

second=ready;

first=ready;

first->ftime=0;

for(i=num;i>0;i--)

{ if(second->ctime>first->ftime) /*计算完成时间,周转时间等*/ second->stime=second->ctime;

else

second->stime=first->ftime;

second->ftime=(second->ntime)+(second->stime);

second->ttime=(second->ftime)-(second->ctime);

x=second->ttime;

y=second->ntime;

second->dtime=(float)x/(float)y;

printf(" %s \t %d \t %d \t %d \t %f \n",second->name,second->stime,second->ftime,second->ttime,second->dtime);

s1=s1+second->ttime;

s2=s2+second->dtime;

if(second->link!=NULL)

{ first=second;

second=second->link;

}

}

s1=s1/num;

s2=s2/num;

printf("\n平均周转时间=%f\n",s1);

printf("平均周转时间=%f\n\n",s2);

printf("按任意键结束……");

ch=getchar();

}

响应比

#include

#include

#include

#define getpch(type) (type*)malloc(sizeof(type))

#define null 0

int n;

float T1=0,T2=0;

int times=0;

struct jcb //作业控制块

{

char name[10]; //作业名

int ctime; //作业到达时间

int stime; //作业开始时间

int ntime; //作业需要运行的时间

float super; //作业的响应比

int ftime; //作业完成时间

float ttime; //作业周转时间

float dtime; //作业带权周转时间

char state; //作业状态

struct jcb *next; //结构体指针

}*ready=NULL,*p,*q;

typedef struct jcb JCB;

void inital() //建立作业控制块队列,先将其排成先来先服务的模式队列{

int i;

printf("\n输入作业数:");

scanf("%d",&n);

for(i=0;i

{

p=getpch(JCB);

printf("\n作业号No.%d\n输入作业名:",i);

scanf("%s",p->name);

printf("\n输入作业到达时间:");

scanf("%d",&p->ctime);

printf("\n输入作业需要运行的时间:");

scanf("%d",&p->ntime);

p->state='W';

p->next=NULL;

if(ready==NULL) ready=q=p;

else{

q->next=p;

q=p;

}

}

}

void output(JCB* q)

{ /*显示所有作业的情况*/

JCB *pr=ready;float f=0.0;

printf("所有作业的情况:\n");//列表显示所有作业的情况

printf("作业名\t\t到达时间\t所需运行间\t响应比\t\t作业状态\n");

printf("%s\t\t%d\t\t%d\t\t%f\t%c\n", q->name,q->ctime,q->ntime,q->super,q->state); while(pr)

{

if(pr->super<=0) printf("%s\t\t%d\t\t%d\t\t%f\t%c\n",

pr->name,pr->ctime,pr->ntime,f,pr->state);

else printf("%s\t\t%d\t\t%d\t\t%f\t%c\n",

pr->name,pr->ctime,pr->ntime,pr->super,pr->state);

pr = pr->next;

}

}

void disp(JCB* q) //显示作业运行后的周转时间及带权周转时间等

{

//显示高响应比算法调度作业后的运行情况

output(q);

printf("\n作业%s正在运行,估计其运行情况:\n",q->name);

printf("开始运行时刻\t完成时刻\t周转时间\t带权周转时间\t相应比\n\n"); printf("%d\t\t%d\t\t%f\t%f\t%f\n",q->stime,q->ftime,q->ttime,q->dtime,q->super); getchar();

}

void running(JCB *p) //运行作业

{

if(p==ready) //先将要运行的作业从队列中分离出来

{

ready=p->next;

p->next=NULL;

}

else

{

q=ready;

while(q->next!=p) q=q->next;

q->next=p->next;

}

p->stime=times; //计算作业运行后的完成时间,周转时间等等

p->state='R'; p->ftime=p->stime+p->ntime;

p->ttime=(float)(p->ftime-p->ctime); p->dtime=(float)(p->ttime/p->ntime); T1+=p->ttime;

T2+=p->dtime;

disp(p); //调用disp()函数,显示作业运行情况

times+=p->ntime;

p->state='F';

printf("\n作业%s已经完成!\n请输入任意键继续......\n",p->name);

free(p); //释放运行后的作业

getchar();

}

void super() //计算队列中作业的高响应比

{

JCB *padv;

padv=ready;

do{ if(padv->state=='W'&&(padv->ctime)<=times)

{ padv->super=(float)(times-padv->ctime+padv->ntime)/padv->ntime;

}

padv=padv->next;

}while(padv!=NULL);

}

void final() //最后打印作业的平均周转时间,平均带权周转时间

float s,t;

t=T1/n;

s=T2/n;

getchar();

printf("\n\n作业已经全部完成!");

printf("\n%d个作业的平均周转时间是:%f",n,t);

printf("\n%d个作业的平均带权周转时间是%f:\n\n\n",n,s);

}

void hrn() //高响应比算法

{

JCB *min;

int i,iden;

system("cls");

inital();

for(i=0;i

{

p=min=ready;iden=1;

super(); do{ if(p->state=='W'&&p->ctime<=times) if(iden)

{

min=p;iden=0;

}

else if(p->super>min->super) min=p;

p=p->next;

}while(p!=NULL);

running(min); //调用running()函数

}

final(); //调用running()函数

}

void main() //主函数

{

hrn();

getchar();

printf("按回车结束\n");

getchar();

// system("cls");

}

五、程序运行结果

七、结果分析与实验小结

实验三动态分区分配方式的模拟

一、实验目的:了解动态分区分配方式中的数据结构和分配算法,并进一步加深对动态分区存储管理方式及其实现过程的理解

二、实验内容:

(1)用C语言分别实现采用首次适应算法和最佳适应算法的动态分区分配过程和回收过程。其中,空闲分区通过空闲分区链(表)来管理;在进行内存分配时,系统优先使用空闲区低端的空间。

(2)假设初始状态下,可用的内存空间为640KB,并有下列的请求序列:

?作业1申请130KB

?作业2申请60KB

?作业3申请100KB

?作业2释放60KB

?作业4申请200KB

?作业3释放100KB

?作业1释放130KB

?作业5申请140KB

?作业6申请60KB

?作业7申请50KB

?作业8申请60KB

请分别采用首次适应算法和最佳适应算法进行内存的分配和回收,要求每次分配和回收后显示出空闲内存分区链的情况。

三、实验设计方案及原理

首次适应算法:使用该算法进行内存分配时,从空闲分区链首开始查找,直至找到一个能满足其大小要求的空闲分区为止。然后再按照作业的大小,从该分区中划出一块内存分配给请求者,余下的空闲分区仍留在空闲分区链中。

最佳适应算法:该算法总是把既能满足要求,又是最小的空闲分区分配给作业。为了加速查找,该算法要求将所有的空闲区按其大小排序后,以递增顺序形成一个空白链。这样每次找到的第一个满足要求的空闲区,必然是最优的。孤立地看,该算法似乎是最优的,但事实上并不一定。因为每次分配后剩余的空间一定是最小的,在存储器中将留下许多难以利用的小空闲区。同时每次分配后必须重新排序,这也带来了一定的开销。

五、重要数据结构或源程序中疑难部分的说明,需附详细注释

#include "stdio.h"

#include

#include

#define Free 0 //空闲状态

#define Busy 1 //已用状态

#define OK 1 //完成

#define ERROR 0 //出错

#define MAX_length 640 //最大内存空间为KB

typedef int Status;

typedef struct freearea//定义一个空闲区说明表结构

{

int ID; //分区号

long size; //分区大小

long address; //分区地址

int state; //状态

}ElemType;

//---------- 线性表的双向链表存储结构 ------------

typedef struct DuLNode //double linked list

{

ElemType data;

struct DuLNode *prior; //前趋指针

struct DuLNode *next; //后继指针

}DuLNode,*DuLinkList;

DuLinkList block_first; //头结点

DuLinkList block_last; //尾结点

Status alloc(int);//内存分配

Status free(int); //内存回收

Status First_fit(int,int);//首次适应算法

Status Best_fit(int,int); //最佳适应算法

void show();//查看分配

Status Initblock();//开创空间表

Status Initblock()//开创带头结点的内存空间链表

{

block_first=(DuLinkList)malloc(sizeof(DuLNode));

block_last=(DuLinkList)malloc(sizeof(DuLNode));

block_first->prior=NULL;

block_first->next=block_last;

block_last->prior=block_first;

block_last->next=NULL;

block_last->data.address=0;

block_last->data.size=MAX_length;

block_last->data.ID=0;

block_last->data.state=Free;

return OK;

}

//----------------------- 分配主存------------------------- Status alloc(char ch)

int ID=0,request=0;

printf("请输入作业(分区号):");

scanf_s("%d",&ID);

printf("请输入需要分配的主存大小(单位:KB):");

scanf_s("%d",&request);

if(request<0 ||request==0)

{

printf("分配大小不合适,请重试!\n");

return ERROR;

}

if(ch==2) //选择最佳适应算法

{

if(Best_fit(ID,request)==OK) printf("分配成功!\n");

else printf("内存不足,分配失败!\n");

return OK;

}

else //默认首次适应算法

{

if(First_fit(ID,request)==OK) printf("分配成功!\n");

else printf("内存不足,分配失败!\n");

return OK;

}

}

//------------------ 首次适应算法----------------------- Status First_fit(int ID,int request)//传入作业名及申请量

{

//为申请作业开辟新空间且初始化

DuLinkList temp=(DuLinkList)malloc(sizeof(DuLNode));

temp->data.ID=ID;

temp->data.size=request;

temp->data.state=Busy;

DuLNode *p=block_first->next;

while(p)

{

if(p->data.state==Free && p->data.size==request)

{//有大小恰好合适的空闲块

p->data.state=Busy;

p->data.ID=ID;

return OK;

break;

}

if(p->data.state==Free && p->data.size>request)

{//有空闲块能满足需求且有剩余"

temp->prior=p->prior;

temp->next=p;

temp->data.address=p->data.address;

p->prior->next=temp;

p->prior=temp;

p->data.address=temp->data.address+temp->data.size;

p->data.size-=request;

return OK;

break;

}

p=p->next;

}

return ERROR;

}

//-------------------- 最佳适应算法 ------------------------ Status Best_fit(int ID,int request)

{

int ch; //记录最小剩余空间

DuLinkList temp=(DuLinkList)malloc(sizeof(DuLNode));

temp->data.ID=ID;

temp->data.size=request;

temp->data.state=Busy;

DuLNode *p=block_first->next;

DuLNode *q=NULL; //记录最佳插入位置

while(p) //初始化最小空间和最佳位置

{

if(p->data.state==Free &&

(p->data.size>request || p->data.size==request) ) {

q=p;

ch=p->data.size-request;

break;

}

p=p->next;

}

while(p)

{

if(p->data.state==Free && p->data.size==request)

{//空闲块大小恰好合适

p->data.ID=ID;

p->data.state=Busy;

return OK;

break;

}

if(p->data.state==Free && p->data.size>request)

{//空闲块大于分配需求

if(p->data.size-request

{

ch=p->data.size-request;//更新剩余最小值

q=p;//更新最佳位置指向

}

}

p=p->next;

}

if(q==NULL) return ERROR;//没有找到空闲块

else

{//找到了最佳位置并实现分配

temp->prior=q->prior;

temp->next=q;

temp->data.address=q->data.address;

q->prior->next=temp;

q->prior=temp;

q->data.address+=request;

q->data.size=ch;

return OK;

}

}

//----------------------- 主存回收 -------------------- Status free(int ID)

{

DuLNode *p=block_first;

while(p)

{

if(p->data.ID==ID)

{

p->data.state=Free;

p->data.ID=Free;

if(p->prior->data.state==Free)//与前面的空闲块相连

{

p->prior->data.size+=p->data.size;

p->prior->next=p->next;

p->next->prior=p->prior;

}

if(p->next->data.state==Free)//与后面的空闲块相连

{

广工_操作系统_课程设计_源代码

课程设计 课程名称________操作系统___ ____ 题目名称_多用户多级目录文件系统的实现_ 学生学院________计算机学院____________ 专业班级______ _________ 学号________ ___________ 学生姓名_________ _____________ 指导教师__________林穗______________ 2011年1月18日

广东工业大学课程设计任务书 题目名称多用户多级目录文件系统的实现 学生学院计算机学院 专业班级08软件工程一班 姓名 学号 一、课程设计的内容 本课程设计要求设计一个模拟的多用户多级目录的文件系统。通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 二、课程设计的要求与数据 1.在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个多用户多目录的文件系统。 2.文件物理结构可采用显式链接或其他方法。 3.磁盘空闲空间的管理可选择位示图或其他方法。如果采用位示图来管理文件存储空间,并采用显式链接分配方式,则可以将位示图合并到FAT中。4.文件目录结构采用多用户多级目录结构,每个目录项包含文件名、物理地址、长度等信息,还可以通过目录项实现对文件的读和写的保护。目录组织方式可以不使用索引结点的方式,但使用索引结点,则难度系数为1.2。 5.设计一个较实用的用户界面,方便用户使用。要求提供以下相关文件操作:(1)具有login (用户登录)

(2)系统初始化(建文件卷、提供登录模块) (3)文件的创建:create (4)文件的打开:open (5)文件的读:read (6)文件的写:write (7)文件关闭:close (8)删除文件:delete (9)创建目录(建立子目录):mkdir (10)改变当前目录:cd (11)列出文件目录:dir (12)退出:logout 6.系统必须可实际演示,选用程序设计语言:C++、C等。 三、课程设计应完成的工作 1.充分理解设计的任务,完成设计的基本要求。然后根据自己的基础和能力选择不同难度的算法和实现方式,以取得更高的分数。 2. 独立独立完成系统的分析、设计、编码、测试工作。 3.完成设计报告的撰写。 4.以光盘(以班为单位刻录)方式提交已调试通过的完整的相关源程序和能够运行的执行文件;提交“课程设计报告”的书面和电子两种版本。 四、课程设计进程安排

广工计算机网络课程设计

课程设计 课程名称计算机网络 题目名称使用ARP获取局域网内部活动主机的物理地址 学生学院计算机学院 专业班级 学号 学生姓名 指导教师 2013年1月 6 日

计算机网络课程设计任务书

使用ARP协议获取局域网内部活动主机的物理地址一.实验需求分析 1.1实验要求 定义和封装ARP数据包,将主机对应的网卡设置成混杂模式,截取局域网的数据包,并设置过滤后获取ARP包,分析ARP包,获得活动主机的物理地址。 1.2实验内容与步骤 (1).熟悉ARP协议的工作原理; (2).熟悉ARP协议相关数据帧结构; (3).构造ARP请求数据帧; (4).使用Winpcap相关函数(ARP包的发送函数)实现数据帧的发送; (5).接收及解析目的主机的响应数据帧; (6.)获得IP地址与MAC地址的对应关系并显示; 1.3编程环境 Win7,visual studio 2010,wincap 二.项目设计 2.1概要设计 1.课程设计中基本理论简介 (1)在网际协议中定义的是因特网的IP地址,但在实际进行通信时,物理层不能识别IP地址只能识别物理地址。因此,需在IP地址与物理地址之间建立映射关系,地址之间的这种映射称为地址解析。 (2)以太网网络中的物理地址即网卡的序列号。IEEE规定网卡序列号为6个字节(48位),前三个字节为厂商代号,由于厂商向IEEE注册登记申请,后3个字节为网卡的流水号。 (3)地址解析包括从IP地址到物理地址的映射和从物理地址到IP地址的映射。 TCP/IP协议组提供了两个映射协议:地址解析协议ARP和逆向地址解析协议RARP。 ARP用于从IP地址到物理地址的映射,RARP用于从物理地址到IP地址的映射。 (4)地址解析协议的ARP的工作原理:假定在一个物理网络上,A(源主机)要与D(目的主机)进行通信,但是不知道D的物理地址。A利用ARP协议工作的过程如下: 广播一个ARP请求报文,请求IP地址为IPD的主机回答其物理地址。网上所有主机都能收到该ARP请求,并将本机IP地址与请求的IP地址比较,D主机识别出自己的地址IPD,并作出回应,通报自己的物理地址。A收到这个ARP回应包后,就可以与D进行通信。 为了提高效率,ARP协议使用了高速缓存技术。在每台使用ARP的主机中,都保留了一个专用的内存区,一收到ARP应答,主机就将获得的IP地址和物理地址存

实验一数据库及基本表的建立

实验一数据库及基本表的建立 一、实验目的 1、掌握SQL SERVER的查询分析器和企业管理器的使用; 2、掌握创建数据库和表的操作; 二、实验内容和要求 1、练习使用SQL语句、企业管理器(Enterprise Manager)创建数据库; 2、练习使用SQL语句、企业管理器(Enterprise Manager)创建数据库表; 三、实验主要仪器设备和材料 1.计算机及操作系统:PC机,Windows 2000/xp; 2.数据库管理系统:SQL sever 2005; 四、实验方法、步骤及结果测试 题目1、创建数据库“学生情况”: 实现代码及截图: SQL语句 Create database 学生情况 查询分析器执行情况 :SQL语句及执行结果截图显示 找到主数据文件和日志文件,观察大小,并给出截图。

题目2、将数据库“学生情况”改名为“student” SQL语句 EXEC sp_renamedb学生情况, student 查询分析器执行情况: SQL语句及执行结果截图显示 题目3、创建基本表 S表 含义字段名字段类型字段 宽度 说明学号Sno Char10主键,不允许为空姓名Sname char10不允许为空 性别Ssex char2取值为男或女

C表 Sc表: 创建各表的实现代码及截图:

查询分析器执行情况: SQL语句及执行结果截图显示

题目4*、用sql语句将C表中的ccredit改为整型,同样约束为0-20之间 题目5、用sql语句在S表中添加一格“备注”字段remark,变长字符型,长度30,并保存结果

广工测试技术实验报告模板

实验题目: 《机械转子底座的振动测量和分析》 实验报告 姓名+学号:冯云凌(2111601211)、 实验时间:2016年10月24日 实验班级:专硕二班 实验教师:邹大鹏副教授 成绩评定:_____ __ 教师签名:_____ __ 机电学院工程测试技术实验室 广东工业大学 广东工业大学实验报告

一、预习报告:(进入实验室之前完成) 1.实验目的与要求: 实验目的: 1.掌握磁电式速度传感器的工作原理、特点和应用。 2.掌握振动的测量和数据分析。 实验要求: 先利用光电式转速传感器测量出电机的转速;然后利用磁电式速度传感器测量机械转子底座在该电机转速下的振动速度;对测量出的振动速度信号进行频谱分析;找出振动信号的主频与电机转速之间的关系。 2.初定设计方案: 先利用光电式转速传感器测量出电机的转速;然后利用磁电式速度传感器测量机械转子底座在该电机转速下的振动速度;利用获得的数据,使用MATLAB对测量出的振动速度信号进行频谱分析;找出振动信号的主频与电机转速之间的关系。 3.实验室提供的仪器设备、元器件和材料 本次实验的主要仪器设备有:机械转子系统,光电式转速传感器,磁电式速度传感器,USB 数据采集卡,计算机等。 磁电式速度传感器简介:

OD9200 系列振动速度传感器,可用于对轴承座、机壳或结构相对于自由空间的绝对振动测量。其输出电压与振动速度成正比,故又称速度式振动传感器。其输出可以是速度值的大小,也可以是把速度量经过积分转换成位移量信号输出。这种测量可对旋转或往复式机构的综合工况进行评价。 OD9200 系列速度振动传感器属于惯性式传感器。是利用磁电感应原理把振动信号变换成电信号。它主要由磁路系统、惯性质量、弹簧阻尼等部分组成。在传感器壳体中刚性地固定有磁铁,惯性质量(线圈组件)用弹簧元件悬挂于壳体上。工作时,将传感器安装在机器上,在机器振动时,在传感器工作频率范围内,线圈与磁铁相对运动、切割磁力线,在线圈内产生感应电压,该电压值正比于振动速度值。与二次仪表相配接(如OD9000 振动系列仪表),即可显示振动速度或振动位移量的大小。也可以输送到其它二次仪表或交流电压表进行测量。

广工计算机网络实验报告

计算机网络实验报告 学院 专业 年级班别 学号 学生姓名 指导教师 成绩

实验题目一. Windows下常用的网络命令 一、实验目的 学习在Windows系统中进行网络配置、用ping ipconfig/winipcfg命令工具来进行网络测试、使用tracert路由跟踪命令、使用netstat、arp、nslookup命令查看网络状态。 本实验在于使学生更好地理解计算机网络设置的基本操作,掌握计算机网络配置的基本监测技术。 二、实验内容和要求 1、使用Ping工具测试本机TCP/IP协议的工作情况,记录下相关信息。 2、使用IPconfig工具测试本机TCP/IP网络配置,记录下相关信息。 3、使用netsh工具测试本机TCP/IP网络配置,记录下相关信息。 4、使用Tracert工具测试本机到https://www.doczj.com/doc/82298707.html, 所经过的路由数,记录下相 关信息。 5、使用Netstat工具,记录下相关信息。 6、使用Arp工具,记录下相关信息。 7、使用Nslookup工具,记录下相关信息。 三、实验结果 1、ipconfig/all命令的使用 注释:Config命令是我们经常使用的命令,它可以查看网络连接的情况,比如本机的ip 地址,子网掩码,dns配置,dhcp配置等等/all参数就是显示所有配置的参数。 在“开始”——“运行”弹出的对话框重输入“cmd”回车,弹出 窗口,然后输入”ipconfig/all”回车,如图

上图显示相应的地址例如IP地址子网掩码等等。如图: 显示这些表明不能上网。数据报:发送=4 接受=4 丢失=0 2、ping的使用 常用参数选项 ping IP -t--连续对IP地址执行Ping命令,直到被用户以Ctrl+C中断。

KTV点歌系统广工数据库课程设计

课程设计 课程名称数据库系统 题目名称___ 卡拉OK点歌系统___ 学生学院计算机学院 专业班级 2010级计算机科学与技术四班学号 3110006015 学生姓名张法光 指导教师路璐 2013年1 月12 日成绩

评价标准分数比例 (%) 成绩 论文论文结构包含: 1、相关技术介绍、需求分析、 2、概念结构设计(涉及的实体至少三个以上)、 3、逻辑结构设计(有完整性约束说明)、 4、数据库物理设计、 5、数据库完整性设计(违反实体、参照完整性时的解决办法,比 如触发器、存储过程等) 5、数据库安全性设计、 6、数据库实施、系统测试方案和测试报告、 7、系统的主要功能和使用说明、系统安装说明。 要求论文完整、内容详细,格式规范。 40 程序1、系统运行正确; 2、功能完善:有增、删、改、查功能,输入、输出功能; 3、有基本的统计、报表功能 4、有多表连接查询、自身连接查询、字符串匹配查询、模糊查询、 分组查询等。 5、工作量饱满; 6、系统实现技术的难度。 30 数据库设计E-R图设计正确,至少3个实体; 数据库逻辑结构设计规范化; 数据库物理设计合理。 30 总评成绩优良中及格不及格总分

目录 1 引言 (7) 1.1课题来源 (7) 1.2课题研究主要内容 (7) 1.3主要工作 (8) 2 需求分析 (8) 2.1信息要求分析 (8) 2.2处理要求分析 (8) 2.3数据字典及安全性、完整性要求分析 (9) 3 概念结构设计 (10) 3.1数据实体描述及分ER图 (10) 3.2整体ER图 (13) 4 系统概要设计 (14) 4.1数据库逻辑结构设计 (14) 4.2数据库物理设计 (16) 4.3系统总体框架 (17) 5 系统详细设计 (17) 5.1数据库实施 (17) 5.2数据库的数据完整性设计 (29) 5.3数据的安全设计 (31) 5.4系统功能模块的设计与实现 (31) 5.5系统功能测试 (32) 5.6数据库性能检测与备份设计 (49) 5.7系统安装使用说明 (49) 6 回顾与展望 (50) 7 参考文献 (50)

2013广工数据库实验报告

数据库原理实验报告 学院计算机学院 专业计算机科学与技术班级2011 级7 班 学号3111XXXX 姓名XXX 指导教师明俊峰 (2013 年11 月)

计算机学院计算机专业2011(7)班学号:3111 姓名:协作者:________ 教师评定: 实验__一__题目__ 数据库及基本表的建立 _ 实验__二__题目__ 设计数据完整性 __ 实验__三__题目__ 查询数据库 __ 实验平台:SQL Server 2005

计算机学院计算机专业2011(7)班学号:3111 姓名:协作者:________ 教师评定: 实验题目一、数据库及基本表的建立 一、实验目的 1、掌握SQL SERVER的查询分析器和企业管理器的使用; 2、掌握创建数据库和表的操作; 二、实验内容和要求 1、分别使用SQL语句、企业管理器(Enterprise Manager)创建数据库; 2、使用SQL语句、企业管理器(Enterprise Manager)创建数据库表; 三、实验主要仪器设备和材料 1.计算机及操作系统:PC机,Windows 2000/xp; 2.数据库管理系统:SQL sever 2000/2003/2005; 四、实验方法、步骤及结果测试 创建一个教学管理数据库SC,其描述的信息有:学生信息、课程信息、教师信息、学生选课成绩、授课信息、班级信息、系部信息、专业信息。 创建:student表(学生信息表)、course表(课程信息表)、teacher表(教师信息表)、student _course表(学生选课成绩表)、teacher_course表(教师上课课表)等。 1、创建数据库: 确定数据库名称;数据库用于学生管理,命名为SC 确定数据库的位置;要求:数据文件和日志文件分别存储在E盘自己的目录下。 确定数据库的大小;根据实际的数据量确定数据文件的初始大小为30MB,日志文件的初始大小为3MB。 确定数据库的增长;根据实际情况,确定数据文件按20%增长,日志文件按1MB增长。(1)、利用查询分析器(Query Analyzer),使用SQL语句指定参数创建数据库; 1

广东工业大学 操作系统 真题 附答案

学院: 专业: 学号: 姓名: 装 订 线 广东工业大学考试试卷 ( A ) 课程名称: 操 作 系 统 考试时间: 第 周星期 ( 年 月 日) 题 号 一 二 三 四 五 总分 评卷得分 评卷签名 复核得分 复核签名 一、 填空题:(每空1分,共20分) 1. 操作系统有多种类型:(1)允许多个用户以交互方式使用计算机的操作系统,称 为 ;(2)允许多个用户将若干个作业提交给计算机系统集中处理的操作系统称为 ;(3)使计算机系统能及时处理由过程控制反馈的数据并作出响应的操作系统称为 。 2. 进程是对正在运行程序的一次抽象。有时进程必须相互作用,这种相互作用会导致 竞争条件,为了避免竞争条件,OS 引进了 的概念,它是满足如下条件的一段代码: 在这段代码中某一时刻只有一个进程访问共享区域。 3. 产生死锁的原因是: ; 。 4. 固定式分区产生 零头,可变式分区产生 零头。 5. 四种I/O 控制方式是 、 、 、 和 。 6. 在设计I/O 软件时,一个关键的概念是 ,它的基本含义是应用程序 独立于具体使用的物理设备. 7. 文件的物理结构有三种: 、 、 。 8. 完成一个磁盘服务请求的总时间由 、 、 组成。 9. 在UNIX 系统中,可通过系统调用 来创建进程。

二、单项选择题:(每题1分,共10分)Array 1. 操作系统是对 ( ) 进行管理的软件。 A.软件 B.硬件 C.计算机资源 D.应用程序 1.分配到必要的资源但未获得处理机时的进程状态是 ( ) 。 A.就绪状态 B.执行状态 C.阻塞状态 D.撤销状态 2.( )是操作系统中最重要、最基本的概念之一,它是系统分配资源的基本单位, 是一个具有独立功能的程序段对某个数据集的一次执行活动。 A. 程序 B. 作业 C. 进程 D. 线程 3.下面 ( ) 算法不是进程调度算法。 A.LRU B.FCFS C.SJF D.HPF 4.关于存储器管理,以下说法错误的是()。 A.虚拟存储器是由指令的寻址方式所决定的进程寻址空间,由内外存共同组成。 B.覆盖、交换、请求式调入和预调入都是操作系统控制内存和外存数据流动的方式。 C.内存信息保护方法有:上下界保护法、保护键法、软件法等。 D.内存分配算法中,最佳适应算法比首次适应算法具有更好的内存利用率。 5.位示图法可用于()。 A.文件目录的查找 B.分页式存储管理中主存空闲块的分配和回收 C. 页式虚拟存储管理中的页面置换 D. 可变式存储管理中空闲区的分配和回收 6.现有三个作业同时到达,每个作业的计算时间均为2小时,它们在一台处理机上按单 道方式运行,则平均周转时间为() A.2小时 B.3小时 C.4小时 D.6小时 7.进程控制块是描述进程状态和特性的数据结构,一个进程()。 A.可以有多个进程控制块 B.可以和其他进程共用一个进程控制块 C.可以没有进程控制块 D.只能有惟一的进程控制块 8.在可变式分区分配方案中,某一作业完成后,系统收回其主存空间,并与相邻空闲区 合并,为此需修改空闲区表,造成空闲区数加1的情况是( ) A.无上邻空闲区,也无下邻空闲区 B.有上邻空闲区,但无下邻空闲区 C.有下邻空闲区,但无上邻空闲区 D.有上邻空闲区,也有下邻空闲区 9.用户程序通过系统调用creat来创建一新文件时,在执行creat()的过程中,用户进 程运行在下。 A.系统态 B.用户态 C.系统态或用户态 D.目态 三、判断题(每题 1 分,共 10 分) 1.实时系统在响应时间、可靠性及交互作用能力等方面一般都比分时系统要求高。() 2.多个进程可以对应于同一个程序,且一个进程也可以执行多个程序。() 3.系统处于不安全状态也可能不会产生死锁。( ) 4.虚拟存储器是一个假想的地址空间,因而这个地址的大小是没有限制的。() 5.设备独立性是指系统具有使用不同设备的能力。() 6.隐式链接结构可以提高文件存储空间的利用率,但不适合文件的随机存取。() 7.为了提高磁盘对换空间的利用率,一般对其使用离散的分配方式。( ) 8.线程是调度的基本单位,但不是资源分配的基本单位。( ) 9.访问控制矩阵比访问控制表更节约空间。( ) 10.在UNIX文件系统中,文件的路径名和磁盘索引结点之间是一一对应的。( )

广工计算机网络课设基于UDP的ping.doc

《计算机网络》课程设计 学院 ____计算机学院 _______ 专业 ______软件工程 _______ 年级班别 ______12 级 4 班 _______ 学号91 学生姓名指导教师______ ____ 林炳城 梁路 _ __ ___ ________ 成绩

目录

设计题目 已知技术参数和设计要 求 设计内容与 步骤 设计工作计划与进度安 排 计算机网络课程设计任务书 编程实现基于UDP 的 PING (Java) 1.编程实现 PING 的服务器端和客户端,实现操作系统提供的 ping 命令的类似功能。 2.服务器端PingServer 功能: 可以显示用户通过客户端发送来的消息内容(包含头部和payload); 能够模拟分组的丢失;能够模拟分组传输延迟; 将用户发送来的请求request 在延迟一段随机选择的时间(小于 1s)后返回给客户端,作为收到请求的响应reply; 通过如下命令行启动服务器:java PingServer port 。 port 为 PingServer 的工作端口号 3.客户端 PingClient功能: 启动后发送10 个 request。发送一个request 后,最多等待 1 秒以便接收PingServer 返回的 reply 消息。如果在该时间内没有收到服务器的reply ,则认为该请求或对该请求的 reply 已经丢失;在收到 reply 后立即发送下一 个 request。 请求消息的payload 中至少包含关键字PingUDP 、序号、时间戳等内容。 如: PingUDP SequenceNumber TimeStamp CRLF 其中: CRLF 表示回车换行符(0X0D0A) ; TimeStamp 为发送该消息的机器时间。 为每个请求计算折返时间(RTT) ,统计10 个请求的平均RTT 、最大 /小RTT 。 通过如下命令行启动:java PingClient host port 。 host 为 PingServer 所在的主机地址;port 为 PingServer 的工作端口号 1.学习 ICMP ,了解 ping 命令的工作机理; 2.学习 Java UDP Socket 通信机制; 3.了解 Java 多线程程序设计; 4.服务器 PingServer 程序设计; 5.客户端 PingClient 程序设计。 6.调试与演示 命令工作机制学习 2 小时 UDP Socket 通信机制 2 小时 多线程程序设计 4 小时 程序设计 6 小时 程序设计12 小时 6.调试与演示 4 小时6.课程设计说明书10 小时

广东工业大学数据库原理与应用试卷答案

广东工业大学试卷用纸,共 页,第 页

广东工业大学试卷用纸,共页,第页

广东工业大学试卷用纸,共页,第页

一、填空(每题1分,共10分) 1、层次模型,网状模型,关系模型 2、逻辑结构设计,物理结构设计 3、原子性,持续性 4、并发调度的可串行性 5、闭包 6、描述事物的符号记录 二、选择题(每题2分,共20分) 三、简答题(每题4分,共16分) 1、解释数据库,数据库系统,数据库管理系统三个概念。 数据库是指长期存储于计算机内的、有组织的、可共享的数据集合。(1分) DBMS是指位于用户与OS之间的一层数据管理软件,它位用户或应用程序提供访问DB的方法。(1分) DBS是实现有组织的、动态的存储大量关联数据、方便多用户访问的计算机硬件、软件和数据资源组成的系统,即采用数据库技术的计算机系统。(2分) 2、试述视图和基本表之间的联系和区别? (1)视图和基本表在概念上等同,他们都是关系。(1分) (2)基本表是本身独立存在的表。视图是从一个或几个基本表(或视图)中导出的表,它与基本表不同,是一个 虚表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍然放在原来的基本表中。(3分) 3、数据库的完整性概念与数据库的安全性概念有什么区别和联系? 数据的完整性和安全性是两个不同的概念,但是有一定的联系。 前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出所造成的无效操作和错误结果。(2分) 后者是保护数据库防止恶意的破坏和非法的存取。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。(2分) 4、什么是封锁?基本的封锁类型有几种,简要说明它们的含义。 封锁就是事务T在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其它的事务不能更新此数据对象。(2分)基本封锁类型:排它锁和共享锁。 排它锁又称为写锁:若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁(1分) 共享锁又称为读锁:若事务T对数据对象A加上S锁,则其它事务只能再对A加S锁,而不能加X锁,直到T 释放A 上的S锁。(1分) 四、计算(4分) 1、(R÷S)×S={(2,3,4,5),(2,7,2,3)} 2 广东工业大学试卷用纸,共页,第页

数据库系统实验报告广东工业大学

数据库系统实验报告 学院计算机学院 专业计算机科学与技术班级级班 学号

姓名 指导教师 (2016 年12 月) 实验__一__题目数据库及基本表的建立 实验__二__题目查询数据库_ 实验__三__题目创建和使用视图、索引、存储过程实验__四_题目小型数据库规划设计 实验平台:SQL Sever 2005

实验题目实验一数据库及基本表的建立 一、实验目的 1、掌握SQL SERVER的查询分析器和企业管理器的使用; 2、掌握创建数据库和表的操作; 二、实验内容和要求 1、分别使用SQL语句、企业管理器(Enterprise Manager)创建数据库; 2、使用SQL语句、企业管理器(Enterprise Manager)创建数据库表; 三、实验主要仪器设备和材料 1.计算机及操作系统:PC机,Windows 2000/xp; 2.数据库管理系统:SQL sever 2000/2003/2005; 四、实验方法、步骤及结果测试 创建一个教学管理数据库SC,其描述的信息有:学生信息、课程信息、教师信息、学生选课成绩、授课信息、班级信息、系部信息、专业信息。 创建:student表(学生信息表)、course表(课程信息表)、teacher表(教师信息表)、student _course表(学生选课成绩表)、teacher_course表(教师上课课表)等。 1、创建数据库: 确定数据库名称;数据库用于学生管理,命名为SC 确定数据库的位置;要求:数据文件和日志文件分别存储在E盘自己的目录下。 确定数据库的大小;根据实际的数据量确定数据文件的初始大小为30MB,日志文件的初始大小为3MB。 确定数据库的增长;根据实际情况,确定数据文件按20%增长,日志文件按1MB增长。(1)、利用查询分析器(Query Analyzer),使用SQL语句指定参数创建数据库;

数据库实验报告大全 广工 蔡延光版

自动化学院自动化专业班学号 姓名实验时间2011.3.14 教师评定 实验题目数据定义 实验报告一 一、实验目的与要求 目的:使用SQL语言实现数据库的创建、删除;基本表的创建、删除、更新工作;以及索引的创建、删除工作。 要求:1、在SQL SERVER 2000查询分析器中,利用SQL语言中CREATE、DROP 命令实现数据库的创建及删除工作。 2、在SQL SERVER 2000查询分析器中,利用SQL语言中CREATE、ALTER及DROP命令进行基本表的创建、更新、删除工作,并实现基本表中各类完整性约束条件的限定。 3、在SQL SERVER 2000查询分析器中,利用SQL语言中CREATE、ALTER及DROP命令进行基本表中索引的创建、更新、删除工作。 4、完成上述工作后,在SQL SERVER 2000企业管理器中,查看是否成功创建实验所要求数据库、基本表、各类完整性约束条件及索引等内容。 二、实验方案 所有实验内容必须在SQL Server 2000的查询分析器中完成,设置查询分析器的结果区为Standard Execute(标准执行)或Executed Grid(网格执行)方式.发布执行命令.并在结果区中查看查询结果,如果结果不正确则需要进行修改,直到正确为止。要求完成如下内容: 1.定义数据库 定义一个借阅数据库,要求所定义的数据库大小为1M,且数据库名称为Labery_学号。 2.定义下列数据库基本表 在所定义的借阅数据库Labery_学号中,按要求定义如下数据库表: 1)书(book)

列名别名类型及长度是否可为空书号bno char(8)否 类别category varchar(10)否 书名title varchar(40)否 出版社press varchar(30)是 年份book_year Int否 作者author char(20)是 价格price decimal(7,2)否 总藏书量book_total Int否 2)借书证(card) 列名别名类型及长度是否可为空卡号cno char(7)否 姓名name char(8)否 单位department varchar(40)是 类别type char(1)否 3)借书记录(borrow) 列名别名类型及长度是否可为空卡号cno char(7)否 书号bno char(8)否 借书日期borrow_date smalldatetime否 还书日期return_date smalldatetime是 3.完整性约束条件: 主要内容为: 1)确定各基本表的主码; 2)确定各基本表的外码; 3)要求在定义各基本表的同时,确定如下完整性约束条件 1、定义各基本表主码,并且要求主属性不能为空; 2、如果有外码,定义各基本表外码; 3、要求检查借书证中属性Type的值是否为('T','G','U','F')); 4、借书记录borrow基本表中borrow_date默认日期为当前时间。4)确定各基本表哪些字段需要建立索引。

计算机网络实验指导书(6个实验)

实验一交换机的基本配置 一.实验原理 1.1以太网交换机基础 以太网的最初形态就是在一段同轴电缆上连接多台计算机,所有计算机都共享这段电缆。所以每当某台计算机占有电缆时,其他计算机都只能等待。这种传统的共享以太网极大的受到计算机数量的影响。为了解决上述问题,我们可以做到的是减少冲突域类的主机数量,这就是以太网交换机采用的有效措施。 以太网交换机在数据链路层进行数据转发时需要确认数据帧应该发送到哪一端口,而不是简单的向所有端口转发,这就是交换机MAC地址表的功能。 以太网交换机包含很多重要的硬件组成部分:业务接口、主板、CPU内存、Flash、电源系统。以太网交换机 的软件主要包括引导程序和核心操作系统两部分。 1.2以太网交换机配置方式 以太网交换机的配置方式很多,如本地Console 口配置,Telnet远程登陆配置,FTP TFTP配置和哑终端方式 配置。其中最为常用的配置方式就是Console 口配置和Telnet远程配置。 1.3以太网交换机基本配置方法 1.3.1交换机的用户界面交换机有以下几个常见命令视图: (1)用户视图:交换机开机直接进入用户视图,此时交换机在超级终端的标识符为。 (2)系统视图:在用户视图下输入实system-view命令后回车,即进入系统视图。在此视图下交换机的标识符 为:。](3)以太网端口视图:在系统视图下输入interface命令即可进入以太网端口视图。在此视图下交换 机的标识符为:。 (4)VLAN配置视图:在系统视图下输入vlan vlan —number即可进入VLAN配置视图。在此视图下交换机的标识符为:。 (5)VTY用户界面视图:在系统视图下输入user-interface vty number 即可进入VTY用户界面视图。在此视图下交 换机的标识符为:。 进行配置时,需要注意配置视图的变化,特定的命令只能在特定的配置视图下进行。 1.3.2交换机的常用帮助在使用命令进行配置的时候,可以借助交换机提供的帮助功能快速完成命令的查找和配置。 (1)完全帮助:在任何视图下,输入?”获取该视图下的所有命令及其简单描述。 (2)部分帮助:输入一命令,后接以空格分隔的?”,如果该位置为关键字,则列岀全部关键字及其描述;如果该位置为参数,则列岀有关的参数描述。 在部分帮助里面,还有其他形式的帮助,如键入一字符串其后紧接?”,交换机将列岀所有以该字符串开头的命令; 或者键入一命令后接一字符串,紧接?”,列岀命令以该字府串开头的所有关键字。 实验内容:交换机配置方法

2015广工操作系统实验报告(文档最后含源码下载地址)

操作系统实验报告 学生学院____ 计算机学院______ 专业班级13级计科9 学 号 学生姓名 指导教师 李敏 2015年12月29日

实验一进程调度实验 一、实验目的 用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解。 二、实验内容和要求 设计一个有N个进程共行的进程调度程序。要求采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程),时间片轮转算法,多级反馈队列调度算法这三种算法。 每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。 进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。进程的运行时间以时间片为单位进行计算。 每个进程的状态可以是就绪W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。 就绪进程获得CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。 如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的PCB,以便进行检查。 重复以上过程,直到所要进程都完成为止。 三、实验主要仪器设备和材料 实验环境 硬件环境:IBM-PC或兼容机 软件环境:C++、C语言编程环境 四、实验方法 1、编写并调试一个模拟的进程调度程序,采用“最高优先数优先”调度算法对五个进程进行调度。 “最高优先数优先”调度算法的基本思想是把CPU分配给就绪队列中优先数最高的进程。 静态优先数是在创建进程时确定的,并在整个进程运行期间不再改变。 动态优先数是指进程的优先数在创建进程时可以给定一个初始值,并且可以按一定原则修改优先数。 例如:在进程获得一次CPU后就将其优先数减少1。或者,进程等待的时间超过某一时限时增加其优先数的值,等等。 2、编写并调试一个模拟的进程调度程序,采用“轮转法”调度算法对五个进程进行调度。轮转法可以是简单轮转法、可变时间片轮转法,或多队列轮转法。 简单轮转法的基本思想是:所有就绪进程按FCFS排成一个队列,总是把处理机分配给队首的进程,各进程占用CPU的时间片相同。如果运行进程用完它的时间片后还为完成,就把它送回到就绪队列的末尾,把处理机重新分配给队首的进程。直至所有的进程运行完毕。 3、多级反馈队列调度算法的基本思想是:

广东工业大学C语言实验报告模板

实验_______题目____________________________课程名称C程序设计 C程序设计 实验报告 课程名称 C程序设计 学生学院管理学院 专业班级 学号 学生姓名 指导教师____黄永慧 ______________ 年月日

实验_______题目____________________________课程名称C程序设计 一.实验目的 1.设计一个C++程序,输入一个学生的三门课成绩,求其总成绩并输出。 2.输入一个三角形的三个边长值,求该三角形的面积并输出。 3.要求用户输入两个数,并输出这两个数的和、乘积、差和商。 4.编写一个程序。要求读入一个圆的半径(一个整数),并打印圆的直径、周长和面积。π=3.14159。 8.输入某学生成绩,若成绩在90-100 输出"excellent",若成绩在80-89 输出"good",若成绩在70-79 输出"general",若成绩在60-69 输出”pass”,若成绩在0-59 输出”no pass”。 11.输入三个数,按从小到大的大顺序输出。 12.在100~200 中找出同时满足3 除余2,用5 除余3 和用7 除余2 的所有整数。 二.实验软件环境 Visual c++6.0 三.实验内容 1.设计一个C++程序,输入一个学生的三门课成绩,求其总成绩并输出。 #include int main(void) { int a, b, c; printf("请输入三门课的成绩:"); scanf("%d%d%d", &a, &b, &c); printf("三门课总成绩为:%d\n", a + b + c); return 0; }

广工_操作系统_实验报告

操作系统实验报告 学院_____计算机学院_______ 专业______软件工程________ 班级______ ________ 学号_____ _______ 姓名_______ _________ 指导教师 (2010年10 月)

学号:姓名:协作者:________ 实验__一__题目__ 进程调度___第周星期___ 一、实验目的 用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解。 二、实验内容和要求 编写并调试一个模拟的进程调度程序,采用“轮转法”调度算法对五个进程进行调度。 ·每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行的时间、已用CPU时间、进程状态等。 ·进程的优先数以及需要的运行时间事先由人为指定(也可以随机数产生)。 ·如果运行一个时间片后进程的已占用CPU时间已达到所需要的运行时间,则撤销该进程,如果还未达到,则把它送回队尾。 三、实验主要仪器设备和材料 实验环境 硬件环境:IBM-PC 或兼容机 软件环境:C语言编程环境 四、实验原理及设计方案 1、实验原理 将程序顺序的输入进程队列后,开始执行程序,当运行了一个时间片后,如果进程所占的CPU时间达到所需的运行时间时,该进程完成,并撤销该进程,否则则把进程送回队尾。 2、设计方案 用一个进程控制块(PCB)表示进程。输入进程名称,优先级,运行时间后,通过模拟系统对进程采用“轮转法”调度,得到各个时间片进程的运行情况。 3、相关数据结构的说明 struct pcb // 定义进程控制块 PCB {

计算机网络实验一 etherreal实验

实验一Ethere实验 1.为本机提供域名解析服务的本地域名服务器的IP地址是什么? 答:110.98.98.98 2.“https://www.doczj.com/doc/82298707.html,”是百度Web服务器的规范主机名还是别名?结合nslookup结果进行分析。 答:https://www.doczj.com/doc/82298707.html,是别名。 范主机名是https://www.doczj.com/doc/82298707.html,。 3.域名解析服务器返回的百度Web服务器IP地址有几个,分别是什么,能否在浏览器的地址栏中使用IP地址取代域名来访问服务器,为什么?结合nslookup结果进行分析。 答:2个,分别是111.13.100.92和111.13.100.91。可以用浏览器直接打开,因为域名解析实际找到地址,提供2个IP,故均可上网。

4.域名服务器给出的是权威的还是非权威的答案,权威、非权威分别表示什么意思?结合nslookup结果进行分析。 答:如果DNS服务器在自己的区域文件里找到了客户端需要查询的记录,就会返回――权威性应答。如果查询其他DNS服务器直到找到,然后此服务器将找到的内容返回给客户端非权威性应答 (图片和上一题相同) 5.获取百度Web服务器主页的HTTP请求报文和响应报文的序号分别是多少? 答:144和150。 6.HTTP请求报文中是否使用了条件获取? 答:没有,因为没有HTTP报文中不含If-Modified-Since。

7.浏览器、服务器HTTP协议版本是什么? 答:浏览器的版本是Mozilla/5.0。服务器HTTP协议版本是HTTP/1.1。 8.客户端是否希望服务器保持HTTP连接,服务器是否同意保持HTTP连接? 答:客户端希望保持连接;服务器同意保持连接。 9.浏览器、服务器之间采用的是哪一种HTTP连接类型?持久的还是非持久的,带流水线的还是不带流水线的? 答:持久的,带流水线。http 1.1默认这种方式。

广东工业大学编译原理实验报告

实验报告 课程名称____ 编译原理__________ 题目名称_ PL/0编译程序的修改扩充_ 学生学院______计算机学院__ 专业班级_______ ________ 学号 学生姓名______ ________ 指导教师____ _________ __ 20 年月日

一、课内实验要求 对PL/0作以下修改扩充: 增加单词:保留字ELSE,FOR,TO,DOWNTO,RETURN 运算符*=,/=,++,--,&,||,! 修改单词:不等号# 改为<> 增加条件语句的ELSE子句,要求:写出相关文法,语法图,语义规则。 二、实验环境与工具 计算机及操作系统:PC机,Windows2000,WindowsXP 程序设计语言:C 教学型编译程序:PL/0 设计方案 概述:源、目标语言,实现工具(平台),运行平台 源语言:PASCAL 目标语言:假想栈式计算机的汇编语言,可称为类PCODE指令代码 实现工具:Visual C++ 6.0 运行平台:Windows 7 三、设计方案 1.结构设计说明 (1)PL/0 语言编译器 PL/0语言可看成是PASCAL语言的子集,它的编译程序是一个编译解释执行系统。PL/0的目标程序为假想栈式计算机的汇编语言,与具体计算机无关。

(2)PL/0编译程序的语法分析过程BLOCK是整个编译过程的核心。这里根据编译程序的总体流程图,来弄清BLOCK过程在整个编译程序中的作用。总流程图如下图所示: PL/0语法调用关系图

PL/0 的编译程序采用一趟扫描方式,以语法分析程序为核心,词法分析程序和代码生 成程序都作为一个独立的过程,当语法分析需要读单词时就用词法分析程序,而当语法分析正确需生成相应的目标代码时,则调用代码生成程序。此外,用表格管理程序建立变量,常量和过程标识符的说明与引用之间的信息联系。用出错处理程序对词法和语法分析遇到的错误给出在源程序中出错的位置和错误性质。 (3)各功能模块描述

广工计算机网络实验报告

课程名称:计算机网络实验学院信息工程 专业班级 学号 姓名 联系方式 任课教师 2017年5月 9 日

实验一基本组网实验 一、实验目的 自己组建小型网络,学习最简单的静态路由协议并测试网络连通性。 二、实验内容 通过在路由器上配置静态路由协议命令,可以利用路由器把不同的网段连接起来,从而实现不同网段的PC互相PING通。利用一台PC和AR18、AR28搭建小型网络环境,实现相邻小组PC互相PING通。 三、实验主要仪器设备和材料 AR28路由器、AR18路由器,一台PC机。 四、实验截图 五、分析

原理:静态路由是由管理员在路由器上手动设置的固定路由,由于静态路由协议的缘故,所以必须明确指出数据包要到达的目的网络地址以及中间所经过的各个路由器地址。 本实验通过两组AR18和AR28,来搭建一个小型网络,通过手动配置两组路由以及相关接口的IP地址,实现数据包的定向发送,从而PING通两台PC。 六、讨论 1、实验中,如果不添加斜体字加粗的部分,是否还能实现两台PC互相PING通? 答:可以,若不添加,那将使用预先设置好的静态的缺省路由,仍然可以将数据包转发到下一跳。 2、静态缺省路(目标网段为0.0.0.0 0.0.0.0)和明细的静态路由(有目标网段的静态路由)有什么区别的? 答:静态缺省路由是将所有收到的数据包将发送到指定的下一跳的地址,而明确的静态路由则是将目标网段收到的数据包发送指定的下一跳的地址。

实验二、路由器协议实验(RIP、OSPF) 一、实验目的 常见的路由协议有静态RIP,OSPF等,静态路由一般用于较小的网络环境,RIP一般用于不超过15台路由器的环境,OSPF常用于大型的网络环境,是目前主流的网络路由协议之一。 二、实验内容和要求 1、如何配置路由器,并掌握基本的命令 2、学习常见的网络路由协议配置方法 三、实验主要仪器设备和材料 AR28路由器、AR18路由器,一台PC机。 为了方便测试,本实验需要借助另一小组的一台PC做测试,因此需要把相邻的两个小组的设备连接起来。同时需要添加一些为了测试方便而做的配置,这些配置用斜体字加粗表示。 四、实验截图 RIP:

相关主题
文本预览
相关文档 最新文档