[컴퓨터구조] 가상 메모리, 파일 시스템

Yong·2023년 8월 21일
0

홍공컴운

목록 보기
6/6

가상 메모리

연속 메모리 할당

메모리 내에 프로세스들이 연속적으로 배치되는 것을 연속 메모리 할당 방식이라고 한다. 프로세스

스와핑

스와핑은 현재 사용되지 않는 프로세스들을 보조기억장치의 일부 영역으로 쫓아내고 메모리에 생긴 빈 공간에 새로운 프로세스를 적재시키는 방법이다.
메모리에서 프로세스들이 쫒겨나 보조기억장치의 일부 영역을 차지하게 되는데 이것을 스왑 영역 이라고 한다. 그리고 현재 실행되지 않는 프로세스가 메모리에서 스왑 영역으로 옮겨지는 것을 스왑 아웃이라하고 그 반대로 스왑 영역에 있던 프로세스가 메모리로 이동하는 것을 스왑 인이라고 한다.

메모리 할당

메모리 할당은 프로세스가 메모리에 적재될 수 있는 공간을 찾는 방법이다. 연속 메모리 할당에서는 다음과 같이 세 가지 방법이 있다.

  • 최초 적합(First-fit): 메모리를 순차적으로 탐색하여 제일 먼저 발견한 곳을 찾아 프로세스를 적재하는 방법
  • 최적 적합(Best-fit): 메모리를 탐색하여 메모리 공간 중에서 제일 적절하게 들어 갈 수 있는 곳을 찾아 프로세스를 적재하는 방법
  • 최악 적합(Worst-fit): 메모리에 넣는데 크기와 제일 안 맞는 공간에 프로세스를 넣는 방식이다.

외부 단편화

연속 메모리 할당은 메모리를 효율적으로 사용하는 방법이 아닌데, 그 이유는 외부 단편화 문제 때문이다. 외부 단편화는 메모리 여유 공간이 띄엄띄엄 조금씩 존재해서 실제로는 사용할 수 없는 경우를 말한다.
총 메모리가 200MB인 메모리 공간에 50,30,100,20씩 차례로 프로세스가 적재되었다고 해보자. 일부 프로세스가 종료되어 30MB과 20MB의 공간이 빈 공간이 되 었을 때 총합은 50MB이지만 두 공간은 연속된 공간이 아니기 때문에 50MB만큼의 프로세스를 적재하지 못한다.

페이징을 통한 가상 메모리 관리

가상 메모리는 물리 메모리의 크기와 상관없이 프로세스가 메모리를 사용하게 하는 기술이다. 실제 메모리 크기보다 더 큰 프로세스를 실행할 수 있다.
이 것을 가능하게 하는 방법에는 페이징세그멘테이션이 있다.

페이징

페이징은 프로세스의 논리 주소 공간을 페이지라는 일정한 단위로 자르고 메모리 물리 주소 공간을 프레임이라는 페이지와 동일한 크기의 일정한 단위로 자른 뒤 페이지를 프레임에 할당하는 가상 메모리 관리 기법이다. 프로세스 전체를 메모리에 적재하지 않아도 되고 외부 단편화를 줄일 수 있다.

페이지 테이블

페이지 테이블은 프로세스의 가상 주소와 물리 주소를 매핑하는 자료 구조이다. 페이지 테이블은 페이지 번호, 프레인 번호 등 정보를 저장할 수 있다.

CPU에는 PTBR(페이지 테이블 베이스 레지스터)이 존재하고 이는 각 프로세스의 페이지 테이블이 적재된 주소를 가르킨다. 그리고 이 페이지 테이블을 통해 프로세스의 페이지가 적재된 프레임을 알 수 있다.

이는 단점이 있다. 메모리 접근 시간이 두배로 늘어난다는 점이다. 이를 개선하기위해 TLB라는 페이지 테이블의 캐시 메모리를 둘 수 있다. TLB에 페이지 테이블의 일부 내용을 저장해둘 수 있다.

페이지 교체와 프레임 할당

요구 페이징 (demand paging)

