亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? c-basic4.html

?? 這個包包是Vxworks的編程手冊!全英文的!很好很強大!希望大家喜歡?。。。?
?? HTML
?? 第 1 頁 / 共 5 頁
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><html><head><link rel="STYLESHEET" type="text/css" href="wrs.css"><title>     Basic OS   </title></head><body bgcolor="FFFFFF"><p class="navbar" align="right"><a href="index.html"><img border="0" alt="[Contents]" src="icons/contents.gif"></a><a href="GuideIX.html"><img border="0" alt="[Index]" src="icons/index.gif"></a><a href="c-basic.html"><img border="0" alt="[Top]" src="icons/top.gif"></a><a href="c-basic3.html"><img border="0" alt="[Prev]" src="icons/prev.gif"></a><a href="c-basic5.html"><img border="0" alt="[Next]" src="icons/next.gif"></a></p><font face="Helvetica, sans-serif" class="sans"><h3 class="H2"><i><a name="95697">2.4  &nbsp;&nbsp;Intertask Communications</a></i></h3></font><dl class="margin"><dl class="margin"><dd><p class="Body"><a name="93666"> </a>The complement to the multitasking routines described in the <a href="c-basic3.html#83567"><i class="title">2.3&nbsp;Tasks</i></a> is the intertask communication facilities. These facilities permit independent tasks to coordinate their actions.</p><dd><p class="Body"><a name="84910"> </a>VxWorks supplies a rich set of intertask communication mechanisms, including:</p></dl><dl class="margin"><p class="listspace"><ul class="Bullet" type="disc"><li><a name="84911"> </a><i class="term">Shared memory</i>, for simple sharing of data.</li></ul></p><p class="listspace"><ul class="Bullet" type="disc"><li><a name="84912"> </a><i class="term">Semaphores</i>, for basic mutual exclusion and synchronization.</li></ul></p><p class="listspace"><ul class="Bullet" type="disc"><li><a name="84913"> </a><i class="term">Message queues</i> and <i class="term">pipes</i>, for intertask message passing within a CPU.</li></ul></p><p class="listspace"><ul class="Bullet" type="disc"><li><a name="84914"> </a><i class="term">Sockets</i> and <i class="term">remote procedure calls</i>, for network-transparent intertask communication.</li></ul></p><p class="listspace"><ul class="Bullet" type="disc"><li><a name="84915"> </a><i class="term">Signals</i>, for exception handling.</li></ul></p></dl><dl class="margin"><dd><p class="Body"><a name="84916"> </a>The optional product, VxMP, provides intertask communication over the backplane for tasks running on different CPUs. This includes shared semaphores, shared message queues, shared memory, and the shared name database.</p></dl></dl><font face="Helvetica, sans-serif" class="sans"><h4 class="H3"><i><a name="84918">2.4.1  &nbsp;&nbsp;Shared Data Structures</a></i></h4></font><dl class="margin"><dl class="margin"><dd><p class="Body"><a name="84919"> </a>The most obvious way for tasks to communicate is by accessing shared data structures. Because all tasks in VxWorks exist in a single linear address space, sharing data structures between tasks is trivial; see <a href="c-basic4.html#84955">Figure&nbsp;2-8</a>. Global variables, linear buffers, ring buffers, linked lists, and pointers can be referenced directly by code running in different contexts.<div class="frame"><h4 class="EntityTitle"><a name="84955"><font face="Helvetica, sans-serif" size="-1" class="sans">Figure 2-8:&nbsp;&nbsp;Shared Data Structures</font></a></h4><dl class="margin"><div class="Anchor"><a name="84952"> </a><img class="figure" border="0" src="images/c-basica5.gif"></div></dl></div></p></dl></dl><font face="Helvetica, sans-serif" class="sans"><h4 class="H3"><i><a name="84958">2.4.2  &nbsp;&nbsp;Mutual Exclusion</a></i></h4></font><dl class="margin"><dl class="margin"><dd><p class="Body"><a name="84959"> </a>While a shared address space simplifies exchange of data, interlocking access to memory is crucial to avoid contention. Many methods exist for obtaining exclusive access to resources, and vary only in the scope of the exclusion. Such methods include disabling interrupts, disabling preemption, and resource locking with semaphores.</p></dl></dl><font face="Helvetica, sans-serif" class="sans"><h4 class="H4"><i><a name="84960">Interrupt Locks and Latency</a></i></h4></font><dl class="margin"><dl class="margin"><dd><p class="Body"><a name="84961"> </a>The most powerful method available for mutual exclusion is the disabling of interrupts. Such a lock guarantees exclusive access to the CPU:</p></dl><dl class="margin"><dd><pre class="Code"><b><a name="84963">    funcA ()         {         int lock = intLock();         .         . &nbsp;&nbsp;<i class="i">critical region that cannot be interrupted</i>          .         intUnlock (lock);         }</a></b></pre></dl><dl class="margin"><dd><p class="Body"><a name="84971"> </a>While this solves problems involving mutual exclusion with ISRs, it is inappropriate as a general-purpose mutual-exclusion method for most real-time systems, because it prevents the system from responding to external events for the duration of these locks. Interrupt latency is unacceptable whenever an immediate response to an external event is required. However, interrupt locking can sometimes be necessary where mutual exclusion involves ISRs. In any situation, keep the duration of interrupt lockouts short.</p></dl></dl><font face="Helvetica, sans-serif" class="sans"><h4 class="H4"><i><a name="84974">Preemptive Locks and Latency</a></i></h4></font><dl class="margin"><dl class="margin"><dd><p class="Body"><a name="84976"> </a>Disabling preemption offers a somewhat less restrictive form of mutual exclusion. While no other task is allowed to preempt the current executing task, ISRs are able to execute:</p></dl><dl class="margin"><dd><pre class="Code"><b><a name="84977">    funcA ()         {         taskLock ();         .         .&nbsp;&nbsp;<i class="i">critical region that cannot be interrupted </i>        .         taskUnlock ();         }</a></b></pre></dl><dl class="margin"><dd><p class="Body"><a name="84985"> </a>However, this method can lead to unacceptable real-time response. Tasks of higher priority are unable to execute until the locking task leaves the critical region, even though the higher-priority task is not itself involved with the critical region. While this kind of mutual exclusion is simple, if you use it, make sure to keep the duration short. A better mechanism is provided by semaphores, discussed in <a href="c-basic4.html#84992"><i class="title">2.4.3&nbsp;Semaphores</i></a>.</p></dl></dl><font face="Helvetica, sans-serif" class="sans"><h4 class="H3"><i><a name="84992">2.4.3  &nbsp;&nbsp;Semaphores</a></i></h4></font><dl class="margin"><dl class="margin"><dd><p class="Body"><a name="84993"> </a>VxWorks semaphores are highly optimized and provide the fastest intertask communication mechanism in VxWorks. Semaphores are the primary means for addressing the requirements of both mutual exclusion and task synchronization:</p></dl><dl class="margin"><p class="listspace"><ul class="Bullet" type="disc"><li><a name="84995"> </a>For <i class="term">mutual exclusion</i>, semaphores interlock access to shared resources. They provide mutual exclusion with finer granularity than either interrupt disabling or preemptive locks, discussed in <a href="c-basic4.html#84958"><i class="title">2.4.2&nbsp;Mutual Exclusion</i></a>.</li></ul></p><p class="listspace"><ul class="Bullet" type="disc"><li><a name="90663"> </a>For <i class="term">synchronization</i>, semaphores coordinate a task's execution with external events.</li></ul></p></dl><dl class="margin"><dd><p class="Body"><a name="90665"> </a>There are three types of Wind semaphores, optimized to address different classes of problems:</p></dl><dl class="margin"><dd><div class="Item"><a name="90666"> </a><i class="term">binary</i> </div><dl class="margin"><dl class="margin"><dd><div class="Indent2"><a name="87755"> </a>The fastest, most general-purpose semaphore. Optimized for synchronization or mutual exclusion.</div><br></dl></dl><dd><div class="Item"><a name="85004"> </a><i class="term">mutual exclusion</i> </div><dl class="margin"><dl class="margin"><dd><div class="Indent2"><a name="87757"> </a>A special binary semaphore optimized for problems inherent in mutual exclusion: priority inheritance, deletion safety, and recursion.</div><br></dl></dl><dd><div class="Item"><a name="85005"> </a><i class="term">counting</i> </div><dl class="margin"><dl class="margin"><dd><div class="Indent2"><a name="87759"> </a>Like the binary semaphore, but keeps track of the number of times a semaphore is given. Optimized for guarding multiple instances of a resource.</div><br></dl></dl></dl><dl class="margin"><dd><p class="Body"><a name="85006"> </a>VxWorks provides not only the Wind semaphores, designed expressly for VxWorks, but also POSIX semaphores, designed for portability. An alternate semaphore library provides the POSIX-compatible semaphore interface; see <a href="c-basic4.html#85561"><i class="title">POSIX Semaphores</i></a>.</p><dd><p class="Body"><a name="85010"> </a>The semaphores described here are for use on a single CPU. The optional product VxMP provides semaphores that can be used across processors; see <a href="c-smo.html#84368"><i class="title">6.&nbsp;Shared-Memory Objects</i></a>.</p></dl></dl><font face="Helvetica, sans-serif" class="sans"><h4 class="H4"><i><a name="85015">Semaphore Control</a></i></h4></font><dl class="margin"><dl class="margin"><dd><p class="Body"><a name="85016"> </a>Instead of defining a full set of semaphore control routines for each type of semaphore, the Wind semaphores provide a single uniform interface for semaphore control. Only the creation routines are specific to the semaphore type. <a href="c-basic4.html#85023">Table&nbsp;2-13</a> lists the semaphore control routines.<p class="table"><h4 class="EntityTitle"><a name="85023"><font face="Helvetica, sans-serif" size="-1" class="sans">Table 2-13:&nbsp;&nbsp;Semaphore Control Routines</font></a></h4><table border="0" cellpadding="0" cellspacing="0"><tr><td colspan="20"><hr class="tablerule"></td></tr><tr valign="middle"><th rowspan="1" colspan="1"><div class="CellHeading"><b><a name="85027"> </a><font face="Helvetica, sans-serif" size="-1" class="sans">Call</font></b></div></th><th rowspan="1" colspan="1"><div class="CellHeading"><b><a name="85029"> </a><font face="Helvetica, sans-serif" size="-1" class="sans"> Description </font></b></div></th></tr><tr><td colspan="20"><hr class="tablerule2"></td></tr><tr valign="top"><td colspan=1 rowspan=1><div class="CellBody"><a name="85036"> </a><b class="routine"><i class="routine">semBCreate</i></b><b>(&nbsp;)</b> &nbsp;</div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="85038"> </a>Allocate and initialize a binary semaphore.&nbsp;</div></td></tr><tr valign="top"><td colspan=1 rowspan=1><div class="CellBody"><a name="85041"> </a><b class="routine"><i class="routine">semMCreate</i></b><b>(&nbsp;)</b> &nbsp;</div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="85043"> </a>Allocate and initialize a mutual-exclusion semaphore.&nbsp;</div></td></tr><tr valign="top"><td colspan=1 rowspan=1><div class="CellBody"><a name="85046"> </a><b class="routine"><i class="routine">semCCreate</i></b><b>(&nbsp;)</b> &nbsp;</div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="85048"> </a>Allocate and initialize a counting semaphore.&nbsp;</div></td></tr><tr valign="top"><td colspan=1 rowspan=1>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜电影网亚洲视频| 欧美一区二区三区不卡| 国产精品麻豆一区二区| 精品国产乱码久久久久久久久 | 色哟哟一区二区在线观看| 国产伦精品一区二区三区视频青涩| 国产精品不卡在线| 91亚洲资源网| 成人性色生活片| 一区二区三区欧美日| 国产精品视频看| 国产欧美日韩激情| 久久久99久久| 精品粉嫩超白一线天av| 91农村精品一区二区在线| 国产69精品久久久久777| 亚洲永久免费av| 26uuu另类欧美亚洲曰本| 色婷婷久久综合| 黄一区二区三区| 亚洲图片欧美色图| 久久久久99精品一区| 欧美日韩视频在线一区二区| 91蜜桃免费观看视频| 不卡区在线中文字幕| 国产91精品欧美| 麻豆免费精品视频| 亚洲天堂免费看| 欧美日韩国产a| 欧美群妇大交群中文字幕| 欧美午夜电影网| 欧美日韩欧美一区二区| 成人国产精品视频| 午夜不卡av在线| 国产精品免费人成网站| 欧美精品日日鲁夜夜添| proumb性欧美在线观看| 成人亚洲一区二区一| 日韩和欧美一区二区三区| 午夜精品福利一区二区三区蜜桃| 国产精品污www在线观看| 日韩免费视频一区二区| 精品国产电影一区二区| 久久精品视频一区| 中文字幕在线播放不卡一区| 夜夜嗨av一区二区三区四季av | 成人免费在线观看入口| 亚洲视频一区二区免费在线观看| 一区二区三区四区av| 欧美成人午夜电影| 国产婷婷精品av在线| 国产精品美女久久久久久| 亚洲免费伊人电影| ●精品国产综合乱码久久久久| 久久色视频免费观看| 欧美一区二区在线不卡| 欧美日韩一二三区| 欧美手机在线视频| 一本色道亚洲精品aⅴ| 欧美日韩精品高清| 久久夜色精品国产噜噜av| 亚洲视频一区二区免费在线观看| 婷婷一区二区三区| 国产精品一线二线三线精华| 日本高清不卡视频| 精品美女被调教视频大全网站| 日韩欧美另类在线| 欧美一区二区三区不卡| 欧美一级片在线看| 国产精品久久久久aaaa樱花 | 亚洲一区二区三区四区五区黄| 日韩在线观看一区二区| 亚洲电影一区二区| 无吗不卡中文字幕| 成人性色生活片| 99国产欧美久久久精品| 日韩亚洲欧美成人一区| 中文字幕在线观看一区二区| 免费高清在线一区| 91蝌蚪porny| 久久夜色精品国产欧美乱极品| 中文字幕制服丝袜成人av| 天天综合天天综合色| 一区二区三区四区在线免费观看 | 国产成人精品www牛牛影视| 韩国毛片一区二区三区| 欧美综合色免费| 国产日韩精品一区二区浪潮av| 性做久久久久久| 色婷婷综合久久久久中文一区二区| 精品国产123| 国产欧美一区二区精品仙草咪| 亚洲国产精品一区二区www在线| 日日噜噜夜夜狠狠视频欧美人| 日本成人中文字幕在线视频| 色综合中文字幕| 中文在线资源观看网站视频免费不卡 | 欧美精品一区视频| 亚洲一区二区三区四区在线观看 | 国产欧美一区二区精品性| 最新日韩av在线| 国产sm精品调教视频网站| 精品国产91洋老外米糕| 国产精品国产三级国产| 另类的小说在线视频另类成人小视频在线| 久久99热99| 777精品伊人久久久久大香线蕉| 亚洲综合色婷婷| 91视频免费观看| 亚洲视频在线一区观看| 大陆成人av片| 欧美精品粉嫩高潮一区二区| 国产日产亚洲精品系列| 亚洲妇女屁股眼交7| 色婷婷激情一区二区三区| 最新久久zyz资源站| 蜜桃精品视频在线| 欧美一区日韩一区| 日一区二区三区| 国产91在线观看丝袜| 91丨porny丨户外露出| 制服丝袜亚洲色图| 免费观看在线色综合| 欧美一级片免费看| 久久精品国产免费看久久精品| 91丨九色丨蝌蚪富婆spa| 中文字幕一区不卡| 久久国产麻豆精品| 欧美精品一区二区在线播放| 亚洲国产裸拍裸体视频在线观看乱了 | 中文一区二区在线观看| 亚洲电影一区二区三区| 欧美伦理视频网站| 日本成人超碰在线观看| www.日本不卡| 亚洲精品中文在线观看| 国产九九视频一区二区三区| 久久久99久久精品欧美| 午夜欧美一区二区三区在线播放 | 国产精品国产精品国产专区不片| 日韩精品成人一区二区在线| 91一区二区在线| 日韩一区二区免费高清| 日韩电影网1区2区| 风流少妇一区二区| 国产精品福利影院| 91成人免费在线| 日韩精彩视频在线观看| 欧美中文字幕一区二区三区 | 成人性生交大片免费看在线播放 | 99久久综合精品| 亚洲午夜在线观看视频在线| 99久久精品99国产精品| 久久久精品中文字幕麻豆发布| 日韩综合一区二区| 久久久综合九色合综国产精品| 成人美女在线观看| 亚洲成人激情社区| 欧美在线观看18| 一区二区三区中文字幕| 91影院在线观看| 免费久久99精品国产| 国产日韩欧美电影| 欧洲精品一区二区| 国内精品视频一区二区三区八戒 | 亚洲第一会所有码转帖| 欧美日韩免费观看一区二区三区 | 成人18视频日本| 亚洲网友自拍偷拍| 久久精品这里都是精品| 国产精品综合视频| 久久久久国色av免费看影院| 激情六月婷婷综合| 久久这里只精品最新地址| 国产夫妻精品视频| 久久精品夜夜夜夜久久| 欧美丝袜丝交足nylons图片| 美女诱惑一区二区| 日韩欧美色电影| 精品一区二区三区的国产在线播放| 欧美一级在线免费| 久久精品国产一区二区三| 久久女同精品一区二区| 欧美影院精品一区| 国产v综合v亚洲欧| 免费成人av资源网| 日韩欧美电影一二三| 精品亚洲国内自在自线福利| 国产精品久久久久影院| 91精品国产欧美一区二区成人| 色婷婷综合久久久久中文一区二区 | 国模少妇一区二区三区| 国产亚洲精品久| 欧美中文字幕亚洲一区二区va在线| 成人小视频在线| 成人在线视频首页| 日韩经典中文字幕一区| 一区二区三区在线视频免费| 精品国免费一区二区三区| 4438亚洲最大|