본문 바로가기

전체 글

(92)
가상메모리? 메모리란? 메모리란 프로그램과 프로그램 수행에 필요한 데이터 및 코드를 저장하는 장치 메모리는 크게 내부 기억장치인 주기억장치와 외부 기억장치인 보조 기억장치로 분류 가상메모리(Virtual Memory) 초창기 컴퓨터에서는 사용 가능한 RAM의 용량이, 가장 큰 실행 애플리케이션의 주소 공간보다 커야 했다. 그렇지 않을 경우 "메모리 부족" 오류에 의해 해당 애플리케이션을 실행할 수 없었다. 위와 같은 물리 메모리 크기의 한계를 극복하기 위해 나온 기술이다. 가상 메모리 기법은 애플리케이션을 실행하는 데 얼마나 많은 메모리가 필요한지에 집중하지 않고, 대신 애플리케이션을 실행하는 데 최소한 얼마만큼의 메모리가 필요한가에 집중하여 문제를 해결하고자 했다. 메모리 접근은 순차적이고 지역화되어 있기 때문에 ..
프로세스와 스레드 선행지식CPU : 중앙처리장치 초기의 컴퓨터는 멀티 태스킹이 불가능했다. 그러나 CPU 성능이 개선됨에 따라 Context Switching을 통해서 동시성을 구현하는 것이 가능해졌다. 동시성(Concurrency) : 동시에 실행되는 것 같이 보이는 것 2000년대 초반, 한계치 이상까지 CPU의 쿨럭을 끌어올리던 CPU 제조회사들은 2002년에 3Ghz 쿨럭을 돌파했다. 그러나 이로 인해 발생하는 발열, 엄청난 전력 소모로 인해 CPU의 작업 속도를 높이는데에 한계가 있음을 발견한다. 이에 쿨럭을 올리는 방향이 아닌, 코어의 면적을 넓히는 방향, 즉 멀티 코어 프로세서의 방향으로 나아가기 시작한다. 즉 코어 하나를 극한까지 끌어올리는 것이 아닌, 하게 된 것이다. 코어의 수를 늘려서 더 쉽게 CPU ..
인덱스를 사용하는 이유 DB를 사용하면서 데이터 양에 따라 실행 결과의 속도가 차이가 나는 것을 알고 있었다. 데이터의 양이 증가할 수록 실행 속도는 느려지고 WHERE 조건에서 필요한 데이터만 추출 후 사용하는 것이 좋다고 들었는데 보다 쿼리의 성능을 높이는 중요한 것은 인덱스를 활용한다는 것을 알게되었다. 인덱스란? 인덱스란 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다. 만약 우리가 책에서 원하는 내용을 찾는다고 하면, 책의 모든 페이지를 찾아 보는것은 오랜 시간이 걸린다. 그렇기 때문에 책의 저자들은 책의 맨 앞 또는 맨 뒤에 색인을 추가하는데, 데이터베이스의 index는 책의 색인과 같다. 데이터베이스에서도 테이블의 모든 데이터를 검색하면 시간이 오래 걸리기 ..