메모리(Memory)
메인 메모리(Main Memory)
- CPU가 직접 접근할 수 있는 기억장치
- 프로세스가 실행되려면 프로그램이 메모리에 올라와 있어야 함
메모리의 주소
- Logical address(=virtual address)
- 프로세스마다 독립적으로 가지는 주소 공간
- CPU가 보는 주소
- 각 프로세스마다 0번지부터 시작
- Physical address
- 메모리에 실제 프로세스가 올라가는 위치
주소 바인딩(Address Binding)
- 컴파일 후 독자적인 숫자 주소가 생성이 되고, 실행이 되려면 물리적 메모리에 올라가야 함
- 논리적 주소 => 물리적 주소(Binding 시점)
- Compile Time Binding
- Load Time Binding
- 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는 프로세스를 임시 공간에 저장
- 메모리에 올라와 있는 하나의 프로세스를 종료시켜 빈 프레임 확보
- 프로세스 하나를 swap out 후, 해당 공간을 빈 프레임으로 활용 => 페이지 교체
- 1은 페이지 알고리즘(페이징 시스템을 들킬 가능성이 높음)
- 페이지 교체(2번 방법)의 순서
- 프로세스 실행 도중 페이지 부재 발생
- 페이지 위치를 디스크에서 찾음
- 메모리에 빈 프레임이 있는지 확인
- 빈 프레임이 없으면 victim 프레임을 선정해 디스크에 기록하고 페이지 테이블 업데이트
- 빈 프레임에 페이지 폴트가 발생한 페이지 올리고, 페이지 테이블 업데이트
캐시 메모리
- 주기억장치에 저장된 내용의 일부를 임시로 저장해두는 기억장치
- CPU와 주기억장치의 속도 차이로 성능 저하를 방지하기 위한 방법
참고
[운영체제] 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 |