이 글은 운영체제(2017) - (반효경 교수님) 강의를 보고 작성한 글 입니다.
혹시 잘못된 내용이 있을 경우 편하게 댓글로 알려주시면 감사하겠습니다!
운영체제(Operating System, OS) 란?
컴퓨터와 하드웨어 바로 위에 설치되어, 사용자 및 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
운영체제의 목적
컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공
- 동시 사용자/프로그램들이 각각 독자적 컴퓨터를 사용하는 것 처럼 논리적으로 자원을 분리함
- 하드웨어를 다루는 복잡한 작업을 운영체제가 처리
- 컴퓨터 자원을 효율적으로 관리
- CPU, 메모리, I/O 장치를 효율적으로 관리함
- 주어진 자원으로 최대한의 성능을 내도록 → 효율성
- 특정 사용자/프로그램이 자원을 독점하지 않도록 관리 → 형평성
- CPU, 메모리, I/O 장치를 효율적으로 관리함
운영체제의 기능
운영체제는 크게 컴퓨터 내부
와 컴퓨터 외부
로 나누어 관리합니다.
- 컴퓨터 내부 : 처리 속도 빠름
- CPU : 기계어 실행
- 메모리 : 프로그램 데이터 저장
- 컴퓨터 외부 : 처리 속도 느림
- 디스크, 키보드/마우스, 프린터, 모니터 등등
컴퓨터 내부
가 컴퓨터 외부
보다 상대적으로 처리 속도가 훨씬 빠릅니다.
만약, CPU가 프린터 동작이 끝날 때 까지 기다린다면 엄청난 자원 낭비 입니다.
그래서 운영체제는 프로세스 관리를 통해 이를 해결합니다.
프로세스 상태
운영체제는 CPU에서 실행중인 작업이 프린터를 사용해야 한다면, 프린터에 작업을 위임하고,
실행 대기중인 다른 프로세스에게 CPU 제어권을 넘겨줍니다.
그리고 프린터로 넘어간 작업이 완료되면 인터럽트
가 발생하여 다시 CPU 제어권을 얻어오게 됩니다.
CPU 스케줄링
어떤 프로그램에게 CPU 자원을 할당할 것인가를 결정하는 운영체제의 작업
FCFS(First-Come First-Served)
- 먼저 도착하는 작업에게 먼저 CPU 제어권을 넘겨주는 스케줄링 방식
- 작업 대기시간이 고르지 않음
SJF(Short Job First)
- 요구되는 CPU 사용시간이 적은 작업부터 CPU 제어권을 넘겨주는 스케줄링 방식
- CPU 제어권이 균등하게 배정되지 않을 수 있다.
Round Robin
- 일정한 시간만큼 할당하고, 작업이 끝나지 않았더라도 다음 프로세스에게 제어권을 넘겨주는 방식
- CPU 제어권이 균등하게 배정되는 장점이 있음
- 처리 완료시간이 길어질 수 있음
메모리 관리
가상메모리
- CPU가 사용하는 가상의 주소공간입니다.
- 실제 메모리 영역은 다른 주소라도, CPU에서는 0번지 부터 메모리를 사용하는 것 처럼 동작함
디스크 스왑
- 메모리 영역의 데이터를 하드디스크로 내리거나, 하드디스크의 데이터를 메모리에 올리는 작업.
- 모든 프로그램의 모든 데이터를 올리면 메모리가 부족하기 때문에, 효율적으로 사용하기 위한 목적.
메모리 페이지 교체 알고리즘
LRU(Least Recently Used)
- 가장 적은 참조횟수를 갖는 페이지를 교체
LFU(Least Frequently Used)
- 가장 오랫동안 참조되지 않은 페이지를 교체
저장장치
- 헤드의 이동을 최대한 줄이는 것이 중요함
디스크 접근 시간(Access time)
- 탐색시간(Seek time) : 헤드를 해당 실린더로 움직이는데 걸리는 시간
- 회전지연(Rotational latency) : 헤드가 원하는 섹터에 도달하기까지 걸리는 시간
- 전송시간(Transfer time) : 데이터의 전송 시간
디스크 스케줄링
- Seek time을 최소화 하는것이 목표
- Seek time 은 Seek distance에 비례함
FCFS
- 먼저 들어온 영역을 먼저 탐색함
- 헤드의 이동거리가 많아서, Seek time이 많이 걸림
SSTF(Shortest Seek Time First)
- 거리가 가장 가까운 순서로 탐색함
- 헤드의 이동거리가 상대적으로 짧아서, Seek time이 적음
- 하지만, 먼저 들어와도 거리가 멀면 오래 기다리는 단점이 있음
SCAN
- 말 그대로, 하나씩 스캔을 하다가 현재 헤드가 지나가는 길에 들어온 요청만 처리한다.
- 헤드의 이동 거리가 일정하다는 장점이 있다.
- 헤드가 지나가고 난 다음 자리에 작업이 들어오면, 대기 시간이 길다는 단점이 있음.
저장장치 계층구조와 캐싱
Primary 영역은 주기억장치로, CPU가 직접 접근할 수 있는 영역입니다.
그래서 빠르지만, 비싸서 용량이 상대적으로 적은 특징이 있습니다.
하지만 이 영역은 휘발성
이 있어, 전기가 공급될 때만 데이터가 저장되는 단점이 있습니다.
Secondary 영역은 보조기억장치고 CPU가 직접적으로 접근할 수는 없습니다.
느리지만, 상대적으로 싸서 용량이 많은 특징이 있습니다.
그리고 이 영역은 비휘발성
저장장치라서, 전기가 공급되지 않아도 데이터를 저장할 수 있습니다.