1. 메모리 계층
구성
개념 | 휘발성 여부 | 속도(빠른 순위) | 기억 용량(큰 순위) | 가격(높은순위) | |
레지스터 | CPU 안의 작은 메모리 | O | 1 | 4 | 1 |
캐시 | L1, L2, (L3) 캐시 | O | 2 | 3 | 2 |
주기억장치(RAM) | 데이터 임시 저장. 필요시 CPU 전달 | O | 3 | 2 | 3 |
보조기억장치 | HDD, SSD | X | 4 | 1 | 4 |
캐시
- 데이터를 미리 복사해 놓는 임시 저장소
- 속도 차이에 따른 병목 현상 감축을 위한 메모리
- 지역성의 원리(시간/공간) : 캐시 계층을 두는 것이 아닌 캐시 직접 설정 시
시간 지역성
- 최근 사용한 데이터에 다시 접근하려는 특성
공간 지역성
- 최근 접근한 데이터를 이루는 공간 혹은 그 공간에 접근하는 특성
캐시히트와 캐시미스
- 캐시히트 : 캐시에서 원하는 데이터 찾음 ( 위치 가까움, 빠름 )
- 캐시미스 : 해당 데이터가 캐시에 없어서 주 메모리에서 데이터 찾아오는 것 ( 느림 )
캐시매핑
- 캐시가 히트되기 위해 매핑하는 방법
- 직접 매핑(순서 일치), 연관 매핑(순서 일치X, 관련성 매핑), 집합 연관 매핑(순서 일치 O, 집합으로 저장)
웹 브라우저의 캐시
- 쿠키 : 만료 기한 있는 키-값 저장소
- 로컬 스토리지 : 만료 기한 없는 키-값 저장소, 탭 닫아도 유지
- 세션 스토리지 : 만료 기한 없는 키-값 저장소, 탭 닫으면 삭제됨
2. 메모리 관리
가상 메모리
- 실제로 이용 가능한 메모리 자원 추상화
- 가상 주소 --메모리관리장치(MMU)--> 실제 주소
스와핑
- 메모리에 당장 사용하지 않는 영역은 하드디스크에 옮기고 하드디스크 일부분을 메모리처럼 불러와 사용하는 것
페이지 폴트
- 프로세스 주소 공간에는 존재하지만 컴퓨터의 RAM에는 없는 데이터에 접근했을 경우 발생
페이지 폴트, 스와핑 과정
- 명령어가 접근한 가상 주소 페이지 없음(페이지 폴트)
- 트랩 발생 -> 운영체제에 전달
- 운영체제가 사용하지 않은 프레임 탐색
- 해당 프레임을 메모리에 가져와 특정 페이지와 교체(스와핑)
- 페이지 테이블 갱신 후 다시 시작
스레싱
- 메모리의 페이지 폴트율(프로세스 양이 많은)이 높은 것
- 성능 저하
- 해결 방안 : 작업 세트, PFF
작업 세트
- 프로세스의 과거 사용 이력인 지역성으로 결정된 페이지 집합 생성 후 미리 메모리에 로드
PFF
- 상한선/하한선 생성으로 페이지 폴트 빈도 조절
메모리 할당
연속 할당
- 메모리에 순차적으로 할당
- 고정 분할 방식(메모리 미리 나누어 관리) / 가변 분할 방식(매 시점 동적으로 메모리 나눠 사용)
불연속 할당 (현재 사용)
- 페이징 기법 : 동일한 크기의 페이지 단위로 나누어 메모리 서로 다른 위치에 할당
- 세그멘테이션 : 페이지 단위 X , 세그먼트(의미 단위) O 로 나누는 방식
- 페이지 세그멘테이션 : 세그먼트(의미 단위)로 나누어 동일 크기의 페이지 단위로 나누는 것
페이지 교체 알고리즘
오프라인 알고리즘
- 추후 참조되는 페이지와 현재 할당하는 페이지를 바꾸는 알고리즘
- 성능 비교에 대한 상한 기준 제공
FIFO : 가장 먼저 온 페이지를 교체 영역에 가장 먼저 놓기
LRU : 참조가 가장 오래된 페이지 변경 Ex) 5번째에 5번 페이지가 들어오면 가장 먼저 들어온 1번 페이지와 스왑
NUR ( = LRU 업그레이드 버전 = clock 알고리즘 ) : 시계 방향으로 돌면서 0 찾으면 해당 프로세스 교체, 해당 부분 1로 교체
LFU : 가장 참조 횟수가 적은 페이지 교체
'CS > 면접을 위한 CS 전공지식 노트' 카테고리의 다른 글
[CH3.1] 운영체제와 컴퓨터 (0) | 2024.12.20 |
---|---|
[CH2.5] HTTP (2) | 2024.12.18 |
[CH2.4] IP 주소 (0) | 2024.12.13 |
[CH2.3] 네트워크 기기 (0) | 2024.12.12 |
[CH2.2] TCP/IP 4계층 모델 (0) | 2024.12.11 |