操作系统实验 设备管理汇总

操作系统实验 设备管理汇总
操作系统实验 设备管理汇总

操作系统实验

名称实验六设备管理

姓名

专业

学号

日期 2015年12月01日指导老师

一、实验目的

1.理解设备管理的概念和任务。

2.掌握独占设备的分配、回收等主要算法的原理并编程实现。

二、实验内容与要求

1.在Windows系统中,编写程序实现对独占设备的分配和回收的模拟,该程序中包括:建立设备类表和设备表、分配设备和回收设备的函数。

三、实验原理

1.独占设备的分配、回收等主要算法的原理。

为了提高操作系统的可适应性和可扩展性,现代操作系统中都毫无例外地实现了设备独立性,又叫做设备无关性。设备独立性的含义是:应用程序独立于具体使用的物理设备。

为了实现独占设备的分配,系统设置数据表格的方式也不相同,在实验中只要设计合理即可。这里仅仅是一种方案,采用设备类表和设备表。

(1)数据结构

操作系统设置“设备分配表”,用来记录计算机系统所配置的独占设备类型、台数以及分配情况。设备分配表可由“设备类表”和“设备表”两部分组成,如下

设备类表设备表

控制器表通道表

设备队列队首指针。凡因请求本设备而未得到满足的进程,其PCB都应按照一定的策略排成一个队列,称该队列为设备请求队列或简称设备队列。其队首指针指向队首PCB。在有的系统中还设置了队尾指针。

设备状态。当设备自身正处于使用状态时,应将设备的忙/闲标志置“1”。若与该设备相连接的控制器或通道正忙,也不能启动该设备,此时则应将设备的等待标志置“1”。

与设备连接的控制器表指针。该指针指向该设备所连接的控制器的控制表。在设备到主机之间具有多条通路的情况下,一个设备将与多个控制器相连接。此时,在DCT中还应设置多个控制器表指针。

(2)设备分配

1)当进程申请某类设备时,系统先查“设备类表”。

2)如果该类设备的现存台数可以满足申请要求,则从该类设备的“设备表”始址开始依次查该类设备在设备表中的登记项,找出“未分配”的设备分配给进程。

3)分配后要修改设备类表中的现存台数,把分配给进程的设备标志改为“已分配”且填上占用设备的进程名。

4)然后,把设备的绝对号与相对号的对应关系通知用户,以便用户在分配到的设备上装上存储介质。

(3)设备回收

当进程执行结束撤离时应归还所占设备,系统根据进程名查设备表,找出进程占用设备的登记栏,把标志修改为“未分配”,清除进程名。同时把回收的设备台数加到设备类表中的现存台数中。

设备分配程序的改进

增加设备的独立性:为了获得设备的独立性,进程应使用逻辑设备名I/O。这样,系统首先从SDT中找出第一个该类设备的DCT。若该设备忙,又查找第二个该类设备的DCT,仅当所有该类设备都忙时,才把进程挂在该类设备的等待队列上,而只要有一个该类设备可用,系统便进一歩计算分配该设备的安全性。

四、程序流程图

设备独立性

五、实验程序

#include

using namespace std;

//数据结构

typedef struct node

{

char name[10];

char devname[10];

struct node *next;

}PCB;//进程

PCB * run;//执行队列

//

typedef struct Node

{

char identify[10];//标识

int state;//设备状态

PCB *blocking;//阻塞队列指针}CHCT;//通道控制表

CHCT * CH1, * CH2;//设置两个通道为ch1,ch2

//

typedef struct NOde

{

char identify[10];//标识

int state;//设备状态

CHCT * chct;//CHCT

PCB *blocking;//阻塞队列指针

struct NOde *next;

}COCT;//控制器控制表

COCT * cohead;

typedef struct NODe

{

char identify[10];//标识

char type;//设备类型

int state;//设备状态

int times;//重复执行次数

PCB *blocking;//阻塞队列指针

COCT * coct;//COCT

}DCT;//设备控制表

typedef struct NODE

{

char type;//类别

char identify[10];//标识

DCT * dct;//DCT设备控制表

//驱动入口地址

struct NODE *next;

}SDT;

//系统设备表

SDT * head;

SDT * checkdel;

void Init()

{

PCB * ch1block,* ch2block,* co1block,* co2block,* co3block,* d1block,* d2block,* d3block,* d4block;//进程控制块

COCT * CO1,* CO2,* CO3;

DCT *d1,*d2,*d3,*d4;

SDT *s1,*s2,*s3,*s4;

//=================================================

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

run->next=NULL;

CH1=(CHCT *)malloc(sizeof(CHCT));

CH2=(CHCT *)malloc(sizeof(CHCT));

strcpy(CH1->identify,"ch1");

strcpy(CH2->identify,"ch2");

CH1->state=0;

CH2->state=0;

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

ch1block->next=NULL;

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

ch2block->next=NULL;

CH1->blocking=ch1block;

CH2->blocking=ch2block;

cohead=(COCT *)malloc(sizeof(COCT));

cohead->next=NULL;

CO1=(COCT *)malloc(sizeof(COCT));

cohead->next=CO1;

CO1->next=NULL;

CO2=(COCT *)malloc(sizeof(COCT));

CO1->next=CO2;

CO2->next=NULL;

CO3=(COCT *)malloc(sizeof(COCT));

CO2->next=CO3;

CO3->next=NULL;

CO1->state=0;

CO2->state=0;

CO3->state=0;

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

co1block->next=NULL;

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

co2block->next=NULL;

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

co3block->next=NULL;

strcpy(CO1->identify,"co1");

strcpy(CO2->identify,"co2");

strcpy(CO3->identify,"co3");

CO1->chct=CH1;

CO2->chct=CH1;

CO3->chct=CH2;

CO1->blocking=co1block;

CO2->blocking=co2block;

CO3->blocking=co3block;

//===================================================== d1block=(PCB *)malloc(sizeof(PCB));

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

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

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

d1block->next=NULL;

d2block->next=NULL;

d3block->next=NULL;

d4block->next=NULL;

d1=(DCT *)malloc(sizeof(DCT));

strcpy(d1->identify,"P");//p表示打印机设备d2=(DCT *)malloc(sizeof(DCT));

strcpy(d2->identify,"T");//t表示显示器设备d3=(DCT *)malloc(sizeof(DCT));

strcpy(d3->identify,"K");//k表示键盘设备d4=(DCT *)malloc(sizeof(DCT));

strcpy(d4->identify,"M");//m表示鼠标设备d1->coct=CO1; //控制器

d2->coct=CO2;

d3->coct=CO3;

d4->coct=CO3;

d1->state=0;//状态

d2->state=0;

d3->state=0;

d4->state=0;

d1->type='o';//o表示输出设备output

d2->type='o';

d3->type='i';//i表示输入设备

d4->type='i';

d1->blocking=d1block;

d2->blocking=d2block;

d3->blocking=d3block;

d4->blocking=d4block;

//================================

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

head->next=NULL;

s1=(SDT *)malloc(sizeof(SDT));

s2=(SDT *)malloc(sizeof(SDT));

s3=(SDT *)malloc(sizeof(SDT));

s4=(SDT *)malloc(sizeof(SDT));

head->next=s1;

s1->next=s2;

s2->next=s3;

s3->next=s4;

s4->next=NULL;

s1->dct=d1;

s2->dct=d2;

s3->dct=d3;

s4->dct=d4;

strcpy(s1->identify,"P");

strcpy(s2->identify,"T");

strcpy(s3->identify,"K");

strcpy(s4->identify,"M");

s1->type='o';

s2->type='o';

s3->type='i';

s4->type='i';

//test

SDT *temp=head->next;

}

//============================================ //添加设备时候,添加新控制器,把控制器加到最后void Addcotrol (COCT *temp)//添加控制器函数{

COCT *cotemp=cohead;

while(cotemp->next!=NULL)

{

cotemp=cotemp->next;

}

cotemp->next=temp;

temp->next=NULL;

}

