← 실계산 조각
이 조각의 상수를 인쇄한 회사들● 시세 불러오는 중

기준일을 100으로 놓고 그린 선입니다. 통화가 서로 달라 지수로 겹쳤습니다.

주가는 위 계산과 무관합니다. 화면의 숫자는 데이터시트와 10-K 인쇄값에서만 나옵니다.
실계산 조각 · 가상메모리

‘40만 번에 한 번’은
디스크 시대의 숫자다

운영체제 교과서에는 오래된 규칙이 하나 있습니다 — 성능 손해를 10% 안에 두려면 페이지 폴트가 40만 번에 한 번 아래여야 한다. 그 숫자는 메모리 200 ns · 디스크 8 ms였던 시절에 계산된 것입니다. 같은 식에 오늘의 SSD 값을 넣으면 그 선이 104배 느슨해집니다. 나눗셈 하나가 시대를 가릅니다.

② 폴트율을 조금 키우면 — 절벽의 모양가로 = 폴트 확률(로그) · 세로 = 실효 접근시간(로그) · 위 판과 같은 식

손잡이

“메모리를 찾았는데 없어서 저장장치까지 다녀와야 하는” 비율입니다. 이게 주 손잡이입니다.

저장장치 — 폴트 한 번의 값

기본 80 ns는 가정입니다. 32 ns 자리만 인쇄값입니다 — 마이크론 DDR5 문서의 tRCD 16 + tAA 16. CPU가 캐시를 지나 실제로 느끼는 값을 인쇄한 1차 문서는 찾지 못했습니다.

트랩·페이지테이블 갱신·I/O 제출·인터럽트 몫. ★표준 인쇄값이 없어 기본을 0으로 두었습니다 — 그래야 화면의 기본 숫자가 전부 인쇄값에서만 나옵니다.

★위 버튼이 이 조각의 검산 장치입니다. 누르면 이 화면이 40년 된 교과서 숫자를 그대로 재현합니다 — 8.2 µs, 41배, 399,990번에 한 번. 그다음 손잡이를 오늘 값으로 되돌려 보십시오.

실효 접근시간
느려짐 배수
몇 번에 한 번 폴트인가
허용 폴트율

무서운 건 폴트율이 아니라 나눗셈이다

가상메모리는 한 줄로 굴러갑니다 — 메모리에 없으면 저장장치에서 가져온다. 그 한 줄의 값은 가중평균 하나로 다 계산됩니다.

T = t장치 + tOS  폴트 한 번의 총 서비스 시간
EAT = (1 − p) · t메모리 + p · T  실효 접근시간
S = EAT ÷ t메모리 = 1 + p · (T/t메모리 − 1)  ← ★여기 있는 나눗셈이 전부다
pmax = d · t메모리 ÷ (T − t메모리)  성능저하 d 이내를 지키는 최대 폴트율

세 번째 줄을 보십시오. 느려짐은 p에 비례하지만, 비례상수가 T/t메모리입니다. 이 비율이 10만 배면 p가 0.1%만 돼도 컴퓨터가 105배 느려집니다. 같은 p인데 이 비율이 1,000배면 겨우 2배 느려집니다.

그래서 “폴트율이 0.1%만 돼도 수십 배 느려진다”는 말은 하드디스크에서는 참이고 NVMe에서는 거짓입니다. 손잡이로 확인해 보세요 — 폴트율을 천 번에 한 번으로 놓고 저장장치만 바꾸면 105배 → 3.1배 → 2.0배로 떨어집니다.

이 화면이 교과서 숫자를 그대로 뱉는다

위 손잡이 밑의 ‘교과서 판’ 버튼을 누르면 메모리 200 ns · 폴트 서비스 8 ms · 허용 10% · 천 번에 한 번으로 맞춰집니다. 그러면 계기가 이렇게 뜹니다.

pmax = 0.10 × 200 ÷ (8,000,000 − 200) = 0.0000025001
  → 399,990번에 한 번  교과서 인쇄값 399,990 — 자리 하나까지 같다

