KOCW.이화여자대학교.반효경.운영체제
위 강의를 바탕으로 학습 및 정리했습니다
운영체제(Operating System, OS)란 ?
- 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
- 편리한 환경제공
- 각각 독자적 컴퓨터에서 수행되는 것 같은 illusion을 제공
- 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행
- 컴퓨터 시스템의 자원(CPU,메모리 등)을 효율적으로 관리
- CPU, 메모리, I/O 장치 등의 효율적 관리
- 주어진 자원으로 최대한의 성능을 내고(효율성), 특정 사용자 및 프로그램에 지나친 불이익이 발생하지 않도록(형평성) 프로그램 등을 실행해줌
- 즉, 실행중인 프로그램들에게 짧은 시간씩 CPU를 번갈아 할당하고
메모리 공간을 적절히 분배
- 사용자 및 운영체제 자신의 보호
컴퓨터 시스템의 구조
- 컴퓨터 내부 : CPU, 메모리 등
- 운영체제의 역할
- CPU 스케줄링
- 어떤 프로그램에 얼마동안 CPU 사용권을 줄 것이냐
- CPU 사용권을 뺏는건 사실 운영체제만으로는 안되고 하드웨어적인 요소가 개입되어 같이 구현
- 메모리 관리
- 입출력(Input/Output, I/O) 디바이스
- 매우 빠른 CPU와 I/O 장치간에는 속도차가 존재
- 케싱
- 같은 데이터를 다시 요청 시 굳이 디스크로 다시 안가고 메모리에 저장해놧다가 꺼내옴
- 인터럽트
- CPU가 A프로그램 컨트롤러에게 처리 요청 후 다른 프로그램 처리
- A프로그램이 요청받은 처리를 완료 후 인터럽트
- CPU가 인터럽트 체크 후 CPU스케줄링
- 하드디스크 : 입출력 둘다함
- 디스크 스케줄링
- I/O에도 요청이 여러 프로그램으로 부터 도착함
- 요청 순서대로 처리해도 되지만 이것은 매우 비효율적
- 효율적으로 처리하기 위해 요청들을 스케줄링함
CPU 스케줄링
First-Come First-Served, FCFS
- 프로세스의 도착 순서대로 CPU 권한을 줌
- 먼저 도착한 프로세스가 종료 될 때까지 계속 CPU를 사용하면 효율적이지 않다 -> 다음에 도착한 프로세스가 기다리는 시간을 줄이자 -> Shortest-Job-First, SJF
Shortest-Job-First, SJF
- CPU 사용시간이 가장 짧은 프로세스를 제일 먼저 스케줄
- minimum average waiting time을 보장해줌 -> 기다리는 시간이 가장 짧음 (기다리는 시간이 적어질 때 == 큐에 프로세스가 가장 적을 때 -> 사용기간이 짧은 시간대로 큐에 넣어줌)
- 효율성은 높지만 형평성에 문제가 생김
-> 사용기간이 긴 프로세스는 CPU를 계속 못쓰게 되는 문제가 발생 == Startvation(기아현상)
위의 두 방법은 현사 CPU를 사용하고 있는 프로세스가 완료될 때까지 CPU를 뺏지는 않았음
Round Robin, RR
- 현재 가장 많이 사용되고 있는 방법
- 각 프로세스는 동일 크기의 CPU할당 시간을 가짐 (예를 들어, 프로세서가 완료될 때까지 30초가 걸리더라도 CPU할당 시간이 1초라면 1초후엔 무조건 내놓아야함)
- 즉, 짧은 시간 간격으로 CPU를 번갈아 사용하도록 함
- n개의 프로세스가 큐에 있는 경우
어떤 프로세스도 (n-1)*할당시간 이상 기다리지 않는다
- 장점
- CPU를 길게 쓰려는 프로그램은 큐에 있는 시간이 길어지고, 짧게 쓰려는 프로그램은 큐에 있는 시간이 짧아진다
== 대기 시간이 프로세스의 CPU사용시간에 비례
메모리 관리
- 디스크
- 디스크에 실행파일 형태로 프로그램이 존재
- 파일시스템
- 전원이 나가더라도 내용이 유지되어야 하는 부분
- 스왑영역
- 메모리 공간이 없을 때 보관하는 부분 == 메모리의 연장공간
- 비휘발성 매체를 사용하고 있긴 하지만 전원이 꺼졌을 때 비워져야함
- 메모리
LRU vs LFU
-
메모리에 1,2,3,4 프로세스 모두 들어가서 꽉찼다 5번 프로세스를 실행시키고 싶을때 1,2,3,4 중 어느 프로세스를 뺄것인가?
-> 효율성을 생각해야함
-> 미래에 다시 사용될 가능성이 높은 페이지를 쫒아내지말고 사용할 가능성이 낮은 페이지를 쫒아내자
-> 이를 예측하기 위해 과거를 통해 미래 예측
LRU
- 가장 오래 전에 사용된 페이지를 뺌
- 메모리 뿐만 아니라 다른 여러 곳에도 사용됨
LFU
디스크 스케줄링
- 디스크 접근 시간에 가장 많은 시간을 차지하는 것
== 디스크 헤드의 이동시간
-> 따라서, 디스크 헤드의 이동이 가장 적도록 처리해야함 (디스크 스케줄링의 필요성)
- 디스크 접근 시간의 구성
- 탐색시간 (Seek time)
- 헤드를 해당 트랙으로 움직이는데 걸리는 시간
- 디스크 헤드가 이동하는 시간
- 회전지연 (Rotational latency)
- 헤드가 원하는 섹터에 도달하기까지 걸리는 시간
- seek time 다음으로 많이 걸리는 시간
- 전송시간 (Tranfer time)
Shortest Seek Time First, SSTF
- 가장 가까운 거리부터 이동
-> 멀리있는 곳으로 계속 이동하지 못하는 문제발생
-> starvation
- 효율성은 있지만 형평성이 없음
SCAN
- 헤드가 디스크 한쪽 끝에서 다른쪽 끝으로 이동하며 가는 실목에 있는 모든 요청을 처리
- 누군가 영원히 배제되는 문제 없음
- 엘레베이터도 이러한 알고리즘
저장장치 계층구조와 케싱
- 빠른 CPU와 느린 장치의 속도 차이를 완충해야함
- 하드디스크 : 비휘발성
- DRAM : 휘발성
- 속도차이 완충을 위해 계층 구조를 형성
플래시메모리
- 플래시 메모리
- 반도체 장치 (하드디스크 : 마그네틱)
- NAND(스토리지), NOR(임베디드 코드 저장용)
- 특징
- 비휘발성
- 전력소모가 적음
- 물리적 충격에 강함
- 크기가 작음
- 가벼움
- 쓰기 횟수 제약
- 플래시 메모리의 사용형태
- 모바일 장치
- 모바일 장치 뿐아니라 대용량 시스템에서 SSD라는 이름으로 하드디스크 대체 시도
- cell 안에 들어가있는 전하의 양으로 0,1 구분
-> 시간이 흐르면 전하가 빠져나감
-> 시간이 지나면 데이터 손실
-> 소프트웨어로 손실이 되지 않도록 플래시 메모리를 관리
운영체제의 종류
- 서버용, PC용, 스마트 디바이스용 운영체제
- 공개 소프트웨어