[1주차] - 운영체제 개요
운영체제란
컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층으로 사용자에게 편리한 인터페이스 환경을 제공하고 컴퓨터 시스템의 자원을 효율적으로 관리하는 소프트웨어이다
운영체제의 역할
- 자원관리
- 컴퓨터의 자원을 응용 프로그램에 나누어주어 사용자가 원활하게 작업할 수 있도록 돕는다
- 자원보호
- 하드웨어 인터페이스 제공
- 다양한 장치를 사용할 수 있도록 해주는 하드웨어 인터페이스 제공
- 운영체제가 다양한 하드웨어를 일관된 방법으로 사용할 수 있도록 지원하기 때문에 우리는 하드웨어를 신경 쓸 필요가 없다
- 사용자 인터페이스 제공
- 사용자가 운영체제를 편리하게 사용하도록 지원하기 위한 것
- GUI, 터치스크린 등등
운영체제의 목표
운영체제의 역할 | | 운영체제의 목표 |
---|
자원관리 | 👉 | 효율성 |
자원보호 | 👉 | 안정성 |
하드웨어 인터페이스 제공 | 👉 | 확장성 |
사용자 인터페이스 제공 | 👉 | 편리성 |
컴퓨터 시스템의 구조
커널과 인터페이스
커널
- 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아놓은 것으로, 자동차에 비유하자면 엔진에 해당
- 운영체제의 성능은 커널이 좌우한다
인터페이스
- 사용자와 응용 프로그램에 인접하여 커널에 명령을 전달하고 실행 결과를 사용자와 응용 프로그램에 돌려준다
CPU 스케줄링
FCFS(First-Come First-Served)
- 큐에 도착한 순서대로 작업우선권을 부여하는 방식
- 매우 공평하지만 앞에 있는 작업이 오래걸리면 뒤에 있는 짧은 작업들이 오래 기다려야 하므로 비효율적이다
SJF(Shortest-Job-First)
- 매번 CPU 사용시간이 가장 짧은 작업에게 CPU를 할당
- 작업시간이 짧은 것들이 바로바로 처리되어서 효율적으로 보인다
- 하지만 작업시간이 긴 프로세스는 최악의 경우 CPU를 할당 받지 못할수 도 있다(Starvation - 기아현상)
RR(Round Robin)
- 모든 프로세스는 동일한 크기의 할당시간을 가진다
- 할당시간이 끝나면 작업이 남아있더라도 작업 큐의 제일 뒤로 다시 줄을 선다
- 제일 많이 사용되는 방식이다
메모리관리
- 메모리 관리는 미래를 위해 수행하는 것으로 과거를 비추어 보아 다시 사용될 가능성이 적은 페이지를 스왑 영역으로 보내는 것
LRU(Least Recently Used)
- 시간적으로 멀리 떨어진 페이지를 스왑 영역으로 보낸다
- 즉, 가장 오래전에 참조한 페이지를 삭제하는 알고리즘
LFU(Least Frequently Used)
- 사용 빈도가 적은 페이지를 스왑 영역으로 보낸다
- 즉, 참조 횟수가 가장 적은 페이즈를 삭제하는 알고리즘
디스크 스케줄링
- 헤드를 이동하는 것은 디스크의 처리 시간 중 가장 많은 부분을 차지한다. 따라서 효율적으로 헤드를 이동시켜야 한다
FCFS(First-Come First-Served)
- 요청이 들어온 순서대로 이동하다보니 동선이 비효율적이다
SSTF(Shortest Seek Time First)
- CPU 스케줄링의 SJF와 비슷한 개념이다(짧은 동선부터 처리)
- 역시 Starvation(기아현상) 문제가 있다
SCAN
저장장치 계층구조와 캐싱
- 상위에 있는 저장장치일수록 빠르지만 가격이 비싸다. 따라서 보통 컴퓨터에 작은 용량으로 구성된다
- Primary 저장장치들은 휘발성(전원이 종료되면 데이터 사라짐)이며 Secondary 저장장치들은 비휘발성이다
- 캐싱은 사용자가 원하는 정보를 빠르게 제공하기 위해 빠른 저장장치로 미리 데이터를 가져오는 것을 말한다
이 포스팅은 반효경 교수님의 2017 운영체제 강의를 바탕으로 제작되었습니다.