EAT = 0.999 × 200 + 0.001 × 8,000,000 = 8,199.8 ns = 8.2 µs
S = 8,199.8 ÷ 200 = 41.0배  교과서 인쇄값 “8.2 µs · 40배”

식은 검증됐습니다. 그러니 이제 손잡이를 오늘 값으로 되돌려도 됩니다 — 같은 식, 다른 상수, 다른 세계.

이 교과서 값은 1차 확인을 못 했습니다. 숫자(200 ns · 8 ms · 399,990 · 8.2 µs · 40배)는 대학 강의노트 두 곳에서 서로 일치하는 것을 대조했지만, 원서를 직접 열어 판·쪽을 확인하지는 못했습니다. 그래서 이 조각의 어떤 계산도 이 값에 의존하지 않습니다 — 대조용으로만 씁니다.

같은 규칙, 104배 다른 답

허용 폴트율을 장치별로 뽑으면 이 조각의 결론이 한 표에 들어옵니다 (메모리 80 ns · OS 몫 0 · 허용 10% 기준).

폴트가 떨어지는 곳한 번의 값10% 지키는 한계선천 번에 한 번이면
교과서 (200 ns / 8 ms 시절)8 ms399,990번에 한 번41.0배
하드디스크8.33 ms1,041,240번에 한 번105.1배
SATA SSD170 µs21,240번에 한 번3.1배
NVMe SSD80 µs9,990번에 한 번2.0배

하드디스크 → NVMe로 갈 때 한계선이 1,041,240 → 9,990, 정확히 104.2배 느슨해집니다. 같은 값을 다른 길로 확인해 볼 수 있습니다 — 서비스 시간의 비가 8,330,000 ÷ 80,000 = 104.1배입니다. 두 경로가 같은 답을 줍니다.

이게 왜 예전엔 스왑이 켜지면 컴퓨터를 껐다 켜야 했는데 지금은 스왑이 켜진 줄도 모르고 쓰는지에 대한 답입니다. 운영체제는 하나도 안 바뀌었습니다. 밑에 깔린 물건이 바뀌었을 뿐입니다.

★그리고 이 조각의 모델은 하드웨어 격차를 소프트웨어가 어떻게 증폭하는가를 보여 줍니다. 장치의 실제 격차는 104배인데, 사용자가 느끼는 격차는 폴트율에 따라 2배에서 105배까지 벌어집니다.

한 번이 나머지 전부를 먹는다

식으로는 EAT = (1−p)·tmem + p·T 한 줄입니다. 그런데 이 식이 왜 무서운지는 숫자만 봐서는 안 잡힙니다. 접근을 실제로 하나씩 굴려서 걸린 시간을 쌓아 보겠습니다.

접근 폴트 실측 평균 EAT 폴트가 먹은 시간

위와 아래는 성격이 다릅니다. 섞어 읽으면 안 됩니다.

위(구슬)는 연출입니다. 램 왕복과 디스크 왕복의 화면 길이 비는 실제 비가 아닙니다. 실제 비(4만 배)로 그리면 램 왕복이 0.4초일 때 디스크 한 번에 4시간 반이 걸립니다. 그래서 눌러 그렸습니다. 아래 띠가 실측입니다. 굴린 접근들의 누적 시간을 히트 몫(초록)과 폴트 몫(주황)으로 진짜 비율 그대로 가릅니다. 여기 길이에는 손대지 않았습니다.

기본값에서는 주황이 거의 안 보입니다. 백만 번에 한 번이면 폴트가 먹는 시간이 0.1%뿐입니다. 위의 ‘교과서 판으로 맞추기’를 누르고 다시 굴려 보세요. 폴트 비율은 천 번에 한 번(0.1%)으로 올라갈 뿐인데 띠는 거의 전부 주황이 됩니다 — 40만 번 굴린 실측으로 폴트 417번(0.10%)이 시간의 97.7%를 먹었습니다. ‘거의 안 난다’와 ‘시간을 다 먹는다’가 동시에 참인 것이 이 조각의 전부입니다.

