Linux操作系统利用信号量实现银行叫号排队系统

Linux操作系统利用信号量实现银行叫号排队系统
Linux操作系统利用信号量实现银行叫号排队系统

Linux操作系统课程设计

题目:进程通信与进程同步机制实践

(银行叫号排队模拟系统)

所在学院:

所在班级:

学生姓名:

学生学号:

指导教师:

一、题目

某银行提供5个服务窗口(3个对私服务窗口,1个对公服务窗口,1个理财服务窗口)和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号;若没有空座位,则在门外等待或离开。取号机每次仅允许一位顾客使用,有对公、对私和理财三类号,每位顾客只能选取其中一个。当营业员空闲时,通过叫号选取一位顾客,并为其服务。请用P、V操作写出进程的同步算法。

二、目的

1、掌握基本的同步与互斥算法。

2、学习使用 Linux 中基本的同步对象,掌握相关 API 的使用方法。

3、了解 Linux 中多任务的并发执行机制,实现进程的同步与互斥。

三、实验环境

Linux CentOS、Ubuntu、Fedora等Linux系统

编译器GCC

编程语言 C语言

四、要求

1、当有顾客取号的时候,不允许其他顾客取号。

2、当服务窗口满的情况下,其他人必须等待。

3、当没有顾客的情况下,服务窗口必须等待。

4、打印:

A、初始状态

B、中间变化的状态信息

C、以及最终状态信息。

五、原理及算法

本程序中设计6个信号量,其中signal_A、signal_B和signal_C分别是对私、对公、理财窗口的同步信号量。若信号量值的等于0,说明当前没有空闲空口,顾客需要等待。另设置一个signal_seat同步信号量,记录当前的座位情况,若该信号量等于0,说明当前没有空座位,顾客需要等待。另有一个signal_customer同步信号量用于记录当前已经取过票的总人数,用于生成票号信息。还有一个mutex互斥信号量,用于实现各进程在对信号量进行操作时的互斥。

顾客进入银行之后,先看通过一个依据系统时间的随机数来确定自己是需要对私、对公还是理财服务(在本程序中分别对应于A类顾客,B类顾客和C类顾客),这三个类型的顾客的比例为3:1:1.然后顾客根据自己需要的服务类型,查看提供相应类型服务的窗口是否空闲,若窗口有空闲,则系统直接按照signal_customer记录的信息,生成票面信息;若窗口没有空闲,则再去查看signal_seat信号量看看是否有空座位,若有空座位,则根据signal_customer 记录的信息,生成票面信息;若没有空座位,则通过一个以系统时间为种子的随机数生成器生成一个随机数,帮助顾客确定是要继续等待还是离开,这两种情况的比例为1:1.若顾客选择离开,则相应的进程退出。

当顾客取到票后,便开始查看对应类型的窗口是否有空闲,如果有空闲,则上前办理业务。顾客办理业务需要的时长通过以系统时间为种子的随机数生成器来确定,时长均在10秒到60秒之间。

在程序执行的过程中,顾客的状态每有变换,都会有相应的输出提示信息,并在输出的行尾输出发生该动作时当前的系统时间,以便于我们分析各个顾客进程的执行情况。

本实验在Linux环境下完成,该程序是通过进程实现的。包含一个service 可执行文件,一个customer可执行文件和一个deletesem可执行文件。其中service可执行文件用于在内存中申请一个共享内存空间,并将这个内存空间与自身进程绑定;customer可执行文件每执行一次,就增加一个进程,即代表有一位顾客来到。通过多次执行customer可执行文件来模拟多位顾客;deletesem 可执行文件用于在service进程和customer进城都执行完毕后,删除内存空间

中的信号集。

实验中利用GCC编译器,通过编写Makefile文件来快速编译源代码生成以上三个可执行文件。

六、程序中各主要函数说明

1、intcreateshm( char * pathname, intproj_id, size_t size)

创建共享内存的函数,操作成功则返回共享内存标识符,失败返回-1.

2、intcreatesem (const char * pathname, intproj_id, int members, intinit_val[])

在共享内训中创建信号量的函数,操作成功则返回信号集标识符,失败返回-1.

3、intopensem(const char * pathname, intproj_id)

打开信号集函数,操作成功则返回信号集标识符,失败返回-1.

4、intsem_p(intsemid, int index)

P操作函数,操作成功则返回0,失败返回-1.

5、int sem_v(intsemid, int index)

V操作函数,操作成功则返回0,失败返回-1.

6、int wait_sem(intsemid, int index)

等待信号量为1函数,操作成功返回1.

7、int delete_sem (intsemid)

删除信号集函数,操作成功返回0.

8、int get_sem_val (intsemid ,int index)

获取指定信号集中指定下标的信号量的值,操作成功返回该信号量的值。9、int my_random()

自定义随机数生成器,以系统时间为种子,每次执行前延时1秒,以便于生成不同的随机数。

10、void print_time()

打印当前系统时间。

11、intget_ticket(intsemid, char identifyLabel, int * ticket, int * flag)

顾客取票函数,取票成功,返回1,失败返回-1,,由于没有空座,顾客选择离开则返回0。

12、void service(intsemid, char identifyLabel, int * ticket, int *flag)

顾客办理业务函数。

七、源程序清单

sharemem.h文件

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define SHM_SIZE 1024

#define INDEX_MUTEX 0

#define INDEX_SIGNAL_SEAT 1

#define INDEX_SIGNAL_CUSTOMER 2

#define INDEX_SIGNAL_A 3

#define INDEX_SIGNAL_B 4

#define INDEX_SIGNAL_C 5

/*定义信号量*/

/*同步信号量一共有4个*/

intsignal_A=3, signal_B=1, signal_C=1, signal_seat=3, signal_customer=0;

/*互斥信号量mutex控制进程对每个同步信号量的操作*/

intmutex=1;

intsignal_count=6; //信号量计数器,记录一共有多少信号量

unionsemun

{

intval;

structsemid_ds * buf;

unsigned short * array;

};

/*创建共享内存函数*/

intcreateshm( char * pathname, intproj_id, size_t size)

{

key_tshmkey;

intsid;

/*获取键值*/

if ((shmkey=ftok(pathname, proj_id))==-1)

{

perror ("ftok error!\n");

exit(1);

return -1;

}

if ((sid=shmget(shmkey, size, IPC_CREAT | 0666))==-1)

{

perror ("shmget call failed.\n");

exit(1);

return -1;

}

return (sid);

}

/*定义创建信号量的函数*/

