가상 메모리란 가상 메모리라는 것은 프로세스 전체가 메모리 내에 올라오지 않아도 실행 가능하다는 것을 의미합니다. 애플리케이션이 실행될 때, 실행에 필요한 일부분만 메모리에 적재되고, 나머지 부분은 디스크에 남게됩니다. 이렇게 메모리와 디스크를 병합하여, 하나의 가상 메모리처럼 동작하게 하는것입니다. 가상 메모리를 구현하기 위해서는 컴퓨터가 특수한 하드웨어 장치를 가지고 있어야 하는데 이를 MMU(Memory Managment Unit)이라 합니다. MMU는 논리 주소에 임의의 값을 더한 후 물리 주소에 접근할 수 있도록 해주는 장치입니다. 🤔 가상 메모리와 동적 적재의 차이점이 뭘까? 가상 메모리는 프로세스 전체가 메모리에 올라와 있지 않아도 실행이 가능합니다. 반면 동적 적재도 이와 비슷합니다. 비슷..
배경 매모리는 각각 주소가 할당된 일련의 바이트로 구성되어 있습니다. CPU는 program counter가 지시하는 대로 메모리로부터 다음에 수행해야할 명령어를 가져오는데, 그 명령어는 필요한 경우 추가적인 데이터를 가져올 수 있으며 반대로 데이터를 메모리로 내보낼 수 있습니다. 💡 기본 하드웨어 메인 메모리와 각 처리 코어에 내장된 레지스터들은 CPU가 직접 접근할 수 있는 유일한 범용 저장장치입니다. 기계 명령어들은 메모리 주소만을 인수로 취급하고, 디스크의 주소는 인수로 취급하지 않기 때문에 실행되는 모든 명령어와 데이터들은 CPU가 직접 접근할 수 있는 메인 메모리나 레지스터에 적재되어 있어야 합니다. 만약 데이터가 메인 메모리나 레지스터에 없다면 CPU가 그것을 처리하기 전에 적재해야 합니다...
서론 멀티 프로세스 애플리케이션 환경에서 여러 스레드가 한정된 자원을 사용하려고 서로 경쟁할 수 있습니다. 한 스레드가 자원을 요청했을 때, 그 시각에 그 자원을 사용할 수 없는 상황이 발생할 수 있고, 해당 스레드는 대기 상태로 들어가게 됩니다. 이처럼 대기중인 스레드들이 다시는 그 상태를 변경시킬 수 없으면 이런 상황을 교착 상태라 부릅니다. 스레드는 한정된 자원을 사용하기 위해서는 반드시 자원을 요청해야하고, 사용 후에는 반드시 방출해야 합니다. 스레드는 한정된 task를 수행하기 위해 필요한 만큼의 자원을 요청할 수 있습니다. 명백히 스레드가 요청한 자원의 수는 시스템에서 사용 가능한 전체 자원의 수를 초과할 수 없습니다. 세마포어에서 자원의 획득과 방출은 wait, signal 연산을 통해, 그..
협력적 프로세스는 시스템 내에서 다른 프로세스와 협력하여 서로의 프로세스에 영향을 주거나 영향을 받는 프로세스입니다. 협력적 프로세스는 논리 주소 공간(코드나 데이터)을 공유하거나 공유 메모리 또는 메시지 전달을 통해서만 데이터를 공유할 수 있는데 이러한 공유 데이터를 공유하게 되면 데이터 일관성이 깨질 수 있습니다. 그렇기 때문에 우리는 어떻게 공유 데이터에 대해 일관성을 보장할 수 있는지 살펴보겠습니다. Race Condition이란 우선 공유 데이터를 공유하면 어떻게 데이터 일관성이 깨질 수 있는지 파악해야합니다. 파악하기 위해서는 race condition(경쟁 상태)에 대해 간략하게 알 필요성이 있습니다. race condition이란 두 개 이상의 프로세스 또는 스레드가 하나의 리소스에 대해 ..
- Total
- Today
- Yesterday
- 자바 백엔드 개발자 추천 도서
- spring boot redisson sorted set
- transactional outbox pattern spring boot
- transactional outbox pattern
- spring boot redisson 분산락 구현
- polling publisher spring boot
- JDK Dynamic Proxy와 CGLIB의 차이
- space based architecture
- spring boot excel download oom
- spring boot redisson destributed lock
- redis sorted set으로 대기열 구현
- pipe and filter architecture
- 공간 기반 아키텍처
- spring boot excel download paging
- 트랜잭셔널 아웃박스 패턴 스프링부트
- service based architecture
- pipeline architecture
- java userThread와 DaemonThread
- java ThreadLocal
- spring boot 엑셀 다운로드
- 람다 표현식
- spring boot poi excel download
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- redis sorted set
- microkernel architecture
- redis 대기열 구현
- spring boot redis 대기열 구현
- 레이어드 아키텍처란
- @ControllerAdvice
- 서비스 기반 아키텍처
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |