💠기타/자격증

[정처기 필기] 「5」 | IT프로젝트 정보 시스템 구축 관리 - (2.5) 회복 / 병행제어, 교착상태

2024. 2. 24. 00:16
728x90

[정처기 필기] 5」 | IT프로젝트 정보 시스템 구축 관리 - (2.5) 회복 / 병행제어, 교착상태

「1」 소프트웨어 설계

「2」 소프트웨어 개발

「3」 데이터베이스 구축

「4」  프로그래밍 언어 활용

> 「5」  정보시스템 구축 관리

- 소프트웨어 개발 방법론 활용, > IT프로젝트 정보 시스템 구축 관리, 소프트웨어 개발 보안 구축, 시스템 보안 구축

 

1 네트워크 관련 신기술

2 네트워크 구축

3 경로 제어 / 트래픽 제어

4 SW 관련 신기술

5 보안 관련 신기술

6 HW 관련 신기술

7 Secure OS

8 DB 관련 신기술

> 9 회복 / 병행제어

> 10 교착상태

9. 회복 / 병행제어

회복(Recovery)

 

트랜잭션을 수행 도중 장애 발생하여 데이터베이스 손상 시 정상 상태로 복구하는 작업

 

트랜잭션 장애 : 입력 데이터 오류, 불명확 데이터, 시스템 자원요구 과다트랜잭션 내부의 비정상적인 상황으로 프로그램 실행 중지

시스템 장애 : 데이터베이스 손상은 없으나, 하드웨어 오동작, 소프트웨어 손상, 교착상태 등 모든 트랜잭션의 연속적인 수행에 장애

미디어 장애 : 디스크 블록의 손상, 디스크 헤드 충돌데이터베이스 일부 / 전부 물리적으로 손상

 

회복 관리기(Recovery Management)

: DBMS의 구성 요소

: 트랜잭션 실행이 성공적으로 완료되지 못하면, 모든 변화 취소(Undo), 수행 전으로 복구하는 역할

: 메모리 덤프(주기적으로 복사), 로그를 이용하여 회복 수행

 

회복 기법

 

연기 갱신 기법(Deferred Update)

: 트랜잭션이 성공적으로 완료될 때까지 데이터베이스에 대한 실질적인 갱신을 연기

: 트랜잭션이 수행되는 동안 갱신된 내용은 Log에 보관

: 트랜잭션의 부분 완료 시점에 Log에 보관한 갱신 내용을 실제 데이터베이스 기록

: 트랜잭션이 부분 완료되기 전 장애 발생하여 Rollback 되면 트랜잭션이 실제 데이터베이스에 영향 미치지 않았기 때문에 어떤 갱신 내용도 취소(Undo)시킬 필요 없음

: Redo 작업만 가능

 

즉각 갱신 기법(Immediate Update)

: 트랜잭션이 데이터 갱신하면 부분완료되기 전이라도 즉시 실제 데이터베이스에 반영

: 장애 발생하여 회복할 경우 대비해 갱신된 내용을 Log에 보관

: 회복 시 Redo, Undo 모두 사용 가능

 

그림자 페이지 대체 기법(Shadow Paging)

: 갱신 이전의 데이터베이스를 일정 크기의 페이지 단위로 구성하여 페이지마다 복사본인 그림자 페이지로 별도 보관해 놓고, 실제 페이지를 대상으로 트랜잭션에 의한 갱신 작업하다가 장애 발생하여 Rollback 시킬 때, 갱신된 이후 실제 페이지 부분에 그림자 페이지를 대체하여 회복

 

검사점 기법(Check Point) 

: 트랜잭션 실행 중 특정 단계에서 재실행하도록 갱신 내용이나 시스템 상황 등 정보와 검사점을 로그에 보관, 장애 발생 시 트랜잭션 전체를 철회하지 않고, 검사점부터 회복 작업을 하여, 회복시간 절약

 

병행제어(Concurrency Control) 

 

다중 프로그래밍 이점을 활용하여 동시에 여러 트랜잭션을 병행수행할 때, 동시에 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간 상호작용 제어

 

병행제어 목적

: 데이터베이스의 공유 최대화

: 시스템의 활용도 최대화

: 데이터베이스의 일관성 유지

: 사용자 응답 시간 최소화

 

병행제어 기법의 종류

 

로킹(Locking) 

: 주요 데이터의 액세스를 상호 배타적으로 하는 것

: 트랜잭션들이 어떤 로킹 단위를 액세스 하기 전 Lock을 요청하여 Lock이 허락되어야 로킹 단위를 액세스 할 수 있음

 

타임스탬프 순서(Time Stamp Ordering)

: 직렬성 순서를 결정하기 위해, 트랜잭션 간 처리 순서를 미리 선택하는 기법 중 가장 보편적인 방법

: 트랜잭션과 트랜잭션이 읽거나, 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기 전 시간표를 부여하여 부여된 시간에 따라 트랜잭션 작업 수행

: 교착상태 발생하지 않음

 

최적 병행수행(검증 기법, 확인 기법, 낙관적 기법)

: 병행 수행하고자 하는 대부분의 트랜잭션이 판독 전용 트랜잭션일 경우, 충돌률이 매우 낮아, 병행제어 기법 사용하지 않고 실행되어도 시스템의 상태를 일관성 있게 유지한다는 점을 이용

 

다중 버전 기법

: 타임스탬프의 개념 이용, == 다중 버전 타임 스탬프 기법

: 갱신될 때마다 버전을 부여하여 관리

 

>로킹 단위(Locking Granularity)<

 

: 병행제어에서 한꺼번에 로킹 할 수 있는 객체의 크기 의미

: 데이터베이스, 파일, 레코드, 필드 등 로킹 단위 될 수 있음

: 로킹 단위 크면, 로크 수 작아 관리 쉽지만, 병행성 낮아지고, 로킹 단위 작으면 로크 수가 많아 관리 복잡하여 오버헤드 증가, 병행성 높아짐

10. 교착상태

교착상태(Dead Lock)의 개요

 

상호 배제에 의해 나타나는 문제점, 둘 이상 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상

 

교착상태 발생의 필요충분조건

 

하나라도 충족되지 않으면 교착상태 발생하지 않음

 

상호 배제(Mutual Exclusion) : 한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있어야 함

점유와 대기(Hold and Wait) : 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 함

비선점(Non-preemption) : 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없음

환형 대기(Circular Wait) : 공유 자원과 프로세스들이 원형으로 구성, 자신에게 할당된 자원을 점유하며 앞, 뒤에 있는 프로세스의 자원을 요구해야 함

 

교착상태 해결 방법

 

예방 기법(Prevention)

: 사전에 시스템 제어, 발생 4가지 조건 중 하나를 부정함으로 수행, 자원낭비 심함

회피 기법(Avoidance)

: 교착상태 발생 시 적절히 피해나가는 방법, 은행원 알고리즘(Bank's Algorithm) 사용

발견 기법(Detection)

: 교착상태 발생했는지 점검, 교착상태에 있는 프로세스와 자원을 발견

: 교착상태 발견 알고리즘, 자원 할당 그래프 사용

회복 기법(Recovery)

: 교착상태 일으킨 프로세스 종료, 교착상태 프로세스에 할당된 자원을 선점하여 회복

 

 

 

 

 

 

 

 

 

 

출처 | <시나공> 정보처리기사 필기 2024 기본서 (길벗알앤디)

728x90