广工操作系统实验2014 2015

广工操作系统实验2014 2015
广工操作系统实验2014 2015

操作系统实验报告

学生学院计算机学院

专业班级X级网络工程2班

学号 311X

学生姓名 X

指导教师 X 2013年12月26 日

计算机学院网络工程专业 2 班学号:X 姓名:X 协作者:________ 教师评定:

实验__一__题目_实验一进程调度

实验__二__题目_实验二作业调度

实验__三__题目_实验三储存管理空间的分配与回收模拟

计算机学院网络工程专业 2 班学号:31X6

姓名:X 协作者:________ 教师评定:

实验题目___实验一进程调度

一、实验目的

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

二、实验原理

设计一个有N个进程并发的进程调度程序。要求采用最高级优先数优先算法。

每个进程有一个进程控制块PCB表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。进程的优先数以及需要的运行时间可以事先人为地指定。进程的到达时间为进程输入的时间。进程的运行时间以及时间片为单位进行计算。

每个进程的状态可以是未准备N(no ready)、就绪W(wait)、运行R(run)、完成F(finish)四种状态之一。

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

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

重复以上过程,知道所有进程完成为止。

三、实验方法、步骤、方案

1、动态优先数时间片轮转法:采用时间片轮转法和动态优先数算法的混合思想:一开始给予任务赋予优先数,如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤销该进程,如果运行一个时间片后进程的已占用CPU时间还未到达所需要的运行时间,也就是进程还需要继续运行,此时,应将进程的优先数减1(即满足动态优先数),然后比较队列的优先数,并把该任务插入比该任务现在的优先数还大的进程的最前面。然后继续进行下一个时间片,直到所有进程完成为止。

2、开放式多级反馈队列调度算法:采用多级反馈队列调度算法。其基本思想是:当一个新进程进入内在后,首先将它放入第一个队列的末尾,按FCFS原则排队等待高度。当轮到该进程执行时,如能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚为完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS原则等待调度执行,以此类推。开放式实现:允许完成一个时间片后插入进程,对该进程的插入方式是:插入第一队队列的末端。

四、重要函数、数据结构说明

动态优先数时间片轮转法:

struct pcb{//进程控制块

char name[10];//进程名

char state;//进程状态

int super;//优先数

int ntime;//需要运行时间

int rtime;//已占用CPU时间

int pieces;//时间片

struct pcb* link;

}

sort()//对进程进行优先级排列函数

{

PCB *first,*second;

int insert=0;

if((ready==NULL)||((p->super)>(ready->super))){

p->link=ready;

ready=p;

}//优先数最大进入队列头

else{

first=ready;

second=first->link;

while(second!=NULL){

if((p->super)>(second->super))//插入进程优先数大于当前进程优先数

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

p->link=second;

first->link=p;

second=NULL;

insert=1;

}

else{//否则进入对尾

first=first->link;

second=second->link;

}

}

if(insert==0){//不插入则继续

first->link=p;

}

}

7

running()//建立进程就绪函数

{

if(p->pieces==1){

p->rtime+=3;//时间片运行

}

else{

(p->rtime)++;

}

if(p->rtime==p->ntime||p->rtime>p->ntime){

destroy();

}

else{

(p->super)--;

p->state='W';

sort();

}

}

开放式多级反馈队列调度算法:

typedef struct pcb{//进程控制块

char name[10];//进程名

char state;//进程状态

int queue;//进程所在队列

int ntime;//需要运行时间

int rtime;//已占用CPU时间

int qtime;//进程在当前队列可运行的时间块

struct pcb* link;

}

findpos()//找到队列函数

{

PCB *ps=pfend;

if(!ps||!ps->link||(ps->link->queue-ps->queue)>1){

pinsert=ps;

}

else{

while(ps->link&&ps->link->queue!=(pfend->queue+2)){ ps=ps->link;

}

pinsert=ps;

}

}

insert()插入函数

{

if(!ready){

8

ready=p;

pfend=p;

pinsert=p;

}

else if(ready->queue==1){

p->link=pfend->link;

pfend->link=p;

pfend=p;

findpos();

}

else{

p->link=ready;

ready=p;

findpos();

}

}

sort()//插入队列过程函数

{

if(!ready->link||ready->queuelink->queue){

return;

}

p=ready->link;

ready->link=pinsert->link;

pinsert->link=ready;

pinsert=ready;

ready=p;

if(ready&&ready->queue==pinsert->queue){

findpos();

}

}