//查看所有控制器,选择所要连接的控制器

void Showallco()

{

COCT *temp=cohead->next;

while(temp!=NULL)

{

cout<identify<<" ";

temp=temp->next;

}

cout<

}

//查找要连接的控制器

COCT * Findco(char a[])

{

COCT * temp=cohead->next;

while(temp!=NULL)

{

if(!strcmp(temp->identify,a))

{

return temp;

}

temp=temp->next;

}

return temp;

}

//删除设备时候,判断是不是同时删除控制器,等于1删,0不删

int sf_deleteco(char a[],char b[])

{

SDT *temp;

temp=head->next;

while(temp!=NULL)

{

if((strcmp(temp->identify,a))&&((!strcmp(temp->dct->coct->identify,b)))) {

return 0;

}

temp=temp->next;

}

return 1;

}

//删除设备的时候同时删除控制器

void Deletecotrol(COCT *te)

{

COCT * temp=cohead;

while(temp->next!=te)

{

temp=temp->next;

}

temp->next=te->next;

delete(te);

}

//添加设备,查找设备是不是已经存在

int sf_exist(char a[])

{

SDT *temp;

if(head->next==NULL)

{

return 0;

}

else

{

temp=head->next;

while(temp!=NULL)

{

if(!strcmp(a,temp->identify))

{

checkdel=temp;

return 1;

}

temp=temp->next;

}

return 0;

}

}

//申请设备时候,如果忙,将设备挂到等待队列void Addwaitpcb(PCB * p1,PCB * p2)

{

PCB *temp=p1;

while(temp->next!=NULL)

{

temp=temp->next;

}

temp->next=p2;

p2->next=NULL;

}

//回收设备时候,对PCB的操作

void Deletepcb(char a[])

{

PCB * temp2=run->next,* temp=run;

while(temp2!=NULL)

{

if(!strcmp(temp2->devname,a))

{

temp->next=temp2->next;

delete(temp2);

break;

}

temp=temp2;

temp2=temp->next;

}

}

//判断等待队列是不是空

int sf_pcbnull(PCB *temp)

{

if(temp->next==NULL)

{

return 0;

}

else return 1;

}

//查看所有设备状态

void Showmenu()

{

PCB * ptemp=run->next;

SDT * temp=head->next;

DCT * dtemp;

COCT * cotemp;

CHCT * chtemp;

cout<<"SDT"<<" i/o"<<" COCT"<<" CHCT"<

while(temp!=NULL)

{

dtemp=temp->dct;

cotemp=dtemp->coct;

chtemp=cotemp->chct;

cout<identify<<"["<state<<"]"<<"\t"<type<<"\t"<identify<<"["<state<<"]"<<"

\t"<identify<<"["<state<<"]"<

temp=temp->next;

}

while(ptemp!=NULL)

{

cout<<"进程"<name<<"申请了设备"<devname<

ptemp=ptemp->next;

}

cout<

}

//设备独立性时候查找要查找的类型是不是存在

int sf_typeexist(char ch)

{

SDT *temp;

if(head->next==NULL)

{

return 0;

}

else

{

temp=head->next;

while(temp!=NULL)

{

if(temp->type==ch)

{

return 1;

}

else temp=temp->next;

}

}

return 0;

}

//增加设备

void Adddevice()

{

cout<<"增加设备"<

SDT * stemp,* s2temp;

COCT *cotemp;

DCT *temp;

char temptype;

PCB *tempblock,* cotempblock;

char choice;

char eqary[10],coary[10];

cin>>eqary;

//此处查找SDT,看是否所要添加的设备已经存在if(sf_exist(eqary)==1)

{//设备已经存在

cout<<"设备已存在"<

}

else

{//设备不存在

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

tempblock->next=NULL;

temp=(DCT *)malloc(sizeof(DCT));

strcpy(temp->identify,eqary);

temp->blocking=tempblock;

temp->state=0;

cout<<"输入设备类型"<

cin>>temptype;

temp->type=temptype;

stemp=(SDT *)malloc(sizeof(SDT));

stemp->next=NULL;

stemp->dct=temp;

stemp->type=temptype;

strcpy(stemp->identify,eqary);

s2temp=head;

while(s2temp->next!=NULL)

{

s2temp=s2temp->next;

}

s2temp->next=stemp;

stemp->next=NULL;

cout<<"是否添加控制器?(y/n)"<

cin>>choice;

if((choice=='y')||(choice=='Y'))

{ //添加新控制器

cout<<"输入控制器名称:"<

cin>>coary;

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

cotempblock->next=NULL;

cotemp=(COCT *)malloc(sizeof(COCT));

cotemp->next=NULL;

strcpy(cotemp->identify,coary);

cotemp->state=0;

cotemp->blocking=cotempblock;

Addcotrol(cotemp);

temp->coct=cotemp;

cout<<"请选择连接的通道:1/2"<

int i;

cin>>i;

if(i==1)

{

cotemp->chct=CH1;

}

else

{

cotemp->chct=CH2;

}

}

else

{//不添加控制器

Showallco();

cout<<"输入连接控制器的名称:"<

cin>>coary;

cotemp=Findco(coary);

temp->coct=cotemp;

}

cout<<"设备"<

}

}

//删除设备

void Deletedevice()

{//删除设备的时候同时删除pcb Deletepcb

cout<<"删除设备"<

COCT * temp;

SDT * stemp;

char chary[10];

char tempary[10];

cin>>chary;

if(sf_exist(chary)==0)

{

cout<<"删除设备不存在!"<

}

else if(checkdel->dct->state==1)

{

cout<<"设备正在使用无法删除"<

}

else

{//sf_deleteco();

Deletepcb(chary);

strcpy(tempary,checkdel->dct->coct->identify);

if(sf_deleteco(chary,tempary))

{//删除控制器

temp=checkdel->dct->coct;

Deletecotrol(temp);

}

stemp=head;

while(stemp->next!=checkdel)

{

stemp=stemp->next;

}

stemp->next=checkdel->next;

delete(checkdel);

cout<<"设备"<

}

}

//申请设备

void Applydevice()

