
소켓 인터페이스 기반 응용프로그램
참고 자료 Section 11 - Randal Bryant - 윤성우
- 네트워크
- · 2024. 7. 16.
다시 만난 C언어... 못할 건 없다탐험 준비 🧭 생각해볼 것 & 암기할 것C에서는 배열과 스택과 같은 소수의 자료구조만 사용 가능어셈블리어를 기계어로 돌려보기malloc을 사용하지 않는 방법은 무엇이 있을까?메모리를 할당하는 영역 3가지는?→ 코드(Code) 영역: 프로그램 코드가 저장되는 영역으로 실행할 수 있는 기계어 코드가 저장된다. 이 영역은 읽기 전용이며, 코드를 실행하는 데 필요한 명령어와 데이터가 저장된다.→ 데이터(Data) 영역: 전역 변수와 정적(static) 변수가 저장되는 영역이다. 이 영역은 초기화된 데이터와 초기화되지 않은 데이터로 구성된다.→ 스택(Stack) 영역: 지역 변수, 함수의 매개 변수, 반환 값 및 함수 호출 정보가 저장되는 영역이다. 이 영역은 후입선출(LIF..
참고 자료 Section 11 - Randal Bryant - 윤성우
서론새롭게 할당된 블록을 배치하기 위한 가용 블록을 선택하는 방법에는 first-fit, next-fit, best-fit 등이 있습니다. GeeksforGeeks>☝🏻 first-fit: 처음부터 탐색하고 크기가 맞는 첫 가용 블록을 선택한다.static void *first_fit(size_t asize){ void *bp; for (bp = heap_listp; GET_SIZE(HDRP(bp)) > 0; bp = NEXT_BLKP(bp)) { if (GET_SIZE(HDRP(bp)) >= asize && (!GET_ALLOC(HDRP(bp)))) { return bp; } } return NULL;}힙의 시작부터,..
서론동적 메모리 할당을 할 때 가용 리스트를 구성하는 방법에는 묵시적 가용 리스트(implicit), 명시적 가용 리스트(explicit), 분리 가용 리스트(segregated), 버디 시스템(buddy system) 등이 있습니다. 본문에서는 이 중 명시적 가용 리스트(explicit)를 사용한 동적 메모리 할당을 설명합니다.implicit에서 수정한 코드이기 때문에 수정되지 않은 코드는 설명을 적지 않습니다. 이전 게시글에 자세한 설명이 있습니다.explicit에서 블록의 구성implicit에서 사용한 블록과 달리 explicit에서는 가용 블록에 가용리스트의 다음 블록을 가리키는 Next와 이전 블록을 가리키는 Prev 포인터가 추가되어 있다.정의 & 선언#define GET_NEXT(bp) (*..
서론동적 메모리 할당을 할 때 가용 리스트를 구성하는 방법에는 묵시적 가용 리스트(implicit), 명시적 가용 리스트(explicit), 분리 가용 리스트(segregated), 버디 시스템(buddy system) 등이 있습니다. 본문에서는 이 중 묵시적 가용 리스트(implicit)를 사용한 동적 메모리 할당을 설명합니다.implicit에서 블록의 구성블록엔 데이터(+패딩) 앞 뒤에 헤더와 푸터가 있다. 헤더와 푸터는 같은 값으로 안에는 블록의 크기(헤더와 푸터를 포함한)와 할당 정보가 들어있다.🤔 푸터(footer)는 왜 있어야 할까?푸터는 경계 태그(boundary tag)로 이전의 헤더 블록을 찾기 위해서 존재한다. 푸터가 없다면 헤더를 통해 할당 정보를 확인해야 하는데, 거꾸로 훑고 가면..
서론C언어를 공부하다보면 malloc(), calloc(), realloc()이라는 함수를 사용하여 동적 메모리 할당을 합니다. 그럼 동적 메모리 할당은 무엇이며 어떻게 이루어지는 걸까요? '동적 메모리 할당'이란 프로그램 실행 중에 필요한 메모리를 힙(heap, 보통은)에 할당하는 것입니다.📝 그렇다면 힙이란 무엇인가?힙은 가상 주소 공간(virtual address space)에서 데이터 영역(data segment)과 코드 영역(code segment) 사이의 영역으로 동적으로 할당된 데이터를 저장하는 영역입니다.* 힙의 꼭대기를 brk ptr라고 합니다.🤔 그럼 동적 메모리 할당이 왜 필요한 것인가?가장 중요한 이유는 종종 프로그램을 실제 실행시키기 전에는 자료 구조의 크기를 알 수 없는 경우..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.