C 언어는 F1 자동차와 같다. 엄청나게 빠르지만, 아무나 운전할순 없다. 리스트를 선언하면 가상머신으로 메모리를 알아서 할당하고 찾아주는 파이썬과 같은 언어와 달리, 우리의 츤데레 C는 직접 리스트의 원소들을 연결해주어야 한다.파이썬으로 프로그래밍을 처음 접했던 나로
Linked list 본격적인 링크드 리스트에 들어가기에 앞서 그림으로 간략히 설명해보고자 한다. (가상 메모리 상에서 물리적으로 붙어 있는 데이터그림들. 사이에서 next 포인터를 이용해 연결한 링크드 리스트 그림. 2개) 개념상으로는 그닥 어려울것 없어보인다.
지난번 링크드 리스트의 기초를 다루는 포스트에서 짤막하게 다뤘었던 '동적 메모리 할당'을 가능하게 만들어주는 할당기(allocator)를 만들어보려한다. 기본적으로 동적으로 메모리를 'Heap'에 할당하기위해 실제로 system call로서 malloc 이 어떻게 작동
우선 gdb 를 설치한다. ubuntu 터미널에서 다음 명령어를 입력하면 된다. 내가 테스트 하고 싶은 파일들이 있는 폴더 (내 경우에는 /pintos/threads/build) 에 들어가서 원래 핀토스 테스트를 실행할때 쓰는 명령어는 였다면 이걸 gdb로 실행하
Basic 레지스터 이름 앞에 %를 붙여서 레지스터를 나타낼 수 있다. (%eax)와 %eax는 엄연히 다른 역할을 한다. 괄호가 붙으면 해당레지스터에 메모리 주소가 들어있고, 그 메모리 주소가 가리키는 값을 나타낸다. 즉, 포인터다. 어셈블리 언어에서 사용