<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 7.6 任務鏈(Task Linking) TSS的返回鏈(back-link)字段和標志字中的NT(nested task)位允許80386自動返回到一個先前調用任務或被中斷的任務中去。當一條CALL指令,或中斷指令,或內部中斷,或一個異常引起了任務切換,到了一個新任務中。80386處理器自動使用當前任務的選擇子來填充新作任務的返回鏈字段,同時設置新任務標志寄存器的NT位。NT位指示出返回字段是否有效。新的任務通過IRET指令放棄當前控制。當解析IRET指令時,386檢查NT標志。如果NT位設置,80386切換到由返回字段指示的任務。表7-2總結這些字段的用處。 ![](https://box.kancloud.cn/2016-03-06_56dbfdaf51be8.jpg) ### 7.6.1 忙位防止了環(Busy Bit Prevents Loops) TSS描述符的B-位(busy bit)保證了返回字段的完整性。返回鏈可能會很深,這種情況發生在一個中斷任又被別的任務中斷時,或一個被調用的任務又調用別的任務時。忙位可以讓CPU檢測到這樣發生一個環的情況。環的形成是指試圖進入一個已忙的任務。但是TSS是不可重入的。 處理器照以下方法使用忙位: 1、? 當任務切換時,處理器自動設置新任務的忙位。 2、? 當任務切換時,如果舊任務沒有位于返回鏈上的話(也就是說引起任務切換的是一條JMP或IRET指令)處理器自動清除舊任務的忙位。如果任務位于返回鏈上,忙位被保留。 3、? 當向一個任務切換時,如果處理器發現新任務的忙位設置,則引發一個異常。 通過這些操作,處理器防止了任務切換到自已或是到一個已在任務鏈上的任務,所以防止了非法的任務重入。 忙位對于多處理器環境也是有效的,因為處理器在清除或設置忙位時會自動鎖定總線。這樣的操作可以防止2個處理器同時喚醒同一個任務(關于多處理器,請參看第11章)。 ### 7.6.2 修改任務鏈(Modifying Task Linkages) 所有對返回鏈和忙位的修改都應是由最受信任的代碼來操作的。這樣的修改可能會使一個被中斷的任務比一個中斷它的任務先恢復執行。受信任代碼必須在以下兩種方針下將一個任務從返回鏈中移去: 1、? 首先修改中斷任務的返回鏈字段,然后清楚被移除的任務的描述符的忙位。 2、? 保證在修改返回鏈和忙位時,沒有中斷發生。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看