五、实验效果

动态优先数时间片轮转法:

输入:

9

10

第一个时间片:

第二个时间片:

第三个时间片:

第八个时间片:

11

开放式多级反馈队列调度算法:

输入:

第一个时间片:

第三个时间片:

12

插入进程third :

第六个时间片:

第十个时间片:

六、失败案例

一、优先数溢出:

出现原因:needtime>优先数,而动态优先数规则是逐步-1.

参考解决方案:添加个判断语句规定优先数最少为0,即当所有进程优先数为0该算法转变为FCFS 算法。

二、老进程饿死:

出现原因:即在开放性的条件下出现不停插入新进程,导致永远无法执行老进程。

解决方案:1)添加一个强制执行机构,给予他一个值t,用户可以自行输入t的大小,当队列的进程大于t时,则插入下一个队列里。2)引用HRN高响应比算法。

13

14

计算机学院网络工程专业 2 班学号:X 姓名:X 协作者:________ 教师评定:

实验题目___实验二作业调度

一、实验目的

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

二、实验原理

模拟批处理多道操作系统的作业调度

(1)、编写并调试一个作业调度模拟程序。

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

(3)、在批处理系统中,要假定系统中具有各种资源及数量、调度作业时必须考虑到每个作业的资源要求,所需要的资源是否得到满足。

作业调度程序负责从输入井选择若干个作业进入主存,为他们分配必要的资源,当他们能够被进程调度选中时,就可占用处理器运行。作业调度选择一个作业的必要条件是系统中现有的尚未分配的资源可满足该作业的资源要求。但有时系统中现有的尚未分配的资源既可满足某个作业的要求也可满足其他一些作业的要求,那么,作业调度必须按一定的算法在这些作业中做出选择。当作业正常运行完毕或发生错误非正常终止时,作业进入完成状态,此时,系统将收回该作业所占用的全部资源,并清除有关的JCB。

并输出显示作业运行情况及作业输出结果。

(4)、每个作业由一个作业控制块JCB表示,JCB可以包含如下信息:作业名、提交时间、所需的运行时间、所需的资源、作业状态、链指针等等。作业的状态可以是等待W(Wait)、运行R(Run)和完成F(Finish)三种状态之一。每个作业的最初状态总是等待W。

(5)、对每种调度算法都要求打印每个作业开始运行时刻、完成时刻,并比较各种算法的优缺点。

三、实验方法、步骤、方案

编写并调度一个多道程序系统的作业调度模拟程序。

作业调度算法:采用基于先来先服务(FCFS)的调度算法或短作业优先(SJF)调度算法。可参考课本中的方法自行设计。

对于多道程序系统,要假设系统中具有的各种资源及数量、调度作业时必须考虑到每个作业的资源要求。

要求打印每选择一个作业后的作业表变化情况以及作业被选中执行的次序。

[提示]:

假定某系统可供用户使用的主存空间共100KB,并有5台磁带机。由于本实验是模拟作业调度,假定程序已经把一批作业的信息存放在输入井,并为他们建立如下的作业表:

用户名作业名状态到达时间运行时间资源要求

主存磁带机

A JOBA 后备9:00 0.25小时20K 2

B JOBB 后备9:20 0.3小时60K 1

C JOBC 后备9:30 0.15小时45K 3

D JOBD 后备9:35 0.2小时10K 2

E JOBE 后备9:45 0.1小时25K 3

其中状态分三种:

后备状态——作业已在输入井,但尚未被选中执行;

执行状态——作业被选中,正在执行;

完成状态——作业执行结束。

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

作业优先被挑选,当系统中现有的尚未分配的资源不能满足先进入输入井的作业

时,那么顺序挑选后面的作业。

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

短且资源要求能满足的作业先进入主存执行。

3)当作业执行结束进入完成状态时,做好释放资源等善后工作。

4)本实验主要模拟作业调度,所对处理器调度,作业控制过程简化。用输入随机数模

拟处理器调度,用输入“用户名,作业名”模拟一个作业已经执行结束。

5)为作业分配资源可用修改资源分配表来代替。

四、重要函数、数据结构说明

先来先服务(FCFS):

typedef struct JCB{//作业控制块

char uname[10];//用户名

char jname[10];//作业名

char state;//作业状态

int atime;//到达时间)

int rtime;//运行时间

RESOURCE resource;//资源量

struct JCB *link;

}JCB;

