
CS_전공지식_ 2번째 미션
4개월 전
운영체제
FIFO 스케줄링의 장단점
장점: 단순하고 직관적.
단점: 먼저 도착한 작업이 끝나야 다음 작업 실행. 나중에 도착한 작업은 앞선 작업이 끝날 때까지 기다려야 하며, I/O 작업 대기 시 CPU 사용률 저하.
SJF 스케줄링 사용의 어려움
예측 어려움: 어떤 프로세스가 얼마나 실행될지 예측 힘듬.
긴 프로세스 지연: 버스트 타임이 짧은 프로세스가 계속 들어오면 긴 프로세스는 계속 뒤로 밀림.
RR 스케줄링에서 타임 슬라이스가 작을 때 문제
오버헤드 증가: 타임 슬라이스가 작으면 컨텍스트 스위칭이 빈번해지고, 실제 처리량보다 스위칭 비용이 더 커져 오버헤드 발생.
MLFQ에서 CPU Bound vs I/O Bound 프로세스 구분
자발적 반납: 프로세스가 CPU를 자발적으로 반납 시, I/O Bound일 가능성 높음.
강제 중단: 타임 슬라이스 초과로 CPU를 뺏기면 CPU Bound일 가능성 높음.
공유 자원이란?
프로세스 간 통신 시 공동으로 사용하는 변수나 파일.
교착 상태 조건
상호 배제: 한 프로세스가 리소스 점유 시 다른 프로세스 사용 불가.
비선점: 점유한 리소스를 다른 프로세스가 뺏을 수 없음.
점유와 대기: 리소스를 점유한 상태에서 추가 리소스를 기다림.
원형 대기: 점유와 대기 관계가 원형으로 형성됨.
자료구조와 알고리즘
1. 재귀함수에서 기저조건을 만들지 않거나 잘못 설정했을 때 어떤 문제가 발생할 수 있나요?
무한 루프가 발생하거나 콜스택이 꽉차서 오버 플로우가 발생한다.
2. 0부터 입력 n까지 홀수의 합을 더하는 재귀 함수를 만들어보세요.
const sumOdd = (n: number): number => {
if (n <= 0) return 0;
return (n % 2 !== 0 ? n : 0) + sumOdd(n - 1);
};
console.log(sumOdd(10)); // 25
댓글을 작성해보세요.