최근 수정 시각 : 2023-04-22 18:19:54

Too much milk problem


이 문서는
이 문단은
토론을 통해 문서 존치로 합의되었습니다. 합의된 부분을 토론 없이 수정할 시 편집권 남용으로 간주되어 제재될 수 있습니다.
아래 토론들로 합의된 편집방침이 적용됩니다. 합의된 부분을 토론 없이 수정할 시 편집권 남용으로 간주되어 제재될 수 있습니다.
[ 내용 펼치기 · 접기 ]
||<table width=100%><table bordercolor=#ffffff,#1f2023><bgcolor=#ffffff,#1f2023><(> 토론 - 문서 존치
토론 - 합의사항2
토론 - 합의사항3
토론 - 합의사항4
토론 - 합의사항5
토론 - 합의사항6
토론 - 합의사항7
토론 - 합의사항8
토론 - 합의사항9
토론 - 합의사항10
토론 - 합의사항11
토론 - 합의사항12
토론 - 합의사항13
토론 - 합의사항14
토론 - 합의사항15
토론 - 합의사항16
토론 - 합의사항17
토론 - 합의사항18
토론 - 합의사항19
토론 - 합의사항20
토론 - 합의사항21
토론 - 합의사항22
토론 - 합의사항23
토론 - 합의사항24
토론 - 합의사항25
토론 - 합의사항26
토론 - 합의사항27
토론 - 합의사항28
토론 - 합의사항29
토론 - 합의사항30
토론 - 합의사항31
토론 - 합의사항32
토론 - 합의사항33
토론 - 합의사항34
토론 - 합의사항35
토론 - 합의사항36
토론 - 합의사항37
토론 - 합의사항38
토론 - 합의사항39
토론 - 합의사항40
토론 - 합의사항41
토론 - 합의사항42
토론 - 합의사항43
토론 - 합의사항44
토론 - 합의사항45
토론 - 합의사항46
토론 - 합의사항47
토론 - 합의사항48
토론 - 합의사항49
토론 - 합의사항50
||


1. 개요2. 설명3. 해결책4. 관련 문서

1. 개요

Too much milk problem

운영체제가 오랫동안 작업할 경우 발생할 수 있는 문제. 다중CPU 관련. 동시에 발생한 작업 사이에 동기화가 제대로 안 됐을 경우 어떤 문제가 발생하는지 보여준다.

2. 설명

1. 철수가 냉장고를 열어보니 우유가 없다. 철수가 우유를 사러 간다.
2. 영희가 냉장고를 열어보니 우유가 없다. 영희가 우유를 사러 간다.
3. 철수가 우유를 사온다.
4. 영희가 우유를 사온다.
5. 이제 우유가 너무 많다.

3. 해결책

다음은 의사 코드로 작성된 해결책이다.
#!syntax java
Leave NoteA;
if (NoNoteB) {
    if (NoMilk) {
        Buy Milk;
    }
} else {
    while (NoteB) {
        DoNothing;
    }
    if (NoMilk) {
        Buy Milk;
    }
}
Remove NoteA;

우유를 사러 가는 프로세스와 함께 메모를 남기는 것/우유와 메모가 함께 없으면 우유를 사러 가는 것으로 방지할 수 있다. 그러나 골치 아프게도 여러 문제가 발생할 수 있다.

4. 관련 문서