장치관리
·
CS/운영체제
컴퓨터 시스템의 구성필수 구성요소CPU와 메모리는 프로세스를 실행하기 위한 필수 자원이다.입출력 장치입출력(I/O) 장치는 데이터를 입력하거나 출력하는 데 사용예: 키보드, 마우스, 디스크, 프린터 등장치 관리자는 시스템의 모든 주변 장치를 제어하며, 입출력 자원의 효율적 사용과 균형을 유지입출력 장치의 구분1. 전용장치한 번에 하나의 프로세스에만 사용가능예: 테이프 드라이브, 프린터, 플로터 등 단점: 대기시간이 길어질 수 있음 2. 공용장치여러 프로세스에 동시에 접근 가능예: 디스크 같은 직접접근 저장장치스케줄링 기법 필요 3. 가상장치전용장치를 공용장치처럼 보이게 함디스크 같은 공용장치를 이용예: 스풀링된 프린터, 네트워크 프린터 장치의 구성 1. 논리적 구성운영체제가 장치를 제어하기 위해 사용하는..
인덱싱
·
CS/데이터베이스시스템
인덱스의 개념 인덱스의 필요성대량의 데이터에서 원하는 값을 빠르게 찾기 위해모든 데이터를 처음부터 끝까지 순차 탐색하면 매우 비효율적인덱스(index) 는 데이터를 빠르게 찾을 수 있도록 도와주는 부가적인 구조인덱스의 정의인덱스: 요청된 레코드에 빠르게 접근할 수 있도록 지원하는 탐색키 + 포인터 구조인덱싱(indexing): 인덱스를 구성하는 작업인덱스 종류 순서 인덱스 (Ordered Index)탐색키를 정렬된 순서대로 저장하는 인덱스범위 탐색에 유리하고, 이진 탐색 적용 가능해시 인덱스 (Hashed Index)탐색키를 해시 함수로 처리해 버킷 주소를 계산빠른 정확한 값 탐색에 적합하지만 범위 탐색에는 부적합인덱스 평가기준기준설명접근 시간인덱스를 통해 데이터를 찾는 데 걸리는 시간유지 비용삽입/삭제..
데이터 저장과 파일
·
CS/데이터베이스시스템
물리적 저장장치와 파일물리적 저장장치의 구성과 특징저장장치는 접근 속도, 용량, 가격 등을 기준으로 계층적 구조를 이룸저장장치특징속성레지스터CPU 내부에 위치, 매우 빠름, 용량 작음비휘발성캐시고속 접근 가능한 저장공간휘발성메인 메모리주 기억장치, 접근 빠름휘발성자기 디스크자성을 이용해 데이터 저장, 보조 저장장치비휘발성광학 디스크/자기 테이프CD, DVD, Blu-ray / 순차 접근, 매우 느림비휘발데이터베이스 구성요소파일: 데이터를 영구 저장하기 위한 논리적 단위블록: 파일을 일정 크기로 나눈 데이터 전송 단위 (메모리-디스크 사이 전송)레코드: 블록에 저장되는 최소 데이터 단위 (관계형 모델 기준) 고정 길이 레코드 고정적인 바이트 수를 갖는 레코드 저장 시 고려되는 기법 데이터 접근모든 레코드는..
그래프(2) - 크루스칼, 프림, 데이크스트라 알고리즘
·
알고리즘
최소 신장 트리(Minimum Spanning Tree) 신장 트리가중 무방향 그래프에서 모든 정점을 포함하는 트리최소 신장 트리신장 트리 중 간선 가중치의 합이 가장 작은 트리그래프 G=(V,E) 에 대해, 트리 G′=(V′,E′)는 V′=V, E′⊆E 크루스칼 알고리즘간선이 하나도 없는 상태에서 시작해서 가중치가 가장 작은 간선부터 하나씩 골라서 사이클을 형성하지 않으면 해당 간선을 추가하는 방식간선 (u,v)의 두 정점 u,v가 서로 다른 연결 성분에 속하면 해당 간선은 사이클을 형성하지 않음|V|=n개의 정점이 각각의 서로 다른 연결 성분으로 구성된 상태에서 시작해서 간선을 추가할 때마다 연결 성분들이 하나씩 합쳐지고 최종적으로 하나의 연결 성분을 형성함 과정 그래프의 모든 간선을 가중치 기..
페이지 교체 알고리즘
·
CS/운영체제
기본개념페이징 기법에서는 모든 페이지 프레임이 사용 중일 때 새로운 페이지를 적재하기 위해 교체 대상을 선택해야 함목표:앞으로 가장 오래 사용하지 않을 페이지를 교체하는 것 (이론적 최적)현실적으로 미래를 예측할 수 없기 때문에 좋은 근사 방법을 선택해야 함교체 제외 페이지페이징을 위한 커널 코드 영역보조기억장치 드라이버 영역시간을 맞춰 동작해야 하는 코드 영역 입출력장치를 위한 데이터 버퍼 영역 등 FIFO(First-In First-Out)메모리에서 가장 오래 있었던 페이지 교체 큐 이용 [Page1] → [Page2] → [Page3] → [Page4](Front) (Rear)새 페이지가 필요하면 Front(제일 오래된) 페이지 교체단점자주 사용하는 페이지도..
메모리 관리와 가상 메모리
·
CS/운영체제
프로세스와 메모리 프로세스의 동작 - 프로그램 카운터(PC)를 참조해 수행될 명령을 메모리에서 읽어 CPU로 수행하는것 기억장치 계층구조 종류특징CPU 레지스터가장 빠름 / 매우 비쌈 / 용량 가장 적음캐시 메모리CPU와 메모리 속도 차이를 줄이기 위한 고속 저장소주기억 장치 (메인 메모리, RAM)비교적 빠름 / 상대적으로 저렴 / 용량 중간보조 기억장치 (디스크, SSD, HDD 등)느림 / 매우 저렴 / 대용량 저장 가능메모리 관리 메모리 호출: 새로운 프로세스를 언제 메모리에 적재할지 결정메모리 배치: 프로세스를 메모리 어느 위치에 둘지 결정메모리 교체: 메모리가 가득 찼을 때 어떤 프로세스를 제거할지 결정단일 프로그래밍 환경 하나의 프로세스만 메모리를 전용으로 사용연속 메모리 할당 - 하나의 연..
그래프(1) - DFS, BFS, 위상정렬, 연결성분, 강연결성분
·
알고리즘
그래프의 기본G =(V, E) 그래프 G는 정점(Vertex)와 간선(Edge)으로 구성된다V: 정점(vertex)의 집합E: 간선(edge)의 집합 그래프 구현 방법인접 행렬 정점을 2차원 배열로 표현행과 열에 해당하는 두 정점 사이에 간선이 있으면 1(또는 가중치), 없으면 0공간복잡도 O(V^2) 정점수가 많으면 메모리 낭비 특정 두 정점간 연결 여부를 O(1)로 확인 정점: 0, 1, 2간선: (0-1), (1-2)인접 행렬:[ [0, 1, 0], [1, 0, 1], [0, 1, 0]] 인접 리스트각 정점마다 연결된 정점 리스트를 별도로 저장공간복잡도 O(V + E) (간선 수 만큼 메모리 사용 > 희소 그래프에 적합)정점마다 연결된 간선만 확인해 효율적임 0: [1]1: [0, 2]2: [1..
저장 객체 - 저장 프로시저/함수/트리거
·
CS/데이터베이스시스템
데이터베이스 언어의 특징SQLDBMS에 대한 강력한 작업 지시 기능을 제공인간의 언어와 매우 유사하고 간단, 명료비절차적 언어, 필요한 데이터만 기술비절차적 언어(non-procedural language)필요한 데이터만 기술하고 수행 절차는 기술하지 않음높은 가독성과 동작 순서에 대한 구체적 기술이 없어 오류가 상대적으로 적음프로그램의 성능 최적화, 디버깅, 오류 추적 및 복잡한 로직 구현에 한계 저장 객체의 이해저장 객체란SQL문을 확장하여 절차적으로 처리하기 위한 기능을 제공하는 언어 SQL/PSM(Stored Procedure Language) 기반의 확장 언어 저장 객체의 장단점장점네트워크 전송 효율: 클라이언트와 서버 간 데이터 교환량을 줄일 수 있음효율적 실행 속도: 서버 내에서 실행되므로 ..
정규화
·
CS/데이터베이스시스템
잘못된 데이터베이스 모델링 데이터의 중복 갱신이상 삽입 이상: 원치 않은 데이터도 함께 삽입되는 현상삭제 이상: 특정 데이터 삭제 시 원치 않은 정보까지 함께 삭제되는 현상수정 이상: 데이터를 수정할 때 모든 중복된 데이터를 수정하지 않아 발생하는 불일치 현상함수적 종속성의 이해함수적 종속성의 개념 릴레이션에서 한 속성의 값이 다른 속성의 값을 결정하는 관계표기법: X → Y함수적 종속성의 확장모든 함수적 종속성을 도출하는 데 중요한 기준추론 규칙(암스트롱 공리) 이용하여 확장된 클로저(Closure) 생성클로저(F+): 판별된 종속성 집합에서 유추 가능한 모든 종속성 집합함수적 종속성 추론 규직암스트롱 공리 재귀성 규칙: Y⊆X이면 X→Y부가성 규칙: X→Y이면 XZ→YZ이행성 규칙: X→Y, Y→Z이..