메모리,memory

여기서 말할 메모리컴퓨터,computer의 주 기억 장치(primary memory), 주 저장 공간(primary storage)를 뜻함.
so compare: secondary_storage { 하드디스크 HDD, SSD 등등 }
rel 스토리지,storage

선형으로 일렬로 되어 있기도 하고 // flat_memory_model =,flat_memory_model =,flat_memory_model . flat_memory_model
{
flat memory model



Up: memory_model
}
Ex.
IA-64 defines a single, uniform, linear address space of 264 bytes.[1]

위 것들은
memory_model =,memory_model =,memory_model . memory_model ... pagename ? 메모리모형 ? 메모리모델 ? TBD
{
memory model
메모리모델 or 메모리모형 ....
기억장치모델 or 기억장치모형 ... <- too long


...
"memory model"
Ndict:memory model
Ggl:memory model
} // memory model


레지스터,register와의 자료,data 복사/이동/읽기/쓰기 정리예정.
메모리에 있는 것을 레지스터로 복사 : load
로드,load? 불러오기 ?
메모리의 자료를 레지스터에 있던 것으로 덮어쓰기 : store
스토어,store? 저장,store? 저장하기?
에 해당하는 instruction이 모든 cpu에 있다.

memory access = memory_access
메모리 접근 메모리접근 ... pagename TBD
memory_access =,memory_access =,memory_access . memory_access
{
접근, 액세스, access, ....

memory access


"memory access"
Ggl:memory access

Sub:
DMA,direct_memory_access 직접메모리접근 ?
uniform_memory_access (UMA)
UMA,uniform_memory_access ?
{
WtEn:uniform_memory_access ? mmmmmmmmmmmmmmmmm

공유메모리,shared_memory
병렬성,parallelism > parallel_computer
multiprocessor / multiprocessing

WpEn:Uniform_memory_access
= https://en.wikipedia.org/wiki/Uniform_memory_access
"is a shared_memory architecture used in parallel computers."
... Google:uniform memory access
}
////// 위아래둘비교 /////
non-uniform_memory_access (NUMA)
{
non-uniform memory access (NUMA)

병렬성,parallelism
multiprocessor / multiprocessing

Sub:
캐시 일관성 NUMA (ccNUMA)
Cache coherent NUMA (ccNUMA)
캐시,cache 캐시메모리,cache_memory
... Google:ccNUMA





kkkkkkkkkkkkkkkk
}

memory_hierarchy =,memory_hierarchy =,memory_hierarchy . memory_hierarchy
{
메모리위계 or 메모리계층




cache_memory
{
Bryant Computer Systems 책
6.4 Cache Memories 596
6.4.1 Generic Cache Memory Organization 597
6.4.2 Direct-Mapped Caches 599
6.4.3 Set Associative Caches 606
6.4.4 Fully Associative Caches 608
6.4.5 Issues with Writes 611
6.4.6 Anatomy of a Real Cache Hierarchy 612
6.4.7 Performance Impact of Cache Parameters 614
}

memory_map =,memory_map .
{
메모리 맵

입출력,IO에서도 중요.


공유메모리,shared_memory =공유메모리,shared_memory =,shared_memory 공유메모리 shared_memory
{
공유메모리 ?
외의 대안이 없는 듯. 2023-11-11

Ndict:공유메모리
Ndict:shared memory





shared+memory
}

가상메모리,virtual_memory
{
가상 메모리, 가상 기억 장치

이게 아마 역사적으로 물리적인 RAM 크기가 너무 작아서 hard_disk의 일부를 느린 메모리로 (스왑_영역,swap_space?) 사용해야만 했을 때 생긴?

MKLINK
compare hibernation


페이징
paging ... memory_paging =,paging .
{
Compare: (둘 다 일정한 크기의 메모리 블록)
페이지,page - 가상메모리를 일정한 크기로 나눈 블록 { WpKo:페이지_(컴퓨터_메모리) WpEn:Page_(computer_memory) }
프레임,frame - 물리메모리를 일정한 크기로 나눈 블록 - aka page frame ?[2]







메모리주소,memory_address - is a 주소,address
=메모리주소,memory_address =,memory_address 메모리주소 memory_address
{

memory_location 은 거의 같은 뜻인듯?
https://foldoc.org/memory location

C에서 변수의 메모리 주소 알아내기 - & 연산자

Python에서 객체의 메모리 주소 알아내기
>>> id(2)
4484212032
>>> hex(id(2))
‘0x10b47a540’





Sub:
manual_memory_management
{
WpEn:Manual_memory_management
}
automatic_memory_management
{

mark-and-sweep
세대,generation
...

GC:


garbage_collector =,garbage_collector . garbage_collector
{
garbage collector
너저분 수집기? 모으개?
WtEn:garbage_collector
WpEn:Garbage_collector ? -> 실제 쓰레기 수집 얘기. 맨 위에 WpEn:Garbage_collection_(computer_science)으로 안내함.
} // garbage collector .... Ggl:garbage collector NN:garbage collector

WpEn:
}

메모리 할당 memory allocation
메모리할당,memory_allocation Srch:memory_allocation
{
메모리 할당 memory allocation

Sub:


동적 메모리 할당 dynamic memory allocation
동적메모리할당,dynamic_memory_allocation Srch:dynamic_memory_allocation
{
dynamic memory allocation

free list / freelist
free_list or freelist
free_list =,free_list . free_list
freelist =,freelist . freelist
{
free list

WtEn:free_list
WpEn:Free_list
= https://en.wikipedia.org/wiki/Free_list
dynamic_memory_allocation 을 위한 자료구조,data_structure의 일종 / 메모리풀,memory_pool 사용
} // free list


C언어의 경우 malloc/free, C++의 경우 new/delete....

아래 둘 memory_management 로 옮길까?

C Dynamic memory management
https://en.cppreference.com/w/c/memory

C++ Dynamic memory management
https://en.cppreference.com/w/cpp/memory



... Google:dynamic.memory.allocation
"dynamic memory allocation"
} // dynamic memory allocation

buddy_memory_allocation =,buddy_memory_allocation . buddy_memory_allocation
{
buddy memory allocation


stack-based_memory_allocation (SBMA) |=,SBMA SBMA
{
stack-based memory allocation (SBMA)
WpEn:Stack-based_memory_allocation
Cmp: heap-based_memory_allocation (HBMA)
Up: 스택,stack 메모리할당,memory_allocation
"stack-based memory allocation"
Ggl:stack-based memory allocation
}

heap-based_memory_allocation =,HBMA HBMA
{
heap-based memory allocation (HBMA)


slab_allocation =,slab_allocation . slab_allocation
{

REL. [[slab_allocator

WtEn:slab_allocation x 2023-08-21
WpEn:Slab_allocation
= https://en.wikipedia.org/wiki/Slab_allocation
...
Ndict:slab allocation x 2023-08-21
Bing:slab allocation
Google:Slab allocation
} // slab allocation .... 혹시 slab memory allocation 도 완전동의어인지


coalescing / fragmentation / ....
coalescing fragmentation ...
=,coalescing =,fragmentation ....
{
// wt coalescing -> wt coalesce = https://en.wiktionary.org/wiki/coalesce : 뭉치다, join, merge, combine, ... (coalition n. 연합체, 연합 생각)
// fragmentation - opp. defragmentation



WpKo:통합과_집약
= https://ko.wikipedia.org/wiki/통합과_집약
"통합(coalescing)이란 기억공간 내에 인접한 둘 이상의 공백을 그들 사이의 경계를 없애고 하나의 공백으로 합치는 것이다."
"집약(compaction)이란 기억공간 내에 섞여있는 사용중인 영역과 빈 영역을 각각 한쪽으로 몰아 빈 영역들을 하나로 모으는 것이다. 디스크 조각 모음"

WpKo:단편화
= https://ko.wikipedia.org/wiki/단편화



(이건 memory뿐 아니라 다른 기억장치 storage에도 해당되는 얘기)
}

The Cost of Software-Based Memory Management Without Virtual Memory // 가상메모리,virtual_memory 없이
https://arxiv.org/abs/2009.06789
https://news.ycombinator.com/item?id=24503773



Up: 메모리,memory 자원관리 resource_management 자원할당/자원배정 resource_allocation (curr at 자원,resource)
}



memory_protection =,memory_protection =,memory_protection . memory_protection
{
메모리보호

MKLINK
memory_safety =,memory_safety =,memory_safety . memory_safety { 메모리보안 ? 메모리안전성 ? WtEn:memory_safety memory safety Ndict:memory safety x Naver:memory safety Bing:memory safety Ggl:memory safety "memory safety" }




memory_leak =,memory_leak =,memory_leak . memory_leak
{
memory leak

Sub" memory_leak_detection =,memory_leak_detection =,memory_leak_detection . memory_leak_detection { memory leak detection WpEn:Memory_leak_detection redir to https://en.wikipedia.org/wiki/Memory_debugger Naver:memory leak detection Ggl:memory leak detection "memory leak detection" }




memory_dump ~= core_dump
{
프로세스,process의 에러가 걸린 마지막 상황이 그대로 파일,file로 저장된? 그 파일? data?
디버거,debugger 디버깅,debugging을 위한 snapshot ?





WpKo:메모리_풀
WpEn:Memory_pool
= https://en.wikipedia.org/wiki/Memory_pool
"Memory pools, also called fixed-size blocks allocation, is the use of pools for memory management that allows dynamic memory allocation."
... Google:memory.pool


alignment
memory_alignment
memory_address_alignment / offset alignment
{
메모리주소,memory_address의 alignment.

구조체,struct / 배열,array / ...등 각종 collection 타입,type이나 (rel. padding) (- 이때는 공간)
cpu의 memory_access time( - 이때는 시간)
에서 중요한 주제임.


RAM =,random_access_memory =,RAM . random_access_memory RAM
{
random access memory

https://en.wiktionary.org/wiki/random_access_memory
AKA
https://en.wiktionary.org/wiki/random-access_memory

http://www.linfo.org/ram.html

Up: random_access 메모리,memory
} // random access memory ... Ggl:random access memory

DRAM =,DRAM . DRAM
{
DRAM
https://en.wiktionary.org/wiki/dynamic_random_access_memory#English

Up: 메모리,memory
} // DRAM ... Ndict:DRAM Ggl:DRAM

SDRAM =,SDRAM . SDRAM
{
DRAM : operates asynchronously with the system clock
SDRAM : operates synchronously with the system clock
} // SDRAM ... Ndict:SDRAM Ggl:SDRAM

SRAM =,SRAM . SRAM
{
SRAM

Up: 메모리,memory
} // SRAM ... Ndict:SRAM Ggl:SRAM

bubble_memory =,bubble_memory . bubble_memory
{
bubble memory
버블메모리 ?


플래시메모리 ?
flash_memory =,flash_memory =,flash_memory . flash_memory
{
flash memory
https://en.wiktionary.org/wiki/flash_memory
http://www.linfo.org/flash_memory.html
} // flash memory ... Ndict:flash memory Ggl:flash memory

distributed_memory =,distributed_memory . distributed_memory
{
distributed memory
분산메모리 ?

of
분산시스템,distributed_system / 분산컴퓨팅,distributed_computing



WtEn:distributed_memory x 2024-03-06
} // distributed memory ... Ndict:distributed memory Ggl:distributed memory

페이지,page운영체제,OS가 사용하는 메모리의 단위이다.

허용되지 않는 메모리 주소,address(메모리주소,memory_address)에 접근,access하는 것은 잘못된 행동으로서, 커널,kernel은 이런 프로세스,process를 강제로 종료시키고 코어_덤프,core_dump를 만드는 등의 행동을 한다.

메모리 특정 주소(메모리주소,memory_address)에 읽고 써서 입출력,IO를 하기도 한다. TBW: memory mapped I/O
{
https://foldoc.org/memory mapped I/O
}


C언어 메모리 관련 함수
{

}


도스,DOS
기본 메모리(Conventional memory) // conventional_memory =,conventional_memory . conventional_memory
{
0 KB - 640 KB

https://en.wiktionary.org/wiki/conventional_memory
}
UMA,upper_memory_area
{
상위 메모리 영역
640 KB - 1024 KB (0xA0000–0xFFFFF)
upper memory blocks UMBs


EMS,expanded_memory
{
EMM386
http://wiki.freedos.org/wiki/index.php/Emm386
JEMM386
http://wiki.freedos.org/wiki/index.php/JEMM386
}
XMS,extended_memory
{

}
중첩 확장 메모리 규격 - EMS
연속 확장 메모리 규격 - XMS


DMA,direct_memory_access
{
이건 cpu에 부담을 주지 않기 위한? 성능을 위해?

비교:
PIO


CAM // =,CAM . CAM
content-addressable_memory
content_addressable_memory
연관 메모리(associative_memory), 연관기억장치 // =,associative_memory =,associative_memory . associative_memory
{
연관메모리
연관기억장치

내용주소화 메모리
내용주소화 기억장치 (내 직역) (보니 wpko도 그렇게 했음)

btw
연상 기억장치(associative memory) 라는 번역도 보이고 ... https://terms.naver.com/entry.naver?docId=2073343&cid=44414&categoryId=44414
내용 주소 기억장치(CAM) ... (저기서의 번역)
(Quote: "연상 기억장치(associative memory): 연상 기억장치는 순차적 컴퓨터에서 내용 주소 기억장치(CAM: Content Address Memory)라고도 하는데, 기억장치에 기억된 정보에 접근하기 위하여 주소를 사용하는 것이 아니라, 기억된 정보의 일부분을 이용하여 원하는 정보가 기억된 위치를 알아낸 후 그 위치에서 나머지 정보에 접근할 수 있는 기억장치이다.")

근데 연관이 더 낫지 않을지?


MKLINK
tuple_space - // curr at VG:튜플,tuple



"associative memory" Ndict:associative memory Ggl:associative memory
"content-addressable memory" Ndict:content-addressable memory Ggl:content-addressable memory
} // CAM = content-addressable memory = associative memory


base_memory =,base_memory . base_memory
{
base memory


...
"base memory"
Naver:base memory Ggl:base memory
} // base memory

unreachable_memory =,unreachable_memory =,unreachable_memory . unreachable_memory
{


Rel: unreachable_object? 정확한 관계가?
참고로 unreachable_objectgarbage_collection / garbage_collector의 관심을 끎...


ADDHERE
ADDHERE
ADDHERE
ADDHEREmemorySUBTOPICS
ADDHEREmemorySUBTOPICS
ADDHEREmemorySUBTOPICS

misc?

(misc?)
메모리 크기/한계/...
memory_size
memory_limit
memory_size_limit
tmp bmks ko:
{
컴퓨터인터넷IT용어대사전 메모리 한계 https://terms.naver.com/entry.naver?docId=829079&cid=42344&categoryId=42344
}

기타, 밀접한 관련

MKLINK



저장장치 저장공간 스토리지 storage
{
http://www.linfo.org/storage.html
}


out of memory error/exception


.NET : System.OutOfMemoryException class
OutOfMemoryException 클래스 (System) | Microsoft Learn
https://learn.microsoft.com/ko-kr/dotnet/api/system.outofmemoryexception?view=net-8.0


bmks en