운영체제

운영체제 스케줄링 및 파일 관리 관련 개념 정리

n_0_jun 2025. 4. 10. 14:00
반응형

1. 스케줄링 방식

운영체제의 스케줄링 방식은 프로세스를 효율적으로 관리하는 중요한 방식입니다. 프로세스가 CPU를 얼마나 효율적으로 사용할 수 있게 하는지에 따라 시스템 성능이 달라지기 때문에, 그 방법을 정확히 이해하는 것이 중요합니다.

선점형과 비선점형

  • 비선점형 스케줄링:
    • 프로세스가 종료되거나 블록되었을 때만 스케줄링이 발생합니다.
    • 도중에 우선순위가 더 높은 프로세스가 도착해도 실행 중인 프로세스를 계속 실행합니다.
  • 선점형 스케줄링:
    • 새 프로세스가 도착할 때마다 또는 프로세스가 종료되거나 블록될 때 스케줄링을 합니다.
    • 우선순위가 높은 프로세스가 도착하면 기존 프로세스를 중단하고 새 프로세스를 실행할 수 있습니다.

주요 스케줄링 알고리즘

  1. First-Come-First-Served (FCFS, 비선점형):
    • 프로세스가 큐에 도착한 순서대로 실행됩니다. 간단하지만 비효율적일 수 있습니다.
  2. Shortest Process Next (SPN, 비선점형):
    • 서비스 시간이 가장 짧은 프로세스를 먼저 실행합니다. 그러나 실제 구현이 어렵습니다.
  3. Shortest Remaining Time (SRT, 선점형):
    • 남은 실행 시간이 가장 짧은 프로세스를 먼저 실행합니다. 새 프로세스가 도착할 때마다 스케줄링을 수행합니다.
  4. Highest Response Ratio Next (HRRN, 비선점형):
    • 대기 시간이 길고 서비스 시간이 짧은 프로세스를 먼저 실행합니다.
    • Response Ratio (R)는 대기 시간과 서비스 시간을 합산하여 계산됩니다.
  5. Round-Robin (RR):
    • 각 프로세스에게 일정 시간(타임 퀀텀)을 할당하고, 그 시간이 끝나면 다른 프로세스에게 CPU를 넘깁니다. 타임 퀀텀 후에도 프로세스가 종료되지 않으면 다시 큐 뒤로 보냅니다.
  6. Feedback 방식:
    • 여러 개의 레디 큐를 사용하여 우선순위가 높은 큐에서부터 실행하고, 실행 후에는 낮은 우선순위 큐로 이동합니다.

2. 입출력(I/O) 처리

운영체제는 입출력 장치를 관리하며, 다양한 방법으로 데이터를 처리합니다.

  • Programmed I/O: 프로그램이 직접 입출력 작업을 제어합니다.
  • Interrupt-driven I/O: 입출력 장치가 데이터를 준비하면 인터럽트를 발생시켜 CPU가 데이터를 처리하도록 유도합니다.
  • Direct Memory Access (DMA): 입출력 장치가 데이터를 메모리에 직접 저장하고, 데이터가 완료되면 인터럽트를 발생시킵니다.

3. 디스크 I/O 및 스케줄링

디스크에서 데이터를 읽을 때는 여러가지 시간이 소요되며, 이를 효율적으로 처리하기 위한 알고리즘들이 존재합니다.

  • Seek Time: 헤드가 해당 트랙을 찾아가는 시간
  • Rotational Delay: 디스크가 반 바퀴 회전하는 데 걸리는 시간
  • Transfer Time: 데이터를 읽어오는 데 걸리는 시간

디스크 스케줄링 알고리즘

  1. FIFO (First-In-First-Out): 요청이 들어온 순서대로 처리합니다.
  2. SSTF (Shortest Seek Time First): 가장 가까운 트랙부터 읽습니다.
  3. SCAN: 디스크 헤드가 한 방향으로 움직이며 데이터를 읽고, 끝에 도달하면 반대 방향으로 움직입니다.
  4. C-SCAN: SCAN 방식과 유사하지만, 끝에 도달한 후에는 반대 방향으로 가는 것이 아니라 다시 처음으로 돌아가면서 데이터를 읽습니다.
  5. FSCAN: SCAN 방식에 두 개의 큐를 추가하여 더 효율적으로 트랙을 관리합니다.

4. 파일 시스템

운영체제는 다양한 방식으로 파일을 저장하고 관리합니다. 파일 시스템의 종류에 따라 파일을 읽고 쓰는 방식이 달라지며, 이를 잘 이해하고 있어야 합니다.

파일 구성

  • Field: 구조체나 클래스의 멤버와 비슷한 개념
  • Record: 필드들이 모여 만들어진 데이터 구조
  • File: 레코드들이 모여 만들어진 파일
  • Database: 여러 개의 파일들이 모여서 만들어진 데이터베이스

파일 할당 방식

  1. 연속적 할당(Contiguous Allocation): 파일이 연속적으로 할당됩니다. 접근이 빠르지만 공간 효율성이 떨어질 수 있습니다.
  2. 체인할당(Chained Allocation): 각 블록에 다음 블록의 주소를 저장하여 연속되지 않은 공간에 데이터를 할당합니다.
  3. 인덱스 할당(Indexed Allocation): 각 블록의 인덱스를 관리하는 테이블을 사용하여 데이터를 효율적으로 찾을 수 있습니다.

5. 스레드

스레드는 CPU에서 작업을 처리하는 단위로, 운영체제에서 여러 개의 스레드를 동시에 관리하며 여러 작업을 동시에 처리할 수 있습니다.

  • 스레드의 이점: 여러 작업을 동시에 처리할 수 있어 프로그램의 효율성을 높입니다.
  • 스레드 생성 및 종료: 스레드를 생성할 때 API를 통해 시작 함수가 호출되고, 스레드가 종료되면 자동으로 종료됩니다.

운영체제와 관련된 핵심 개념을 정확히 이해하고, 각 알고리즘이나 방법이 어떻게 작동하는지 예제를 통해 연습하는 것이 중요합니다.



반응형