📄 x-glossary.html
字号:
<dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5 class="HU"><i><a name="90550">priority</a></i></h5></font><dl class="margin"><dd><p class="Body"><a name="90551"> </a>The standard VxWorks scheduler provides 256 task priority levels, numbered 0 (highest) through 255 (lowest). Tasks are assigned a priority when created; however, while executing, a task may change its priority using <b class="routine"><i class="routine">taskPrioritySet</i></b><b>( )</b>. See also priority inheritance.</p></dl><dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5 class="HU"><i><a name="90557">priority inheritance</a></i></h5></font><dl class="margin"><dd><p class="Body"><a name="90559"> </a>Priority inheritance is a solution for the priority inversion problem. When a mutual exclusion semaphore is created with the <b class="symbol_UC">SEM_INVERSION_SAFE</b> option, priority inheritance is enabled. This algorithm ensures that a task that owns a resource executes at the priority of the highest-priority task pended on that resource. When the task gives up the resource, it returns to its normal priority. WindView shows priority inheritance with the <img class="figure" border="0" src="images/x-glossary11.gif"> stipple.</p></dl><dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5 class="HU"><i><a name="90570">priority inversion</a></i></h5></font><dl class="margin"><dd><p class="Body"><a name="90572"> </a>Priority inversion arises when a higher-priority task is forced to wait an indefinite period of time for the completion of a lower-priority task. For example, <b class="task">taskHi</b> needs to take the mutual exclusion semaphore for a region, but <b class="task">taskLow</b> currently owns the semaphore. Although<b class="task"> taskHi</b> preempts <b class="task">taskLow</b>, it pends immediately because it cannot take the semaphore. Under normal circumstances, <b class="task">taskLow</b> can now run, complete its critical region, and issue a <b class="routine"><i class="routine">semGive</i></b><b>( )</b>, releasing <b class="task">taskHi</b>. But if a third task, <b class="task">taskMed</b>, preempts <b class="task">taskLow</b> so that <b class="task">taskLow</b> is unable to issue the <b class="routine"><i class="routine">semGive</i></b><b>( )</b>, <b class="task">taskHi</b> may never get to run. See also priority inheritance.</p></dl><dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5 class="HU"><i><a name="90577">race condition</a></i></h5></font><dl class="margin"><dd><p class="Body"><a name="90578"> </a>When the outcome of a program is erroneously determined by which of two or more events occurs first (for example, is a particular variable read first, or updated first?), it is said that a race condition exists. This kind of problem can often be solved by using mutual exclusion semaphores to synchronize the tasks' use of the resource, or by using the <b class="routine"><i class="routine">intLock</i></b><b>( )</b> routine to synchronize ISRs and tasks.</p></dl><dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5 class="HU"><i><a name="90585">rBuff</a></i></h5></font><dl class="margin"><dd><p class="Body"><a name="90587"> </a>An rBuff is a dynamic ring buffer.</p></dl><dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5 class="HU"><i><a name="90590">rBuff configuration</a></i></h5></font><dl class="margin"><dd><p class="Body"><a name="90591"> </a>To configure the rBuff for WindView, use the <b class="guiLabel"><font face="Helvetica, sans-serif" size="-1" class="sans">Control Properties</font></b> dialog box. </p></dl><dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5 class="HU"><i><a name="90595">ready state</a></i></h5></font><dl class="margin"><dd><p class="Body"><a name="90601"> </a>A task is in the ready state (shown by the <img class="figure" border="0" src="images/x-glossary12.gif"> stipple) if it is not waiting for any resource other than the CPU; that is, it is ready to execute, but is not the highest-priority ready task in the system. See also task state, task state transition.</p></dl><dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5 class="HU"><i><a name="90608">real-time system</a></i></h5></font><dl class="margin"><dd><p class="Body"><a name="90609"> </a>General term referring to the "system" formed by the VxWorks operating system, your real-time application, and the target hardware. This system must respond to external events within prescribed time limits.</p></dl><dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5 class="HU"><i><a name="90614">resource</a></i></h5></font><dl class="margin"><dd><p class="Body"><a name="90616"> </a>A system object for which a task may contend with other tasks. Examples of resources are memory pool data structures, message queues, and semaphores. If the resource is not available, a task contending for that resource makes a transition to the pended state. See also task state transition.</p></dl><dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5 class="HU"><i><a name="90623">resume</a></i></h5></font><dl class="margin"><dd><p class="Body"><a name="90626"> </a>To resume a task means to change its state to that which it held before it was suspended; this is usually accomplished with the <b class="routine"><i class="routine">taskResume</i></b><b>( )</b> routine.</p></dl><dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5 class="HU"><i><a name="90630">round-robin scheduling</a></i></h5></font><dl class="margin"><dd><p class="Body"><a name="90632"> </a>A round-robin scheduling algorithm shares the CPU fairly among all ready tasks of the same priority (a priority group) by using time slicing. No task of a priority group is allocated a second slice of time before all tasks of a group have been given a slice. Round-robin scheduling is enabled with the <b class="routine"><i class="routine">kernelTimeSlice</i></b><b>( )</b> routine.</p></dl><dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5 class="HU"><i><a name="90638">running state</a></i></h5></font><dl class="margin"><dd><p class="Body"><a name="90640"> </a>See executing state.</p></dl><dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5 class="HU"><i><a name="90643">scheduling</a></i></h5></font><dl class="margin"><dd><p class="Body"><a name="90646"> </a>See preemptive priority scheduling and round-robin scheduling.</p></dl><dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5 class="HU"><i><a name="90649">semaphore</a></i></h5></font><dl class="margin"><dd><p class="Body"><a name="90651"> </a>A semaphore is a VxWorks system object that provides mutual exclusion of shared resources and intertask synchronization. See also binary semaphore, counting semaphore, mutual exclusion semaphore.</p></dl><dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5 class="HU"><i><a name="90659">sequential event display</a></i></h5></font><dl class="margin"><dd><p class="Body"><a name="90662"> </a>When a timestamp driver is not present, events are tagged with sequence numbers that represent the order in which the events occurred on the target. The events are then spaced equidistantly from each other in the view graph.</p></dl><dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5 class="HU"><i><a name="90667">Show Event dialog box</a></i></h5></font><dl class="margin"><dd><p class="Body"><a name="90668"> </a>The <b class="guiLabel"><font face="Helvetica, sans-serif" size="-1" class="sans">Show Event</font></b> dialog box displays information about the event: its name, its timestamp, the context in which it occurred, and any other event information that has been logged. Double-click on an event icon in the view graph, or right-click on the icon and click <b class="guiLabel"><font face="Helvetica, sans-serif" size="-1" class="sans">Show Event</font></b> in the event pop-up menu, to display this information. </p></dl><dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5 class="HU"><i><a name="90674">show routine</a></i></h5></font><dl class="margin"><dd><p class="Body"><a name="90675"> </a>VxWorks includes information facilities for most system services. The <b class="routine"><i class="routine">show</i></b><b>( )</b> routine prints pertinent system status on the specified object or service to the <b class="file">stdout</b> file descriptor. This routine presents only a snapshot of the system service at the time of the call and may not reflect the current state of the system; however, it can be useful in conjunction with WindView, showing, for example, the list of tasks pending on a semaphore or the contents of a message queue. See the <i class="title">VxWorks Reference Manual</i> for more information on the <b class="routine"><i class="routine">show</i></b><b>( )</b> routine.</p></dl><dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5 class="HU"><i><a name="90678">signal</a></i></h5></font><dl class="margin"><dd><p class="Body"><a name="90679"> </a>VxWorks supports UNIX BSD-style signals as well as POSIX-compatible signals for asynchronous transfer of control within a task, based on hardware or software exceptions.</p><dd><p class="Body"><a name="90681"> </a>The VxWorks software signaling facility provides a set of 31 distinct signals. A task can specify a signal handler routine to take appropriate action when the associated signal is received. When signal handling is complete, normal task execution resumes, unless the signal corresponds to an exception.</p></dl><dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5 class="HU"><i><a name="90684">signal handler</a></i></h5></font><dl class="margin"><dd><p class="Body"><a name="90686"> </a>A signal handler is a user-supplied routine that is bound to a specific signal (with the <b class="routine"><i class="routine">sigvec</i></b><b>( )</b> or <b class="routine"><i class="routine">sigaction</i></b><b>( )</b> routine) and performs whatever actions are necessary whenever the signal is received. The task being signaled immediately stops execution of its current thread and begins execution of a task-specified signal handler routine. Note that the signal handler gets invoked even if the task is blocked. Signals are most appropriate for error and exception handling, rather than as a general intertask communication facility.</p></dl><dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5 class="HU"><i><a name="90691">socket</a></i></h5></font><dl class="margin"><dd><p class="Body"><a name="90693"> </a>A socket is a software interface for transferring byte streams between tasks, regardless of location in a networked application.</p></dl><dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5 class="HU"><i><a name="90697">state</a></i></h5></font><dl class="margin"><dd><p class="Body"><a name="90699"> </a>See task state.</p></dl><dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5 class="HU"><i><a name="90702">state stipple</a></i></h5></font><dl class="margin"><dd><p class="Body"><a name="90704"> </a>The state stipples are the horizontal lines on the view graph that show the current state of each task in the real-time system. For information on what each state stipple represents, see the Legend window.</p></dl><dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5 class="HU"><i><a name="90711">sub-time interval</a></i></h5></font><dl class="margin"><dd><p class="Body"><a name="90713"> </a>A sub-time interval is the space between two time instants. Select the beginning and ending time instants by clicking and dragging. Two vertical lines are displayed in the event log, and details about the sub-interval are displayed in the time interval field. It can be useful to know the amount of time that has occurred between events, or to select a sub-interval that you zoom in on with the<b class="guiLabel"><font face="Helvetica, sans-serif" size="-1" class="sans"> Zoom In</font></b> icon.</p></dl><dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -