[CS스터디]-운영체제

한주영·2023년 5월 29일
0

CS

목록 보기
17/19

스케줄링 알고리즘

FCFS

  • "First-Come, First-Served"를 의미하며 컴퓨터 과학 및 운영 체제에서 사용되는 스케줄링 알고리즘
    -매우 간단하고 직관적 시스템에 도착하거나 입력하는 순서에 따라 작업 또는 프로세스를 실행하여 작동한다.
    -장점 중 하나는 단순성과 공정성이다
    =>모든 작업은 도착한 순서대로 실행할 수 있는 기회를 가지므로 어떤 작업도 자원이 무한정 고갈되지 않도록 한다.
    -장기 실행 프로세스가 짧은 프로세스보다 먼저 도착하는 경우 평균 대기 시간이 좋지 않을 수 있다는 단점이 있다
    -우선 순위를 고려하지 않는다는 것

SJF

-"Shortest Job First"의 약자
-SJF 알고리즘은 실행 시간이 가장 짧은 작업을 선택하여 다음에 실행함으로써 프로세스의 평균 대기 시간을 최소화하는 것을 목표로 한다.
-SJF 스케줄링의 기본 아이디어는 완료하는 데 더 적은 시간이 필요한 작업의 우선 순위를 지정하는 것이다.
=>짧은 작업을 먼저 실행함으로써 모든 프로세스의 전체 대기 시간을 최소화한다.

선점과 비선점으로 나뉘어진다.

1.비선점:실행을 위해 작업이 선택되면 나중에 도착할 수 있는 더 짧은 작업에 관계없이 완료될 때까지 계속된다.
2. 선점:현재 실행 중인 작업보다 실행 시간이 짧은 새 작업이 도착하면 스케줄러는 현재 실행 중인 작업을 중단하고 새 작업으로 전환한다.

Round Robin

-여러 프로세스나 작업이 CPU(Central Processing Unit)를 공평하게 공유할 수 있도록 하는 선점형 알고리즘
-주기적으로 각 프로세스에 고정 시간 양자 또는 시간 조각을 할당하여 각 프로세스에 정기적인 실행 기회를 제공한다
-모든 프로세스는 준비 대기열에 배치되고 라운드 로빈 방식으로 실행된다

  • 주요 특징은 공정성.
    각 프로세스는 실행하는 데 동일한 시간을 가지므로 어떤 프로세스도 오랜 기간 동안 CPU 시간이 부족하지 않게 된다.
    -모든 프로세스가 약간의 CPU 시간을 받도록 보장한다

SRT

-SJF(Shortest Job First) 스케줄링 알고리즘의 선점형 버전
-실행을 위해 남은 실행 시간이 가장 짧은 작업을 항상 선택하여 프로세스의 전체 실행 시간과 대기 시간을 최소화하는 것을 목표로 한다.
-새로운 프로세스가 도착하거나 현재 실행 중인 프로세스가 선점되면 스케줄러는 사용 가능한 모든 프로세스의 남은 실행 시간을 비교하고 남은 시간이 가장 짧은 프로세스를 선택하여 다음 실행을 수행한다
-최소한의 남은 시간이 필요한 작업의 우선 순위를 지정하는 것이다.
남은 시간이 가장 짧은 작업을 먼저 실행함으로써 SRT는 대기 시간을 줄이고 시스템의 전반적인 효율성을 향상시키는 것을 목표로 한다.
-잠재적으로 대기 시간을 최소화하고 효율적인 자원 활용을 보장할 수 있다는 것이다
-장기 실행 프로세스가 짧은 프로세스에 의해 지속적으로 선점되어 완료가 지연되는 프로세스 기아 문제로 어려움을 겪을 수 있다.

Priority scheduling

-각 프로세스는 작업의 중요성, 기한 또는 리소스 요구 사항과 같은 다양한 요소를 기반으로 할당할 수 있는 우선 순위 값과 연결된다.

  • 우선순위 값은 숫자 또는 기호로 표시될 수 있으며, 낮은 값은 높은 우선순위를 나타냄(예: 우선순위 1이 우선순위 2보다 높음)
    -현재 실행 중인 경우에도 우선 순위가 높은 프로세스가 우선 순위가 낮은 프로세스를 선점할 수 있다.

Multilevel Queue

-서로 다른 우선 순위 수준 또는 기준에 따라 프로세스를 별도의 대기열로 나누는 컴퓨터 과학 및 운영 체제에서 사용되는 예약 알고리즘이다.

  • 각 대기열에는 서로 다른 우선 순위 또는 스케줄링 알고리즘이 지정되어 특성에 따라 프로세스를 차별화하여 처리할 수 있다
    -프로세스는 우선 순위, 작업 유형 또는 리소스 요구 사항과 같은 특정 기준에 따라 다른 대기열로 분류
  • 프로세스가 동작이나 성능에 따라 서로 다른 대기열 사이를 이동할 수 있는 피드백 대기열과 같은 변형이 있을수 있다.

Multilevel Feedback Queue

-Multilevel Queue Scheduling의 개념을 확장한다.
동작 및 리소스 요구 사항에 따라 서로 다른 대기열 간에 프로세스를 동적으로 이동할 수 있다.

  • 프로세스가 응답 시간, 실행 시간 또는 기타 미리 정의된 기준에 따라 다른 대기열로 이동할 수 있는 피드백 개념을 도입한다.
    =>예를 들어 우선순위가 높은 대기열의 프로세스가 완료되지 않고 할당된 시간 퀀텀을 모두 사용하는 경우 우선순위가 낮은 대기열로 이동할 수 있다. 반대로 프로세스가 낮은 우선 순위 큐에서 빨리 완료되면 우선 순위가 높은 큐로 승격될 수있다.

인터럽트

-컴퓨터 시스템에서 프로그램 또는 프로세스의 정상적인 실행을 방해하는 신호 또는 이벤트를 의미한다.
-컴퓨터 시스템의 효율적이고 응답성이 뛰어난 작동에 필수적이다.
=>이를 통해 장치나 프로세스가 CPU와 비동기식으로 통신하여 즉각적인 주의나 조치가 필요한 이벤트나 조건을 알릴 수 있다.
하드웨어 이벤트와 소프트웨어 이벤트 같은 다양한 이벤트에 의해 트리거 될수있다.

동기적 인터럽트,비동기적 인터럽트

동기식 인터럽트:

동기 인터럽트는 프로그램의 정상적인 실행 중에 발생하는 특정 명령 또는 조건에 대한 응답으로 발생한다.
이러한 인터럽트는 프로그램 자체에 의해 시작되며 일반적으로 소프트웨어 명령이나 시스템 호출을 통해 의도적으로 트리거된다
. 프로그램은 명시적으로 인터럽트를 요청하고 CPU는 적절한 인터럽트 처리기 또는 서비스 루틴으로 제어를 전송.
코드의 특정 지점에서 명시적으로 프로그래밍되고 발생하기 때문에 예측 가능하고 결정적이다.

비동기 인터럽트:

프로그램 실행과 독립적인 외부 이벤트 또는 신호에 대한 응답으로 발생.

=>하드웨어 장치 또는 기타 외부 소스에 의해 트리거되며 실행 중인 프로그램의 제어를 받지 않는다.
-I/O 완료, 타이머 만료, 하드웨어 오류 또는 사용자 상호 작용과 같은 다양한 이벤트로 인해 발생할 수 있다.
-비동기 인터럽트가 발생하면 CPU는 현재 프로그램 실행을 일시 중단하고 제어를 적절한 인터럽트 핸들러로 넘긴다.
-비동기 인터럽트는 언제든지 발생할 수 있고 프로그램에 의해 직접 시작되지 않기 때문에 예측할 수 없고 비결정적이다.

