강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

이지민님의 프로필 이미지
이지민

작성한 질문수

그림으로 쉽게 배우는 운영체제

FIFO

FIFO 알고리즘에 대해서 질문이 있습니다.

작성

·

85

1

안녕하세요. 감자님.

FIFO 알고리즘에서 질문사항이 있어서 이렇게 글을 남기게 되었습니다.

FIFO 알고리즘은 "현재 실행 중인 프로세스가 완전히 끝나야 다음 프로세스가 실행되기 때문에

먼처 도착한 실행기간이 긴 프로세스가 완료될 때까지 기다려야 한다."라는 Convoy effect(호위 효과)단점이 있다고 말씀을 하셨습니다.

특정 프로세스가 실행시간이 너무 길어서 할당 받은 CPU 점유 시간을 넘어가면 운영체제가 인터럽트를 걸어서 강제로 CPU를 뺏는 경우도 있지 않을까 싶어서요.

FIFO 알고리즘에서는 타임아웃에 따른 인터럽트를 크게 고려하지 않는 걸까요?

답변 2

0

감자님의 프로필 이미지
감자
지식공유자

안녕하세요 이지민님!
FIFO 알고리즘을 공부하시다가 단점을 해결하시려고 스스로 고민해보고 해결방법을 찾으신 것 같습니다.

FIFO 알고리즘의 이러한 단점때문에 지민님이 생각하신 것처럼 CPU 점유 시간이 길어져 강제로 뺏는 것은 뒤에 나올 라운드 로빈 알고리즘입니다.

FIFO 알고리즘은 다른 프로세스가 CPU 점유를 빼앗을 수 없습니다.

궁금증이 해결되셨나요?😊

이지민님의 프로필 이미지
이지민
질문자

아 FIFO 알고리즘은 프로세스가 스스로 CPU 점유를 포기하지 않는 이상 빼앗을 수 없는 비선점형 알고리즘이군요..! 답변 너무 감사합니다!

0

안녕하세요, 인프런 AI 인턴입니다.

이지민님께서 FIFO 알고리즘에 대해 질문해주셨네요! FIFO(First-In-First-Out) 알고리즘은 가장 먼저 도착한 프로세스가 먼저 실행되며, 특정 프로세스가 완료될 때까지 다른 프로세스는 기다려야 하는 특징을 갖고 있어 ‘Convoy effect’를 일으킬 수 있습니다. 이로 인해 CPU의 효율적인 활용이 어려워질 수 있습니다.

FIFO에서의 타임아웃 및 인터럽트는 스케줄링이 비선점형이라는 특성 때문에 고려되지 않습니다. 비선점형 스케줄링 방식에서는 프로세스가 자발적으로 CPU를 포기하지 않는 경우, 프로세스를 중간에 멈추고 다른 프로세스로 컨텍스트 스위치를 행하지 않습니다. 이는 타임 슬라이스가 있는 선점형 스케줄링(Round Robin 등)과 차이가 있는 부분입니다.

FIFO 알고리즘에서는 인터럽트를 통해 CPU 점유를 강제로 중단하는 개념은 잘 사용되지 않으며 그대로 진행하여야 하는 방식으로 설계되어 있습니다. 이러한 이유로 Convoy effect 문제가 발생할 수 있지만, 현대의 운영체제는 일반적으로 이런 비효율성을 피하고자 선점형 스케줄링 방식을 주로 사용합니다.

해당 주제에 대한 더 자세한 설명은 다음 질문들을 참고하시면 도움이 될 것입니다:

  1. 운영체제의 FIFO 알고리즘에 대한 이해
  2. FIFO와 시분할 처리의 차이점

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

이지민님의 프로필 이미지
이지민

작성한 질문수

질문하기