OS
글 7개
번역도 공짜가 아니다
페이지 테이블은 메모리에 있습니다. 그러니 표를 보는 것도 메모리 접근입니다. CPU 가 TLB 를 두고 표를 네 단계로 쪼갠 이유와, 그 값이 게임에서 어디에 나타나는지 봅니다.
시간을 재는 것도 공짜가 아니다
시계는 두 개이고 쓰임이 다릅니다. 1밀리초를 자라고 하면 1밀리초 뒤에 깨지도 않습니다. 프레임을 일정하게 내보내려고 할 때 어디서 어긋나는지 봅니다.
커널에 들어갔다 나오는 값
페이지 폴트도 스레드 전환도 파일 읽기도 전부 같은 문을 지납니다. 사용자 모드에서 커널 모드로 넘어가는 그 문이 얼마인지, 그리고 돌아온 뒤가 왜 더 비싼지 봅니다.
프로세스와 스레드, 그리고 갈아 끼우는 값
스레드를 바꾸는 것과 프로세스를 바꾸는 것은 값이 다릅니다. 무엇을 갈아 끼우는지, 갈아 끼운 뒤에 왜 한동안 느린지, 그래서 워커를 몇 개나 만들어야 하는지 봅니다.
램이 느려서 캐시가 생겼다
CPU 는 한 사이클에 일하는데 램은 수백 사이클 걸립니다. 그 사이를 메우려고 생긴 것이 캐시이고, 캐시가 기대는 것이 지역성입니다. 계층이 몇 단이고 각 단이 얼마인지부터 봅니다.
페이지 폴트는 오류가 아니지만 프레임은 흔든다
가상 주소가 물리 주소로 번역되는 과정과, 그 번역이 빗나갔을 때 OS 가 하는 일. 그 멈춤이 16.6밀리초짜리 프레임 예산에서 얼마나 큰지까지 봅니다.
가상 메모리는 램이 모자라서 나왔지만 남은 이유는 따로 있다
오버레이를 손으로 짜던 시절부터 1962년 아틀라스까지. 메모리가 모자라서 만든 장치가 왜 램이 남아도는 지금까지 모든 OS 의 바닥에 남아 있는지 봅니다.