인프런 워밍업 클럽 스터디 2기 CS 2주차 과제

인프런 워밍업 클럽 스터디 2기 CS 2주차 과제

운영체제

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

  • 장점: 모든 프로세스가 실행될 수 있고, 스케줄링이 단순하다.

  • 단점: '평균 대기 시간'이 길어질 수 있음 (프로세스들이 기다리는 시간이 매우 길어질 수 있다)

 

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

  • 어떤 프로세스가 얼마나 실행될 지 예측하기 힘들다.

  • Burst time이 긴 프로세스는 아주 오랫동안 실행되지 않을 수 있다.

 

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

  • 타임 슬라이스가 아주 작으면, 컨텍스트 스위칭이 너무 자주 일어난다. 따라서 오버헤드가 너무 커진다.

 

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

  • CPU Bound Process: CPU 연산, CPU 사용률과 처리량 우선순위

    • 타임 슬라이스를 크게 줌

  • I/O Bound Process: 대부분 시간은 I/O(CPU 사용률 적음),

    응답 시간이 우선 순위

    • 타임 슬라이스를 작게 줌

 

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

  • 여러 프로세스가 공동으로 이용하는 변수, 메모리, 파일 등

 

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

  • 상호 배제(Mutual Exclusion)

    • 자원은 한 번에 한 프로세스만이 사용할 수 있어야 한다.

  • 점유 대기 (Hold and Wait)

     

    • 이미 자원을 사용중인데, 다른 프로세스가 사용 중인 자원을 사용하기 위해 대기하고 있는 상태의 프로세스가 존재해야 한다.

       

  • 비선점 (No preemption)

    • 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 한다.

       

  • 순환 대기 (Circular wait)

    • 대기 프로세스의 집합이 순환 형태로 자원을 대기하고 있어야 한다.


 

자료구조와 알고리즘

 

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

  • 기저 조건 (재귀 함수를 멈추는 조건) 을 잘못 설정하면 무한루프에 빠지게 된다. 이로 인해 스택 메모리가 터져 오버플로우가 일어난다.

 

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

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

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

    return n + sumOdd(n - 2);
}


console.log(sumOdd(10)); // 25

 

댓글을 작성해보세요.

채널톡 아이콘