아쿠의 개발 일지

운영체제(Operating System)의 핵심 개념 본문

Programming/CS

운영체제(Operating System)의 핵심 개념

디아쿠 2025. 1. 14. 13:00

나무위키 사진 제공

 

 

운영체제는 컴퓨터 하드웨어와 사용자 간의 중개자 역할을 하며, 자원 관리와 프로그램 실행 환경을 제공합니다.

 

오늘은 운영체제의 핵심 개념인 프로세스와 스레드, CPU 스케줄링 알고리즘, 메모리관리, 교착상태를 정리 해보도록 하겠습니다.

 

1. 프로세스와 스레드

1.1 프로세스

  • 정의: 실행 중인 프로그램을 말하며, 운영체제로부터 독립된 자원을 할당받습니다.
  • 특징:
    • 각 프로세스는 독립적인 메모리 공간(Code, Data, Heap, Stack)을 가짐.
    • 다른 프로세스와 자원을 공유하지 않음.
    • Context Switching 시 오버헤드가 큼.

1.2 스레드

  • 정의: 프로세스 내에서 실행되는 단위로, 프로세스의 메모리 공간을 공유합니다.
  • 특징:
    • 동일한 프로세스의 스레드끼리는 Code, Data, Heap 영역을 공유.
    • Stack은 독립적으로 가짐.
    • Context Switching이 상대적으로 빠름.

1.3 프로세스와 스레드의 차이

메모리 구조 독립적 메모리 공유
생성 오버헤드 높음 낮음
실행 단위 독립적 실행 프로세스 내 병렬 실행
통신 방식 IPC(Inter-Process Communication) 필요 메모리 공유로 직접 통신 가능

 

 


 

2. CPU 스케줄링 알고리즘

CPU 스케줄링은 여러 프로세스가 CPU를 효율적으로 사용할 수 있도록 운영체제가 프로세스를 스케줄링하는 방법입니다.

2.1 주요 스케줄링 알고리즘

  1. FCFS (First Come First Serve)
    • 프로세스가 도착한 순서대로 CPU를 할당.
    • 장점: 구현이 간단.
    • 단점: Convoy Effect 발생 가능.
  2. SJF (Shortest Job First)
    • 실행 시간이 가장 짧은 프로세스에 CPU를 우선 할당.
    • 장점: 평균 대기 시간이 짧음.
    • 단점: 실행 시간 예측이 어려움.
  3. RR (Round Robin)
    • 각 프로세스에 일정한 시간(Time Quantum)을 순서대로 할당.
    • 장점: 공정한 CPU 분배.
    • 단점: Time Quantum 설정이 어렵다면 성능 저하 가능.
  4. Priority Scheduling
    • 우선순위가 높은 프로세스에 CPU를 할당.
    • 단점: 우선순위가 낮은 프로세스가 무한 대기 (Starvation) 가능.
  5. Multilevel Queue
    • 프로세스를 우선순위에 따라 여러 대기열로 분리하고 각각 다른 스케줄링 방식 적용.

3. 메모리 관리 (페이징, 세그멘테이션)

3.1 페이징 (Paging)

  • 정의: 메모리를 동일한 크기의 페이지로 나누어 프로세스가 연속된 메모리 공간을 요구하지 않도록 함.
  • 장점:
    • 외부 단편화(External Fragmentation) 문제 해결.
    • 프로세스가 비연속적으로 메모리에 저장 가능.
  • 단점:
    • 페이지 테이블 관리에 추가 메모리 사용.
    • 내부 단편화(Internal Fragmentation) 발생 가능.

3.2 세그멘테이션 (Segmentation)

  • 정의: 메모리를 논리적 단위(세그먼트)로 나눔.
  • 장점:
    • 프로세스 구조를 더 잘 반영함.
    • 사용자가 논리적인 주소 공간을 활용할 수 있음.
  • 단점:
    • 외부 단편화 문제 발생 가능.

페이징 vs 세그멘테이션

구분 페이징 세그멘테이션
단위 크기 동일 (고정 크기) 가변 크기
단편화 문제 내부 단편화 발생 가능 외부 단편화 발생 가능
주소 변환 방식 페이지 테이블 사용 세그먼트 테이블 사용

 


 

4. 교착상태 (Deadlock)

4.1 정의

  • 교착상태란 두 개 이상의 프로세스가 서로 상대방의 자원을 기다리며 무한 대기 상태에 빠지는 상황을 의미.

4.2 교착상태 발생 조건 (Coffman 조건)

  1. 상호 배제 (Mutual Exclusion): 자원은 한 번에 한 프로세스만 사용 가능.
  2. 점유와 대기 (Hold and Wait): 자원을 점유한 상태에서 다른 자원을 기다림.
  3. 비선점 (No Preemption): 자원을 강제로 회수할 수 없음.
  4. 순환 대기 (Circular Wait): 프로세스들이 순환 구조로 자원을 대기.

4.3 해결 방법

  1. 교착상태 예방 (Prevention)
    • Coffman 조건 중 하나 이상을 제거하여 교착상태 방지.
  2. 교착상태 회피 (Avoidance)
    • 시스템이 안전 상태를 유지하도록 자원을 할당 (예: Banker's Algorithm).
  3. 교착상태 탐지 (Detection)
    • 교착상태를 탐지하고 해결 (예: 대기 그래프 이용).
  4. 교착상태 복구 (Recovery)
    • 교착상태 발생 시 프로세스를 종료하거나 자원을 강제로 회수.

 

운영체제의 핵심 개념은 컴퓨터 자원 활용의 효율성을 높이고 안정성을 확보는 데 중점을 두고 있습니다. 더 깊이 있는 탐구를 통해 동작 원리를 체계적으로 익혀보시길 바랍니다 !

728x90