在一个飞机订票系统中,多个用户共享一个数据库。各用户可以同时查询信息,若有一个用户需要订票,需要更新数据库时,其余所有用户都不可以访问数据库。请用 P,V 操作设计一个同步算法,实现用户查询与订票功能。要求:当一个用户订票而需要更新数据库时,不能因不断有查询者到来而使其长时间等待。利用信号量机制保证其正常运行。
区块链毕设网qklbishe.com为您提供问题的解答
在一个飞机订票系统中,多个用户共享一个数据库。各用户可以同时查询信息,若有一个用户需要订票,需要更新数据库时,其余所有用户都不可以访问数据库。请用 P,V 操作设计一个同步算法,实现用户查询与订票功能。要求:当一个用户订票而需要更新数据库时,不能因不断有查询者到来而使其长时间等待。利用信号量机制保证其正常运行。
解:保证写者优先于读者,即一旦有写者到达时,则新读者要等待。
信号量:
● rmutex——当至少有一个写者到达时,阻止所有读者访问的互斥操作信号量,初值为1。
● wmutex——写者间以及读者与写者间互斥操作信号量,初值为1。
● x——控制 readcount 变量修改的互斥信号量,初值为1。
● y——控制 writecount 变量修改的互斥信号量,初值为1。
● z——有写者时只允许一个读者在 rmutex 上排队,其他读者在信号量z上排队,初值为1。
计数变量:
● readcount——读者计数器,初值为0。 它控制对 wmutex 的设置。
semaphore rmutex = 1;
semaphore wmutex = 1;
semaphore x = 1;
semaphore y = 1;
semaphore z = 1;
semaphore readcount = 0;
semaphore writecount = 0;
读者进程:
while (TRUE) {
P(z); // 判断是否有写者
P(rmutex);
P(x);
readcount++;
if (readcount == 1)
P(wmutex);
V(x);
V(rmutex);
V(z);
执行读操作
P(x);
readcount–;
if(readcount == 0)
V(wmutex);
V(x);
}
写者进程:
while (TRUE) {
P(y);
writecount++;
if(writecount == 1)
P(rmutex);
V(y);
P(wmutex);
执行写操作
V(wmutex);
P(y);
writecount–;
if(writecount == 0)
V(rmutex);
V(y);
}
以上就是关于问题在一个飞机订票系统中,多个用户共享一个数据库。各用户可以同时查询信息,若有一个用户需要订票,需要更新数据库时,其余所有用户都不可以访问数据库。请用 P,V 操作设计一个同步算法,实现用户查询与订票功能。要求:当一个用户订票而需要更新数据库时,不能因不断有查询者到来而使其长时间等待。利用信号量机制保证其正常运行。的答案
欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。
区块链NFT链游项目方科学家脚本开发培训
从业7年-专注一级市场
微信:btc9767
TELEGRAM :https://t.me/btcok9
具体资料介绍
web3的一级市场千万收益的逻辑
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 在一个飞机订票系统中,多个用户共享一个数据库。各用户可以同时查询信息,若有一个用户需要订票,需要更新数据库时,其余所有用户都不可以访问数据库。请用 P,V 操作设计一个同步算法,实现用户查询与订票功能。要求:当一个用户订票而需要更新数据库时,不能因不断有查询者到来而使其长时间等待。利用信号量机制保证其正常运行。
微信:btc9767
TELEGRAM :https://t.me/btcok9
具体资料介绍
web3的一级市场千万收益的逻辑
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 在一个飞机订票系统中,多个用户共享一个数据库。各用户可以同时查询信息,若有一个用户需要订票,需要更新数据库时,其余所有用户都不可以访问数据库。请用 P,V 操作设计一个同步算法,实现用户查询与订票功能。要求:当一个用户订票而需要更新数据库时,不能因不断有查询者到来而使其长时间等待。利用信号量机制保证其正常运行。
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 在一个飞机订票系统中,多个用户共享一个数据库。各用户可以同时查询信息,若有一个用户需要订票,需要更新数据库时,其余所有用户都不可以访问数据库。请用 P,V 操作设计一个同步算法,实现用户查询与订票功能。要求:当一个用户订票而需要更新数据库时,不能因不断有查询者到来而使其长时间等待。利用信号量机制保证其正常运行。
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 在一个飞机订票系统中,多个用户共享一个数据库。各用户可以同时查询信息,若有一个用户需要订票,需要更新数据库时,其余所有用户都不可以访问数据库。请用 P,V 操作设计一个同步算法,实现用户查询与订票功能。要求:当一个用户订票而需要更新数据库时,不能因不断有查询者到来而使其长时间等待。利用信号量机制保证其正常运行。