精华内容
下载资源
问答
  • 进程互斥的硬件实现方法

    进程互斥的硬件实现方法

    1.中断屏蔽方法

    2.TestAndSet(TS指令/TSL指令)

    3.Swap指令(XCHG指令)

    展开全文
  • 2.3.3进程互斥的硬件实现方法 知识总览 1.中断屏蔽方法 2.Test and Set指令 3.Swap指令 4.总结

    2.3.3进程互斥的硬件实现方法
    知识总览
    在这里插入图片描述
    1.中断屏蔽方法
    在这里插入图片描述
    2.Test and Set指令
    在这里插入图片描述
    3.Swap指令
    在这里插入图片描述
    4.总结
    在这里插入图片描述

    展开全文
  • 1、临界区互斥的硬件实现方法:提供了特殊的硬件指令,允许对一个字中的内容进行检测和修正,或者是对两个字的内容进行交换等。 2、中断屏蔽方法 当一个进程正在使用处理机执行它的临界区代码时,要防止其他进程再...

    1、临界区互斥的硬件实现方法:提供了特殊的硬件指令,允许对一个字中的内容进行检测和修正,或者是对两个字的内容进行交换等。
    2、中断屏蔽方法
    当一个进程正在使用处理机执行它的临界区代码时,要防止其他进程再进入其临界区访问的最简单方法是禁止一切中断的发生。典型模式为
    ……
    关中断;
    临界区;
    开中断;
    ……
    这种方法限制了处理机交替执行程序的能力,因此执行的效率将会明显降低。
    3、硬件指令
    TestAndSet指令
    这条指令是原子操作,即执行该代码时不允许被中断,其功能是读出指定标志后把该标志设置为真。指令的功能描述如下:
    Boolean TestAndSet(boolean *lock){
    Boolean old;
    old=*lock;
    *lock=true;
    return old;
    }
    可以为每个临界区资源设置一个共享布尔遍历lock,表示资源的两种状态:true表示正被占用,初始值为false。在进程访问临界资源之前,利用TestAndSet检查和修改标志lock;若有进程在临界区,则重复检查,直到进程退出。利用该指令实现进程互斥的算法描述如下:
    While TestAndSet(&lock);
    进程的临界区代码段;
    Lock=false;
    进程的其他代码;
    Swap指令:该指令的功能是交换两个字的内容。其功能描述如下。
    Swap(Boolean *a,Boolean *b){
    Boolean temp;
    Temp=*a;
    *a=*b;
    *b=temp;
    }
    以上对TestAndSet和Swap指令的描述仅仅是功能实现,并非软件实现定义,事实上它们是由硬件逻辑直接实现的,不会被中断。
    应为每个临界资源设置了一个共享布尔变量lock,初始值为false;在每个进程中再设置一个局部布尔变量key,用于与lock交换信息。在进入临界区之前先利用Swap指令交换lock与key的内容,然后检查key的状态;有进程在临界区时,重复交换和检查过程,直到进程退出。利用Swap指令实现进程互斥的算法如下:

    Key=true;
    While(key!=false)
    Swap(&lock,&key);
    进程的临界区代码段;
    Lock=false;
    进程的其他代码;
    硬件方法的优点:适用于任意数目的进程,不管是单处理机还是多处理机;简单、容易验证其正确性。

    展开全文
  • 2.3.3进程互斥的硬件实现方法 目录 2.3.3进程互斥的硬件实现方法 2.3.3.1 中断屏蔽 2.3.3.2TestAndSet指令(TSL指令) 2.3.3.3 SWAP指令 2.3.3.1 中断屏蔽 在本系列的第五节曾经提到过中断的概念,并说中断...

    2.3.3进程互斥的硬件实现方法

    目录

    2.3.3进程互斥的硬件实现方法

    2.3.3.1 中断屏蔽

    2.3.3.2 TestAndSet指令(TSL指令)

    2.3.3.3 SWAP指令


    2.3.3.1 中断屏蔽

      在本系列的第五节曾经提到过中断的概念,并说中断是操作系统夺回CPU的唯一方式,在这里中断屏蔽的想法与原语原子性保证的想法是一致的,即将临界区放在开中断与关中断之间,这样在临界区执行的过程中就无法发生中断,操作系统也就不会再夺回CPU访问临界资源了。这种方法虽然很简单但是如果用户进程随意使用中断这种内核态指令的话就会带来很大的危险。

    2.3.3.2 TestAndSet指令(TSL指令)

      
      我们来执行一下上面的代码,若刚开始 lock 是 false,则 TSL 返回的 old 值为 false,while 循环条件不满足,直接跳过循环,进入临界区。若刚开始 lock 是 true,则执行 TLS 后 old 返回的值为 true,while 循环条件满足,会一直循环,直到当前访问临界区的进程在退出区进行“解锁”。但是这个方法还是没完成让权等待的原则。

    2.3.3.3 SWAP指令

      逻辑上来看 Swap TSL 并无太大区别,都是先记录下此时临界区是否已经被上锁(记录在 old 变量上),再将上锁标记 lock 设置为 true,最后检查 old,如果 old false 则说明之前没有别的进程对临界区上锁,则可跳出循环,进入临界区。
    展开全文
  • 2.3.3 进程互斥的硬件实现方法 知识来源: B站王道考研 中断屏蔽方法 利用“开/关中断指令”实现。 关中断 临界区 开中断 关中断后不允许当前进程被中断,也必然不会发生进程切换。 开中断知道当前进程访问完临界...
  • 9、进程互斥的硬件实现方法思维导图1、中断屏蔽方法2、TestAndSet指令(TS指令、TSL指令)3、Swap指令(XCHG指令) 思维导图 1、中断屏蔽方法 2、TestAndSet指令(TS指令、TSL指令) 3、Swap指令(XCHG指令)
  • 目录思维导图中断屏蔽方法TestAndSet(TS/TSL)Swap指令(XCHG) 思维导图 中断屏蔽方法 TestAndSet(TS/TSL) Swap指令(XCHG)
  • 理解各方法原理 了解各方法优缺点 1.中断屏蔽方法 不适用于多处理机原因: 一个处理机A执行了关中断,意味着该进程不会被切换,顺利地访问临界区 另一个处理机可以正常切换进程,此时该进程也需要访问临界区...
  • 1.利用“开/关中断指令”实现(与原语的实现思想相同,即在某进程开始访问临界区到结束访问为止都不允许被中断,也就不能发生进程切换,因此也不可能发生两个同时访问临界区情况) 2.关中断:关中断后即不予许当前...
  • 假设lock现在为false,代表临界资源A空闲,那么我就可以访问这个资源,同时将lock=true,提醒别进程,这个临界资源A我正在使用,让他们等等 假设lock为true,代表临界资源正在有人使用,所以我...
  • 一、中断屏蔽方法 二、TestAndset指令 三、Swap指令
  • 与原语中的实现思想相同,即在某进程开始访问临界区到访问结束为止都不允许中断 也就是不能发生进程切换,因此不可能发生两个同时访问临界区情况 关中断 临界区 开中断 其中关中断后继不允许当前进程被中断 也...
  • 实现进程互斥的硬件方法 中断禁用 单处理器系统中进程在进入临界区前禁用中断,离开临界区后启用中断,这样保证进程在临界区时不会被打断,不会被抢占 while (true){ //禁用中断 //临界区 //启用中断 //其他部分...
  • 硬件实现 方法 优点 缺点 中断屏蔽 利用“开/关中断指令”实现, 简单,高效 1.不适用于多处理机系统... TSL指令使用硬件实现的,在执行过程中不允许被中断,只能一气呵成 bool ...
  • 目录一、进程同步互斥的基本概念1、临界资源2、同步3、互斥二、进程互斥的硬件软件实现方法 一、进程同步互斥的基本概念 1、临界资源 我们把一个时间段只允许一个进程使用的资源称为临界资源。例如许多物理设备...
  • ????进程互斥的硬件实现方法 ????软件实现 ????硬件实现 学习资源来源: 王道考研 操作系统
  • 目录 1.同步和互斥 ...3.进程互斥的硬件实现 3.1中断屏蔽方法 3.2TestAndSet指令 3.3swap指令 3.4小结 1.同步和互斥 2.进程互斥的软件实现 2.1单标志法 2.2双标志先检查法 2.3...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 565
精华内容 226
关键字:

互斥的硬件实现