cost 165 ms
通過文件實現信號量

[英]Implementing a semaphore through a file

感謝您花時間閱讀本文。 我正在嘗試在 linux 機器上使用 C 通過文件實現信號量。 我有兩個必須同步的進程,一個將文件的所有輔音存儲在一個數組中,另一個具有所有元音。 我已經安排了這些 arrays 以便如果我在它們之間交替,我可以重建原始文件並將其粘貼到另一個文件中。 現在的問題是使這兩個過程 ...

通過按鈕切換 LED (ESP32 FreeRTOS) + 二進制信號量

[英]Toggling LED through button (ESP32 FreeRTOS) + binary semaphore

我已經使用簡單的 freertos 想法完成了幾個項目:led、button。 實現信號量、隊列或一些中斷。 我無法艱難地運行這個簡單的代碼。 問題: 代碼構建得很好,閃爍到 ESP 也是如此。 當我按下按鈕時,它會在終端中顯示設計的消息。 看,這里唯一的問題在於我無法設置 LED 的電平,切 ...

沒有二進制信號量會發生什么

[英]What happens without a binary semaphore

假設下面的代碼演示了一個二進制信號量示例。 在此示例中,我們有一個 pthread 讀取 source.txt 並嘗試將內容復制到 destination.txt,同時使用二進制信號量鎖定它。 如果沒有信號量,下面的評論部分會發生什么? ...

在多線程環境中在 sem_wait 之前調用 sem_post

[英]Calling sem_post before sem_wait in multithreaded environment

對於基於二進制信號量的實現, sem_post() function 的行為尚不清楚。 在調用sem_post() sem_wait()會發生什么。 它會起作用嗎。 代碼示例: 線程 1: 線程 2: 在這里,如果在調用sem_wait()之前調用了一些sem_post() ) 方法,它會起作用嗎 ...

互斥量和二進制信號量之間的實際區別

[英]Actual difference between Mutex and Binary semaphore

所以,上周,我正在研究互斥量和信號量。 我找到了這篇文章,它確實幫助我弄清楚了信號量是什么。 現在我明白了二進制信號量和互斥量之間的理論差異是什么,我仍然想知道如何實際使用它們。 我目前正在使用 C#,但找不到在這種語言中使用二進制信號量的任何方法。 有人可以發布有關如何使用二進制信號量與互斥量的 ...

如何用一個信號量同步 3 個進程?

[英]How to synchronise 3 processes with one semaphore?

