文档库 最新最全的文档下载
当前位置:文档库 › 操作系统生产者消费者问题C语言

操作系统生产者消费者问题C语言

操作系统生产者消费者问题C语言
操作系统生产者消费者问题C语言

《操作系统概念》第七版中的实验项目:生产者消费者问题。本程序中,main()函数需要三个参数:主线程休眠时间;生产者线程数;消费者线程数。各线程的休眠等待时间是随机的。

程序代码:

#include

#include

#include

#include

#define BUFFER_SIZE 5

typedef int buffer_item;

struct v

{

int i;

};

buffer_item buffer[BUFFER_SIZE+1];

buffer_item front=0,rear=0;

HANDLE mutex,empty,full;

int insert_item(buffer_item item)

{

/*insert item into buffer

return 0 if successful,otherwise

return -1 indicating an error condition*/

if((rear+1)%(BUFFER_SIZE+1)==front)

return 1;

buffer[rear]=item;

rear=(rear+1)%(BUFFER_SIZE+1);

return 0;

}

int remove_item(buffer_item *item)

{

/*remove an object from buffer

placing it in item

return 0 if successful,otherwise

reutrn -1 indication an error condition */

if(front == rear)

return 1;

*item=buffer[front];

front=(front+1) % (BUFFER_SIZE+1);

return 0;

}

DWORD WINAPI producer(PVOID Param)

{

int rand1;

struct v data=*(struct v *)Param;

srand((unsigned)time(0));

while (1)

{

Sleep(rand()%101*10);

WaitForSingleObject(empty,INFINITE);

WaitForSingleObject(mutex,INFINITE);

rand1 =rand();

printf("producer has producerd %d By %d\n",rand1,data.i);

if(insert_item(rand1))

printf("insert data error!\n");

ReleaseMutex(mutex);

ReleaseSemaphore(full,1,NULL);

}

}

DWORD WINAPI consumer(PVOID Param)

{

int rand1;

struct v data=*(struct v *)Param;

srand((unsigned)time(0));

while (1)

{

Sleep(rand()%101*10);

WaitForSingleObject(full,INFINITE);

WaitForSingleObject(mutex,INFINITE);

if(remove_item(&rand1))

printf("remove data error! \n");

else

printf("consumer consumed %d By %d \n",rand1,data.i);

ReleaseMutex(mutex);

ReleaseSemaphore(empty,1,NULL);

}

}

int main(int argc,char *argv[])