차이점

인터럽트 이벤트와 인터럽트된 프로그램 실행 간의 관계에 있다.
동기식 인터럽트는 프로그램 자체에 의해 시작되고 정상적인 실행 중에 발생하는 반면 비동기식 인터럽트는 외부에서 트리거되며 프로그램 진행과 관계없이 언제든지 발생할 수 있다.

인터럽트 처리과정

인터럽트 감지:
첫 번째 단계는 인터럽트 발생을 감지하는 것이다. 이는 외부 하드웨어 장치에 의해 시작되거나 소프트웨어 명령에 의해 생성될 수 있다.
인터럽트 승인:
감지된 후 CPU는 인터럽트 장치에 확인 신호를 보냄으로써 인터럽트를 확인한다. 이는 인터럽트 요청이 수신되었으며 처리될 것임을 나타냄.
현재 상태 저장:
제어를 인터럽트 처리기 또는 인터럽트 서비스 루틴(ISR)으로 넘기기 전에 CPU는 실행 중인 프로그램의 현재 상태를 저장한다.
여기에는 중단된 프로그램이 재개될 때 복원해야 하는 프로그램 카운터, 레지스터 및 기타 관련 정보 저장이 포함된다.
ISR로 제어를 이전.
CPU는 인터럽트와 관련된 적절한 ISR로 제어를 전송한다.
ISR은 인터럽트를 처리하고 필요한 작업을 수행하는 특정 루틴 또는 코드 세그먼트이다.
ISR은 일반적으로 메모리의 지정된 영역에 위치하거나 인터럽트 컨트롤러에등록됨.
인터럽트 서비스:
ISR 내에서 인터럽트 이벤트가 서비스된다.
특정 인터럽트를 처리하는 데 필요한 작업을 실행하는 것이 포함된다.
ISR에서 수행되는 작업은 데이터 처리, 하드웨어 장치와의 상호 작용, 시스템 상태 업데이트 또는 기타 필요한 작업 수행과 같은 인터럽트의 특성에 따라 다르다.
중단된 프로그램 재개:
인터럽트가 처리되면 CPU는 인터럽트된 프로그램의 이전에 저장된 상태를 복원.
프로그램 카운터, 레지스터 및 기타 관련 정보 복원이 포함됨.
그런 다음 CPU는 중단된 지점부터 중단된 프로그램의 실행을 재개한다.
인터럽트에서 복귀:
중단된 프로그램이 재개된 후 인터럽트가 발생하지 않은 것처럼 실행을 계속 하게 됨.
프로그램은 계속해서 다음 명령어를 실행하고 CPU는 새로운 인터럽트 감지를 기다리게 된다.

인터럽트와 이중모드

이중모드
통신 시스템에서 두 장치 간에 데이터가 송수신되는 방식

인터럽트와 이중모드의 연관성

반이중통신
-전송과 수신을 번갈아 가며 해야한다.
-장치가 데이터를 수신하면 데이터가 도착했고 처리가 필요하다는 신호를 CPU에 알리기 위해 인터럽트를 트리거할 수 있다.
-후에 CPU는 현재 실행을 중단하고 그에 따라 수신된 데이터를 처리할 수 있다.

전이중 통신

-양방향 동시 통신이 가능하다.
-결과적으로 장치가 명시적인 인터럽트 없이 데이터를 지속적으로 수신할 수 있으므로 데이터 수신에 인터럽트가 덜 필요할 수 있다.

인터럽트와 이중 모드 간의 관계는 특정 통신 프로토콜, 하드웨어 설계 및 소프트웨어 구현에 따라 달라질 수 있다는 점에 유의해야 하고,
인터럽트 처리 및 이중 모드 관리는 일반적으로 사용 중인 네트워크 드라이버, 운영 체제 및 프로토콜에 따라 결정된다.

profile
백엔드개발자가 되고싶은 코린이:)

0개의 댓글