운영체제 (OS: Operating System)
운영체제는 사용자가 컴퓨터의 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공해주는 소프트웨어이다.
또한, 한정된 시스템 자원을 효과적으로 사용할 수 있도록 관리 및 운영함으로써 사용자에게 편리성을 제공한다.
내가 운영프로그램을 설치하면 하드디스크에 들어가면 프로그램이 되고 프로그램이 주기억장치로 올라오게 되면 프로세스가 된다. 프로세서는 CPU라고 말하기도 한다.
운영체제가 돌아가는 순서에는 반입, 배치, 교체가 있다.
하드디스크에서 가져와야 하니 반입을 한다. 반입된 데이터들을 주기억장치 어딘가에 배치해야 한다. 주기억장치는 한정적인 공간이라 금방 찬다. 다 찼으면 교체해야한다.
반입전략에는 요구 반입, 예상 반입이 있다.
중요한 배치전략에는 최초적합, 최적적합, 최악적합이 있다.
● 최초적합 (First Fit) : 프로세스가 적재될 수 있는 가용 공간 중에서 들어갈 수 있는 건 먼저 들어가는 것
● 최적적합 (Best Fit) : 가용 공간 중에서 가장 크기가 비슷한 공간을 선택하는 것
● 최악적합 (Worst-Fit) : 프로세스의 가용 공간 중에서 가장 큰 곳에 할당 하는 것
교체전략에는 FIFO, LRU, LFU, OPT, NUR, SCR 등이 있다.
● FIFO : 가장 먼저 들어와 가장 오래 있던 페이지를 교체하는 기법 (선입선출)
● LRU : 최근에 사용하지 않은 것을 교체하는 기법
● LFU : 빈도가 낮은 것을 교체하는 기법
● NUR : LRU와 비슷하고 참초비트와 변형비트를 사용
● OPT : 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법
● SCR : FIFO 단점을 보완한 기
이렇게 교체를 하기 위해 가상기억장치가 필요하다. 그럼 가상기억장치에 대해 알아보자.
가상기억장치는 주기억장치의 한정적인 공간때문 에 하드디스크의 일부를 주기억장치처럼 사용하는 것을 말한다. 이것을 구현하기 위해 페이징 기법하고 세그먼테이션 기법을 해야한다.
페이징 기법은 고정적인 크기로 나누고 내부단편화가 발생한다.
세그먼테이션은 가변적인 크기로 나누고 외부단편화가 발생한다.
여기서 단편화란?
예를 들어 10KB 메모리가 있다. 5KB 메모리를 10KB 넣으면 내부에 공간이 남는 현상이 내부 단편화라 말하고
만약 15KB가 들어갈려하면 못들어가니깐 10KB는 놀고 있는 상태라 외부 단편화 10KB 발생했다고 말할 수 있다.
이 단편화를 없애기 위해 통합기법, 압축기법이 있다.
통합기법은 인접해 있는 것들 통합해서 하나의 큰 공간을 만드는 것이고 압축기법은 다른 곳에서 가져와 압축하여 큰 공간을 만든 것이다.
이런 교체가 많이 하게 되면 스레싱 현상이 발생한다.
스레싱이란 프로세스가 수행되는 시간보다 더하기, 빼기, 곱하기, 나누기 하는 시간보다 교체하는데 시간이 많이 걸리는 것이다. CPU는 더하기, 빼기, 곱하기, 나누기에 시간 많이 써야하는데 교체하는데만 시간 소요되면 스레싱현상이 발생한다.
이 현상을 해결하기 위해 워킹셋을 해야한다.
워킹셋 : 각 프로세스가 많이 참조하는 페이지들의 집합을 주기억장치 공간에 계쏙 상주하게 하여 빈번한 페이지 교체 현상을 줄이고자 하는 기법이다.
장단점은 표에 나타나 있다.
이 프로세스가 어떻게 돌아가는지를 확인해보자.
이렇게 준비 상태와 실행 상태가 왔다갔다 반복이 된다. 이 과정이 되는 이유는 PCB에서 문맥교환이 가능하다.
PCB : 운영체제가 프로세스를 관리하기 위해 만든 것
문맥교환 : CPU가 현재 실행하고 있는 프로세스의 문맥 상태를 PCB에 저장하고 다음 프로세스의 PCB로부터 문맥을 복원하는 작업
다음시간 프로세스 스케줄링에 대해 알아보자