정보처리기사 회복/ 병행제어 정리

KwonSungMin·2023년 10월 7일
0

정보처리기사

목록 보기
4/12

이터베이스가 손상되었을때 손상되기 이전의 정상 상태로 복구하는 작업

회복기법

  • 연기 갱신 기법(Deferred)
    • 트랜잭션이 성공적으로 완료될때까지 데이터베이스에 대한 실질적인 갱신을 연기하는 방법
    • 트랜잭션이 수행되는 동안 갱신내용은 로그에 보관
    • Redo 작업만 가능
  • 즉각 갱신 기법(immediate)
    • 트랜잭션이 데이터를 갱신하면 즉각 실제 데이터베이스에 반영
    • 장애발생가능성때문에 갱신된 내용들은 로그에 보관
    • Redo, Undo 모두 사용 가능
  • 그림자 페이지 대체 기법(shadow paging)
    • 실제 데이터베이스에 넣기 전에 그림자 페이지를 만들어 넣어놓고 실제 데이터베이스 삽입에 문제가 생길때 그림자페이지로 대처하는 방법
  • 검사점 기법(Check)
    • 특정단계에서 재실행할수 있도록 정보들을 검사점과 함께 로그에 보관 해두고 오류발생시 트랜젝션을 철회하지 않고 검사점부터 회복해 나가는방법

Redo

덤프와 로그를 이용하여 가장 최근의 정상적인 데이터베이스로 회복시킨후 트랙잭션 재실행

Undo

로그에 보관한 정보를 이용하여 가장 최근에 변경된 내용부터 거슬러 올라가면서 트랜잭션 작업을 취소하여 원래의 데이터베이스를 복구

병행제어

동시에 실행되는 트렌잭션이 일관성을 파괴하지않도록 하는것

로킹(locking)

  • 트랜잭션들이 어떤 로킹 단위를 액서스하기 전에 잠금을 요청해서 lock이 허락되야 엑세스가 가능
    • 로킹단위 : 한번에 로킹할 수 있는 객체의 크기
    • 낮으면 오버헤드 증가 → 쌓이는 함수가 많아져서~

타임 스탬프 순서

  • 시간표를 부여하고 시간에 따라 트랜잭션 작업 수행

최적 병행 수행

  • 병행을 하고자 하는 트랜잭션이 Read-only일때 충돌률이 낮아서 병행제어 기법을 사용하지 않는것

다중 버전 기법

  • 타임 스탬프와 비슷한데 버전을 부여하여 관리

교착상태

서로다른 프로세스가 점유하고있는 자원을 요구하며 무한정 기다리는 상태

필요충분조건

  • 상호배제
  • 점유와 대기
  • 비선점
  • 환형대기

교착상태 해결방법

  • 예방기법
    • 교착이 안되도록 미리 설계
  • 회피기법
    • 은행원 알고리즘
    • 교착을 잘 피해감
  • 발견기법
    • 교착상태가 일어났는지 체크후 수정
  • 회복기법
    • 교착상태를 일으킨 프로세스를 종료하거나 자원을 선점하여 해결
profile
천천히

0개의 댓글