물리 메모리 관리

심효은이다·2023년 9월 17일
0

메모리 관리

메모리 주소

  • 0번지부터 시작해서 1B로 나뉨
  • 메모리 주소 레지스터 사용

메모리 관리

  • 모든 프로그램은 메모리에 올라와야 실행 가능
  • 일괄처리 시스템은 메모리가 단순하고 시분할 시스템은 메모리가 복잡
  • 프로세스는 메모리 독차지하려 하고 메모리 관리자는 효율적으로 하고 싶어함

소스코드

종류

  • 컴파일러(C언어, 자바)
    - 목적 : 오류발견, 코드 최적화
  • 인터프리터(자바스크립트, 베이직, 파이썬)

메모리 관리자

  • 역할 : 메모리 관리 담당 하드웨어
  • 작업 : 가져오기(프로세스와 데이터를 메모리로), 배치(가져온 프로세스와 데이터를 메모리에 배치할 곳 결정), 재배치(꽉 찬 메모리에 오래된 프로세스 내보냄)
  • 정책 : 가져오기(프로세스가 필요한 데이터를 언제 메모리로 가져올지 결정), 배치(가져온 프로세스를 메모리에 배치할 곳 결정), 재배치(꽌 찬 메모리에 내보낼 프로세스 결정)

메모리 주소

32비트 / 64비트

메모리크기 :
물리 주소 공간 : 하드에어 입장
논리 주소 공간 : 사용자 입장

절대주소 상대주소

단순 메모리 구조 : 한 번에 한 가지 일만 처리 -> 메모리를 거꾸로 사용하기 위해 주소 변경하는 일이 복잡
경계 레지스터 : 운영체제 영역과 사용자 영역 경계 지점 주소 가짐
절대 주소 : 실제 물리 주소
상대 주소 : 사용자 영역이 시작되는 번지를 0번지로 변경
절대주소와 상대주소 차이 : 논리주소공간은 상대주소 사용, 물리지ㅜ소공간은 절대주소 사용
논리주소공간(가상메모리) -> 상대주소
물리주소공간(물리메모리) -> 절대주소

메모리 할당

메모리 오버레이

  • 프로그램 크기가 실제 메모리보다 클 때 전체 프로그램을 메모리에 잘라서 가져옴
    작동 방식 : 프로그램이 실행되면 필요한 모듈만 매모리에 올라와 실행

스왑

  • 메모리가 모자라 프로세스를 모아둠
    스왑인 : 스왑 영역에서 메모리로 데이터 가져옴
    스왑아웃 : 메모리에서 스왑 영역으로 데이터 내보냄

메모리 분할

가변분할 : 크기에 따라 나눔
고정분할 : 크기 상관없이 똑같이 나눔

0개의 댓글