운영체제(OS, Operating System)란 사용자가 컴퓨터를 사용하기 위해 필요한 핵심 소프트웨어로, 컴퓨터 하드웨어와 응용 프로그램을 관리하고 상호작용 할 수 있도록 돕는 역할을 한다.
운영체제의 역할은 크게 네 가지가 있다.
1. CPU 스케줄링과 프로세스 관리
CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리
2. 메모리 관리
한정된 메모리를 어떤 프로세스에, 얼마나 할당해야 하는지 관리
3. 디스크 파일 관리
디스크 파일의 보관 방법 관리
4. I/O 디바이스 관리
I/O 디바이스들인 마우스, 키보드와 컴퓨터 간에 데이터 주고받는 것을 관리
이 중 메모리에 대해 더 알아보겠다.
메모리는 데이터나 상태, 명렁어 등을 기록하는 장치이며 기억을 담당한다.
메모리 계층은 래지스터, 캐시, 메모리, 저장장치로 이루어져 있는데,
• 레지스터: CPU 안에 있는 작은 메모리. 휘발성, 속도 가장 빠름, 용량 가장 적음
• 캐시: L1, L2 캐시를 지칭. 휘발성, 속도 빠름, 용량 적음
• 주기억장치: RAM을 지칭. 휘발성, 속도, 용량 보통
• 보조기억장치: HDD, SSD를 일컬으며 비휘발성, 속도 낮음, 용량이 많음
속도와 기억 용량은 반비례하다는 것을 알 수 있다.
캐시(cache)란 데이터를 미리 복사해 놓는 임시 저장소이자, 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리를 말한다. 캐시를 통해 시간을 절약할 수 있다.
메모리와 CPU 사이는 속도 차이가 커서, 그 중간에 계층을 둬서 속도 차이를 해결하는데
이렇게 속도 차이를 해결하기 위해 계층과 계층 사이에 위치한 계층을 '캐싱 계층' 이라고 한다.
CPU의 처리 속도에 비해 RAM의 접근 속도는 매우 느리므로, 매 요청마다 RAM에 접근하는 것은 매우 비효율적이다. 그래서 캐시라는 속도가 빠른 작은 저장 공간을 사이에 둠으로써 실질적인 대기 시간을 최소화하고 성능을 높일 수 있다.
이때 캐시를 이용하기 위해서는 지역성의 원리를 기반으로 캐시의 성능을 높일 수가 있다.
지역성의 원리는 프로그램이 데이터를 균일하게 접근하지 않고,
특정 순간에 특정 영역을 집중적으로 참조하는 특성을 말하는데
이 특성을 이용해 캐시는 CPU가 다음에 필요할 데이터를 미리 가져다 놓을 수 있다.
시간 지역성
- 최근에 접근했던 데이터는 가까운 미래에 다시 접근할 가능성이 높다.
- 한번 사용한 데이터를 캐시에 그대로 두면, CPU가 해당 데이터를 다시 요청했을 때 RAM까지 가지 않고 캐시에서 즉시 가져올 수 있다.
- 예시:
- 반복문: for 문이나 while 문 안에서 사용되는 변수나 명령어들은 계속 반복해서 사용됨
공간적 지역성
- 현재 접근한 메모리 주소 근처에 있는 데이터는 가까운 미래에 접근할 가능성이 높다.
- CPU가 어떤 주소의 데이터를 요청하면, 캐시는 그 데이터뿐만 아니라 그 주소 주변의 연속된 데이터 묶음을 한 번에 RAM에서 가져와 캐시에 저장한다.
- 예시:
- 배열 순회: 배열의 요소들은 메모리상에 연속적으로 저장된다. 배열의 한 요소를 읽으면, 바로 다음 요소들도 곧 읽을 확률이 높으므로 한 번에 가져와서 캐시에 넣어 둔다.
이렇게 캐시에 있는 데이터 중, 원하는 데이터를 찾았다면 '캐시 히트'라고 하며
해당 데이터가 캐시에 없어 주 메모리에서 데이터를 찾아오는 것을 '캐시 미스'라고 한다.
지역성 원칙에 근거하여 데이터를 캐시에 채워 넣으면, 캐시 히트율이 극대화되고, 결과적으로 시스템의 평균 메모리 접근 속도가 캐시의 속도에 가까워져 성능이 크게 향상될 수 있다.
'▪️CS 스터디' 카테고리의 다른 글
| [TIL] HTTPS와 SSL/TLS의 개념 (0) | 2025.11.12 |
|---|---|
| [TIL] IP 주소 체계 이해하기 (0) | 2025.11.01 |
| [TIL] 네트워크 토폴로지, 성능 분석 (0) | 2025.10.15 |
| [TIL] 객체 지향 SOLID 원칙 (0) | 2025.09.24 |
| [TIL] CORS 정책 (Cross-Origin Resource Sharing) (0) | 2025.09.17 |