zoukankan      html  css  js  c++  java
  • 竞争和临界区

    临界区

    访问临界资源的代码区被成为临界区,每次仅允许一个执行块进入临界区。一个线程进入了临界区然后因为系统调度而被打断,但此时他还是在临界区中的,所以此时其他执行线程还是不被允许进入临界区

    临界数据

    特定的共享数据区在一次访问过程中,不允许其他的访问穿插访问的情景。比如修改一个共享数据的时候不能允许其他的代码来同时访问(读和写有时候不一定都不被允许,和具体的业务需求相关)。比如对一个文件的写入过程不能被其他写入操作穿插执行,否则此时就会出现实际写入的内容和期望不符合。

    临界代码

    特定的临界代码不允许被打断,比如操作系统的调度或者中断程序的执行中断了特定代码段的执行,这种情况不多见但也是临界区的一种,比如常见的IAP代码中需要对Flash进行在线编程,大部分的芯片实现都是要求按一定的操作序列进行flash的编程解锁此时这个过程就是临界的因为如果中间产生了中断或系统调用导致操作序列中间被插入其他的操作就会导致硬件判断解锁序列非法进而无法正常编程flash。

  • 相关阅读:
    linux-nohup后台运行
    linux-友好显示文件大小
    System.exit(0)会跳过finally块的执行
    Spark-scala-API
    Lua协程-测试3
    Lua协程-测试2
    Lua协程
    费马大定理
    Spring事务超时、回滚的相关说明
    springboot测试service层的单元测试
  • 原文地址:https://www.cnblogs.com/w-smile/p/14403635.html
Copyright © 2011-2022 走看看