Github & Portfolio
전체 글(206)
-
[운영체제] 멀티 프로세스 vs 멀티 쓰레드
멀티 프로세스 하나의 프로개름을 여러 개의 프로세스로 구성하여 각 프로세스가 1개의 작업을 처리하도록 하는 것 특징 장점 1개의 프로세스가 죽어도 자식 프로세스 이외의 다른 프로세스들은 계속 실행된다. 단점 Context Switching을 위한 오버헤드(캐시 초기화, 인터럽트 등)가 발생한다. 프로세스는 각각 독립적인 메모리를 할당받았기 때문에 통신하는 것이 어렵다. 멀티 쓰레드 하나의 프로그램을 여러 개의 쓰레드로 구성하여 각 쓰레드가 1개의 작업을 처리하도록 하는 것 특징 장점 프로세스를 위해 자원을 할당하는 시스템콜이나 Context Switching의 오버헤드를 줄일 수 있다. 쓰레드는 메모리를 공유하기 때문에, 통신이 쉽고 자원을 효율적으로 사용할 수 있다. 단점 하나의 쓰레드에 문제가 생기면..
-
[운영체제] 프로세스 vs 쓰레드
메모리란? 메모리는 컴퓨터에서 작업을 수행하기 위해 처리 대상이나 결과 등을 저장하기 위한 공간이다. 프로그램을 실행하기 위한 정보들은 메모리에 저장되어 처리된다. 프로세스와 쓰레드의 차이 프로세스(Process) 메모리에 올라와 실행되고 있는 프로그램의 인스턴스 특징 운영체제로부터 독립된 메모리 영역을 할당받는다.(다른 프로세스의 자원에 접근 X) 프로세스들은 독립적이기 때문에 통신하기 위해 IPC를 사용해야 한다. 프로세스는 최소 1개의 쓰레드(메인 쓰레드)를 가지고 있다. PCB(Process Control Block, 프로세스 제어 블록) PCB는 특정 프로세스에 대한 중요 정보를 저장하고 있는 운영체제의 자료구조다. 운영체제는 프로세스를 관리하기 위해, 프로세스의 생성과 동시에 고유한 PCB를 ..
-
[2021-07-07] Today I Learned
👉 Computer Science 데이터베이스 동시성 제어(Currency Control) 트랜잭션 고립 수준(Transaction Isolation Level) 회복(Recovery) 👉 회고 데이터베이스 진도가 끝이 났다. 이제 운영체제를 시작해보자!
-
[데이터베이스] 회복(Recovery)
장애의 유형 트랜잭션 장애: 트랜잭션의 실행 시 논리적인 오류로 발생할 수 있는 에러 상황 시스템 장애: H/W 시스템 자체에서 발생할 수 있는 에러 상황 미디어 장애: 디스크 자체의 손상으로 발생할 수 있는 에러 상황 회복(Recovery) 데이터베이스를 장애가 발생했던 이전의 상태로 복구시켜서 일관된 데이터베이스 상태를 만드는 것 회복을 위한 데이터 복사본을 만드는 방법에는 덤프(Dump)와 로그(Log) 두 가지가 있다. 덤프(Dump): 일정 주기로 원본의 데이터베이스의 모든 내용을 다른 저장장치에 복사하는 것 로그(Log): 변경 이전의 데이터베이스를 기준으로 변경 연산이 발생할 때마다 로그 파일을 작성하여 기록하고, 회복할 때 로그에 적힌 내용을 사용하여 복원하는 방법 로그파일(Log File..
-
[데이터베이스] 트랜잭션 고립 수준(Transaction Isolation Level)
오손읽기(Dirty Read) 읽기 작업을 하는 트랜잭션 A가 작업을 하는 트랜잭셕 B의 중간 데이터를 읽기 때문에 발생하는 문제 작업중인 트랜잭션 B가 작업을 Rollback한 경우 트랜잭션 A는 무효가 된 데이터를 읽게 되고 잘못된 결과를 도출한다. 반복불가능 읽기(Non-repeatable Read) 트랜잭션 A가 데이터를 읽고 트랜잭션 B가 데이터를 쓰고(Update) 트랜잭션 A가 다시 한 번 데이터를 읽을 때 생기는 문제 트랜잭션 A가 읽기 작업을 다시 한 번 반복할 경우 이전의 결과와 다른 결과가 나오는 현상 유령데이터 읽기(Phantom Read) 트랜잭션 A가 데이터를 읽고 트랜잭션 B가 데이터를 쓰고(Insert) 트랜잭션 A가 다시 한 번 데이터를 읽을 때 생기는 문제 트랜잭션 A가 ..
-
[데이터베이스] 동시성 제어(Currency Control)
동시성제어 다중 사용자 환경에서 둘 이상의 트랜잭션이 동시에 수행될 때, 일관성을 해치지 않도록 트랜잭션의 데이터 접근 제어 다중 사용자 환경을 지원하는 DBMS의 경우, 반드시 지원해야 하는 기능 갱신 손실(Lost Update) 하나의 트랜잭션이 갱신한 내용을 다른 트랜잭션이 덮어씀으로써 갱신이 무효화가 되는 것을 의미 두 개의 트랜잭션이 한 개의 데이터를 동시에 갱신(Update)할 때 발생 데이터베이스에서 절대 발생하면 안되는 현상 모순성(Inconsistency) 다른 트랜잭션들이 해당 항목 값을 갱신하는 동안 한 트랜잭션이 두 개의 항목 값 중 어떤 것은 갱신되기 전의 값을 읽고 다른 것은 갱신된 후의 값을 읽게 되어 데이터의 불일치가 발생하는 상황 연쇄 복귀(Cascading Rollback..