우선 MMU의 정의부터 보고 가면 메모리 관리 장치(Memory Management Unit, 줄여서 MMU)는 CPU가 메모리에 접근하는 것을 관리하는 컴퓨터 하드웨어 부품이다. 가상 메모리 주소를 실제 메모리 주소로 변환하며, 메모리 보호, 캐시 관리, 버스 중재 등의 역할을 담당하며 간단한 8비트 아키텍처에서는 뱅크 스위칭을 담당하기도 한다. 예전에는 MMU가 따로 분리된 하드웨어였지만 최근의 아키텍처에서는 프로세서와 같은 칩에 회로로 삽입된다. 최신 아키텍처에서 MMU는 가상 주소공간을 2N비트 크기의 페이지들로 나눈다. 그 가운데 일부 페이지는 실제 메모리 주소의 한 페이지에 대응되는데, 대부분의 경우 가상 주소공간은 실제 메모리의 주소공간보다 크기 때문에 모든 페이지가 실제 메모리에 대응되는 ..
Mutex / Semaphore / Monitor / OS / 아래는 여러 글들을 바탕으로 내가 이해한 뮤텍스, 세마포어, 모니터 간의 차이점이다. 공통점은 세가지 모두 운영체제의 동기화 기법이라는 것이다. 우선 뮤텍스, 모니터와 세마포어의 차이는 개념적으로 전자(뮤텍스,모니터)는 상호배제를 함으로써 임계구역에 하나의 스레드만 들어갈 수 있다는 것이고 후자(세마포어)는 하나의 스레드만 들어가게도 할 수 있고 (binary semaphore) 여러개의 스레드가 들어가게 할 수도 있다(counting semaphore). 그럼 뮤텍스와 모니터의 차이는?가장 큰 차이는 뮤텍스는 다른 프로세스(애플리케이션)간에 동기화할 때 사용할 수 있다는 것이고 모니터는 하나의 프로세스(애플리케이션)내에 다른 스레드 간에 동..