中庸
[System Programming] Vi Editor 명령어
시스템 프로그래밍 2022. 12. 19. 01:53

vi editor 명령모드 :q (quit) :q! (강제종료) :w (저장, write) :wq (저장 후 종료) :wq! (강제 저장 후 종료) 명령모드 상태에서 i 를 누르면 입력 모드로 진입함. 입력모드 상태에서 esc 를 누르면 명령 모드로 진입함. 명령모드에서 입력모드로 진입 시, i를 누르면 커서 앞에, a를 누르면 커서 뒤로 입력을 시작할 수 있음. 명령모드에서 입력모드로 진입 시, I(대문자 I)를 누르면 문장의 시작부분으로, A를 누르면 문장의 끝 부분에서 입력모드를 시작할 수 있음. 명령모드에서 0을 누르면 문장의 앞으로 이동함. 명령모드에서 $을 누르면 문장의 끝으로 이동함. 명령모드에서 w를 누르면 단어 단위로 이동할 수 있음. 명령모드에서 b를 누르면 역방향으로 단어 단위로 이동..

[System Programming] Linux 명령어
시스템 프로그래밍 2022. 12. 18. 12:53

cd (Change Directory) cd .. (이전 폴더로 이동) cd ~ (Home 디렉토리로 이동) cd / (Root 디렉토리로 이동) rm (remove) rm [파일이름 or 파일경로] rm -rf [폴더이름] ls (list) : 현재 디렉토리에 있는 파일을 보여줌 ps : 현재 실행되고 있는 프로세스를 보여줌. mkdir [폴더이름] : 현재 디렉토리 내에 폴더를 생성함. touch [파일이름 or 파일경로] : 현재 디렉토리 내에 파일을 생성함. mv (move) mv [변경 전 이름] [변경 후 이름] : 파일이름 변경 tar tar cvfz [압축 후 파일이름] [압축 전 디렉토리 or 파일경로] tar xvfz [압축해제 할 파일 이름] clear : 터미널 clear cat :..

article thumbnail
[Malloc Lab] LIFO 방식의 Explicit List (명시적 리스트)
시스템 프로그래밍 2022. 12. 4. 23:18

이번에는 Explicit List 방식으로 malloc / free 를 구현해보도록 하겠습니다. Introduction 에서 다뤘던 Explicit List 의 개념을 상기해보며 접근해봅시다. Explicit List 방식으로 다룰 때 가장 핵심은 Free Block 을 관리하는 Doubled Linked List 가 있다고 생각하는 것입니다. Free Block 중 가장 첫번째 가용 블럭은 prev로 NULL 을 가리키고 succ으로는 다음 free block 을 가리킵니다. 그리고 마지막 블럭의 succ 은 NULL을 가리킵니다. *prev = previous, succ = succeeding 그리고 LIFO 방식으로 가용블럭을 manage 할 것을 기억하며 가용블럭을 사용할 때는 가장 첫번째 fre..

article thumbnail
[Malloc Lab] Implicit List
시스템 프로그래밍 2022. 12. 4. 23:17

간접 리스트 방식으로 malloc, free 를 구현해보도록 하겠습니다. 간접 리스트 방식으로 구현하기에 앞서 Malloc / Free 를 구현할 때 유용한 매크로 변수, 매크로 함수, 메소드 들에 대한 설명을 첨부합니다. 먼저 mm_implicit.c 의 mm_init 메소드를 구현하겠습니다. mm_init 메소드는 동적 메모리 할당을 하기 위한 초기 힙 구조를 생성하는 메소드입니다. /* * Initialize: return -1 on error, 0 on success. */ int mm_init(void) { if ( (heap_listp = mem_sbrk(4*WSIZE)) == -1 ) // 초기 empty heap 설정 return -1; // heap_listp = 새로 생성되는 heap ..