Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- JVM
- pg_hba.conf
- MethodArea
- 42seoul
- 도커네트워크
- StackArea
- 참조변수
- LSP
- la-piscine
- 상속관계
- generics
- java
- SRP
- RDD
- JIT
- abstract
- 라피신
- javac
- classloader
- jdk
- 제네릭스
- Operating System
- Compiler
- 바이트코드
- 자바컴파일러
- 포함관계
- 42서울
- 운영체제
- HeapArea
- 이노베이션아카데미
Archives
- Today
- Total
while(1) 작심삼일();
7. 물리 메모리 관리 본문
CPU는 메모리 주소 레지스터에 주소를 넣으면 해당 메모리에서 값을 가져오거나 메모리 값을 옮길 수 있음
컴파일러 : 작성한 소스코드를 기계어로 번역한 후 실행 함(메모리 확보) (C,Java 등)
- 오류 발견 : 변수를 담는 심벌 테이블을 이용하여, 선언하지 않은 변수를 사용하거나, 다른 타입을 담았는지 확인
- 코드 최적화
인터프리터 : 작성한 소스코드를 한 줄씩 번역하여 실행 (자바스크립트, 베이직, 파이썬 등)
목적 코드 : 컴파일 되어 나오는 코드. 라이브러리와 연결하여 실행
MMU(메모리 관리자) : 메모리로 가져오고, 배치하고, 꽉찼을 때 내보내는 역할을 함
CPU의 비트 == 한번에 다룰 수 있는 데이터 최대 크기 == 레지스터 크기 == 산술논리 연산장치 크기 == 버스 및 대역폭 크기
메모리 또한 2^비트수만큼 사용할 수 있음 (32bit = 2^32, 64bit = 2^64)
상대 주소 : MMU가 사용자 프로세스 입장에서 사용되는 0번째부터 시작되는 주소. 메모리 관리자나 메모리 주소 레지스터들이 쓰는 사실의 절대주소로 변환하는 과정은 MMU가 재배치 레지스터를 사용하여 해당 메모리가 정말 사용되는 곳으로 가서 상대주소만큼 더하여 접근 한 뒤 데이터를 가져옴
단일 프로그래밍 환경
- 메모리 오버레이 : 프로그램 전체를 올리기엔 메모리 크기가 부족할 때 중요한 모듈만 올려두고 나머지는 필요할 때 메모리에 가져와 사용하는 방식. 모듈을 가져오고 내보내는건 CPU 레지스터 중 PC가 실행할 명령어를 통해 결정함 (메모리보다 큰 프로그램도 실행가능, 메모리를 나누어 프로세스에 할당가능)
- 스왑 : 메모리가 모자라서 내보낸 프로세스는 하드디스크의 스왑영역에 저장 됨. 이 영역은 MMU가 관리 함. 메모리 + 스왑영역을 메모리의 전체크기로 판단하여 사용 함
다중 프로그래밍 환경 : 한 번에 여러 프로세스가 실행되는 구조의 메모리 문제 (기본은 고정 분할에 일부분 가변 분할 방식 사용)
- 가변 분할 방식(연속 메모리 할당) : 프로세스 크기에 맞게 메모리가 분할 됨. 한 덩어리로 처리 가능하나 프로세스 종료 시 해당 메모리를 다른 프로세스가 사용할 때 공간이 애매해짐 → 통합하는 부가작업 필요
- 외부단편화 : 한번에 배치해야 하기 때문에 특정 프로세스가 할당받고 종료된 자리의 크기가 다음 프로세스가 들어올 정도가 안되면 조각들이 생기는 현상
- 최초 배치 : 프로세스를 메모리에서 적재 가능한 공간 중 처음으로 발견되는 곳에 배치
- 최적 배치 : 프로세스를 메모리에서 적재 가능한 공간 중 가장 작은 공간에 배치
- 최악 배치 : 프로세스를 메모리에서 적재 가능한 공간 중 가장 큰 곳에 배치 → 추가로 다른 프로세스가 들어올 확률이 높아짐
- 조각 모음 : 공간을 합치는 작업(프로세스 중단, 이동, 변경 등 오래 걸림)
- 버디 시스템 : 가변 + 고정을 합친 기법으로, 메모리를 1/2로 나누어 가며 메모리를 할당하고 프로세스가 종료되면 근접해 있는 빈 공간끼리 다시 합침
- 외부단편화 : 한번에 배치해야 하기 때문에 특정 프로세스가 할당받고 종료된 자리의 크기가 다음 프로세스가 들어올 정도가 안되면 조각들이 생기는 현상
- 고정 분할 방식(비연속 메모리 할당) : 프로세스 크기와 상관없이 같은 크기로 나뉨. 프로세스가 분산될 수 있음. 관리가 수월하나 나눈 크기보다 적은 프로세스가 배치될 경우 자원 낭비
- 내부단편화 : 특정 크기로 나뉜 메모리보다 작은 프로세스가 할당됐을 때 공간이 남는 현상 → 나누는 크기를 잘 조절
'CS > operation system' 카테고리의 다른 글
9. 가상 메모리 관리 (0) | 2021.10.06 |
---|---|
8. 가상 메모리의 기초 (0) | 2021.10.06 |
6. 데드락 (0) | 2021.10.06 |
5. 프로세스 동기화 (0) | 2021.10.05 |
4. CPU 스케줄링 (0) | 2021.10.05 |
Comments