프로세스 동기화
: 실행 순서와 자원의 일관성을 보장해야한다.
실행 순서 제어
: 프로세스를 올바른 순서로 실행하기
-> 1,2번 프로세스가 있을때, 1번이 반드시 실행되어야 2번이 실행될 수 있는것
상호배제
: 동시에 접근해서 안되는 자원에 하나만 접근하기
: 공유 자원, 임계 구역
*공유 자원
: 파일, 입출력 장치, 전역 변수...
*임계 구역
: 공유자원에 접근하는 코드
*race condition
: 임계구역을 동시에 실행 자원의 일관성이 깨지는 현상
교착상태
: 서로의 자원을 무한히 기다리는 상태
조건
- 상호 배제 : 한 프로세스가 임계구역에 진입했다면 다른 프로세스는 기다려야 함
- 점유와대기 : 자원을 할당 받고 다른 자원 할당을 대기
- 비선점 : 강제로 자원을 빼앗을 수 없는 상태
- 원형대기 : 자원을 원형으로 대기하는 상태
-> 뮤텍스 락(mutex lock), 세마포(semaphore : 락에 카운트 부여)
교착상태 해결 방법
- 예방
: 네가지 조건중 하나를 없애는 방법, 실현 불가능
- 점유와 대기 없애기
: 아예 할당하지 않기, 자원 활용률 저하
- 비선점 조건 없애기
: 선점하여 사용가능한 자원은 효과적(cpu), 모든자원에 해당하는 건 아님(프린터)
- 원형대기 조건 없애기
: 자원에 번호 매기기(수동으로 번호를 매기는 것은 쉽지 않음), 오름차순으로 자원 할당
- 회피
: 교착상태는 무분별하게 할당하지 않도록 자원을 할당 => 회피
'FastCampus UpStage AI > 운영체제' 카테고리의 다른 글
리눅스 실습 (0) | 2024.10.23 |
---|---|
운영체제 - 페이징과 페이지 테이블 (0) | 2024.10.22 |
운영체제 - CPU 스케쥴링 (0) | 2024.10.21 |
운영체제 - 리눅스 + 프로세스/스레드 (1) | 2024.10.21 |