[운영체제] 메모리 (1)

2023. 4. 16. 22:10·CS/운영체제
목차
  1. 1. 메모리 계층 
  2. 2. 캐시
  3. 3. 캐시히트와 캐시미스
  4. 4. 캐시매핑
  5. 4.1 캐시매핑 종류
  6. 5. 웹 브라우저의 캐시
  7. 5.1 쿠키
  8. 5.2 로컬 스토리지 
  9. 5.3 세션 스토리지 
728x90
반응형

1. 메모리 계층 

  • 메모리 계층은 레지스터, 캐시, 메모리, 저장장치로 구성이 되어 있습니다.
  • 레지스터는 CPU 안에 있는 작은 메모리이며 특징으로는 휘발성이고 속도가 가장 빠르며, 기억 용량이 가장 적습니다.
  • 캐시는 L1, L2 캐시를 지칭합니다. 캐시의 특징은 휘발성이며 속도가 빠르고 기억 용량이 적습니다. 
  • 주기억장치(RAM)의 특징은 휘발성이고 속도는 보통이며, 기억 용량이 보통입니다.
  • 보조기억장치는 HDD, SSD를 말하며 비휘발성이고 속도는 낮으며, 기억 용량이 많습니다.

램은 하드디스크로부터 일정량의 데이터를 복사해서 임시로 저장하고 필요할 때마다 CPU에 전달하는 역할을 합니다.

계층이 위로 갈수록 용량이 작아지고 속도는 빨라진다는 특징이 있습니다. 

 

2. 캐시

  • 캐시는 데이터를 미리 복사해 놓는 임시 저장소이자 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리입니다. 
  • 이를 통해 데이터를 접근하는 시간이 오래 걸리는 경우를 해결하고 계산 시간을 절약할 수 있습니다.
병목 현상이란?
-두 구성 요소의 최대 성능의 차이로 인해 한 구성 요소가 다른 하드웨어의 잠재 성능을 제한하는 것을 말합니다.

 

3. 캐시히트와 캐시미스

  • 캐시에서 원하는 데이터를 찾는 것을 캐시히트라고 말합니다.
  • 만약 해당 데이터가 캐시에 없다면 주 메모리로 가서 데이터를 찾아오는데 이것을 캐시미스라고 말합니다.
  • 캐시히트를 하게 되면 해당 데이터를 제어장치를 거쳐서 가져오게 됩니다. 
  • 캐시히트의 경우 위치도 가깝고 CPU 내부 버스를 기반으로 작동하기 때문에 빠르다는 특징이 있습니다.
  • 반면, 캐시미스가 발생하게 된다면 메모리에서 가져오게 되는데, 이는 시스템 버스를 기반으로 작동하기 때문에 느립니다.

4. 캐시매핑

  • 캐시매핑은 캐시가 히트되기 위해 매핑하는 방법을 말합니다.
  • CPU의 레지스터와 주 메모리 간에 데이터를 주고받을 때를 기반으로 설명합니다.
  • 레지스터는 주 메모리에 비하면 굉장히 작고 주 메모리는 굉장히 크기 때문에 작은 레지스터가 캐시 계층으로써 역할을 잘해주려면 이 매핑을 어떻게 하냐가 중요합니다.

4.1 캐시매핑 종류

  • 직접매핑(directed mapping): 메모리가 1~10이 있다면 1:1~10, 2:1~10 ... 이런 식으로 매핑하는 것을 말합니다. 처리가 빠르다는 장점이 있지만 충돌 발생이 잦다는 단점이 존재합니다.
  • 연관매핑(associative mapping): 순서를 일치시키지 않고 관련 있는 캐시와 메모리를 매핑합니다. 충돌이 적지만 모든 블록을 탐색해야 해서 속도가 느립니다.
  • 집합 연관 매핑(set associative mapping): 직접 매핑과 연관 매핑을 합쳐 놓은 것입니다. 순서는 일치시키지만 집합을 둬서 저장하며 블록화 되어 있기 때문에 검색은 더 효율적입니다. 

5. 웹 브라우저의 캐시

  • 대표적인 캐시로는 웹 브라우저의 작은 저장소 쿠키, 로컬 스토리지, 세션 스토리지가 있습니다. 
  • 이런 것들은 보통 사용자의 커스텀한 정보나 인증 모듈 관련 사항들을 웹 브라우저에 저장해서 추후 서버에 요청할 때 자신을 나타내는 아이덴티티나 중복 요청 방지를 위해 쓰입니다.

