본문 바로가기

전체 글

(34)
주변장치 연결 방식(버스) - 버스는 마이크로프로세서가 부착된 컴퓨터 마더 보드와 확장 슬롯에 부착된 장치들 간에 데이터가 움직이는 통로를 의미한다. - 버스를 통해 동시에 전달될 수 있는 비트의 수를 버스 폭이라고 하며, 버스 폭에 따라 16비트, 32비트 등 한 번에 전달될 수 있는 데이터의 크기가 일정하게 되어 있다. - 버스의 종류에는 제어 버스, 어드레스 버스, 데이터 버스가 있으며 제어 버스와 어드레스 버스는 제어의 흐름이 단방향성이며, 데이터 버스는 양방향성이다. 버스의 종류 PCI(Peripheral Component Interconnect) 버스 - 개인용 컴퓨터의 중앙 처리 장치와 주변장치를 연결하는 ISA나 EISA, VESA의 후속으로 개발된 로컬 버스의 규격으로써 고속 운영을 위해 마이크로프로세서와 가깝게 ..
파이프라인 파이프라인 제어방식 - 하나의 프로세서를 서로 다른 기능을 가진 여러 개의 서브프로세서로 나누어, 각 서브프로세서가 동시에 서로 다른 데이터를 취급하도록 하는 기법으로 이때 기능별로 나누어진 서브프로세서를 세그먼트 또는 단계라고 한다. - 프로그램에 내재하는 시간적 병렬성을 활용하기 위하여 프로그램 수행에 필요한 작업을 시간적으로 중첩하여 수행시키는 처리기이다. - 각 세그먼트들의 부연산 수행속도가 다르지만 클록 사이클은 최대로 긴 세그먼트의 연산 속도에 맞추어져 있으므로 시간의 낭비가 있을 수 있다. 파이프라인 해저드 - 각 클럭 사이클 동안에 정상적으로 명령어들이 중첩하여 수행되지 못하는 문제 구조적 해저드 - 파이프라인 각 단계별로 각 자원들을 독립적으로 사용할 수 없어 발생한다. - 하드웨어를 추..
캐시메모리 - 캐시는 최근에 사용했거나 자주 사용되는 내용을 저장한다. - CPU와 주기억장치 사이에 있는 고속 메모리에 주기억장치 내용의 일부를 카피해 두고 메모리 참조의 국부성을 이용하여 블록 단위로 데이터를 전송한다. - 캐시의 용량이 클수록 적중률이 높아지지만 주소 해독 및 정보 인출을 위한 주변 회로가 더 복잡해지기 때문에 액세스 시간이 다소 더 길어진다. - 특정한 정보가 필요한 경우 먼저 고속의 캐시에 있는지를 조사하여 있으면 직접 사용하고, 그렇지 않으면 저속의 하위 장치에 있는 정보를 사용하는데, 만일 이 정보가 다시 사용될 확률이 높으면 캐시에 복사한다. - 가장 빠르고 융통성 있는 캐시 구조는 연관기억장치를 사용하는 것이다. - 원하는 내용이 캐시메모리에 있는 경우는 Hit이고, 없는 경우는 M..
내부 정렬 선택 정렬 - 레코드의 이동 횟수를 줄이려는 목적에서 개발되었으며, 자료 중에서 최솟값 또는 최댓값을 선택해 가면서 리스트의 처음이나 마지막으로 이동하는 방식 - 키 비교 횟수를 정확히 산출할 수 있으나 정렬 도중에 이미 정렬이 완료된 경우라도 이를 확인할 수가 없다. 최대 비교 횟수는 n(n-1)/2 이므로 O(n^2)이 된다. 거품 정렬 - 인접한 레코드의 키 값을 비교해서 그 크기에 따라 교환하는 방식으로, 각 단계마다 가장 큰(작은) 키 값을 갖는 레코드를 마지막에 위치시킨다. - 이미 정렬이 부분적으로 완료되어 있는 상태에서는 사실상 이들 레코드들의 키 값을 비교할 필요가 없는데도 불필요하게 비교 작업이 반복되는데, 이때 flag를 사용하면 이런 단점을 보완할 수 있다. - 이렇게 하면 n개의 ..
정렬 정렬의 종류 내부정렬 - 정렬하고자 하는 파일을 주기억장치에 모두 넣고 정렬하는 방법으로, 정렬 속도가 빠르고 처리하는 데이터양이 적을 경우 적합 삽입법 : 삽입정렬, 쉘정렬 교환법 : 버블정렬, 퀵정렬 선택법 : 선택정렬, 힙정렬 합병법 : 2원 합병정렬 분배법 : 기수정렬 외부정렬 -정렬하려는 파일의 크기가 너무 커서 주기억장치에 모두 적재할 수 없는 경우, 파일을 보조기억장치에 두고 정렬하는 방법으로 속도가 느리다. 디스크를 사용 : k-원 합병정렬 테이프를 사용 : 균형 합병정렬, 다단계 합병정렬, 계단식 합병정렬, 진동 합병정렬 정렬 방법에 따른 분류 비교 정렬 - 각 레코드의 키 값을 두 개씩 비교하여 교환하는 정렬 방법으로 선택 정렬, 삽입 정렬, 쉘 정렬, 퀵 정렬, 버블 정렬, 힙 정렬,..
그래프(Grape) - 그래프 G는 집합 V와 정점 사이의 관계를 나타내는 연결선의 집합 E로 구성된다. 여기서 그래프의 두 집합 정점과 간선은 유한하다고 가정하며, G = (V, E)로 표기한다. - 정점(Vertex) V는 공집합이 아닌 정점들의 유한 집합이다. - 간선(Edge) E는 공집합도 허용하는 간선들의 유한 집합이다.(정점들의 쌍으로 표현) - 정점의 차수는 그 정점에 부수(incident)된 간선들의 수이다. - 위상순서, 최단경로, 작업 네트워크 등에 이용한다. - 임의의 유한집합 S에 대한 이항관계(Binary Relation)는 무방향 그래프 혹은 방향 그래프로 나타낼 수 있다. - 그래프를 인접행렬로 표현했을 때 무방향 그래프는 반드시 대칭인 반면, 방향 그래프에서는 대칭이 아닐 수도 있다. 무방향 ..
트리(Tree) - 비선형구조로서, 정점(Vertex)과 선분(Arc)으로 이루어진 그래프의 특수한 경우이다. - 트리는 어떠한 두 정점 사이에도 사이클(Cycle)이 존재하지 않는 연결그래프로써 임의의 두 노드 사이의 경로는 오직 하나만 존재한다. - 트리의 알고리즘은 순환적(Recursive)이며, 트리 T에서 임의의 한 Edge를 제거하면 트리 T는 더 이상 연결되지 못한다. 특징 - 트리의 루트를 제거하면 Forest(사이클은 없지만 연결되지 않은 무방향 그래프)가 된다. - 루트가 아닌 노드의 부모 노드는 유일하게 결정된다. 즉, 트리에서 루트를 제외한 나머지 모든 노드들은 선행자가 하나만 존재한다. - 트리 구조에서 간선 수 e와 노드 수 n의 관계는 항상 e = n+1이다. - 이진트리에서는 서브트리를 왼쪽..
큐(Queue) - 입출력이 서로 반대쪽으로 이루어지는 제한구조이다. 즉, 자료는 입력된 순서대로 출력되는 선입선출(FIFO) 방식이다. - 한쪽 끝에서 삽입이 일어나고 반대쪽으로 끝에서 삭제가 일어나는 선형 리스트이다. - 큐의 각 항목들을 동일한 데이터 형태이다. 특징 - 임의의 우선순위를 가진 원소를 우선순위 큐에 언제든지 삽입할 수 있고, 우선순위가 가장 높은(또는 가장 낮은) 원소를 먼저 삭제한다. 이러한 두 연산을 지원하는 자료 구조를 최대(최소) 우선순위 큐라고 하며 구현 방법으로는 최대(최소) heap을 사용한다. - 큐는 스택과 마찬가지로 배열이나 연결리스트로 구현이 가능하다. 응용 - 작업스케줄링, 전철역에서 개찰구를 통과 - 버퍼, 스풀, Radix 정렬시 버킷으로 이용 - 그래프 너비 우선 탐색(B..