CS

CS

Network Programming : Soket - BeAPro

Soket이란? 소켓은 프로세스가 네트워크로 데이터를 주고 받는 창구 역할을 하며 Unix, Window, Max 등 대부분의 현대 시스템에 내제되어있다. 리눅스 커널의 관점에서 본다면 소켓은 통신을 위한 끝점(endpoint)이다. Endpoint는 아이피 주소와 포트 번호의 조합으로 구성되어져 있다. 소켓은 endpoint를 통해 유일하게 식별되어질 수 있다. 두 소켓이 연결되면 서로 다른 프로세스끼리 데이터를 주고 받을 수 있다. Soket Address Structures /* IP socket address structure */ struct sockaddr_in { uint16_t sin_family; /* Protocol family (always AF_INET) */ uint16_t sin..

CS

Malloc : Implicit Allocator, Explicit Allocator - BeAPro

동적 메모리 할당 동적 메모리 할당기는 heap이라고 하는 프로세스의 가상메모리 영역을 관리한다. 시스템마다 다르지만 일반적으로 stack은 낮은 영역으로, heap은 높은 영역으로 주소를 확장한다. kernel은 변수 brk를 사용하여 heap의 꼭대기를 가리킨다. 프로그램을 실제로 실행시키기 전에 자료 구조의 크기를 알 수 없는 경우가 많다. 따라서 임의의 큰 값 할당하기보다는 런타임 중 필요한 크기를 알게 되었을 때 할당해 주는 동적할당 방식이 매우 효율적이다. 할당기의 요구사항과 목표 요구사항 임의의 요청 순서 처리하기 요청에 즉시 응답하기 힙만 사용하기 블록 정렬하기 할당된 블록을 수정하지 않기 목표 처리량 극대화하기 메모리 이용도를 최대화하기 할당기를 구현하기 전에 알아둬야 할 점 malloc..

BeAPro
'CS' 카테고리의 글 목록