intcreatesem (const char * pathname, intproj_id, int members, intinit_val[]) {

key_tmsgkey;

intindex,sid;

unionsemunsemopts;

if ((msgkey=ftok(pathname, proj_id))==-1)

{

perror ("ftok error!\n");

exit(1);

return -1;

}

if((sid=semget(msgkey, members, IPC_CREAT | 0666))==-1)

{

perror ("semget call failed.\n");

exit(1);

return -1;

}

/*对信号量进行初始化操作*/

for(index=0;index

{

semopts.val=init_val[index]; //根据init_val数组中的值对各个信号量进行初始化

semctl (sid,index,SETVAL,semopts);

}

return (sid);

}

/*打开信号量函数*/

intopensem(const char * pathname, intproj_id)

{

key_tmsgkey;

intsid;

if ((msgkey=ftok(pathname,proj_id))==-1)

{

perror ("ftok error!\n");

exit(1);

return -1;

}

if((sid=semget(msgkey, 0 ,IPC_CREAT | 0666))==-1)

{

perror ("semget call failed.\n");

exit(1);

return -1;

}

return (sid);

}

/*P操作函数*/

intsem_p(intsemid, int index)

{

structsembufbuf={0,-1,IPC_NOWAIT};

if(index<0)

{

perror("index of array cannot equals a minus value!");

exit(1);

return (-1);

}

buf.sem_num=index;

if(semop (semid , & buf,1)==-1)

{

perror ("a wrong operation to semaphore occurred!");

exit(1);

return -1;

}

return 0;

}

/*V操作函数*/

intsem_v(intsemid, int index)

{

structsembufbuf={0,+1,IPC_NOWAIT};

if(index<0)

{

perror("index of array cannot equals a minus value!");

exit(1);

return (-1);

}

buf.sem_num=index;

if(semop (semid , & buf,1)==-1)

{

perror ("a wrong operation to semaphore occurred!");

exit(1);

return (-1);

}

return 0;

}

/*等待信号量为1函数*/

intwait_sem(intsemid, int index)

{

while(semctl(semid, index, GETVAL, 0)==0)

{

usleep(10000);

}

return 1;

}

/*删除信号集函数*/

intdelete_sem (intsemid)

{

return (semctl(semid, 0 , IPC_RMID));

}

/*获取指信号量的值*/

intget_sem_val (intsemid ,int index)

{

returnsemctl(semid, index, GETVAL, 0);

}

/*我的随机数生成器*/

intmy_random()

{

usleep(1000000); //延时函数,延时1秒,以便于生成不同的随机数

srand((unsigned)time(NULL)); //初始化随机数生成器

return (rand()); //调用随机数生成器生成并返回随机数

}

/*获取当前系统时间并靠右输出*/

voidprint_time()

{

time_t now; //实例化time_t结构

struct tm *timenow; //实例化tm结构指针

time(&now); //time函数读取现在的时间(国际标准时间非北京时间),然后传值给now

timenow=localtime(&now); //localtime函数把从time取得的时间now换算

成你电脑中的时间(就是你设置的地区)

printf("Time:%s\n",asctime(timenow)); //asctime函数把时间转换成字符,通过printf()函数靠右输出

}

/*顾客取票函数,取票成功,返回1,失败返回-1,,由于没有空座,顾客选择离开则返回0*/

intget_ticket(intsemid, char identifyLabel, int * ticket, int * flag)

{

intwait_num=0;

switch(identifyLabel)

{

case 'A':

if(get_sem_val(semid, INDEX_SIGNAL_SEAT) == 0)

{

if( (wait_num=my_random()%10)<5)

return 0; //返回0表示顾客选择离开

printf("目前没有空座位,但该顾客选择了等待。\n\n");

}

if(get_sem_val(semid, INDEX_SIGNAL_A) > 0) //检查,如果有空窗口,则直接取票,不用判断座位

{

*flag=0; //将标志为设为0,标示没有顾客在等待,不用排队

gotogoto_A; //跳转到直接取票

}

if( wait_sem(semid, INDEX_SIGNAL_SEAT) ) //如果没有空座,则等待空座

sem_p(semid, INDEX_SIGNAL_SEAT);

goto_A: if( wait_sem(semid, INDEX_MUTEX) ) //等待操作信号量释放

sem_p(semid, INDEX_MUTEX); //锁定操作信号量

*ticket=get_sem_val(semid, INDEX_SIGNAL_CUSTOMER) + 1; //分配票号(票号是根据当天的总顾客数排的)

wait_num = (signal_seat - get_sem_val(semid,INDEX_SIGNAL_SEAT) ) -1;

//获取当前等待的人数

printf("号码:A%03d,",*ticket);

if(wait_num==0 || *flag==0)

{

printf("当前没有顾客正在等待。\t"); //wait_num大于等于0或

者flag大于0,表示当前无人等待

print_time();

}

else

{

printf("有%d位顾客正在等待。\t",wait_num);

print_time();

}

printf("顾客A%03d正在等待办理业务。\t",*ticket);

print_time();

if(sem_v(semid, INDEX_SIGNAL_CUSTOMER) !=0) //记录目前办理过业务和等待办理业务的顾客总数

{

printf("对不起,V操作失败!");

exit(1);

return -1;

}

sem_v(semid, INDEX_MUTEX); //释放控制进程访问资源的信号量

break;

case 'B':

if(get_sem_val(semid, INDEX_SIGNAL_SEAT) == 0)

{

if( (wait_num=my_random()%10)<5)

return 0; //返回0表示顾客选择离开

printf("目前没有空座位,但该顾客选择了等待。\n\n");

}

if(get_sem_val(semid, INDEX_SIGNAL_B) > 0) //检查,如果有空窗口,则直接取票,不用判断座位

{

*flag=0; //将标志为设为0,标示没有顾客在等待,不用排队

gotogoto_B; //跳转到直接取票

}

if( wait_sem(semid, INDEX_SIGNAL_SEAT) ) //如果没有空座,则等待空座

sem_p(semid, INDEX_SIGNAL_SEAT);

goto_B: if( wait_sem(semid, INDEX_MUTEX) ) //等待操作信号量释放

sem_p(semid, INDEX_MUTEX); //锁定操作信号量

*ticket=get_sem_val(semid, INDEX_SIGNAL_CUSTOMER) + 1; //分配

票号(票号是根据当天的总顾客数排的)

wait_num = (signal_seat - get_sem_val(semid,INDEX_SIGNAL_SEAT) ) -1;

//获取当前等待的人数

printf("号码:B%03d,",*ticket);

if(wait_num==0 || *flag==0)

{

printf("当前没有顾客正在等待。\t"); //wait_num大于等于0或者flag大于0,表示当前无人等待

print_time();

}

else

{

printf("有%d位顾客正在等待。\t",wait_num);

print_time();

}

printf("顾客B%03d正在等待办理业务。\t",*ticket);

print_time();

if(sem_v(semid, INDEX_SIGNAL_CUSTOMER) !=0) //记录目前办理过业务和等待办理业务的顾客总数

{

printf("对不起,V操作失败!");

exit(1);

return -1;

}

sem_v(semid, INDEX_MUTEX); //释放控制进程访问资源的信号量

break;

case 'C':

if(get_sem_val(semid, INDEX_SIGNAL_SEAT) == 0)

{

if( (wait_num=my_random()%10)<5)

return 0; //返回0表示顾客选择离开

printf("目前没有空座位,但该顾客选择了等待。\n\n");

}

if(get_sem_val(semid, INDEX_SIGNAL_C) > 0) //检查,如果有空窗口,则直接取票,不用判断座位

{

*flag=0; //将标志为设为0,标示没有顾客在等待,不用排队

gotogoto_C; //跳转到直接取票

}

if( wait_sem(semid, INDEX_SIGNAL_SEAT) ) //如果没有空座,则等待空座

sem_p(semid, INDEX_SIGNAL_SEAT);

goto_C: if( wait_sem(semid, INDEX_MUTEX) ) //等待操作信号量释放sem_p(semid, INDEX_MUTEX); //锁定操作信号量

*ticket=get_sem_val(semid, INDEX_SIGNAL_CUSTOMER) + 1; //分配票号(票号是根据当天的总顾客数排的)

wait_num = (signal_seat - get_sem_val(semid,INDEX_SIGNAL_SEAT) ) -1;

//获取当前等待的人数

printf("号码:C%03d,",*ticket);

if(wait_num==0 || *flag==0)

{

printf("当前没有顾客正在等待。\t"); //wait_num大于等于0或者flag大于0,表示当前无人等待

print_time();

}

else

{

printf("有%d位顾客正在等待。\t",wait_num);

print_time();

}

printf("顾客C%03d正在等待办理业务。\t",*ticket);

print_time();

if(sem_v(semid, INDEX_SIGNAL_CUSTOMER) !=0) //记录目前办理过业务和等待办理业务的顾客总数

{

printf("对不起,V操作失败!");

exit(1);

return -1;

}

sem_v(semid, INDEX_MUTEX); //释放控制进程访问资源的信号量

break;

}

return 1;

}

/*顾客接受服务函数*/

void service(intsemid, char identifyLabel, int * ticket, int *flag)

{

intneed_time=0; //用于记录该顾客需要的服务时间

switch(identifyLabel)

{

case 'A':

if(wait_sem(semid, INDEX_SIGNAL_A)) //等待有空闲窗口

sem_p(semid, INDEX_SIGNAL_A); //走向窗口,即将接受服务if( wait_sem(semid, INDEX_MUTEX) ) //等待操作信号量释放

sem_p(semid, INDEX_MUTEX); //锁定操作信号量

printf("顾客A%03d开始在对私窗口办理业务。\t",*ticket);

print_time();

if(*flag==1) //如果该顾客在进入银行取票后等待了窗口,那么顾客开始办理业务时即走向了窗口,需要释放座位

sem_v(semid, INDEX_SIGNAL_SEAT);

sem_v(semid, INDEX_MUTEX); //释放控制进程访问资源的信号量

/*接受服务(服务时长为1分钟以内并且大于10秒的任意时间)*/

need_time=my_random()%50 + 10;

printf("该顾客需要的服务时长为:%d秒。\t", need_time);

print_time();

sleep(need_time); //将该顾客进程挂起need_time秒,模拟该顾客正在接受服务

if( wait_sem(semid, INDEX_MUTEX) ) //等待操作信号量释放

sem_p(semid, INDEX_MUTEX); //锁定操作信号量

printf("顾客A%03d业务办理完毕。\t",*ticket);

print_time();

sem_v(semid, INDEX_SIGNAL_A); //业务办理完成,离开窗口

sem_v(semid, INDEX_MUTEX); //释放控制进程访问资源的信号量

break;

case 'B':

if(wait_sem(semid, INDEX_SIGNAL_B)) //等待有空闲窗口

sem_p(semid, INDEX_SIGNAL_B); //走向窗口,即将接受服务if( wait_sem(semid, INDEX_MUTEX) ) //等待操作信号量释放

sem_p(semid, INDEX_MUTEX); //锁定操作信号量

printf("顾客B%03d开始在对公窗口办理业务。\t",*ticket);

print_time();

if(*flag==1) //如果该顾客在进入银行取票后等待了窗口,那么顾客开始办理业务时即走向了窗口,需要释放座位

sem_v(semid, INDEX_SIGNAL_SEAT);

sem_v(semid, INDEX_MUTEX); //释放控制进程访问资源的信号量

/*接受服务(服务时长为1分钟以内并且大于10秒的任意时间)*/

need_time=my_random()%50 + 10;

printf("该顾客需要的服务时长为:%d秒。\t", need_time);

print_time();

sleep(need_time); //将该顾客进程挂起need_time秒,模拟该顾客正在接受服务

if( wait_sem(semid, INDEX_MUTEX) ) //等待操作信号量释放

sem_p(semid, INDEX_MUTEX); //锁定操作信号量

printf("顾客B%03d业务办理完毕。\t",*ticket);

print_time();

sem_v(semid, INDEX_SIGNAL_B); //业务办理完成,离开窗口

sem_v(semid, INDEX_MUTEX); //释放控制进程访问资源的信号量

break;

case 'C':

if(wait_sem(semid, INDEX_SIGNAL_C)) //等待有空闲窗口

sem_p(semid, INDEX_SIGNAL_C); //走向窗口,即将接受服务if( wait_sem(semid, INDEX_MUTEX) ) //等待操作信号量释放

sem_p(semid, INDEX_MUTEX); //锁定操作信号量

printf("顾客C%03d开始在理财窗口办理业务。\t",*ticket);

print_time();

if(*flag==1) //如果该顾客在进入银行取票后等待了窗口,那么顾客开始办理业务时即走向了窗口,需要释放座位

sem_v(semid, INDEX_SIGNAL_SEAT);

sem_v(semid, INDEX_MUTEX); //释放控制进程访问资源的信号量

/*接受服务(服务时长为1分钟以内并且大于10秒的任意时间)*/

need_time=my_random()%50 + 10;

printf("该顾客需要的服务时长为:%d秒。\t", need_time);

print_time();

sleep(need_time); //将该顾客进程挂起need_time秒,模拟该顾客正在接受服务

if( wait_sem(semid, INDEX_MUTEX) ) //等待操作信号量释放

sem_p(semid, INDEX_MUTEX); //锁定操作信号量

printf("顾客C%03d业务办理完毕。\t",*ticket);

print_time();

sem_v(semid, INDEX_SIGNAL_C); //业务办理完成,离开窗口

sem_v(semid, INDEX_MUTEX); //释放控制进程访问资源的信号量

break;

}

}

service.c文件

#include

#include"sharemem.h"

int main()

{

intinit_val[]={mutex, signal_seat, signal_customer, signal_A, signal_B, signal_C}; //信号集初始化值数组

intsemid, shmid; //信号集标识符semid和共享内存区标识符shmid

char *shmaddr; //共享内存附加点

intbeforenumber=0, afternumber=0, temp=0;

/*申请创建共享内存空间,创建信号集(创建的同时已经对信号集进行了初始化)*/ if((shmid = createshm (".", 'm', SHM_SIZE))==-1)

{

exit(1);

}

/*将共享内存区附加到进程的地址空间*/

if((shmaddr = shmat (shmid, (char *)0, 0)) == (char *)-1)

{

exit(1);

}

/*在共享内存空间中创建信号集*/

if((semid = createsem (".", 's', signal_count, init_val)) == -1)

{

exit(1);

}

/*循环输出客流情况*/

while(1)

{

afternumber= signal_seat - get_sem_val(semid, INDEX_SIGNAL_SEAT);

//取得当前在座的人数

temp=afternumber-beforenumber; //计算前一次查看时与这次查看时的人数差

if(temp>0)

{

printf("新增顾客%d位。\t",temp);

print_time();

}

else if(temp<0)

{

temp=abs(temp);

printf("有%d位顾客办完业务并离开。\t",temp);

print_time();

}

beforenumber = afternumber;

usleep(100); //每隔一定时间进行一次查询输出

}

return 0;

}

customer.c文件

#include"sharemem.h"

int main()

{

intsemid, shmid; //信号集标识符semid和共享内存区标识符shmid

char *shmaddr; //共享内存附加点

char identifyLabel; //标志该进程(顾客)是需要那种服务(对私:A;对公:B;理财:D)

int ticket, flag=1; //顾客的票号和用于标示该顾客需不需要排队的变量,flag 值为1表示需要排队等待,值为0表示不需要排队

/*根据随机数,按照6:2:2的比例确定顾客需要的服务类型*/

intrandomNumber=((my_random())%10); //产生随机数

if(randomNumber>=0 &&randomNumber<=5)

identifyLabel='A';

else if(randomNumber>=6 &&randomNumber<=7)

identifyLabel='B';

else

identifyLabel='C';

printf("新增一位%c类顾客。\t",identifyLabel); //输出新增顾客的提示print_time();

/*打开共享内存中的信号集*/

if((semid = opensem (".", 's')) == -1)

{

printf("对不起,打开共享内存中的信号集失败!");

exit(1);

}

/*顾客取票*/

if(get_ticket(semid, identifyLabel, &ticket, &flag) == 0)

{

printf("由于没有空座位,该顾客选择了离开。\t"); //输出新增顾客离开的提示

print_time();

return 1;

}

/*顾客办理业务*/

service(semid, identifyLabel, &ticket, &flag);

return 0;

}

deletesem.c文件

#include"sharemem.h"

/*该文件用于删除信号集*/

int main()

{

intsemid; //信号集标识符semid

if((semid = opensem (".", 's')) == -1) //打开共享内存中的信号集{

printf("对不起,打开共享内存中的信号集失败!");

exit(1);

}

delete_sem (semid);

}

