본문 바로가기

CS

(20)
멀티 프로세스 프로그램 - 하드디스크에 저장된 실행 파일 - 실행하지 않는 이상 하드디스크에 계속 남아 있으며, 같은 경로에 같은 이름으로 동시에 존재할 수는 없다. 프로세스 - 실행 중인 프로그램에 대한 인스턴스 - 프로세스는 운영체제로부터 각각 독립된 자원(code, data, stack, heap, PC register 등)을 할당받는다. - 각 프로세스는 최소 1개 이상의 쓰레드를 가지고 있다. - 다른 프로세스의 자원에 접근하려면, 프로세스 간 통신(IPC : 세마포어, 큐, 공유메모리)을 이용해야 한다. - 유닉스 계열에서 ps 명령어로 현재 수행되고 있는 프로세스를 확인할 수 있다. 멀티프로세스 단일 코어 CPU에서 여러 개의 실행 흐름이 동시에 필요하다고 가정하면, 실행 흐름사이에서 데이터를 공유해야 한..
CISC와 RISC CISC(Complex Instruction Set Computer) 란? 연산을 처리하는 복잡한 명령어들을 수백 개 이상 탑재하고 있는 프로세서입니다. CISC는 명령어 개수 증가에 따라 프로세서 내부구조가 매우 복잡해지고, 고속으로 작동되는 프로세서를 만들기 힘듭니다. 여기서 명령어가 복잡하다는 것의 의미는 하나의 명령어가 할 수 있는 일의 양이 RISC 대비하여 많다는 것을 의미합니다. 명령어 마다 길이가 다르고, 실행에 필요한 사이클 수도 다르기 때문에 pipelining 설계가 어려우며 한 바이트 명령어부터 100바이트이상 되는 명령어들도 있습니다. CISC의 특징 - 명령어의 개수가 많음 - 명령어 길이가 다양하며, 실행 사이클도 명령어 마다 다름 - 회로구성이 복잡함 - 프로그램을 만들 때 ..
주변장치 연결 방식(버스) - 버스는 마이크로프로세서가 부착된 컴퓨터 마더 보드와 확장 슬롯에 부착된 장치들 간에 데이터가 움직이는 통로를 의미한다. - 버스를 통해 동시에 전달될 수 있는 비트의 수를 버스 폭이라고 하며, 버스 폭에 따라 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)는 무방향 그래프 혹은 방향 그래프로 나타낼 수 있다. - 그래프를 인접행렬로 표현했을 때 무방향 그래프는 반드시 대칭인 반면, 방향 그래프에서는 대칭이 아닐 수도 있다. 무방향 ..