qy千亿-千亿(国际)唯一官方网站

  • 新闻资讯

    医患求助系统厂家-程控交换软件进程的同步

    2023-10-20 12:37

                引入进程的程控交换软件还应考虑进程的同步(Synchroniza-tion)和互斥(MutualExclusion)o各种程控交换系统由于中断机理、调度策略、资源分配方式等方面的差异,对同步和互斥的要求和实现方式也会有所不同。例如,S1240系统考虑了对SSM(系统支援机)内的共享数据的可靠存取,设置了临界区(CriticalRegion),并采用监控(Monitor)方式。原语ENTER_MONITOR(进入监控)可使运行进入监控方式,设置新的中断屏蔽字,使所有可屏蔽中断不能进入。原语EXIT一MONITOR(退出监控)则用来退出监控方式,恢复原有中断屏蔽字。

    DMS-100系统对进程的同步和互斥有较多的设施,以下作一介绍。

    1.进程的同步

                在DMS—100系列中,同步是指对进程访问共享数据和申请共享的系统资源的同步,设置了号志和标志两种同步原语。

    (1)号志

                DMS-100系统采用Dijkstra提出的号志概念,以保证对共享数据的有效存取。

    ①psema和vsema原语

                每个临界区可具有相应的号志。所谓临界区,是指在任一时刻只允许一个进程在执行的程序段,也可称为互斥段。
                每个进程要进入某临界区,必须先申请号志,调用过程psema:DCLpsemaPROC(sidsemaid usertypesemauser UPDATESsrcsemarc)

    sid:与该临界区对应的号志识别码。

    usertype:赋与用户进程的访问类别(读或写)。

    src;指示号志是否可用的返回码。

                当进程离开临界区,要调用过程vsema以释放号志:DCLvsemaPROC(sidsemaidUPDATESsrcsemarc)

    sid:调用psema时所指定的号志识别码。

    src:返回码。

    ②号志状态

    号志可具有以下3种状态:

    (a)idle(空闲)

                没有进程在临界区执行。

    (b)readersin(读)

                一个或多个进程在临界区执行以读出数据。
    (c)writerin(写)

                一个且只能有一个进程在临界区执行以写入数据,了解也要读出数据。

    ③号志队列

                每个号志具有相应的队列,队列中是等待进入临界区的各个进程,采用先到来先服务(First一ComeFirst一Served一FCFS)的原则。当正进临界区执行的进程调用了vsema后,可从队列中取一个进程。可用时限来保证较短的等待时间,时限是从该进程排到队列之首时才起算。如超过时限,则“杀死”迟迟不离开临界区的进程,而使排在队首的进程进入临界区。

                要对数据写入的进程在申请号志时,如果号志状态为读或写,都不能进入临界区而要排入号志队列。要读出数据的进程在申请号志时,号志状态为空闲或读状态,队首并无要写入数据的进程在等待,则可进入临界区。

    在读状态时可设一计数器指示在临界区内的进程数,每当一个进程调用vsema,则计数器减lo当计数器减到零,状态改为空闲。

                (2)标志

                标志用来控制有限的系统资源(例如缓冲器)的分配和归还。每种有限的资源具有对应的标志,标志中的计数器的初值为资源的数量,每当分配一个资源,标志计数器减,每当归还一个资源,标志计数器增1。因此,标志计数器中反映了此刻可用的资源数。标志计数器还可以为负值,表明资源全忙时在等待分配资源的进程数。

    在要求分配某种资源时,进程必须先作申请标志的操作,调用过程claimflag:DCLclaimflagPROC(flidflagid timeouttime UPDATESfireflagrc)

    Hid:标志识别码。

    timeout:进程在队列中等待分配资源的最大时间°

    fire:返回码。

                claimflag过程将首先检查标志计数器。如计数器大于零,申请成功,将资源分配给进程,进程可继续运行。如计数器小于或等于零,表示资源已全忙,进程被挂起而置于标志队列之中。在两种情况下都要将计数器减lo进程等待时长可用时限监视,时限从进程进入等待队列开始起算。返回码可反映申请成功与否等不同情况。

    当进程归还资源时,调用过程releaseflag,执行释放标志的操作:DCLreleaseflagPROC(flidflagid UPDATESfireflagrc)

                releaseflag将计数器增1,如果有进程在等待队列中,则可取出队首的进程进行资源分配。

    上一篇:ICU探视系统厂家-采用可变扫描周期时的BHCA值
    返回
    下一篇:医院探视系统厂家-什么是呼叫对讲


    【网站地图】【sitemap】