기타 🎸

운영체제란? 프로세스 관리 개요

프라임콩 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)
    - 메일박스(우편함) 같은 매개체를 통해 메시지 교환.
    - 하나의 메일박스에 여러 프로세스가 연결될 수 있음.