요구 페이징은 가상 메모리 관리 기법 중 하나이다. 프로세스를 메모리에 적재할 때 모든 페이지를 적재하지 않고 필요한 페이지만 메모리에 적재하는 기법이다. 필요하지 않는 페이지는 보조기억장치에 저장하여 메모리를 절약할 수 있다.

메모리에 적재된 페이지 중에서 사용 페이지가 없을 때 페이지 폴트가 발생한다. 페이지 폴트가 발생하면 보조기억장치에서 해당 페이지를 찾아 메모리에 적재시킨다. 페이지 폴트는 과도하게 발생되면 성능 저하를 일으킬 수 있다.

페이지 교체 알고리즘

  • FIFO 페이지 교체 알고리즘: 메모리에 올라온 지 가장 오래된 페이지를 교체하는 방법이다. 큐를 사용하여 페이지가 올라온 순서를 저장한다. 페이지 폴트를 고려하지 않기 때문에 효율적인 알고리즘은 아니다.
  • 최적 페이지 교체 알고리즘: 앞으로 가장 오랫동안 사용되지 않을 페이지를 교체하는 방법이다. 메모리가 앞으로 사용할 페이지를 미리 살펴보고, 페이지 교체 시점부터 사용 시점까지 가장 멀리 있는 페이지를 대상으로 선정한다. 하지만 실제적으로 구현하기는 어렵다.
  • LRU 페이지 교체 알고리즘: 가장 오랫동안 사용하지 않은 데이터를 교체하는 방법이다. 최적 페이지 교체 알고리즘은 오랫동안 사용되지 '않을'페이지를 교체하기 때문에 구현하기 어렵다면, LRU는 구현이 가능하다.

스래싱

  • 스래싱: 프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상이다. 페이지 교체에 시간을 쏟으면 페이지 폴트가 자주 발생하고 CPU의 이용률도 떨어지게 된다.

파일 시스템

파일 시스템은 컴퓨터에서 파일이나 자료를 쉽게 접근할 수 있도록 보관하는 체계이다.

파일과 디렉터리

파일은 보조 기억 장치에 저정된 의미있고, 관련된 정보의 집합이다. 파일에는 파일을 실행하기 위한 정보와 메타 데이터로 이루어져 있다.

파일에는 파일 유형을 알리기 위해서 확장자가 존재한다. 확장자는 운영체제가 인식하는 파일 종류를 나타내고 파일을 다루기 위해서는 반드시 운영체제를 거쳐야한다.

디렉터리는 파일을 분류하기 위해 사용하는 공간이다.(윈도우에서는 '폴더') 디렉터리 안에 파일이나 서브 디렉터리를 가진다. 디렉터리를 이용해 파일 위치, 파일 이름을 특정 짓는 정보가 경로이다.

디렉터리는 파일의 이름, 확장자, 위치, 크기, 시간 정보 등을 기록하는 디렉터리 엔트리를 가지고 있다.

파일 시스템

파일 시스템이 파일과 디렉터리를 보조기억장치에 어떻게 할당하고 접근하는지 알아야한다.

파티셔닝과 포매팅

파티셔닝과 포매팅은 새로운 저장 장치를 사용하기 전에 필수적인 과정이다.
파티셔닝은 저장 장치를 하나 이상의 논리 영역으로 구획하는 작업이다. 포매팅은 파일 시스템을 설정하고 새로운 데이터를 쓸 준비하는 작업이다. 어떤 방식으로 파일을 저장하고 관리 할 것인지 결정한다.

파일 할당 방법

  • 연속 할당: 보조기억장치 상의 연속된 블록에 파일을 할당하는 방법
  • 불연속 할당: 불연속된 블록을 할당하는 방법
    ㄴ 연결 할당: 각 블록 일부에 다음 블록의 주소를 저장하여 블록들을 연결 리스트 형태로 관리하는 방법.
    ㄴ 색인 할당:파일 당 색인 블록을 두고 파일이 할당된 블록의 모든 포인터를 색인 블록에 저장하는 방법.

선택 미션

p. 400의 확인 문제 1번 풀고 인증하기!

profile
If I can do it, you can do it.

0개의 댓글