실측 평균이 EAT 로 수렴합니다. 폴트가 드물수록 수렴이 늦습니다 — 배속을 올려 접근 수를 키우면 실측 평균이 EAT 에 붙는 것을 볼 수 있습니다. 안 붙으면 둘 중 하나가 틀린 것입니다.

풀고 있는 식

T = t장치 + tOS
EAT = (1 − p) · t메모리 + p · T
S = EAT ÷ t메모리 = 1 + p · (T/t메모리 − 1)
pmax = d · t메모리 ÷ (T − t메모리)

— 화면에 보이는 것은 전부 이 네 줄의 파생값이다
“몇 번에 한 번” = 1 ÷ p  ·  “1초 작업이 몇 초” = S 초
시간 예산 막대 = 초록 (1−p)·t메모리 vs 붉은 p·T  둘의 합이 곧 EAT — 막대가 곧 식이다

거리를 층으로 쌓아 본다

메모리는 하나가 아니라 입니다. 위로 갈수록 빠르고 작고, 아래로 갈수록 느리고 큽니다. 아래 모형에서 층의 높이가 걸리는 시간이고, 넓이가 용량입니다.

메모리 계층 · 높이=시간, 넓이=용량끌어서 회전 · 휠로 확대 · 손 떼면 다시 돈다
레지스터·캐시주기억(RAM)디스크
한 층 내려갈 때마다 자릿수가 바뀝니다. 페이지 폴트는 맨 아래까지 내려가는 사건이고, 그래서 한 번에 수만 배가 듭니다.

찾는 것이 위층에 있으면 그 자리에서 끝나고, 없으면 한 층 더 내려갑니다. 위 판의 히트율이 조금만 떨어져도 평균이 크게 나빠지는 이유가 이 층 사이의 자릿수 차이입니다.

층 높이는 실제 시간 비율을 로그로 압축한 것입니다 — 그대로 그리면 디스크 층만 화면을 채웁니다.

왜 4.16 ms인가 — 그건 전자 시간이 아니라 기계 시간이다

위 화면에서 가장 큰 숫자가 어디서 나오는지, 실물을 보면 바로 잡힙니다.

하드디스크 읽기/쓰기 헤드 접사

① 이것이 물리적으로 움직여야 한다

하드디스크의 읽기/쓰기 헤드를 가까이서 찍은 것입니다. 사진 안에 1 mm 눈금자가 같이 들어 있습니다.

페이지 폴트가 하드디스크로 떨어지면, 이 팔이 실제로 움직이고 원판이 제자리에 올 때까지 기다립니다. 7,200 rpm에서 반 바퀴 도는 데 걸리는 시간이 4.16 ms입니다 (0.5 ÷ 7200 × 60초 = 4.1667 ms — 데이터시트 인쇄값과 맞습니다).

NVMe의 80 µs는 전자가 움직이는 시간이고, 이쪽은 쇠가 움직이는 시간입니다. 104배 차이의 정체가 그것입니다.

사진 Roman Starkov · CC BY-SA 4.0 · 위키미디어 커먼즈
시게이트 Exos X18 하드디스크 윗면

② 4.16 ms를 인쇄한 바로 그 모델

라벨에 ST18000NM000J가 찍혀 있습니다. 위 손잡이의 회전지연 4.16 ms를 인쇄한 시게이트 데이터시트 표의 바로 이 모델번호입니다.

★같은 데이터시트가 평균 탐색시간은 인쇄하지 않습니다. 요즘 기업용 하드디스크 문서는 탐색시간을 아예 싣지 않습니다(시게이트·WD 양쪽 전문 검색으로 확인). 그래서 화면의 8.33 ms는 회전 4.16(인쇄) + 탐색 4.17(가정)으로 갈라 적었습니다.

