[OS] IPC
·
OS
IPC는 프로세스간 소통하는 방법이다. 프로세스는 independent 이거나 cooperating한다.independent한 프로세스의 경우 다른 프로세스에 영향을 주지 않지만,cooperating이 필요한 프로세스의 경우, 다른 프로세스에 영향을 주고받을 수 있다. 프로세스간 소통이라는게 말은 쉽지만, 일반적으로 프로세스에 할당된 메모리 공간은 해당 프로세스에 고유하기 때문에다른 프로세스가 접근할 수 없다. 이를 문제를 해결하는 방법이 IPC이다. IPC의 두 가지 모델공유 메모리 (Shared Memory Model)프로세스끼리 공유할 수 있는 메모리 공간을 생성하고 이 메모리를 통해 정보를 교환한다.(조금더 자세히 말하면, 어떤 프로세스가 공유하고싶은 실제 메모리 공간을 참조하는 메모리 공간을 생..
[MySQL] B-Tree 인덱스-1
·
Database
B-Tree는 데이터베이스의 인덱싱 알고리즘 중 가장 일반적으로 사용된다.B-Tree는 칼럼의 원래 값을 변형시키지 않고 인덱스 구조체 내에서는 항상 정렬된 상태로 유지한다. 페이지인덱스의 저장방식에 대해 이해하려면 페이지에 대한 이해가 필수이다.페이지는 디스크와 메모리(버퍼풀)에 데이터를 읽고 쓰는 최소 작업 단위이다. 일반적인 인덱스를 포함해 PK와 테이블 등은 모두 페이지 단위로 관리된다.따라서 페이지에 저장되는 개별 데이터의 크기를 최대한 작게 하여, 1개의 페이지에 많은 데이터들을 저장할 수 있도록 하는 것이 중요하다.페이지에 저장되는 데이터가 크기가 클수록 디스크 I/O가 많아지고, 메모리에 캐싱할 수 있는 페이지의 수가 줄어들 수 있다.(디스크I/O를 통해 페이지를 읽어오면 버퍼 풀이라는 메..
[MySQL] 인덱스
·
Database
인덱스는 데이터베이스 쿼리의 성능을 언급하면서 빼놓을 수 없는 부분이다. 디스크 읽기 방식그전에 인덱스에만 의존적인 용어는 아니지만 자주 언급되는 디스크 읽기 방식인 랜덤 I/O, 순차 I/O에 대해 간단히 알아보자. 컴퓨터의 CPU나 메모리처럼 전기적 특성을 띤 장치는 빠르게 성장했지만 디스크같은 기계식장치의 성능은 제한적으로 발전했다.최근 SSD드라이브가 활용되고 있지만 여전히 데이터 저장 매체는 컴퓨터에서 가장 느린 부분이다.따라서 데이터베이스의 성능 튜닝은 디스크 I/O를 얼마나 줄이느냐가 관건일 때가 상당히 많다. 디스크의 헤더를 움직이지 않고 한 번에 많은 데이터를 읽는 순차 I/O의 경우 SSD가 하드디스크에 비해 거의 비슷한 성능을 보이지만,결국 SSD의 장점은 랜덤 I/O가 빠르다는 것이..