1. 멀티 프로세싱 (Multiprocessing)
프로세스 간 통신(IPC) 기법
- 공유 메모리
- 정의 : 두 프로세스가 메모리 공간을 공유하여 통신
- 통신 방식 : 외부 통신 불가, 양방향
- 파일
- 정의 : 프로세스들이 파일을 통해 데이터 교환
- 통신 방식 : 외부 통신 가능, 양방향
- 소켓
- 정의 : 네트워크를 통한 통신 방식
- 통신 방식 : 외부 통신 가능, 양방향
- 익명 파이프
- 정의 : 부모-자식 프로세스 간에만 사용 가능
- 통신 방식 : 외부 통신 불가, 단방향
- 명명된 파이프
- 정의 : 명명된 경로를 사용하여 여러 프로세스 간 통신
- 통신 방식 : 외부 통신 가능, 양방향
- 메세지큐
- 정의 : 프로세스 간에 메세지를 전송하고 수신할 수 있는 큐 구조를 제공하는 통신 방식
- 통신 방식 : 외부 통신 가능, 양방향
- 장점 :
- 비동기식 통신 지원: 프로세스가 메세지를 전송하고, 수신자는 나중에 메세지를 받을 수 있음
- 메세지의 순서 보장: 메세지는 FIFO(First In, First Out) 방식으로 처리됨
- 단점 :
- 메세지 큐의 크기 제한: 큐의 크기를 초과하면 메세지가 손실될 수 있음
- 복잡성: 메세지 큐를 설정하고 관리하는 데 추가적인 오버헤드가 발생할 수 있음
- 종류 : Kafka, RabbitMQ, ActiveMQ
2. 스레드와 멀티 스레딩 (Threads & Multithreading)
- 스레드
- 정의 : 하나의 프로세스 내에서 실행되는 작업 단위
- 멀티 스레딩
- 정의 : 하나의 프로세스가 여러 스레드를 동시에 실행하는 방식
- 장점 : 자원 효율성 증가, 병렬 처리로 성능 향상
- 예시 : 웹 서버의 동시 요청 처리
3. 공유 자원과 임계 영역 (Shared Resources & Critical Section)
- 공유 자원
- 정의 : 여러 프로세스나 스레드가 동시에 접근할 수 있는 자원 (예: 파일, 메모리, 프린터 등)
- 문제점 : 여러 스레드 또는 프로세스가 동시에 공유 자원에 접근할 때, 예상치 못한 동작이나 데이터 무결성 문제가 발생할 수 있음
- 예시 : 두 개의 스레드가 동시에 은행 계좌의 잔액을 업데이트하면 잘못된 값이 기록될 수 있음 (경쟁 상태 발생)
- 경쟁 상태
- 정의 : 두 개 이상의 프로세스나 스레드가 동일한 자원에 동시에 접근하여 자원의 상태가 비일관성 상태에 빠지는 문제
- 예시 : 두 프로세스가 같은 변수에 값을 동시에 쓰면 잘못된 값이 저장될 수 있음
- 임계 영역
- 정의 : 여러 스레드나 프로세스가 동시에 접근하면 문제가 발생할 수 있는 코드 구간 (주로 공유 자원에 접근하는 코드)
** 임계 영역 해결 기법
- 뮤텍스(Mutex) : 하나의 스레드만 임계 영역에 접근 가능하도록 잠금을 제공하는 동기화 기법
- 세마포어(Semaphore) : 카운터를 이용하여 여러 스레드가 자원에 접근하는 횟수를 제어
- 바이너리 세마포어: 두 상태(0, 1)만 가짐, 뮤텍스와 유사하게 사용
- 카운팅 세마포어: 여러 개의 스레드가 임계 영역에 접근 가능
- 모니터(Monitor) : 객체 단위로 접근을 제어하여 스레드의 임계 영역 진입을 관리하는 방식
4. 교착 상태 (Deadlock)
- 교착 상태 정의
- 두 개 이상의 프로세스나 스레드가 서로 자원을 점유한 상태에서 아무도 진행할 수 없는 상태
- 교착 상태의 4가지 필요 조건:
- 상호 배제 : 자원은 한 번에 하나의 프로세스만 사용 가능
- 점유 대기 : 자원을 점유한 상태에서 다른 자원을 대기
- 비선점 : 점유한 자원을 강제로 뺏을 수 없음
- 순환 대기 : 자원을 기다리는 프로세스 간에 순환 대기가 존재
- 해결 방법:
- 교착 상태 예방 : 조건 중 하나를 없애기
- 교착 상태 회피 : 자원 할당 시 미리 검토
- 교착 상태 탐지 및 복구 : 발생 시 해결 방안 마련
'면접을 위한 CS 전공지식 노트 > 3장 운영체제' 카테고리의 다른 글
운영체제: CPU 스케줄링 알고리즘 (1) | 2024.09.19 |
---|---|
운영체제 : 메모리 (0) | 2024.09.19 |
운영체제: 운영체제와 컴퓨터 (1) | 2024.09.19 |