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

운영체재


FIFO 스케쥴링의 장단점?

장점

  • First In First Out으로 직관적이고 알기쉽다.

     

    단점

  • 먼저 들어온 시간이 오랜 작업시간을 소요하는 경우 평균 대기시간이 길어진다.

  • I/O 작업 같은 것도 다른 작업이 끝날 때 까지 다른 작업을 못하게 되어 사용률이 떨어진다.


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

  • 어떤 스케쥴이 먼저 실행되는지 예측하기 어렵다.

  • 소요시간이 긴 프로세스가 뒤로 밀려나는 현상이 생긴다.

 


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

  • 타임슬라이스가 아주 작으면 컨텍스트 스위칭이 너무 자주 일어나서 오버헤드가 발생할 수 있다.


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

  • 타임슬라이스를 조금씩 늘려서 프로세스를 실행시키는데 금방 종료된다면 I/O , 실행도중 타임슬라이스를 초과해 강제로 CPU를 뺏긴다면 CPU이다.


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

    • 각 프로세스가 통신을 할 때 공동으로 사용하는 변수나 파일들을 말한다.


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

  1. 상호배제 : 어떤 프로세스가 리소스 점유시 그 리소스는 다른 프로세스 사용하지 못해야 한다. (리소를 점유하는 상황)

  2. 비선점 : 프로세스가 점유한 리소스를 다른 프로세스가 빼앗을 수 없다. (사용중인 리소스를 빼앗을 수 없는 상황)

  3. 점유와 대기 : 프로세스가 이미 리소스를 점유한 상태에서 추가적인 리소스를 요청해야 한다. (다른 리소스를 기다리는 상황)

  4. 원형 대기 : 점유와 대기 관계가 원형으로 형성되어야 한다. (서로가 기다리는 상황)해야할까요?

 

 

자료구조와 알고리즘


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

  •  함수가 무한히 실행되거나 의도치 않게 종료될 수 있음


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

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

console.log(sumOdd(10))
채널톡 아이콘