Computer Science

    [자료구조] 스택, 큐, 힙

    스택 스택의 개념 선형 자료구조의 일종 Last In First out(LIFO) 구조 차곡차곡 쌓이는 구조 나중에 들어간 원소가 먼저 나온다. 스택의 특징 같은 구조의 같은 크기의 자료를 정해진 방향으로만 쌓을 수 있고, top으로 정한 곳을 통해서만 접근 가능하다. 삭제는 top을 통해서만 가능하다. 스택의 연산 삭제 (pop()) : 스택에서 가장 위에 있는 항목을 제거한다. [O(1)] 삽입 (push(item)) : item 하나를 스택의 가장 윗부분에 추가한다. [O(1)] 읽기 (peek()) : 스택의 가장 위에 있는 항목을 반환한다. [O(1)] 스택 포인터(SP, Stack Pointer) push나 pop을 할 때 해당 값의 위치를 알고 있어야 하는데 스택 포인터가 위치를 기억한다. ..

    [자료구조] Array vs List, ArrayList vs LinkedList

    배열(Array) → 크기를 정해서 사용할 수 있는 연속적인 저장 공간 Array 선언 시 같은 자료형으로 메모리 상에 연속적으로 데이터를 저장할 수 있는 공간이 확보된다. 배열 초기화 시 메모리에 할당되어 ArrayList보다 속도가 빠르다. 시간 복잡도는 O(1) 단점 크기가 고정적이므로 고정된 크기보다 더 많은 데이터를 받으려는 경우 새로운 공간을 만들어 기존 데이터를 복사해주어야 한다. 효율적인 탐색을 위해 Array 데이터 사이에 비는 공간을 없이 만든다면 Array 중간에 데이터를 추가하거나 삭제할 때 빈 공간이 없도록 다수의 데이터를 옮겨야 한다. List(Linear List) → 데이터의 크기가 정해져 있지 않고, 삽입 삭제가 많이 일어나며, 검색이 적은 경우 유리. 항목들은 순서 또는 ..

    [컴퓨터 구조] 캐시 메모리(Cache Memory)

    캐시 메모리 속도가 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리입니다. CPU가 주기억장치에서 저장된 데이터를 읽어올 때, 자주 사용하는 데이터를 캐시 메모리에 저장한 뒤, 다음에 이용할 때 주기억장치가 아닌 캐시 메모리에서 먼저 가져오면서 속도를 향상시킵니다. 속도라는 장점을 얻지만, 용량이 적고 비용이 비쌉니다. CPU에는 캐시 메모리가 2~3개 정도 사용됩니다. * 듀얼 코어 프로세서의 캐시 메모리 → 각 코어마다 독립된 L1 캐시 메모리를 가지고, 두 코어가 공유하는 L2 캐시 메모리가 내장된다. L1 : CPU 내부에 존재 L2 : CPU와 RAM 사이에 존재 L3 : 보통 메인보드에 존재한다고 함 * 디스크 캐시 : 주기억장치(RAM)와 보조기억장치(하드디스크)..

    [컴퓨터 구조] CPU의 구조 및 작동 원리

    CPU가 하는 일 Central Processing Unit (중앙 처리 장치) → 프로그램을 실행하기 위해 메인 메모리에서 명령어를 인출하여 해독하고 실행한다. 연산 덧셈, 뺄셈, 곱셈 등의 산술 연산과 논리곱, 논리합, 부정 등의 논리 연산을 수행 제어 명령어를 순서대로 실행할 수 있도록 제어 저장 연산에 필요한 데이터, 연산 결과, 명령어 주소 등을 임시로 저장 CPU의 구조 레지스터(Register) CPU 내부에 있는 메모리 명령어 주소, 코드, 연산에 필요한 데이터, 연산 결과 등을 임시로 저장 고속 기억장치 다양한 종류가 있음(PC, IR, MBR 등) 제어 장치(Control Unit) 각 장치들의 동작을 결정하는 신호를 보낸다. 주기적장치에서 프로그램 명령어를 꺼내 해독하고, 그 결과에 ..