비선점형 스케줄링 차이와 실행 흐름 설명

1. 개념 한줄 요약

비선점형 스케줄링은 실행 중인 프로세스가 스스로 CPU를 반납할 때까지 다른 작업이 개입하지 못하는 처리 방식이다.

2. 쉽게 풀어쓴 설명

컴퓨터에서는 동시에 여러 프로그램이 실행되는 것처럼 보이지만, 실제로는 CPU가 매우 빠르게 작업을 번갈아 처리한다. 이때 어떤 작업을 먼저 실행하고, 언제 바꿀지를 결정하는 기준이 바로 스케줄링이다.

스케줄링 방식은 크게 선점형과 비선점형으로 나뉜다. 비선점형 방식에서는 한 번 CPU를 할당받은 작업이 끝날 때까지 계속 실행된다. 중간에 더 중요한 작업이 들어와도 강제로 빼앗기지 않는다.

이 방식은 구조가 단순하고 예측이 쉽지만, 하나의 작업이 오래 걸리면 전체 시스템이 느려질 수 있다.

쉽게 말해 비선점형 스케줄링은 ‘먼저 시작한 사람이 끝까지 쓰는 방식’이다.

3. 구조·원리 설명

✔ 스케줄링 기본 구조

운영체제는 실행 가능한 작업들을 준비 큐에 저장한다.

기본 흐름은 다음과 같다.

대기 상태 → 준비 큐 → 실행 상태 → 종료/대기

이 순환 구조로 작업이 관리된다.

✔ 비선점형 처리 흐름 구조

비선점형 방식에서는 다음 상황에서만 CPU가 교체된다.

① 작업 종료 시
② 입출력 대기 진입 시
③ 명시적 양보 시

그 외에는 계속 실행된다.

✔ 대표적인 비선점형 알고리즘 유형

비선점형 스케줄링에는 다음 방식이 있다.

✔ FCFS(First Come First Served)
도착 순서대로 처리

✔ SJF(Shortest Job First, 비선점형)
가장 짧은 작업 우선

✔ Priority Scheduling(비선점형)
우선순위 기준 처리

이 방식들은 모두 강제 중단이 없다.

✔ 선점형과의 구조적 차이 비교

✔ 비선점형

  • 강제 전환 없음
  • 구조 단순
  • 응답성 낮음

✔ 선점형

  • 타이머 기반 강제 전환
  • 실시간 대응 우수
  • 구조 복잡

이 차이가 체감 성능에 큰 영향을 준다.

✔ 문맥 교환(Context Switch) 구조

비선점형 방식은 문맥 교환이 적다. 작업이 끝날 때만 전환되기 때문이다. 이로 인해 오버헤드는 낮다.

✔ 데드락·기아 현상 연계 구조

긴 작업이 CPU를 점유하면 다른 작업이 오랫동안 대기하게 된다. 이를 기아 현상이라고 한다.

4. 예시

① 일괄 처리 시스템 예시

초기 메인프레임 환경에서는 비선점형 방식이 주로 사용되었다.

② 단순 임베디드 시스템 예시

소형 제어 장치는 비선점형 구조를 사용한다.

③ 프린터 작업 처리 예시

출력 순서대로 작업이 완료된다.

④ 서버 지연 예시

긴 작업 하나가 전체 응답을 지연시킨다.

5. 주의점

❗ 장시간 작업 주의

하나의 작업이 전체 시스템을 막을 수 있다.

❗ 실시간 처리 부적합

응답성이 중요한 환경에는 부적절하다.

❗ 우선순위 역전 가능성

낮은 우선 작업이 CPU를 독점할 수 있다.

❗ 사용자 체감 저하

인터페이스 반응이 느려질 수 있다.

❗ 현대 OS 사용 제한

일반 데스크톱 환경에서는 거의 사용되지 않는다.

6. 요약 정리

비선점형 스케줄링은 작업이 스스로 종료하거나 대기 상태로 전환할 때까지 CPU를 계속 사용하는 방식이다. 구조가 단순하고 오버헤드가 적지만, 응답성이 낮고 대기 지연 문제가 발생할 수 있다. 현재는 특수 목적 시스템에서 제한적으로 활용되는 구조다.

error: Content is protected !!