Makefille文件

CC=gcc

program=$(ser) $(cus) $(del)

ser=s

cus=c

del=d

source_ser=service.c

source_cus=customer.c

source_del=deletesem.c

head=sharemem

.PHONY:all

all:$(program)

$(ser):$(head).h

$(CC) -o $(ser) $(source_ser)

$(cus):$(head).h

$(CC) -o $(cus) $(source_cus)

$(del):$(head).h

$(CC) -o $(del) $(source_del)

.PHONY:clean

clean:

-rm $(program)

八、实验结果截图

排队叫号系统设计说明

单片机系统 课程设计 成绩评定表 设计课题:排队叫号系统设计 学院名称:电气工程学院 专业班级:自动F1207 学生:康 学号: 2 指导教师:周刚 设计地点: 31-517 设计时间:2014-12-29~2015-01-09

单片机系统 课程设计 课程设计名称:排队叫号系统设计 专业班级:自动F1207 学生姓名:康 学号: 2 指导教师:周刚 课程设计地点:31-517 课程设计时间:2014-12-29~2015-01-09 单片机系统课程设计任务书

1、该系统是一款自动的排队叫号系统,以排队抽号顺序为核心,排队者利用客户端抽号,工作人员利用叫号端叫号; 2、通过显示器及时显示当前所叫号数,语音提示,提醒排队者接受服务; 3、客户及时了解排队信息,可以通过显示器显示队列中排在其前面的顾客数,通过合理的程序结构来执行排队抽号; 排队叫号系统主要由系统主从机、键盘电路、显示电路、语音电路等部分构成。 目录

1绪论 (6) 1.1课题背景 (6) 1.2课题研究的目的和意义 (6) 1.3课题研究现状 (7) 1.4设计目的及功能 (7) 2系统需求分析与整体设计 (7) 2.1确定的方案 (7) 2.2系统原理图 (8) 2.3整体设计方案 (8) 3系统硬件设计 (10) 3.1主电路硬件设计 (11) 3.2时钟电路 (12) 3.3键盘电路 (13) 3.4LED显示电路 (14) 3.5LCD显示电路 (15) 3.6语音提示电路 (17) 4系统软件设计 (20) 4.1主控软件设计 (20) 4.2LED显示程序设计 (21) 4.3LCD显示程序设计 (22) 4.4声音系统程序设计 (23) 5系统仿真实验 (23) 6总结 (25) 7参考文献 (26) 附录1实物图 (26) 附录2系统原理图 (27) 附录3C51源程序 (28) 1 绪论 1.1课题背景

操作系统习题答案

内存1通常情况下,在下列存储管理方式中,()支持多道程序设计、管理最简单,但存储碎片多;()使内存碎片尽可能少,而且使内存利用率最高。 Ⅰ.段式;Ⅱ.页式;Ⅲ.段页式;Ⅳ.固定分区;Ⅴ.可变分区 正确答案:Ⅳ;Ⅰ 2为使虚存系统有效地发挥其预期的作用,所运行的程序应具有的特性是()。 正确答案:该程序应具有较好的局部性(Locality) 3提高内存利用率主要是通过内存分配功能实现的,内存分配的基本任务是为每道程序()。使每道程序能在不受干扰的环境下运行,主要是通过()功能实现的。Ⅰ.分配内存;Ⅱ.内存保护;Ⅲ.地址映射;Ⅳ.对换;Ⅴ.内存扩充;Ⅵ.逻辑地址到物理地址的变换;Ⅶ.内存到外存间交换;Ⅷ.允许用户程序的地址空间大于内存空间。 正确答案:Ⅰ;Ⅱ 4适合多道程序运行的存储管理中,存储保护是 正确答案:为了防止各道作业相互干扰 5下面哪种内存管理方法有利于程序的动态链接()? 正确答案:分段存储管理

6在请求分页系统的页表增加了若干项,其中状态位供()参考。 正确答案:程序访问 7从下面关于请求分段存储管理的叙述中,选出一条正确的叙述()。 正确答案:分段的尺寸受内存空间的限制,但作业总的尺寸不受内存空间的限制8虚拟存储器的特征是基于()。 正确答案:局部性原理 9实现虚拟存储器最关键的技术是()。 正确答案:请求调页(段) 10“抖动”现象的发生是由()引起的。 正确答案:置换算法选择不当 11 在请求分页系统的页表增加了若干项,其中修改位供()参考。 正确答案:换出页面 12 虚拟存储器是正确答案:程序访问比内存更大的地址空间 13测得某个请求调页的计算机系统部分状态数据为:CPU利用率20%,用于对换空间的硬盘的利用率97.7%,其他设备的利用率5%。由此断定系统出现异常。此种情况下()能提高CPU的利用率。

银行叫号系统设计..

摘要 排队叫号管理系统是针对银行、工商、税务、通讯、政府机构等部门的大厅工作流程设计的,是利用电脑的科学管理客户排队的系统,很好地解决了客户在服务机构办理业务时所遇到的各种排队、拥挤和混乱现象,为客户办理业务带来莫大的方便和愉悦。该题研究的目的是研制一款无人排队的排队叫号机,它主要由主控制器、键盘、显示电路、蜂鸣器电路等部分构成。系统利用单片机进行控制,通过串行通信方式传输处理数据;通过按键取号,在LCD1602上显示排队的号码以及当前正在等待的人数;通过按键叫号,在LCD1602上显示叫到的号码,由扬声器发出声音提示客户。同时免除了令客户不舒服的站立式排队,这种现代化的高科技产品彻底解决了银行普遍存在的站立等候,服务无序的问题,深化并完善了服务的质量。本系统采用单片机进行控制,利用LCD1602显示,蜂鸣器鸣叫提示的人机交互界面,模拟排队管理系统,科学地处理各种排队情况。操作简便,控制灵活,显示清晰,制作成本低,性价比较高。 关键词STC89C52 LCD1602 蜂鸣器

目录 1 系统方案论证 (1) 1.1 设计要求 (1) 1.2 单片机芯片的选择方案和论证 (1) 1.3 显示模块选择方案和论证 (1) 1.4 系统方案设计 (2) 2 系统硬件设计 (3) 2.1 系统总电路 (3) 2.2 单片机处理部分设计 (3) 2.3 显示电路部分 (4) 2.4 时钟振荡电路 (5) 2.5 复位电路 (6) 2.6 叫号电路 (6) 2.7 按键电路 (7) 3 系统软件设计 (8) 4系统测试 (9) 5 小结 (10) 参考文献 (11) 附录 (12) 源程序: (12)

排队叫号系统技术方案

技术方案: 控制主机:凌动525主板;内存:1G;硬盘:500G;10/100以太网接口;电源240W;采用WINDOWS XP操作系统。 液晶显示器:三星 17″,1024*768分辨率以上,亮度≥250Nits,对比度≥600:1,光线自适应功能,响应速度≤8毫秒。 表波触摸屏:17″,可感知100G的触摸力、可承受5000万次以上的单点触摸、小于2mm定位精度、低于16毫秒的触摸响应时间、符合CE/FCC安全标准。 打印机:EPSON532高速自动切纸热敏打印机,80mm纸宽自动切纸,切纸刀寿命100万次,打印头寿命:100KM 打印速度:120mm/秒。 硬件功能: 1、液晶显示用户取号界面,点击相应业务名称打印对应排队票号。 2、票面的格式及内容可由用户自己编辑设置。 3、取号界面业务类型可任意修改。 4、单个打印票面的长度可以通过系统预先设定。 5、打印号码范围为0000---9999,支持按不同业务设置号段。 6、支持本地及后台控制两种运行模式。 7、支持业务类型可达128种。 8、通过CANBUS连接终端,支持窗口不小于128个。 9、可支持多种功能接口(网络接口、磁卡接口、显示接口)。 10、兼容有线、无线两种工作模式。 11、界面可根据用户需求设计面板及号票票面。 12、支持多台取号机共同使用。

综合屏 窗口屏窗口屏 评价器呼叫器 2.7软件平台 2.7.1运行环境 欧蓝排队产品,其软件运行环境为: 通讯控制器 报表打印 机 电脑 语音系统 立 式 取 号 机

Microsoft Windows9X/Windows2000/WindowsXP Microsoft Office2000/OfficeXP 2.7.2软件结构 3.服务流程 3.1服务流程 以下是欧蓝排队系统流程的一个简例(见下页): 票号分配处理 呼叫器驱动 窗显驱动 主显驱动 票号机驱动 呼叫器请求处理 排队服务监控 队列调度 通讯转发

1下列操作系统中

1.下列操作系统中,_B OR_C____不属于多用户操作系统 A.UNIX B.WINDOWS 95 C.IBM OS/2 D.WINDOWS NT 2.在MS-DOS6.22中,6的含义是__A__. A.MS-DOS的主版本号为6 B.MS-DOS的次版本号为6 C.MS-DOS的大小为6 D.MS-DOS第6代 3.计算机病毒是一种___C____ A.生物体B.化学物C.程序D.幻觉 4.从一个目录转向另一个目录,应使用的命令是__B____ A.MD B.CD C.RD D.DEL 5.计算机使用的数据中,字符编码通常采用__B____ A.BCD码B.扩展的ASCII码C.国标码D.区位码 6.以紧缩格式显示A盘上的所有文件的文件名清单,应使用的命令是__B_____ A.DIR A:\*.*/A/S B.DIR A:\*.*/S/W C.DIR A:\*.*/P/S D.DIR A:\*.*/P/W 7.冯.诺依曼式的计算机的核心思想是____C_____ A.二进制B.程序C.程序存储原理D.数据存储 8.MS-DOS中,__ B ___是DOS内核与外层模块的接口。 A.DOS引导记录B.IO.SYS C.MSDOS.SYS D.https://www.360docs.net/doc/b212328005.html, 9.计算机中MHZ是用来标识__B____的单位 A.运算速度B.主频C.字长D.存储容量 10.在Windows 95的安装过程中,系统将给出四种安装的选择形式,其中_D___不是系统提供的安装形式。 A.典型安装B.便携安装C.定制安装D.选择安装 11. 微型机算机中,常用于存放固定的程序和数据的是__B____ A.随机存储器B.只读存储器C.顺序存储器D.高速缓冲存储器 12.在Windows 95中,剪贴板不暂存_D____。 A.文字B.符号C.声音和图像D.DOS环境下复制或剪切的内容 13. 和软盘比较,硬盘所具备的优点的是__A____ A.存储量大,存取速度快 B.硬盘固定在机箱中,携带不便 C.属于微机的外存 D.可被用来进行读写操作 14.Windows 95中的“MS-DOS方式”可以是全屏幕方式,也可以是窗口方式,通过__D____键可以在“全屏幕方式”和“窗口方式”之间转换。 A.Ctrl+Esc B.Ctrl+Enter C.Alt+Esc D.Alt+Enter 15. 在计算机硬件的五个组成部分中,唯一一个能向控制器发送数据流的是_D_____ A.输入设备B.输出设备C.运算器D.存储器 16.启动资源管理器的方法很多,以下不能启动资源管理器的是___D___。 A.鼠标右键单击“开始”菜单 B.用鼠标右键单击“我的电脑”图标

排队叫号系统设计方案

“倍康”排队叫号系统 方 案 书 倍康宜众信息技术 倍康信息科技

版本管理:

目录 一、项目背景及现状 (5) 1.1背景 (5) 1.2我院概况 (5) 二、方案概述 (6) 2.1方案建设目标 (6) 2.2方案建设思路 (7) 2.3方案建设价值 (9) 2.4方案建设前后效果图对比 (11) 三、倍康排队叫号系统特性 (12) 四、方案容介绍 (13) 4.1倍康排队叫号系统介绍 (13) 4.1.1门诊子系统 (14) 4.1.2医技子系统 (16) 4.1.3药房子系统 (17) 4.1.4后台管理子系统 (17) 4.1.5 整体功能清单 (19) 4.2排队叫号硬件模块介绍 (21) 4.2.1显示屏 (22) 4.2.2扬声器 (23) 4.2.3功放设备 (23) 4.2.4 呼叫器 (23) 4.2.5签到设备 (23) 4.2.6 电子录入设备 (24) 4.3系统工作流程 (25) 4.4系统布局结构 (26) 五、方案实施 (27) 5.1方案实施流程图 (27) 5.1.1 项目准备阶段 (27) 5.1.2 项目实施阶段 (28) 5.1.3 项目验收阶段 (29) 5.1.4 项目支撑阶段 (30) 六、服务支撑体系 (30)

6.1软件服务承诺 (30) 6.2维护单位联系方式 (31) 6.3培训计划 (31) 6.3.1 培训目的 (31) 6.3.2 培训对象与容 (31) 6.3.3 培训方式安排 (32)

一、项目背景及现状 1.1背景 ●随着科学技术的发展和进步,信息化、数字化和网络化的不断推 广和应用,医院的工作方式也逐渐变化,医院大楼的管理和运行方式不断进步,分诊排队叫号系统已成为现代化医院不可或缺的一个重要组成部分。 ●分诊排队叫号系统发展到今天,已经不再是简单的医患之间沟通 的工具,在实际应用中应兼顾到医院的整体设计,极有特色又具有良好实用性、装饰性的设备将得到越来越广泛的应用。 ●与此同时,我国医疗条件的匮乏与患者日益增多的矛盾越来越突 出,医院“看病难”、医院拥挤、无排队等现状也日益明显,如何把患者做好分流导诊、有序排队就诊,缩短排队时间,服务好患者,我们任重道远。 ●作为一家致力于医院就诊流程优化、排队叫号、解决患者“看病 难”问题的医疗服务平台公司,我们倍康公司深耕细作,日积月累,已经拥有了一套丰富、完整的整体解决方案。 1.2我院概况

银行排队叫号系统的设计毕业论文

银行排队叫号系统的设计 毕业论文 目录 摘要.............................................................. I ABSTRACT .......................................................... II 1 绪论.. (1) 1.1 课题来源 (1) 1.2 国外发展状况 (1) 1.3 有线系统与无线系统 (3) 1.4 发展前景 (4) 1.5 系统的设计目的 (4) 2 系统的需求分析 (5) 2.1 系统功能需求 (5) 2.2 非功能性需求 (5) 3 系统总体设计 (7) 3.1 方案论证 (7) 3.1.1 方案要求 (7) 3.1.2 方案确立 (7) 3.2 方案原理 (8)

3.3 异步通信 (9) 3.4 系统的体系结构 (10) 3.5 系统的软件结构 (10) 3.6 系统的基本功能和工作原理 (11) 3.6.1 排队系统的基本功能 (11) 3.6.2 工作原理 (11) 3.7 排队系统工作流程 (12) 3.7.1 数据处理流程 (12) 3.7.2 客户工作流程 (13) 3.7.3 工作人员工作流程 (13) 3.7.4 系统工作流程 (13) 3.8 主要应用器件及技术原理 (14) 3.8.1 微处理器介绍 (14) 3.8.2 液晶LCD1602的介绍 (16) 3.8.3 硬件概要设计 (22) 3.8.4 软件概要设计 (23) 4 系统硬件设计 (25) 4.1 主要电路设计 (25) 4.1.1 主机部分电路 (25) 4.1.2 从机部分电路 (26) 4.2 功能部分电路设计 (26) 4.2.1 单片机最小系统电路 (26)

排队叫号系统方案

排队系统 设 计 方 案 燕大正洋电子有限公司 2007年四月

排队系统方案 一、系统简介 目前,在以营业大厅为代表的窗口行业,大量客户的拥挤排队已成为了这些企事业单位改善服务品质、提升营业形象的主要障碍。排队(叫号)系统的使用将成为改变这种状况的有力手段。排队系统完全模拟了人群排队全过程,通过取票进队、排队等待、叫号服务等功能,代替了人们站队的辛苦,把来访者排队等待的烦恼变成一段难得的休闲时光,使客户拥有了一个自由的空间和一份美好的心情。 1、某营业厅需采用排队系统管理。具体如下: ***在营业厅内设计1台发号主机及1台滚动点阵双行主显示屏或数码滚动双行主显示屏; ***每个营业点设1台叫号机及1个数码窗口显示屏或1台点阵窗口显示屏 ***若采用电脑管理,需增配相应软件 2、排队系统可以通过排队叫号,显示系统(大屏幕技术、流媒体技术、电视墙)、 语音系统,为用户提供新一代的宣传媒体和广告媒体的运行平台,同时显示新产品发布、新业务介绍、调查结果显示。 3、系统器材组成: 发号主机PD-50-88、叫号机PD-50-30(可带IC/ID卡)、点阵滚动双行主显示屏PD-50-32H或数码滚动双行主显示屏PD-50-32、数码窗口显示屏PD-50-31或点阵窗口显示屏PD-50-31H、中继分线盒PD-50-08、开关电源PD-50-6A、打印纸PD-50-71、统计软件PD-50-81

二、排队等待流程

三、系统的基本功能及技术参数 1、发号主机(PD-50-88)功能 ***发号主机:含面板,支架,主控模块,打印模块等; ***支架采用全模具成型制造,外形美观、大方; ***主控模块有自检功能,可自动检查、判别显示故障类别;停电后能自动记忆全部资料,来电时不影响系统工作; ***打印模块含中、英文字库,采用韩国三星打印机机芯,打印号票清晰,内容可以编辑。***安装简捷,只需一条八芯网络总线与外部配置相连; ***多对列主机可同时服务8个队列、管理80个工作窗口。每天第一次开机时,系统自动复位清零,重新排队; ***另配统计软件,根据需要可打印多种报表;

毕业论文-银行排队叫号系统的设计

毕业论文-银行排队叫号系统的设计

本科毕业设计(论文) 题目银行排队叫号系统的设计 学生姓名陈福秀 专业班级 09 电子科学与技术1班 学号 200931002 院(系)电气工程学院 指导教师(职称) 王继红(讲师) 完成时间 2013 年05月18日 郑州科技学院电气工程学院

二○一三年五月

郑州科技学院毕业设计(论文)任务书 题目银行排队叫号系统的设计 专业 09电科学号 200931002 姓名陈福秀 一、主要内容 收集,整理与课题有关技术与产品资料,确定系统方案,设计电路原理图,绘制电路板,编写应用程序,进行焊接调试并撰写毕业论文。 二、基本要求 1. 检索与课题有关的资料,提出自己的设计方案,方案应具有可行性、经 济性;写出开题报告。 2. 编写论文初稿。 3. 在的初稿基础上撰写毕业论文。 4. 毕业论文的撰写,要求认真工整、条理清晰、正确标准。 三、主要参考资料 1. 张毅坤编.单片微型计算机原理及其应用[M] 西安:西安电子科技大学出版社1998 2. 金篆芷.王明时现代传感器技术[M].北京:电子工业出版社1995 3. 吕俊芳. 传感器接口与检测仪器电路[M].北京:北京航空航天出版社1994 完成期限: 指导教师签名: 专业负责人签名: 2013年5月18日

中文摘要 摘要 本文设计了一套排队叫号系统。该系统是以排队抽号顺序为核心,客户利用客户端抽号,工作人员利用叫号端叫号;通过显示器及时显示当前所叫号数,客户及时了解排队信息,通过合理的程序结构来执行排队抽号。以提高排队等待效率,解决排队秩序混乱,前拥后挤等现象,实现排队自动化,规范化。通过该系统的使用,客户不必为排队浪费大量精力,便于管理排队秩序,同时适应信息时代管理数字化的要求,提高服务水平与质量。 排队叫号系统是针对银行、工商、税务、通讯、政府机构等部门的大厅工作流程设计的,是利用电脑的科学管理客户排队的系统,能够很好地解决客户在服务机构办理业务时所遇到的各种排队、拥挤和混乱现象,为客户办理业务带来莫大的方便和愉悦。本课题研究的是一款无人排队的排队叫号系统,它主要由系统主从机、键盘、显示电路、蜂鸣器电路等部分构成。系统利用AT89C51 单片机进行控制,通过串行通信方式传输处理数据;通过按键取号,在LCD1602 上显示排队的号码以及当前正在等待的人数;通过按键叫号,在LCD1602 上显示叫到的号码,由蜂鸣器发出声音提示客户。这种现代化的高科技产品彻底解决了银行、工商、税务、通讯、政府机构等部门的服务大厅普遍存在的站立等候、服务无序的问题,同时免除了令客户不舒服的站立式排队,深化完善了服务的质量。本系统采用AT89C51 单片机进行控制,利用LCD1602 显示,蜂鸣器鸣叫提示的人机交互界面,模拟排队管理系统,科学的处理各种排队情况,具有操作简便、控制灵活、显示清晰、制作成本低、性价比较高等特点。 关键词:AT89C51单片机LCD1602排队叫号系统开发

操作系统复习题(答案)

第二章:操作系统复习题 单项选择 1.对操作系统的说法中错误的是______ A.按运行环境将操作系统分为实时操作系统和分时操作系统和批处理操作系统 B.分时操作系统具有多个终端 C.实时操作系统是对外来信号及时做出反应的操作系统 D.批处理操作系统指利用CPU的空余时间处理成批的作业 2.MS-DOS是基于____的操作系统. A.多用户多任务B.单用户多任务 C.单用户单任务D.多用户单任务 3.以下配置中,_____不是安装Windows 98硬件的最低要求。 A.Intel 80486DX、或PentiumCPU的计算机 B.至少16M以上的RAM C.至少150M的硬盘空间 D.标准VGA(或更高)显示卡 4.通常情况下,Windows 98用户可以通过______,从弹出的菜单中选取相应命令来创建快捷方式。 A.单击鼠标左键B.单击鼠标右键 C.双击鼠标左键D.双击鼠标右键 5.下列有关在Windows 98下查找文件或文件夹的说法,不正确的是______。 A.可以根据文件的位置进行查找 B.可以根据文件的只读属性进行查找 C.可以根据文件的内容进行查找 D.可以根据文件的修改日期进行查找 6.Windows 98提供了各种系统工具来帮助用户管理系统,其中的__可以检查、诊断和修复各种类型的磁盘损坏的错误。A.磁盘扫描程序B.磁盘空间管理C.磁盘碎片整理程序D.备份程序 7.在Windows 98资源管理器中,要查看磁盘的总容量、已用空间和可用空间等磁盘信息,通常可选择__菜单下属性功能。A.文件B.编辑C.查看D.工具 8.在Windows98中,当桌面上有多个窗口时,__________是当前窗口。 A.可以有多个窗口 B.只有一个固定窗口 C.被其它窗口盖住的窗口 D.一个标题栏的颜色与众不同的窗口 9.双击扩展名为.A VI的文件(音视频文件)后,Windows98将打开__________窗口。 A.CD播放器 B.媒体播放器 C.声音-录象机 D.附件

排队叫号系统工程设计方案

排队叫号系统工程方案 1.工程分析 1.1近年来,随着办证服务种类的增加及服务量的增大,排队等待以成为亟待解决的问题。嘈杂、无序的排队,长时间站立等待,不仅使顾客的心情变的烦躁不安,同时也使服务人员的办公效率受到影响,整个营业场所变的混乱,严重损害了的服务形象。 1.2为了提高窗口的服务质量,树立良好的企业形象,经过充分市场调查、技术研究后,急需一种能有效实现完全模拟人群排队过程,通过取票进队、休息等候、叫号服务等功能,诠释了人性化的服务理念,使嘈杂混乱变的轻松有序客户心情轻松、服务效率提高的排队叫号系统。 1.3排队叫号系统能让办理业务的群众进入大厅,在排队机上取号后,坐在座椅上等候即可,智能排队系统将通过语音自动按顺序叫号。原来不同业务在不同窗口办理,办理业务的群众可能要排几次队,启用智能排队系统后,所有业务一站式办理,排一次队就行了。 1.4排队机、电子显示屏通过联动能随时“提醒”门外等候的市民,排队机屏幕上有本厅的各项业务的选项,前来办事者只需按自己办事的类型触摸按钮,机器的“口”里就会吐出一张排号单,机器的“眼睛”同时会显示出正在等候的人数和预计等候的时间。 1.5所建排队叫号系统应操作简单,维护方便,符合用户使用习惯。 2.建设目标 充分利用计算机网络、多媒体、数据库、数字通信等先进技术构筑的排队叫号平台,实现智能排队自动化管理系统。 采用统一的网络协议和接口标准:选用当前流行的TCP/IP协议。 3.系统设计 根据大厅功能需求的具体情况,我们排队叫号系统技术。

3.1系统原理图1

3.2系统原理图(仅供参考)2 3.3设备选型 1、排队管理机(LB-81-16) 产品性能 ●主机支架成型制造,外形美观、大方 ●主机界面采用17英寸大屏幕液晶显示器 ●整个系统由电脑和软件控制;软件直接控制叫号系统、显示系统、语音系统及号票打印;专业开发,界面直观,操作简单 ●系统安装简捷,电脑和打印机内置安装 ●直接热敏行式打印,打印号票清晰,号票内容可以编辑 ●号票上有呼叫号码、办理的队列业务名称、当前等待人数、取票时间等信息,系统根据该号码代替顾客自动排成队列。 ●多种出票方式,可使用VIP卡、银行卡、手触发号主机主界面上图形按钮出票 ●触摸屏有线排队发号主机可同时服务99个队列、80个工作窗口。 ●队列默认9个队列,可根据要求进行增减

2017年10月自考操作系统02326真题及答案

2017 年 10 月高等教育自学考试全国统一命题考试 操作系统试卷 ( 课程代码 02326) 本试卷共 6 页,满分 100 分,考试时间150 分钟。 考生答题注意事项: 1·本卷所有试题必须在答题卡上作答。答在试卷上无效,试卷空白处和背面均 可作草稿纸。 2·第一部分为选择题。必须对应试卷上的题号使用 2B 铅笔将“答题卡”的相应代码 涂黑。 3·第二部分为非选择题。必须注明大、小题号,使用0.5 毫米黑色字迹签字笔作答。 4.合理安排答题空间,超出答题区域无效。 第一部分选择题 一、单项选择题:本大题共 20 小题,每小题 1 分,共 20 分。在每小题列出的备选项 中只有一项是符合题目要求的。请将其选出。 1·批处理操作系统按照用户预先规定好的步骤控制作业的执行,无须人为干预,实现了计算机操作的 A·网络化B.智能化C.实时化 D .自动化 2.下列不是输入输出设备的是 A·磁盘B.键盘C.鼠标 D .显示器 3.主存储器的编址单位是 A·字节B.字C.块 D .比特 4.下列关于用户程序与系统调用之闯的关系,正确的是 A.系统调用是用户程序的一部分 B.系统调用程序在目态下执行,而用户程序在管态下执行,二者不能互相调用 C.系统调用结束后需要通过访管指令返回到用户程序 D.用户程序可以通过访管指令调用系统调用程序 5.进程调度主要负责的工作是 A. 选一作业进入内存B .选一进程占用 CPU C. 建立一进程D.撤销一进程 6.进程控制块是描述进程状态和特性的数据结构,一个进程 A.可以有多个进程控制块B.可以和其他进程共用一个进程控制块 C.可以没有进程控制块D.只能有惟一的进程控制块 7.终端用户的注册过程就是对终端作业的 A.作业调度B.进程调度C.中级调度D.内存调度 8.下列进程调度算法中,可能会出现进程长期得不到调度的情况是 A .抢占式动态优先权法B.抢占式静态优先权法 C .时间片轮转调度算法D.非抢占式动态优先权法 9.在计算机存储体系中,处理器不能直接访问的是 A .寄存器B.主存储器

操作系统期末试题加答案

1. 在分时系统中,一个进程用完给它的时间片后,其状态变为( )。(1分) A.就绪 B.等待 C.运行 D.由用户设定 ★标准答案:A 2. 下列算法中用于磁盘移臂调度的是( ) (1分) A.时间片轮转法 B.LRU算法 C.最短寻找时间优先算法 D.优先级高者优先算法 ★标准答案:C 3. 操作系统的主要作用是()。(1分) A.管理设备 B.提供操作命令 C.管理文件 D.为用户提供使用计算机的接口,管理计算机的资源 ★标准答案:D 4. 在操作系统中,进程的最基本的特征是( )。(1分) A.动态性和并发性 B.顺序性和可再现性 C.与程序的对应性 D.执行过程的封闭性 ★标准答案:A 5. 下列各项步骤中,哪一个不是创建进程所必须的步骤()。(1分) A.建立一个进程控制块PCB B.由CPU调度程序为进程调度CPU C.为进程分配内存等必要的资源 D.将PCB链入进程就绪队列

★标准答案:B 6. 进程的组成部分中()是进程存在的唯一标志。(1分) A.PCB B.数据集合 C.共享程序 D.非共享程序 ★标准答案:A 7. 一个具有独立功能的程序占CPU直到得到最终结果的过程称为程序的顺序执行,它具有如下特点:顺序性、( )和可再现性。(1分) A.封闭性 B.动态性 C.开发性 D.异步性 ★标准答案:A 8. 可以通过破坏四个必要条件的一个或多个来预防死锁,但破坏()是不现实的。(1分) A.互斥 B.循环等待 C.请求和保持 D.不剥夺 ★标准答案:A 9. 某进程由于需要从磁盘上读入数据而处于阻塞状态。当系统完成了所需的读盘操作后,此时该进程的状态将()。(1分) A.从就绪变为运行 B.从运行变为就绪 C.从运行变为阻塞 D.从阻塞变为就绪 ★标准答案:D 10. 从下列关于进程的描述中,找出描述正确的一项是( ) (1分) A.时间片越小,则分时效率越高

