试利用记录型信号量些出一个解决读者-写者问题的算法
试利用记录型信号量些出一个解决读者-写者问题的算法
参考答案和解析
semaphore full=0, empty=N, mutex=1 ; 生产者进程 producer i(i=1,2, ...... ) do { 生产数据 ; P ( empty ) ; P ( mutex ) ; // 进入缓冲区 向共享缓冲区写入数据 ; V ( mutex ) ; V ( full ) ; // 退出缓冲区 }while(1) 消费者进程 consumer j(j=1,2, ...... ) do { P ( full ) ; P ( mutex ) ; // 进入缓冲区 从共享缓冲区读出数据 ; V ( mutex ) ; V ( empty ) ; // 退出缓冲区 消费数据 ; }while(1);
相关考题:
关于读者写者问题,下列叙述中哪些是错误的? Reader() { while (TRUE) { P(mutex); rc = rc + 1; if (rc = = 1) P (w); V(mutex); ① 读操作; P(mutex); ② rc = rc - 1; if (rc = = 0) V(w); V(mutex); 其他操作; } } writer() { while (TRUE) { …… P(w); 写操作; V(w); } }A.信号量w的初值是0B.信号量mutex的初值是1C.计数器rc的初值是0 rc是互斥资源么D.语句P(mutex)的位置可以放到语句rc = rc + 1后面E.语句①②可以取消
设有一缓冲池P,P中含有20个可用缓冲区,一个输入进程将外部数据读入P,另有一个输出进程将P中数据取出并输出。若讲程每次操作均以一个缓冲区为单位,试用记录型信号量写出两个进程的同步算法,要求写出信号量的初值。
算法是为解决某个问题而设计的步骤和方法。以下关于算法的叙述中,不正确的是 (52)。A.解决同一个问题,不同的人(甚至是同一个人)可能会写出几种不同的算法B.常用算法主要有迭代法、穷举搜索法、递推法、递归法、贪婪法、回溯法等C.递推法是利用所解问题本身所具有的递推关系来求得问题解的一种算法D.任何可以用递推法解决的问题,亦可用递归法解决,反之亦然
解决一个问题通常有多种方法。若说一个算法“有效”是指()A、这个算法能在一定的时间和空间资源限制内将问题解决B、这个算法能在人的反应时间内将问题解决C、这个算法比其他已知算法都更快地将问题解决D、A和C
允许多个用户同时使用同一个共享文件时,下列()做法是不对的。A、允许多个用户同时打开共享文件执行读操作B、允许读者和写者同时使用共享文件C、不允许读者和写者同时使用共享文件D、不允许多个写者同时对共享文件执行写操作
单选题允许多个用户同时使用同一个共享文件时,下列()做法是不对的。A允许多个用户同时打开共享文件执行读操作B允许读者和写者同时使用共享文件C不允许读者和写者同时使用共享文件D不允许多个写者同时对共享文件执行写操作
单选题解决一个问题通常有多种方法。若说一个算法“有效”是指()A这个算法能在一定的时间和空间资源限制内将问题解决B这个算法能在人的反应时间内将问题解决C这个算法比其他已知算法都更快地将问题解决DA和C
问答题试说明效率比法、图解法、表上作业法、匈牙利算法可以解决哪些问题。