일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 크래프톤정글4기
- User Stack
- 다익스트라
- 오블완
- 크래프톤 정글 4기
- 유니티
- 4기
- Unity
- 네트워크
- 전쟁-전투
- TiL
- 크래프톤정글
- pintos
- 추상클래스와인터페이스
- 알고리즘수업-너비우선탐색2
- 핀토스
- 이벤트 함수 실행 순서
- 알고리즘
- 파이썬
- BFS
- 연결리스트
- c#
- anonymous page
- 크래프톤 정글
- KRAFTON JUNGLE
- 백준
- project3
- kraftonjungle
- 티스토리챌린지
- C
Archives
- Today
- Total
말감로그
demand zero memory 본문
728x90
demand zero memory
demand zero memory는 필요할 때 (demand) 할당하고 0으로 초기화해주는(zero) 메모리를 말한다.
리눅스의 메모리 시스템은 매우, 최대한 게으른 방식으로 작동하도록 되어있다.
어떤 자원을 요청하거나 동작을 요청했을 때, 그것이 정말 필요해질 때까지 실제 자원을 할당하거나 동작을 실행하지 않는다는 것을 의미한다.
-> 메모리 사용 효율성이 향상되고, 시스템 자원을 절약할 수 있다.
즉, 우리(user program)가 kernel에게 메모리를 할당해달라고 요청하면(sbrk) kernel은 거의 아무것도 하지 않고(특정한 VM 영역이 할당되었다는 최소한의 표시만 해두고) 우리에게 할당이 끝났다고 알려준다.
-> 실제 메모리는 할당되지 않은 상태로 남아있게 됨.
이렇게 되면 유저는 메모리가 할당된 줄 알고 해당 주소에 뭔가를 쓰거나 읽을텐데, 처음 읽거나 쓰려고 하는 순간 실제 메모리(페이지)가 할당되어있지 않기 때문에 page fault가 발생할 것이고 그제서야 kernel은 사용하지 않는 메모리(페이지)를 할당하고 , 그 페이지를 0으로 채운 뒤에, 유저가 원래 하려고 했던 명령어를 다시 실행하게 된다.
따라서 "demand-zero memory"는 힙 영역이 초기화되지 않은 상태로 시작되어, 프로그램이 메모리를 필요로 할 때 실제로 사용되기 전까지 초기화되지 않은 상태를 유지하며, 메모리 사용 효율성을 높이는 것을 의미한다.
출처
728x90
'이론 > 운영체제' 카테고리의 다른 글
32 bit OS vs 64 bit OS (0) | 2024.03.11 |
---|---|
프로세스와 스레드/세마포어와 뮤텍스/CPU 스케줄링 알고리즘/경쟁조건(Race condition)/데드락/문맥교환 (2) | 2024.03.05 |
CPU 스케줄링 알고리즘(FCFS, SJF, Priority Queue, Round Robin, SRTF, MLQ, MLFQ), 4BSD,nice (3) | 2024.02.29 |
DMA(Direct Memory Access) (0) | 2024.02.15 |
가상메모리(Virtual Memory)와 페이징&세그먼트 (0) | 2024.02.15 |