在多任务执行过程中的,操作系统应解决两个问题:
一是各任务之间应具有一种互斥关系,即对于某个共享资源的访问,如果一个任务正在使用,则其他任务只能等待,等到该任务释放该资源以后,等待的任务之一才能使用它;
二是相关的任务在执行上要有先后次序,一个任务要等其伙伴发来通知或或消息或建立了某个条件后才能继续执行,否则只能等待。
任务之间的这种制约性的合作运行机制叫做任务间的同步。
OSAL采用事件标...
分类:
其他好文 时间:
2015-05-14 08:45:19
阅读次数:
189
当两个或两个以上的线程需要共享资源,它们需要某种方法来确定资源在某一刻仅被一个线程占用。达到此目的的过程叫做同步(synchronization)。像你所看到的,Java为此提供了独特的,语言水平上的支持。同步的关键是管程(也叫信号量semaphore)的概念。管程是一个互斥独占锁定的对象,或称互斥...
分类:
编程语言 时间:
2015-05-14 08:35:41
阅读次数:
160
最小化误分类率 假设我们的目标是尽可能降低错误分类。那么我们就需要一个给每个x值分配可用类的规则。这样的规则输入空间划分成区域Rk,称为决策区域,Rk中的所有点都被分配到类Ck。决定区域之间称为决策边界或决策表面。注意,每个决策区域不必是连续的,但由一些互斥的地区组成。我们将在后面的章节中遇到决策边界和决策区域的实例。为了找到最佳的决策规则,首先考虑两个类的所有情况,如癌症问题。当属于C1类的输入...
分类:
其他好文 时间:
2015-05-13 22:05:04
阅读次数:
297
线程共享进程的内存空间,打开的文件描述符,全局变量。当有多个线程同时访问一块内存空间或者一个变量、一个文件描述符,如果不加控制,那么可能会出现意想不到的结果。互斥(mutex)是相互排斥的意思,它是一种锁或者信号灯。互斥用来保护多个线程共享的数据和结构不会被同时修改,一个互斥锁只能有两个状态 –l....
分类:
编程语言 时间:
2015-05-12 01:30:34
阅读次数:
124
转载自:万一的博客 之前已经有了两种线程同步的方法: CriticalSection(临界区)和Mutex(互斥)吗,这两种同步方法差不多,只是作用域不同 CriticalSection类似于只有一个蹲位的公共厕所,只能一个个地进 Mutex 对象类似于接力赛中的接力棒,某一时刻只能有一个人...
分类:
编程语言 时间:
2015-05-11 16:04:56
阅读次数:
191
四个系统内核对象(事件、互斥、信号、计时器)都是线程同步的手段,从这也能看出处理线程同步的复杂性;不过这还不是全部,Windows Vista开始增加了 Condition variables(条件变量)、Slim Reader-Writer Locks(读写锁)等同步手段. 不过最简单、最轻...
分类:
编程语言 时间:
2015-05-11 16:04:17
阅读次数:
202
阅读本篇之前推荐阅读以下姊妹篇:《秒杀多线程第四篇一个经典的多线程同步问题》《秒杀多线程第五篇经典线程同步关键段CS》《秒杀多线程第六篇经典线程同步事件Event》前面介绍了关键段CS、事件Event在经典线程同步问题中的使用。本篇介绍用互斥量Mutex来解决这个问题。互斥量也是一个内核对象,它用来...
分类:
编程语言 时间:
2015-05-11 12:20:08
阅读次数:
221
原理分析:互斥对象是系统内核对象,各个线程都可以拥有它,谁拥有它谁就可以执行执行完毕,用ReleaseMutex 函数释放拥有权,以让其他等待的线程可以使用其他线程可以使用 WaitForSingleObject函数排队等待(等待也可以理解为排队申请) 使用过程var hMutex: T...
分类:
编程语言 时间:
2015-05-11 10:32:08
阅读次数:
160
在一个分布式系统中,把所有进程逻辑上组成一个环,首先每个进程知道其下一个进程是谁(通常更常用的应该是每个进程要维护一个记录,知道其后的所有其他进程,以便在其直接后继发生崩溃时,能把令牌传递给其后继,更有甚者传递给其后继的后继);
当环初始化时,进程0得到一个令牌(可以理解为一个互斥锁),该令牌沿着环进行传递,当进程获得到令牌后,会首先检查其是否有访问共享资源的需求,如果需要,则进行资源访问,访问...
分类:
编程语言 时间:
2015-05-10 19:00:43
阅读次数:
196
该算法的工作过程如下:当一个进程要访问共享资源时,它会构造一个消息,其中包含要访问的资源的名字、其进程号、当前时间戳;然后它将该消息发送给系统中的所有其他进程;当一个进程接收到来自另一个进程的请求消息时,它根据自己与消息中的资源相关的状态来决定它要采取的动作:
1)如果接收者没有访问资源,而且也没有访问的打算,就会给发送者一个OK消息;
2)如果接收者已获得对资源的访问,那么他就不进行应答(或...
分类:
编程语言 时间:
2015-05-10 17:19:48
阅读次数:
131