728x90
이력서
이력서를 작성 중이다.
원티드 이력서 온보딩 과정에 맞춰서 작성하고 있고, 추가로 어제 특강 때 받은 이력서 샘플에 옮겨 적고 있다.
넘모 힘든 것.
복습도 해야하고 여러가지 cs 지식들도 해야 하는데 하ㅏ아아아아잇!!참! 쉽지않네에에
아무튼 요튼 쩄든! 다음주 월욜 전에 다 써보자 파이팅!!
복습
캐시(Cache)
- 캐시란 데이터나 값을 미리 임시적으로 저장해 두는 영역을 말한다.
- 컴퓨터 시스템에서 성능 향상을 위해 사용되는 중요한 기술이다.
주요 목적
- 데이터 접근 시간을 줄이는 것이다.
- 프로세서의 연산 속도가 빨라져도 메모리에 접근하는 시간은 상대적으로 느리기 때문에 이를 보완하기 위해서 캐시를 사용한다.
- 캐시는 프로세서에 좀 더 가까운 고속의 임시 메모리 영역으로, 자주 사용되는 데이터를 저장해 두었다가 필요할 때 바로 전달할 수 있다.
지역성(locality)
- 프로그램은 특정 데이터나 코드를 집중적으로 사용하는 경향이 있는데, 이를 지역성이라고 한다.
- 시간 지역성은 최근에 사용한 데이터를 가까운 시간에 다시 사용할 가능성이 높다는 것이다.
- 공간 지역성은 참조된 데이터와 인접한 데이터도 사용될 가능성이 높다는 것이다.
캐시 교체 정책
- 캐시의 크기는 제한되어 있기 때문에 언젠가 가득 차게 된다. 이때 새로운 데이터를 캐시에 저장하기 위해서는 기존 캐시 데이터를 교체해야 한다.
- 어떤 데이터를 교체할지 결정하는 정책이 캐시 교체 정책이다.
- LRU : 가장 오랫동안 참조되지 않은 데이터를 교체한다.
- LFU : 가장 적게 참조된 데이터를 교체한다.
- FIFO : 캐시에 먼저 들어온 오래된 데이터를 교체한다.
- Random : 무작위로 데이터를 교체한다.
캐시 일관성
- 캐시와 원본 데이터 사이에 데이터 불일치가 발생하는 문제를 캐시 불일치 또는 캐시 무효화라고 한다. 이를 방지하기 위해서 캐시 일관성을 유지해야 한다.
- Write-through : 데이터를 쓸 때마다 캐시와 원본 데이터를 모두 갱신한다.
- Write-back : 데이터를 쓸 때는 캐시에만 저장하고, 나중에 캐시 데이터를 원본에 작성(flush)한다.
- Write Combining : 작은 쓰기 연산을 하나로 모아 한 번에 처리한다.
- 무효화(Invalidation) : 원본 데이터가 변경되면 해당 캐시 값을 무효화 한다.
원자적 연산(Atomic Operation)
- 원자적 연산은 연산의 단위 작업(instruction)들이 불가분의 단일 단계(single indivisible step)로 수행되는 것을 의미한다.
- 원자적 연산은 중간 상태 없이 연산이 전체적으로 완료되거나 아예 실행되지 않는 것을 보장한다.
핵심 속성
- 불가분성(Indivisibility)
- 원자적 연산은 어떤 다른 작업에 의해서도 중간에 간섭받거나 나뉠 수 없다. 연산이 완료되거나 전혀 실행되지 않는다.
- 고립성(Isolation)
- 하나의 원자적 연산이 실행되는 동안에는 다른 연산이 그 연산에 영향을 미칠 수 없다. 즉 다른 작업의 간섭 없이 고립된 상태에서 수행된다.
중요성
- 동시성 제어(Concurrency Control)
- 멀티스레드 프로그래밍에서 공유 데이터에 대한 동시 접근을 제어하는 데 사용된다. 원자적 연산을 통해서 데이터의 일관성을 유지할 수 있다.
- 트랜잭션 처리(Transaction Processing)
- 데이터베이스 시스템에서 트랜잭션은 원자적 연산의 집합으로 간주된다. 원자성(Atomicity)은 ACID 특성 중 하나이다.
- 낙관적 동시성 제어(Optimistic Concurrency Control)
- 다중 스레드/프로세스에서 공유 데이터에 대한 접근을 조정할 때 사용된다. 충돌이 발생하면 원자적 연산을 통해 롤백 또는 재시도가 가능하다.
구현 방법
- Lock을 사용하여 다른 스레드/프로세스가 해당 데이터에 접근하지 못하게 한다.
- 하드웨어 기반 Atomic Instruction을 사용한다.(예 : x86 프로세서의 LOCK 접두사, LL/SC 등)
- Software-based Solutions를 사용한다.(예 : Peterson's Algorithm, Bakery Algorithm 등)
728x90
'Study > TIL(Today I Learned)' 카테고리의 다른 글
24.06.01 이력서 (0) | 2024.06.01 |
---|---|
24.05.30 수료 (0) | 2024.06.01 |
24.05.28 복습 (0) | 2024.05.28 |
24.05.27 점핏 취업캠프 (0) | 2024.05.28 |
24.05.26 개인 복습 (0) | 2024.05.26 |