排队叫号系统建设方案

第1章. 项目建设背景 排队叫号系统采用嵌入式设计,将排队叫号功能内嵌到各门诊工作站,实现分诊台、医生站、药房发药窗口、收费系统之间实时就诊数据传输,优化病人就诊流程,以“信息跑代替病人跑”的方式,提高门诊整体运作效率,缩短病人就诊时间。 系统以排号的形式,避免了病人长时间等待、漏诊、诊室拥挤、诊室就诊人数不均、发药窗口排长队等问题,真正解决长期以来困扰医院的“三长一短”问题,为病人和医生共同营造了一个人性化、舒适的就诊环境。 1.1.医院就诊环境的现状 随着医疗改革的深入,就诊人群量不断的提高,导致了医院“三长一短”的问题日趋严重化,就诊室拥堵、就诊室外、药房取药窗口排着长长的队伍、病人焦急的等待但是医生受到了很强的环境干扰,无法有序的开展工作。在这样的环境下,医患双方犹如一根绷紧的炫,任何小摩擦就会引起不必要的纠纷。 医院就诊环境的问题可总结为以下几种: ◆排队等待时间长,导致病人情绪焦躁 ◆诊治时间短,容易出现误诊 ◆医生接诊量不均衡,导致部分医生超负荷工作,影响就诊效果 ◆就诊过程复杂,病人需在门诊各部门间多次往返,产生强烈不满 就诊高峰期,无良好的就诊次序管理办法,导致门诊次序混乱 1.2.排队叫号系统优势 ?降低病人等待时间 1.复诊病人可直接持卡至分诊台取号,分诊护士将病人安排至候诊人数较少的诊室,病人只需在休息区等待医生叫号。 2.医生诊结后,如病人账户余额足够则处方直接发送至药房,摆药人员可提前进行摆药,极大减少了病人等待取药的时间。病人到药房取号窗口打印取药

凭条后,在休息区等待叫号取药。 3.医保病人或账户余额不足的病人,需先至收费窗口结算,结算发票上直接打印出取药单号,病人可直接至相应发药窗口凭发票取药。 ?优化医生诊治环境 1.液晶屏及语音叫号的模式,让候诊病人在休息区等待医生叫号,实现了“一对一就诊”的良好诊室环境,避免病人及医生受环境干扰而影响就诊效果。2.分诊台分流就诊人群,平衡各诊室医生接诊量,避免医生因为负荷不均匀而长时间处于超负荷工作状态。 ?提高药房工作效率 由排队取号替代了原先刷卡摆药的模式,在扣费后处方即刻发送至药房,摆药人员在病人还未到达取药窗口即可提前摆药。同时,凭取药单取药的形式减少了发药人员的操作麻烦,也进一步提高了整个发药的效率。 1.3.多功能型分诊台的构建 排队叫号系统,不仅以信息化手段替代分诊台旧模式,提高门诊整体就诊效率。在此基础上将就诊人群分为三类:普通、优特、预约。使就诊排队更显灵活性、人性化。 普通:普通就诊病人,正常取号后系统将其分配进候诊队列。 优特:如遇特殊情况需让病人优先诊治的,病人取得优特号后护士可将其插入到候诊队列的最前位。 预约:可允许病人先行至医院或电话预约就诊,取得预约号后,待开诊日就诊时护士视实际情况安排其排队位置。 排队叫号系统另开发了在线消息功能模块,通过该功能的应用,护士在不离开导诊台的情况下,能与各医生站保持联系,及时与医生交流处理各种就诊过程中发生的特殊情况。

行政大厅、银行排队叫号系统

行政大厅、银行排队叫号系统 行政大厅、银行排队叫号系统是指在工商、税务、办事大厅,交通违章处理中心、银行等场所所使用的智能化排队呼叫系统,系统能兼容网上预约,预约人员根据预约时间到办事大厅的取号机上取号,系统还具有现场取号功能。系统能够将预约人员和现场取号人员添加到排队呼叫队列并进行有序的呼叫,呼叫时有语音播报,并且液晶电视屏(LED屏)主屏上显示详细的呼叫提示信息,各工作人员窗口处还有窗口屏显示呼叫信息。 一、系统概述: 系统基于C/S架构,采用SQL SERVER数据库(适用于sql server2000, sql server 2005版本)。系统包含业务流程所需的所有功能:包括取号、呼叫、重呼、选择性呼叫、语音播报、液晶显示屏信息提示、统计报表等。当网上预约号人员到达现场并取号后系统能够将预约号加入排队呼叫队列,预约号人员在预约时间内有优先呼叫的权利。本系统设备安装简便,兼容性好,配置灵活,升级及维护方便。软件采用一键式安装,界面操作便捷。 二、系统排队流程: (1)取号(有两种取号方式): 1.1 申请办理业务人员进入办事大厅门户网站填写信息进行预约,预约成功后在预约时间内到现场的预约取号机上取号 1.2 申请办理业务人员到办事大厅现场的取号窗口或取号机上取号 (2)申请办理业务人员持号票进入休息区,等待工作人员的呼叫

(3)工作人员通过叫号器进行呼叫申请办理业务人员 (4)办理业务人员听到语音播报或看到液晶屏提示信息后,前往相应的窗口办理业务 (系统排队流程示意图) 三、系统接线示意图:

四、系统组成部件设备: 1.取号主机 2.触摸无线叫号器 3.语音控制盒 4.液晶电视+多媒体控制盒 5.窗口显示屏 6.吸顶式喇叭 五、部件设备详细介绍:

操作系统习题及答案1

操作系统练习题1

1.在下列系统中,(B)是实时系统。 A.计算机激光照排系统 B.航空定票系统 C.办公自动化系统 D.计算机辅助设计系统 2.操作系统是一种(B)。 A.应用软件 B.系统软件 C.通用软件 D.工具软件 3.引入多道程序的目的在于(A)。 A.充分利用CPU,减少CPU等待时间 B.提高实时响应速度 C.有利于代码共享,减少主、辅存信息交换量 D.充分利用存储器4.已经获得除(C)以外的所有运行所需资源的进程处于就绪状态A.存储器 B.打印机 C.CPU D.磁盘空间 5.进程调度的关键问题:一是选择合理的(B),二是恰当地进行代码转换 A.时间片间隔 B.调度算法 C.CPU速度 D.内存空间 6.采用轮转法调度是为了(A): A. 多个终端都能得到系统的及时响应 B.先来先服务 C.优先级较高的进程得到及时调度 D.需CPU最短的进程先做7.在一段时间内只允许一个进程访问的资源,称为(C) A.共享资源 B.临界区 C.临界资源 D.共享区 8.并发性是指若干事件在(B)发生 A.同一时刻 B.同一时间间隔内 C.不同时刻 D.不同时间间隔内9.在单一处理器上,将执行时间有重叠的几个程序称为(C) A.顺序程序 B.多道程序 C.并发程序 D.并行程序

10.程序运行时,独占系统资源,只有程序本身能改变系统资源状态,这是指(B) A.程序顺序执行的再现性 B.程序顺序执行的封闭性 C.并发程序失去封闭性 D.并发程序失去再现性 11.引人多道程序技术以后,处理器的利用率(C) A.降低了 B.有所改善 C.大大提高 D.没有变化,只是程序的执行方便了. 12.在单一处理器上执行程序,多道程序的执行是在(B)进行的。A.同一时刻 B.同一时间间隔内 C.某一固定时刻 D.某一固定时间间隔内 13.为了使多个进程能有效地同时处理输入和输出,最好使用(A) A.缓冲区 B.闭缓冲区环 C.多缓冲区 D.双缓冲区 14.在进程通信中,(C)常通过变量、数组形式来实现。 A.高级通信 B.消息通信 C.低级通信 D.管道通信 15.管道通信是以(B)进行写入和读出。 A.消息为单位 B.自然字符流 C.文件 D.报文 16.系统出现死锁的原因是(C) A. 计算机系统发生了重大故障 B.有多个封锁的进程同时存在 C.若干进程因竞争资源而无休止的等待着它方释放已占有的资源D.资源数大大少于进程数,或进程同时申请的资源数大大超过资源总数

2014中央电大操作系统作业参考答案 (2)

操作系统课程作业 作业说明: 1. 操作系统课程作业共安排3次,每次作业总分为100分。 2. 课程作业总分为各次作业的平均分数。 第一次作业(共100分) 第一章操作系统引论 一、单项选择题(每题1分,共16分) 1、操作系统是一种()。 A.应用软件 B. 系统软件 C.通用软件 D. 工具软件 2、操作系统是一组()。 A.文件管理程序 B.中断处理程序 C.资源管理程序 D.设备管理程序 3、现代操作系统的基本特征是()、资源共享和操作的异步性。 A.多道程序设计 B. 中断处理 C.程序的并发执行 D. 实现分时与实时处理 4、()不是操作系统关心的主要问题。 A.管理计算机裸机 B.设计、提供用户程序与计算机硬件系统的界面 C.管理计算机系统资源 D.高级程序设计语言的编译器 5、引入多道程序的目的在于()。 A.充分利用CPU,减少CPU等待时间 B.提高实时响应速度 C.有利于代码共享,减少主、辅存信息交换量 D.充分利用存储器 6、()没有多道程序设计的特点。 A. DOS B. UNIX C. Windows D.OS/2 7、下列操作系统中,为分时系统的是()。 A. CP/M B. MS-DOS C. UNIX D. Windows NT 8、在分时系统中,时间片一定,(),响应时间越长。 A.内存越多 B.用户数越多 C.后备队列越短 D.用户数越少 9、批处理系统的主要缺点是()。 A.CPU的利用率不高 B.失去了交互性 C.不具备并行性 D.以上都不是 10、在下列性质中,()不是分时系统的特征。 A. 交互性 B. 同时性 C. 及时性 D. 独占性 11、实时操作系统追求的目标是()。 A.高吞吐率 B.充分利用内存 C. 快速响应 D. 减少系统开销 12、CPU状态分为系统态和用户态,从用户态转换到系统态的唯一途径是()。 A. 运行进程修改程序状态字 B. 中断屏蔽 C. 系统调用 D. 进程调度程序 13、系统调用的目的是()。 A.请求系统服务 B.终止系统服务 C.申请系统资源 D.释放系统资源 14、系统调用是由操作系统提供的内部调用,它()。

操作系统模拟试题及答案

单选题 1. 操作系统内核与用户程序、应用程序之间的接口是(C )。 A shell命令 B 图形界面 C 系统调用 D C语言函数 2. CPU状态分为核心态和用户态,从用户态转换到核心态的途径是(C)。 A 运行进程修改程序状态字 B 中断屏蔽 C 系统调用 D 进程调度程序 3. 在计算机系统中,操作系统是( A )。 A 处于裸机之上的第一层软件 B 处于硬件之下的低层软件 C 处于应用软件之上的系统软件 D 处于系统软件之上的用户软件 4. 有9个生产者,6个消费者,共享容量为8的缓冲区。在这个生产者-消费者问题中,互斥使用缓冲区的信号量mutex的初值应该为(A)。 A 1 B 6 C 8 D 9 5. 如果信号量S的值是0 , 此时进程A执行P(S)操作,那么,进程A会(B)。 A 继续运行 B 进入阻塞态,让出CPU C 进入就绪态,让出CPU D 继续运行,并唤醒S队列头上的等待进程 6. 下列进程状态的转换中,不正确的是(A)。 A 从就绪到阻塞 B 从运行到就绪 C 从就绪到运行 D 从阻塞到就绪 7. 在操作系统中,JCB是指( C )。 A 文件控制块 B 进程控制块 C 作业控制块 D 程序控制块

8. Linux系统中的shell是负责(A)的模块。 A 解释并执行来自终端的命令 B 解释并执行来自终端的内部命令 C 解释并执行来自终端的外部命令 D 进行系统调用 9. 为了保证系统的吞吐量,系统总是力争缩短用户作业的(D)。 A 执行时间 B 提交时间 C 输入时间 D 周转时间 10. 虚拟存储器的最大容量(B)。 A 为内外存容量之和 B 由计算机的地址结构决定 C 是任意大的 D 由作业的地址空间决定 11. 下列存储器中,速度最快的是(C)。 A 高速缓存Cache B 内存 C CPU内部寄存器 D 硬盘 12. 在请求分页存储管理中,若采用FIFO页面淘汰算法,则当分配的页面数增加时,缺页中断的次数(D)。 A 减少 B 增加 C 无影响 D 可能增加也可能减少 13. 由一串字符序列组成,文件内的信息不再划分可独立的单位,这是指( A )。 A 流式文件 B 记录式文件 C 顺序文件 D 链接文件 14. 文件名与(B)的转化是通过文件目录来实现的 A 逻辑地址 B 物理地址 C 文件内部名 D 文件记录 15. 在UNIX系统中,某文件的使用权限设置为754,则表示( A )。

排队叫号系统规划设计说明

排队叫号系统规划设计说明 1.1概述 随着社会的发展和人民生活水平的提高,先进的科学技术已被广泛应用于社会的各个领域,特别是对于具有税务、工商、建设、人事、经贸等诸多部门的行政中心来说,他将面向整个园区人民、园区内各企事业单位,办理申报、审批、公共业务等众多业务,对服务的环境、办事效率的要求将越来越高。提高“服务形象,服务质量”已成为体现行业形象、服务理念、管理水平的标准,并越来越受到社会的关注。而一站式服务大厅办事窗口正是代表常熟市农行大厦对外服 务质量的重要窗口。 1.2系统需求概述 作为常熟市农行大厦的排队管理系统,系统应具备以下功能: 系统应支持多队列排队管理,可支持15个不同服务类型的队列管理。 工作区:操作终端(业务柜台), 实现多功能号票打印:可打印机构名称、服务类别、排队序号、等候人数、排队时间等多种要求。 多种呼叫方式:可对号码实行“顺呼”、“回呼”、“复呼”和“选呼”,并可跨队列进行呼叫。 多种号码处理方式:可对号码进行优先、复诊、插队、

转移、储存、查看等多种处理。 多种显示方式:可数码管显示、单点发光管显示、点阵模块显示、软件虚拟显示。 多种提示方式:灯光闪烁提示、乐音提示、语音提示、数字显示提示。 多种分类统计:可细分服务类别,单个顾客一次受理业务数等。 多种图表统计:实用的统计图表一应俱全。 在各个窗口设置一个叫号显示屏,以显示对应窗口的号码。同时设置一块汇总显示屏,显示所有窗口的叫号信息。 可随时将错过的号码插队,也可以暂停服务; 1.3方案设计 1.3.1系统组成 整个排队管理系统由以下设备组成:取号机、呼叫终端、主显示屏、显示终端、系统分配器、语音系统组成。 取号机用于产生系统的排队序号。在接到顾客服务请求后,取号机即自动打印一张印有服务名称、排队序号、等候人数、排队时间等有关信息的号票。 呼叫终端:采用物理呼叫器,是安放在工作人员桌上的叫号设备,它具有16个双功能键、LCD液晶显示屏显示窗口代码和顾客序号。 主显示屏位于一站式服务中心的大厅中央,主显示屏可

操作系统期中试题答案

期中考试题答案 一、单项选择题 1、下列系统中( C )是实时系统。(外包班) A.计算机激光照排系统B.办公自动化系统 C. 化学反应堆控制系统D.计算机辅助设计系统 2、并发性是指若干事件在(B )发生。(计应) A.同一时刻 B. 同一时间间隔内 C.不同时刻 D. 不同时间间隔内 3、以下( C )项功能不是操作系统具备的主要功能。(计应) A.内存管理 B.中断处理 C.文档编辑 D. CPU调度 4、分时系统响应时间与( D )有关。(计应) A.每个应用进程分配的时间片长度B.进程大小 C.就绪进程数目D.就绪进程数目和时间片长度 5、下列的进程状态变化中,(C)的变化是不可能发生的。(计应) A.运行→就绪B.运行→等待 C.等待→运行 D.等待→就绪 6、下列选项中,导致创建新进程的操作是(C )。(计应) I.用户登录成功II.设备分配III.启动程序执行 A.仅I和II B.仅II和III C.仅I和III D.I、II和III 7、进程和程序的最根本区别在于(B)。(外包、计应) A. 对资源的占有类型和数量。 B. 进程是动态的,而程序是静态的。 C. 看它们是否能够并发地在处理机上运行 D. 进程规模较小,程序规模较大 8、如果单CPU系统中有n个进程,则就绪队列中进程的个数最多可达到( C )个。(外包) A. n+1 B. n C. n-1 D. 1 9、某计算机系统中有8台打印机,有k个进程竞争使用,每个进程最多需要3台打印机。该系统可能会发生死锁的k的最小值是( C )。(计应) A.2 B.3 C.4 D.5 10、下列选项中,满足短任务优先且不会发生饥饿现象的调度算法是( B )(计应)。 A.先来先服务B.高响应比优先 C.时间片轮转D.非抢占式短任务优先 二、填空题 1、批处理操作系统、__分时_____和实时操作系统是基本的操作系统。(外包) 2、现代操作系统通常为用户提供三种使用界面:____命令界面______、图形界面和系统调用界面。(计

相关文档
最新文档