<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

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

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
            操作系統

            windows操作系統的同步機制與性能

            時間:2025-04-16 03:42:20 操作系統 我要投稿
            • 相關推薦

            windows操作系統的同步機制與性能

              windows操作系統的同步機制與性能

              最近看了下windows核心編程,雖然是比較老的書,但是感覺還是蠻有用的,順便復習了一些操作系統的知識,比如本文的進程同步機制

              用戶模式下的'線程同步

              線程之間需要通信:

              1.需要讓多個線程同時訪問一個共享資源,同時不能破壞資源的完整性

              2.一個線程需要通知其他線程某項任務已經完成

              方法一:原子訪問:Interlocked系列函數

              InterlockedExchangeAdd(long & ,int );

              InterlockedIncrement;

              InterlockedExchange;(實現旋轉鎖是有用)

              必須保證傳給這些函數的變量地址是對齊的,否則函數可能失敗

              interlockde函數不需要在內核模式與用戶模式之間切換

              旋轉鎖:禁用線程優先級提升

              多處理器的機器旋轉鎖比較有用,

              關鍵段:先循環一定次數,如果還是無法訪問,線程切換至內核模式,直到資源可用

              interlockedcompareexchange

              方法二:關鍵段

              CRITICAL_SECTION g_cs;

              EnterCriticalSection(&g_cs)

              …

              LeaveCrititalSection(&g_cs)

              關鍵段無法在多個進程之間對線程同步

              方法三:Slim讀/寫鎖

              和關鍵段相似,但是區分讀取線程和寫入線程

              SRWLOCK

              用內核對象進行線程同步

              在進程內核對象內部有一個布爾變量,當系統創建內核對象的時候會把這個變量的值初始化為false(未觸發),當進程終止時,操作系統會把相應的內核對象中的值設置為true,表示已經觸發。

              等待函數:WaitForSingleObject(HANDLE,DWORD)

              WaitForMultipleObjects(DWORD,CONST HANDLE* ,BOOL,DWORD)

              事件內核對象

              讓一個線程執行初始化工作,然后出發另一個線程,讓它執行余下的工作

              createEvent()

              OpenEvent()

              SetEvent()//觸發時

              ResetEvetn()

              可等待的計數器內核對象

              createWaitableTimer()

              OpenwaitableTimer()

              SetWaitableTimer()//觸發時

              信號量

              互斥量

            【windows操作系統的同步機制與性能】相關文章:

            Windows XP操作系統內存性能優化10-08

            什么是windows操作系統11-02

            Windows操作系統的特點07-11

            什么是windows操作系統01-23

            Windows操作系統優化技巧09-02

            Windows操作系統使用技巧09-22

            Windows 7操作系統技巧09-20

            Windows操作系統的維護常識07-05

            WINDOWS操作系統的進程描述10-13

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

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

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院