OS의 프로세스 스케줄링: 장기, 중기, 단기 스케줄러

⚡ 스마트 요약

프로세스 스케줄링은 운영 체제 작업으로, 준비, 대기 및 실행 상태에 있는 프로세스를 관리합니다. 장기, 중기 및 단기 스케줄러를 사용하여 각 프로세스에 CPU 시간을 할당하고, CPU를 항상 가동 상태로 유지하며, 응답 시간을 단축합니다.

  • 🗓️ 정의: 프로세스 스케줄링은 CPU가 항상 바쁘게 작동하도록 준비, 대기 및 실행 상태의 프로세스를 관리합니다.
  • 📥 대기열: 작업, 준비 및 장치 큐는 프로세스를 실행 상태에 따라 구성합니다.
  • 🔀 2상태 모델: 가장 간단하게 말하면, 프로세스는 실행 중이거나 실행 중이 아닙니다.
  • 🧑‍💼 세 명의 스케줄러: 장기, 중기 및 단기 스케줄러는 어떤 프로세스가 언제 실행될지를 제어합니다.
  • 단기: CPU 스케줄러는 가장 빠르며, 즉시 실행할 준비가 된 프로세스를 선택합니다.
  • 🔁 컨텍스트 전환: PCB에 CPU 상태를 저장하고 복원함으로써 멀티태스킹이 가능해집니다.

운영체제에서의 프로세스 스케줄링

프로세스 스케줄링이란 무엇입니까?

프로세스 스케줄링 준비, 대기, 실행 등 다양한 상태의 프로세스를 스케줄링하는 운영체제 작업입니다.

프로세스 스케줄링을 통해 운영체제는 각 프로세스에 CPU 실행 시간을 할당할 수 있습니다. 프로세스 스케줄링 시스템을 사용하는 또 다른 중요한 이유는 CPU를 항상 가동 상태로 유지하여 프로그램의 응답 시간을 최소화할 수 있다는 점입니다.

프로세스 스케줄링 대기열

프로세스 스케줄링 큐를 사용하면 각 프로세스 상태 및 PCB(프로세스 스케줄링 큐)별로 별도의 큐를 관리할 수 있습니다. 동일한 실행 상태에 있는 모든 프로세스는 같은 큐에 배치됩니다. 따라서 프로세스 상태가 변경될 때마다 해당 PCB를 기존 큐에서 분리하여 새 상태 큐로 이동해야 합니다.

운영 체제 대기열에는 세 가지 유형이 있습니다.

  1. 작업 대기열 – 모든 프로세스를 시스템에 저장하는 데 도움이 됩니다.
  2. 준비 대기열 – 이 유형의 대기열은 실행 준비가 되어 있고 실행 대기 중인 주 메모리에 있는 모든 프로세스를 설정하는 데 도움이 됩니다.
  3. 장치 대기열 – I/O 장치가 없어 차단되는 프로세스입니다.
프로세스 스케줄링 대기열
프로세스 스케줄링 대기열

위 그림에서:

  • 직사각형은 대기열을 나타냅니다.
  • 원은 자원을 나타냅니다.
  • 화살표는 과정의 흐름을 나타냅니다.
  1. 모든 새로운 프로세스는 먼저 준비 큐에 추가됩니다. 실행될 차례가 될 때까지 준비 큐에서 대기합니다. 즉, 새로운 프로세스는 준비 큐에 추가되어 실행 대상으로 선택되거나 디스패치될 때까지 기다립니다.
  2. 하나의 프로세스가 CPU를 할당받아 실행 중입니다.
  3. 해당 프로세스는 I/O 요청을 발행해야 합니다.
  4. 그런 다음, I/O 큐에 배치해야 합니다.
  5. 해당 프로세스는 새로운 하위 프로세스를 생성해야 합니다.
  6. 프로세스는 종료를 기다리고 있어야 합니다.
  7. 해당 프로세스는 인터럽트 발생 시 CPU에서 강제로 제거되어야 합니다. 인터럽트 처리가 완료되면 준비 큐로 다시 보내져야 합니다.

두 상태 프로세스 모델

두 가지 상태 프로세스 모델은 다음과 같습니다.

  • 실행 상태
  • 실행되지 않는 상태

달리는

. Opera팅 시스템, 새로운 프로세스가 구축될 때마다 실행되어야 하는 시스템에 입력됩니다.

실행되지 않음

실행되지 않는 프로세스들은 큐에 저장되어 실행 순서를 기다립니다. 큐의 각 항목은 특정 프로세스를 가리킵니다.

일정 목표

다음은 프로세스 스케줄링의 중요한 목표입니다.

  • 허용 가능한 응답 시간 내에 대화형 사용자 수를 최대화합니다.
  • 대응과 활용 사이의 균형을 유지하세요.
  • 무기한 연기를 피하고 우선순위를 적용하세요.
  • 또한 핵심 자원을 보유한 프로세스에 대한 참조도 제공해야 합니다.

프로세스 스케줄러 유형

스케줄러는 프로세스 스케줄링을 처리할 수 있는 일종의 시스템 소프트웨어입니다.

