본문 바로가기

CS STUDY/운영체제

메모리(Memory)

메모리(Memory)

메인 메모리(Main Memory)
  • CPU가 직접 접근할 수 있는 기억장치
  • 프로세스가 실행되려면 프로그램이 메모리에 올라와 있어야 함
메모리의 주소
  • Logical address(=virtual address)
    • 프로세스마다 독립적으로 가지는 주소 공간
    • CPU가 보는 주소
    • 각 프로세스마다 0번지부터 시작
  • Physical address
    • 메모리에 실제 프로세스가 올라가는 위치
주소 바인딩(Address Binding)
  • 컴파일 후 독자적인 숫자 주소가 생성이 되고, 실행이 되려면 물리적 메모리에 올라가야 함
  • 논리적 주소 => 물리적 주소(Binding 시점)
    1. Compile Time Binding
    2. Load Time Binding
    3. Run Time Binding or Execution Time Binding (현재 사용)
MMU(Memory Management Unit, 메모리 관리 장치)
  • 논리적 주소를 물리적 주소로 매핑해 주는 Hardware device => 빠른 주소 변환 지원
  • CPU가 메모리 XXX번지에 있는 내용을 달라고 하는 것은 physical address가 아닌 logical address로 요청
MMU의 메모리 보호
  • 프로세스가 접근 가능한 메모리 영역은 base(시작주소) <= x < base+limit(시작주소 + 프로세스 사이즈)
  • 해당 영역 밖에서 접근을 요구하면 trap 발생
메모리 과할
  • 실제 메모리의 사이즈보다 더 큰 사이즈의 메모리를 프로세스에 할당한 상황
  • 해결 => 1,2 중 2를 사용한다는데 둘의 차이가 뭐지? 1은 프로세스의 종료고 2는 프로세스를 임시 공간에 저장 
    1. 메모리에 올라와 있는 하나의 프로세스를 종료시켜 빈 프레임 확보
    2. 프로세스 하나를 swap out 후, 해당 공간을 빈 프레임으로 활용 => 페이지 교체
  • 1은 페이지 알고리즘(페이징 시스템을 들킬 가능성이 높음)
  • 페이지 교체(2번 방법)의 순서
    1. 프로세스 실행 도중 페이지 부재 발생
    2. 페이지 위치를 디스크에서 찾음
    3. 메모리에 빈 프레임이 있는지 확인
      1. 빈 프레임이 없으면 victim 프레임을 선정해 디스크에 기록하고 페이지 테이블 업데이트
    4. 빈 프레임에 페이지 폴트가 발생한 페이지 올리고, 페이지 테이블 업데이트
캐시 메모리
  • 주기억장치에 저장된 내용의 일부를 임시로 저장해두는 기억장치
  • CPU와 주기억장치의 속도 차이로 성능 저하를 방지하기 위한 방법

 

참고

https://rannnneey.tistory.com/entry/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-Memory-Management-1-Logical-vs-Physical-Address-%EC%A3%BC%EC%86%8C-%EB%B0%94%EC%9D%B8%EB%94%A9-MMU

 

[운영체제] Memory Management 1 (Logical vs Physical Address, 주소 바인딩, MMU)

● Logical Address vs Physical Address (논리적 주소 vs 물리적 주소) 프로그램이 시작되면 독자적인 주소 공간이 형성된다. 물리적인 메모리 내에서 3GB~4GB 주소 공간에는 운영체제 커널이 올라가 있고, 1G

rannnneey.tistory.com

 

'CS STUDY > 운영체제' 카테고리의 다른 글

시스템 콜(System Call)  (0) 2024.03.21
파일 시스템(File System)  (0) 2024.02.26
페이지 교체 알고리즘  (0) 2024.02.09
페이징과 세그먼테이션  (1) 2024.02.09
Race Condition & Deadlock  (0) 2024.02.05