sendsource()//送入内存(运行)

{

JCB *p;

p=pjcb->link;

while(p){

if(p->state=='W'&&source.memory-p->resource.memory>=0&&source.tape-p->resource.tape>=0 ){

p->state='R';

source.memory-=p->resource.memory;

source.tape-=p->resource.tape;

printf("Now,the %s %s is into the RAM\n",p->uname,p->jname);

}

15

p=p->link;

}

}

running()

{

if(check()){

printf("All assignments were done\n");

getchar();

exit(0);

}

JCB *p=pjcb->link;

int time;

while(p){

time=nowtime-(p->atime);

if(p->state=='R'&&time>=p->rtime){

p->state='F';

source.memory+=p->resource.memory;

source.tape+=p->resource.tape;

printf("\nThe %s %s was done\n",p->uname,p->jname);

break;

}

p=p->link;

}

p=pjcb->link;

while(p){

if(nowtime==p->atime&&p->state=='N'){

p->state='W';

printf("\nNow,the %s %s assignment was arrived\n",p->uname,p->jname);

}

p=p->link;

}

sendsource();

disp();

}

短作业优先(SJF):

typedef struct JCB{//作业控制块

char uname[10];//用户名

char jname[10];//作业名

char state;//作业状态

int atime;//到达时间)

int rtime;//运行时间

16

RESOURCE resource;//资源量

struct JCB *link;

int stime;

}JCB;

JCB *pjcb;

sendsource()//排队函数

{

JCB *p;

p=pjcb->link;

int min=99;

while(p){//做一个min运算求出最短运行时间

if(p->state=='W'){

min=min<(p->rtime)?min:(p->rtime);

}

p=p->link;

}

p=pjcb->link;

while(p){

if(p->state=='W'&&p->rtime<=min&&source.memory-p->resource.memory>=0&&source.tape-p ->resource.tape>=0){

p->stime=nowtime;

p->state='R';

source.memory-=p->resource.memory;

source.tape-=p->resource.tape;

printf("Now,the %s %s is into the RAM\n",p->uname,p->jname);

}

p=p->link;

}

p=pjcb->link;

while(p){

if(p->state=='W'&&source.memory-p->resource.memory>=0&&source.tape-p->resource.tape>=0 ){

p->stime=nowtime;

p->state='R';

source.memory-=p->resource.memory;

source.tape-=p->resource.tape;

printf("Now,the %s %s is into the RAM\n",p->uname,p->jname);

}

p=p->link;

}

}

17

高响应比优先算法(HRN):

struct jcb //作业控制块