{

cout<<"申请设备"<

PCB *ptemp;

DCT *dtemp;

COCT *cotemp;

CHCT *chtemp;

char pname[10],eqname[10];

cin>>pname>>eqname;

if(sf_exist(eqname)==0)

{

cout<<"设备不存在!"<

}

else

{//checkdel(对应要申请设备的指针)

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

strcpy(ptemp->name,pname);

ptemp->next=NULL;

dtemp=checkdel->dct;

//====================此处是否要考虑状态的改变========================

if(dtemp->state==1)

{//设备忙

Addwaitpcb(dtemp->blocking,ptemp);

cout<<"进程"<name<<"被挂在设备"<identify<<"的等待队列上!"<

}

else

{//设备不忙

cotemp=dtemp->coct;

if(cotemp->state==1)

{//控制器忙

Addwaitpcb(cotemp->blocking,ptemp);

cout<<"进程"<name<<"被挂在控制器"<identify<<"的等待队列上!"<

}

else

{//控制器不忙

chtemp=cotemp->chct;

if(chtemp->state==1)

{//通道忙

Addwaitpcb(chtemp->blocking,ptemp);

cout<<"进程"<name<<"被挂在通道

"<identify<<"的等待队列上!"<

}

else

{//通道不忙

Addwaitpcb(run,ptemp);

dtemp->state=1;

cotemp->state=1;

chtemp->state=1;

strcpy(ptemp->devname,eqname);

cout<<"进程"<

}

}

}

}

//回收设备

void Recycledevice()

{

cout<<"回收设备"<

// char ch;

char eqname[10];

DCT *dtemp;

COCT *cotemp;

CHCT *chtemp;

PCB *pctemp1,*pctemp2;

cin>>eqname;

if(sf_exist(eqname)==0)

{//设备不存在

cout<<"要回收的设备不存在!"<

}

else if(checkdel->dct->state==0)

{//设备存在,但是不需要回收

cout<<"设备处于闲状态,不需要回收!"<

}

else

{//需要回收

Deletepcb(eqname);//

dtemp=checkdel->dct;

cotemp=dtemp->coct;

chtemp=cotemp->chct;

dtemp->state=0;

cotemp->state=0;

chtemp->state=0;

if(sf_pcbnull(chtemp->blocking))

{//如果通道等待队列不空

pctemp1=chtemp->blocking;

pctemp2=pctemp1->next;

pctemp1->next=pctemp2->next;

pctemp2->next=NULL;

strcpy(pctemp2->devname,eqname);

Addwaitpcb(run,pctemp2);

dtemp->state=1;

cotemp->state=1;

chtemp->state=1;

}

else

if(sf_pcbnull(cotemp->blocking))

{//如果控制器的等待队列不空

pctemp1=cotemp->blocking;

pctemp2=pctemp1->next;

pctemp1->next=pctemp2->next;

pctemp2->next=NULL;

strcpy(pctemp2->devname,eqname);

Addwaitpcb(run,pctemp2);

dtemp->state=1;

cotemp->state=1;

chtemp->state=1;

}

else

{

if(sf_pcbnull(dtemp->blocking))

{//如果设备的等待队列不空

pctemp1=dtemp->blocking;

pctemp2=pctemp1->next;

pctemp1->next=pctemp2->next;

pctemp2->next=NULL;

strcpy(pctemp2->devname,eqname);

Addwaitpcb(run,pctemp2);

dtemp->state=1;

cotemp->state=1;

chtemp->state=1;

}

}

}

cout<<"设备"<

}

}

//设备独立性=======

void Independence()

