전체 글
-
4. 교착상태전공 지식/데이터베이스 2022. 11. 21. 20:07
데드락? 교착상태? 출처: 위키피디아 OS에서 중요하게 다루는 문제로 데드락, 교착상태가 있다. OS에서 데드락을 안다는 가정하에 OS의 데드락을 간략히 설명하고 데이터베이스의 데드락을 보자. OS의 DeadLock, 교착상태란 둘 이상의 프로세스가 자원을 점유하고 다른 프로세스가 점유중인 자원을 요구하면서 무한정 기다리는 현상이다. 이런 이기적인 프로세스들은 상호배제, 점유대기, 비선점, 환형대기 4가지 조건하에 태어난다. 해결방법으로는 위의 4가지 조건 중 하나라도 만족하지 않게 애초에 방지하거나, 교착상태가 발생할거 같으면 자원을 할당하지 않고 회피하거나, 교착상태가 발생하든말든 냅두다가 발생하면 탐지하고 회복하는 방법이 있다. 데이터베이스에서의 데드락은 언제 왜 발생하고 어떻게 해결할까? 데이터베..
-
3. 트랜잭션전공 지식/데이터베이스 2022. 11. 21. 20:06
트랜잭션이란? 데이터베이스의 상태를 변화시키기 위해서 수행하는 작업의 최소 단위를 뜻한다. 여기서 작업의 단위는 질의어 한 문장을 뜻하는 것이 아니며, 이 작업 단위는 쪼개질 수 없다. 간단히 말해 여러 개의 질의어들이 묶인 작업의 한 단위를 의미하는데, 이 단위만큼 DB에 명령을 한 번에 반영한다. 예를 들어 A가 B에게 송금하는 경우를 생각해보자. A가 B에게 일정 금액을 송금했을 때, 정상적으로 송금이 완료되면 A의 계좌에서 해당 금액이 차감되고, B에 계좌에는 같은 금액이 추가되어야 한다. 이를 질의어로 표현해보면 아래와 같다. -- A 계좌에서 금액 차감 UPDATE 계좌 SET 잔액 = 잔액 - 10000 WHERE 이름 = 'A'; -- B 계좌에 금액 추가 UPDATE 계좌 SET 잔액 =..
-
2. 정규화카테고리 없음 2022. 11. 21. 20:05
데이터베이스 정규화(Normalization) 개념 정규화는 데이터의 중복성을 최소화하고 일관성 등의 유지를 통해 데이터베이스의 품질을 보장하고 성능 향상을 목적으로 수행합니다. 정규화를 통해 불필요한 데이터(redundancy)를 제거하고 이상현상이 있는 릴레이션을 무손실 분해하여 이상현상을 제거합니다. 이 과정에서 이상현상이 있는 릴레이션을 분해하여 여러 개의 릴레이션을 생성하게 됩니다. 이를 단계별로 구분하여 수행하는 것을 정규형이라고 하고 정규형이 높아질수로 이상현상은 줄어들게 됩니다. 데이터베이스의 정규화 데이터의 중복을 최소화하고 불필요한 데이터를 제거하는 작업을 통해 이상현상을 제거해 데이터베이스의 품질을 보장하고 성능을 향상하는 작업 그러면 이상현상이 무엇일까요? 이상현상(Anomaly) ..
-
1. 인덱스전공 지식/데이터베이스 2022. 11. 21. 20:04
Index란? Index(색인) : 책 속의 낱말이나 구절, 또 이에 관련한 지시자를 찾아보기 쉽도록 나열한 목록 이 단어는 어디있구나, 이 내용은 어디있구나 를 알려주는 페이지로 책이 100페이지가 있다면 위의 이미지와 같은 페이지가 1~2페이지는 존재할것이다. 대충 책의 1%가 인덱스 페이지라고 가정하자. 책 전체를 안훑어보고 1%만 훑어봐도 원하는 내용의 위치를 찾을 수 있다. 대충 찾는 속도가 100배 빨라졌다. 그럼 만약 책이 1000000011장으로 구성되어있다면 10000000장은 인덱스 페이지로 쓰일 것이다. 10000000장 중에 내가 원하는 내용의 위치가 적힌 페이지를 찾는건 100배 빨라졌다하더라도 답답할 따름이다. 따라서 인덱스 페이지 내에서도 원하는 내용이 적힌 페이지가 명시된 부..
-
# 04-2 스케줄러전공 지식/OS 2022. 11. 7. 20:09
1. 스케줄러란 정의 한정적인 메모리를 여러 프로세스가 효율적으로 사용할 수 있도록 다음 실행 시간에 실행할 수 있는 프로세스 중에 하나를 선택하는 역할 종류 (1) 장기 스케줄러(Long-term scheduler) / 잡 스케줄러(Job scheduler) - degree of multiprogramming 제어 - 디스크와 메모리 사이의 스케줄링 담당 - 어떤 프로세스에 메모리를 할당할여 ready queue로 보낼지 결정하는 역할 (2) 단기 스케줄러(Short-term scheduler) / CPU 스케줄러(CPU scheduler) - 메모리와 CPU 사이의 스케줄링 담당 - 어떤 프로세스를 running 상태로 전환 시킬지 결정하는 역할 (3) 중기 스케줄러(Mid-term scheduler..
-
# 06. 동기와 비동기카테고리 없음 2022. 11. 7. 14:15
1. Blocking & None-Blocking & Synchronous & Asynchronous Blocking 과 Non-blocking, Sync 와 Async 은 전혀 다른 개념이지만 같이 이해해야한다. 두 가지의 차이는 관점을 어디에 두냐에 따라 달라진다. Blocking / Non-blocking 은 호출된 함수가 호출한 함수에게 제어권을 바로 주느냐 안주느냐, Sync / Async 는 호출된 함수의 종료를 호출한 함수가 처리하느냐, 호출된 함수가 처리하느냐의 차이다. 바로 리턴하지 않으면 Blocking 바로 리턴하면 NonBlocking 호출되는 함수의 작업 완료를 호출한 함수가 신경쓰면 Synchronous 호출되는 함수의 작업 완료를 호출된 함수가 신경쓰면 Asynchronous ..