📄 mult_ts6.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="GENERATOR" content="Quadralay WebWorks Publisher Professional Edition 6.0.5">
<meta name="TEMPLATEBASE" content="book_html">
<meta name="LASTUPDATED" content="09/01/03 09:53:34">
<title>7.5 Inactive processes</title>
<STYLE TYPE="text/css">
<!--
span.Signal { text-transform: uppercase; font-family: Verdana }
-->
</STYLE>
</head>
<body link="#3366CC" vlink="#9999CC" text="#000000" alink="#0000CC" bgcolor="#FFFFFF"
background="images/backgrnd.gif">
<p><img src="images/stlogo.gif" width="106" height="83" align="left"
alt="logo here!"> </p>
<table width="331" border="0" align="right" cellpadding="0" cellspacing="0">
<tr>
<td><a href="st20c1to.htm"><img src="images/navtoc.gif" width="84" height="23"
border="0" alt="TOC"> </a></td>
<td><a href="mult_ts5.htm"><img src="images/navprev.gif" width="80" height="23"
border="0" alt="PREV"> </a></td>
<td><a href="mult_ts7.htm"><img src="images/navnext.gif" width="83" height="23"
border="0" alt="NEXT"> </a></td>
<td><a href="st20c1ix.htm"><img src="images/navidx.gif" width="84" height="23"
border="0" alt="INDEX"> </a></td>
</tr>
</table>
<p><br clear="all">
</p>
<hr align="left">
<blockquote>
<h2>
<a name="1102424"> </a><font color="#003366" face="Verdana, Arial, Helvetica, sans-serif">7.5 Inactive processes</font>
</h2><hr>
<p>
<a name="1102425"> </a><font size=2 face="Verdana, Arial, Helvetica, sans-serif">An inactive process is a process that is waiting for some event to occur, such as a process executing a <strong>run</strong> instruction or a peripheral completing a DMA. An inactive process cannot continue even if the CPU is idle. Inactive processes are not polled, but should be rescheduled by the event for which they are waiting. </font>
</p>
<p>
<a name="1102426"> </a><font size=2 face="Verdana, Arial, Helvetica, sans-serif">A process becomes inactive by saving its own state and then executing the <strong>stop</strong> instruction. <strong>stop</strong> automatically saves the <span class=Signal>Iptr</span> and <span class=Signal>Wptr</span> in the process control block. The code should save the <span class=Signal>Tdesc</span> in an appropriate place where the awaited event can find it. The <span class=Signal>Tdesc</span> points to the process control block. The <span class=Signal>Iptr</span> is loaded onto the evaluation stack using <strong>ldpi</strong>, the <span class=Signal>Wptr</span> using <strong>ldlp 0</strong> and the <span class=Signal>Tdesc</span> using <strong>ldtdesc</strong>. For example:</font>
</p>
<dl> <dl>
<dt> <a name="1102427"> </a><font size=2 face="Verdana, Arial, Helvetica, sans-serif"><strong>ldtdesc; ld tdesc_save_address; stnl 0;<br>stop;</strong> </font>
</dl>
</dl>
<p>
<a name="1102430"> </a><font size=2 face="Verdana, Arial, Helvetica, sans-serif">Two mechanisms are provided for rescheduling inactive processes.</font>
</p>
<ul>
<p> <font size=2 face="Verdana, Arial, Helvetica, sans-serif"><li ><a name="1102432"> </a>Executing the <strong>run</strong> instruction. This allows other processes to reschedule an inactive process. For example, this is used when semaphore signalling to a waiting process and could be used by other communications, possibly implemented by an operating system. </font></p>
<p> <font size=2 face="Verdana, Arial, Helvetica, sans-serif"><li ><a name="1102433"> </a>Scheduling an exception. This allows external devices to reschedule an inactive process. For example, this is used by DMA peripherals to wake a process waiting for the DMA to complete. Exception scheduling is described in <a href="using12.htm#1103353"><font color="#0000ff" face="Verdana, Arial, Helvetica, sans-serif"><i>Section
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -