※혼자 공부하는 컴퓨터구조 +운영체제 개인 공부 정리 내용입니다.
※진도는 하단의 혼공단 13기 커리큘럼을 참고해 주세요.
진도
동기화
동기화 - 작업들 사이의 수행 시기를 맞추는 것
- 실행 순서 제어 - 올바른 순서대로 실행하기 위해 사용
- 상호 배제 - 공유 불가능한 자원의 동시 사용을피하기 위해 사용
공유자원과 임계구역
공유자원 - 두 개 이상의 프로세스가 동시에 실행하면 문제가 발생하는 자원
임계구역 - 공유 자원에 접근하는 코드 영역
공유자원은 변수, 파일, 입출력 장치 등이 될 수 있다.
프로세스가 공유자원을 써서 임계 구역에 들어가면 다른 프로세스는 접근이 불가능해야하는데,
이게 바로 상호배제 이다.
만약 잘못된 실행으로 동시 다발적으로 공유자원에 접근이 되서
자원의 일관성이 깨지는 문제를 레이스 컨디션 이라고 한다.
동기화 도구 및 기법
- 뮤텍스 락 - 1:1 관리
- 세마포 - n:1 관리 (*여기서 n은 공유자원)
- 모니터 - 세마포에서 사용자 편의성 증가 (공유 자원에 접근하기 위한 인터페이스를 묶어 관리함)
교착 상태 (deadlock)
교착 상태는 다양한 상황에서 발생하며
일반적으로 두 개 이상의 프로세스가 서로의 작업이 끝나기를 기다리며 진행이 멈춰 버리는 형상을 교착 상태라고 한다.
교착 상태의 발생 조건은 4가지로 상호배제, 점유와 대기, 비선점, 원형대기 가 있다.
*원형대기의 경우 교착 상태가 발생할 수 있는 것이지 반드시 발생하는 것은 아님
교착 상태 해결방법
교착 상태를 해결하기 위해선 크게 3가지 방법으로 예방, 회피, 검출 후 회복 이 있습니다.
예방 - 교착 상태를 발생 시키는 조건을 하나라도 만족시키지 않게 해서 교착 상태를 유발하기 않게 만드는 방법.
*교착 상태가 발생하지 않음을 보장할 순 있지만 여러 부작용이 있음
회피 - 교착 상태가 발생하지 않을 정도로만 적당히 자원 할당을 조절하는 방식
안전 순서열이라고 교착 상태 없이 안전하게 자원을 할당하도록 순서를 지정하며
안전 순서열이 있는 상태를 안전 상태 없는 상태는 불안전 상태라고 함
*회피는 항시 안전 상태를 유지하도록 자원을 할당하는 방식으로도 볼 수 있음
교착 후 회복 - 주기적으로 교착 상태 발생 여부 확인 후 발생 시, 사후 조치하는 방식
*선점을 통한 회복 - 교착 상태가 해결 될 때까지 한 프로세스씩 자원을 몰아주는 방식
*프로세스 강제 종료를 통한 회복 - 한방에 해결되지만 작업내용 유실 가능성이 있고, 교착 상태가 없어졌는지 확인 과정에서 오버헤드가 발생할 수 있음.
여담으로 교착 상태를 아예 무시로 대처하는 방법 = 타조 알고리즘도 있습니다.
*교착 상태 발생 시 무시하고 시스템 운영하다가 문제가 터지면 종료. (때때론 이 방식이 적합할 수도 있다고 한다.)
기본 숙제
p.363 확인 문제 1번
4번
공부 후기
추가 숙제의 임계구역과 상호배제는 정리 내용에 포함 되어있어서 스킵했습니다.
개인적으로 교착 상태 해결 방법을 재밌게 공부했습니다.
꼭 운영체제 자원할당에만 해당되는 내용이 아닌 것 같아요.😂
이제 마지막 1회만 남았네요. 끝까지 화이팅입니다.👊
'Study > 혼공단' 카테고리의 다른 글
[혼공컴운] 혼공학습단 13기 활동 회고(1.01^365=?) (0) | 2025.02.23 |
---|---|
[혼공컴운] 6주차 - 메모리 관리와 파일 시스템 (0) | 2025.02.23 |
[혼공컴운] 4주차 - 운영체제와 프로세스 (0) | 2025.02.18 |
[혼공컴운] 3주차 - 메모리와 보조기억장치 (0) | 2025.02.02 |
[혼공컴운] 2주차 - CPU의 작동 원리와 성능 향상 기법 (1) | 2025.01.20 |