OS
Operating System
종류
1. CUI : Command User Interface
2. GUI : Graphic User Interface
목적
1. Throughput 향상
자원 관리를 통해 주어진 시간 대비 많은 양을 처리해야한다.
2. Turnaround Time 감소
응답시간, 즉 일을 처리하는데 소비하는 시간을 감소시켜야 한다. 다시말해, 빨라야한다.
3. Reliability
오류감지와 복구를 통해 작업에 대한 신뢰도를 보장해야한다.
4. Availability
메모리 관리를 통해 운영하는 시간 중 얼마나 많은 시간이 사용 가능해야한다.
운영방식
1. 일괄처리 방식(Batch Processing System)
가장 먼저 생겨난 방식으로, 유사한 작업을 모아서 한번에 처리한다.
2. 다중프로그래밍(Multi-Programing System)
여러 프로그램이 번갈아가며 처리된다. 따라서 처리량이 극대화된다.
3. 시분할시스템(Time Sharing System)
여러 단말기가 번갈아가며 공동으로 사용하는 시스템으로, 프로세서를 일정한 시간주기로 번갈아 가면서 점유한다.
실시간 응답이 요구되는 서비스에 적합하다.
4. 다중 처리 시스템(Multi -Processing)
여러대의 CPU와 한개의 주기억장치로 여러 프로그램을 동시처리한다.
5. 실시간 처리
즉각적인 작업을 제공한다.
6. 다중 모드
위의 시스템을 모두 선택적으로 제공한다.
7. 분산처리
한 작업을 여러 컴퓨터로 진행하는 방식
기억장치
CPU의 원활한 작업처리를 위해서 프로그램이나 데이터를 일시/영구적으로 저장하는 장치
레지스터, 연관메모리, 캐시메모리, 주메모리, 보조메모리 순으로 속도가 빠르다. 빠를수록 용량이 적고 가격이 비싸다.
종류
1. 주메모리
RAM과 ROM으로 구성된다.
RAM : Random Access Memory로, 어디에서나 접근 속도가 동일한 메모리라는 뜻이다. 대체로 휘발성이다.
ROM : Read Only Memory로, 첫 데이터 작성에 특수 기기가 필요한 메모리이다. 컴퓨터의 바이오스가 저장된다.
2. 캐시메모리
주메모리와 CPU사이의 입출력 속도의 간극을 줄이기 위해 사용한다.
3. 연관메모리
주소로 접근하지 않고, 저장된 내용을 이용해 접근하는 메모리
4. 보조메모리
속도는 느리나 전원이 꺼져도 내용이 유지되는 장치
5. 가상메모리
주메모리의 부족한 용량을 해결하기위해 보조기억장치를 주기억장치처럼 사용하는 기법
paging과 segmentation이 있다.
기억장치 전략
CPU에 어떻게 할당해줄 것인가에 대한 전략이다.
1. Fetch
CPU로 가져오는 시기를 결정한다. 요구반입과 예상 반입이 있다.
2. Placement (배치전략)
주기억장치의 어디에 배치할지를 결정한다.
First Fit : 기억장치의 남은 용량 중 프로세스의 용량에 적합한 첫번째 빈 공간에 할당한다.
Best Fit : 남는 공간 중 가장 작은 저장공간에 할당한다.
Worst Fit : 남는 공간 중 가장 큰 저장공간에 할당한다.
3. Replacement (교체전략)
무엇을 비울지 결정한다.
Paging에 사용된다.
1. FIFO (First In First Out) : 큐를 생각하면 될 것 같다.
2. OPT (Optimal) : 앞으로 가장 오랫동안 사용하지 않을 것 같은 페이지 교체
3. LFU (Least Frequently Used)
4. LRU (Least Recently Used)
5. NUR (Not Used Recently)
6. SCR (Second Chance Replace) : FIFO이되, 메모리에 상주해야하는 프로세스를 유지하기 위한 알고리즘 참조비트가 필요하다.
아래는 NUR과 LRU의 자세한 차이에 대한 글이다.
https://storyofsol.tistory.com/99
단편화
주기억장치에서 할당 지역들이 조각들로 나눠지는 현상으로 내부단편화와 외부단편화가 있다.
내부단편화 : 페이지가 프레임안에 할당되는데, 프레임의 용량이 남는 현상이다.
외부단편화 : 페이지가 너무 커서 프레임에 할당이 안되는 현상이다.
단편화의 해결
통합 : 인접한 낭비공간을 모아서 큰 기억공간을 만든다.
압축 : 인접하지 않은, 떨어져 있는 공간들을 모아서 큰 기억공간을 만든다.
둘의 차이는 인접했냐 안했냐의 차이이다.
가상메모리 (VRAM)
보조 기억장치를 주기억장치처럼 사용하는 기법
주기억장치보다 큰 프로그램을 사용하기 위해 사용한다.
가상기억장치의 주소를 주기억 장치의 주소로 변환해주는 매핑이 필요하다.
페이징
VRAM에 저장된 프로그램과 RAM의 영역을 동일하게 나눈 뒤에, 나눠진 페이지를 영역에 적재한다.
즉, 프로세스도 쪼개고, RAM영역도 쪼개서 집어넣겠다는 말이다. 집어 넣어야 하므로 주소체계가 필요한데, 이를 Mapping Table을 통해 Mapping한다. 매핑테이블은 논리 주소를 물리주소로 연결시키는 역할을 하며, MMU(Memory Management Unit)에 의해 실행된다.
장점 : 외부 단편화가 발생하지 않는다. -> 쪼개서 넣으니까 조금씩이라도 다 넣을 수 있다.
단점 : 내부단편화가 발생할 수 있다. -> 프레임이 큰 경우
특징 : Page수가 많아질 수록 Frame 수도 많아지므로 Mapping table이 커진다. 즉, 디스크 접근 횟수가 많아지면서 전체 속도(입출력)이 느려지게 된다.
Page 교체 알고리즘
메모리에 다음 페이지가 존재하지 않는 Paging Fault가 발생시에 새로운 페이지를 가져와야 하는데, 모든 프레임이 사용중일 경우에 수행된다.
위의 Replacement 전략에 해당된다.
Locality
프로세스가 실행되는 동안 일부 특정한 페이지만 집중적으로 참조한다는 이론
Temporal Locality : 최근에 사용된 것
Spactial Locality : 하나의 기억장소가 대부분 참조된다는 것
Cache 메모리 시스템의 근거가 되며, Working Set 이론의 기반이된다.
스레싱 (Thrashing)
페이징 부재(Paging Fault)가 계속되어 프로세스가 수행되는 시간보다 교체되는데 더 많은 시간이 소요되는 현상이다.
방지법은
1. CPU의 이용률을 높히기
2. Working Set을 준비
3. Paging 알고리즘을 교체하는 방법
Working Set
자주 사용되는 페이지들의 집합이다.