[OSTEP] 18. 페이징: 개요 (Paging: Introduction)
외부 단편화를 해결하기 위한 고정 크기 메모리 관리 기법인 페이징(Paging)을 다룹니다. 가상 주소의 구조(VPN, Offset), 페이지 테이블의 역할과 PTE의 구성 요소, 그리고 페이징이 가져오는 속도와 공간의 문제점을 정리합니다.
Cover Image of the Post
[OSTEP] 17. 빈 공간 관리 (Free-Space Management)
외부 단편화 문제를 해결하기 위한 빈 공간 관리 기법을 상세히 다룹니다. 분할(Splitting)과 병합(Coalescing), 헤더(Header)를 통한 크기 추적, 프리 리스트(Free List) 임베딩, 그리고 버디 할당(Buddy Allocation) 등 다양한 전략을 정리합니다.
Cover Image of the Post
[OSTEP] 16. 세그멘테이션 (Segmentation)
내부 단편화를 해결하기 위한 세그멘테이션 기법을 상세히 정리합니다. 주소 변환 하드웨어의 동작 원리, 스택의 음수 방향 성장 처리, 그리고 새로운 문제점인 외부 단편화(External Fragmentation)와 그 해결책을 다룹니다.
Cover Image of the Post
[STM32MP25] BSP I/O 데모: 버튼 → BME280 → HTTP (Yocto/systemd)
STM32MP25(OpenSTLinux)에서 gpio-keys 버튼 이벤트로 BME280(IIO) 값을 읽어 HTTP로 전송하는 userspace 데모를 만들고, Yocto(meta-myboard) 레이어로 패키징해 systemd 서비스로 자동 실행까지 구성합니다.
Cover Image of the Post
[OSTEP] 15. 주소 변환의 원리 (Address Translation)
메모리 가상화를 구현하는 핵심 메커니즘인 주소 변환(Address Translation)을 다룹니다. 하드웨어 기반의 동적 재배치(Base and Bounds) 기법의 원리와 이를 지원하기 위한 OS와 하드웨어의 역할을 정리합니다.
Cover Image of the Post
[OSTEP] 14. 메모리 API (Memory API)
UNIX/C 환경에서의 메모리 할당 및 관리 방법을 정리합니다. 스택과 힙의 차이, malloc/free 사용법, 그리고 흔히 발생하는 메모리 오류(Memory Leak, Buffer Overflow 등)와 운영체제의 지원 메커니즘을 다룹니다.
[OSTEP] 13. 주소 공간의 개념 (The Abstraction: Address Spaces)
메모리 가상화의 기초. 초기 시스템부터 멀티프로그래밍을 거쳐 '주소 공간(Address Space)'이라는 핵심 추상화가 도입된 배경과 구조, 그리고 OS가 메모리를 가상화할 때 달성해야 하는 3가지 목표를 정리합니다.
Cover Image of the Post
[OSTEP] 10. 멀티프로세서 스케줄링 (Multiprocessor Scheduling)
싱글 코어에서 멀티 코어로 넘어오면서 생기는 문제(캐시 일관성, 동기화)와 이를 해결하기 위한 스케줄링 기법(SQMS vs MQMS)을 정리합니다. 리눅스 스케줄러(O(1), CFS)의 기반이 되는 아이디어를 다룹니다.
Cover Image of the Post