📄
정보처리기사 대비 - OS
v1.0.0@young_log|License|Published on 2026-02-21
"No description provided for this extension."
Details
Changelog
Dependencies
프로세스(Process)
실행 중인 프로그램
크롭 실행, 메모장 실행 각각 총 2개의 프로세스가 돌아가는 것
- 독립적인 메모리 공간 가짐 - 메모리 공유 X
- 안정성 높지만 생성 비용 크다.
스레드(Thread)
프로세스 안에서 실제 작업 단위
크롬 내의 탭 여러개, 다운로드, 영상 재생 …
하나의 프로세스 안에 여러 스레드
- 메모리 공유, 생성 비용 작음, 통신 빨라
- 한 스레드가 죽으면 프로세스 영향 준다.
- 동시 접근으로 인해 경쟁 상태 우려- Race Condition
- Critical Section (임계 영역) - Mutex(한 번에 하나의 스레드만 들어감)/semaphore(개수 제한)
IPC**(Inter Process Communication)**
프로세스끼리는 메모리 공유하지 않아서 통신하기 위해 필요함
- 파이프, 메시지 큐, 공유 메모리, 소켓
Deadlock 발생 조건- 코프만 조건(Coffman Conditions)
- 상호 배제
- 자원을 동시에 여러개 못써
- 점유와 대기
- 자원 하나 잡은 채 다른 자원 기다려
- 비선점
- 강제로 자원 뺏을 수 없어
- 환형 대기
- 원처럼 도는 구조
→ 데드락은 위 4가지 조건이 모두 만족해야 발생한다.
이를 예방하기 위해 4가지 중 하나를 깨면 되는데
4번을깨면된다. 자원 획득순서를 정해버리기
CPU 스케줄링
- FCFS(First Come First Served)
- 선입선출(FIFO)
- 비선점 방식, 구현 쉬워
- 평균 대기시간 늦어질 수 있어
- Convoy Effect 발생 가능
- SJF(Sortest Job First)
- 실행시간 가장 짧은거 먼저
- 평균 대기 시간 감소
- 비선점 방식
- 기아(Starvation) 발생 가능
- 선점형은 SRT
- RR(Round Robin)
- 시간 할당량 만큼만 실행
- 선점 방식, 공평
- 응답 시간도 빨라
- 타임 슬라이스가 너무 작으면 오버 헤드 증가
- 오버 헤드가 증가한다는 것은
Context Switching (문맥 교환)
이 작업이 비용이 많이 든다 이거
- Priority Scheduling
- 우선순위 높은거 부터… 근데 낮은 우선 순위 기아 발생
- 이거는 Aging을 해서 기다릴 수록 우선순위 높이면 된다.
페이지 교체 알고리즘(메모리 꽉 찼는데 뭐 버리지?)
- FIFO
- 먼저 들어온 페이지부터 제거
- Belady’s Anomaly 발생 가능(프레임 수가 늘었는데 폴트가 늘었다?)
- LRU(Least Recently Used)
- 가장 오래 사용 안 한 페이지 제거
- 많이 쓰임
- LFU(Least Frequently Used)
- 가장 적게 사용한 페이지 제거
페이지 폴트**(Page Fault)**?
CPU가 어떤 페이지를 찾았는데 메모리에 없을 때 발생하는 것
1 2 3 4 1 2 5 1 2 3 4 5