인프런 워밍업 클럽 스터디 2기 - CS 미션 2

인프런 워밍업 클럽 스터디 2기 - CS 미션 2

운영체제

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

  • 장점 : 단순하고 직관적입니다.

  • 단점

    • 한 프로세스가 끝나야 다음 프로세스가 시작할 수 있기 때문에 실행시간이 짤은 프로세스가 실행시간이 긴 프로세스의 작업이 끝날 때까지 기다려야 합니다.

    • I/O 작업이 있다면 I/O 작업이 끝날 떄까지 CPU가 쉬어야 하기 때문에 CPU 사용률이 감소합니다.

 

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

  • 어떤 프로세스가 얼마나 걸릴지 예측하기 힘듭니다.

  • Burst Time이 긴 프로세스는 오랫동안 실행되지 않을 수도 있습니다.

 

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

  • 프로세스 처리량보다 컨텍스트 스위칭 비용이 더 커질 수 있습니다. 오버헤드가 너무 커집니다.

 

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

  • CPU를 사용하는 프로세스가 타임 슬라이스 크기를 초과해서 CPU 스케줄러에 의해 강제로 CPU를 뺏기는 상황이면 CPU Bound Process라고 간주합니다.

  • CPU를 사용하는 프로세스가 실행하다가 스스로 CPU를 반납하면 CPU 사용이 적은 것 I/O Bound Process라고 간주합니다.

 

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

  • 프로세스 간 통신을 할 때 공동으로 이용하는 변수나 파일을 말합니다.

  • 공동으로 이용하기 때문에 연산결과 예측이 힘들어서 동기화 문제가 있을 수 있습니다.

 

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

  • 상호배제 : 어떤 프로세스가 한 리소스를 점유했다면 그 리소스는 다른 프로세스에게 공유가 되면 안 됩니다.

  • 비선점 : 프로세스 A가 리소스를 점유하고 있는데 프로세스 B가 리소스를 뺏을 수 없어야 합니다.

  • 점유와 대기 : 한 프로세스가 리소스 A를 가지고 있는 상태에서 리소스 B를 원하는 상태여야 합니다.

     

  • 원형 대기 : 점유와 대기를 하는 프로세스들의 관계가 원형을 이루고 있어야 합니다.

 

자료구조와 알고리즘

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

  • 콜스택 메모리 공간이 가득 차서 비정상적으로 함수가 종료될 수 있습니다.

 

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

function sumOdd(n) {
    if (n <= 0) {
       return 0;
    }

    if (n == 1) {
       return 1;
    }

    if (n % 2 == 0) {
       return sumOdd(n - 1);
    }

    return n + sumOdd(n - 2);
}
  
console.log(sumOdd(10)) // 25

 

댓글을 작성해보세요.

채널톡 아이콘