본문 바로가기

데드락2

[운영체제] ep5) Concurrency: Deadlock and Starvation ㅁDeadlock의 발생 조건 4가지① Mutual Exclusion(상호배제)② Hold-and-Wait③ No preemption(비선점)④ Circular Wait: 여러 프로세스가 자원을 할당받은 후, 다른 프로세스가 점유하고 있는 자원을 추가로 요청하면서 서로 대기하는 상황이 순환 형태로 이루어지는 것  ㅇ자원 할당 그래프(Resource Allocation Graphs)       ㅁ데드락 해결방법 3가지1. Deadlock Prevention: 자원할당 규칙을 만든다(사전에 차단)④ Circular Wait를 깨기 위해 자원에 번호를 매긴다 - 자원을 요청할 때 번호 순서대로 요청 - 낭비 多, 실제로 사용은 x데드락이 발생하면 큰일이 나는 시스템이 아닌 이상 데드락 prevention보다는.. 2024. 6. 30.
[운영체제] ep4-1) Concurrency: Mutual Exclusion and Synchronization ㅁ동시성(Concurrency): 여러 작업이 짧은 시간 간격으로 번갈아 가며 수행됨으로써 동시에 처리되는 것처럼 보이게 만드는 것현대 OS는 멀티 프로그래밍, 멀티 프로세싱 등의 기법으로 동시성을 사용하는 데에 있어 발생하는 문제들을 해결해야만 한다 상황) 은행 계좌 파일에 있는 데이터 x를 저장, 처음 잔고는 0원이다 ㅇRace Condition: 결국에는 둘 중에서 마지막으로 작업한 결과만이 남는다Race Condition의 발생을 막기 위해 critical section의 mutually exclusive한 실행이 필요하다 ㅇcritical section(임계구역): Race Condition이 발생할 수 있는 코드 (전혀 예측할 수 없음)critical section은 동시에 실행시키면 안된다.. 2024. 6. 29.