Linux 시스템 프로그래밍 핵심 기술 및 사례

시스템 프로그래밍 기본 개념 커널 공간과 사용자 공간 Linux 메모리 영역은 시스템 보안을 위해 두 영역으로 구분됩니다: 영역권한주요 기능 커널 공간높은 권한(Ring 0)하드웨어 관리, 프로세스 스케줄링, 메모리 할당 사용자 공간낮은 권한(Ring 3)응용 프로그램 실행, 직접 하드웨어 접근 불가 사용자 프로그램은 시스템 호출(System Call)을 통해 커널 서비스 요청 ...

7월 22일 19:41에 게시됨

멀티스레드와 뮤텍스 락 이해

1. 멀티스레드 이론 1.1 스레드 정의 운영체제에서 각 프로세스는 독립적인 메모리 공간을 갖는다. 기본적으로 모든 프로세스는 하나의 제어 스레드(主线程)를 포함한다. 프로세스는 자원 집합으로 간주되며, 스레드는 CPU에서 실행되는 단위이다. 멀티스레드는 하나의 프로세스 내에 여러 제어 스레드가 존재하는 개념으로, 해당 프로세스의 주소 공간을 공유한다. 예시 ...

7월 18일 09:29에 게시됨

Go 프로세스 메모리 사용량 분석 (1부)

왜 이 문제를 파헤쳐야 할까? 인프라 제공자로서 우리 서비스가 얼마나 많은 메모리를 사용하는지, 왜 그만큼 사용하는지 명확히 설명할 수 있어야 한다. 클라우드 개발자라면 이 정도 문제는 당연히 이해하고 있어야 한다. § 0x01 범위 실용성을 고려하여 Linux X86 플랫폼만 다룬다. 메모리 페이지 크기는 4KiB이다. 목표: 대규모 Go 프로세스의 메모리 소비 지점을 명 ...

7월 7일 03:10에 게시됨