03. Rate Limiter 설계
Rate Limiter의 개념과 알고리즘(token bucket, leaking bucket, fixed window, sliding window)을 다루고, 분산 환경에서의 설계까지 진행한 글입니다.
Rate Limiter의 개념과 알고리즘(token bucket, leaking bucket, fixed window, sliding window)을 다루고, 분산 환경에서의 설계까지 진행한 글입니다.
시스템 디자인 인터뷰에서 규모를 추정하는 방법과 면접을 효과적으로 풀어나가는 4단계 framework를 정리한 글입니다.
단일 서버 구성에서 시작해 수백만 사용자를 감당하는 시스템으로 점진적으로 확장하는 과정을 다룬 글입니다.
tar(ustar) 기반 파일 시스템 설계, fs_init/fs_flush 구현, readfile/writefile 시스템 콜 추가, SUM 비트 문제 해결까지 진행
virtio 프로토콜과 virtqueue 구조 이해, MMIO 레지스터 접근, virtio-blk 드라이버 초기화, 디스크립터 체인을 통한 I/O 요청 구현까지 진행
syscall 함수 구현, ecall 트랩 처리와 SYS_PUTCHAR/SYS_GETCHAR/SYS_EXIT 핸들러,간단한 셸 구현까지 진행
user.ld 링커 스크립트 작성, objcopy 빌드로 바이너리 임베딩, create_process 수정으로 유저 페이지 매핑, sret으로 U-Mode 전환까지 진행
페이징의 개념부터 시작해, Sv32 가상 주소 구조, map_page 구현, 커널 identity mapping, 컨텍스트 스위칭 시 satp 전환까지 진행
Bump Allocator로 페이지 할당을 구현하고, 프로세스 제어 블록(PCB), switch_context, 스케줄러(yield), 예외 처리기 수정까지 진행
예외 발생 시 CPU가 커널로 제어를 넘기는 과정을 살펴보고, kernel_entry와 handle_trap을 구현