5.1 쿠키

  • 쿠키는 만료기한이 있는 키-값 저장소입니다. 
  • same site 옵션을 strict로 설정하지 않았을 경우 다른 도메인에서 요청했을 때 자동 전송되며, 4kb까지 데이터를 저장할 수 있고 만료기한을 정할 수 있습니다.
  • 쿠키를 설정할 때는 document.cookie로 쿠키를 볼 수 없게 httponly 옵션을 거는 것이 중요합니다.
  • 클라이언트 또는 서버에서 만료기한 등을 정할 수 있는 데 보통 서버에서 만료기한을 정합니다.

5.2 로컬 스토리지 

  • 로컬 스토리지는 쿠키와 반대로 만료기한이 없는 키-값 저장소입니다.
  • 10MB까지 저장할 수 있으며 웹 브라우저를 닫아도 유지되고 도메인 단위로 저장, 생성됩니다.
  • HTML5를 지원하지 않는 웹 브라우저에서는 사용할 수 없고 클라이언트에서만 수정이 가능합니다.

5.3 세션 스토리지 

  • 세션 스토리지는 만료기한이 없는 키-값 저장소입니다. 
  • 탭 단위로 세션 스토리지를 생성하며, 탭을 닫을 때 해당 데이터가 삭제됩니다. 
  • 5MB까지 저장이 가능하며 HTML5를 지원하지 않는 웹 브라우저에서는 사용할 수 없고 클라이언트에서만 수정이 가능합니다.
728x90
반응형

'CS > 운영체제' 카테고리의 다른 글

[운영체제] 프로세스의 메모리 구조  (4) 2023.05.17
[운영체제] 프로세스와 스레드  (0) 2023.05.14
[운영체제] 메모리 및 성능향상 기법  (0) 2023.03.31
[운영체제] 운영체제 구조와 종류  (0) 2023.03.17
[운영체제] 운영체제 정의와 역할  (0) 2023.03.01
  1. 1. 메모리 계층 
  2. 2. 캐시
  3. 3. 캐시히트와 캐시미스
  4. 4. 캐시매핑
  5. 4.1 캐시매핑 종류
  6. 5. 웹 브라우저의 캐시
  7. 5.1 쿠키
  8. 5.2 로컬 스토리지 
  9. 5.3 세션 스토리지 
'CS/운영체제' 카테고리의 다른 글
  • [운영체제] 프로세스의 메모리 구조
  • [운영체제] 프로세스와 스레드
  • [운영체제] 메모리 및 성능향상 기법
  • [운영체제] 운영체제 구조와 종류
P_Piano
P_Piano
Apple 생태계 개발자가 되기 위한 학습과 경험의 기록
피피아노의 개발 일지
IT 분야 크리에이터
Apple 생태계 개발자가 되기 위한 학습과 경험의 기록
    반응형
    250x250
  • P_Piano
    피피아노의 개발 일지
    P_Piano
  • 전체
    오늘
    어제
    • 분류 전체보기 (209)
      • Apple (127)
        • iOS (22)
        • visionOS (4)
        • Swift (68)
        • UIKit (2)
        • SwiftUI (24)
        • RxSwift (2)
        • Xcode (5)
      • C언어 (5)
      • C++ (8)
      • Dart (1)
      • Python (3)
      • JavaScript (17)
      • Git (1)
      • CS (39)
        • 디자인 패턴 (6)
        • 네트워크 (20)
        • 운영체제 (8)
        • Database (5)
        • 자료구조 (0)
      • IT 지식 (2)
      • IT 뉴스 (4)
      • 출처 표기 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로세스
    네트워크
    운영체제
    옵셔널
    ios
    프로퍼티 래퍼
    Apple
    배열
    코딩테스트
    제어문
    combine
    스위프트
    오블완
    UIKit
    티스토리챌린지
    함수
    visionOS
    Initializers
    변수
    swiftUI
    프로그래머스
    클래스
    이니셜라이저
    연산자
    자바스크립트
    디자인패턴
    SWIFT
    비동기
    Vision Pro
    Xcode
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
P_Piano
[운영체제] 메모리 (1)

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.