KOCW - 운영체제(이화여대 반효경 교수)
1강 운영체제 개요
🏳 운영체제란?
입출력(I/O)디바이스 - Input(키보드, 마우스 등) Output(모니터, 프린터 등) ,I/O(디스크)
* I/O 디바이스들은 작은 cpu들이 부착되어 있음(I/O 컨트롤러)
컴퓨터 내부 : cpu, 메모리(cpu의 작업 공간)
컴퓨터 부팅 -> 운영체제가 메모리에 올라가서 실행
운영체제 커널 : 운영체제의 핵심 부분, 항상 메모리에 올라와있는 부분
운영체제를 제외한 메모리 공간 - 실행되어있는 프로그램들이 차지
CPU는 짧은 시간에 여러 프로그램에 번갈아서 할당 -> CPU 스케줄링이 운영체제의 핵심 역할이 된다.
추가 개념 : I/O 컨트롤러에게 요청을 하고나서 CPU는 당장 처리할 수 있는 일을 찾는다. CPU 스케줄링의 가장 핵심은 CPU에게 쉴틈을 안주는 것
캐싱 : 중간 단계 설정, 예를 들어 똑같은 데이터를 또 읽어달라는 요청이 들어왔을 때, 메모리 어딘가에 보관해놨다가, 같은 요청이 들어왔을 경우 디스크에 요청하지 않고 메모리 복제본을 읽는 방식
인터럽트
CPU 스케줄링으로 CPU가 다른 처리를 하고 있을 때, I/O 디바이스의 컨트롤러가 인터럽트를 통해 요청을 처리했다고 알리게 됨.
CPU는 기계어를 하나 처리하고 나서 인터럽트 체크를 하게 된다
인터럽트가 들어왔을 경우 CPU의 제어권이 운영체제로 넘어가게 됨
CPU Queue에 들어온 순서대로 요청을 처리
-> 처리 시간이 짧은 프로세스를 먼저 처리하게 된다면, 평균 대기시간이 짧아지게 된다
CPU 사용 시간이 가장 짧은 프로세스를 제일 먼저 스케줄
평균 대기 시간 측면에서 가장 최적의 방법(그리디 알고리즘, 가장 사용 시간이 짧은 프로세스부터 처리하기 때문에)
Starvation(기아 현상) 발생 -> 처리 시간이 긴 프로세스는 CPU를 영원히 점유하지 못하는 현상 발생, 효율성은 좋지만 형평성을 고려하지 못함
각 프로세스에게 동일한 간격의 CPU할당시간을 배정, 할당시간이 끝나면 인터럽트가 발생하여 해당 프로세스는 CPU Queue의 가장 후순위로 밀려나게 됨
<=
(프로세스의 수 -1)*할당 시간_ -> 형평성 O만약 컴퓨터가 꺼지면?
메모리(휘발성)는 자동적으로 소멸
디스크(스왑영역)은 소멸하지는 않지만 의미없는 정보가 됨 -> 삭제 대상 정보가 됨
메모리가 가득 찼을 때, 미래에 가장 사용 가능성이 높은 메모리는 보관하고 사용 가능성이 낮은 메모리를 방출하는 방향으로 관리
ex) CPU가 요청한 데이터 순서가 다음과 같을 때
1, 1, 1, 1, 2, 2, 3, 3, 2, 4, 5 (현재 시각) , ..... 생략
5번 페이지를 보관하기 위해서는 어떤 페이지를 삭제하는게 좋을까?
디스크에 어떤 파일을 읽어달라고 하거나, 어떤 파일을 저장해달라고 하는 요청이 들어올 경우 -> 디스크 큐에 해당 프로세스가 시간 순서대로 쌓이게 됨
디스크는 원판 형태로 회전하는 구조를 갖고 있다. 바깥쪽이 1번, 안쪽이 100번 트랙이라고 하면 디스크 헤드가 1번을 읽으려고 할때 헤드를 바깥쪽으로 이동시키고, 100번을 읽으려고 할때는 안쪽으로 이동해야한다.
이를 큐에 들어온 순서대로 처리할 경우, 비효율적으로 처리하게 된다.
디스크 스케줄링은 헤드의 이동 거리를 효율적으로 가져갈 수 있도록 순서를 조정해주는 것
헤드가 디스크의 한쪽 끝에서 반대쪽 끝으로 이동하면서 길목에 있는 모든 요청을 처리하는 방법
{primary-CPU가 직접 접근 가능}레지스터 -> 캐시 메모리 -> 메인 메모리 -> {secondary-CPU가 직접 접근 불가, I/O장치로 구성}마그네틱 디스크 -> 옵티멀 디스크 -> 마그네틱 테입
레지스터 : CPU 내부에 존재하는 데이터를 담고 있는 영역, CPU가 해당 데이터를 이용해서 연산을 실행함
메인 메모리와 레지스터의 속도 차이를 완충하기 위해서 캐시 메모리가 중간에 위치한다.
위와 같은 계층구조는 속도 차이를 완충하기 위함이다 -> 중간 경로에 복사본이 존재하면, 가장 끝 계층까지 갈 필요 없이 시간을 절약할 수 있다.
사용 형태
하드디스크(기계식 장치) SSD(반도체 장치)
스마트폰, USB, SSD(플래시 메모리를 통한 하드디스크 대체 시도)
특징 : 비휘발성, 전력소모⬇, 더 좋은 내구성, 소형화, 가벼움, 쓰기 횟수 제약, 시간이 경과함에 따라 데이터가 변질할 수 있음(하드디스크는 시간과 상관없이 데이터가 잘 보존됨, 플래시메모리는 시간이 지나면 전하량이 온전하게 보존이 안되기 때문에 데이터 변질의 우려가 있음)
서버용(Linux), PC용(MacOS, Linux-펭귄, Windows) 스마트디바이스용 운영체제
리눅스는 모든 종류의 컴퓨터에서 다 사용되는 운영체제
오픈소스(소스코드 전체 공개) : Linux, Android