인프런 워밍업 클럽 스터디 2기 CS 2주차 과제
1개월 전
운영체제
FIFO 스케줄링의 장단점이 뭔가요?
선입선출로 구현이 쉽고 오버헤드가 적다. 단, 매우 긴 CPU 연산 시간이 필요한 프로세스가 먼저 실행된다면, CPU 평균 실행 시간이 높아져 다른 프로세스 작업 시간에 악영향을 끼친다.
SJF를 사용하기 여러운 이유가 뭔가요?
Short Job First는 CPU 작업 시간이 짧은 프로세스를 먼저 실행시키지만, 프로세스의 CPU 작업 시간을 예측할 수 없기 때문에 현실적으로 불가능에 가깝다.
RR 스케줄링에서 타임 슬라이스가 아주 작으면 어떤 문제가 발생할까요?
CPU가 실행중인 프로세스를 교체하는 작업인 컨텍스트 스위칭 비용이 빈번하게 발생하여 오버헤드가 크다.
운영체제가 MLFQ에서 CPU Bound Process와 I/O Bound Process를 어떻게 구분할까요?
주어진 타입 슬라이스보다 프로세스의 버스트 타임이 많다면 CPU 사용률과 처리량이 중요한 프로세스이다. 반대로 버스트 타임이 짧다면 I/O 응답속도가 중요한 프로세스이다.
공유자원이란 무엇인가요?
같은 컴퓨터에서 프로세스가 통신할 때 사용하는 파일 또는 파이프, 그 밖에 여러 작업들이 공유하여 사용하는 모든 것들은 공유 자원이라고 부른다.
교착상태에 빠질 수 있는 조건은 어떤 것들을 충족해야할까요?
임계구역에 하나의 프로세스만 접근한다.
프로세스의 공유자원을 강제로 다른 프로세스가 선점할 수 없다.
공유자원을 선점한 프로세스와 이를 기다리는 프로세스가 있다.
서로에 작업을 기다리는 구조가 순환 구조를 이룬다.
자료구조와 알고리즘
재귀함수에서 기저조건을 만들지 않거나 잘못 설정했을 때 어떤 문제가 발생할 수 있나요?
재귀적 호출을 탈출하지 못한다. 때문에 완료하지 못한 실행중인 함수를 메모리 콜스택에 추가되기만 한다. (사용 가능한 메모리를 초과)
0부터 입력 n까지 홀수의 합을 더하는 재귀 함수를 만들어보세요.
function sumOdd(n){
if (n === 0) return 0;
while (n % 2 === 0) {
n -= 1;
}
return sumOdd(n - 1) + n;
}
댓글을 작성해보세요.