CS_전공지식_ 2번째 미션

CS_전공지식_ 2번째 미션

운영체제

  1. FIFO 스케줄링의 장단점

    • 장점: 단순하고 직관적.

    • 단점: 먼저 도착한 작업이 끝나야 다음 작업 실행. 나중에 도착한 작업은 앞선 작업이 끝날 때까지 기다려야 하며, I/O 작업 대기 시 CPU 사용률 저하.

  2. SJF 스케줄링 사용의 어려움

    • 예측 어려움: 어떤 프로세스가 얼마나 실행될지 예측 힘듬.

    • 긴 프로세스 지연: 버스트 타임이 짧은 프로세스가 계속 들어오면 긴 프로세스는 계속 뒤로 밀림.

  3. RR 스케줄링에서 타임 슬라이스가 작을 때 문제

    • 오버헤드 증가: 타임 슬라이스가 작으면 컨텍스트 스위칭이 빈번해지고, 실제 처리량보다 스위칭 비용이 더 커져 오버헤드 발생.

  4. MLFQ에서 CPU Bound vs I/O Bound 프로세스 구분

    • 자발적 반납: 프로세스가 CPU를 자발적으로 반납 시, I/O Bound일 가능성 높음.

    • 강제 중단: 타임 슬라이스 초과로 CPU를 뺏기면 CPU Bound일 가능성 높음.

  5. 공유 자원이란?

    • 프로세스 간 통신 시 공동으로 사용하는 변수나 파일.

  6. 교착 상태 조건

    • 상호 배제: 한 프로세스가 리소스 점유 시 다른 프로세스 사용 불가.

    • 비선점: 점유한 리소스를 다른 프로세스가 뺏을 수 없음.

    • 점유와 대기: 리소스를 점유한 상태에서 추가 리소스를 기다림.

    • 원형 대기: 점유와 대기 관계가 원형으로 형성됨.

 

자료구조와 알고리즘

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

댓글을 작성해보세요.

채널톡 아이콘