[인프런 워밍업클럽 CS 2기] 2주차 미션

[인프런 워밍업클럽 CS 2기] 2주차 미션

운영체제

  • FIFO 스케줄링의 장단점이 뭔가요?

    • 장점 : 스케쥴링 큐에 들어온 순서대로 CPU를 할당받아 처리할 수 있음, 단순하고 직관적임

    • 단점 : 먼저들어온 프로세스가 완전히 끝나야 다음프로세스를 실행할 수 있음, 실행시간이 짧은 프로세스라도 순서를 기다려야함, I/O작업이 있으면 CPU는 작업이 끝날때까지 쉬고있기 때문에 CPU사용률이 낮아짐, Burst Time에 따라 성능(평균대기시간)이 달라지기때문에 일반적으로 쓰이진않고 일괄처리 시스템에 쓰임

       

 

  • SJF를 사용하기 여러운 이유가 뭔가요?

    • SJF는 Burst Time이 짧은게 먼저 실행되면 평균 대기시간이 짧아지기 때문에 짧은 작업먼저 실행되며, 이론적으로 FIFO 보다 성능이 좋으나, 구현시 아래 문제가 발생해 잘 사용되지 않음

      • 문제1. 어떤 프로세스가 얼마나 실행될지 예측이 힘듦

      • 문제2. Burst Time이 긴 프로세스는 뒤로밀려나 아주오랫동안 실행되지 않을수도 있음

 

  • RR 스케줄링에서 타임 슬라이스가 아주 작으면 어떤 문제가 발생할까요?

    • RR 스케쥴링은 컨택스트 스위칭이 일어나기때문에, 타임슬라이스가 아주 작으면 그만큼 컨택스트 스위칭 시간이 추가되기 때문에 오버헤드가 발생함

 

  • 운영체제가 MLFQ에서 CPU Bound Process와 I/O Bound Process를 어떻게 구분할까요?

    • CPU를 사용하는 프로세스가 실행하다가 스스로 CPU사용을 반납하면 사용률이 적어 I/O Bound Process일 확률이 높고, 반대로 타임슬라이스 크기를 오버해서 CPU 스케줄러에 의해 CPU를 강제로 뺏기는 상황이면 CPU 사용이 많은것으로 CPU Bound Process일 확률이 높음

 

  • 공유자원이란무엇인가요?

    • 프로세스가 통신할 때 공동으로 이용하는 변수나 파일 등 을 공유자원이라고 함

 

  • 교착상태에 빠질 수 있는 조건은 어떤 것들을 충족해야할까요?

    • 교착상태의 필요조건 4가지는 아래와 같으며, 한가지라도 충족되지 않으면 교착상태가 발생하지않음

      • 상호배제 (어떤 프로세스가 한 리소스를 점유했다면, 그 리소스는 다른 프로세스에게 공유가 되면 안됨)

      • 비선점 (프로세스 A가 리소스를 점유할 때, B는 리소스를 빼앗을 수 없어야함)

      • 점유와 대기 (프로세스가 리소스 A를 가지고 있는 상태에서 B를 원하는 상태여야함)

      • 원형 대기 (점유와 대기를 하는 프로세스의 관계가 원형을 이뤄야 함)

 

자료구조와 알고리즘

  • 재귀함수에서 기저조건을 만들지 않거나 잘못 설정했을 때 어떤 문제가 발생할 수 있나요?

    • 재귀함수는 자기자신을 참조하기때문에 기저조건을 만들지 않거나, 잘못 설정했을 때 콜스택에서 재귀함수가 계속쌓여 메모리 부족을 야기시킴

 

  • 0부터 입력 n까지 홀수의 합을 더하는 재귀 함수를 만들어보세요.

    //0 ~ 입력n까지 홀수의 합을 더하는 재귀함수 구현하기
    function sumOdd(n){
        if (n <= 0){
            return 0;
        } else{
            return (n % 2 !== 0 ? n : 0) + sumOdd(n-1);    
        }    
    }
    
    console.log(sumOdd(10));
    

댓글을 작성해보세요.

채널톡 아이콘