TIL - 22/03/15

2022. 3. 15. 21:56

💻 Study


1. Memory

  • 메모리에 프로그램을 연속적인 주소로 할당하면 실행, 종료를 하면서 빈 공간(hole)이 생기게 됨, 연속된 공간이 모자라다면 프로그램을 실행시킬 수 없음. (외부 단편화)
  • 따라서 page로 메모리를 나눠서 연속적이지 않더라도 프로그램을 나눠서 실행할 수 있도록 함. 이때도 hole이 어쩔 수없이 생기긴 하는데 page를 사용하지 않은 방식보단 hole이 적음. (내부 단편화)
  • MMU : Memory Management Unit, logical address를 phyiscal address로 바꿈
  • page table에서 자주 사용하는 일부만 TLB(translation Lookaside Buffer) 캐시에서 사용함
  • cache가 필요한 이유: cpu는 처리속도가 매우 빠른데에 비해 memory는 그만큼 처리할 수 없다. cpu입장에선 병목 현상이 생기므로 이를 완화해주는게 cache. 
    • 지역성
      • 시간 지역성 : 가까운 미래에 이 data를 사용할 것이다
      • 공간 지역성 : 최근 사용한 data와 근처에 있는 data를 사용할 가능성이 높다.
    • 작동 방법
      • 공간 지역성 때문에 필요한 프로그램이 1개이더라도 그와 연결된 프로그램을 다 cache에 올림
      • set에 맞는 공간에다 넣고, tag를 넣어줌
      • 값을 비워야할 때, 변형으로 인해 memory와 값이 다르다면 write through / write back을 사용하여 memory에 적용한다.
      • cache의 빈공간을 찾아 사용하지 않고 정해진 set에만 올라가는 이유
        • 회로가 복잡해지면 비싸지고, 느려진다. cache로서의 효용성이 반감된다.
  • CPU -> L1(SRAM) 캐시에 존재하면 그대로 사용, 없으면 L2(SRAM) 캐시, Memory(DRAM), Disk 순으로 접근
    • word : 4 byte
    • block : 4 word
    • page : 64 block

2. @Transactional

  • Transactional 어노테이션을 메서드에 붙이면, 메서드가 포함한 작업 중 하나라도 실패할 경우 전체 작업을 취소한다.
  • Create, Update, Delete를 할 때 마다 메소드 위에 붙여서 사용한다.
  • 트랜잭션은 원자성, 일관성, 격리성, 영속성의 성질이 있다.
  • rollback을 위한 옵션을 설정할 수 있다.

 


🌞오늘 하루 


모의 SW 검정시험을 또 봤다. 시험 보느라 프로젝트를 거의 못했다.ㅠㅠ

채용공고도 많이 뜨고 프로젝트 기간은 줄고... 미쳐버릴 것 같다. handle이 안돼!!

 

'Dev > TIL' 카테고리의 다른 글

23/09/25  (0) 2023.09.26
23/09/22  (0) 2023.09.22
TIL - 22/03/14  (0) 2022.03.14
TIL - 22/01/19  (0) 2022.01.19
TIL - 22/01/06  (0) 2022.01.07

BELATED ARTICLES

more