기타 🎸
운영체제란? 프로세스 관리 개요
프라임콩
2025. 6. 14. 11:53
운영체제 개요
1. 운영체제란?
컴퓨터 시스템의 자원을 관리하고 컴퓨터 프로그램이 동작하기 위한 서비스를 제공하는 프로그램들의 모습으로 대표적인 시스템 소프트웨어
2. 운영체제 모드
- 커널 모드 : 하드웨어를 직접 제어할 수 있는 CPU의 명령어를 사용할 수 있는 모드
- 사용자 모드 : 하드웨어를 직접 제어할 수 있는 CPU의 명령어를 사용할 수 없는 모드. 응용 프로그램은 사용자 모드에서 동작하며, 하드웨어 제어가 필요할 경우 시스템 호출을 통해 필요한 서비스를 운영체제에 요청한다.
3. 주요 구성 요소
- 프로세스 관리자, 메모리 관리자, 장치 관리자, 파일 관리자
4. 유형
- 일괄처리 운영체제, 시분할 운영체제, 실시간 운영체제, 분산 운영체제
프로세스 관리
1. 프로세스란?
실행 중인 프로그램을 의미하며, CPU, 메모리, 파일, 입출력장치 등 실행에 필요한 자원이 할당된다.
2. 프로세스 제어 블록 (PCB)
프로세스를 명시해 주는 다양한 내용을 포함한다.
3. 프로세스 상태
생성, 준비, 실행, 대기, 종료의 다섯 상태 중 하나로 존재하며, CPU 스케줄링 및 입출력 대기에 따라 상태가 변화한다.
4. 스레드
- 프로세스에서 실행의 개념만 분리한 것으로 디스패칭의 단위.
- 하나의 프로세스 내에 하나 이상의 스레드가 존재하여 다중 처리를 수행할 수 있다.
5. 스케줄링
- 스케줄링 단계: 상위 단계(장기), 하위 단계(단기), 중간 단계(중기).
- 선점 스케줄링
- 실행 중인 프로세스에 인터럽트를 걸고 다른 프로세스에 CPU를 할당할 수 있다.
- 예: SRT, RR, 다단계 피드백 큐 - 비선점 스케줄링
- 실행 중인 프로세스를 바로 준비 상태로 전이시킬 수 없다.
- 예: FCFS, SJF, HRN
더보기
스케줄링 관련 참고할만한 사이트: https://www.baeldung.com/cs/scheduling-types
6. 주요 알고리즘
- FCFS (First-Come, First-Served): 준비 큐에 도착한 순서에 따라 디스패치하는 비선점 방식
- SJF (Shortest Job First): 준비 큐에서 기다리는 프로세스 중 실행시간이 가장 짧다고 예상되는 것을 먼저 디스패치하는 비선점 방식
- SRT (Shortest Remaining Time): 준비 큐에서 기다리는 프로세스 중 남은 실행시간이 가장 짧다고 예상되는 것을 먼저 디스패치하는 선점 방식
- RR (Round Robin): 프로세스가 도착한 순서대로 프로세스를 디스패치하지만 정해진 시간 할당량에 의해 실행을 제한하는 선점 방식
- HRN (Highest Response-ratio Next): 준비 큐에서 기다리는 프로세스 중 응답비율이 가장 큰 것을 먼저 디스패치하여 실행하는 비선점 방식이며, 응답비율은 예상실행시간이 짧을수록, 그리고 대기시간이 길수록 커진다.
병행 프로세스와 동기화
1. 병렬성 (Parallelity)
- 여러 프로세스나 스레드가 동시에 실행되는 시스템의 특성
- 이를 병렬 처리(Parallel Process)라고 함
2. 프로세스 간 관계 (Process Relationship)
- 독립 프로세스 (Independent Processes) :
- 다른 프로세스에 영향을 주지 않고, 데이터나 상태도 공유하지 않음.
- 결과는 입력에 의해서만 결정됨.
- 동일한 입력에 대해 항상 동일한 결과를 냄 (결정적/Deterministic).
- 협력 프로세스 (Cooperating Processes)
- 다른 프로세스와 상호작용하고, 데이터를 공유함.
- 실행 순서에 따라 결과가 달라질 수 있음.
- 동일한 입력이라도 항상 같은 결과를 보장하지 않음 (비결정적/Non-deterministic).
3. 프로세스 간 통신 (IPC, InterProcess Communication)
- 공유 메모리 방식 (Shared Memory)
- 공유 변수를 통해 데이터를 공유함.
- 빠르지만 동기화 처리가 필요함 (세마포어 등).
세마포어는 임계 영역 접근 조절을 위한 정수형 변수 + P/V 연산 역할을 함. ☞ P 연산(wait/down) : 검사 및 감소 시도 (s > 0이면 s--, 아니면 대기) ☞ V 연산(signal/up) : 증가 (대기 중인 프로세스 없으면 s++, 아니면 대기 중인 프로세스 진행) - 활용: 생산자-소비자 문제, 판독기-기록기 문제 해결에 사용된다. 특히 판독기-기록기 문제는 기록기는 상호배제가 필요하나 판독기는 상황에 따라 다른 처리가 필요한 문제이며, 특정 상황에서 판독기에 우선순위를 주는 형태의 문제와 기록기에 우선순위를 주는 형태의 문제로 정의할 수 있다. |
- 메시지 전달 방식 (Message Passing)
- 메시지를 보내고 받는 방식으로 데이터 공유.
- 직접 통신 (Direct Communication)
- 송신자와 수신자를 명시하여 메시지를 주고받음.
예: Send(B, M1), Receive(A, M1) - 간접 통신 (Indirect Communication)
- 메일박스(우편함) 같은 매개체를 통해 메시지 교환.
- 하나의 메일박스에 여러 프로세스가 연결될 수 있음.