인프런 워밍업 클럽2 cs <day6>

인프런 워밍업 클럽2 cs <day6>

DAY 6 과제

운영체제 -섹션 3유닛 5,6,7 SJF,RR, MLFQ

알고리즘 - 섹션 3 유닛 1 재귀

 

알고리즘

  • 재귀함수란 자기 자신을 호출하는 함수

  • 콜스택에 자리를 많이 차지하여 메모리효율에 떨어진다.

    • 콜스택 : 프로세스에서 코드,데이터, 힙,스택 으로 메모리 영역이 있다. 그 중 하나

    • 콜스택은 함수가 First In Last Out으로 처음 들어가는 함수가 나중에 나온다.

    • 재귀함수가 호출될 때마다 콜스택에 계속 쌓이는데 거기서 메모리 효율이 떨어진다.

  • 그럼에도 불구하고 사용하는 이유

    • 팩토리얼을 표현하기 편리하다.

    • 팩토리얼 : 1부터 n까지 모두 곱하여 표현하는 것 (표기 5!)


      5! =5*4*3*2*1

       

function facto(num){
   if(num == 1 || num == 0){
     return 1;
   }else{
     return num * fac(num-1);   //5 * fac(4)= 5 * 4 * fac(3)....
   }
}

운영체제

SJF

  • Short Job First

  • FIFO 의 단점을 보안해보려고 만든 알고리즘이지만
    brustTime(대기시간)이 너무 긴 프로세스에게는 계속 밀려나서 불리한 알고리즘

  • 프로세스의 실행시간을 예측하기도 어렵기 때문에

->실패해버린 알고리즘 ㅜㅜ

 

RR

  • Round Robin

  • 실행시간이 다끝날 때까지 기다리는 FIFO 과 SJF 단점을 보안해서
    타임 슬라이스를 부여해서 일정 시간이 지나면 프로세스가 cpu 할당하는 것을 끊고
    맨 뒤로 보내버리는 알고리즘

    • RR 대기시간 = FIFO 대기시간 -> RR은 비효율적인 방식!
      RR은 컨텍스트 스위칭에 시간을 더 많이 사용하기 때문

  • RR은 타임슬라이스의 크기에 따라 효율이 달라진다.

    • 타임 슬라이스, 컨텍스트 스위칭 -> 배보다 배꼽이 더 커진다.

    • 타임 슬라이스 , 사용자가 여러 프로세스를 같이 사용할 때 버벅임을 느낄 수있다.

    • 하지만 실제 타임슬라이스는 1ms으로 설정되어 있다~

 

MLFQ

  • Multi Level Feedback Queue

  • RR 업그레이드 버전

  • 타임 슬라이스의 크기에 따라 달라지는 알고리즘 이다.

  • CPU Bound Process :

    cpu 사용률과 처리량을 제일 중요 시 여긴다.


    I/O Bound Process : 입출력 장치 사용률과 처리량을 제일 중요 시 여긴다.

     

image

  • 타임 슬라이스 크기 차이에 따라 i/o 사용률이 확연히 다른 걸 볼 수있지만,
    오른쪽 p1은 컨텍스트 스와칭, 오버헤드도

  • p1과 같이 실행시간이 긴 애들은 오버헤드와 같은 불공평을 견뎌야한다...
    ->MLFQ를 사용해서 불공평을 없애보자!

  • cpu 바운드프로세스와 입출력 바운드 프로세스 각각 다른 타임 슬라이스를 부여한다.->구분해야된다.

  • 구분하는 방법!

    • cpu 바운드 프로세스 일 경우 cpu 사용하는 프로세스가 타임슬라이스 크기를 오버해 cpu 스케줄러에 의해 강제로 cpu를 빼앗기는 상황이 생긴다.

    • 반대로 입출력 바운드 프로세스는 스스로 cpu를 반납하려는 상황이 생긴다.(cpu 사용률 적음)

  • 이 방법을 토대로 우선순위와 타임슬라이스에 따른 큐를 준비한다.👇image

  • 1. 프로세스가 우선순위 1큐에 들어간다.


    2. 타임슬라이스 크기를 오버해 강제로 CPU를 뺏긴다-> 우선순위 2 큐로 우선순위가 낮은 큐로 이동


    => 우선순위에 밀릴수록 타임 슬라이스크기가 커지고 CPU를 효율적으로 사용할 수 있는 환경이 된다.



다른 알고리즘은 되게 친근했는데 MLFQ는 들을 때 예? 하면서 한 번씩 다시들었다.

사실 공부했던 건데 큐와 큐사이를 이동할 수 있는 알고리즘임~ 하고 외워버리기만하고 이렇게 자세하게 보지 않았던 것 같다.

댓글을 작성해보세요.

채널톡 아이콘