TIL

TIL - 0217

ahlight 2023. 2. 17. 23:58

1. 자바 플레이 그라운드 with TDD, 클린 코드

  • 미학습

2. 혼자서 공부하는 컴퓨터 구조 + 운영체제

* 메모리의 주소공간

논리주소 - CPU와 실행 중인 프로그램
- 프로그램마다 같은 논리 주소가 존재 할 수 있다.
물리주소 - 실제 메모리 하드웨어가 사용
  • 주소 공간을 물리, 논리 주소로 나누는 이유는 논리주소가 없을 경우 모든 프로세스가 물리주소에 직접 접근이 가능하게 되고, 서로 다른 프로세스들이 같은 주소공간을 침범할 수 있게 된다.
  • 물리 주소와 논리 주소는 메모리관리 장치(Memory Management Unit)을 통해 변환된다.
  • 베이스 레지스터 : 프로그램의 가장 작은 물리주소(해당 프로그램의 첫번째 물리주소)
  • MMU의 원리는 베이스 레지스터 + 논리주소 = 물리주소 이다.(논리주소가 사실상 프로그램의 시작점으로부터 떨어진 주소거리인 셈)
  • (베이스 레지스터 + 논리주소)가 다른 프로그램의 물리주소에 접근하는 것을 방지하기 위해 한계레지스터가 존재(한계 레지스터는 사실상 프로그램의 크기인 셈)

 

* 캐시 메모리

  • 메모리 계층 구조(높을 수록 CPU에 가까움 -> 속도 빠름, 가격 비쌈, 용량 작음)

출처 : https://ko.wikipedia.org/wiki/%EB%A9%94%EB%AA%A8%EB%A6%AC_%EA%B3%84%EC%B8%B5_%EA%B5%AC%EC%A1%B0

  • 캐시 메모리는 CPU의 연산속도가 메모리에 접근하는 시간보다 더 빨라서 생기는 문제점을 해결하기 위해 탄생
  • L1 -> L2 -> L3 순으로 CPU에 가까움(즉, 더 빠르고 용량이 작다.)
  • L1, L2는 보통 코어 내부 L3는 코어 외부에 위치한다.(L3는 코어 여러개가 공유하는 형태)
  • 캐시 메모리는 CPU가 사용할 법한 대상을 예측하여 메모리에서 가져온다.
  • 이때  캐시메모리에 있는 대상을 CPU가 사용하면 캐시히트, 미사용이면 캐시미스라고 부른다.
  • 어떤 식으로 예측을 하는지? -> 참조지역성의 원리
시간 지역성 - CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있음
- 코딩할 때 변수를 생각하면 쉽다. (어떠한 변수가 한 번 사용되고 한참 뒤에 사용되는 경우가 적기 때문)
공간 지역성 - CPU는 접근 했던 메모리 근처를 접근하려는 경향이 있음
- 각각의 프로그램들은 각각의 메모리 공간이 있고, 또 내부 작동에서도 관련있는 데이터끼리 뭉쳐있기때문이다.

 


3. 알고리즘

 

프로그래머스 호텔대실 자바

1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이

ahlight.tistory.com