사진 PantheraLeo1359531 · CC BY 4.0 · 위키미디어 커먼즈
마이크론 DDR5 RDIMM 메모리 모듈

③ 32 ns가 나오는 쪽

마이크론 DDR5 RDIMM입니다. 흰 기판 위에 DRAM 다이가 줄지어 붙어 있습니다.

손잡이 맨 왼쪽 눈금 32 ns가 이 물건의 값입니다 — 마이크론 문서에 인쇄된 tRCD 16.000 ns + tAA 16.000 ns. 여기에는 움직이는 부품이 없습니다.

사진 PantheraLeo1359531 · CC BY 4.0 · 위키미디어 커먼즈

이 식이 못 하는 것

정직하게 적어 둡니다. 이 모델은 메모리 접근이 한 번에 하나씩 차례로 일어난다고 봅니다. 실제 CPU는 그렇지 않습니다 — 여러 접근을 겹쳐서 하고(비순차 실행), 한 스레드가 폴트로 막히면 다른 스레드가 돕니다.

그래서 이 식의 배수와 비율은 쓸 만하지만, 절대 처리량은 틀립니다. 실제로 만드는 과정에서 ‘초당 폴트 수’ 계기를 넣으려다 뺐습니다 — 기본값으로 계산하니 초당 1,250만 접근이라는 값이 나왔는데, 실제 CPU는 초당 10억 단위 메모리 연산을 합니다. 계기가 아니라 모델이 틀린 자리였습니다.

같은 이유로 무대 그림의 TLB나 페이지테이블 칸에는 숫자를 적지 않았습니다. 그 시간을 인쇄한 1차 문서를 찾지 못했기 때문입니다. 화면에는 DRAM 칸과 저장장치 칸에만 시간이 붙습니다.

운영체제는 값을 못 붙이는 물건이 됐다

이 조각의 주인공은 운영체제인데, 장부를 열면 운영체제 줄을 찾기가 어렵습니다.

마이크로소프트. FY2026 10-K에 ‘Windows and Devices’ 줄이 있습니다 — 170억 8,400만 달러. 3년째 170억 언저리에 붙박이입니다(FY2025 173억, FY2024 170억). 그런데 회사가 커져서 비중은 6.95% → 6.15% → 5.15%로 내려앉았습니다.

더 흥미로운 건 그 줄의 정의입니다. 10-K에 이렇게 적혀 있습니다 — Windows Commercial의 클라우드 몫은 Microsoft 365 줄에, 온프레미스 몫은 Microsoft 365 products 줄에, Windows Server는 Server products 줄에 들어가 있습니다. ‘Windows and Devices’에 남은 건 OEM 라이선스와 서피스뿐입니다. 세계 PC의 운영체제를 만드는 회사가, 그 운영체제의 매출 총액을 공시상 한 줄로 보여 주지 않습니다.

애플. 아예 없습니다. FY2025 10-K에 macOS 매출 줄은 존재하지 않습니다. Item 1의 문장은 “Mac은 macOS 운영체제 기반의 개인용 컴퓨터 제품군” — 이름만 나오고 값은 어디에도 없습니다. iOS·iPadOS·watchOS도 마찬가지입니다.

★해석은 해석이라고 갈라 적습니다. 숫자는 위가 전부 인쇄값이고, 여기서부터는 제 읽기입니다 — 운영체제는 값을 붙이는 물건에서, 값을 붙이지 못하게 하는 물건으로 옮겨 갔습니다.

반대로 이 조각의 상수를 인쇄한 회사들은 그 물건을 팔아 돈을 법니다. 마이크론 FY2025 매출은 DRAM 285.8억 달러 + NAND 85.0억 달러. DRAM은 NAND보다 2,500배 빠른데(80,000 ns ÷ 32 ns) 매출은 3.36배입니다. 그리고 시게이트는 FY2026에 789 엑사바이트를 출하했습니다 — 104배 느린 쪽에 세상은 여전히 바이트를 쌓습니다.