(2주차) 운영체제 미션 제출
FIFO 스케줄링의 장단점이 뭔가요?
은행에 줄 서서 기다리는 상황이라고 비유 했을 때,
먼저 온 사람이 먼저 창구에서 업무를 보고 뒤에 온 사람은 무조건 앞사람이 끝나야 한다.
장점누가 먼저 왔는지만 따지기 때문에 누구한테도 특혜가 없으므로 공정하다고 느껴진다
구현이 간단하다 : 큐에 넣고 순서대로 꺼내면 되니까 코드도 쉽고 시스템 자원도 적게 쓴다.
단점
CPU를 오래 쓰는 프로세스가 앞에 있으면 뒤의 짧은 작업들도 기다려야 한다
앞사람이 대출 상담(시간 오래 걸리는 업무)을 보고 있다면 뒤에 온 사람들(단순 이체 업무)이 빨리 끝날 수 있는데도, 무조건 기다려야 한다.
짧은 작업이 불필요하게 오래 기다리는 경우가 많아서 전체적인 대기 시간이 늘어난다.
SJF를 사용하기 여러운 이유가 뭔가요?
프로세스의 CPU Burst Time(실행 시간)을 미리 알기 어렵다 -> 예측이 쉽지 않아서 실시간 시스템에서는 비현실적
잘못 예측하면 기대 성능이 안 나오지 않는다
비선점형으로 하면 긴 프로세스가 무한정 대기할 수 있다
RR 스케줄링에서 타임 슬라이스가 아주 작으면 어떤 문제가 발생할까요?
Context Switch이 자주 발생한다 -> 오버헤드가 커져서 CPU 시간의 낭비
처리 시간이 짧은 프로세스에도 효율이 떨어진다
운영체제가 MLFQ에서 CPU Bound Process와 I/O Bound Process를 어떻게 구분할까요?
행동 패턴을 기준으로 자동 분류한다 -> CPU를 오래 쓰면 낮은 우선순위로 강등, 입출력(I/O) 위주로 빠르게 종료하면 높은 우선순위를 유지한다
즉, CPU 사용 시간과 빈도에 따라 레벨이 조정된다
공유자원이란무엇인가요?
여러 프로세스/스레드가 동시에 접근하려는 자원 -> CPU, 메모리, 파일, 프린터 등
동시에 접근하면 경쟁이 발생하고 동기화가 필요하다
교착상태에 빠질 수 있는 조건은 어떤 것들을 충족해야할까요?
상호 배제: 자원을 하나의 프로세스만 사용 가능하다
점유와 대기: 자원을 가진 상태에서 다른 자원을 기다린다
비선점: 자원을 강제로 빼앗을 수 없다
순환 대기: 프로세스 간에 원형 대기 상태
위 조건을 모두 충족해야 교착상태에 빠진다