반응형
안녕하세요.
이번 포스팅 부터는 리눅스의 메모리 관련된 내용을 다뤄보려 합니다.
양이 너무 많고, 모르는 부분이 많아 조금씩 올릴 것 같아요.
1. 메모리 가상화
- 물리 메모리를 OS가 가상화 -> 사용자/프로그램은 논리 메모리 공간을 사용
- 각 프로세스는 할당 받은 메모리 공간을 사용
2. 메모리 가상화의 목표
- 프로그램이 메모리를 손쉽게 사용
- 투명성 (transparency) : 실행 중인 프로그램이 가상 메모리의 존재를 인식하지 못하도록 구현 되어야 함
- 효율성 (efficiency) : 시간과 공간 측면에서 효율적이어야 함
- 보호 (protection) / 고립 ( isolate) : 각각의 프로세스를 고립 시켜 서로 침범하지 못 하도록 보호
3. 메모리 관련 API
1) malloc() : 힙에서 요청 된 크기를 할당
2) free() : 할당된 메모리를 해제
4. 메모리 관련 API 사용 시 문제 상황
- 세그멘테이션 폴트 : 메모리를 잘못 사용하는 경우 (ex : 할당 받지 않은 메모리를 사용 하려고 할 때)
- 오버플로우 : 할당 받은 메모리보다 크게 사용하려고 할 때 발생
- Uninitialize : 할당 받은 메모리를 초기화 하지 않음
- Memory leak : 사용이 완료된 메모리 해제를 하지 않아 여유 메모리가 줄어드는 현상
- Dangling Pointer : 메모리 사용이 끝나기 전 ree
- Invalid Frees : 할당 받지 않은 메모리에 대한 해제 시도
반응형
'Computer Study > OS' 카테고리의 다른 글
[OS Study] 3-3. 세그멘테이션 (Ch. 16) (0) | 2021.12.10 |
---|---|
[OS Study] 3-2. 메모리 주소 변환 (Ch. 15) (0) | 2021.07.30 |
[OS Study] 2-2. CPU 스케쥴링 (Ch. 6~11) (0) | 2021.07.02 |
[OS Study] 2-1. CPU 가상화 - 프로세스 (Ch. 4~5) (0) | 2021.06.21 |
[OS Study] 1. 운영체제 개요 (Ch. 1~2) (0) | 2021.06.19 |