{

/*Get command line arguments argv[1])(the number of producer threads),argv[2](the number of consumer threads),argv[3](sleep time)*/

/*Initialize buffer*/

int sleeptime,pnum,snum;

int *ThreadIdP,*ThreadIdS,i;

struct v *countp,*counts;

HANDLE *ThreadHandleP,*ThreadHandleS;

sleeptime=atoi(argv[1]);

pnum=atoi(argv[2]);

snum=atoi(argv[3]);

/*srand(time(NULL));

sleeptime=9000;

pnum=3;

snum=3;*/

ThreadHandleP=(HANDLE * )malloc(pnum * sizeof(HANDLE));

ThreadHandleS=(HANDLE * )malloc(snum * sizeof(HANDLE));

ThreadIdP=(int * )malloc(pnum * sizeof(int));

ThreadIdS=(int * )malloc(pnum * sizeof(int));

mutex=CreateMutex(NULL,FALSE,NULL);

empty=CreateSemaphore(NULL,BUFFER_SIZE,BUFFER_SIZE,NULL);

full=CreateSemaphore(NULL,0,BUFFER_SIZE+1,NULL);

/*Create producer thread(s)*/

countp=(struct v *)malloc((pnum+1)*sizeof(struct v));

counts=(struct v *)malloc((snum+1)*sizeof(struct v));

for(i=0;i

{

countp[i+1].i=i+1;

ThreadHandleP[i]=CreateThread(NULL,0,producer,&countp[i+1],0,&ThreadIdP[i]);

}

/*Create consumer thread(s)*/

for(i=0;i

{

counts[i+1].i=i+1;

ThreadHandleS[i]=CreateThread(NULL,0,consumer,&counts[i+1],0,&ThreadIdS[i]);

}

/*Sleep*/

Sleep(sleeptime);

/*Exit*/

return 0;

}

#include"stdafx.h"

#include

#include

#include

#include

#define BUFFER_SIZE 5

typedef int buffer_item;

struct v

{

int i;

};

buffer_item buffer[BUFFER_SIZE+1];

buffer_item front=0,rear=0;

HANDLE mutex,empty,full;

int insert_item(buffer_item item)

{

/*insert item into buffer

return 0 if successful,otherwise

return -1 indicating an error condition*/

if((rear+1)%(BUFFER_SIZE+1)==front)

return 1;

buffer[rear]=item;

rear=(rear+1)%(BUFFER_SIZE+1);

return 0;

}

int remove_item(buffer_item *item)

{

/*remove an object from buffer

placing it in item

return 0 if successful,otherwise

reutrn -1 indication an error condition */ if(front == rear)

return 1;

*item=buffer[front];

front=(front+1) % (BUFFER_SIZE+1);

return 0;

}

DWORD WINAPI producer(PVOID Param)

{

int rand1;

struct v data=*(struct v *)Param;

srand((unsigned)time(0));

while (1)

{

Sleep(rand()%101*10);

WaitForSingleObject(empty,INFINITE);

WaitForSingleObject(mutex,INFINITE);

rand1 =rand();

printf("producer has producerd %d By %d\n",rand1,data.i);

if(insert_item(rand1))

printf("insert data error!\n");

ReleaseMutex(mutex);

ReleaseSemaphore(full,1,NULL);

}

}

DWORD WINAPI consumer(PVOID Param)

{

int rand1;

struct v data=*(struct v *)Param;

srand((unsigned)time(0));

while (1)

{

Sleep(rand()%101*10);

WaitForSingleObject(full,INFINITE);

WaitForSingleObject(mutex,INFINITE);

if(remove_item(&rand1))

printf("remove data error! \n");

else

printf("consumer consumed %d By %d \n",rand1,data.i);

ReleaseMutex(mutex);

ReleaseSemaphore(empty,1,NULL);

}

}

int main(int argc,char *argv[])

{

/*Get command line arguments argv[1])(the number of producer threads),argv[2](the number of consumer threads),argv[3](sleep time)*/

/*Initialize buffer*/

int sleeptime,pnum,snum;

DWORD *ThreadIdP,*ThreadIdS,i;

struct v *countp,*counts;

HANDLE *ThreadHandleP,*ThreadHandleS;

/*sleeptime=atoi(argv[1]);

pnum=atoi(argv[2]);

snum=atoi(argv[3]);*/

//srand(time(NULL));

sleeptime=9000;

pnum=3;

snum=3;

ThreadHandleP=(HANDLE * )malloc(pnum * sizeof(HANDLE));

ThreadHandleS=(HANDLE * )malloc(snum * sizeof(HANDLE));

ThreadIdP=(DWORD * )malloc(pnum * sizeof(DWORD));

ThreadIdS=(DWORD * )malloc(pnum * sizeof(DWORD));

mutex=CreateMutex(NULL,FALSE,NULL);

empty=CreateSemaphore(NULL,BUFFER_SIZE,BUFFER_SIZE,NULL);

full=CreateSemaphore(NULL,0,BUFFER_SIZE+1,NULL);

/*Create producer thread(s)*/

countp=(struct v *)malloc((pnum+1)*sizeof(struct v));

counts=(struct v *)malloc((snum+1)*sizeof(struct v));

for(i=0;i

{

countp[i+1].i=i+1;

ThreadHandleP[i]=CreateThread(NULL,0,producer,&countp[i+1],0,&ThreadIdP[i]);

}

/*Create consumer thread(s)*/

for(i=0;i

{

counts[i+1].i=i+1;

ThreadHandleS[i]=CreateThread(NULL,0,consumer,&counts[i+1],0,&ThreadIdS[i]);

}

/*Sleep*/

Sleep(sleeptime);

/*Exit*/

return 0;

}

生产者消费者问题设计与实现

操作系统课程设计任务书

目录

1.选题背景 生产者消费者问题是研究多线程程序时绕不开的经典问题之一,它描述是有一块缓冲区作为仓库,生产者可以将产品放入仓库,消费者则可以从仓库中取走产品。解决生产者/消费者问题的方法可分为两类:(1)采用某种机制保护生产者和消费者之间的同步;(2)在生产者和消费者之间建立一个管道。第一种方式有较高的效率,并且易于实现,代码的可控制性较好,属于常用的模式。第二种管道缓冲区不易控制,被传输数据对象不易于封装等,实用性不强。因此本文只介绍同步机制实现的生产者/消费者问题。 同步问题核心在于:如何保证同一资源被多个线程并发访问时的完整性。常用的同步方法是采用信号或加锁机制,保证资源在任意时刻至多被一个线程访问。Java语言在多线程编程上实现了完全对象化,提供了对同步机制的良好支持。在Java中一共有四种方法支持同步,其中前三个是同步方法,一个是管道方法。 2.设计思路 .生产者—消费者问题是一种同步问题的抽象描述。 计算机系统中的每个进程都可以消费或生产某类资源。当系统中某一进程使用某一资源时,可以看作是消耗,且该进程称为消费者。 而当某个进程释放资源时,则它就相当一个生产者 3.过程论述 首先,生产者和消费者可能同时进入缓冲区,甚至可能同时读/写一个存储单元,将导致执行结果不确定。这显然是不允许的。所以,必须使生产者和消费者互斥进入缓冲区。即某时刻只允许一个实体(生产者或消费者)访问缓冲区,生产者互斥消费者和其他任何生产者。 其次,生产者不能向满的缓冲区写数据,消费者也不能在空缓冲区中取数据,即生产者与消费者必须同步。当生产者产生出数据,需要将其存入缓冲区之前,首先检查缓冲区中是否有“空”存储单元,若缓冲区存储单元全部用完,则生产者必须阻塞等待,直到消费者取走一个存储单元的数据,唤醒它。若缓冲区内有“空”存储单元,生产者需要判断此时是否有别的生产者或消费者正在使用缓冲区,若是有,则阻塞等待,否则,获得缓冲区的使用权,将数据存入缓冲区,释放缓冲区的使用权。消费者取数据之前,首先检查缓冲区中是否存在装有数据的存储单元,若缓冲区为“空”,则阻塞等待,否则,判断缓冲区是否正在被使用,

实验1:生产者消费者问题

福建农林大学金山学院实验报告 系(教研室):专业:计算机科学与技术年级: 实验课程:生产者与消费者实验姓名:学号: 实验室号:1#608 计算机号:实验时间:指导教师签字:成绩: 实验1:生产者消费者问题 一、实验目的 生产者消费者问题是操作系统中经典的同步和互斥问题。通过实验,要求学生掌握两者之间的同步信号量和互斥信号量的使用,更深刻了解临界资源、同步和互斥的概念。 二、实验要求 1.一组生产者通过一个具有N个缓冲区的缓冲池循环不断地向一组消费者提供产 品。 2.建一个队列, 队列的长度由n记录, 定义两个指针, 分别指向队列的头和尾消 费者从头指针读取数据,每读取一个数据把n--,生产者把数据写入尾指针, 每写入一个数据就n++,当n=N的时候生产者暂停写入数据。 3.注意:缓冲池队列,用互斥锁保护。 三、实验内容和原理 1.分别画出生产者和消费者的流程图

2.针对生产者和消费者问题,可以分为哪几种情况,使用了哪些原语?分别代表 什么意思?过程如何?阐述哪些进程之间存在同步,哪些进程之间存在互斥。 3.缓冲区是否为临界资源?是否可以循环使用?通过什么来实现?举例说明(可 画图) 四、实验环境 1. 硬件:PC机; 2. 软件:Windows操作系统、。 五、算法描述及实验步骤 #include <> #include const unsigned short SIZE_OF_BUFFER = 10; unsigned short ProductID = 0; unsigned short ConsumeID = 0;

unsigned short in = 0; unsigned short out = 0; int g_buffer[SIZE_OF_BUFFER]; bool g_continue = true; HANDLE g_hMutex; HANDLE g_hFullSemaphore; HANDLE g_hEmptySemaphore; DWORD WINAPI Producer(LPVOID); DWORD WINAPI Consumer(LPVOID); int main() { g_hMutex = CreateMutex(NULL,FALSE,NULL); g_hFullSemaphore = CreateSemaphore(NULL,SIZE_OF_BUFFER-1,SIZE_OF_BUFFER-1,NULL); g_hEmptySemaphore = CreateSemaphore(NULL,0,SIZE_OF_BUFFER-1,NULL); const unsigned short PRODUCERS_COUNT = 3; const unsigned short CONSUMERS_COUNT = 1; const unsigned short THREADS_COUNT = PRODUCERS_COUNT+CONSUMERS_COUNT; HANDLE hThreads[PRODUCERS_COUNT]; DWORD producerID[CONSUMERS_COUNT]; DWORD consumerID[THREADS_COUNT]; for (int i=0;i

操作系统期末试卷(含答案)79149

操作系统复习题1 一、判断题 1.分时系统中,时间片设置得越小,则平均响应时间越短。() 2.多个进程可以对应于同一个程序,且一个进程也可能会执行多个程序。() 3.一个进程的状态发生变化总会引起其他一些进程的状态发生变化。() 4.在引入线程的OS中,线程是资源分配和调度的基本单位。() 5.信号量的初值不能为负数。() 6.最佳适应算法比首次适应算法具有更好的内存利用率。() 7.为提高对换空间的利用率,一般对其使用离散的分配方式。() 8.设备独立性是指系统具有使用不同设备的能力。() 9.隐式链接结构可以提高文件存储空间的利用率,但不适合文件的随即存取。() 10.访问控制矩阵比访问控制表更节约空间。() 二、选择题 1.在设计分时操作系统时,首先要考虑的是(A);在设计实时操作系统时,首先要考虑的是(B);在设计批处理系统时,首先要考虑的是(C)。 A,B,C :(1)灵活性和适应性;(2)交互性和响应时间;(3)周转时间和系统吞吐量;(4)实时性和可靠性。 2.对一个正在执行的进程:如果因时间片完而被暂停执行,此时它应从执行状态转变为(D)状态;如果由于终端用户的请求而暂停下来,则它的状态应转变为(E)状态;如果由于得不到所申请的资源而暂停时下来,则它的状态应转变为(F)状态。D,E,F:(1);静止阻塞(2);活动阻塞(3);静止就绪(4);活动就绪(5)执行。 3.我们如果为每一个作业只建立一个进程,则为了照顾短作业用户,应采用(G);为照顾紧急作业用户,应采用(H);为能实现人机交互,应采用(I);而能使短作业、长作业和交互作业用户满意时,应采用(J)。 G,H,I,J:(1);FCFS调度算法(2);短作业优先调度算法;(3)时间片轮转算法;(4)多级反馈队列调度算法;(5)基于优先权的剥夺调度算法。 4.由固定分区发展为分页存储管理方式的主要推动力是(K);由分页系统发展为分段系统,进而发展为段页式系统的主要动力分别是(L)和(M)。 K,L,M:(1)提高内存利用率;(2)提高系统吞吐量;(3)满足用户需要;(4)更好地满足多道程序进行的需要;(5)既满足用户需求,又提高内存利用率。 5.在存储管理中,不会产生内部碎片的存储管理方式是(N);支持虚拟存储器,但不能以自然的方式提供存储器的共享和存取保护机制的存储管理方式是(O)。 N:(1)分页式存储管理;(2)分段式存储管理;(3)固定分区式存储管理;(4)段页式存储管理。 O:(1)段页式存储管理;(2)请求分区页式存储管理;(3)请求分段式存储管理;(4)可变分区存储管理;(5)固定分区存储管理;(6)单一连续分区式存储管理。 6.磁盘调度主要是为了优化(P),下列算法中能避免磁盘粘着的现象的是(Q)。P:(1)寻道时间;(2)旋转延迟时间;(3)传输时间。 Q:(1)SSTF;(2)FCFS;(3)SCAN;(4)CSCAN;(5)FSCAN。 7.文件系统中,目录管理最基本的功能是(R),位示图的主要功能是(S),FAT 表的主要功能是(T)。 R,S,T:(1)实现按名存取;(2)提高文件存储空间利用率;(3)管理文件存储器的空闲空间;(4)指出分配给文件的盘块(首个盘块除外)的地址;(5)管理文件存储器的空闲空间,并指出分配给文件的盘块(首个盘块除外)的地址。 8.文件系统采用多级目录结构,可以(U)和(V)。 U,V:(1)缩短访问文件存储器时间;(2)节省主存空间;(3)解决不同用户文件的命名冲突;(4)方便用户读写文件;(5)提高检索目录的速度。9.计算机系统中信息资源的安全包括(W)、(X)和(Y)三个方面,其中程序被删除属于(W)方面的威胁,数据被非法截取属于(X)方面的威胁,消息被更改属于(Y)方面的威胁。 W,X,Y:(1)保密性;(2)完整性;(3)可用性;(4)方便性。 三、填空题 1.操作系统最基本的特征是(1)和(2),最主要的任务是(3)。 2.引入进程的主要目的是(4),进程存在的唯一标志是(5)。 3.(6)是指通过破坏死锁产生的必要条件来防止死锁的发生。引起死锁的四个必要条件中,(7)是不应该被破坏的,但对某些特殊的资源(如打印机),该条可通过(8)来破坏;而其他能被破坏的三个必要条件分别是(9)、(10)和(11)。 4.虚拟存储器管理的基础是(12)原理,在请求分页管理方式中,页表中的状态位用来只是对应页(13)修改位用来只是对应页(14),引用位则是供(15)使用;而在请求分段系统还增加了增补位,它用来指示(16)。 5.设备驱动程序是(17)与(18)之间的通信程序如果系统中有3台相同的单显和2台相同的彩显则必须为它们配置(19)种设备驱动程序 6.廉价磁盘冗余阵列可组成一个大容量磁盘系统,它利用(20)技术来提高磁盘系统的存取进度,而利用(21)技术来增加磁盘系统的可靠性 7.包过滤防火墙工作在(22)层,采用代理服务技术的防火墙则工作在(23)层 8.UNIX文件系统对文件存储空间采用(23)分配方式,它通过(24)来管理空闲的文件存储空间。 四、问答题 1.假设某多道程序设计系统中有供用户使用的内存100k,打印机1台。系统采用可变分区管理内存:对打印机采用静态分配,并假设输入输出操作的时间忽略不计:采用最短剩余时间优先的进程调度算法,进程剩余执行时间相同时采用先来先服务算法;进程调度时机在执行进程结束时或有新进程到达时。现有一进程序列如下: 假设系统优先分配内存的低地址区域,且不需移动已在主存中的进程,请:(1)给出进度调度算法选中进程的次序,并说明理由。 (2)全部进程执行结束所用的时间是多少? 2.请用信号量解决以下的过独木桥问题:同一方向的行人可连续过桥,当某一方向的行人必须等待:另一方向的行人必须等待:当某一方向无人过桥是,另一方向的行人可以过桥。 3.提高内存利用率的途径有哪些? 4.何谓脱机输入/输出技术? 5. 将目录文件当作一般数据文件来处理有什么优缺点? 操作系统复习题1答案 一、判断题 1、错 2、对 3、错 4、对 5、对 6、错 7、错 8、错 9、对10、错 二、选择题 1、A :(2);B:(4);C:(3)。 2、D:(4);E:(3);F:(2)。 3、G:(2);H:(5);I:(3);J:(4)。 4、K:(1);L:(3);M:(5)。 5、N:(2);O:(2)。 6、P:(1)寻道时间;Q:(5)。 7、R:(1);S:(3);T:(5)。 8、U:(3);V:(5)。 9、W:(3);X:(1);Y:(2)。

LabVIEW程序设计模式(五)—生产者消费者模式(2)_VI的可重入性(Reentrant Execution)

LabVIEW程序设计模式(五)—生产者/消费者模式(2)_VI的可重入性(Reentrant Execution) LabVIEW程序设计2009-05-19 17:06:34 阅读698 评论0 字号:大中小订阅 在介绍VI的动态调用之前有必要对LabVIEW在执行VI过程中的规则有个大致的了解。众所周知,LabVIEW是通过VI的文件名(VI Name)来表示独立的VI的,并不是VI的路径。因此,LabVIEW不允许具有相同名字的VI同时载入内存中,即使这些VI存储在不同的路径中。 在前面曾经提到,LabVIEW本身就是一种多线程设计的语言。那么当同一背面板中放置两个VI的实例时代码应该如何执行呢?在图29中,右侧是测试VI运行的时间,左侧是Wait.vi的具体实现代码,仅仅是等待一定的秒数。那么在右侧的VI中,输出的Time是多少呢?是3秒还是2秒? 图29 Reentrant Execution 打开VI的Highlight调试工具,可以看出两个Wait.vi实例的调用并不是同时执行的,而是依次按顺序执行的,至于哪一个实例先执行是不确定的。这是由于LabVIEW本身是并行设计的,从理论上而言,两个VI的实例是同步执行的,但是如果两个Wait.vi实例同时执行必定会产生参数赋值紊乱,因为LabVIEW只允许内存中存在一个名称的VI。因此,此时Time的输出结果是3秒。 如果在实际使用中需要这样的应用该如何解决呢?LabVIEW提供了VI的可重入技术,打开Wait.vi,单击按键,选择图30所示的Reentrant execution 选项。此时再次运行Time的输出结果是2秒。从Highlight的运行过程来看,两个Wait.vi实例是同时执行的,因此总的运行时间就是1秒。

Linux网络操作系统试卷试题下载-样卷doc

Linux 网络操作系统试卷试题下载-样卷.doc 学年第一学期期末考试 《Linux 网络操作系统》试题(B) (适用班级:计网0431、计网0432、计网0433、计网0434) (注意:必须将所有题目的答案填在答题纸上,否则不得分。) 一、单项选择题:(每题1分,共20分) 1. 下列服务器软件中哪些不属于MTA ( ) A 、 sendmail B 、postfix C 、qmail D 、imap 2. 是Internet 中主机的:( ) A 、用户名 B 、密码 C 、别名 D 、IP 地址 D 、FQDN 3.负责电子邮件传输的应用层协议是( ) A 、SMTP B 、PPP C 、IP D 、FTP 4. 下面哪个配置选项在Squid 的配置文件中用于设置管理员的E-mail 地址:( ) A 、cache_effective_user B 、cache_mem C 、cache_effective_group D 、cache_mgr E 、cache_dir 5. Apache 主配置文件位于Linux 哪个目录 A 、/etc/httpd B 、/etc/conf C 、/etc/httpd/conf D 、/etc/conf/httpd 6. BIND 主配置文件位于Linux 哪个目录( ) A 、/etc B 、/etc/named C 、/etc/conf D 、/etc/conf/namd 7. Linux 最多可以设置几个DNS 服务器( ) A 、1 B 、2 C 、3 D 、10 8. 请选出创建用户ID 是200,组ID 是1000,用户主目录为/home/user01的新用户user01的正确命令. ( ) A 、adduser -u:200 -g:1000 -h:/home/user01 user01 B 、adduser -u=200 -g=1000 -d=/home/user01 user01 C 、useradd -u 200 -g 1000 -d /home/user01 user01 D 、useradd -u 200 -g 1000 -h /home/user01 user01 9. 如果想加载一个/dev/hdb1的Windows95分区到/mnt/win95目录,需要运行哪个命令( ) A 、 mount -t hpfs /mnt/win95 /mnt/hdb1 B 、 mount -t hpfs /dev/hdb1 /mnt/win95 C 、 mount -t vfat /dev/hdb1 /mnt/win95 D 、 mount -t vfat /mnt/win95 /dev/hdb1 10. 下面哪个命令用来启动X window ( ) A 、startX B 、 runx C 、 startx D 、 xwin 11. 按实现原理的不同将防火墙分为( )三类。 A 、包过滤防火墙、代理服务器型网关防火墙和状态检测防火墙 B 、包过滤防火墙、应用层网关防火墙和代理防火墙 C 、包过滤防火墙、代理防火墙和软件防火墙 D 、状态检测防火墙、代理防火墙和动态包过滤防火墙 12. 如何快速切换到用户John 的主目录下( ) A 、cd @John B 、cd #John C 、cd &John D 、cd ~John 13. 系统交换分区的类型代号是:( ) A 、82 B 、 83 C 、0b D 、17 14. 在Linux 操作系统中,命令“chmod -777 /home/abc ”的作用是:() A 、把所有的文件拷贝到公共目录abc 中 B 、修改abc 目录的访问权限为可读、可写、可执行 C 、设置用户的初始目录为/home/abc D 、修改abc 目录的访问权限为所有用户只读 15. 在Linux 操作系统中把外部设备当作文件进行统一管理,外部设备文件通常放在:( ) A 、 /dev B 、/lib C 、/etc D 、 /bin 16. 一台PC 机的基本配置为:主频933、硬盘存储容量40G 、内存128M ,显存8M 。在安装linux 系统时,交换分区大小应为:( ) A 、8M B 、64M C 、128M D 、256M 17. RedHat 下硬盘分区,最多可以有( )个主分区和扩展分区 班级 姓名 学号

操作系统生产者与消费者问题实验报告

《操作系统》实验报告 生产者和消费者的问题 一、实验目的 1.掌握基本的同步与互斥的算法,理解基本的生产者与消费者的模型。 2.学习使用Windows 2000/XP中基本的同步对象,掌握相关的API的使用方法。 3.了解Windows 2000/XP中多线程的并发执行机制,线程间的同步和互斥。 二、实验的内容及其要求 1.实验内容 以生产者/消费者模型为根据,在Windows 2000环境下创建一个控制台进程,在改进程中创建n个线程模拟生产者和消费者,实现进程(线程)的同步与互斥。 2.实验要求 ①学习并理解生产者/消费者模型及其同步/互斥规则 ②学习了解Windows同步对象及其特性 ③熟悉实验环境,掌握相关API的使用方法 ④设计程序,实现生产者/消费者进程(线程)的同步与互斥 ⑤提交实验报告 三、实验的时间安排 1.实验前,先到图书馆或上网百度了解有关生产者/消费者模型的相关知识,建立生产者/消费者模型的基本概念。 2.利用13周、15周、17周的上机时间编写和调试程序代码。 3.利用其他课余时间来分析实验的最终结果并完成相关的实验报告。 四、实验的环境 1.硬件条件:普通计算机一台 2.软件条件:①操作系统:Windows 2000/XP ②开发语言:VC++ 本实验是在Windows 2000+VC6.0环境下实现的,利用Windows SDK提供的系统接口(API)完成程序的功能。实验在Windows下安装VC后进行,因为VC是一个集成开发环境,其中包含了Windows SDK所有工具和定义,所以安装了VC后就不用特意安装SDK了。实验中所用的API(应用程序接口),是操作系统提供的用来进行应用程序设计的系统功能接口。要使用这些API,需要包含对这些函数进行说明的SDK 头文件,最常见的就是windows.h。一些特殊的API调用还需要包含其他的头文件。 五、正文 1.程序结构图:

N套_操作系统期末试卷(含答案)

一、选择题 1、在现代操作系统中引入了(),从而使并发和共享成为可能。 A.单道程序 B. 磁盘 C. 对象 D.多道程序 2、( )操作系统允许在一台主机上同时连接多台终端,多个用户可以通过各自的终端同时交互地使用计算机。 A.网络 B.分布式 C.分时 D.实时 3、从用户的观点看,操作系统是()。 A. 用户与计算机硬件之间的接口 B.控制和管理计算机资源的软件 C. 合理组织计算机工作流程的软件 D.计算机资源的的管理者 4、当CPU处于管态时,它可以执行的指令是()。 A. 计算机系统中的全部指令 B. 仅限于非特权指令 C. 仅限于访管指令 D. 仅限于特权指令 5、用户在程序中试图读取某文件的第100个逻辑块时,使用操作系统提供的()接口。 A. 系统调用 B.图形用户接口 C.原语 D.键盘命令 6、下列几种关于进程的叙述,()最不符合操作系统对进程的理解 A.进程是在多程序并行环境中的完整的程序。 B.进程可以由程序、数据和进程控制块描述。 C.线程是一种特殊的进程。 D.进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。 7、当一个进程处于()状态时,称其为等待(或阻塞)状态。 A. 它正等待中央处理机 B. 它正等待合作进程的一个消息 C. 它正等待分给它一个时间片 D. 它正等待进入内存 8、一个进程释放一种资源将有可能导致一个或几个进程()。 A.由就绪变运行 B.由运行变就绪 C.由阻塞变运行 D.由阻塞变就绪 9、下面关于线程的叙述中,正确的是()。 A.不论是系统支持线程还是用户级线程,其切换都需要内核的支持。 B.线程是资源的分配单位,进程是调度和分配的单位。 C.不管系统中是否有线程,进程都是拥有资源的独立单位。 D.在引入线程的系统中,进程仍是资源分配和调度分派的基本单位。 10、设有3个作业,它们同时到达,运行时间分别为T1、T2和T3,且T1≤T2≤T3,若它们在单处理机系统中按单道运行,采用短作业优先调度算法,则平均周转时间为()。 A. T1+T2+T3 B. (T1+T2+T3)/3 C. T1+T2/3+2*T3/3 3+2*T2/3+T1 11、在下面的I/O控制方式中,需要CPU干预最少的方式是()。 A.程序I/O方式 B.中断驱动I/O控制方式 C.直接存储器访问DMA控制方式D.I/O通道控制方式 12、有m个进程共享同一临界资源,若使用信号量机制实现对一临界资源的互斥访问,则信号量的变

如何将生产者与消费者高效联结

如何将生产者与消费者高 效联结

近年来,各地不同程度存在着农产品滞销的现象。据报道,陕西周至县果农将成熟油桃倒入河道,广西北流的年迈果农拉着刚刚采摘的两大筐荔枝到采购点销售,可跑了五六个代办都没卖出去,只好原封不动地再拉回家,眼瞅着整筐整筐的荔枝烂掉。农民由于缺乏有效的推广窗口和销售工具,即使有丰收的好年景,但农产品价格走低,农民丰产不丰收,农产品滞销让农民一年的辛苦全部付诸东流。 按需生产个性化定制 传统农业都是先生产,后销售,很多农产品虽然有好的收成,但由于找不到合适的销售渠道而烂在田间地头,严重影响了农民的生产积极性。为稳定农产品价格、确保农民合理收益、抵御市场价格风险,订单农业作为一种新型的产销模式应运而生。 所谓订单农业又称合同农业、契约农业,是近年来出现的一种新型农业生产经营模式,农户根据其本身或其所在的乡村,组织生产情况同农产品的购买者之间签订订单,组织安排农产品生产的一种农业产销模式。 订单农业通过先下单,后生产。根据客户意愿选择种什么、怎么种、种多少,只需要在网上下单,根据自身健康需求定制农副产品,市场需要什么,农户就种什么。 订单农业的推出,很好地适应了市场需要,避免了盲目生产。保证了农户的稳定收益,消除了他们的后顾之忧。同时也让农户和企业、消费者建立起了更加紧密的联系,让资本、技术、信息更加有的放矢,实现了生产过程可视化,让消费者用的放心、吃的开心。

手中有订单,种养不心慌。按需生产个性化定制,让农民不用再纠结地里种什么,也不用再担心农产品卖不出去的问题,只需要专心做好农业生产,等着最后交货就好了。 比如C2F模式就是当下最流行的一种订单农业模式,C2F即为消费者对工厂,也就是消费者通过互联网向工厂定制个性化商品的一种新型网上购物行为。 把C2F模式引入农业领域,满足了消费者对精选、有机、绿色、无公害的农产品需求,C2F模式以用户体验为中心,依托全国各地的农业经纪人和服务网点,通过认购、认种、认养等方式,链接田间与餐桌,为广大消费者提供健康安全的农产品。 引入C2F模式,一是让农产品价格更便宜,直接向工厂定制,节省出中间环节所占据的1/3左右的价格空间;二是让消费者尊享独一无二商品,工厂具备生产制造能力,所有商品可以个性化定制,独一无二;三是确保买到正规正品,工厂具有国际环保认证、技术认证、原材料质量认证,保证所定制的商品真正意义上的环保、品质有保证;最后引入C2F模式,能缩短交货周,直接向工厂定制,降低了工厂资金风险,加快了工厂资金周转,提高了工厂生产效率。 除此之外,引入C2F模式会吸引更多的企业跟你合作,同时,更多的农户也愿意背靠你这棵大树,你们生产的农产品只会受到追捧,又怎会滞销呢!毕竟,在现代人看来,高科技农产品的质量是有保障的。 “互联网+电商”拓展销售渠道

网络操作系统试题

网络操作系统(windows server 2008)练习题 2014-05-28 11:29:09| 分类:试题 |举报|字号订阅下载LOFTER客户端 网络操作系统(Windows Server 2008)练习题 一、名词解释: 1. 活动目录 2. 域 3. OU 5. 动态磁盘 6.基本磁盘

二、填空题: 1. 操作系用是_____与计算机之间的接口,网络操作系统可以理解为_____与计算机之间的接口。 2.网络通信是网络最基本的功能,其任务是在_____和____之间实现无差错的数据传输。 服务、大型数据库服务等都是典型的_____模式。 4.基于微软NT技术构建的操作系统现在已经发展了4代_____、_____、_____、_____ Server 2003的4各版本是_______、_______、_______、_______。 Server 2008操作系统发行版本主要有9个,即_______、_______、_______、_______、_______、_______、_______、_______、_______、 Server 2008 R2 版本共有6个,每个windows Server 2008 R2都提供了关键功能,这6个版本是:____、____、_____、_____、_____、_____。 8. windows Server 2008 所支持的文件系统包括____、_____、_____。Windows Server 2008系统只能安装在____文件系统分区。

9. windows Server 2008 有多种安装方式,分别适用于不同的环境,选择合适的安装方式,可以提高工作效率。除了常规的使用DVD启动安装方式以外,还有_____、______及_____。 10. 安装Windows Server 2008 R2时,内存至少不低于____,硬盘的可用个、空间不低于____。并且只支持_____位版本。 11. Windows Server 2008要管理员口令要求必须符合以下条件:1,至少6个符号 2,不包括用户账号名称超过两个以上连续字符; 3,包含____、_____大写字母(A~Z),小写字母(a~z)4组字符中的3组。 12. Windows server 2008 中的_____相当于Windows Server 2003 中的Windows组件。 13. Windows Server 2008 安装完成后,为了保证能够长期正常使用,必须和其他版本的Windows 操作系统一样进行激活,否则只能够试用_____。 14. 页面文件所使用的文件名是根目录下的,不要轻易删除该文件,否则可能会导致系统的崩溃。 15. 对于虚拟内存的大小,建议为实际内存的______。 16. MMC有______和______模式。

操作系统实验报告生产者消费者问题

操作系统课程设计 一.实验目标 完成N个生产者和M个消费者线程之间的并发控制,N、M不低于30,数据发送和接收缓冲区尺寸不小于20个(每个产品占据一个)。 其中生产者线程1、3、5、7、9生产的产品供所有奇数编号的消费者线程消费,只有所有奇数编号的消费者线程都消费后,该产品才能从缓冲区中撤销。 其中生产者线程2、4、6、8、10生产的产品所有偶数编号的消费者线程都可消费,任一偶数编号消费者线程消费该消息后,该产品都可从缓冲区中撤销。 其中11-20号生产者线程生产的产品仅供对应编号的消费者线程消费。 其他编号生产者线程生产的产品可由任意的消费者线程消费。 每个生产线程生产30个消息后结束运行。如果一个消费者线程没有对应的生产者线程在运行后,也结束运行。所有生产者都停止生产后,如果消费者线程已经

没有可供消费的产品,则也退出运行。 二.实验原理 2.1原理 生产者与消费者线程采用posix互斥锁机制进行互斥进入各自的代码段,只有采用互斥锁临界区代码段才可以不被打扰的执行;同步机制采用的是posix条件变量pthread_cond_wait和pthraed_cond_signal进行同步的。 线程间的通信采用的是共享内存机制。(注:所有的共享内存块是在进程里建立的,线程只需链接上各自的共享内存块即可,每一块共享内存的大小是100). 在这里共享内存设置成一个100的数组。 具体实施:(1)为1.3.5.7.9建立一个共享内存1号,1.3.5.7.9生产者线程生产的产品都放入这块共享内存缓冲区,所有奇数的消费者线程要消费的话,只需在消费者线程中链接上这块共享内存,就可以直接消费1.3.5.7.9生产者线程生产的产品。 (2)为2.4.6.8.10建立一块共享内存2号。2.4.6.8.10生产的产品都放入2号共享内存缓冲区,所有的偶数的消费者线程只要链接上2号缓冲区,就可以消费2.4.6.8.10生产的产品。当偶数消费者线程消费产品后,产品即可从缓冲区撤销,方法是在消费线程里将消费的产品在共享内存数组里置0。 (3)为11--20的每一对生产者消费者线程建立一块共享内存,编号11--20. 11--20号的消费者线程能链接各自的共享内存缓冲区或奇数或偶数共享内存缓冲区,即11--20号的生产者生产的产品只能被对应的消费者消费而11-20的奇数消费者可以消费缓冲区1的产品,偶数消费者可消费缓冲区2的产品。 (4)为21--30号的生产者消费者线程只建立一块共享内存21号,21--30号生产者生产的产品都放入21号缓冲区,所有的消费者线程只要链接上21号共享内存,就可以消费21--30号生产者生产的产品。 用于控制线程是否结束的方法是:设置一个全局变量t,在生产者线程里进行t++,在生产者线程里当t达到10时(注:为了很好的测试程序,本应该在生产者生产30个产品时菜结束线程,这里设置成了10),就break跳出while()循环,这样线程自然就终止。同样在消费者线程里,当t达到10时,这里不用t++,就跳出while()循环,消费者线程自然就终止。这样设计满足了,当生产者生产30个产品时就终止生产者线程,生产者线程终止消费者线程也得终止的要求。 生产者从文件so.txt读取数据进行生产,这个文件里的数据是一连串的字符从a--z的组合,没有空格或其他字符。文件内容的格式没有特殊要求。

操作系统期末考试试题及答案精选

四、解答题(共20分) 1.什么是操作系统它的主要功能是什么(共8分) 操作系统是控制和管理计算机系统内各种硬件和软件资源、有效地组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口 操作系统的主要功能包括:存储器管理、处理机管理、设备管理、文件管理以及用户接口管理。 2.操作系统中存储器管理的主要功能是什么什么叫虚拟存储器(共8分) 存储器管理的主要功能是:内存分配,地址映射,内存保护,内存扩充。(4分) 虚拟存储器是用户能作为可编址内存对待的存储空间,在这种计算机系统中虚地址被映象成实地址。或者:简单地说,虚拟存储器是由操作系统提供的一个假想的特大存储器。(4分) 3.什么是文件的逻辑组织和物理组织(共4分) 文件的逻辑组织——用户对文件的观察和使用是从自身处理文件中数据时 采用的组织方式来看待文件组织形式。这种从用户观点出发所见到的文件组织形式称为文件的逻辑组织。 文件的物理组织——文件在存储设备上的存储组织形式称为文件的物理组织。 三、填空题(每空2分,共30分) 1.通常,进程实体是由程序段,相关的数据段和PCB 这三部分组成,其中PCB 是进程存在的惟一标志。 2.从用户的源程序进入系统到相应程序在机器上运行,所经历的主要处理阶段有编辑阶段,编译阶段,连接阶段,装入阶段和运行阶段。 3.在UNIX系统中,文件的类型主要包括普通文件,目录文件,特别文件。 4.虚拟设备是通过 SPOOLing 技术把独占设备变成能为若干用户共享的设备。 5. Windows NT是采用微内核结构的操作系统,它的进程的功能发

生了变化,它只是资源分配的单位,不是调度运行的单位,后者的功能由线程完成。 五、应用题(共20分) 5.进程所请求的一次打印输出结束后,将使进程状态从( D) A、运行态变为就绪态 B、运行态变为等待态 C、就绪态变为运行态 D、等待态变为就绪态 6.采用动态重定位方式装入的作业,在执行中允许(C )将其移动。 A、用户有条件地 B、用户无条件地 C、操作系统有条件地 D、操作系统无条件地 7.分页式存储管理中,地址转换工作是由(A )完成的。 A、硬件 B、地址转换程序 C、用户程序 D、装入程序 9.对记录式文件,操作系统为用户存取文件信息的最小单位是(C )。 、文件 D 、记录 C 、数据项 B 、字符A. 10.为了提高设备分配的灵活性,用户申请设备时应指定(A )号。 A、设备类相对 B、设备类绝对 C、相对 D、绝对 11.通常把通道程序的执行情况记录在(D )中。 A、PSW B、PCB C、CAW D、CSW 14.共享变量是指(D )访问的变量。 A、只能被系统进程 B、只能被多个进程互斥 C、只能被用户进程 D、可被多个进程 15.临界区是指并发进程中访问共享变量的( D)段。 A、管理信息 B、信息存储 C、数据 D、程序 16.若系统中有五台绘图仪,有多个进程均需要使用两台,规定每个进程一次仅允许申请一台,则至多允许( D)个进程参于竞争,而不会发生死锁。 A、5 B、2 C、3 D、4 17.产生系统死锁的原因可能是由于(C )。 A、进程释放资源 B、一个进程进入死循环 C、多个进程竞争,资源出现了循环等待 D、多个进程竞争共享型设备 21.引入多道程序设计的主要目的在于(BD ) A、提高实时响应速度 B、充分利用处理机,减少处理机空闲时间 、有利于代码共享C.

生产者消费者问题设计与实现

操作系统课程设计任务书 学院计算机与信息工程专业计算机科学与技术课程名称操作系统题目生产者消费者问题设计 与实现 完成期限自2015年6月23日至2015年6月29日共1周 内容及任务一、项目的目的 1.理生产者消费者问题基本概念和工作原理,以及实现技术; 2.理解并掌握生产者消费者问题相关算法,以及它的实现方法; 3.掌握在eclipse环境下,系统开发的基本步骤和方法; 4.掌握在eclipse环境下,设计和开发一个简单的生产者消费者问题系统来模拟操作系统中生产者消费者问题。 二、项目任务的主要内容和要求 1.精读并理解和掌握生产者消费者问题; 2.编写程序来模拟生产者消费者问题的实现; 3.编写应用程序测试生产者消费者问题,并显示结果。 三、项目设计(研究)思路 本课程设计的基本思路是,首先理解和掌握生产者消费者问题的基本思想和原理,然后根据理解的基本思想和原理编程实现生产者消费者问题,最后通过数据分析生产者消费者问题。 四、具体成果形式和要求 成果:生产者消费者问题程序语言实现;设计说明书。 要求:编写好的生产者消费者问题程序能够正确启动运行;设计说明书规范、合理。 进度安排 起止日期工作内容2015.6.23至2015.6.24熟悉相关内容 2015.6.25至2015.6.26 系统设计和实现 2015.6.27至2015.6.29 系统实现和撰写相关文档

主要参考资料1.《计算机操作系统》汤子瀛哲凤屏汤小丹主编西安电子科技大学出版社. 2.《计算机操作系统概论》陈宏杨忠耀主编重庆邮电大学出版社. 3.《计算机操作系统基本知识》廖成崔阳主编电子工业出版社. 4.《操作系统实现与设计》陆刚望能主编电子工业出版社. 5.《java程序语言设计》丁振凡主编,薛清华副主编清华大学出版社. 指导教师 意见 (签字):年月日 系(教研室) 主任意见 (签字):年月日

网络操作系统考试试题库

一、选择题(共30分,每小题1分) 1、在操作系统中存在许多同时的或者并行的活动,这种特征称为(C) A、共享性 B、虚拟性 C、并发性 D、不确定性 2、用于连接磁带、磁鼓和磁盘等快速设备,以成组方式工作的是(D) A、字节多路通道 B、数组多路通道 C、控制器 D、选择通道 3、在静态下运行的操作系统程序中,只能在管态下执行而不能在算态下执行的特殊机器指令是(A) A、特权指令 B、系统调用指令 C、陷阱指令 D、访管指令 4、分时系统中,每个用户都有一种独点感,感到该系统好像为我一个用户在服务,这种特征是(B) A、同时性 B、独立性 C、分时性 D、交互性 5、在紧耦合多处理机系统中,处理机间实现相互通信的机制是(B) A、消息传递机制 B、共享主存 C、环形网络 D、总线网络 6、把操作系统分成若干进程,其中每个进程实现单独的一套服务,这种服务模式是(C) A、对象模式 B、对称多处理机模式 C、客户机/服务器模式 D、对等模式 7、进程从运行态进入就绪态的原因可能是(A)

A、时间片用完 B、被选中占有处理器 C、等待的I/O操作已完成 D、等待I/O操作 8、能够按照变化的情况对各种进程的优先级进行适当地调整,这种进程调度算法是(D) A、静态优先级算法 B、时间片轮转算法 C、先来先服务算法 D、动态优先级算法 9、在具有多线程机制的操作系统中,处理机调度的基本单位是(B) A、进程 B、线程 C、字节 D、块 10、为了加快查表速度,在地址变换机构中加入一组高速寄存器,这些寄存器连同管理它们的硬件构成了一个容量较小的存储器,称为(C) A、主存储器 B、辅助存储器 C、联想存储器 D、Cache 11、进程间的互斥是指进程间在逻辑上的相互关系是(D) A、调用 B、联接 C、直接制约 D、间接制约 12、在基于消息传递通信机制中,其核心成分是(A) A、通信原语 B、函数 C、参数 D、程序 13、根据通信协议来控制和管理进程间的通信的软件是(C) A、网络操作系统 B、网络传输软件 C、网络通信软件 D、网络应用软件 14、以虚拟软盘方式实现硬盘共享的软件必须具有四方面的功能,即盘卷管理、安装管理、信号量管理和(B)

生产者与消费者实验报告

生产者和消费者实验报告 【实验目的】 1.加深对进程概念的理解,明确进程和程序的区别。 2.进一步认识并发执行的实质。 3.验证用信号量机制实现进程互斥的方法。 4.验证用信号量机制实现进程同步的方法。 【实验要求】 用c语言编程搭建“生产者和消费者”经典进程通信问题的环境。要求程序运行时,按任意键停止,显示当前系统的各个参数的值。提交实验报告,以及相关程序列表。打包成附件上传。 【实验环境】 Visual C++6.0 【实验内容】 1.了解经典同步问题“生产者和消费者” 生产者与消费者可以通过一个环形缓冲池联系起来,环形缓冲池由几个大小相等的缓冲块组成,每个缓冲块容纳一个产品。每个生产者可不断地每次往缓冲池中送一个生产产品,而每个消费者则可不断地每次从缓冲池中取出一个产品。指针i和指针j分别指出当前的第一个空缓冲块和第一个满缓冲块。 2.分析和理解 (1)既存在合作同步问题,也存在临界区互斥问题 合作同步:当缓冲池全满时,表示供过于求,生产者必须等待,同时唤醒消费者;当缓冲池全空时,表示供不应求,消费者应等待,同时唤醒生产者。 互斥:缓冲池显然是临界资源,所在生产者与消费都要使用它,而且都要改变它的状态。 (2)基于环形缓冲区的生产者与消费者关系形式描述: 公用信号量mutex:初值为1,用于实现临界区互斥 生产者私用信号量empty:初值为n,指示空缓冲块数目 消费者私用信号量full:初值为0,指示满缓冲块数目 整型量i和j初值为0,i指示首空缓冲块序号,j指示首满缓冲块序号 (3)PV原语 var mutex,empty,full:semaphore; i,j:integer;buffer:array[0...n-1] of item; i:=j:=1; Procedure producer; begin while true do begin

操作系统期末试题及答案

《操 作 系 统》 期 末 试 卷 很好地解决了“碎片”问题的存储管理方法是( A.页式存储管理 B.段式存储管理 C.静态分区管理 D.可变分区管理 多道程序设计是指(D ) A.在实时系统中并发运行多个程序 C.在一台处理机上同一时刻运行多个程序 D.在一台处理机上并发运行多个程序 设有3个进程共享同一程序段 而每次最多允许两个进程进入该程序, 若用PV 操作作同步机制,则信号量S 的取值范围为 ( A. 2, 1, 0, -1 B . 3, 2, 1, 0 C . 2, 1, 0, -1 , -2 10、在提供虚拟存储的系统中,用户的逻辑地址空间主要受( C A.内存空闲块的大小 B .外存的大小 C.计算机编址范围 11、 采用时间片轮转法调度是为了 ( ) ° A.多个终端都能得到系统的及时响应 B ?先来先服务c 优先数高的进程先使用处理器 D ?紧急事件优先处理 12、 () 必定会引起进程切换。 A. —个进程被创建后进入就绪态 B. 一个进程从运行态变成等待态 C. 一个进程从运行态变成就绪态 D ?一个进程从等待态变成就绪态 13、 操作系统根据() 控制和管理进程,它是进程存在的标志。 A.程序状态字 B .进程控制块 C ?中断寄存器 D ?中断装置 14、 ( B )存储管理方式提供二维地址结构。 A.固定分区 B.分段 C.分页 D.可变分区 15、 在进程管理中,当( )时,进程从阻塞状态变为就绪状态。 A ?进程被进程调度程序选中 B ?等待某一事件 C .等待的事件发生 D ?时间片用完 二、填空题(20*1分=20分) 1、 在单用户环境下,用户独占全机,此时程序的执行具有 _封闭性 _______ 和_可再现性_° 2、 对于信号量,在执行一次P 操作时信号量-1_ ;当其值为__<0__时,进程应阻塞。在执行V 操作时信号量的值应当_信号量+1 _;当 其值为_<=0__ 时,应唤醒阻塞队列中的进程。 3、 进程的三种基本状态分别是 、进程的三种基本状态分别是 __运行 _______ , _就绪_和_阻塞(等待)__° 4、 多道程序环境下的各道程序, 宏观上它们是—并行__运行,微观上是—串行_运行。 5、 在单CPU 系统中有 (n>1)个进程,在任一时刻处于就绪的进程最多是 _^1__个,最少是 __0 _______ 个。 6、 分区管理方案不能实现虚存的原因是 —作业地址空间不能大于存储空间 _ ° 7、 段页式存储管理中,是将作业分 _段__段___________ 内分—页 ______ 。分配以_页 _______ 为单位。在不考虑使用联想存储器快表的情况下, 每条访问内存的指令需要 _______ 3___访问内存。其中第_2_次是查作业的页表。 姓名 一、选择题(15*2分=30分) 在操作系统中,JCB 是指(A A .作业控制块B ?进程控制块 C ?文件控制块D ?程序控制块 并发进程之间(D ) A.彼此无关B.必须同步C.必须互斥 D.可能需要同步或互斥 运行时间最短的作业被优先调度,这种调度算法是( A.优先级调度 B ?响应比高者优先 C )° C .短作业优先 D .先来先服务 某页式存储管理系统中,地址寄存器长度为 A. 210 B. 211 5、( D )是一种只能进行P 操作和V A ?调度B .进程C .同步D.信号量 在操作系统中,并发性是指若干事件( A.在同一时刻 B .一定在不同时刻 24位,其中页号占 C. 214 操作的特殊变量 ° C .在某一时间间隔内 14位,则主存的分块大小是(C )字节 D. 224 D ?依次在不同时间间隔内 B. 在分布系统中同一时刻运行多个程序 D . 1, 0, -1 , -2 )的限制。 D .页表大小

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