본문 바로가기

반응형

Computer Science

[운영체제(OS)] 3. 프로세스(Process) [목차] 1. Process 2. Process State 3. Process Control Block (PCB) 4. Context Switch 5. Process Scheduling 6. Process Management 7. Cooperating Processes 참고) - https://parksb.github.io/article/7.html - KOCW 공개강의 (2014-1. 이화여자대학교 - 반효경) - Sogang Univ. Operating System Lecture Note (2018-2. Prof. Youngjae Kim) 1. Process 프로세스(Process)는 쉽게 말해 '실행 중인 프로그램'이다. 더 정확히 말하면, 디스크에 있는 프로그램이 메모리에 로드되면 프로세스가 된다..
[운영체제(OS)] 2. 시스템 구조(System Structures) [목차] 1. System Call 2. Operating-System Services 3. Operating-System Structure 참고) - https://parksb.github.io/article/6.html - KOCW 공개강의 (2014-1. 이화여자대학교 - 반효경) - Sogang Univ. Operating System Lecture Note (2018-2. Prof. Youngjae Kim) 1. System Call 시스템 콜(System Call)은 커널과 사용자 프로그램을 이어주는 인터페이스 역할을 한다. 사용자 프로그램이 디스크에 있는 파일을 여는 것은 파일 시스템에 접근한다는 의미다. 시스템에 접근하기 위해서는 커널 모드로 전환되어야 하는데, 이때 시스템 콜을 사용한다...
[운영체제(OS)] 1. Overview [목차] 1. Operating System? 2. Operating System Type 3. Computer System Organization 4. Interrupt 5. Storage Structure 6. Computer System Architecture 7. Operating System Architecture 8. Operating System Operation for Protection 참고) - https://parksb.github.io/article/5.html - KOCW 공개강의 (2014-1. 이화여자대학교 - 반효경) - Sogang Univ. Operating System Lecture Note (2018-2. Prof. Youngjae Kim) 1. Operating Sy..
[DB] 11. 인덱스(Index) - (1) 개념, 장단점, B+Tree 등 [목차] 1. 인덱스(Index)란? 2. 인덱스(Index)의 장단점 3. 인덱스를 사용하면 좋은 경우 4. 인덱스의 자료 구조 1. 인덱스(Index)란? 인덱스(Index)는 데이터베이스의 테이블에 대한 검색 속도를 향상시켜주는 자료구조이다. 테이블의 특정 컬럼(Column)에 인덱스를 생성하면, 해당 컬럼의 데이터를 정렬한 후 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장된다. 컬럼의 값과 물리적 주소를 (key, value)의 한 쌍으로 저장한다. 인덱스는 책에서의 목차 혹은 색인이라고 생각하면 된다. 책에서 원하는 내용을 찾을 때 목차나 색인을 이용하면 훨씬 빠르게 찾을 수 있는데, 마찬가지로 테이블에서 원하는 데이터를 찾기 위해 인덱스를 이용하면 빠르게 찾을 수 있다. 그러므로 데이..
[DB] 10. B-Tree (B-트리) [목차] 1. B-Tree란? 2. B-Tree의 key 검색 3. B-Tree의 key 삽입 4. B-Tree의 key 삭제 참고) emplam27.log 블로그 https://hyungjoon6876.github.io/jlog/2018/07/20/btree.html https://helloinyong.tistory.com/296 1. B-Tree란? B-Tree는 탐색 성능을 높이기 위해 균형 있게 높이를 유지하는 Balanced Tree의 일종이다. 모든 leaf node가 같은 level로 유지되도록 자동으로 밸런스를 맞춰준다. 자식 node의 개수가 2개 이상이며, node 내의 key가 1개 이상일 수 있다. node의 자식 수 중 최댓값을 K라고 하면, 해당 B-Tree를 K차 B-Tree라..
[DB] 9. 트랜잭션(Transaction) - (4) 고립화 수준, 회복 기법 [목차] 1. 트랜잭션 고립화 수준 2. 트랜잭션 회복 기법 1. 트랜잭션 고립화 수준 트랜잭션 고립화 수준(Transaction Isolation Level)은 트랜잭션의 독립성, 고립성을 유지하기 위해 데이터에 대한 접근을 허용하는 수준을 말한다. 로킹(Locking) 기술을 기반으로 고립화 수준을 조정하며 총 4개의 레벨로 구성되어있다. 고립화의 수준에 따라 발생할 수 있는 문제점들이 있는데, 수준이 높아질수록 문제점이 줄어드는 형태이다. 다음과 같은 문제점들이 발생할 수 있다. 1) 부정 판독(Dirty Read) 부정 판독은 다른 트랜잭션에 의해 수정되었지만 아직 커밋되지 않은 데이터를 읽는 것을 말한다. 트랜잭션 T1이 특정 데이터를 갱신한 후 T2가 해당 데이터를 읽은 다음 T1이 Rollb..
[DB] 9. 트랜잭션(Transaction) - (3) 병행 제어, 로킹, 타임스탬프 [목차] 1. 병행 제어(Concurrency Control)란? 2. 병행의 문제점 3. 병행 제어 기법 1. 병행 제어(Concurrency Control)란? 병행 제어에 앞서, 먼저 병행에 대해서 알아보자. 병행(Concurrency)은 매우 빠르게 여러 트랜잭션 사이를 이동하면서 조금씩 처리를 수행하는 방식이다. 따라서 실제로는 한 번에 한 트랜잭션만 수행하지만, 마치 동시에 여러 트랜잭션을 수행하는 것처럼 보이도록 하는 것이다. 병행 제어(Concurrency Control)는 이렇게 트랜잭션이 병행 수행될 때 트랜잭션이 데이터베이스의 일관성을 파괴하지 않고, 다른 트랜잭션에 영향을 주지 않도록 트랜잭션 간의 상호작용을 제어하는 것을 말한다. 병행 제어의 목적은 다음과 같다. 데이터베이스의 일..
[DB] 9. 트랜잭션(Transaction) - (2) 트랜잭션 스케줄 & 충돌, 뷰 직렬 [목차] 1. 트랜잭션 스케줄 2. 충돌 직렬 가능 3. 뷰 직렬 가능 1. 트랜잭션 스케줄 데이터베이스에서 여러 트랜잭션이 동시에 수행될 때, 수행되는 트랜잭션의 순서에 따라서 결과가 달라질 수 있다. 이때 처리하는 순서를 스케줄이라고 한다. 트랜잭션 스케줄은 크게 3가지로 이루어져 있다. 직렬(Serial) 스케줄 : 트랜잭션 별로 연산을 순차적으로 수행하는 것 비직렬(Non-serial) 스케줄 : 인터리빙(Interleaving) 방식을 이용하여 트랜잭션들을 병행하여 수행하는 것 직렬 가능(Serializable) 스케줄 : 직렬성을 가진 스케줄. 트랜잭션이 동시에 수행되더라도 직렬 스케줄과 동일한 결과를 갖는 것 2. 충돌 직렬 가능 스케줄에 따라 결과가 달라지는 이유는 충돌(Conflict)이..