for Robot Artificial Inteligence

3. Essential concept (Data Structure, Static and Dynamic Allocation)

|

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