메모리 관리

jm·2022년 12월 7일
1

OS

목록 보기
8/13

메모리 종류

메모리 계층 구조

  • Block
    • 보조기억장치(HDD, SSD)와 주기억장치 사이의 데이터 전송 단위. 1 ~ 4KB
  • Word
    • 주기억장치와 레지스터 사이의 데이터 전송 단위. 16 ~ 64 bits

Address Binding

  • 프로그램의 논리 주소를 실제 메모리의 물리 주소로 매핑하는 작업
  • a라는 논리주소(변수)의 100이라는 물리주소와 바인딩.
  • Binding 시점에 따른 구분
    • compile(컴파일 중) time binding
      • 프로세스가 메모리에 적재될 위치를 컴파일러가 알 수 있는 경우 (위치 변할 수 없음)
      • 프로그램 전체가 메모리에 올라가야 함
    • Load (메모리에 올릴 때) time binding
      • 메모리 적재 위치를 컴파일 시점에서 모르면, 대체 가능한 상대 주소를 생성 해둠 (시작 주소와 비교)
      • 적재 시점(load time)에 시작 주소를 반영하여 사용자 코드상의 주소를 재설정
      • 프로그램 전체가 메모리에 올라가야 함
    • Run (실행 중) time binding
      - running상태가 될 때 Address binding을 수행시까지 연기 (running상태로 될 때마다 바뀜 ➡ 프로세스가 수행 도중 다른 메모리 위치로 이동할 수 있음.)
      - HW의 도움이 필요. MMU(Memory Management Unit)
      - 대부분의 OS가 사용
        

Dynamic Loading

  • 연속되게 메모리에 올리는 경우인 Address Binding이 아닌 필요한 부분만 메모리에 올리기
  • 모든 루틴(ex.function)을 교체 가능한 형태(A,B,C)로 디스크에 저장
  • 실제 호출 전까지는 루틴을 적재하지 않음
    • 메인 프로그램만 메모리에 적재하여 수행, 루틴의 호출 시점에 address binding 수행
  • 장점 : 메모리 공간의 효율적 사용

Swapping

  • 프로세서 할당이 끝나고 수행 완료 된 프로세스는 swap-divice로 보냄(Swap-out)

  • 새롭게 시작하는 프로세스는 메모리에 적재(Swap-in)


    https://youtu.be/EdTtGv9w2sA [Course] Operating System (CPA310) - 운영체제 강의. HPC Lab. KOREATECH

profile
ㅎㅎ

0개의 댓글