{

char name[10]; //作业名

int reachtime; //作业到达时间

int starttime; //作业开始时间

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

float super; //作业的响应比

int finishtime; //作业完成时间

int cycletime; //作业周转时间

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

char state; //作业状态

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

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

typedef struct jcb JCB;

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

{

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

{

ready=p->next;

p->next=NULL;

}

else

{

q=ready;

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

q->next=p->next;

}

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

p->state='R';

p->finishtime=p->starttime+p->needtime;

p->cycletime=(int)(p->finishtime-p->reachtime);

p->cltime=(int)(p->cycletime/p->needtime);

T1+=p->cycletime;

T2+=p->cltime;

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

times+=p->needtime;

p->state='F';

printf("\n\n%s was finished!\n",p->name);

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

getch();

}

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

18

19

{

JCB *padv; padv=ready;

do{ if(padv->state=='W'&&(padv->reachtime)<=times) { padv->super=(float)(times-padv->reachtime+padv->needtime)/padv->needtime;

}

padv=padv->next; }while(padv!=NULL); }

五、实验效果

先来先服务(FCFS ):

时间片Nowtime=0时,运行A (先来先服务原则)。

时间片Nowtime=35时,C 被阻塞(内存不足),先运行D 。

20

短作业优先(SJF):

时间片Nowtime=0时,运行A(只有A到达)。

时间片Nowtime=30时。

21

高响应比算法(HRN ):

输入相应的作业名字,及其需要的时间。默认有4个作业。

第一个任务进入CPU 运行:

根据HRN计算运行程序:

六、失败案例

一、running()函数算法问题:

显然,ftime=nowtime-p->rtime是错误的,因为:若出现W,W(即排队现象)那么后者他的ftime明显不是nowtime-p->rtime,因为他等待了若干时间,于是使用lftime(last finish time)这个全局int变量由上一个指针来定制他的内涵:即当成功调用上一次running函数里的finish块(即把'W'变成'F'的if语句块)的时候,记录此时的nowtime,并且得到更加准确的公式:ftime=nowtime-lftime.这样就避免了W,W现象而影响队列的不正确'F'时间。

running() 即问题1还有后续问题:若出现R,R情况(即多重运行),那么明显的,这个lftime又会被打乱:即后者的R会受到影响,导致‘F'时间变化。所以在此在PCB结构体中加入了stime(start time)此时:当nowtime-p->stime>=p->rtime,即是完成态。

二、sendsource()函数算法问题:

短作业优先算法核心语句:min=min<(p->rtime)?min:(p->rtime); 而后续使用while与if 来确定某一处于'W'的任务是否满足:1、min==p->rtime 2、内存够用3、磁盘够用。于是出现很明显的弊端,即是问题2 中的后者情况:A->C->B,在此我选择了使用额外一个循环,此循环判断条件抛弃了1、,只有2、3、属于牵强做法。

22

计算机学院网络工程专业 2 班学号:X

姓名:X 协作者:________ 教师评定:

实验题目___实验三、储存管理空间的分配与回收模拟

一、实验目的

1、通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解。熟悉虚存管理的各种液面淘汰算法。

2、通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解。

3、熟悉主存的分配与回收。理解在不同的储存管理方式下,如何实现主存空间的分配与回收。掌握动态分区分配方式中的数据结构和分配算法及动态分区储存管理方式及其实现过程。

二、实验原理

设计一个请求页式存储管理方案。并编写模拟程序实现之。产生一个需要访问的指令地址流。它是一系列需要访问的指令的地址。为不失一般性,你可以适当地(用人工指定地方法或用随机数产生器)生成这个序列,似的50%的指令时顺序执行的。25%的指令均匀地散布在前地址部分,25%的地址是均匀地散布在后面地址部分。

具体的做法可以是:

产生一个需要访问的指令地址流;指令合适的页面尺寸(例如以1K或2K为1页);指定内存页表的最大长度,并对页表进行初始化;每访问一个地址时,首先要计算该地址所在的页的页号,然后查页表,判断该页是否打印页表情况;如果该页不足主存且页表已满,则按FIFO页面淘汰算法淘汰一页后调入所需的页,打印页表情况;逐个地址访问,知道所有地址访问完毕。

主存的分配和回收的实现是与主存储器的管理方式有关的,所谓分配,就是解决多道作业或多道进程如何共享主存空间的问题。所谓回收,就是当作业运行完成时将作业或进程所占的主存空间归还给系统。

实验要求使用可变分区储存管理方式,分区分配中所用的数据结构采用空闲分区表和控线分区链来进行,分区分配中所用的算法采用首次适应算法、最佳适应算法两种算法来实现主存的分配与回收。同时,要求设计一个试用友好的用户界面,并显示分配与回收的过程。

三、实验方法、步骤、方案

1、设计一个可变式分区分配的存储管理方案。并模拟实现分区的分配和回收过程。

对分区的管理法可以是下面三种算法之一:

首次适应算法

最佳适应算法

2、编写并调试一个段页式存储管理的地址转换的模拟程序。首先设计好段表、页表,然后给出若干个有一定代表性的地址,通过查找段表页表后得到转换的地址。要求打印转换前的地址,相应的段表,页表条款及转换后的地址,以便检查。

[示例]:存储管理算法的流程图如下:

23

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

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

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

实验一数据库及基本表的建立 一、实验目的 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,并保存结果

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

学院: 专业: 学号: 姓名: 装 订 线 广东工业大学考试试卷 ( 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文件系统中,文件的路径名和磁盘索引结点之间是一一对应的。( )

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

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

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

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

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)

广工2012操作系统复习

简答题 1.请画出进程的三种基本状态及其状态转换图。 2.简述死锁的四个必要条件。 A互斥条件。B请求和保持条件。C不剥夺条件。D环路等待条件。 3.防止死锁有哪些策略? A掘弃“请求和保持”条件。B掘弃“不剥夺”条件。C掘弃“环路等待”条件。 4.简述动态重定位。 在动态运行时装入的方式中,作业装入内存后的所有地址都仍然是相对地址,将相对地址转换为物理地址的工作,被推迟到程序指令要真正执行时执行。 5.简述Spooling操作。 为了缓和CPU的高速性与I/O设备低速性间的矛盾而引入了脱机输入、脱机输出技术。该技术是利用专门的外围控制机,将低速I/O设备上的数据传送到告诉磁盘上;或者相反。这样,便可在主机的直接控制下,实现脱机输入、输出功能。此时的外围操作与CPU对数据的处理同时进行,我们把这种联机情况下实现的同时外围操作称为SPOOLing(Simultaneous Peripheral Operation On-Line),或称为假脱机操作。 6.请解释设备独立性原则。 应用程序独立于具有使用的物理设备。未了实现设备独立性而引入了逻辑设备和物理设备这两个概念。在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,还必须使用物理设备名称。 7.请回答文件的物理结构有哪几种类型。 A连续结构。B链接结构。C索引结构

综合应用题 1.考虑一个有760个字节程序的如下存储器引用: 12,90,351,190,180,475,30,550,635,650,227,430,640,710,745,10,15,650,740,249。 假定主存中每块为100个字节,有三块供该程序使用,采用页式虚拟存储管理方式,程序开始执行时已将程序的前3页依次装入主存,对于以上的存储器引用序列,给出其页面走向,并分别使用FIFO算法和LRU算法计算缺页中断次数。 因为主存中每块可以存放100个字节,因此逻辑上每页也为100字节,对于给定的存储器引用地址除以100后取整,即是该地址所在的页面号因此页面走向为:0,0,3,1,1,4,0,5,6,6,2,4,6,7,7,0,0,6,7,2 2.假定在某移动臂磁盘上,刚刚处理了访问75号磁道的请求,目前正在80号磁道上读信息,并有下列请求序列等待访问磁盘: 请求序列 1 2 3 4 5 6 7 8 欲访问磁道160 40 190 188 90 58 32 102 请用SCAN算法(电梯调度算法)列出实际处理上述请求的次序。 FCFS:160.,40,190,188,90,58,32,102 电梯调度算法:90,102,160,188,190,58,40,32 循环扫描算法:90,102,160,188,190,32,40,58 最短寻找时间优先算法:90,102,58,40,32,160,188,190 3.三个进程R,M,P共享两个缓冲器B1和B2,B1和B2都只可存放一个记录。进程R每次把读入的一个记录存入B1;进程M把B1中的记录取出并加工,然后把加工好的记录存入B2;进程P把存放在B2中的加工过的记录取出并打印。请用PV操作描述并解决该问题。 S1:=1 S2:=0 S3:=1 S4:=0 4.为了实现文件的共享,办法之一是把文件目录分成用户文件目录和索引结点。现设目录文件存放在磁盘上,盘 块长度为1024 字节,每个文件说明占48 个字节,其中,文件名占 6 字节,指向相应索引结点的指针占 2 字节。设一个目录文件原来共有256 个目录表目,请求出未分解和分解后的找到一个文件所需平均访盘次数? (1)未分解:(48*256)/1024=12(盘块) (1+2+3+...+12)/12=(1+12)/2=6.5(次) (2)分解后:(8*256)/1024=2(盘块) (1+2)/2 + 1 =2.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

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

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

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

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

一、填空(每题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 广东工业大学试卷用纸,共页,第页

广东工业大学 数据库 真题 附答案 (1)

广东工业大学试卷用纸,共 页,第 页 学 院 : 专 业: 学 号: 姓 名 : 装 订 线 广东工业大学考试试卷 ( ) 课程名称: 考试时间: 年 月 日 (第 周 星期 ) 题 号 一 二 三 四 五 六 七 八 九 十 总分 评卷得分 评卷签名 复核得分 复核签名 一、填空题(每题1分,共10分) 1、数据库领域中最常用的数据模型有 层次模型 、 网状模型 、 关系模型 和面向对象模型。 2、数据库设计包括需求分析、概念结构设计、 逻辑结构设计 、 物理结构设计 数据库实施、数据库运行和维护六个阶段。 3、事务的特性包括 原子性 、 持续性 、隔离性和一致性。 4、 并发调度的可串行性 是并发事务正确性的准则。 5、F 逻辑蕴涵的全体函数依赖构成的函数依赖的集合,称为F 的 闭包 。 6、数据是 描述事物的符号记录 。 二、选择题(每题2分,共20分) 1、 在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特性的是_____。 A 、外模式 B 、内模式 C 、存储模式 D 、模式 2、 实体完整性是指关系中 ____。 A 、元组值不允许为空 B 、属性值不允许空 C 、主属性值不允许为空 D 、主码值不允许为空 3、数据库系统的逻辑独立性是指____。 A 、不会因为数据的变化而影响应用程序 B 、不会因为系统数据存储结构预数据逻辑结构的变化而影响应用程序 C 、不会因为存取策略的变化而影响存储结构 D 、不会因为某些存储结构的变化而影响其他的存储结构。 4、候选关键字中属性称为 。 A.非主属性 B.主属性 C.复合属性 D.关键属性

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

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

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

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 {

2015广工操作系统课程设计报告(文档最后含源码下载地址)剖析

学生学院____ 计算机学院______ 专业班级 13级计科9 学号 学生姓名 指导教师李敏 2015 年12 月29 日

一、课程设计介绍 设计模拟一个实现多道批处理系统的两级调度。通过具体的作业调度、进程调度、内存分配等功能的实现,加深对多道批处理系统的两级调度模型和实现过程的理解。 作业从进入系统到最后完成,要经历两级调度:作业调度和进程调度。作业调度是高级调度,它的主要功能是根据一定的算法,从输入井中选中若干个作业,分配必要的资源,如主存、外设等,为它们建立初始状态为就绪的作业进程。进程调度是低级调度,它的主要功能是根据一定的算法将CPU分派给就绪队列中的一个进程。 在本次课程设计中假定系统可供用户使用的主存空间共100KB,并有4台磁带机。主存分配采用可变分区分配方式且主存中信息不允许移动,对磁带机采用静态分配策略,作业调度分别采用先来先服务算法和最小作业优先算法,进程调度则采用先来先服务和最短进程优先算法。 二、课程设计环境 1.计算机及操作系统:PC机,WindowsXP系统 2.程序设计使用工具:Microsoft VisualC++ 6.0 3.程序设计语言:C语言 三、课程设计思想 假定“预输入”程序已经把一批作业的信息存放在输入井了,并为它们建立了相应作业表。 测试数据如下: 作业到达时间估计运行时间内存需要磁带机需要 JOB1 10:00 25分钟15K 2台 JOB2 10:20 30分钟60K 1台 JOB3 10:30 10分钟50K 3台 JOB4 10:35 20分钟10K 2台 JOB5 10:40 15分钟30K 2台 本次课程设计采用的是两个作业调度算法:先来先服务算法和短作业优先算法,两个进程调度算法:先来先服务算法,短进程优先算法。系统根据所选算法组合对输入系统的作业进行两级调度(作业调度,进程调度)。分别在不同算法控制下运行设计的程序,依次显示被选中作业、内存空闲区和磁带机的情况,输出不同算法作业的选中次序及作业平均周转时间。作业的数据初始化输入通过读取文件这种方式进行导入。系统运行是通过设置指针来循环运作。

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

实验报告 课程名称____ 编译原理__________ 题目名称_ 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)各功能模块描述

实验四 小型数据库规划设计

实验四小型数据库规划设计 一、实验目的 熟悉数据库的设计的基本方法和步骤,明白数据库设计各阶段的任务,加深对数据 库系统概念和特点的理解。 二、实验内容和要求 根据你熟悉的实际情况,选一个小型的数据库应用项目,进行系统分析和数据库设计。 三、实验主要仪器设备和材料 1.计算机及操作系统:PC机,Windows 2000/xp; 2.数据库管理系统:SQL server 2000/2005; 四、实验方法、步骤及结构测试 1、写出简要的需求分析报告; 本系统是针对高等院校的学生学籍管理,因此学籍管理系统的用户包括系统管理员、教师和学生。主要涉及系部信息、班级信息、任课教师信息、学生信息、课程信息以及选课记录和成绩等多种数据信息。实现的具体功能如下: 基本信息管理——系统管理员负责对各种基本信息的录入、修改、删除等操作。 学生成绩管理——系统管理员负责对学生成绩的录入、修改、删除等操作,学生 可以查询各科成绩。 信息查询统计——学生可以查询基本信息和各科的考试成绩,老师可以查询基本 信息和授课信息,系统管理员负责把老师提交的学生成绩进行管理,计算总成绩和平均成绩,统计不及格学生信息和获得奖学金学生的信息,最后再输出所有的信息。 系统用户管理——系统管理员负责用不同的权限来限制不同用户对系统的使用。 以上是用户对系统的基本的功能要求,此外用户还要求系统的效率要高,查询速度要快,比较小的冗余,易维护,具有较高的数据安全性。 2、进行简要的系统功能设计; .1 系信息管理。院系信息管理包括院系信息数据的录入、修改与删 除等功能。 .2 级信息管理。班级信息管理包括班级信息的录入、修改与删除等 功能。 .3 师信息管理。教师信息管理包括任课教师信息的录入、修改与删 除等功能。 .4 生信息管理。学生信息管理包括学生信息的录入、修改与删除等 功能。 5 程信息管理。课程信息管理包括课程信息的录入、修改与删除等 功能。 .6 籍变更信息管理。学籍变更信息管理包括学籍变更信息的录入、修改与删除 等功能。 .7 生奖惩信息管理。学生奖惩信息管理包括学生奖惩信息的录入、修改与删除 等功能。

广工哲学原理课后答案

2012 操作系统复习提纲 本来想搞好在共享的!没时间了!大家凑合着用吧! 立业 教材名称:《操作系统之哲学原理》 Please remember the title of the book during your preparation for the exam. 核心考点: 1.微内核操作系统 2.进程管理 3.线程模型,两种线程模型,与线程管理模型实现相关的各种概念 4.多道编程的好处,程序道数和吞吐量的关系,响应时间计算(不同的调度策略) 5.信号量、管程的非编程题 6.页式管理 7.同步/互斥喂金鱼问题 8.死锁算法,银行家算法,哲学家就餐问题 9.锁的实现 10.页面替换算法 11.段页式管理 12.磁盘参数计算 13.FAT文件系统 14.索引文件系统

15.文件系统相关的概念:文件夹、内存映射文件、访问效率、保证文件系统一致性的手段 Chapter 1:练习2,7 -2问题:你对操作系统和用户程序之间有什么看法?诠释你的想法。 答:在操作系统的上面是虚拟界面,其下面是物理机器。而物理机器下面是硬件,虚拟界面上面就是用户程序。显然,操作系统为用户程序提供了很好的虚拟界面,而应用程序很好滴在正界面上运行。1)本质上而言,OS也是个程序,用户程序也是个程序,两者扮演者调用与被调用的关系。这样理解,操作系统通过虚拟界面为用户程序提供各种服务,用户程序在运行过程中不断地使用OS提供个各种服务来完成自己的任务。这样而言,是用户程序调用OS提供的各种服务。 2)而另一种角度看,OS是主程序,用户程序是子程序。启动OS后,OS将控制交给了用户程序,用户程序执行完后将控制交回给OS,这样而言,是操作系统调用主程序用户程序执行完后在返回操作系统。 3)对于两种截然相反的观点,没有对错,只有好坏,这也是人造科学的主要特点。对次,我认为,OS和用户程序的关系不单是一种简单的调用与被调用的关系,还是一种相互协调的调用。形成一种非常复杂的动态关系。 -2问题:有人认为设备管理(设备驱动程序)应该由第三方提供,而不是OS的一部分。对此,你有什么看法?如何判断一个软件是不是属于操作系统? 答:1)一般操作系统只是为I/O管理提供接,那样子可以实现其屏蔽设备差异性和提供并发访问。本质上,设备驱动程序是常驻内存低级硬件程序共享库。从理论上讲,所有的硬件设备都需要安装相应的驱动程序才能正常工作。但像CPU、内存、主板、软驱、键盘、显示器等设备却并不需要安装驱动程序也可以正常工作,而显卡、声卡、网卡等却一定要安装驱动程序,否则便无法正常工作。这是为什么呢?这主要是由于这些硬件对于一台个人电脑来说是必需的,所以早期的设计人员将这些硬件列为BIOS能直接支持的硬件。换句话说,上述硬件安装后就可以被BIOS和操作系统直接支持,不再需要安装驱动程序。从这个角度来说,BIOS也是一种驱动程序。所以设备驱动有多种,如官方版、第三方版、微软认证版、发烧友修改版等 2)要界定一个软件是不是操作系统的那得先清楚OS是什么。OS扮演的是一个管理者和魔术师的角色,所以他能够全局地掌握计算机局势,管理计算机的资源,为用户程序提供服务,并且将复杂的事情简单化。对此,OS 大概划分了几大领域:CPU管理、内存管理、外存管理、I/O管理。但是不是说每一个都是很清晰地划定界限的。

相关文档
最新文档