[인프런 워밍업 클럽 2기 - CS] 2주차 미션
2개월 전
운영체재
FIFO 스케쥴링의 장단점?
장점
First In First Out으로 직관적이고 알기쉽다.
단점
먼저 들어온 시간이 오랜 작업시간을 소요하는 경우 평균 대기시간이 길어진다.
I/O 작업 같은 것도 다른 작업이 끝날 때 까지 다른 작업을 못하게 되어 사용률이 떨어진다.
SJF를 사용하기 여러운 이유가 뭔가요?
어떤 스케쥴이 먼저 실행되는지 예측하기 어렵다.
소요시간이 긴 프로세스가 뒤로 밀려나는 현상이 생긴다.
RR 스케줄링에서 타임 슬라이스가 아주 작으면 어떤 문제가 발생할까요?
타임슬라이스가 아주 작으면 컨텍스트 스위칭이 너무 자주 일어나서 오버헤드가 발생할 수 있다.
운영체제가 MLFQ에서 CPU Bound Process와 I/O Bound Process를 어떻게 구분할까요?
타임슬라이스를 조금씩 늘려서 프로세스를 실행시키는데 금방 종료된다면 I/O , 실행도중 타임슬라이스를 초과해 강제로 CPU를 뺏긴다면 CPU이다.
공유자원이란무엇인가요?
각 프로세스가 통신을 할 때 공동으로 사용하는 변수나 파일들을 말한다.
교착상태에 빠질 수 있는 조건은 어떤 것들을 충족해야할까요?
상호배제 : 어떤 프로세스가 리소스 점유시 그 리소스는 다른 프로세스 사용하지 못해야 한다. (리소를 점유하는 상황)
비선점 : 프로세스가 점유한 리소스를 다른 프로세스가 빼앗을 수 없다. (사용중인 리소스를 빼앗을 수 없는 상황)
점유와 대기 : 프로세스가 이미 리소스를 점유한 상태에서 추가적인 리소스를 요청해야 한다. (다른 리소스를 기다리는 상황)
원형 대기 : 점유와 대기 관계가 원형으로 형성되어야 한다. (서로가 기다리는 상황)해야할까요?
자료구조와 알고리즘
재귀함수에서 기저조건을 만들지 않거나 잘못 설정했을 때 어떤 문제가 발생할 수 있나요?
함수가 무한히 실행되거나 의도치 않게 종료될 수 있음
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))