목록분류 전체보기 (56)
CS 공부

캐시 메모리란 캐시 메모리는 CPU의 처리속도와 주기억장치의 접근 속도 차이를 줄이기 위해 사용하는 고속 Buffer Memory이다. CPU와 메인 메모리 사이에 존재한다고 말할 수 있는데, CPU내에 존재할 수도 있고 역할이나 성능에 따라서는 CPU밖에 존재할 수도 있다 빠른 CPU의 처리속도와 상대적으로 느린 메인 메모리에서의 속도의 차이를 극복하는 중간 버퍼 역할을 한다. 쉽게 표현하면 CPU는 빠르게 일을 진행하고 있는데, 메모리에서 데이터를 가져오고 가져가는데 느려서 중간에 미리 CPU에 전달될 데이터를 들고 서 있는 형태라고 말할 수 있다. 캐시메모리의 특징 - 캐시는 주기억장치와 CPU사이에 위치하며, 자주 사용하는 프로그램과 데이터를 기억 - 캐시 메모리는 메모리 계층 구조에서 가장 빠른..

CPU의 구성요소 연산 장치 산술 연산과 논리 연산을 수행한다. 연산에 필요한 데이터를 레지스터에서 가져오고, 연산 결과를 다시 레지스터로 보낸다. 제어 장치 명령어를 순서대로 실행할 수 있도록 제어한다. 레지스터 사이의 데이터 전송을 감시하고 ALU(연산 장치)의 동작을 지시하는 장치 전체 컴퓨터 시스템의 작동을 통제 지시하는 장치로, 주기억장치에서 적절한 순서로 명령을 꺼내고, 각 명령을 해석하여 그 결과에 따라 명령어 실행에 필요한 제어 신호를 기억장치, 연산장치, 입출력장치, 기타 부분으로 적절한 신호를 보내는 장치이다. 기억 장치에 축적되어 있는 일련의 프로그램 명령을 순차적으로 꺼내 이것을 분석 해독하여 각 장치에 필요한 지령 신호를 주고, 장치 간의 정보 조작을 제어하는 역할을 수행한다. 레..

컴퓨터 구조란 프로그램의 논리적 수행에 직접적인 영향을 주는 시스템의 특성 컴퓨터 구조와 서로 바꿔 쓰는 용어는 명령어 집합(instruction set architecture: ISA) 이 ISA는 명령어 형식, 명령어 연산코드, 레지스터들 명령어 및 데이터 기억장치를 정의해준다. 컴퓨터 조직이란 구조적 구격에서 정의한 사항들을 구현하기 위한 연산 유닛과 상호연결 방식을 말한다. EX) 비트수, I/O방식, 기억장치 주소지정 프로그래머에게 안 보이는 시스템 특성으로서 아키텍처에 비해 하드웨어에 좀 더 가깝다. 기능 1. 데이터 처리(Data processing) 2. 데이터 저장(Data Storage) 컴퓨터는 지나가는 데이터를 처리하지만 그 과정을 위해서는 컴퓨터는 필요한 데이터를 내부에 일시적으로..
레디스(Redis)는 Remote Dictionary Server의 약자로서, "키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템(DBMS)이다. 인메모리 상태에서 데이터를 처리함으로써 흔히 사용하는 관계형 DB나 문서형 DB보다 빠르고 가볍다. 운영중인 웹 서버에서 키-값 형태의 데이터 타입을 처리해야하고 I/O가 빈번히 발생해 다른 저장 방식을 사용하면 효율이 떨어지는 경우 사용 어마어마한 I/O를 발생시키는 데이터를 처리할 때 레디스를 사용해 데이터를 캐싱 처리하고, 일정한 주기에 따라 RDS에 업데이트를 한다면 RDS에 가해지는 부담을 크게 줄이고, 성능은 크게 향상할 수 있다. 많은 I/O를 예시로 들었지만 가장 많이 사용되는 건 역시 사..

Btree 추가 해야함 인덱스란 인덱스란 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다. 즉 데이터베이스의 index는 책의 색인과 같다. 인덱스를 활용하면, 데이터를 조회하는 SELECT 외에도 UPDATE나 DELETE의 성능이 함께 향상된다. 그러한 이유는 해당 연산을 수행하려면 해당 대상을 조회해야만 작업을 할 수 있기 때문이다. 만약 index를 사용하지 않은 컬럼을 조회해야 하는 상황이라면 전체를 탐색하는 Full Scan을 수행해야 한다. Full Scan은 전체를 비교하여 탐색하기 때문에 처리 속도가 떨어진다. 인덱스(index)의 장점과 단점 장점 테이블을 조회하는 속도와 그에 따른 성능을 향상시킬 수 있다. 전반적인 시스템의 부..

이상이란 이상이란 릴레이션에서 일부 속성들의 종속이나 데이터의 중복으로 인해 데이터 조작시 불일일치가 발생하는 것을 말한다. 테이블을 설계할 때 잘못 설계하여 데이터를 삭제,수정,삽입할 때 논리적으로 오류가 생기는 것이다. 대부분 이상현상이 발생하는 데이터의 중복성때문인데 이를 제거하는 과정이 정규화이다. 이상 현상의 종류 갱신 이상 릴레이션에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상 반복된 데이터 중에 일부를 갱신 할 시 데이터의 불일치가 발생한다. 삽입 이상 자료를 삽입할 때 의도하지 않은 자료까지 삽입해야만 자료를 테이블에 추가가 가능한 현상 불필요한 정보를 함께 저장하지 않고서는 어떤 정보를 저장하는 것이 불가능하다. 삭제 이상 어떤 정보를 삭제하..

트랜잭션 관리를 위한 DBMS의 전략 DBSM의 구조는 크게 2가지이다. 1. 질의 처리기 2. 저장 시스템 페이지 버퍼란 DBMS의 저장시스템에 속하는 모듈로 메인 메모리에 유지하는 페이지를 관리하는 모듈이다. Buffer 관리 정책에 따라 UNDO 복구와 REDO 복구가 요구되거나, 그렇지 않게 되므로, 트랜잭션 관리에 매우 중요한 결정을 가져온다. UNDO UNDO란 아직 완료되지 않은 트랜잭션이 수정한 페이지들도 디스크에 출력될 수 있다. 따라서 만약 해당 트랜잭션이 어떤 이유든 정상적으로 종료될 수 없게 되면 트랜잭션이 변경한 (디스크에 출력된, 혹은 메모리 버퍼의) 페이지들은 원상 복구되어야 한다. 이러한 복구를 UNDO라고 한다. 하지만, 이 부분은 매력적이지만 매우 큰 메모리 버퍼가 필요하..

트랜잭션이란? 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위 데이터베이스의 상태를 변환시키는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다. 트랜잭션의 성질 원자성(Atomicity) 1-1. 트랜잭션이 데이터베이스에 모두 반영되던가, 아니면 전혀 반영되지 않아야 한다는 것이다. 트랜잭션은 사람이 설계한 논리적인 작업 단위로서, 일처리는 작업단위 별로 이루어 져야 사람이 다루는데 무리가 없다. 1-2. 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느하나라도 오류가 발생하면 트랜잭션 전부가 취소되어야 한다. 일관성(Consistency) 2-1. 트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 한다는 것 2-2. 시스템이 가지고 있는 고정요..