일단 씻고 나가자
23.03.02 본문
2023. 03. 02 목요일
- 하드 디스크, 메인 메모리, 캐시 메모리와 CPU 사이의 관계?
: 하드 디스크, 메인 메모리(RAM), 캐시 순서로 속도가 빨라지며, CPU가 접근하는 역 순서.
- 캐시 메모리에의 저장 규칙 2가지는? 그것으로 말미암은 캐시메모리의 사용 이유와 정의?
1. 최근에 접근된 데이터 (시간적 지역성, Temporal Locality)
2. 최근에 접근된 데이터의 주변 데이터 (공간적 지역성, Spatial Locality)
한 번 접근된 데이터가 또 접근될 확률이 높다는 논리로 적용.
시간적, 공간적 지역성을 기반으로 가까운 미래에 접근될 확률이 높은 데이터를
작지만 빠른 캐시 메모리에 미리 보관하여 전체적인 시스템의 성능을 높임.
즉, 속도가 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리.
캐시 메모리는 어디에나 적용되어 있으며, 하드 디스크, RAM, 인터넷, 게임,
심지어는 캐시메모리 내에서도 3단계로 나누어 캐시를 관리한다.
https://www.youtube.com/watch?v=Lp5ARfO9RRg
- 캐시 메모리의 단계와 각각의 설명과 위치, 그리고 첫 단계의 캐시에 대한 특성?
: 3단계로 이루어져 있으며 각각 L1, L2, L3 캐시 메모리와 디스크 캐시가 있다.
각각 L1 – CPU 내부 / L2 – CPU와 RAM 사이 / L3 – 메인보드에 위치하며
디스크 캐시는 RAM과 하드디스크 사이에 위치한다.
첫 단계인 L1 캐시는 하위 단계의 캐시와 다르게 I-Cache, D-Cache로 나뉘어져 있는데
각각 Instruction, Data 캐시이며 명령어와 데이터 각각의 특성을 따라 따로 처리한다.
캐시 크기의 반을 나누어 명령어 처리 직전의 명령어와 실행 후의 명령어를 각각 임시 저장.
https://brunch.co.kr/@lkj28/129
- 듀얼 코어 프로세서의 캐시 메모리에 대한 설명?
: 각 코어마다 독립된 L1 캐시 메모리를 가지고, L2부터는 두 코어가 공유한다.
- 캐시 메모리가 데이터를 찾는 과정에서 발생하는 두 결과? 캐시 미스의 3가지 경우?
: 각 단계별로 찾는 데이터가 있는지 순차적으로 검색하며, CPU가 요청한 데이터가 캐시에 있다면 ‘Cache Hit’, 없어서 DRAM에서 가져오면 ‘Cache Miss’라 칭한다.
캐시 미스의 3가지 경우 (3C‘s models)는
Cold start(Compulsory) miss – 해당 메모리 주소를 처음 불러서 나는 미스
Conflict miss (주소 할당 문제) – 두 데이터가 같은 캐시 메모리 주소에 할당
Capacity miss (공간 문제) - 캐시 메모리의 공간이 부족 (데이터 양 > 캐시 크기)
- 캐시 메모리의 크기가 작은 이유? 캐시 메모리를 키웠을 때 발생하는 문제?
: 일반적으로 SRAM의 가격이 비싸기 때문에 작으며, 캐시 미스를 캐시 크기를 키워 해결하려 하면 캐시 접근 속도가 느려지고 파워를 많이 먹는 단점이 생김.
- 캐시 메모리의 구조 및 작동 방식은? (저장 방식)
1. Direct Mapped Cache
2. Fully Associative Cache
3. Set Associative Cache
https://wpaud16.tistory.com/226
- 웹 개발의 세 가지 방법과 설명?
정적 컨텐츠 – 파일을 그대로 웹브라우저에 보이기.
MVC와 템플릿 엔진 – html을 서버에서 프로그래밍해서 동적으로 보이기. (Model View Controller)
API – API로 (ex. JSON) 서버에서 클라이언트에게 데이터 전달. 데이터만 주면 화면은 클라이언트가 알아서 보여줌.
- 스프링부트가 정적 컨텐츠를 실행하는 방법?
컨트롤러가 우선순위를 갖고 해당 url이 있는지 확인한 후, 매핑이 된 컨트롤러가 없다면 내부의 resources 안의 파일을 찾아서 반환함.
- [Java] char 변수에 저장된 int 값을 정수 모양 그대로 불러오는 방법? sort 함수는?
Character.getNumericValue(c) / c - ‘0’;
(void) Arrays.sort(int[]);