当前位置:首页 > 四级网络工程师 > [2] > 正文内容

[2][34][多选]关于读者写者问题,下列叙述中哪些是错误的

[2]1年前 (2025-01-21)
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);
    }
}


信号量w的初值是0

信号量mutex的初值是1

计数器rc的初值是0

语句P(mutex的位置可以放到语句rc = rc + 1后面

语句①②可以取消


答案


信号量w的初值是0

语句P(mutex的位置可以放到语句rc = rc + 1后面

语句①②可以取消


解析


1. 信号量w是为了互斥访问写操作,初始值应为1。因为写操作是互斥的,同一时间只能有一个写操作进行,当有写操作时,需要将w信号量减1,使其变为0,阻止其他写操作进入,当写操作完成后,将w信号量加1,允许其他写操作进行。

2. P (mutex 是为了互斥访问rc这一临界资源,不能随意更改执行顺序。rc用于记录正在进行读操作的读者数量,通过mutex信号量来保证对rc的操作是原子性的,即不会被其他进程或线程打断。

3. 语句①②的存在使得多个reader可以同时访问,不能取消。这部分代码实现了读写互斥和多读互斥的功能。当第一个读者进入时,通过P (w操作来阻止写操作,当最后一个读者离开时,通过V (w操作来允许写操作,保证了读写之间的正确同步。故本题答案选择ADE选项。

【涉及考点】

第4章 并发与同步


转载请注明出处。

本文链接:http://www.pythonopen.com/?id=1835

相关文章

[2][1][单选]在操作系统的结构设计中,微内核结构表示的是

整体式结构层次结构分布式结构客户机/服务器结构答案客户机/服务器结构解析常见的操作系统体系结构有整体...

[2][7][单选]Linux操作系统中,进程有多种状态。下列状态中,哪一个不是Linux支持的状态

运行状态安全状态僵尸状态睡眠状态答案安全状态解析Linux上进程有5种状态:运行状态、中断状态、不可...

[2][11][单选]系统中有2个并发进程,当一个进程在等待另一个进程向它发送消息时,它们之间的关系是

同步关系互斥关系调度关系父子进程关系答案同步关系解析异步环境下的一组并发进程因直接制约而互相发送消息...

[2][15][单选]在可变分区存储管理方案中,为加快内存分配,当采用最佳适应算法时空闲区的组织应该是

按空闲区大小递减顺序排列按空闲区大小递增顺序排列按空闲区地址从小到大排列按空闲区地址从大到小排列答案...

[2][17][单选]虚拟存储空间的大小受到下列哪一因素的限制

栈空间大小物理内存大小数据量的实际大小计算机地址位宽答案计算机地址位宽解析虚拟存储器的容量主要受外存...

[2][26][单选]设备按信息交换单位进行分类,可分为

系统设备和用户设备系统设备和块设备块设备和字符设备存储设备和控制设备答案块设备和字符设备解析按信息组...