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

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

운영체제

  1. FIFO 스케줄링의 장단점이 뭔가요?
    : 장점은 단순하고 직관적이라는 것이 있지만, 단점은 온 순서대로 실행되기 때문에 짧고 늦게 도착한 프로세스길고 일찍 도착한 프로세스를 기다려야한다는점이 있습니다.
    또한 I/O 작업이 있다면 끝날 때까지 쉬고있기 때문에 CPU 사용률이 떨어지게 됩니다.

  2. SJF를 사용하기 여러운 이유가 뭔가요?
    : 이론적으로는 좋은 알고리즘이지만, 어떤 프로세스가 얼마나 사용될지 예측이 어렵고 Burst Time이 긴 프로세스는 아주 오랫동안 실행되지 않을 수도 있다는 점이 있기 때문입니다.

  3. RR 스케줄링에서 타임 슬라이스가 아주 작으면 어떤 문제가 발생할까요?
    : 컨텍스트 스위칭이 자주 일어나게되고, 타임 슬라이스에서 처리되는 프로세스 처리량보다 컨텍스트 스위칭 처리양이 많아져서 오버헤드가 커지게 됩니다.

  4. 운영체제가 MLFQ에서 CPU Bound Process와 I/O Bound Process를 어떻게 구분할까요?
    : 프로세스가 CPU를 사용하다가 스스로 반납한다면 CPU 사용률이 적은 것이기 때문에 - I/O Bound Process,
    프로세스가 CPU를 사용하다가 타임 슬라이스 크기를 오버해서 강제로 CPU를 뺏기게 되면 CPU 사용률이 많은 것이기 때문에 - CPU Bound Process 입니다.

  5. 공유자원이란무엇인가요?
    : 여러 프로세스가 공유하고 있는, 공동으로 사용하는 변수나 파일들입니다.

  6. 교착상태에 빠질 수 있는 조건은 어떤 것들을 충족해야할까요?
    : 아래 네가지 조건들을 모두 충족해야합니다.
    (1) 상호배제 - 어떤 프로세스가 한 리소스를 점유했다면, 그 리소스는 다른 프로세스에게 공유되면 안됨
    (2) 비선점 - 어떤 프로세스가 한 리소스를 점유했다면, 다른 프로세스가 그 리소스를 빼앗을 수 없음
    (3) 점유와 대기 - 어떤 프로세스가 한 A 리소스를 가지고 있고, 그 상태에서 B 리소스를 원하는 상태여야함
    (4) 원형대기 - 점유와 대기를 하는 프로세스들의 관계가 원형을 이룸

 


 

자료구조와 알고리즘

  1. 재귀함수에서 기저조건을 만들지 않거나 잘못 설정했을 때 어떤 문제가 발생할 수 있나요?
    : 무한 실행되서 메모리 이슈가 나게 되는 문제가 발생할 수 있습니다.

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

function sumOdd(n){
    // 재귀 로직
    if (n <= 0) return 0;
    if (n % 2 == 0) {
        return sumOdd(n - 1);
    } else {
        return n + sumOdd(n - 2);
    }
}

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

 


 

회고

  • 미션을 풀어나가는데 복습이 큰 도움이 되어 계속해서 해나가야겠다는 생각이 들었습니다.
    다만, 재귀 함수를 만들어보는 자료구조와 알고리즘의 2번 문제인 코드 작성 미션이 생각보다 잘 풀리지 않았는데, 재귀 부분 코드 작성을 좀 더 복습하며 익혀야될 것 같습니다.

댓글을 작성해보세요.

채널톡 아이콘