본문 바로가기
운영체제

[cs 스터디 - 운영체제 3주차]

by 근즈리얼 2024. 1. 21.
728x90

<질문 1> 기아 상태가 무엇인가요?

답변

 

기아 상태란?

  • 기아 상태는 일반적으로 프로세스나 작업이 원하는 자원을 얻지 못해 영원히 실행되지 못하는 상태를 의미
  • 지원 할당이나  스케줄링 알고리즘이 불공평하게 동작하여 특정 프로세스나 작업이 계속해서 자원을 얻지 못하는 경우도 발생
  • 기아 상태에서는 특정 프로세스가 영원히 실행되지 못하므로 시스템의 효율성이 떨어질 수 있음

 

<질문 1> 기아 상태를 어떻게 해결할 수 있나요?

답변

 

해결 방법

  • 공정한 스케줄링 알고리즘을 적용하여 모든 프로세스가 공평하게 자원을 할당받도록 설정 -> ex) 라운드 로빈
  • 자원 할당 정책 개선
    • 특정 자원을 과도하게 점유한느 것을 방지하고, 자원을 효율적으로 공유할 수 있는 방법을 도입

 

<질문 1> CPU 스케줄링에 대해 설명해주세요.

답변

 

CPU 스케줄링이란?

  • 여러 프로세스가 경쟁적으로 CPU를 사용할때, 어떤 프로세스에 CPU를 할당할지를 결정하는 운영체제의 기능

스케줄링의 목표

  • 공평성 : 모든 프로세스가 공평하게 CPU를 사용할 수 있도록 함
  • 응답 시간 최소화 : 사용자가 프로그램을 실행했을 때 첫 응답이 가능한 시간을 최소화

 

<질문 1> 스케줄러의 종류는 무엇이 있나요?

답변

  • 장기 스케줄러
    • 새로운 프로세스가 시스템에 진입할 때, 메모리에 얼마나 많은 프로세스를 수용할 것인지 결정
    • 주로 메모리에 할당되기 전에 프로세스들 중 어떤 것들이 메모리에 올라갈지를 관리
  • 단기 스케줄러
    • 현재 메모리에 적재된 프로세스 중에서 어떤 프로세스를 다음에 CPU에 할당할지 선택
    • CPU의 할당과 관련된 작업을 담당, 실행 가능한 프로세스 중 하나를 선택하여 CPU를 할당하는 역할을 수행
  • 중기 스케줄러
    • 메모리에서 프로세스를 제거하거나 저장하여 프로세스의 상태를 준비 상태로 이동하거나 잠시 중단시키는 역할
    • 스왑아웃 : 메모리에서 프로세스를 제거하는 작업
    • 스왑인 : 저장된 프로세스를 메모리에 가져오는 작업

 

<질문 1> 선점형 스케줄링과 비전형 스케줄링의 차이가 무엇인가요?

답변

 

프로세스가 CPU를 점유하는 동안 스케줄러가 언제 CPU를 다른 프로세스로 전환할지에 대한 기준을 나타냄

 

  • 선점형 스케줄링
    • 프로세스가 CPU를 점유 중일 때, 다른 우선순위 프로세스가 도착하면 현재 실행 중인 프로세스를 강제로 중단하고 다른 프로세스에게 CPU를 할당하는 방식
    • 선점이 발생할 때마다, 현재 실행 중인 프로세스는 현재의 상태를 저장하고 나중에 재개될 수 있도록 정보를 유지
    • ex) 라운드 로빈
  • 비선점형 스케줄링
    • 프로세스가 CPU를 점유 중일 때, 다른 우선순위의 프로세스가 도착하면 현재 실행 중인 프로세스가 완료되거나 I/O 등의 이벤트가 발생할 때까지 기다린 후에 CPU를 할당하는 방식
    • 선점이 발생하지 않기 때문에, 프로세스는 실행을 완료하거나 대기 상태로 들어가기 전까지 계속 CPU를 보유
    • ex) 선입선출 스케줄링

 

<질문 1> 선입선출 스케줄링(FCFS)에 대해 설명해주세요.

답변

 

선입선출 스케줄링이란?

  • 가장 간단한 CPU 스케줄링 알고리즘, 먼저 도착한 프로세스를 먼저 실행하는 방식
  • 프로세스가 CPU를 요청하면, 큐의 가장 먼저 도착한 프로세스가 CPU를 할당받아 실행

특징

  • 비선점형 스케줄링
    • 한 번 CPU를 할당받은 프로세스는 완료되거나 I/O 등의 이벤트가 발생할 때까지 계속 CPU를 보유
  • 공평성
    • 먼저 도착한 순서대로 프로세스에 CPU를 할당하므로, 모든 프로세스에게 공평한 기회를 제공
  • 구현이 간단
    • FCFS는 구현이 간단하며, 큐 자료구조를 사용하여 프로세스를 관리
  • 대기 시간 문제
    • 평균 대기 시간이 길어질 수 있음
    • 먼저 도착한 프로세스가 긴 CPU 버스트를 가지고 있을 경우, 그 후에 도착한 프로세스들은 대기 시간이 길어질 수 있음

 

<질문 1> 최단 작업 우선 스케줄링(SJF)에 대해 설명해주세요.

답변

 

최단 작업 우선 스케줄링이란?

  • 실행할 프로세스를 선택할 대 해당 프로세스의 실행 시간이 가장 짧은 것을 선택하는 방식
  • 프로세스의 실행 시간을 고려하여 스케줄링을 수행하므로, 실행 시간이 짧은 프로세스가 먼저 실행되어 CPU 사용률을 최적화하고 대기시간을 최소화 하는 특징이 있음

단점

  • 프로세스의 실행 시간을 정확하게 예측하기 어려움
  • 컨텍스트 전환이 자주 발생할 수 있어 오버헤드가 발생할 수 있음

 

<질문 1> 최소 잔류 시간 우선 스케줄링(SRTF) 방식에 대해 설명해주세요.

답변

 

최소 잔류 시간 우선 스케줄링이란?

  • 선점형 스케줄링 알고리즘 중의 하나
  • 실행 중인 프로세스 중에서 남은 실행 시간이 가장 짧은 프로세스에 CPU를 할당하는 방식
  • 최소 실행 시간을 가진 프로세스를 먼저 실행하여 평균 대기 시간을 최소화하려는 목적을 갖음

특징

  • 선점형
    • 현재 실행 중인 프로세스보다 남은 실행 시간이 더 짧은 프로세스가 도착하면 더 짦은 프로세스가 CPU를 선점하게 됨
  • 남은 실행 시간 고려
    • 프로세스가 도착할 때마다 남은 실행 시간을 확인하고, 현재 실행중인 프로세스의 남은 실행 시간보다 더 짧은 경우에만 선점이 일어남

단점

  • 프로세스의 남은 시간을 파악하기가 어려움
  • 컨텍스트 전환 때문에 오버헤드가 발생할 수 있음

 

그렇다면! 최단 작업 우선 스케줄링과의 차이는?

 

SJF는 실행 시간이 가장 짧은 프로세스를 선택하되, 선점 여부에 따라 비선점형과 선점형으로 나뉘며, SRTF는 항상 선점형으로 현재 실행 중인 프로세스를 선점하여 최소 잔류 시간을 유지

 

 

<질문 1> 우선순위 스케줄링에 대해 설명해주세요.

답변

 

우선순위 스케줄링이란?

  • 프로세스들에게 우선순위를 부여하고, CPU를 할당할 때 우선순위가 가장 높은 프로세스에게 CPU를 할당하는 스케줄링 알고리즘
  • 우선순위 요소 ex) 프로세스의 중요도, 시간 제한, 예상 시간 등

 

  • 비선점형 우선순위 알고리즘
    • CPU를 할당받은 프로세스가 완료되거나 대기 상태로 들어가야만 다른 프로세스에게 CPU가 할당됨
    • 새로 도착한 프로세스나 우선순위가 높은 프로세스가 CPU를 할당받을 때까지 대기
  • 선점형 우선순위 스케줄링
    • 현재  실행 중인 프로세스의 우선순위보다 더 높은 우선순위를 가진 새로운 프로세스가 도착하면, 현재 실행 중인 프로세스를 선점하고 CPU를 새로운 프로세스에 할당

단점

  • 우선순위가 지나치게 높거나 낮으면 기아 또는 무한 대기 상태가 발생할 수 있음

 

<질문 1> 라운드 로빈 스케줄링에대해 설명해주세요.

