이미지 출처
운영체제란
- 운영체제는 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로 모든 컴퓨터 시스템의 필수적인 부분
- 운영체제의 개념, 역할, 구성요소 및 알고리즘 학습
운영 체제의 목적
편리하게 사용할 수 있는 환경을 제공
- 운영체제는 동시 사용자/프로그램들이 각각 독자적 컴퓨터에서 수행되는 것 같은 환상을 제공
자원을 효율적으로 관리 🌟
- CPU, 메모리, I/O 장치 등 컴퓨터 자원의 효율적인 관리가 목적
- 주어진 자원으로 최대한의 성능을 내도록 => 효율성
- 특정 사용자/프로그램의 지나친 불이익이 발생하지 않도록 => 형평성
- 사용자 및 운영체제 자신의 보호
- 실행중인 프로그램들에게 짧은 시간씩 CPU를 번갈아 할당
컴퓨터 시스템의 구조
이미지 출처
(CPU, 메모리, 하드디스크, 모니터, 키보드 ...)
운영체제의 기능
CPU 스케줄링
- 어떤 프로그램에게 CPU 사용권을 넘기고, 얼마나 오랫동안 줄지 등.
- 운영체제가 전달하는 기계어에 의해 CPU가 프로그램 스케줄링을 진행함. (CPU 독자적으로 판단이 불가능며 수동적으로 처리만 할 뿐)
메모리 관리
디스크 스케줄링
- 디스크에 들어온 요청을 어떤 순서로 처리할지
- 엘리베이터 알고리즘과 유사함
인터럽트, 캐싱
- 빠른 CPU와 느린 I/O 장치간 속도차를 극복하는 방법
프로세스의 상태
CPU 스케줄링
FCFS(First-Come First-Served)
- CPU 사용 시간이 긴 프로세스가 먼저 오면 평균 대기 시간이 길어짐
SJF(Shortest-Job-First)
- 금번 CPU 사용시간이 가장 짧은 프로세스를 제일 먼저 스케줄
- minimum average waiting time을 보장
- Starvation(기아 현상) 발생 가능 : 오래 걸리는 프로그램은 무한히 기다리는 문제가 생길 수 있음
- 효율성은 좋지만 형평성이 문제
RR(Round Robin)
- 한 번에 사용할 수 있는 시간을 미리 정해둠
- 어떤 프로세스도 할당 시간 이상 기다리지 않음
- 대기시간이 프로세스의 CPU 사용시간에 비례
- 할당 시간이 끝나면 인터럽트가 발생하여 프로세스는 CPU를 빼앗기고 CPU 큐의 제일 뒤에 줄음 섬
메모리 관리
- 디스크에서 가상메모리를 만들고 당장 필요한 프로세스들만 메모리에 할당
- 메모리가 가득차면 디스크(스왑영역)에 저장
- 즉, 디스크(스왑영역)은 메모리의 연장선
- 전원이 나가면 휘발성인 메모리는 날아감
디스크(파일시스템)은 비휘살성이기 때문에 남아있음
디스크(스왑영역)도 남아있지만 스왑영역에 있는 프로세스들은 쓸모 없는 프로세스들임
LRU vs LFU
- 메모리가 꽉찼을 때 어떤 순서로 메모리에서 삭제할지
- LRU : 가장 오래 전에 참조 페이지 삭제
- LFU : 참조 횟수가 가장 적은 페이지 삭제
디스크 스케줄링
FCFS(First-Come First-Served)
SSTF(Shortest Seek TIme Fisrt)
- starvation 문제!
- 효율성 측면에서는 좋지만 형평성 문제
SCAN
- like elevator
저장장치 계층구조와 캐싱
- 상단은 빠른 속도, 높은 비용, 휘발성 / CPU에서 직접 접근
- 하단은 느린 속도, 낮은 비용, 비휘발성 / CPU에서 직접 접근이 불가능하여 Primary에 올려놓고 접근
- Primary는 컴퓨터 내부 / Secondary는 외부 즉, I/O 장치
빠른 CPU와 느린 I/O 장치간 속도차를 어떻게 극복할지 : 캐싱(caching)
동일 한 데이터를 다시 요청하면 기존에 불러온 데이터를 재사용하면 되기 때문에 제일 밑에 단계까지 낼려갈 필요가 없음(중간 계층에 저장)
플레시메모리
운영체제의 종류
- iOS, Android, Linux, Windows ...
📚 참고
KOCW | 운영체제 | 이화여자대학교 | 2017-1 | 반효경
Photo by Tianyi Ma on Unsplash