프로세스 스케줄러에는 주로 세 가지 유형이 있습니다.

  1. 장기 스케줄러
  2. 단기 스케줄러
  3. 중기 스케줄러

장기 스케줄러

장기 스케줄러는 다른 이름으로도 알려져 있습니다. 작업 스케줄러이 스케줄러는 프로그램을 관리하고, 대기열에서 프로세스를 선택하여 실행을 위해 메모리에 로드합니다. 또한 멀티 프로그래밍 정도를 조절합니다.

하지만 이러한 유형의 스케줄러의 주요 목표는 프로세서 작업과 I/O 작업과 같은 다양한 작업을 균형 있게 조합하여 멀티프로그래밍을 관리할 수 있도록 하는 것입니다.

중기 스케줄러

중기 계획은 중요한 부분입니다. 교환ping이 스케줄러를 사용하면 스왑 아웃된 프로세스를 처리할 수 있습니다. 이 스케줄러에서는 실행 중인 프로세스가 일시 중단될 수 있으며, 이로 인해 I/O 요청이 발생합니다.

실행 중인 프로세스는 입출력 요청을 하면 일시 중단될 수 있습니다. 일시 중단된 프로세스는 완료를 향해 어떤 진행도 할 수 없습니다. 다른 프로세스를 위해 메모리 공간을 확보하려면 일시 중단된 프로세스를 보조 저장 장치로 이동해야 합니다.

단기 스케줄러

단기 일정 ​​관리는 다음과 같이 알려져 있습니다. CPU 스케줄러이 스케줄러의 주요 목표는 설정된 기준에 따라 시스템 성능을 향상시키는 것입니다. 이를 통해 실행 준비가 된 프로세스 그룹 중에서 하나를 선택하여 CPU를 할당할 수 있습니다. 디스패처는 단기 스케줄러가 선택한 프로세스에 CPU 제어권을 넘겨줍니다.

스케줄러의 차이점

장기 vs. 단기 vs. 중기:

장기간 단기 중기
장기 일정 관리는 작업 스케줄러라고도 합니다. 단기 스케줄러는 CPU 스케줄러라고도 합니다. 중기 거래는 스왑이라고도 합니다.ping 스케줄러.
시분할 시스템에서는 존재하지 않거나 최소한입니다. 시분할 순서에서는 중요하지 않습니다. 이 스케줄러는 시간 공유 시스템의 요소입니다.
단기 스케줄러에 비해 속도가 느립니다. 단기, 중기 스케줄러에 비해 속도가 가장 빠릅니다. 중간 속도를 제공합니다.
로드된 프로세스 중에서 선택하여 메모리로 다시 풀링할 수 있습니다. 실행 준비 상태에 있는 프로세스만 선택합니다. 이는 프로세스를 메모리로 다시 보내는 데 도움이 됩니다.
완벽한 제어 기능을 제공합니다. 제어력이 떨어집니다. 멀티프로그래밍 수준을 낮춥니다.

컨텍스트 전환이란 무엇입니까?

컨텍스트 스위칭은 CPU의 상태를 PCB에 저장/복원하는 방식으로, 나중에 동일한 지점에서 프로세스 실행을 재개할 수 있도록 합니다. 컨텍스트 스위칭 방식은 멀티태스킹 운영체제에 중요합니다.

자주 묻는 질문

스케줄러는 정책에 따라 다음에 실행될 프로세스를 결정합니다. 디스패처는 선택된 프로세스에 CPU 제어권을 실제로 넘겨주고 컨텍스트 스위치 및 점프를 수행하는 모듈입니다.ping 프로그램 내의 올바른 위치로 이동합니다.

멀티프로그래밍 정도는 메인 메모리에 동시에 유지되는 프로세스 수를 나타냅니다. 장기 스케줄러는 효율적인 시스템 성능을 위해 CPU 및 I/O 사용량의 균형을 유지하면서 허용할 프로세스 수를 결정하여 이를 제어합니다.

프로세스 제어 블록(PCB)은 운영체제가 프로세스의 상태, 프로그램 카운터, 레지스터, 메모리 제한 등 프로세스에 대한 모든 정보를 저장하는 데 사용하는 데이터 구조입니다. 이는 컨텍스트 스위치 중에 프로세스를 저장하고 복원하는 데 필수적입니다.

AI는 작업 부하 패턴을 학습하여 어떤 프로세스를 실행하고 CPU 시간을 어떻게 할당할지 결정할 수 있습니다. 고정된 규칙 대신 실시간으로 스케줄링을 조정하여 특히 클라우드 및 멀티코어 시스템에서 처리량, 응답 시간 및 에너지 효율성을 향상시킵니다.

네. AI 모델은 과거 CPU 사용량 급증 및 I/O 패턴을 분석하여 프로세스 실행 시간과 CPU 또는 I/O 병목 현상 여부를 예측할 수 있습니다. 이러한 예측은 스케줄러가 프로세스 우선순위를 정하고 대기 시간을 줄이는 데 도움이 됩니다.

이 게시물을 요약하면 다음과 같습니다.