• 카테고리

    질문 & 답변
  • 세부 분야

    시스템

  • 해결 여부

    해결됨

FIFO 알고리즘에 대한 질문입니다.

22.03.25 17:41 작성 조회수 182

1

  예전 강의에서 여러 프로세스를 동시에 실행하는 것처럼 보이게 하려고 운영체제의 스케줄러가 시분할 처리를 이용해 멀티 프로세싱을 구현한다고 배웠는데, FIFO 알고리즘을 사용하면 한 번에 한 가지 프로세스만 처리하니까 멀티 프로세싱이 아닌 건가요? 멀티 프로세싱이 아니라면 애초에 스케줄링과 시분할 처리의 의미가 없을 텐데 헷갈립니다ㅠ

 

  또한 I/O 요청이 들어오면 CPU가 쉰다고 하셨는데, 위의 질문과 마찬가지로 애초에 스케줄링을 하는 이유가 I/O 요청이 들어와도 CPU가 쉬지 않게 하려는 거잖아요? 제가 어떤 부분을 잘못 알고 있는 걸까요?

답변 1

답변을 작성해보세요.

0

예전에는 프로그램 하나 하나를 오퍼레이터가 일일이 실행시켰기 때문에 결과를 확인하는데 오버헤드가 있었습니다.
이를 해결하기 위해 데이터를 한번에 모아서 처리했는데 이 방법이 FIFO였습니다.
FIFO는 일괄처리 시스템에 적합한 스케줄링 방식입니다!

하지만 FIFO는 I/O요청이 들어오면 CPU가 쉬기 때문에 CPU사용률이 떨어집니다.
이를 개선하기 위해 시분할처리 방식이 나온것이고 단점이 많은 FIFO는 현대 운영체제에서는 거의 쓰이지 않는 스케줄링 방식입니다.

"운영체제의 역사" 강의를 한 번 더 참조하시면 이해가 잘 가실겁니다!