답변

 

라운드 로빈 스케줄링이란?

  • 가장 간단하고 평등한 형태의 스케줄링 알고리즘
  • 시분할 시스템에서 널리 사용되며, 각 프로세스에 일정 시간 동안 CPU를 할당하고 순환적으로 다음 프로세스에 CPU를 할당

특징

  • 시간 할당량
    • 라운도 로빈은 각 프로세스에게 일정한 시간 동안 CPU를 할당
  • 선점형
    • 각 프로세스는 할당된 시간이 다 되면 준비 큐의 다음 프로세스에게 CPU를 양보
  • 평등성
    • 각 프로세스는 동일한 시간 할당량을 받기 때문에 공평하게 CPU를 이용할 수 있음

단점

  • 간단하고 공평한 특성을 갖지만, 프로세스의 실행 시간이 매우 다를 경우에는 평균 대기 시간이 길어질 수 있음

 

<질문 1> 멀티 레벨 큐 스케줄링에 대해 설명해주세요.

답변

 

멀티 레벨 큐 스케줄링이란?

  • 여러 개의 큐를 사용하여 프로세스를 관리하는 스케줄링 기법
  • 각 큐는 다른 우선순위를 갖고 있으며, 각 우선 순위에 해당하는 큐는 독립적으로 동작
  • 이러한 큐들은 서로 다른 스케줄링 알고리즘을 적용할 수 있음

특징

  • 다중 큐 구성
    • 시스템에는 여러 큐가 존재하고, 각 큐는 서로 다은 우선순위 레벨을 가지고 있음
  • 스케줄링 알고리즘 적용
    • 각 큐에는 다른 스케줄링 알고리즘을 적용할 수 있음
    • ex) 높은 우선순위 큐에는 우선순위 스케줄링 알고리즘, 낮은 우선순위 큐에는 라운드 로빈 스케줄링 알고리즘
  • 우선순위 조절
    • 시스템이나 운영체제는 프로세스가 어느 큐로 이동할지, 또는 어떤 우선 순위를 가질지를 결정
  • 프로세스 이동
    • 프로세스는 일정 시간 동안 실행된 후, 해당 큐의 끝으로 이동하거나, 우선순위를 낮추거나, 다른 큐로 이동할 수 있음

-> 다양한 프로세스 특성에 맞춰 다양한 스케줄링 알고리즘을 혼합하여 사용할 수 있어서 효율적으로 시스템 자원을 활용할 수 있음

 

<질문 1> 멀티 레벨 피드백 큐 스케줄링에 대해 설명해주세요.

답변

 

멀티 레벨 피드 백 큐 스케줄링이란?

  • 여러 개의 큐를 사용하여 프로세스를 관리하는 스케줄링 기법 중 하나
  • 멀티 레벨 큐 스케줄링의 확장된 형태
  • 다양한 우선순위 레벨을 가진 큐를 사용하면서 동시에 프로세스의 우선순위를 동적으로 조절할 수 있음

 

특징

  • 다중 큐 구성
    •  
    • 시스템에는 여러 큐가 존재하고, 각 큐는 서로 다은 우선순위 레벨을 가지고 있음
  • 피드백 메커니즘
    • 프로세스가 큐에서 실행되는 동안 우선순위를 낮추거나 높이는 피드백 메커니즘이 사용됨
    • ex) 현재 큐에서 일정 시간 동안 실행되지 못한 프로세스는 우선순위가 높은 큐로 이동
  • 다양한 우선순위 조절
    • 프로세스가 오랜 시간 동안 CPU를 사용하지 못하면 우선순위를 높이고, 반대로 자주 CPU를 사용한 경우에는 우선순위를 낮출 수 있음
  • 다양한 스케줄링 알고리즘 적용
    • 각 큐에는 다른 스케줄링 알고리즘을 적용할 수 있음
    • ex) 높은 우선순위 큐에는 우선순위 스케줄링 알고리즘, 낮은 우선순위 큐에는 라운드 로빈 스케줄링 알고리즘
728x90

'운영체제' 카테고리의 다른 글

[cs 스터디 - 운영체제 4주차]  (1) 2024.02.05
[cs 스터디 - 운영체제 2주차]  (0) 2024.01.15
[CS스터디 - 운영체제 1주차]  (0) 2024.01.08

댓글