본문 바로가기

프로그래밍 학습/보안 이론

[정보보안기사 필기] 운영체제 기억장치 개념

728x90

기억장치의 종류의 계층







기억장치의 종류

주기억 장치 

- ROM(비 휘발성, 시스템가동에 필요한 정보 저장)

- RAM(휘발성, CPU와 보조기억장치 I/O 속도차이 극복을 위한 저장장치)


보조기억 장치 

- 비휘발성 저장 장치로 비교적 대용량이며 속도가느리다, 하드디스크, 자기테이프, 자기디스크 등


가상 기억장치

- 보조 기억장치 용량의 일부를 RAM처럼 사용, RAM의 용량 한계를 극복


메모리 할당기법

개념 : 메모리 할당기법은 기억장소에 프로그램이나 데이터가 들어올 경우 기억장소의 위치를 결정

종류

- 최적 적합(Best Fit) : 입력된 프로그램을 수용할 수 있는 공간 중 가장 작은 공간을 할당

- 최초 적합(First Fit) : 입력된 프로그램을 수용할 수 있는 공간 중 가장 먼저 발견된 공간을 할당

- 최악 적합(Worst Fit) : 입력된 프로그램을 수용할 수 있는 공간 중 가장 큰 공간을 할당


메모리 단편화 문제

개념 :단편화는 기억장치 관리에서 각 작업에 필요한 기억장치 공간들은 계속적으로 할당 및 회수를 반복할 때 주 기억장치 중에서 실제로 작업에 사용되지는 않으면서 유용하게 사용될 수도 없는 공간을 의미한다. 

예) 100바이트를 요청하여 데이터를 저장하려고하는데 150바이트의 공간이 할당된다. 결국 50바이트는 사용하지 않는 것인데 이것을 메모리 단편화라하고 블록 내부에서 생기는 단편화를 내부 단편화, 대기 중인 작업이 분할영역보다 커서 분할전체가 빈 공간으로 있을 때의 상태를 외부단편화라 한다.


해결방법

압축(Compaction)

- 산재한 기억장소를 한 군데로 모아 최대의 연속된 빈 공간을 확보하는 것을 말한다. 기억장치 내에 흩어져 있는 공백들이 상당한 양의 메모리를 차지하고 있는 경우가 있는데 이를 해결하여 주고 메모리 압축은 사용되고 있는 기억장치의 공간을 주 기억장치의 한쪽 끝으로 옮겨 공간을 확보해준다.


페이징(Paging)

- 주소공간을 페이지 단위로 나누고, 실제 주소공간은 페이지 크기와 같은 페이지 프레임으로 나누어 사용하는것

- 페이징 테이블은 논리적 주소 공간으로부터 물리적 기억장치로의 주소변환을 위해서 페이지 테이블이 필요(매핑테이블)

- 페이지 하드웨어 : 페이징을 수행하기 위해 필요한 하드웨어의 지원, 명령어를 수행하기 위해 필요한 주소는 페이지번호와 페이지 옵셋으로 표현

- 페이지 공유 : 시스템에서 여러 사용자가 동일한 프로그램을 수행하는 경우에 중복된 데이터를 여러개 가지는 문제를 해결하기 위해서 공유가 필요

- 페이지 부재 : 메모리에 적재된 페이지를 읽으려고 할 때 해당 페이지가 없는경우

- 요구 페이징 : 실행할 프로그램 일부만 메모리에 적재하는 것으로 프로그램이 순차적으로 실행되는 특성과 프로그램 일부가 자주 사용될 때 다른 부분은 거의 활용하지 않는 점을 이용하여 요구페이징 기법에서 프로그램의 일부만을 메모리에 적재하여 실행할 수 있게 하여 프로그램 최대 크기에 대한 제한이 사라지게 된다.


페이징 교체 알고리즘 종류와 개념

- 선입선출(FIFO: First in First Out) : 주기억장치에서 가장 많은 시간을 보낸 페이지부터 교체하는 알고리즘이고 주기억장치 적재순서를 기록하여 선입선출 큐를 유지관리

- 최근최소사용(LRU : Least Recently Used) : 가장 오랜 기간 사용되지 않았던 페이지를 교체하는 알고리즘

- 최적교체(OPT : optimal) : 가장 오랫동안 참조되지 않을 페이지를 희생 페이지로 선택하는 방식

- 클럭(clock) : 선입선출알고리즘 + 최근최소사용알고리즘 결합한 방식이며 참조비트가 해당 페이지가 참조될때 마다 세트되어 주기적으로 소멸되는 방식


세그먼테이션 기법

개념 : 일반적으로 사용자가 작성하여 실행하는 프로그램은 서브루틴과 함수, 프로시저, 모듈의 집합으로 구성되어 있고 아울러 각종 테이블, 행렬 또는 스택 등과 같은 여러가지 형태의 자료 구조들이 있는데 이때 이러한 논리적 단위가 되는 프로그램 모듈이나 자료 구조 등을 세그먼트라 한다. 


구조및역할 : 세그먼트 번호와 세그먼트 오프셋으로 구성된 주소를 사용하는데 사용자가 사용하는 주소와 물리적 주소간의 변환을 책임직 하드웨어의 지원이 필요하게 되고 세그먼트 테이블을 이용하여 주소를 변환한다.


가상기억장치(Virtual Memory)

개념 : 가상기억장치는 시스템에 설치된 물리적 기억장치의 효율적 사용을 위해 사용자에게서 물리적 기억장치를 숨기고 논리적으로 확장된 기억장치를 제공하는 기법으로 물리적 기억장치와 논리적 기억장치 사이의 대응관계를 관리및 유지한다. 시스템 구조와 운영체제의 협력관계가 수행되어야 한다.


디스크 스케줄링

개념 : 탐구시간은 데이터의 기록 판돈을 위해 디스크 헤드를 필요한 실린더로 이동시키는데 소요되는 시간이며 디스크 스케줄링의 목적은 탐구시간을 최적화하기 위함이다. 데이터의 기록/판돈을 위한 요구가 많아 대기중인 경우 어느 실린더에 대한 요구부터 시작할 것인가를 결정한다.


디스크 스케줄링 기법

- FCFS(First Come First service) : 먼저 도착한 디스크 입출력 요청부터 우선처리

- SSTF(Shortest Seek Time First) : 최소 탐색시간을 갖는 입출력요청을 우선처리 -> 안쪽과 바깥족 실린더에 대한 입출력 요청은 기아상태 발생가능

- SCAN : 헤드가 실린더 양 끝을 왕복, 헤드 진행방향으로 가장 짧은 거리에 있는 입출력요청을 우선적으로 서비스

- C-SCAN : SCAN 기법을 개선하여 입출력 요청에 대하여 균등한 대기시간을 보장, 헤드가 항상 동일한 방향으로 이동하고 가장 짧은 탐색시간을 갖는 입출력요청을 우선처리

- C-Look : C-Scan 기법의 개선, 헤드 이동 방향의 마지막 입출력 요청을 처리 후 헤드를 처음 위치로 이동하여 다음 입출력 요청 처리

- N-STEP : SCAN 기법을 개선하여 헤드가 이동을 시작할 때 대기중인 입출력 요청만 처리하고 이동중에 도착한 입출력 요청들은 다음에 처리