美文网首页
进程调度“写者优先问题”的思考

进程调度“写者优先问题”的思考

作者: 地球上的新新人 | 来源:发表于2019-04-28 13:47 被阅读0次

教材:林果园等.计算机操作系统[M],北京:清华大学出版社,2011.

注:在P45页下方,书上给出了写者优先算法,对于其中的信号量wr的作用有点想法。以下纯属个人思考,联系邮箱03170908@cumt.edu.cn,欢迎交流探讨。

书本程序如下:

int readcount=0,writecount=0;
semaphore mrc=1,mwc=1,wr=1,wsem=1,rsem=1;
cobegin

void reader_i(){
P(wr);P(rsem);
P(mrc);readcount++;if(readcount==1)P(wsem);V(mrc);
V(rsem);V(wr);
READ;
P(mrc);readcount--;if(readcount==0)V(wsem);V(mrc);}

void writer_i(){
P(mwc);writecount++;if(writecount==1)P(rsem);V(mwc);
P(wsem);WRITE;V(wsem);
P(mwc);writecount--;if(writecount==0)V(rsem);V(mwc);}

coend

写者优先的两个方面体现

公平情况下,根据到达时间的先后,决定执行的先后顺序。写者优先,意味着写者可以实现插队,优先于一部分在他前面到达并正排队中的读者执行。
情况1:正在运行的是写者,新的写者过来时可以优先于所有正在等待的读者,运行。
情况2:正在运行的是读者,新的写者过来时可以优先于大部分正在等待的读者,运行。

1.关于rsem的作用

当第一个写者到达申请占用rsem信号量,成功之后便一直占用,后续到达的读者会因申请不到rsem信号量而阻塞。后续写者到达时,由于不需要申请rsem信号量,因而可以直接排在这个写者后面,实现了上面的情况1。

2.关于wr的作用

当一个读者执行完计数,将要进入READ步骤而未释放rsemwr时,此时的其他读者等待在wr的阻塞队列,而其他写者等待在rsem的阻塞队列。因为先执行V(rsem)后执行V(wr),所以在同时等待时,写者会被优先唤醒,实现了情况2。

PS:这里对于写者的插队情况做一个详细分析:

1.针对情况1运行的是写者,无疑问的,因为在运行的写者始终持有着rsem,阻塞了所有等待中的读者,所以新来的写者可以直接插队到所有正在排队中的读者前面,插队到最前面

2.针对情况2运行的是读者,因为信号量wr的作用是,当有读者占有着rsem而未释放时,至多让一个读进程在rsem上排队,其余的读进程只能在wr上排队。所以写者到来时,如果有一队读者正在排队,新写者可以优先于所有处于wr的等待队列的读者,即插到第二位的位置。

相关文章

  • 进程调度“写者优先问题”的思考

    教材:林果园等.计算机操作系统[M],北京:清华大学出版社,2011. 注:在P45页下方,书上给出了写者优先算法...

  • 第三章 处理机调度与死锁

    3.2 作业与作业调度 3.2.3 先来先服务(FCFS)和短作业优先(SJF)调度算法 进程调度 进程调度方式:...

  • 操作系统:C++实现SJF(短作业优先调度算法)

    算法描述: 短作业(进程)优先调度算法(SJF),是指对短作业或短进程优先调度的算法。它们可以分 别用于作业调度和...

  • Linux 调度

    调度策略与调度类 进程包括两类: 实时进程(优先级高); 普通进程 两种进程调度策略不同: task_struct...

  • Android 进程管理篇(五)-调度策略与优先级

    接上篇cpuset,这篇来看看进程优先级与调度策略管理。 一、进程优先级与调度策略 Linux中,优先级号一共有0...

  • 读者写者问题

    读者写者问题的小总结。。。实际上就是抄书写者优先的情况 读进程优先的情况 二者公平竞争的情况

  • 操作系统笔记

    操作系统主要功能 进程管理(CPU管理) 进程控制:创建,暂停,唤醒,撤销 进程调度:调度策略,优先级 进程通信:...

  • RTLinux进程调度策略总结

    实时调度策略介绍 实时进程将得到优先调用,实时进程根据实时优先级决定调度权值,普通分时进程则通过nice和coun...

  • CPU竞争机制

    每个进程都有一个优先权与其关联,具有最高优先权的进程会被分配到CPU。具有相同优先权的进程按FCFS顺序调度。优先...

  • 处理器调度习题

    一、作业调度和进程调度结合 有一个内存中只能装入两道作业的批处理系统,作业调度采用短作业优先的调度算法,进程调度采...

网友评论

      本文标题:进程调度“写者优先问题”的思考

      本文链接:https://www.haomeiwen.com/subject/szddnqtx.html