전공 (37) 썸네일형 리스트형 [데이터베이스] 트랜잭션 - (1) 트랜잭션(transaction) 개념 트랜잭션(transaction)은 다양한 데이터 항목에 접근하고 갱신하는 프로그램 수행의 단위이다. 데이터 무결성을 보존하기 위해서 데이터베이스 시스템은 다음과 같은 트랜잭션 성질을 보장해야 한다. 1. 원자성(atomicity): 트랜잭션의 모든 연산이 정상적으로 수행되거나 아니면 어떠한 연산도 수행되지 않은 원래 상태가 되도록 해야 한다. -> 복구 시스템(recovery system) 2. 일관성(consistency): 고립 상태에서 트랙잭션 수행이 데이터베이스의 일관성을 보존해야 한다. 3. 고립성(isolation): 여러 트랜잭션이 동시에 수행되더라도, 각 트랜잭션은 다른 트랙잭션이 동시에 수행되고 있는지를 알지 못하는 것과 같아야 한다. -> 동시성 제.. [운영체제] CPU 스케줄링: 실시간 CPU 스케줄링 - (3) Earliest-Deadline-First 스케줄링(EDF Scheduling) Earliest-Deadline-First(EDF) 스케줄링 기법은 마감시간(deadline)에 따라서 우선순위를 동적으로 부여한다. 마감시간이 빠를수록 우선순위가 높아지고, 늦을수록 우선순위가 낮아진다. 프로세스는 실행 가능한 상태가 되면, 시스템에 마감시간을 알려야 한다. 우선순위는 새로 실행 가능한 프로세스의 마감시간을 반영해서 조정된다. RM 스케줄링과 달리, EDF 스케줄링은 프로세스들이 주기적일 필요도 없고, CPU burst time이 상수일 필요도 없다. 대신 프로세스는 실행 가능할 때 스케줄러에게 마감시간을 알려야 한다. 이론적으로 EDF 스케줄링은 각 프로세스의 마감시간 요구를 만족시키고 CPU 이용률이 1.. [운영체제] CPU 스케줄링: 실시간 CPU 스케줄링 - (2) 우선순위 기반 스케줄링(Priority-Based Scheduling) 실시간 OS의 가장 중요한 기능은 실시간 프로세스에 CPU가 필요할 때 즉시 응답을 해주는 것이다. 따라서, 실시간 OS의 스케줄러는 선점형 우선순위 기반 알고리즘을 지원한다. 이는 프로세스의 중요도에 따라 우선순위를 부여하고, 현재 CPU를 사용하고 있는 프로세스가 더 높은 우선순위를 가지는 프로세스에 의해 선점될 수 있다. 선점형 우선순위 기반의 스케줄러를 제공하는 것은 연성 실시간 시스템(soft real-time system) 임을 보장해준다. 하지만, 경성 실시간 시스템(hard real-time system)은 마감시간(deadline) 내에 수행되는 것을 보장해야 하므로, 부가적인 스케줄링 기법이 필요하다. 스케줄링될 프.. [운영체제] CPU 스케줄링: 실시간 CPU 스케줄링 - (1) 실시간 CPU 스케줄링(Real-Time CPU Scheduling) 실시간 시스템(real-time system)의 두 가지 종류 1. 연성 실시간 시스템(soft real-time system) 중요한 실시간 프로세스가 언제 스케줄링되는 지를 보장하지 않는다. 중요한 프로세스가 덜 중요한 프로세스보다 우선적으로 스케줄링된다는 것만 보장한다. 2. 경성 실시간 시스템 (hard real-time system) 태스크는 반드시 마감시간(deadline)까지 서비스되어야 한다는 것을 보장한다. 지연시간 최소화(Minimizing Latency) - 실시간 시스템의 event-driven 특성 실시간 시스템은 실시간으로 발생하는 이벤트를 기다린다. 이때, 이벤트는 타이머 만료와 같은 소프트웨어적 이벤트이거나.. [운영체제] CPU 스케줄링: multiprocessor 스케줄링 - (3) Heterogeneous Multiprocessing(HMP) - Heterogeneous multiprocessing(이기종 다중처리, HMP)란? 클럭 속도, 전력 관리 측면에서 코어들이 기능적으로 다르게 설계된다. 이때, 시스템/사용자 태스크는 모든 코어에서 실행될 수 있으므로 AMP(asymmetric multiprocessing) 형태는 아니다. HMP의 목적은 태스크의 특정 요구에 따라 특정 코어에 할당하여 전력 소비를 더 잘 관리하는 것이다. 예시) ARM 프로세서의 big.LITTLE big core: 더 많은 에너지를 소비하므로 짧은 시간 동안만 사용해야 한다. little core: 더 적은 에너지를 소비하므로 더 오랫도안 사용할 수 있다. - HMP의 장점 느린 코어와 빠른 코어의 결.. [데이터베이스] 저장 장치 관리 및 인덱싱: 인덱싱 $B^{+}$-트리 인덱스 $B^{+}$-트리는 다음과 같은 속성을 만족하는 루트 트리(rooted tree)이다. 트리의 루트 노드(root node)에서 단말 노드(leaf node)까지 모든 경로(path)의 길이가 같다. (균형 트리(balanced tree)이다.) 루트 노드나 단말 노드가 아닌 각 노드는 $\left \lceil n/2 \right \rceil$에서 n 사이의 자식(children)을 가진다. 단말 노드는 $\left \lceil (n - 1)/2 \right \rceil$에서 (n - 1)사이의 자식을 가진다. 만약 루트 노드가 단말 노드가 아니면, 루트 노드는 2에서 n사이의 자식을 가진다. 만약 루트 노드가 단말 노드이면, 루트 노드는 0에서 (n-1)사이의 자식을 가진다.. [데이터베이스] 저장 장치 관리 및 인덱싱: 데이터 저장 장치 구조 데이터 사전 저장소(Data Dictionary Storage) 릴레이션 스키마와 같은 데이터에 대한 데이터를 메타데이터(metadata)라고 하고, 이는 데이터 사전(data dictionary)이라고 불리는 구조에 저장된다. 메타데이터에는 릴레이션에 대한 정보, 사용자와 계정에 대한 정보, 릴레이션 및 속성에 대한 통계 및 설명 데이터, 물리적 파일 구성 정보, 릴레이션의 인덱스에 대한 정보와 같은 정보들이 있다. 데이터베이스 버퍼(Database Buffer) 데이터베이스 파일은 블록(block)이라고 불리는 고정된 길이의 저장 단위로 저장되고, 이 블록은 디스크 할당(storage allocation)과 데이터 전송(data transfer)의 기본 단위이다. - (메인 메모리) 블록의 종류 1... [데이터베이스] 저장 장치 관리 및 인덱싱: 물리적 저장 장치 구조 저장 장치 계층(Storage Hierarchy) 1. 캐시(cache) : 저장 장치 중 가장 빠르고 비싸고, 크기가 상대적으로 작은 저장 장치이다. 2. 메인 메모리(main memory) : 연산에 사용할 데이터를 저장하기 위한 저장 장치이다. 휘발성 메모리이다. 3. 플래시 메모리(flash memory) : 비휘발성 메모리이다. SSD(solid-state drive) - 내부적으로 플래시 메모리를 사용해서 저장하지만 자기 디스크와 유사한 인터페이스를 제공한다. 4. 자기 디스크 저장 장치(magnetic-disk storage) : 온라인으로 장기간 데이터를 저장하기 위한 저장 장치 이다. 비휘발성 메모리이다. 하드 디스크 드라이브(hard disk drive, HDD)라고도 한다. 5. 광학.. 이전 1 2 3 4 5 다음