文档库 最新最全的文档下载
当前位置:文档库 › 广东工业大学操作系统实验(刘东宁)

广东工业大学操作系统实验(刘东宁)

广东工业大学操作系统实验(刘东宁)
广东工业大学操作系统实验(刘东宁)

操作系统实验报告

学院计算机

专业计算机科学与技术班级计科7

学号3110006131

姓名陈日燊

指导教师

(2012年10 月28)

进程调度

最高相应比算法

一、实验目的

用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解。

二、实验内容和要求

设计一个有 N个进程共行的进程调度程序。要求采用最高优先数优先算法,时间片轮转算法,多级队列调度算法这三种算法。

·每个进程有一个进程控制块( PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。

·进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。进程的运行时间以时间片为单位进行计算。

·每个进程的状态可以是就绪 W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。

·就绪进程获得 CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。

·如果运行一个时间片后,进程的已占用 CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的 PCB,以便进行检查。

三、实验主要仪器设备和材料

实验环境

硬件环境:个人台式机 Microsoft Windows XP Professional (SP3)

软件环境:C语言编程环境,VC++ 6.0

四、实验设计思想,方法:

“最高优先数优先”调度算法的基本思想是把cpu分配给就绪队列中优先数最高的进程。采用动态优先数,即优先数在创建进程时给定一个初始值,当进程获得一次cpu后其优先数

就减少(加)1。五.流程图

六.实验代码

#include

#include

#include

#define WAIT 1

#define RUN 2

#define FINISH 3

struct pcb

{

char name[10];

int state;

float super;

int need_time;

int run_time;

int arrive_time;

struct pcb * next;

};

typedef struct pcb PCB;

void intPCB(PCB *p,char *s,int c,float sup,int nt,int at)

{

strcpy(p->name,s);

p->state=c;

p->super=sup;/*数字越大,优先级别越大*/

p->need_time=nt;

p->run_time=0;

p->arrive_time=at;

p->next=0;

}

void displayPCB(PCB p)

{

printf("name:%10s state:%6s super:%.2f needTime:%2d runTime:%2d arriveTime:%2d",https://www.wendangku.net/doc/b63391353.html,,p.state==1?"wait":(p .state==2?"run":"finish"),p.super,p.need_time, p.run_time,p.arrive_time);

}

void intALLprocess(PCB *process)

{

intPCB(process,"process1",W AIT,1,2,2);

intPCB(process+1,"process2",W AIT,1,5,5);

intPCB(process+2,"process3",W AIT,1,1, 3);

intPCB(process+3,"process4",W AIT,1,7, 2);

intPCB(process+4,"process5",W AIT,1,3, 4);

}

void sort(PCB *p)

{

PCB *end=0,*t,*tmp;

if(p->next!=0&&p->next->next!=0)

{

tmp=p;

t=tmp->next;

while(t->next!=end)

{

while(t->next!=end)

{

if(t->supernext->super)

{

tmp->next=t->next;

t->next=tmp->next->next;

tmp->next->next=t;

}

tmp=tmp->next;

t=tmp->next;

}

end=t;

tmp=p;

t=tmp->next;

}

}

}

void pushPROCESSintoQUEUE(PCB *p,PCB *process_queue)

{

PCB

*t=(PCB*)malloc(sizeof(PCB)),*tmp;

if(t==0)exit(2);

intPCB(t,p->name,p->state,p->super,p->

need_time,p->arrive_time);

t->next=process_queue->next;

process_queue->next=t;

}

int processALLenterINTOqueue(PCB *p) {/*从数组中按照到达时间把进程调入就绪队列,当调入到队列时,把super置为非零值。当全部调入之后函数返回1,否则返回0*/

int i;

for(i=0;i<5;i++)

{

if((p+i)->next==0)

return 0;

}

return 1;

}

int main()

{

PCB process[5],*tmp;

PCB *head;

int i,time=0;

head=(PCB*)malloc(sizeof(PCB));

if((head)==0)

exit(1);

else

head->next=0;

intALLprocess(process);

while(head->next!=0||!processALLenterI NTOqueue(process))

{/*队列还有进程没有完成或者还有进程没有入队*/

/*先检查有没有在这个时间入队的进程,有则插入队列。*/

for(i=0;i<5;i++)

{

if(process[i].next==0)

{

if(time==process[i].arrive_time)

{

process[i].next=process;

pushPROCESSintoQUEUE(process+i,he ad);

}

}

}

sort(head);

printf("CPU TIME:%d\n",time++);

tmp=head->next;

if(tmp==0){printf("no

process\n\n");continue;}

/*执行优先数最高的进程(在队头)*/

printf("running

process:%s\n",tmp->name);

printf("ready process queue:\n");

printf("before runnning:");

tmp->run_time++;

while(tmp!=0)

{

printf("%s ",tmp->name);

tmp->super=((float)(time-tmp->arrive_ti me-tmp->run_time+tmp->need_time))/tmp->n eed_time;

tmp=tmp->next;

}

tmp=head->next;

for(i=0;i<5;i++)

{

if(0==strcmp(process[i].name,tmp->nam e))

{

process[i].run_time++;

process[i].state=RUN;

if(tmp->need_time==tmp->run_time)

process[i].state=FINISH;

}

if(process[i].state==FINISH||process[i].n ext==0)continue;

process[i].super=((float)(time-process[i]. arrive_time-process[i].run_time+process[i].ne ed_time))/process[i].need_time;

}

if(tmp->need_time==tmp->run_time)/*完成,出队*/

{

head->next=tmp->next;

free(tmp);

tmp=head->next;

}

sort(head);

tmp=head->next;

printf("\n after runnning:");

while(tmp!=0)

{

printf("%s ",tmp->name);

tmp=tmp->next;

}

printf("\n");

printf("ALL process :\n");

for(i=0;i<5;i++)

{

displayPCB(process[i]);

if(process[i].state==RUN)process[i].state =WAIT;

printf("\n");

}

printf("\n");

}

printf("done\nPress any key to quit");

getch();

}

时间片轮转流程图

实验代码

#include

#include

#include

#define WAIT 1

#define RUN 2

#define FINISH 3

struct pcb

{

char name[10];

int state;

int need_time;

int run_time;

int arrive_time;

struct pcb * next;

};

typedef struct pcb PCB;

void intPCB(PCB *p,char *s,int c,int nt,int at) {

strcpy(p->name,s);

p->state=c;

p->need_time=nt;

p->run_time=0;

p->arrive_time=at;

p->next=0;

}

void displayPCB(PCB p)

{

printf("name:%10s state:%6s needTime:%2d runTime:%2d arriveTime:%2d",https://www.wendangku.net/doc/b63391353.html,,p.state==1?"wait":(p .state==2?"run":"finish"),p.need_time,p.run_ti me,p.arrive_time);

}

void intALLprocess(PCB *process)

{

intPCB(process,"process1",W AIT,2,2);

intPCB(process+1,"process2",W AIT,5,5);

intPCB(process+2,"process3",W AIT,1,3);

intPCB(process+3,"process4",W AIT,7,2);

intPCB(process+4,"process5",W AIT,3,4); }

PCB *pushPROCESSintoCIRCLE(PCB *p,PCB *circle)

{

PCB

*t=(PCB*)malloc(sizeof(PCB)),*tmp;

if(t==0)exit(2);

intPCB(t,p->name,p->state,p->need_time ,p->arrive_time);

if(circle==0)

{

t->next=t;

return t;

}

else

{

tmp=circle;

while(tmp->next!=circle)

tmp=tmp->next;

tmp->next=t;

t->next=circle;

return circle;

}

}

int processALLenterINTOcircle(PCB *p) {/*从数组中按照到达时间把进程调入就绪队列,当全部调入之后函数返回1,否则返回0*/

int i;

for(i=0;i<5;i++)

{

if((p+i)->next==0)

return 0;

}

return 1;

}

int main()

{

PCB process[5],*tmp;

PCB *circle=0;

int i,time=0;

intALLprocess(process);

while(circle!=0||!processALLenterINTOc ircle(process))

{/*队列还有进程没有完成或者还有进程没有入队*/

/*先检查有没有在这个时间入队的进程,有则插入队列。*/

for(i=0;i<5;i++)

{

if(process[i].next==0)

{

if(time==process[i].arrive_time)

{

process[i].next=process;

circle=pushPROCESSintoCIRCLE(proce ss+i,circle);

}

}

}

printf("CPU TIME:%d\n",time++);

if(circle==0){printf("no

process\n\n");continue;}

/*执行优先数最高的进程(在队头)*/

printf("running

process:%s\n",circle->name);

tmp=circle;

printf("ready process queue:\n");

printf("before running:");

do

{

printf("%s ",tmp->name);

tmp=tmp->next;

}while(tmp!=circle);

printf("\n");

circle->run_time++;

circle->state=RUN;

for(i=0;i<5;i++)

{

if(0==strcmp(process[i].name,circle->na me))

{

break;

}

}

process[i].run_time=circle->run_time;

process[i].state=circle->state;

if(circle->need_time==circle->run_time)/ *完成,出队*/

{

process[i].state=FINISH;

if(circle->next==circle)

circle=0;

else

{

tmp=circle;

while(tmp->next!=circle)

tmp=tmp->next;

tmp->next=circle->next;

free(circle);

circle=tmp->next;

}

}

else

{/*把头指针移下一位*/

circle=circle->next;

}

tmp=circle;

printf(" after running:");

if(circle!=0)

{

do

{

printf("%s ",tmp->name);

tmp=tmp->next;

}while(tmp!=circle);

}

printf("\n");

printf("ALL process :\n");

for(i=0;i<5;i++)

{

displayPCB(process[i]);

if(process[i].state==RUN)process[i].state =WAIT;

printf("\n");

}

printf("\n");

}

printf("done\nPress any key to quit");

getch();

}

作业调度

一、实验目的

本实验要求学生模拟作业调度的实现,用高级语言编写和调试一个或多个作业调度的模拟程序,了解作业调度在操作系统中的作用,以加深对作业调度算法的理解。

二、实验内容和要求

1、为单道批处理系统设计一个作业调度程序

(1)、编写并调试一个单道处理系统的作业调度模拟程序。

(2)、作业调度算法:分别采用先来先服务(FCFS),最短作业优先(SJF)、响应比高者

优先(HRN)的调度算法。

先来先服务就是每次调度都是从后备作业队列中,选择一个最先进入该队列的作业,将它调入内存,为它分配资源、创建进程,然后放入就绪队列,投入运

行,一直运行到完成或发生某事件而阻塞后,才放弃处理。

最短作业优先是从后备队列中选择一个估计运行时间最短的作业,将它调入内

存运行并一直执行到完成,或发生某事件而被阻塞放弃处理时,再重新调度。

响应比高者优先是通过计算出作业的响应比,按响应比高而进行调度的,其计算公式是:优先权=(等待时间+要求服务时间)/要求服务时间.

(3)、由于在单道批处理系统中,作业一投入运行,它就占有计算机的一切资源直到作

业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所占用

的 CPU时限等因素。

(4)、每个作业由一个作业控制块JCB表示,JCB可以包含如下信息:作业名、提交时

间、所需的运行时间、所需的资源、作业状态、链指针等等。作业的状态可以是

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

态总是等待W。

(5)、对每种调度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带权

周转时间,以及这组作业的平均周转时间及带权平均周转时间,并比较各种算法

的优缺点。

三、实验主要仪器设备和材料

实验环境

硬件环境:个人台式机 Microsoft Windows XP Professional (SP3)

软件环境:C语言编程环境,VC++ 6.0

四、实验原理及设计方案

1、实验原理

先来先服务算法:是按照作业进入输入井的先后次序来挑选作业,先进入输

入井的作业优先被挑选,当系统中现有的尚未分配的资源不能满足先进入输入井的作业,那么顺序挑选后面的作业。FCFS算法简单易行,但性能却不大好。

短作业优先算法:总是按照作业要求运行时间来选择作业,每次挑选要求作

业执行时间短且资源要求能满足的作业优先分派处理机,通常后来的短作业不抢先正在执行的作业。SJF改善平均周转时间和平均带权周转时间,缩短作业的等待时间,提高系统的吞吐量,但对长作业非常不利。

响应比高者优先算法:最高响应比优先法(HRN,Highest Response_ratio Next)是对FCFS方式和SJF方式的一种综合平衡。FCFS方式只考虑每个作业的等待时间而未考虑执行时间的长短,而SJF方式只考虑执行时间而未考虑等待时间的长短。因此,这两种调度算法在某些极端情况下会带来某些不便。HRN调度策略同时考虑每个作业的等待时间长短和估计需要的执行时间长短,从中选出响应比最高的作业投入执行。

响应比R定义如下:R =(W+T)/T = 1+W/T

其中T为该作业估计需要的执行时间,W为作业在后备状态队列中的等待时间。每当要进行作业调度时,系统计算每个作业的响应比,选择其中R最大者投入执行。这样,即使是长作业,随着它等待时间的增加,W / T也就随着增加,也就有机会获得调度执行。这种算法是介于FCFS和SJF之间的一种折中算法。由于长作业也有机会投入运行,在同一时间内处理的作业数显然要少于SJF法,从而采用HRN方式时其吞吐量将小于采用SJF 法时的吞吐量。另外,由于每次调度前要计算响应比,系统开销也要相应增加。

FSFC

流程图

最短作业优先

流程图

代码

#include #include #include #include #define wait 1

#define run 2

#define finish 3

struct jcb

{

char name[10];

int in_time;

int need_time;

int state;

int wait_time;

struct jcb * next;

};

typedef struct jcb JCB;

//初始化一个做一个作业

JCB* intJCB(char *c,int it,int nt,int s)

{

JCB *p;

p=(JCB*)malloc(sizeof(JCB));

if(p==0)exit(1);

strcpy(p->name,c);

p->in_time=it;

p->need_time=nt;

p->state=s;

p->wait_time=0;

p->next=0;

return p;

}

//初始化所有作业

JCB* intALLjcb(int jobn)

{

int i;

JCB *tmp,*t,*p;

char *s;

p=intJCB("",0,0,0);

tmp=p;

if(jobn>0)

{

srand( (unsigned)time( NULL ) );

for(i=0;i

{

s=(char*)malloc(5);

s[0]='J';

s[1]='O';

s[2]='B';

s[3]=i+65;

s[4]='\0';

t=intJCB(s,rand()%50+1,rand()%100+1, wait);

tmp->next=t;

tmp=tmp->next;

}

}

return p;

}

//释放队列全部制空

void resetJCB(JCB *p)

{

while(p->next!=0)

{

p=p->next;

p->state=wait;

p->wait_time=0;

}

}

//判断所有作业是否做完

int isALLjobDONE(JCB *p)

{

while(p->next!=0)

{

p=p->next;

if(p->state!=finish)

return 0;

}

return 1;

}

void display(JCB *p)

{

while(p->next!=0)

{

p=p->next;

printf("作业名:%s 提交时间:%d 需要时间:%d\n",p->name,p->in_time,p->need_time);

}

}

int main()

{

int etot=0;

double ewtot=0;

JCB *jobqueue,*runningjob,*tmp;

int i,jobcount,finish_time;

printf("enter the number of thejobs\n");

while(1==scanf(" %d",&jobcount))

{

getchar();

jobqueue=intALLjcb(jobcount);

display(jobqueue);

putchar('\n');

while(!isALLjobDONE(jobqueue))

{

tmp=jobqueue;

while(tmp->next!=0)

{

tmp=tmp->next;

if(tmp->state==finish)

continue;

runningjob=tmp;

break;

}

tmp=jobqueue;

while(tmp->next!=0)

{

tmp=tmp->next;

if(tmp->state==finish)

continue;

if(tmp->in_timein_time)

{

runningjob=tmp;

}

}

finish_time=runningjob->in_time+runnin gjob->wait_time+runningjob->need_time;

printf("作业名:%s,提交时间:%d,需要时间:%d完成时间:%d,周转时间:%d,带权周转时间:%4.2f\n",runningjob->name,runningjob->i n_time,runningjob->need_time,finish_time,fin ish_time-runningjob->in_time,

((double)(finish_time-runningjob->in_ti me))/runningjob->need_time);

etot=etot+finish_time-runningjob->in_ti me;

ewtot=ewtot+((double)(finish_time-runni ngjob->in_time))/runningjob->need_time;

runningjob->state=finish;

tmp=jobqueue;

while(tmp->next!=0)

{

tmp=tmp->next;

if(tmp->state==finish)

continue;

if(tmp->in_time

tmp->wait_time=finish_time-tmp->in_ti me;

}

}

printf("average turnover time:%d average weigh turnover time%f\n",etot/jobcount,ewtot/jobcount);

getchar();

/*short job first*/

etot=0;

ewtot=0;

resetJCB(jobqueue);

while(!isALLjobDONE(jobqueue))

{

tmp=jobqueue;

while(tmp->next!=0)

{

tmp=tmp->next;

if(tmp->state==finish)

continue;

runningjob=tmp;

break;

}

tmp=jobqueue;

while(tmp->next!=0)

{

tmp=tmp->next;

if(tmp->state==finish)

continue;

if(tmp->need_timeneed_ti me)

{

runningjob=tmp;

}

}

finish_time=runningjob->in_time+runnin gjob->wait_time+runningjob->need_time;

printf("作业名:%s,提交时间:%d,需要时间:%d完成时间:%d,周转时间:%d,带权周转时间:%4.2f\n",runningjob->name,runningjob->i n_time,runningjob->need_time,finish_time,fin ish_time-runningjob->in_time,

((double)(finish_time-runningjob->in_ti me))/runningjob->need_time);

etot=etot+finish_time-runningjob->in_ti me;

ewtot=ewtot+((double)(finish_time-runni ngjob->in_time))/runningjob->need_time;

runningjob->state=finish;

tmp=jobqueue;

while(tmp->next!=0)

{

tmp=tmp->next;

if(tmp->state==finish)

continue;

if(tmp->in_time

tmp->wait_time=finish_time-tmp->in_ti me;

}

}

printf("average turnover time:%d average weigh turnover time%f\n",etot/jobcount,ewtot/jobcount);

getchar();

system("CLS");}

getch();

}

队列操作API文档

//初始化一个做一个作业

JCB* intJCB(char *c,int it,int nt,int s);

//初始化所有作业

JCB* intALLjcb(int jobn);

//释放队列全部制空

void resetJCB(JCB *p);

//判断所有作业是否做完

int isALLjobDONE(JCB *p);

//初始化进程

/* 建立进显示函数,用于显示当前进程*/

disp(pr);

/*建立查看进程的函数*/ check();

/*建立进程撤销函数*/ destroy();

/*返回现在队列里的进程个数*/ int space()

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

课程设计 课程名称________操作系统___ ____ 题目名称_多用户多级目录文件系统的实现_ 学生学院________计算机学院____________ 专业班级______ _________ 学号________ ___________ 学生姓名_________ _____________ 指导教师__________林穗______________ 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.以光盘(以班为单位刻录)方式提交已调试通过的完整的相关源程序和能够运行的执行文件;提交“课程设计报告”的书面和电子两种版本。 四、课程设计进程安排

广东工业大学实验室安全考试修订版

广东工业大学实验室安 全考试 Document number:PBGCG-0857-BTDO-0089-PTT1998

广东工业大学2015年实验室 1、[判断题]实验大楼出现火情时千万不要乘电梯,因为电梯可能因停电或失控,同时又因“烟囱效应”,电梯井常常成为浓烟的流通道。(分值)你的答案:正确 2、[判断题]高速设备和精密设备应在管理人员指导下使用。(分值)你的答案:正确 3、[判断题]箱式电阻炉的加热元件及其电源连接点需保持良好的绝缘性能,管理员应进行定期检查。(分值)你的答案:正确 4、[判断题]操作机床时,留长发者要戴安全防护帽。(分值)你的答案:正确 5、[判断题]焊接场地应预留安全通道并保持畅通。(分值)你的答案:正确 6、[判断题]焊接场地在10米内,禁止堆放易燃和易爆物质。(分值)你的答案:正确 7、[判断题]安装工件时,工件要装正、夹紧,装、卸工件后必须及时取下卡盘扳手。(分值)你的答案:正确 8、[判断题]在冲压过程中,如果工件卡在模子里,应先关闭电源,并用专业工具取出。(分值)你的答案:正确 9、[判断题]数控电火花线切割机床在加工时,可以用手触摸钼丝。(分值)你的答案:错误 10、[判断题]手工锻造时,握钳者应将钳把置于体侧,不得正对腹部,或将手放入钳股之间。(分值)你的答案:正确 11、[判断题]电源的电压、容量必须符合仪器设备的用电要求。(分值)你的答案:正确 12、[判断题]仪器设备开机前要先阅读熟悉该机器设备的操作规程。(分值)你的答案:正确 13、[判断题]有“严禁烟火”警示牌的大楼和实验室,可不必配置必要的消防、冲淋、洗眼、报警和逃生设施和有明显标志。(分值)你的答案:错误 14、[判断题]Ⅳ类放射源为低危险源。基本不会对人造成永久性损伤,但对长时间、近距离接触这些放射源的人可能造成可恢复的临时性损伤。(分值)你的答案:正确 15、[判断题]Ⅲ类放射源为危险源。在没有防护情况下,接触这类源几小时就可对人造成永久性损伤,接触几天至几周也可致人死亡。(分值)你的答案:正确

广工传感器实验报告

传感器技术及应用实验

实验一金属箔应变片及转换电路性能 实验项目名称:金属箔应变片及转换电路性能 实验项目性质:普通实验 所属课程名称:传感器原理与设计 实验计划学时:2学时 一、实验目的 1、了解应变片的测试原理和应用领域; 2、掌握应变片测试方法及典型转换电路原理; 3、通过实验数据分析处理,掌握获得传感器静态性能特性指标的过程和方法。 二、实验内容和要求 1、观察金属箔式应变片的结构,贴片方式以及桥接方式; 2、测量应变梁形变的应变输出; 3、比较应变片不同桥接方式对电桥输出结果的影响; 4、进行实验前,先预习附录一“CYS型传感器系统综合实验仪使用指南”,了解该设备 的基本结构与组成。 三、实验主要仪器设备和材料 1、CYS型传感器系统综合实验仪 本次实验所用模块包括:①悬臂梁及金属箔式应变片;②电桥模块;③差动放大器; ④直流稳压电源(±4V档);⑤测微头;⑥毫伏表。 2、导线若干 3、万用表 四、实验方法、步骤及结果测试 一)、实验原理 应变片是最常用的测力传感元件,当使用应变片进行测试时,首先要将应变片牢固地粘贴到测试体表面。当被测件受力发生形变,应变片敏感栅也同时变形,其阻值也随之发生相应变化。之后,再通过测量转换电路,将电阻值变化转换成电压输出信号显示。 直流电桥是最常用的一种电测转换电路。当电桥的相对臂电阻阻止乘积相等时,电桥平衡,此时电桥输出电压为零。若设电桥桥臂四个电阻的初始值分别为:R1=R2=R3=R4=R,当测试体表面发生形变,则其电阻的相对变化率分别为△R1/R1、△ R2/R2、△R3/R3、△R4/R4。当使用一个应变片时,可组成半桥单臂电桥,则有U0=U 4△R R ; 当使用两个应变片差动联接,组成半桥双臂电桥,则有U0=U 2△R R ;而四个应变片组成 全桥形式,则输出电压为U0=U△R R 。由此可见,单臂电桥,双臂电桥,全臂电桥的灵敏度是依次增大的。 通过本次实验,可以验证说明箔式应变片组成半桥单臂,半桥双臂电桥和全桥的原理及工作性能。

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

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

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

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

广东工业大学实验室用房分配标准及管理办法

广东工业大学实验室用房分配标准与管理办法 广工大设字[2004]6号 第一条 为了加强对实验室的管理,规范实验室用房的配置和使用,更充分、合理、高效、公平的利用学校教学资源和办学条件为教学、科研服务,特制定本办法。 第二条 广东工业大学实验室用房指在广东工业大学大学城校园、东风路校区和龙洞校区所有建筑目的为实验室的建筑。实验室面积以室内有效使用面积计算。 第三条 实验室与设备管理处是实验室用房的直接管理部门。凡是实验室用房的分配、调整、使用、日常维护和室内装修改造等,由实验室与设备管理处负责。 第四条 学校关于实验室用房的分配标准、使用方法等方面的规章制度,经校长办公会议讨论通过后,由实验室与设备管理处组织实施。 第五条 实验室用房分为实验教学用房、科研用房和实验行政办公用房。实验教学用房包括公共基础课实验室、专业基础实验室和专业实验室;科研用房包括科研办公室、研究生用房和科研实验室。 第六条 实验室用房的分配标准主要依据各学院及有关单位所承担的本科生实验教学基本任务、研究生的基本规模和科研队伍的基本结构以及所承担的科研基本任务,并综合考虑各学院教学、科研及学科建设发展的需要。 第七条 教学实验室用房面积分配标准 (一)公共基础课实验室面积标准A j1 公共基础课实验室主要指大学物理实验室、电工电子实验室、计算机基础实验室、机械设计原理实验室、基础化学实验室(含有机、无机、分析和物化实验室)和力学实验室。 100/1A 11??=SK j N K (平方米) 其中K 1是考虑不同专业性质的调整系数,K 1取值如表1所示;N SK 是按学校教学计划该实验室承担的教学实验年人时数(如承担实训,按实际使用实验室时数); 表1 考虑不同专业性质的调整系数K 1 j2100/4A 22??=SK j N K (平方米) 表2 考虑不同专业性质的调整系数K 2 j3单独计算。 第八条 科研用房分配标准 (一)科研办公室面积标准A k1 以各学院教学、科研队伍的基本结构为基数,并考虑职称及学历结构因素。基本单元面积为5平方米。

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

广东工业大学学分制实施办法

广东工业大学学分制实施办法 第一章总则 第一条为规范管理学生的学分制修读过程,特制订本实施办法。 第二条学生必须按所学专业教学计划所列应修读课程(包括理论教学、实践教学、课外教学活动)并取得学分,达到专业教学计划规定的最低学分要求方能毕业。 第二章课内教学 第三条课内教学是根据专业人才培养目标和培养要求设置的教学活动,是人才培养计划的主体。我校学生在校修读的课程设置分为公共基础课、专业基础课、专业课、公共选修课以及实践性教学环节。 第四条公共基础课程包括马克思主义理论课和思想品德课、体育、外语、数学、物理、计算机基础教育课和文化素质教育课。 专业基础课程是为专业学习服务、按学科平台设置的传授基本理论和基本技能的课程。 上述二类为学生必须修读的课程。 第五条专业课包括专业必修课与专业选修课两类,专业必修课程是专业培养的核心课程,有深度有广度地提供与本专业相关的基本知识、理论和技能。专业选修课程是根据社会对本专业本科人才知识、能力、素质结构的要求而设置的模块式课程组,供学生自主选择。 第六条本科学生的公共选修课程包括人文社会科学类、自

然科学类、工程技术基础及技能类三种,旨在加强大学生人文素质和科学素质的养成和提高,增强工程意识。对于工程技术基础及技能类选修课,学生应修读本专业以外的工程基础技术及技能课程,以利于复合型人才的形成并拓宽就业渠道。对于公共选修课,本科学生必须完成至少14学分的选修课程,其中工科专业学生人文社会科学类7学分,自然科学类4学分,工程技术基础及技能类3学分;理科专业学生人文社会科学类7学分,自然科学类3学分,工程技术基础及技能类4学分;经、管、文类专业学生人文社会科学类3学分,自然科学类4学分,工程技术基础及技能类7学分。学生根据个人特长和开课实际情况修读。 第七条专科的专业课根据社会对本专业专科人才的知识、能力、素质要求设置,为学生必须修读的课程。 专科的选修课程主要为开拓学生视野,介绍本专业的学科前沿和实用高新技术,供学生选读。专科学生须完成专业教学计划规定的选修课学分。 第八条实践性教学环节是培养学生实践能力、创新精神的重要途径。我校实践性教学环节主要有军事训练、社会实践、工程实践、实验实训、认识实习、生产实习、课程设计、毕业设计(论文)等。 第九条课内教学环节学分计算 理论教学课及单独设置的实验、实习实训课、设计类课程,16学时为1学分;集中进行的实践性教学环节1周为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文件系统中,文件的路径名和磁盘索引结点之间是一一对应的。( )

广东工业大学实验室安全考试

广东工业大学2015年实验室 1、[判断题]实验大楼出现火情时千万不要乘电梯,因为电梯可能因停电或失控,同时又因“烟囱效应”,电梯井常常成为浓烟的流通道。(分值1.0) 你的答案:正确 2、[判断题]高速设备和精密设备应在管理人员指导下使用。(分值1.0) 你的答案:正确 3、[判断题]箱式电阻炉的加热元件及其电源连接点需保持良好的绝缘性能,管理员应进行定期检 查。(分值1.0) 你的答案:正确 4、[判断题]操作机床时,留长发者要戴安全防护帽。(分值1.0) 你的答案:正确 5、[判断题]焊接场地应预留安全通道并保持畅通。(分值1.0) 你的答案:正确 6、[判断题]焊接场地在10米内,禁止堆放易燃和易爆物质。(分值1.0) 你的答案:正确 7、[判断题]安装工件时,工件要装正、夹紧,装、卸工件后必须及时取下卡盘扳手。(分值1.0) 你的答案:正确 8、[判断题]在冲压过程中,如果工件卡在模子里,应先关闭电源,并用专业工具取出。(分值1.0)你的答案:正确 9、[判断题]数控电火花线切割机床在加工时,可以用手触摸钼丝。(分值1.0) 你的答案:错误

10、[判断题]手工锻造时,握钳者应将钳把置于体侧,不得正对腹部,或将手放入钳股之间。(分值1.0) 你的答案:正确 11、[判断题]电源的电压、容量必须符合仪器设备的用电要求。(分值1.0) 你的答案:正确 12、[判断题]仪器设备开机前要先阅读熟悉该机器设备的操作规程。(分值1.0) 你的答案:正确 13、[判断题]有“严禁烟火”警示牌的大楼和实验室,可不必配置必要的消防、冲淋、洗眼、报警和逃生设施和有明显标志。(分值1.0) 你的答案:错误 14、[判断题]Ⅳ类放射源为低危险源。基本不会对人造成永久性损伤,但对长时间、近距离接触这些放射源的人可能造成可恢复的临时性损伤。(分值1.0) 你的答案:正确 15、[判断题]Ⅲ类放射源为危险源。在没有防护情况下,接触这类源几小时就可对人造成永久性损伤,接触几天至几周也可致人死亡。(分值1.0) 你的答案:正确 16、[判断题]α衰变放出带二个正电的氦核,对它的防护是防止它进入体内,即内照射防护。(分值1.0) 你的答案:正确 17、[判断题]各涉源单位要建立健全放射性同位素保管、领用和消耗的登记制度,做到帐物相符。实验过程必须小心谨慎,严格按照操作规程进行,做好安全防护工作。(分值1.0) 你的答案:正确 18、[判断题]人体触电,双手触电致死比单手触电致死的概率要大得多。(分值1.0) 你的答案:正确

电拖实验报告伍宏淳

广东工业大学实验报告 __ 自动化_ _学院 __ 自动化 __专业 _ 1 __班成绩评定___________ 学号 3114000825 姓名_伍宏淳_(合作者____学号____) 教师签名_______ 实验_ 一 _ 题目_ 直流调速系统的稳态调速性能实验 _ 第_11 周星期三_ 一、实验目的 1. 掌握PWM直流调速系统的组成结构和工作原理; 2. 掌握直流调速系统的机械特性测试方法; 3. 理解开环、闭环调速方法的稳态机械特性; 4. 理解转速负反馈的作用。 二、实验内容和要求 1. 完成PWM直流调速系统的接线; 2. 测定开环调速方式的机械特性; 3. 测定转速负反馈有静差、无静差调速方式的静特性; 4. 分析对比开环、有静差、无静差调速的稳态机械特性。 三、实验结果和数据处理 1. 实验结果 2. 调速方式的稳态机械特性分析对比 ①根据表1和表2的数据,绘制开环调速、单闭环无静差调速的稳态机械特性图,分析对比这两种调速 方式的稳态机械特性。 1、闭环系统静特性可以比开环系统机械特性硬得多; 2、闭环系统的静差率要比开环系统小得多; 3、如果所求的静差率一定,则闭环系统可以大大提高调速范围。 ②根据表3和表4的数据,绘制双闭环有静差调速、双闭环无静差调速的稳态机械特性图,分析对比这 两种调速方式的稳态机械特性。

1、双闭环有静差调速的输出只取决于输入偏差量的现状; 2、双闭环无静差调速的输出包含了输入偏差量的全部历史,虽然到稳态时?Un=0,只要历史上有过?Un, 其积分就有一定数值,足以产生稳态运行所需要的控制电压Uc。这就是积分控制规律和比例控制规 律的根本区别。 四、结论与心得 本次实验是直流电机调速的各种方法的测试和对比,在课本的学习中我们掌握了理论知识,知道直流 调速方法有很多,只有清楚知道各自的优缺点,才能根据工程的要求,采用合理的方法,以用合理的方式 完成直流电机的调速。 五、问题与讨论 1. 根据直流开环调速、单闭环无静差调速的稳态机械特性图,思考转速负反馈的作用。 闭环后,当负载增大时,由于转速反馈调节的作用,电压可升高到Ud02,使工作点水平向上平移,稳态速 降比开环系统要小得多。 2. 根据直流双闭环有静差调速、无静差调速的稳态机械特性图,思考积分调节器的作用。 采用积分调节器,使得在有静差调速的情况下差值只能在是瞬时时刻,因为有积分调节器的加入,使得可 以全部历史时刻控制,以致没有差值的产生。 广东工业大学实验报告 __ 自动化_ _学院 __ 自动化 __专业 _ 1 __班成绩评定___________ 学号 3114000825 姓名_伍宏淳_(合作者____学号____) 教师签名_______ 实验_ 二 _ 题目_ 直流调速系统的动态调速性能实验 _ 第_12 周星期三_ 一、实验目的 1. 掌握直流调速系统的动态响应特性测试方法; 2. 理解转速单闭环、转速电流双闭环调速方法的动态响应特性,以及电流闭环控制的作用; 3. 理解可逆直流调速系统转速反向的过渡过程; 4. 理解转速调节器的比例、积分参数对系统动态性能的影响。 二、实验内容和要求 1. 完成PWM直流调速系统的接线; 2. 记录转速单闭环调速方式的动态响应曲线; 3. 记录转速电流双闭环调速方式的动态响应曲线; 4. 分析对比单闭环、双闭环调速方式在转速跟随、抗负载扰动、抗电网电压扰动方面的性能; 5. 记录可逆直流调速系统转速反向的过渡过程的I-N曲线; 6. 测定转速调节器在不同的比例、积分参数下,调速系统的动态响应特性。 三、实验结果和数据处理 1.空载零速启动实验 图1.1转速单闭环转速和电流波形图1.2双闭环转速电流波形 2.负载扰动实验 图2.1单闭环负载突加图2.2 单闭环负载突减 图2.3双闭环负载突加图2.4双闭环负载突减

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

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

姓名 指导教师 (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)确定各基本表哪些字段需要建立索引。

广东工业大学2009届毕业生就业协议书. 发放及管理办法

广东工业大学2009届毕业生就业协议书 发放及管理办法 一、普通高等学校毕业生、毕业研究生就业协议书(以下简称协议书)是毕业生与用人单位签订就业合同文书和学校编制、上报就业方案的凭据,由广东省高等学校毕业生就业指导中心统一印制。 二、发放对象:国家计划内招生的应届本专科毕业生以及因特殊情况经校教务部门同意延长学籍并于2010年取得毕业资格的学生、定向生及民族生。港澳生、外国留学生原则上不发放。 三、2010届毕业生协议书的发放采取毕业生通过学校就业网进行网上申请后取领取(2009年11月2日开始网上申请,申请流程参见附件)。2009年11月2日以前需领取协议书的毕业生,须认真填写《广东工业大学本专科毕业生就业协议书申请表》(申请书可在学校就业网上下载),由学院签字盖章后交学校就业指导中心,2个工作日后到所在学院领取。 四、符合发放条件的毕业生每人只能拥有一份协议书(一式三联);协议书必须由本人亲自签领。并在《广东工业大学2010届毕业生就业协议书签领登记表》上签字确认。 五、协议书的签订 1.符合发放协议书条件的毕业生落实签约单位后,按协议书的申请流程进行网上申请并到所在学院签领协议书,与用人单位签约后,到学校就业网录入协议书的相关内容(即录入个人就业信息,为

协议书的鉴证的前提工作,与申请协议书不同),然后将相关材料提交学院审核并鉴证,待接收手续完备后再到学校就业中心鉴证;毕业生就业指导中心将鉴证完毕的协议书交各学院,学院凭学校就业中心已鉴证的协议书协助毕业生录制就业建议方案。 2.签约前已录取并决定就读研究生的毕业生(或专升本)原则上不发放协议书。确定录取研究生(或专升本)之前已经签约的毕业生,如果选择读研究生(或专升本),须由毕业生本人与就业单位协商解约事宜;如果选择放弃深造而在签约单位就业的,须由毕业生向录取学校研招办提交弃读申请,由录取学校研招办签字盖章后交学院做建议就业方案凭据。 3.协议书的签署必须符合国家有关法律法规。毕业生签约前应认真阅读协议书上的说明条款,不得弄虚作假欺骗签约单位,否则后果自负。 4.如果用人单位恶意违约,不履行协议,经毕业生本人和学校协调不果的,毕业生可凭协议书向单位所在地劳动仲裁委员会提请调解,或直接诉诸法院。 5.各学院应加强毕业生签约的诚信教育,原则上不允许毕业生违约。 六、协议书的更换、补发: 1.毕业生签领协议书后,因损坏、涂污、填错等原因需更换协议书者,由毕业生填写协议书补发申请表《广东工业大学补发毕业生就业资料申请表》,学院党委副书记签字盖章后到学校就业指导中心

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、多级反馈队列调度算法的基本思想是:

广东工业大学现代控制理论实验报告

实验一系统的传递函数阵和状态空间表达式的转换 一.实验目的 学习多变量系统传递空间表达式的建立方法、了解系统状态空间表达式和传递函数相互转换的方法; 通过编程、伤及调试,掌握多变量系统状态空间表达式与传递函数相互转换方法。二.实验容 例1.1: A=[0 1 0;0 0 1;-4 -3 -2]; B=[1;3;-6]; C=[1 0 0]; D=0; %状态空间表达式转换成传递函数阵的格式为 %[num,den]=ss2tf(a,b,c,d,u) [num,den]=ss2tf(A,B,C,D,1) 例1.2 num=[0 1 5 3]; den=[1 2 3 4]; [A,B,C,D]=tf2ss(num,den)

练习题 求A、B、C、D阵的程序和运行结果 程序如下: %传递函数阵的格式转换成为状态空间表达式num=[0 0 1 2;0 1 5 3]; den=[1 2 3 4]; [A,B,C,D]=tf2ss(num,den)

验证: 程序如下: A=[-2 -3 -4;1 0 0;0 1 0]; B=[1;0;0]; C=[0 1 2;1 5 3]; D=[0;0]; %状态空间表达式转换成传递函数阵的格式为%[num,den]=ss2tf(a,b,c,d,u) [num,den]=ss2tf(A,B,C,D,1)

实验二状态空间控制模型系统仿真及状态方程求解 一.实验目的 1.熟悉线性连续系统的状态空间控制模型的各种表示方法; 2.熟悉系统模型的转换功能; 3.利用MATLAB对线性定常系统进行动态分析。 例2.1 num=[1 2 1 3]; den=[1 0.5 2 1]; [z,p,k]=tf2zp(num,den) [a,b,c,d]=tf2ss(num,den)

广东工业大学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 {

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

一、课内试验要求 对PL/0作以下修改扩充: (1)增加单词:保留字ELSE,REPEAT,DOWHILE,RETURN 运算符+=,-=,++,-- (2)修改单词:不等号# 改为<> (3)增加条件语句的ELSE子句 二、具体操作 (一)增加保留字ELSE,REPEAT,DOWHILE,RETURN和运算符+=,-=,++,--的修改需要在头文件和主程序的init()初始化函数修改,相应的要增加关键字个数。 具体如下: 《一》头文件PL0.h中修改的程序部分 //************************************* # define norw 17 //关键字增加了4个,13改为17 增加了保留字ELSE,REPEAT,DOWHILE,RETURN //************************************* /*符号*/ enum symbol{ nul, ident, number, plus, minus, times, slash, oddsym, eql, neq, lss, leq, gtr, geq, lparen, rparen, comma, semicolon,period, becomes, beginsym, endsym, ifsym, thensym, whilesym, writesym, readsym, dosym, callsym, constsym, varsym, procsym, //**************************************************************** //增加保留字else,repeat,dowhite,return,运算符+=,-=,++,-- elsesym,repeatsym,dowhitesym,returnsym, addbecomes,//运算符+= minusbecomes,//运算符-= adddouble,//运算符++ minusdouble,//运算符-- //**************************************************************** }; //**************************************************************** #define symnum 40 //关键字由原来的32个变为40个,则32改为40 //**************************************************************** 《二》主程序文件PL0.cpp中修改的程序部分 初始化函数void init();中修改部分: /*设置保留字名字,按照字母顺序,便于折半查找*/ strcpy(&(word[0][0]),"begin"); strcpy(&(word[1][0]),"call"); strcpy(&(word[2][0]),"const"); strcpy(&(word[3][0]),"do"); //********************************** //添加增加的保留字,下标也要随着更改 strcpy(&(word[4][0]),"dowhite"); strcpy(&(word[5][0]),"else"); //********************************** strcpy(&(word[6][0]),"end"); strcpy(&(word[7][0]),"if"); strcpy(&(word[8][0]),"odd"); strcpy(&(word[9][0]),"procedure"); strcpy(&(word[10][0]),"read"); //********************************** strcpy(&(word[11][0]),"repeat"); strcpy(&(word[12][0]),"return"); //**********************************

相关文档
相关文档 最新文档