Category OS

리눅스 CPU 스케줄러는 MLFQ가 아니라 EEVDF다

CPU 스케줄링을 배우면 FIFO에서 시작해 SJF, 라운드 로빈을 거쳐 MLFQ에서 끝난다. 각 알고리즘이 앞 알고리즘의 단점을 하나씩 메우는 흐름이라 이야기가 깔끔하고, 마지막에 “오늘날 운영체제는 MLFQ를 쓴다”로 닫히면 정리가 된다 리눅스 CPU 스케줄러는 그 목록에 없다. 2.6.23부터 CFS(Completely Fair Scheduler)를 썼고,…

프로세스 생성 비용은 메모리가 아니라 페이지 테이블에서 나온다

리눅스의 fork는 부모 프로세스의 메모리를 복사하지 않는다. 코드 영역도 데이터 영역도 힙도 복사하지 않고, 부모와 자식이 같은 물리 페이지를 함께 가리키게 해 둔 다음 누군가 쓰기를 시도할 때 그 페이지만 복사한다. Copy-on-Write다 그렇다면 512MiB를 쥐고 있는 프로세스를 fork하는 비용과 아무것도…

운영체제 부팅 과정은 BIOS가 아니라 UEFI에서 시작한다

전원 버튼을 누르면 ROM에 저장된 BIOS가 실행되고, 하드웨어를 점검한 뒤 하드디스크 첫 섹터의 마스터 부트 레코드에서 부트로더를 읽어 메모리로 올린다. 나도 이 순서로 외웠고 면접에서도 이렇게 답했다. 그런데 지금 팔리는 PC에는 이 경로가 없다 Intel은 2020년까지 클라이언트와 데이터센터 플랫폼에서 레거시…

SSL 인증서 자동 갱신 실패를 두 달 동안 아무도 몰랐다

금요일 낮 12시쯤에 카톡이 왔다. 기 개발사로부터 파일을 인계받아 이관한 고객사 사이트 두 곳에서 블로그·고객후기 등 전부 사라졌다는 신고였다. 화면은 그대로라고 했다 (혹시) DB가 날아간 걸 먼저 의심했다. 그게 아니었다. 원인은 25일 전에 만료된 SSL 인증서였고 데이터는 한 건도 유실되지…