메모리
프로그램과 프로그램 수행에 필요한 데이터를 저장하는 장치
내부 기억장치(주기억 장치) / 외부 기억장치(보조 기억장치)로 나뉨
주기억장치
RAM / CPU 내의 레지스터와 캐시
보조 기억장치
HDD, SSD
가상 메모리
실제 사용할 수 있는 메모리보다 많이 제공하기 위한 메모리 관리 기술
하드디스크까지 메인 메모리를 확장하는 것
물리적 한계를 극복하기 위한 기술
주기억장치의 프로그램 양이 많아질때 프로그램을 보조기억장치에 옮겨 주기억장치처럼 사용하는 보조기억장치의 일부
MMU - Memory Management Unit
가상주로를 물리주소로 변환(주소 변환)
메모리 보호
페이지 및 주소 번역 정보 기억
요구 페이징
CPU가 요청할 때 프로세스의 데이터를 메모리에 올리는 것
페이지 폴트 - Page faults
어떤 페이지에 접근하려고 했을때 해당 페이지가 실제 물리 메모리에 부재할 때 뜨는 인터럽트
해당 인터럽트 발생시 이를 해결하고 다시 동일한 명령 수행 - 발생하지 않은것처럼 수행
가상 메모리에는 존재하지만 RAM에는 존재하지 않는 데이터 / 코드에 접근 했을때 발생
메모리 사용
실제로는 모든 메모리 공간을 하드디스크에 넣고 사용하는 것들만 블록 단위로 빼서 RAM에 로드
관리 정책
- 할당 정책 : 할당할 메모리의 양을 관리 / 고정할당기법, 할당기법
- 호출 정책 : 언제 주기억장치로 프로그램 가져올지 결정
- 배치 정책 : 어디에 배치할지 관
- 교체정책 : 주기억장치에 적재할 공간이 없을때 무엇과 교체할 것인지 결정
장점
프로그램의 크기가 물리적인 용량에 무관
많은 프로그램이 메모리 공유 → CPU 사용률 / 처리율 향상
주소 결속을 실행 시간에 할 수 있음
참고
https://beeehappy.tistory.com/53
'OS' 카테고리의 다른 글
CPU 스케줄링 (0) | 2023.03.16 |
---|---|
페이징 / 세그멘테이션 (0) | 2023.02.07 |
운영체제 / 커널 / 콘솔 / 터미널 / 쉘 (0) | 2022.12.23 |