我收到了一項任務,用一個信號量同步 3 個任務。 前兩個任務生成隨機數,第三個任務打印其總和。 所以前兩個任務應該在開始時執行,第三個任務應該在最后執行。 到目前為止,下面的代碼給了我最接近我想要實現的結果,但是它顯然不時會陷入僵局,我無法想出一種只用一個信號量來解決這個問題的方法:( ...

Java:陷入無限循環

[英]Java: stuck in an infinite loop

我只想在我的服務完全停止時才做事。 因此,我創建了一個公共 static 變量,在onCreate()中將其初始化為 false,在onDestroy()中將其初始化為 false。 在我的活動中: 在我的服務中: 現在,當我的服務運行時,應用程序收到 NOT RESPONDING 消息。 ...

我想向讀者/作家提供二進制信號量的問題

[英]I want to readers/writers problem with binary semaphore

我有5位作家,20位讀者。 我想用二進制信號量解決讀者/作家的問題。 但是我的代碼有一些問題。 存在分段錯誤(核心已轉儲)。 我認為創建線程時存在問題。 我該如何解決這個問題? 是正確的代碼來解決讀寫問題嗎? 我使用了教科書的偽代碼。 ...

避免花很長時間來完成“太多牛奶”的情況

[英]Avoid taking a long time to finish the 'too much milk' scenario

以下是解決“牛奶過多問題”的簡單解決方案 問題在於,action-1可能要花費大量時間才能完成,使得等待獲取互斥量的任何進程都要等待很長時間。 避免這種情況的一種方法是設置一個計時器,以便一旦計時器關閉,購買牛奶的過程就會在有或沒有牛奶的情況下返回。 如您所見,這有問題。 (例 ...

futex工具返回了意外的錯誤代碼並已中止

[英]The futex facility returned an unexpected error code and Aborted

我正在嘗試使用信號量來解決哲學家的餐飲問題。 哲學家首先拿起左叉然后右叉,吃完后將它們放下。 我使用5個線程為每個哲學家實現這個,每個筷子使用5個信號量。 需要由父級執行死鎖檢查並在發現時解除死鎖。 當我只運行哲學家THINKING和EATING的循環程序崩潰時出現錯誤The futex ...

在代碼中使用二進制信號量

[英]Use of binary semaphore in the code

某個計算會生成兩個數組a和b ,這樣 a[i]=f(i) for 0 ≤ i < n and b[i] = g(a[i]) for 0 ≤ i < n 。 假設此計算分解為兩個並發進程X和Y ,使得X計算數組a而Y計算數組b 。 進程使用兩個二進制信號量R和S ,它們都初始化 ...

使用二進制信號量實現計數信號量

[英]Implementing Counting-Semaphore Using Binary-Semaphore

我已經實現了某種用戶級線程系統。我需要一些幫助來實現計數信號量,使用二進制信號量實現(如下所述的向上和向下函數)。 這是我實現的二進制信號量的接口: 這是計數信號量接口的接口: 我試圖做的是在 void up(struct count_semaphore* sem) 鎖定值。但是正如您在下面 ...

如何使用信號同步進程

[英]How to sync processes using semaphore

假設我有3個進程,包括一個父進程,我必須按P3,P1,P2的順序執行程序。 伙計們請幫我如何從過程P3開始計算。 我需要出{0,1,2,3,4,5,.. max} 供參考,我的代碼快照是:- 當我運行程序時,我得到以下輸出{0,3,,6,1,4,7,2,5,8} 我需 ...

如果release()在acquire()之前出現,則二進制信號量不起作用

[英]Binary Semaphore not working if release() comes before acquire()

我正在編寫一個測試代碼,發現如果我們將release()放在acquire()之前,那么二進制信號量功能將被破壞。 我檢查並發現,然后有一個線程通過了acquire() ,並將計數增加到N,其中N是線程數,因此與二進制信號量矛盾。 有人可以解釋這種行為嗎? ...

信號量/互斥量與Printf之間的同步

[英]Synchronization between Semaphore/Mutex and Printf

我正在為Operative System課程進行有關信號量和同步的練習(請參見下面的粗體 )。 練習的文本是這樣的: Pthread信號量和互斥量 C程序gen_binary_numbers.c在命令行上接收整數n,並使用遞歸生成並顯示n位的所有二進制數。 將遞歸程序轉換為並 ...

Hoare Monitor使用信號量實現?

[英]Hoare Monitor implementation using semaphores?

這是我4天的考試,我剛剛和我的講師談過,他對講課的這一部分一直非常不清楚,我和很多學生一起努力學習如何理解這一點。 基本上,如果您想使用信號量實現Hoare監視器,涉及的步驟順序是什么? 下面是偽代碼 ] 3 更新: 我現在開始明白了 所以第一張幻燈片用於 ...

飢餓測試和設置說明

[英]Starvation in test and set instruction

在GATE考試中提出了以下問題: 使用以下測試和設置指令來實現用於實現流程關鍵部分的enter_CS()和leave_CS()函數: 在上述解決方案中,X是與CS關聯的內存位置,並且被初始化為0。現在考慮以下語句: I.上述解決CS問題的方法沒有死鎖 二。 解決方案是無飢餓 ...

這種帶有二進制信號量的通用信號量的實現是否正確?

[英]Is this implementation of a general semaphore with binary semaphores correct?

證明或反駁下列信號量的正確性。 以下是我對此的看法。 好吧,如果有人實現它,那么在發出信號之前先等待運行,就會出現死鎖。 程序將調用wait,減少count,進入count < 0條件並在gate處等待。 因為它在門口等待,所以它不能繼續等待后的信號。 因此,在這種情況下,這可能意味着信 ...

如何將POSIX信號量值設置為1?

[英]How to set POSIX semaphore value to 1?

我正在用C語言實現信號量。我有一個POSIX計數信號量。 我想給它賦一個值。 而且我不想使用“等待”或“發布”。 我可以那樣做嗎? 是否有POSIX Semaphore之類的“ setValue”之類的函數? ...

使用C語言中的POSIX在多個進程(非線程,僅處理)之間共享二進制信號量

[英]Making binary semaphore shared between multiple processes(not threads , Process Only) using POSIX in C language

我正在使用C語言中的POSIX在多個進程(不是線程,僅處理)之間共享二進制信號量。 如果我使用互斥鎖創建二進制信號量, 我將只能在線程中使用它,但我想在進程之間共享。 所以我的問題是,如何使用posix計數信號量來制作二進制信號量? ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM