기어가더라도 제대로

[운영체제-김덕수 교수님] 메모리 관리(1/3) - 용어 정리 본문

CS/운영체제

[운영체제-김덕수 교수님] 메모리 관리(1/3) - 용어 정리

Damagucci-juice 2022. 8. 8. 10:10

메모리(주기억장치) 관리(1/3) image

  • 속도와 용량은 반비례
  • I/O Bottlenect 을 방지하기 위해 계층을 나눔
  • HW 가 관리
    • 레지스터
    • 캐시
  • SW가 관리
    • 메인 메모리
    • 보조 기억장치

메모리(주기억장치) 관리(1/3) image

  • "Cpu 가 64bit에요, 32bit에요" 할 때 숫자는 사실상 "word"의 크기랑 같다.
  • 보조기억 장치 -> 주기억장치로 데이터를 불러오는 단위
    • Block
    • 보통 1~4kb
  • 주기억 장치 -> 레지스터
    • word
    • 보통 16 ~ 64bits

메모리(주기억장치) 관리(1/3) image

  • Int a (논리주소)
  • 100번 부터 4bite만큼 저장(물리주소)
  • 이 둘을 엮는다.
  • 이것이 Address Binding이다.

메모리(주기억장치) 관리(1/3) image

언제 바인딩 하는지에 따라 다음과 같이 나눈다.

  • Compile time
    • source 코드가 object module로 묶일 때 메모리 주소를 할당하는 것을 컴파일 타임 바인딩이라 한다.
    • 프로세스가 메모리에 적재될 위치를 컴파일러가 알 수 있는 경우
      • 위치가 변하지 않음
    • 프로그램 전체가 메모리에 올라가야 함(20gb 짜리 게임은 어쩌지.....?)

메모리(주기억장치) 관리(1/3) image

  • load time
    • 오브젝트 모듈과 다른 외부 모듈(라이브러리) 을 연결해주는 링커가 load module 을 만든다.
    • 이 모듈을 exe 파일이라고 보면 된다.
    • 메모리 적재 위치를 컴파일 시점에서 모르면, 대체 가능한 상대 주소를 생성
    • 적재 시점(load time)에 시작 주소를 반영하여 사용자 코드 상의 주소를 재설정
    • 프로그램 전체가 메모리에 올라가야함.

메모리(주기억장치) 관리(1/3) image

  • run time
    • 이 때 loader 가 in-memory 에 프로그램을 올릴 때 메모리를 바인딩
    • 쉽게 생각해서 exe 파일을 더블클릭할 때 메모리에 바인딩한다는 것이다.
    • Address binding 을 수행시간까지 연기
      • 프로세스가 수행 도중 다른 메모리 위치로 이동할 수 있음
    • HW의 도움이 필요
      • MMU: Memory Management Unit
    • 대부분의 OS가 사용

‏‏‎ ‎


Dynamic Loading

  • 모든 루틴을 교체 가능한 형태로 디스크에 저장
  • 실제 호출 전까지는 루틴을 적재하지 않음
    • 메인 프로그램만 메모리에 적재하여 수행
    • 루틴의 호출 시점에 address binding 수행
  • 장점
    • 메모리 공간의 효율적 사용

‏‏‎ ‎


Swapping

  • Swap-out
    • 프로세서 할당이 끝나고 수횅 완료된 프로세스는 swap-device로 보냄
  • Swap-in
    • 새롭게 시작하는 프로세스는 메모리에 적재

메모리(주기억장치) 관리(1/3) image

메모리 할당의 연속성 측면

  • 연속할당
    • Uni-programming
    • Multi-programming
      • Fixed Partition(FPM)
      • Variable partition(VPM)
  • 비연속 할당
    • 주된 할당방법

‏‏‎ ‎

‏‏‎ ‎

‏‏‎ ‎

‏‏‎ ‎

‏‏‎ ‎

‏‏‎ ‎

Comments