![[인프런 워밍업클럽 CS 2기] 2주차 미션](https://cdn.inflearn.com/public/files/blogs/65da7d99-ec18-48cf-92f0-9ef0febd9329/334844.png)
[인프런 워밍업클럽 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));
댓글을 작성해보세요.