가상메모리

AMJ·2023년 3월 20일
0

후기_log

목록 보기
8/28

컴퓨터 구조

CPU (Central/Core Processing Unit)

  • CPU 연산 > 레지스터 값 참조
  • 레지스터 : 자료 보관하는 매우 빠른 기억 장소 / 용량 적음(메인메모리 필요이유), 휘발성
  • CPU는 main memory(=physical memory)를 두어 레지스터리와 같이 사용(참조)함.
  • main memory와 registry만으로는 부족, Disk(외부저장장치 / 비휘발성 / 느림)를 이용하게 됨.
  • cpu는 main-memory 값 까지만 사용(참조)가능함
  • OS를 통해 I/O(input/output)작업으로 Disk를 이용가능하게 만듬.

프로그램 실행

  • 프로그램 실행 > cpu가 일을 한다 > 프로그램의 정보가 메인 메모리에 올려져야함
  • source > 컴파일러 / 링커 > 실행 파일 생성
    • 컴파일러 : 프로그래밍 코드를 cpu언어(기계어)로 변환
    • 링커 : 목적?파일들을 합쳐 하나의 실행 파일로 만듬
  • 프로그램 실행 > fork(newprocess생성) > exec요청 > 로더 호출 > 로더 : 새로 생성된 프로세스의 주소공간을 사용하여 지정된 실행파일(2진)을 메모리에 올림
disk의 실행파일 > 메모리에 올려져 > cpu가 참조 및 실행됨

가상메모리 사용하기 위해서

  • 실행시간 바인딩 요구됨 > 논리주소 물리주소 값이 달라지게 된다.

논리주소

  • 실행파일 실행 > cpu는 프로세스(ps) 마다 독자적인 주소공간 생성 > 이 cpu가 바라보는 주소 공간을 논리주소(logical address)

    • 논리주소 : cpu 생성 주소

주소바인딩

  • cpu가 작동하기위해 논리주소가 메인 메모리상에 올라와야한다.

  • 논리주소 물리적 메모리의 주소, 특정위치로 맵핑 되는것, 주소바인딩

    • 물리주소 : 메모리 취급 주소

주소 바인딩 방식

물리적 메모리 주소 결정되는 시기에 따라 나누어짐

  1. 컴파일 타임 바인딩

  2. 로드 타임 바인딩

  3. 실행시간 바인딩

    • 기준 레지스터 (물리주소의 시작점)
    • 한계 레지스터 (논리주소의 끝점)
    • MMU 하드웨어 지원 필요

      cpu가 주소 참조시 주소 매핑 테이블을 이용해 바인딩 점검

    • MMU

      CPU가 메모리에 접근을 관리하는 하드웨어 부품 (논리주소를 물리주소로 맵핑해주는 하드웨어 장치)

[논리적 주소] + [기준 레지스터] = [물리적 주소]를 찾는다. 

CPU 동작 : 시분할 방식

  • 한정된 1개의 process(cpu)로 여러 프로그램을 동시에 실행하는 것처럼 사용하는 경우.
    • cpu가 짧은 시간 단위로 process를 바꿔가면서 사용하는 것 : 시분할 방식

스왑(Swap)영역

  • 여러 개의 프로그램이 메모리에 올라와 물리메모리 영역이 부족한 경우 > 메모리 공간의 확장영역 > swap영역 사용됨
  • 외부저장장치(Disk)에 존재
  • 물리 메모리의 확장개념
  • 메인메모리 공간부족 > 실행중인 프로세스의 주소공간을 Main_memory에서 일시적으로 Disk로 옮겨 둔 것
  • OS에 의해 I/O 작업 발생


가상메모리

◆ why? 필요

  • 물리메모리의 크기보다 큰 프로세스 실행.
  • 빈번한 swap과의 i/o 발생.

◆ 필요한 것만 물리메모리 적재

  • Demand paging (요구 페이징) 기법

◆ 구분 어떻게?

  • 유/무효 비트 사용
  • valid : 있음
  • invalid : 없음 > page fault 발생시킴

논리적 메모리는 MMU의 도움으로 실행타임 바인딩 기법 적용.


invalid 경우

  1. 논리메모리에서 cpu 1번 참조 시도.
  2. 페이지테이블 i(nvalid) 확인 > 물리메모리 없음.
  3. page fault 발생.
  4. cpu 제어권 os에 넘어감
  5. swap영역에서 해당 page 참조 > 물리메모리에 올림
프로세스마다 가상의 주소공간 확보
필요한 페이지만 물리메모리에 올려 사용
효과적 물리메로리 사용
OS는 프로그램이 물리메모리 크기 제약없이 실행 가능(지원)

profile
재미있는 것들

0개의 댓글