3. Essential concept (Data Structure, Static and Dynamic Allocation)
01 Jun 2020 | Algorithm
Data structure
- Data Structure
- Data Base
- Big Data
Detail program execution procedure 1
Detail program execution procedure 2
Static vs Dynamic Memory Allocation
- About Main memory
- how a Program use memory
- static Allocation
- Dynamic Allocation
- suppose this block shown a memory. so the memory is divided into smaller addressable.
- memory unit that are called as bytes. so memory is divided into bytes.
- every bytes is having its address
- 만약 위와 같이 여러 Memery cell이 있다면
- total number of bytes 는 65536이다.
- 65536 = 64 * 1024 = 64Kb
Main Memory and how a program use memory
- Main Memory로 옮겨가는 Programming code들은 전부 컴파일러가 되어서 machine Code 형태이다.
Static Allocation
void fun2(int i)
{
int a; // 4bytes
}
void fun1(int x)
{
int k = x;
fun2(k)
}
int main()
{
int a;
int b;
fun1(a);
}
- local function {} bracket이 끝날때 마다 즉 lcoal function이 끝날때마다 Stack에 쌓여 있는 해당 function들은 deallocate가 된다.
Dynamic Allocation
int main()
{
int* p; // 4bytes
p = new int[5];
p = nullptr;
}
-
Heap Memory에 행렬 5array를 만들고 stack에서 바로 heap memory를 access 할 수 없기 때문에 pointer를 이용하여서 access 한다.
-
Static Memory는 Heap Memory보다 Compile빠르다 그 이유는 static memory는 사용자가 지정한 사이즈만큼만 작동하기 때문에 compile이 빠르게 이뤄진다.
-
반면에 Dynamic Memory 같은 경우 프로그램마다 size가 달라지므로 stack에 있는 포인터가 Heap에 있는 Memory를 Access하는데 시간이 걸리고 컴파일하는데 시간이 걸리므로 상대적으로 늦다.
Data structure
- Data Structure
- Data Base
- Big Data
Detail program execution procedure 1
Detail program execution procedure 2
Static vs Dynamic Memory Allocation
- About Main memory
- how a Program use memory
- static Allocation
- Dynamic Allocation
- suppose this block shown a memory. so the memory is divided into smaller addressable.
- memory unit that are called as bytes. so memory is divided into bytes.
- every bytes is having its address
- 만약 위와 같이 여러 Memery cell이 있다면
- total number of bytes 는 65536이다.
- 65536 = 64 * 1024 = 64Kb
Main Memory and how a program use memory
- Main Memory로 옮겨가는 Programming code들은 전부 컴파일러가 되어서 machine Code 형태이다.
Static Allocation
void fun2(int i)
{
int a; // 4bytes
}
void fun1(int x)
{
int k = x;
fun2(k)
}
int main()
{
int a;
int b;
fun1(a);
}
- local function {} bracket이 끝날때 마다 즉 lcoal function이 끝날때마다 Stack에 쌓여 있는 해당 function들은 deallocate가 된다.
Dynamic Allocation
int main()
{
int* p; // 4bytes
p = new int[5];
p = nullptr;
}
-
Heap Memory에 행렬 5array를 만들고 stack에서 바로 heap memory를 access 할 수 없기 때문에 pointer를 이용하여서 access 한다.
-
Static Memory는 Heap Memory보다 Compile빠르다 그 이유는 static memory는 사용자가 지정한 사이즈만큼만 작동하기 때문에 compile이 빠르게 이뤄진다.
-
반면에 Dynamic Memory 같은 경우 프로그램마다 size가 달라지므로 stack에 있는 포인터가 Heap에 있는 Memory를 Access하는데 시간이 걸리고 컴파일하는데 시간이 걸리므로 상대적으로 늦다.
Comments