{

cout<<"设备独立性--申请设备:"<

//cout<<"申请设备"<

char type;

char pname[10];

SDT * temp,* temp2;

PCB *ptemp;

DCT *dtemp;

COCT *cotemp;

CHCT *chtemp;

《实用操作系统》实验报告五linux设备管理

《实用操作系统》实验报告 实验报告: 5 实验项目名称:设备管理 班级:学号:姓名: 地点:时间:2013 年11 月13 日 一、实验内容 1、添加硬盘,创建二个主分区、一个扩展分区,二个逻辑分区 注意:ide、scsi 提示:分区、格式化、挂载(fdisk,mkfs,mount) 2、查看常见的设备文件有哪些?(ls /dev ) 常见的设备文件:/dev/hd* IDE接口的硬盘(IDE接口的设备) /dev/sd* SCSI/USB设备/dev/cua* 串口设备/dev/lp* 并口设备/dev/tty* 终端设备/dev/consol 控制台设备/dev/eth* 以太网设备/dev/cdrom IDE光驱/dev/fd* 软驱/dev/audio 音频设备/dev/scd SCSI的光驱/dev/ppp PPP设备/dev/isdn* ISDN设备 3、挂载光盘,查看光盘内容创建挂载点要求:以本人姓名缩写为目录mkdir / 目录/设备挂载mount 空格源设备空格挂载点 4、显示管理System-config-display 5、声卡管理System-config-soundcard 6、打印机管理System-config-printer 7、网卡管理System-config-network 二、实验步骤及结果 1.添加硬盘,创建分区; 在启动虚拟机前,在工具栏中点击“虚拟机”,找到“设置”选项,在左面的硬件中找到硬盘,进行硬盘设备添加,这里有IDE和SCSI两种硬盘类型可供选择添加。完成硬盘添加后即可启动虚拟机进入linux系统。在这我添加了容量相同的硬盘设备类型各一;

网络管理实验报告

实验1:W i n d o w2003S N M P服务配置 1.掌握简单网络管理协议的操作知识 (SNMP网络管理模型,抽象语法表示(ASN.1),管理信息结构(SMI),常用的管理信息(MIB)。SNMP协议数据格式与工作模式,网络管理系统) 2.收集在网络上实现SNMP所必需信息 (1)一个典型的网络管理系统包括四个要素:管理员、管理代理、管理信息数据库、代理服务设备。一般说来,前三个要素是必需的,第四个只是可选项。 (2)网络管理软件的重要功能之一,就是协助网络管理员完成管理整个网络的工作。网络管理软件要求管理代理定期收集重要的设备信息,收集到的信息将用于确定独立的网络设备、部分网络、或整个网络运行的状态是否正常。管理员应该定期查询管理代理收集到的有关主机运转状态、配置及性能等的信息。? 网络管理代理是驻留在网络设备中的软件模块,这里的设备可以是UNIX工作站、网络打印机,也可以是其它的网络设备。管理代理软件可以获得本地设备的运转状态、设备特性、系统配置等相关信息。管理代理软件就象是每个被管理设备的信息经纪人,它们完成网络管理员布置的采集信息的任务。管理代理软件所起的作用是,充当管理系统与管理代理软件驻留设备之间的中介,通过控制设备的管理信息数据库(MIB)中的信息来管理该设备。管理代理软件可以把网络管理员发出的命令按照标准的网络格式进行转化,收集所需的信息,之后返回正确的响应。在某些情况下,管理员也可以通过设置某个MIB对象来命令系统进行某种操作。 路由器、交换器、集线器等许多网络设备的管理代理软件一般是由原网络设备制造商提供的,它可以作为底层系统的一部分、也可以作为可选的升级模块。设备厂商决定他们的管 理代理软件可以控制哪些MIB对象,哪些对象可以反映管理代理软件开发者感兴趣的问题。 (3)管理信息数据库(MIB)定义了一种数据对象,它可以被网络管理系统控制。MIB是一个信息存储库,这里包括了数千个数据对象,网络管理员可以通过直接控制这些数据对象去控制、配置或监控网络设备。网络管理系统可以通过网络管理代理软件来控制MIB数据对象。不管到底有多少个MIB

操作系统习题1(含答案)

计算机操作系统试题 一填空: 1.操作系统为用户提供三种类型的使用接口,它们是命令方式和系统调用和图形用户界面。2.主存储器与外围设备之间的数据传送控制方式有程序直接控制、中断驱动方式、DMA方式和通道控制方式。 3.在响应比最高者优先的作业调度算法中,当各个作业等待时间相同时,运行时间短的作业将得到优先调度;当各个作业要求运行的时间相同时,等待时间长的作业得到优先调度。4.当一个进程独占处理器顺序执行时,具有两个特性:封闭性和可再现性。 5.程序经编译或汇编以后形成目标程序,其指令的顺序都是以零作为参考地址,这些地址称为逻辑地址。 6.文件的逻辑结构分流式文件和记录式文件二种。 7.进程由程度、数据和PCB组成。 8.对信号量S的操作只能通过原语操作进行,对应每一个信号量设置了一个等待队列。9.操作系统是运行在计算机裸机系统上的最基本的系统软件。 10.虚拟设备是指采用SPOOLING技术,将某个独享设备改进为供多个用户使用的的共享设备。 11.文件系统中,用于文件的描述和控制并与文件一一对应的是文件控制块。 12.段式管理中,以段为单位,每段分配一个连续区。由于各段长度不同,所以这些存储区的大小不一,而且同一进程的各段之间不要求连续。 13.逻辑设备表(LUT)的主要功能是实现设备独立性。 14在采用请求分页式存储管理的系统中,地址变换过程可能会因为缺页和越界等原因而产生中断。 16. 段的共享是通过共享段表实现的。 17.文件的物理结构分为顺序文件、索引文件和索引顺序文件。 18.所谓设备控制器,是一块能控制一台或多台外围设备与CPU并行工作的硬件。 19. UNIX的文件系统空闲空间的管理是采用成组链接法。 20分页管理储管理方式能使存储碎片尽可能少,而且使内存利用率较高,管理开销小。 20.计算机操作系统是方便用户、管理和控制计算机软硬件资源的系统软件。 21.操作系统目前有五大类型:批处理操作系统、分时操作系统、实时操作系统、网络操作系统和分布式操作系统。 22.按文件的逻辑存储结构分,文件分为有结构文件,又称为记录式文件和无结构文件,又称流式文件。 23.主存储器与外围设备之间的信息传送操作称为输入输出操作。 24、在设备管理中,为了克服独占设备速度较慢、降低设备资源利用率的缺点,引入了虚拟分配技术,即用共享设备模拟独占设备。 25、常用的内存管理方法有分区管理、页式管理、段式管理和段页式管理。 26、动态存储分配时,要靠硬件地址变换机构实现重定位。 27、在存储管理中常用虚拟存储器方式来摆脱主存容量的限制。 28、在请求页式管理中,当硬件变换机构发现所需的页不在内存时,产生缺页中断信号,中断处理程序作相应的处理。 29、置换算法是在内存中没有空闲页面时被调用的,它的目的是选出一个被淘汰的页面。如果内存中有足够的空闲页面存放所调入的页,则不必使用置换算法。

操作系统实验六_设备管理

操作系统课程报告实验六设备管理 学号 姓名 班级 教师 华侨大学电子工程系

实验目的 1、理解设备管理的概念和任务。 2、掌握独占设备的分配、回收等主要算法的原理并编程实现。 实验内容与基本要求 1、在Windows系统中,编写程序实现对独占设备的分配和回收的模拟, 该程序中包括:建立设备类表和设备表、分配设备和回收设备的函数。实验报告内容 1、独占设备的分配、回收等主要算法的原理。 为了提高操作系统的可适应性和可扩展性,现代操作系统中都毫无例外地实现了设备独立性,又叫做设备无关性。设备独立性的含义是:应用程序独立于具体使用的物理设备。为了实现独占设备的分配,系统设置数据表格的方式也不相同,在实验中只要设计合理即可。这里仅仅是一种方案,采用设备类表和设备表。 (1)数据结构 操作系统设置“设备分配表”,用来记录计算机系统所配置的独占设备类型、台数以及分配情况。设备分配表可由“设备类表”和“设备表”两部分组成,如下图: (2)设备分配 当进程申请某类设备时,系统先查“设备类表”如果该类设备的现存台数可以满足申请要求,则从该类设备的“设备表”始址开始依次查该类设备在设备表中的登记项,找出“未分配”的设备分配给进程。分配后要修改设备类表中的现存台数,把分配给进程的设备标志改为“已分配”且填上占用设备的进程名。然后,

把设备的绝对号与相对号的对应关系通知用户,以便用户在分配到的设备上装上存储介质。 (3)设备回收 当进程执行结束撤离时应归还所占设备,系统根据进程名查设备表,找出进程占用设备的登记栏,把标志修改为“未分配”,清除进程名。同时把回收的设备台数加到设备类表中的现存台数中。

软件工程实验报告

软件工程实验报告 姓名:冯巧 学号 实验题目:实验室设备管理系统 1、系统简介: 每天对实验室设备使用情况进行统计,对于已彻底损坏的作报废处理,同时详细记录有关信息。对于有严重问题(故障)的要即时修理,并记录修理日期、设备名、修理厂家、修理费用、责任人等。对于急需但又缺少的设备需以“申请表”的形式送交上级领导请求批准购买。新设备购入后立即对新设备登记(包括类别、设备名、型号、规格、单价、数量、购置日期、生产厂家、购买人等),同时更新申请表的内容。 2、技术要求及限定条件: 采用C#语言设计桌面应用程序,同时与数据库MySql进行交互。系统对硬件的要求低,不需要网络支持,在单机环境下也能运行,在局域网环境下也能使用。方案实施相对容易,成本低,工期短。 一:可行性分析 1、技术可行性分析 计算机硬件设备,数据库,实验室设备管理软件与实验室设备管理系统的操作人员组成,能够实现实验室设备管理的信息化,提高工作效率,实现现代化的实验室设备管理。系统需要满足实验室设备管理(包括对实验设备的报废、维修和新设备的购买)、实验室设备信息查询(包括按类别进行查询和按时间进行查询)、实验室设备信息统计报表(包括对已报废设备的统计、申请新设备购买的统计和现有设备的统计)。这些功能框图如下图所示: 2、经济可行性分析 依据用户的现实需求、技术现状、经济条件、工期以及其他局限性因素等等因素,考虑到工期的长短、技术的成熟可靠、操作方便等因素,本方案具备经济可行性。

3、系统可选择的开发方案 ①方案A用C#开发系统的特点是:开发工具与数据库集成一体,可视化,开发速度较快,但数据库能够管理的数据规模相对较小。系统对硬件的要求低,不需要网络支持,在单机环境下也能运行,在局域网环境下也能使用。方案的实施相对容易,成本低,工期短。 ②方案B:以小型数据库管理系统为后台数据库,该前台操作与数据库分离,也能够实现多层应用系统。系统对硬件的要求居中,特别适合在网络环境下使用,操作方便。但系统得实现最复杂,成本最高,工期也较长。 二:软件需求分析 1.软件系统需求基本描述: 实验室设备管理系统是现代企业资源管理中的一个重要内容,也是资源开发利用的基础性工作。实验室设备在信息化之前,在用户系统管理、设备维修管理、设备的增删改查管理等方面存在诸多不利于管理的地方,不适应现代的企业管理形势和资源的开发利用。 2.软件系统数据流图(由加工、数据流、文件、源点和终点四种元素组成): 1)顶层数据流图 2)二层流程图 3)总数据流图

操作系统设备管理练习及答案

设备管理练习题 (一)单项选得题 1.磁盘机属于( )。A字符设备B.存储型设备c.输入输出型设备D.虚拟设备2.对存储型设备,输入输出操作的信息是以( )为单位传输的。A.位B.字节C.字D.块 3.对输入输出设备,输入输出操作的信息传输单位为( )。A.位B.字符C字D.块4.在用户程序常用( )提出使用设备的要求。A.设备类、相对号B.设备的绝对号c.物理设备名D.虚拟设备名 5.使用户编制的程序与实际使用的物理设备无关是由( )功能实现的。A.设备分配B.设备驱动c.虚拟设备D.设备独立性 6.启动磁盘执行—次输入输出操作时,( )是硬件设计时就固定的。A寻找时间B.延长时间c.传送时间D.一次I/O操作的总时间 7 ( )调度算法总是从等待访问者中挑选时间最短的那个请求先执行。A.先来先服务B.最短寻找时间优先c.电梯D单向扫描 8.通道是一种( )。A.I/O设备B.设备控制器c.I/O处理机D.I/O控制器 9.操作系统设置( ),用来记录计算机系统所配置的独占设备类型、台数和分配情况A.设备分配表B.设备类表c设备表D.设备控制表 10.设备的独立性是指( )。A.设备具有独立执行I/O功能的一种特性B.用户程序使用的设备与实际使用哪台设备无关的一种特性c能独立实现设备共享的一种特性D.设备驱动程序独立于具体使用的物理设备的一种特性 11.( )总是从移动臂当前位置开始沿着臂的移动向去选择离当前移动臂最近的那个柱面的

访问者,若沿臂的移动向无请求访问时,就改变臂的移动向再选择。A.先来先服务调度算法B.最短寻找时间优先调度算法c.电梯调度算法D.单向扫描调度算法12.( )是用来存放通道程序首地址的主存固定单元。A.Psw(程序状态字) B.CcW(通道命令) c.CAw(通道地址字) D.CSW(通道状态字) 13.中央处理器执行用户提出的“请求启动外设”的要求时,会产生一个( )。A.程序性中断事件B.外部中断事件c.输入输出中断事件D.自愿性中断事件 14通道在发现csw中有控制器结束、设备结束、通道结束、设备故障或设备特殊情况时,会发出( )。A.硬件故障中断B外部中断c.输入输出中断D.自愿性中断15.虚拟设备是指( )。A允用户使用比系统中具有的物理设备更多的设备B.允用户以标准化式来使用物理设备c.把共享设备模拟独占设备D.允用户程序不必全部装入主存便可使用系统中的设备 16.SPOOL技术的主要目的是( )。A.提高cPu和设备交换信息的速度B.提高独占设备的利用率c.减轻用户的编程负担D.提供主、辅存接口 (二)填空题 1.操作系统中对外围设备的启动和控制工作由______完成。2.计算机的外围设备可分______和______两大类。3______能使大量的信息存放到相应的存储介质上,能作为主存储器的扩充。4.______能把外界的信息输入到计算机系统,或把计算结果输出。5.主存储器与外围设备之间的信息传送操作称为______。6.对存储型设备,输入输出的信息传输单位为______;对输入输出型设备,输入输出操作的信息传输单位为______。7.只能让一个作业独占使用的设备称为______。8.可以让几个作业同时使用的设备称为______。9.用共享设备来模拟独占设备的工作.把独占设备改造成可共享的,这种模拟的独占设备称为______。10.计算机系统为每台设备确定一个编号,以便区分和识别,这个确定的编号成为设备的

操作系统实验七设备管理实验(广西师大)

操作系统课程实验 年级2012级 专业计算机科学与技术(应用型)姓名 学号 指导教师黄玲 日期2013年12月26日

实验七、设备管理实验 一、关键问题 1、实验目的 观察Linux下U盘的访问;理解设备虚拟分配技术。 2、实验环境 Ubuntu8.0或者以上,Eclipse集成开发环境 3、实验内容 3.1观察Linux下的U盘访问 从键盘获得符号串,写入磁盘文件,然后读取该文件。 3.2设备管理模拟实验要求:设计一个SPOOLing输入模拟系统。提示:输入井设计成结构体数组,每块存放一个输入文件内容。三个用户进程与一个后台输入进程并发执行,后台输入进程接受用户键盘输入的文件到输入井,每个用户进程从输入井获取输入数据。 老师所给的例子为为利用内存SPOOLing输入模拟系统,而问题的关键就是如何参考spoolout()设计spoolin()以及修改用户进程usepro()和输入#进程spoolsever()。 二、设计修改思路 spoolout()进程:键入要输入的用户id,如果用户输入文件未完成则键入文件内容,将文件内容mybuf发到输入井。 spoolsever()输入#进程:登记输入请求块,将缓冲区mybuf的数据送入输入井well。若成功送入,返回TRUE,否则返回FALSE。 usepro()用户进程:遍历输入请求块如找到该用户的输入请求,将输入请求块的数据送入用户缓冲区userbuf,并在屏幕输出userbuf。 三、实现修改的关键代码 #include #define WELLSIZE500//输入井的大小 #define FALSE0 #define TRUE1 //进程控制块 struct { int id;//进程标识数 char status;//进程状态,'e'为执行态,'c'为完成态。 int bufflag;//用户缓冲区userbuf空闲标志:FALSE为无数据,TRUE为有数据。 int filec;//本进程需要输出的文件数(用户指定) }pcb[4];//pcb[0]为SPOOLing进程,pcb[1]、pcb[2]、pcb[3]为3个用户进程

实验室设备管理系统实验报告1讲解

本科实验报告 课程名称:软件工程导论 实验项目:实验室设备管理系统 实验地点:实验楼210 专业班级:软件1319 学号:2013005655 学生姓名:张卫东 指导教师:王会青 2015年05 月21 日

一、实验目的和要求 1.系统简介 某大学每学年都需要对实验室设备使用情况进行统计、更新。 其中: (1)对于已彻底损坏的实验设备做报废处理,同时详细记录有关信息。 (2)对于有严重问题(故障)的需要及时修理,并记录修理日期、设备名、编号、修理厂家、修理费用、责任人等。 (3)对于急需使用但实验室目前又缺乏的设备,需以“申请表”的形式送交上级领导请求批准购买。新设备购入后要立即进行设备登记(包括类别、设备名、编号、 型号、规格、单价、数量、购置日期、生产厂家、保质期和经办人等信息),同 时更新申请表的内容。 (4)随时对现有设备及其修理、报废情况进行统计、查询,要求能够按类别和时间段等条件进行查询。 2.技术要求及限制条件 (1)所有工作由专门人员负责完成,其他人不得任意使用。 (2)每件设备在做入库登记时均由系统按类别加自动顺序号编号,形成设备号;设备报废时要及时修改相应的设备记录,且有领导认可。 (3)本系统的数据存储至少包括:设备记录、修理记录、报废记录、申请购买记录。 (4)本系统的输入项至少包括:新设备信息、修理信息、申请购买信息、具体查询统计要求。 (5)本系统的输出项至少包括:设备购买申请表、修理/报废设备资金统计表。 二、实验内容和原理 可行性分析报告 可行性研究主要是初步确定项目的规模和目标,确定项目的约束和限制。对于项目的功能和性能方面的要求进行简要的概述。详见组长田彦博的实验报告。 需求规格说明书 需求规格说明书主要是进一步定制实验室设备管理系统软件开发的细节问题,便于用户与开发商协调工作。在此主要绘制了系统的数据流图、相应的数据字典、E-R图、以及系统的功能图,对于各个方面的需求进行了详细的阐述。详见组长田彦博的实验报告。 概要设计说明书 概要设计说明书是为了说明整个实验室设备管理系统的体系架构,以及需求用例的各个功能点在架构中的体现。在此主要绘制了系统流程图、总体结构和模块的外部设计,而且对于数据库中逻辑结构方面也进行了详细的设计。详见组长田彦博的实验报告。

操作系统实验 设备管理汇总

操作系统实验 名称实验六设备管理 姓名 专业 学号 日期 2015年12月01日指导老师

一、实验目的 1.理解设备管理的概念和任务。 2.掌握独占设备的分配、回收等主要算法的原理并编程实现。 二、实验内容与要求 1.在Windows系统中,编写程序实现对独占设备的分配和回收的模拟,该程序中包括:建立设备类表和设备表、分配设备和回收设备的函数。 三、实验原理 1.独占设备的分配、回收等主要算法的原理。 为了提高操作系统的可适应性和可扩展性,现代操作系统中都毫无例外地实现了设备独立性,又叫做设备无关性。设备独立性的含义是:应用程序独立于具体使用的物理设备。 为了实现独占设备的分配,系统设置数据表格的方式也不相同,在实验中只要设计合理即可。这里仅仅是一种方案,采用设备类表和设备表。 (1)数据结构 操作系统设置“设备分配表”,用来记录计算机系统所配置的独占设备类型、台数以及分配情况。设备分配表可由“设备类表”和“设备表”两部分组成,如下 设备类表设备表 控制器表通道表 设备队列队首指针。凡因请求本设备而未得到满足的进程,其PCB都应按照一定的策略排成一个队列,称该队列为设备请求队列或简称设备队列。其队首指针指向队首PCB。在有的系统中还设置了队尾指针。 设备状态。当设备自身正处于使用状态时,应将设备的忙/闲标志置“1”。若与该设备相连接的控制器或通道正忙,也不能启动该设备,此时则应将设备的等待标志置“1”。

与设备连接的控制器表指针。该指针指向该设备所连接的控制器的控制表。在设备到主机之间具有多条通路的情况下,一个设备将与多个控制器相连接。此时,在DCT中还应设置多个控制器表指针。 (2)设备分配 1)当进程申请某类设备时,系统先查“设备类表”。 2)如果该类设备的现存台数可以满足申请要求,则从该类设备的“设备表”始址开始依次查该类设备在设备表中的登记项,找出“未分配”的设备分配给进程。 3)分配后要修改设备类表中的现存台数,把分配给进程的设备标志改为“已分配”且填上占用设备的进程名。 4)然后,把设备的绝对号与相对号的对应关系通知用户,以便用户在分配到的设备上装上存储介质。 (3)设备回收 当进程执行结束撤离时应归还所占设备,系统根据进程名查设备表,找出进程占用设备的登记栏,把标志修改为“未分配”,清除进程名。同时把回收的设备台数加到设备类表中的现存台数中。 设备分配程序的改进 增加设备的独立性:为了获得设备的独立性,进程应使用逻辑设备名I/O。这样,系统首先从SDT中找出第一个该类设备的DCT。若该设备忙,又查找第二个该类设备的DCT,仅当所有该类设备都忙时,才把进程挂在该类设备的等待队列上,而只要有一个该类设备可用,系统便进一歩计算分配该设备的安全性。 四、程序流程图

