mutual-exclusion

    1熱度

    1回答

    我想通過Swap函數解決互斥問題,但程序遭受死鎖,我不知道爲什麼。這似乎是一個線程exec連續兩次發生的問題。 的交換鎖邏輯: 每個線程化妝使用本地可變的和共享變量。 線程首先鎖定其本地變量(例如,假定1個值)。 當一個線程本地變量被解鎖(例如假設0的值),它可以執行該臨界區,如果線程本地變量被鎖定(例如假設值爲1)的線程處於忙着等待(該忙等待測試本地變量解鎖並調用交換功能) 交換函數設定本地變量

    0熱度

    1回答

    我一直在研究基於Quorums概念的分佈式互斥算法。 報價: 一個小團C被定義爲一組集合,其中每個集合g∈C稱爲一個法定數。 以下屬性持有用於在小集團法定人數: 1)交性質:對於每一個仲裁G,H∈C,G∩H =∅。 例如,集合{1,2,3},{2,5,7}和{5,7,9}不能成爲小組中的法定人數,因爲第一組和第三組沒有公共元素。 2)最小屬性:在小圈C中不應有定額g,h,例如 即g⊇h。例如,集合

    0熱度

    1回答

    我有作業。 每個應用程序必須等待他們的每個活動。 但是,我可以將此場景編寫爲pthread,但必須使用不同的應用程序編寫此場景。 我可以用下面的代碼編寫pthread應用程序; pthread_mutex_lock(&mutex2); printf("I am in i"); pthread_mutex_unlock(&mutex2); 請求我;用戶按以下格式運行應用程序; ./appli

    2熱度

    5回答

    我正在閱讀高爾文的操作系統概念。在信號量部分中,它表示在修改信號值時必須禁用處理器的所有中斷。 爲什麼這是必需的?

    0熱度

    1回答

    我有幾個用戶試圖同時使用PHP腳本訪問表。 下面是一些代碼: $result = mysql_query("SELECT ID FROM usersPark WHERE isSharing = '1' and email != '$email' and isBooked != 1") 現在,如果$結果不是空的,我需要設置isBooked = 1是這樣的: UPDATE `usersP

    0熱度

    2回答

    我有以下的情況線程和鏈表(C語言): 首先,我創建了一個int鏈表(已經工作,沒有與此問題),我需要執行以下任務: 使用2個線程,一個線程將刪除我的列表中的第一個元素,之後,同一個線程必須在列表末尾添加一個新元素(該列表遵循FIFO結構)。 第二個線程將執行相同的操作:刪除第一個元素並在列表的末尾添加另一個元素。 我需要多次執行此操作,這明顯通過使用循環完成。 當我創建線程,我使用下面的函數: f

    0熱度

    1回答

    對於下面,我想知道在下面的情況下會發生什麼: //global declarations Boolean in1=false, in2=false; Process P1:: while(1){ //entry protocol while(in2){ in1=true; } //--critical section -- //ex

    0熱度

    2回答

    我感到困惑操作系統的同步部分之間的差異。我不明白互斥問題用在監控和信號燈。它們有什麼不同? 顯然;在Monitor和Semaphore上使用Mutual Exclusion有什麼不同?或者在監視器和信號量中使用相互排斥的規則,是否也適用相同的規則? 附加註釋=這句話被搞糊塗了。 「信號燈和監控器都設計爲一個或多個CPU,這些CPU都可以訪問到一個共同的存儲解決互斥問題」 而且我讀這些文章= Mon

    4熱度

    2回答

    我在自旋模型檢查很新,想知道這是什麼錯誤意味着: unreached in proctype P1 ex2.pml:16, state 11, "-end-" (1 of 11 states) unreached in proctype P2 ex2.pml:29, state 11, "-end-" (1 of 11 states) 這裏是我的代碼:

    0熱度

    3回答

    我在我們基於C的應用程序中遇到了一個問題,其中VxWorks TASK之一(比如Task1)由於某些未知原因而崩潰。崩潰的任務鎖定了互斥信號量(比如semA)。 現在下一個TASK2正在等待semA以獲得解鎖。由於semA被一個崩潰的TASK鎖定,因此TASK2將無限等待以獲取semA。這已破壞應用程序功能。 我們無法提供超時來鎖定TASK2中的semA,因爲semA正在保護通過套接字發送數據的發