| 6 | 1/1 | 返回列表 |
| 查看: 1678 | 回復(fù): 5 | ||
wahaha2000銅蟲 (小有名氣)
|
[求助]
請教一個(gè)while loop程序的問題
|
|
程序的代碼如下: int turn; boolean flag[2]; do { flag=TRUE; turn=j; while ( flag && turn==j); critical section flag = false; remainder section } while (TRUE); 這是Abraham Siberschatz等寫的《操作系統(tǒng)概念(第七版 影印版)》第196頁的代碼。 我想問的是:語句 while ( flag && turn==j); 有什么作用?我在譚浩強(qiáng)的C語言書和《C語言參考手冊》中沒找到合適的解答? 非常感謝! |
金蟲 (著名寫手)
|
這個(gè)是系統(tǒng)的互斥鎖吧,你用譚浩強(qiáng)教的東西怎么能學(xué)到這種東西呃~ flag是一個(gè)互斥鎖,需要進(jìn)入臨界區(qū)的進(jìn)程都把自己的鎖設(shè)置為true 這里只假設(shè)有兩個(gè)進(jìn)程,進(jìn)程1需要進(jìn)入臨街區(qū)時(shí)就把自己的開關(guān)打開,然后去檢查另外一個(gè)鎖,這里分三種情況: 1.另外一個(gè)鎖被打開了 2.兩個(gè)進(jìn)程同時(shí)在競爭,本進(jìn)程競爭失敗 3.本進(jìn)程競爭成功 只有情況3才進(jìn)入臨界區(qū)。情況1是檢查flag[ 1 - ture ]為true的情況,情況2是ture不指向 j 的情況。 |

木蟲 (正式寫手)
銅蟲 (小有名氣)
銅蟲 (小有名氣)
|
再比如下面的代碼: 【 while (true) { /* produce an item in nextProduced */ while (counter == BUFFER_SIZE) ; /* do nothing */ buffer[in] = nextProduced; in = (in + 1) % BUFFER_SIZE; counter++; } 】 其中【while (counter == BUFFER_SIZE) ; 】起什么作用? (1)若 counter == BUFFER_SIZE 為真,程序怎么運(yùn)行? 【buffer[in] = nextProduced; in = (in + 1) % BUFFER_SIZE; counter++; 】 還接著運(yùn)行嗎? (2)若 counter == BUFFER_SIZE 為假,程序怎么運(yùn)行? 能否給我推薦一本有此內(nèi)容的參考書,非常感謝! |
木蟲 (正式寫手)
| 6 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 304求調(diào)劑 +6 | 曼殊2266 2026-03-27 | 6/300 |
|
|---|---|---|---|---|
|
[考研] 材料與化工(0856)304求B區(qū)調(diào)劑 +8 | 邱gl 2026-03-27 | 8/400 |
|
|
[考研] 322求調(diào)劑 +6 | 宋明欣 2026-03-27 | 6/300 |
|
|
[考研] 求調(diào)劑 +4 | 零八# 2026-03-27 | 4/200 |
|
|
[考研] 085600,材料與化工321分,求調(diào)劑 +9 | 大饞小子 2026-03-27 | 9/450 |
|
|
[考研] 314求調(diào)劑 +3 | 溪云珂 2026-03-26 | 3/150 |
|
|
[考研] 324求調(diào)劑 +5 | hanamiko 2026-03-26 | 5/250 |
|
|
[碩博家園] 北京林業(yè)大學(xué)碩導(dǎo)招生廣告 +6 | kongweilin 2026-03-26 | 8/400 |
|
|
[考研] 316求調(diào)劑 +5 | 江辭666 2026-03-26 | 5/250 |
|
|
[考研] 081200-11408-276學(xué)碩求調(diào)劑 +3 | 崔wj 2026-03-26 | 3/150 |
|
|
[考研] 342求調(diào)劑 +3 | 加油a李zs 2026-03-26 | 3/150 |
|
|
[考研] 321求調(diào)劑 +6 | wasdssaa 2026-03-26 | 6/300 |
|
|
[考研] 生物學(xué) 296 求調(diào)劑 +4 | 朵朵- 2026-03-26 | 6/300 |
|
|
[考研] 機(jī)械學(xué)碩310分,數(shù)一英一,一志愿211本科雙非找調(diào)劑信息 +3 | @357 2026-03-25 | 3/150 |
|
|
[考研] 263求調(diào)劑 +6 | yqdszhdap- 2026-03-22 | 10/500 |
|
|
[考研] 一志愿上海交大生物與醫(yī)藥專碩324分,求調(diào)劑 +6 | jiajunX 2026-03-22 | 6/300 |
|
|
[考研] 一志愿南航 335分 | 0856材料化工 | GPA 4.07 | 有科研經(jīng)歷 +6 | cccchenso 2026-03-23 | 6/300 |
|
|
[考研] 網(wǎng)絡(luò)空間安全0839招調(diào)劑 +4 | w320357296 2026-03-25 | 6/300 |
|
|
[考研] 293求調(diào)劑 +3 | 濤濤Wjt 2026-03-22 | 5/250 |
|
|
[考研] 275求調(diào)劑 +6 | shansx 2026-03-22 | 8/400 |
|