操作系统练习题_及答案解析

操作系统练习题 第一章引言 (一单项选择题 1操作系统是计算机系统的一种( 。A.应用软件 B.系统软件c.通用软件D.工具软件 2.操作系统目的是提供一个供其他程序执行的良好环境,因此它必须使计算机( A.使用方便 B.高效工作 C.合理使用资源 D.使用方便并高效工作 3.允许多个用户以交互方式使用计算机的操作系统是( 。A.分时操作系统 B.批处理单道系统 C.实时操作系统 D.批处理多道系统 4.下列系统中( 是实时系统。A.计算机激光照排系统 B.办公自动化系统 C.化学反应堆控制系统 D.计算机辅助设计系统 5.操作系统是一种系统软件,它( 。A.控制程序的执行 B.管理计算机系统的资源 C.方便用户使用计算机 D.管理计算机系统的资源和控制程序的执行 6.计算机系统把进行( 和控制程序执行的功能集中组成一种软件,称为操作系统 A.CPU管理 B.作业管理 C.资源管理 D.设备管理 7.批处理操作系统提高了计算机系统的工作效率,但( 。 A.不能自动选择作业执行 B.无法协调资源分配 c.不能缩短作业执行时间 D在作业执行时用户不能直接干预 8.分时操作系统适用于( 。A.控制生产流水线B.调试运行程序c.大量的数据处理D.多个计算机资源共享 9.在混合型操作系统中,“前台”作业往往是指( 。A.由批量单道系统控制的作业 B.由批量多道系统控制的作业 c.由分时系统控制的作业D.由实时系统控制的作业

10.在批处理兼分时的系统中,对( 应该及时响应,使用户满意。A.批量作业B.前台作业c.后台作业D.网络通信 11.实时操作系统对可靠性和安全性要求极高,它( 。A.十分注重系统资源的利用率B.不强调响应速度 c.不强求系统资源的利用率 D.不必向用户反馈信息 12.分布式操作系统与网络操作系统本质上的不同之处在于( 。A.实现各台计算机之间的通信B.共享网络个的资源 c.满足较大规模的应用 D.系统中若干台计算机相互协作完成同一任务 13.SPOOL技术用于( 。A.存储管理B.设备管理C.文件管理 D.作业管理 14.( 为用户分配主存空间,保护主存中的程序和数据不被破坏,提高主存空间的利用率。 A处理器管理 B.存储管理 c.文件管理 D.作业管理 (二填空题 1. 计算机系统是按用户要求接收和存储信息,自动进行_______并输出结果信息的系统。 2.计算机是由硬件系统和_______系统组成。 3.软件系统由各种_______和数据组成。 4.计算机系统把进行_______和控制程序执行的功能集中组成一种软件称为操作系统。 5.操作系统使用户合理_______,防止各用户间相互干扰。 6.使计算机系统使用方便和_______是操作系统的两个主要设计目标。 7.批处理操作系统、_______和实时操作系统是基本的操作系统。 8.用户要求计算机系统中进行处理的一个计算机问题称为_______。

数据库设备管理系统

郑州轻工业学院本科 数据库课程设计总结报告 设计题目:设备管理系统 学生姓名:xx 、xx 系别:计算机与通信工程学院 专业:计算机科学与技术 班级:计算机科学与技术10~01 学号:xx 指导教师:张保威金松河 2012 年12月30 日

郑州轻工业学院 课程设计任务书 题目设备管理系统 专业、班级计算机科学与技术10-1 学号 xx 姓名 xx 学号 xx 姓名 xx 主要内容: 了解设备管理的基本流程,根据构思活出E---R图。根据所化E---R图,对相应的试题和关系建立表格,实现数据的初始化。用SQL建立数据库表,然后再用其他软件建立界面(如此设备管理系统用的是C#实现界面),将建立好的界面同数据库进行链接,实现对数据库的简单的增删改查。 E-R图思路: 部门向设备处申请所需设备的数量及类型,设备处产生采购清单递交给采购员。 采购员从供应商获得设备存放在设备存放处,设备管理员将设备分配到需要设备的各个部门,部门将设备分给员工进行使用。 在使用设备的过程中,如果设备在保修期限内出现质量问题部门向设备处申请,设备退回供应商;如果设备损坏,由部门向维修人员报修;若无维修价值,则申请报废。 基本要求: 立足于科技日益发达,自动化组不占据主要市场,要求学生根据自己所学的数据库知识,建立简单的数据库实现对设备管理的机械化,自动化。 1:能够数量掌握SQL; 2:能够运用其他辅助工具做图形界面。 3:能够实现对C#和数据库的链接。 4:作出的系统能够对数据库进行简单的增删改查。 5:通过机械化,自动化工具的使用,提高工作效率、准确率。 主要参考资料等: 《数据库系统概论》作者:王珊萨师煊出版社:高等教育出版社 《数据库系统概论》课堂课件。 完成期限:两周 指导教师签名: 课程负责人签名: 2012年 12月 30 日

操作系统-第七章 设备管理习题(有答案)

第七章设备管理习题 一. 选择最合适的答案 1.在下面的I/O控制方式中,需要CPU干预最少的方式是()。 (A)程序I/O方式 (B)中断驱动I/O控制方式 (C)直接存储器访问DMA控制方式 (D)I/O通道控制方式 2.某操作系统中,采用中断驱动I/O控制方式,设中断时,CPU用1ms来处理中断请求,其它时间CPU完全用来计算,若系统时钟中断频率为100H Z,则,CPU的利用率为()。 (A)60% (B)70% (C)80% (D)90% 3.下列哪一条不是磁盘设备的特点()。 (A)传输速率较高,以数据块为传输单位 (B)一段时间内只允许一个用户(进程)访问 (C)I/O控制方式常采用DMA方式 (D)可以寻址,随机地读/写任意数据块 4.利用通道实现了()之间数据的快速传输。 (A)CPU和外设(B)内存和CPU (C)内存和外设(D)外设和外设 5.假脱机技术中,对打印机的操作实际上是用对磁盘存储实现的,用以替代打印机的部分是指()。 (A)共享设备(B)独占设备 (C)虚拟设备(D)物理设备 6.设从磁盘将一块数据传送到缓冲区所用时间为80μs,将缓冲区中数据传送到用户区所用时间为40μs,CPU处理数据所用时间为30μs,则处理该数据,采用单缓冲传送某磁盘数据,系统所用总时间为()。 (A)120μs (B)110μs (C)150μs (D)70μs 7.对于速率为9.6KB/s的数据通信来说,如果说设置一个具有8位的缓冲寄存器,则CPU中断时间和响应时间大约分别为()。 (A)0.8ms,0.8ms (B)8ms,1ms (C)0.8ms,0.1ms (D)0.1ms,0.1ms 8.在调试程序时,可以先把所有输出送屏幕显示而不必正式输出到打印设备,其运用了()。

实验10 操作系统设备管理

实验10 操作系统设备管理 一、按课本第139页【实例分析4-7】内容熟悉设备管理器界面。(若课本没带,打开我的电脑-右键-管理-设备管理-查看相应设备。)记录你使用的电脑的处理器、磁盘存储器等的型号分别是什么。二、学习如何在Microsoft Windows XP 中如何使用设备管理器管 理设备。 使用设备管理器管理设备 设备管理器提供一个图形视图,可显示计算机上安装的硬件以及与硬件关联的设备驱动程序和资源。在设备管理器上,可以集中更改配置硬件的方式以及更改硬件与计算机微处理器交互的方式。 使用设备管理器管理设备及其驱动程序需要拥有下列权限,系统管理员被授予了所有这些权限:?加载/卸载驱动程序权限。 ?向system32\drivers 目录复制文件所需的权限。 ?向注册表写入设置所需的权限。 设备管理器具有下列功能: ?确定计算机上的硬件是否工作正常。 ?更改硬件配置设置。 ?标识为每个设备加载的设备驱动程序,并获取每个设备驱动程序的有关信息。 ?更改设备的高级设置和属性。 ?安装更新的设备驱动程序。 ?禁用、启用和卸载设备。 ?重新安装驱动程序的前一版本。 ?找出设备冲突并手动配置资源设置。 ?打印计算机上所安装设备的概要信息。 通常,设备管理器用于检查计算机硬件的状态以及更新计算机上的设备驱动程序。如果您是高级用户并且通晓计算机硬件知识,则可以使用设备管理器的诊断功能来消除设备冲突和更改资源设置。 要访问设备管理器,请使用下列任一方法: ?单击开始,单击运行,然后键入devmgmt.msc。 ?右键单击我的电脑,单击管理,然后单击设备管理器。 ?右键单击我的电脑,单击属性,单击硬件选项卡,然后单击设备管理器。

用友ERP生产管理系统实验报告

用友ERP生产管理系统实验报告 本课程共分14单,以用友ERP-U8.72为实验平台,以一个企业的生产经营业务贯穿始终,分别介绍了ERP生产管理系统中物料清单、主生产计划、产能管理、需求规划、生产订单、车间管理、工程变更、设备管理的生产制造模块,以及与生产管理活动有关的销售管理、采购管理、委外管理、库存管理、应收款管理及应付款管理等模块的相关功能。 用友ERP生产管理系统是ERP-U8企业管理软件的重要组成部分,是企业信息化管理核心的和有效的方法和工具。它面向离散型和半离散型的制造企业资源管理的需求,遵循以客户为中心的经营战略,以销售订单及市场预测需求为导向,以计划为主轴,覆盖了面向订单采购、订单生产、订单装配和库存生产四种制造业生产类型,并广泛应用于机械、电子、食品、制药等行业。 本实验报告要针对的实验项目有客户订货、排程业务、产能管理、采购业务、委外业务、生产业务、车间管理、销售发货业务、应收款和应付款系统的制单业务、期末处理、物料清单维护、工程变更管理和设备管理。 实验一客户订货 一、实验目的 1.理解销售报价的作用,掌握销售报价的操作。 2.理解销售订货管理的主要功能,掌握相关的基本操作。 二、实验内容 1.输入销售报价单。 2.审核销售报价单。 3.输入销售预订单。 4.输入销售订单。 5.审核销售订单。 6.修改已审核销售订单。 三、实验步骤 1.输入报价单。 2.审核报价单。 3.根据报价单生成销售订单。 4.审核销售订单。 5.修改已审核销售订单。 6.手工输入新的销售订单。 7.审核手工输入的销售订单。

四、实验成果 实验二排程业务 一、实验目的 理解主生产计划和物料需求计划的作用,掌握产销排程和物料需求计划的操作。 二、实验内容 1.MPS累计提前天数推算和库存异常状况查询。 2.MPS计划参数维护。 3.MPS计划生成。 4.MPS计划作业的供需资料查询。 5.MRP累计提前天数推算和库存异常状况查询。 6.MRP计划参数维护。 7.MRP计划生成。 8.MRP供需资料查询。 三、实验步骤 1.MPS累计提前天数推算和库存异常状况查询。 2.MPS计划参数维护。 3.MPS计划生成。

操作系统实验六设备管理

操作系统课程报告 实验六设备管理 学号 姓名 班级 教师 华侨大学电子工程系

实验目的 1、理解设备管理的概念和任务。 2、掌握独占设备的分配、回收等主要算法的原理并编程实现。 实验内容与基本要求 1、在Windows系统中,编写程序实现对独占设备的分配和回收的模拟,该程序中包括: 建立设备类表和设备表、分配设备和回收设备的函数。 实验报告内容 1、独占设备的分配、回收等主要算法的原理。 为了提高操作系统的可适应性和可扩展性,现代操作系统中都毫无例外地实现了设备独立性,又叫做设备无关性。设备独立性的含义是:应用程序独立于具体使用的物理设备。为了实现独占设备的分配,系统设置数据表格的方式也不相同,在实验中只要设计合理即可。这里仅仅是一种方案,采用设备类表和设备表。 (1)数据结构 操作系统设置“设备分配表”,用来记录计算机系统所配置的独占设备类型、台数以及分配情况。设备分配表可由“设备类表”和“设备表”两部分组成,如下图:(2)设备分配 当进程申请某类设备时,系统先查“设备类表”如果该类设备的现存台数可以满足申请要求,则从该类设备的“设备表”始址开始依次查该类设备在设备表中的登记项,找出“未

分配”的设备分配给进程。分配后要修改设备类表中的现存台数,把分配给进程的设备标志改为“已分配”且填上占用设备的进程名。然后,把设备的绝对号与相对号的对应关系通知用户,以便用户在分配到的设备上装上存储介质。 (3)设备回收 当进程执行结束撤离时应归还所占设备,系统根据进程名查设备表,找出进程占用设备的登记栏,把标志修改为“未分配”,清除进程名。同时把回收的设备台数加到设备类表中的现存台数中。 2、程序流程图。 主程序流程图: 设备分配: 设备回收: 3、程序及注释。 #include #include #include #define false 0 #define true 1

操作系统原理第九章 设备管理习题

第七章设备管理习题 7.3习题 7.3.1、选择最合适的答案 1.在下面的I/O控制方式中,需要CPU干预最少的方式是()。 (A)程序I/O方式 (B)中断驱动I/O控制方式 (C)直接存储器访问DMA控制方式 (D)I/O通道控制方式 2.某操作系统中,采用中断驱动I/O控制方式,设中断时,CPU用1ms来处理中断请求,其它时间CPU完全用来计算,若系统时钟中断频率为100H Z,则,CPU的利用率为()。 (A)60% (B)70% (C)80% (D)90% 3.下列哪一条不是磁盘设备的特点()。 (A)传输速率较高,以数据块为传输单位 (B)一段时间内只允许一个用户(进程)访问 (C)I/O控制方式常采用DMA方式 (D)可以寻址,随机地读/写任意数据块 4.利用通道实现了()之间数据的快速传输。 (A)CPU和外设(B)内存和CPU (C)内存和外设(D)外设和外设 5.假脱机技术中,对打印机的操作实际上是用对磁盘存储实现的,用以替代打印机的部分是指()。 (A)共享设备(B)独占设备 (C)虚拟设备(D)物理设备 6.设从磁盘将一块数据传送到缓冲区所用时间为80μs,将缓冲区中数据传送到用户区所用时间为40μs,CPU处理数据所用时间为30μs,则处理该数据,采用单缓冲传送某磁盘数据,系统所用总时间为()。 (A)120μs (B)110μs (C)150μs (D)70μs 7.对于速率为9.6KB/s的数据通信来说,如果说设置一个具有8位的缓冲寄存器,则CPU中断时间和响应时间大约分别为()。 (A)0.8ms,0.8ms (B)8ms,1ms

(C)0.8ms,0.1ms (D)0.1ms,0.1ms 8.在调试程序时,可以先把所有输出送屏幕显示而不必正式输出到打印设备,其运用了()。 (A)SPOOLing技术(B)I/O重定向 (C)共享技术(D)缓冲技术 9.设备驱动程序是系统提供的一种通道程序,它专门用于在请求I/O的进程与设备控制器之间传输信息。下面的选项中不是设备驱动程序功能的是()。 (A)检查用户I/O请求的合法性 (B)及时响应由控制器或通道发来的中断请求 (C)控制I/O设备的I/O操作 (D)了解I/O设备的状态,传送有关参数,设置设备的工作方式 10.下列关于通道、设备、设备控制器三者之间的关系叙述中正确的是()。 (A)设备控制器和通道可以分别控制设备 (B)设备控制器控制通道和设备一起工作 (C)通道控制设备控制器,设备控制器控制设备 (D)设备控制器控制通道,通道控制设备 7.3.2、选择所有正确的答案 1.下列哪一个选项是引入缓冲的原因()。 (A)缓和CPU和I/O设备间速度不匹配的矛盾 (B)减少对CPU的中断频率,放宽对中断响应时间的限制 (C)减少CPU对I/O控制的干预 (D)提高CPU和I/O设备之间的并行性 2.从设备分配的角度来看,设备分成()。 A.独享设备 B.系统设备 C.用户设备 D.共享设备 E.虚拟设备 3.在操作系统中,下列选项属于软件机制的是()。 (A)缓冲池(B)通道技术 (C)覆盖技术(D)Spooling技术 4.下列哪种设备是从设备分配策略角度来说的()。 (A)系统设备(B)独享设备 (C)共享设备(D)虚拟设备 5.下列关于通道、设备、设备控制器三者之间的关系叙述中正确的是()。 (A)控制器和通道可以分别控制设备 (B)控制器、通道和设备一起工作

设备管理系统(论文+开题报告+源码)

目录 前言―――――――――――――――――――――――摘要―――――――――――――――――――――――第一章系统需求分析 第二章系统设计 2.1系统方案确定 2.2系统功能实现 第三章怎样开发一个人事工资管理系统? 3.1 编程环境的选择

3.2 关系型数据库的实现 3.3 二者的结合(DBA) 第四章 Visual basic下的控件所实现的功能 4.1实现菜单选项 4.2 实现工具栏 4.3 帮助 第五章系统总体规划 5.1 系统功能 5.2 流程图 第六章系统具体实现 6.1 用户界面的实现 6.2 数据库的实现 第七章结束语 第八章主要参考文献 第九章程序源代码、各功能模块的程序流程图 --------------前言-------------- 设备管理信息系统是一个企事业单位不可缺少的部分,它的内容对于企事业单位的决策者和管理者来说都至关重要,所以设备管理信息系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理设备的信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。本论文主要介绍的是设备管理信息系统的整个设计过程。 随着计算机技术的不断发展,计算机应用于各大领域,并给人们的生活带来了极大的便利,在固定管理系统亦是如此。以往设备员由于缺乏适当的软件而给其工作带来了很多不便。本论文所介绍的便是一个设备管理信息系统,以方便在设备安排和设备管理信息上的工作任务。 该系统适用于普通设备的管理,在使用上力求操作容易,界面美观,另外,本系统具有较高的扩展性和可维护性,可能在以后需要的时候进行软件升级。 整个系统的开发过程严格遵循软件工程的要求,做到模块化分析、模块化设计和代码编写的模块化。 作为计算机应用的一部分,使用计算机对设备信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高设备管理信息的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。 --------------摘要--------------

JAVAEE课程设计 之实验室设备管理系统

软件学院 课程设计报告书 课程名称 Java高级框架应用开发 设计题目实验室设备管理系统 专业班级软件工程10-6班 学号1020010627 姓名萧翎 指导教师郭鹏飞 2013 年 1 月

目录 1 设计时间.............................................................. 错误!未定义书签。 2 设计目的.............................................................. 错误!未定义书签。3设计任务............................................................... 错误!未定义书签。 4 设计内容.............................................................. 错误!未定义书签。 4.1需求分析............................................................ 错误!未定义书签。 4.1.1总体目标 ...................................................... 错误!未定义书签。 4.1.2具体目标 ...................................................... 错误!未定义书签。 4.1.3系统数据建模 .............................................. 错误!未定义书签。 4.1.4系统功能建模 .............................................. 错误!未定义书签。 4.1.5数据字典 ...................................................... 错误!未定义书签。 4.2总体设计............................................................ 错误!未定义书签。 4.3详细设计........................................................... 错误!未定义书签。 4.4运行与测试 ...................................................... 错误!未定义书签。 5 总结与展望.......................................................... 错误!未定义书签。附:系统程序主要代码 ......................................... 错误!未定义书签。参考文献.................................................................. 错误!未定义书签。成绩评定.................................................................. 错误!未定义书签。

相关文档
最新文档