1. 운영체제 개요(2)
KOCW > 이화여자대학교 반효경 교수님 > 운영체제 > 1. 운영체제 개요(2)
CPU 스케줄링
FCFS(First-Come First-Served)
- 먼저 큐에 들어온 프로세스가 CPU를 다 쓰도록 하는 순서로 처리
- 극단적으로 먼저 들어온 프로세스가 매우 긴 처리시간을 요하는 경우 매우 비효율적
SJF(Shortest-Job-First)
- 금번 CPU 사용시간이 가장 짧은 프로세스를 제일 먼저 스케줄
- minimun average waiting time을 보장. 최적.
- 효율성은 좋지만, 형평성의 문제
- 오래 걸리는 프로그램이 무한히 기다리게 되는 Starvation(기아 현상) 발생 가능
Round Robin(RR)
- 각 프로세스에 동일 크기의 CPU 할당시간을 부여, 할당시간이 끝나면 인터럽트가 발생하여 프로세스는 CPU를 빼앗기고 CPU 큐의 제일 뒤로 보내짐.
- 현재 가장 많이 사용하는 알고리즘의 기본
- 대기시간이 프로세스의 CPU 사용시간에 비례
- 어떤 프로세스도 본인을 제외한 (n-1)*할당시간 이상 기다리지 않음
메모리 관리
- 디스크에서 가상 메모리를 거쳐 메모리에 탑재
- 가상 메모리의 분할된 프로세스 중, 당장 필요한 부분만 물리적 메모리에 올려서 실행
- 디스크(파일시스템)과 다른 디스크(스왑영역)을 이용, 메모리에서 쫓겨난 프로세스를 디스크(스왑영역)에 탑재
LRU vs LFU
- 어떤 분할된 프로세스(페이지)를 쫓아낼 것인가
- LRU: 가장 오래 전에 참조된 페이지 삭제
- LFU: 참조횟수가 가장 적은 페이지 삭제
디스크 스케줄링
- 디스크 헤드의 물리적 이동시간이 관건, 어떻게 디스크 헤드의 이동시간을 줄일 것인가
- 디스크 접근 시간(Access time)
- 탐색시간(Seek time): 헤드를 해당 트랙으로 움직이는데 걸리는 시간
- 디스크 스케줄링은 seek time을 최소화하는 것이 목표
- 회전지연(Rotational latency): 헤드가 원하는 섹터에 도달하기까지 걸리는 시간
- 전송시간(Transfer time): 실제 데이터의 전송 시간
FCFS(First-Come First-Served)
- 메모리 스케줄링에서의 예시와 같이 마찬가지로 비효율적
SSTF(Shortest Seek Time First)
- seek time이 가장 짧은 요청을 먼저 수행
- FCFS보다 평균 seek time이 짧은 장점이 있지만, starvation 문제 발생 가능
SCAN
- 헤드가 디스크의 한쪽 끝에서 다른쪽 끝으로 이동하며 가는 길목에 있는 모든 요청을 처리, 끝에 도달하면 역방향으로 이동하며 반복.
저장장치 계층구조와 캐싱(caching)
- Primary: CPU(Register) > Cache Memory > Main Memory
- Secondary: Magnetic Disk > Optical Disk > Magnetic Tape
- 위에서 아래로 내려가며 속도가 느려지고 / 가격이 싸지고 / 비휘발성이 됨
- 계층구조를 통해, 각 장치의 속도차이를 완충
- 캐싱: 동일한 데이터를 다시 요청할 때, 미리 저장한 데이터를 보내주는 방식으로 속도차이 완충
플래시메모리
플래시메모리
- 반도체장치(마그네틱 하드디스크)
- NAND형(스토리지), NOR형(임베디드 코드저장용)
플래시메모리의 특징
- 비휘발성
- 낮은 전력 소모
- 물리적 충격에 강함 / 작은 크기 / 가벼운 무게
- 쓰기 횟수 제약
플래시메모리의 사용 형태
- 임베디드 시스템 구성용, USB용 메모리 스틱, SD카드 등
- 하드디스크 대체 시도
운영체제의 종류
- 서버용 / PC용 / 스마트디바이스용 운영체제가 존재
- 공개 소프트웨어(Open Source Software)