💻 혼자 공부하는 컴퓨터구조 + 운영체제 5주차
✍️5주차 프로세스 동기화 & 교착상태
1. 프로세스 동기화
1-1. 동기화란
| |
---|
프로세스 동기화 | 프로세서 사이의 수행 시기를 맞추는 것 |
동기화의 종류 | 설명 |
---|
실행 순서 제어 | 프로세스를 올바른 순서대로 실행하는 것 |
상호 배제 | 공유가 불가능한 자원의 동시 사용을 피하기 위해 사용하는 알고리즘 |
이름 | 설명 |
---|
공유 자원 | 공동으로 사용하는 자원(전역 변수, 파일, 입출력장치, 보조기억장치 ...) |
임계 구역 | 공유 자원에 접근하는 코드 중에서 동시에 실행하면 문제가 발생하는 코드 영역 |
| |
---|
레이스 컨디션 | 여러 프로세스가 동시 다발적으로 임계 구역의 코드를 실행하여 문제가 발생하는 경우 |
상호 배제를 위한 동기화 원칙 | |
---|
상호배제 | 한 프로세스가 임계 구역에 진입했다면 다른 프로세스는 임계 구역에 들어올 수 없다 |
진행 | 임계 구역에 어떤 프로세스도 진입하지 않았다면 임계 구역에 진입하고자 하는 프로세스는 들어갈 수 있어야 한다 |
유한 대기 | 한 프로세스가 임계 구역에 진입하고 싶다면 그 프로세스는 언젠가 임계 구역에 들어올 수 있어야 한다(무한정 대기해서는 안된다) |
1-2. 동기화기법
동기화 기법 | |
---|
뮤텍스 락 | 임계 구역을 잠금으로써 프로세스 간의 상호 배제를 이룸 |
세마포 | 공유 자원이 여러 개 있는 임계 구역 문제도 해결할 수 있는 동기화 도구 |
모니터 | 세마포에 비해 사용자가 사용하기 편리한 동기화 도구로 조건 변수 사용 |
2. 교착상태
2-1. 교착상태란
| |
---|
교착 상태 | 일어나지 않을 사건을 기다리며 무한히 대기하는 현상 |
교착 상태 발생 조건 |
---|
상호 배제 |
점유와 대기 |
비선점 |
원형 대기 |
2-2. 교착 상태 해결 방법
| |
---|
교착 상태 예방 | 교착 상태의 발생 조건 중 하나를 충족하지 못하게 하는 방법 |
교착 상태 회피 | 안전 상태를 유지할 수 있는 경우에만 자원을 할당하는 방법 |
교착 상태 검출 후 회복 | 교착 상태 발생 여부를 주기적으로 검사하고, 교착 상태가 발생하면 그때 그때 회복하는 방식 |
기본 미션. p. 363의 확인 문제 1번 풀고 인증하기
(4) 세마포를 이용하면 반드시 바쁜 대기를 해야 합니다.
세마포에서는 signal을 통해 프로세스 동기화를 하기 때문에 바쁜 대기를 할 필요가 없습니다.
선택 미션. Ch.12(12-1) 임계 구역, 상호 배제 개념을 정리하기
이름 | 설명 |
---|
임계 구역 | 공유 자원에 접근하는 코드 중에서 동시에 실행하면 문제가 발생하는 코드 영역 |
| |
---|
상호배제 | 한 프로세스가 임계 구역에 진입했다면 다른 프로세스는 임계 구역에 들어올 수 없다 |