본문 바로가기

프로그래밍 학습/데이터베이스 이론

로킹기법과 로킹단위, 스택,큐, 데크 정의

728x90

로킹 단위 

- 데이터베이서의 로킹은 잠그는 단위이다


로킹 기법 

- 하나의 트랜잭션이 데이터를 액세스 하는 동안 다른 트랜잭션이 그 데이터 항목을 액세스                  할 수 없도록 하는 병행 기법


로킹 설명

- 한번에 한명만 사용할 수 있는 단위이다

- 다른 사람이 동시에 파일을 작업을 하는 경우 해당 파일을 건들지 못하도록 한다.

- 프로젝트를 누군가가 작업하고 있다면 접근할 수 없게 해야한다.


로킹단위에 따른 움직임

로킹 단위 ↑ 제어 쉬움  병행성  ↓ -> 처리할게 적어짐

로킹 단위 ↓ 제어 힘듬  병행성  ↑ -> 처리할게 많아짐

-----------------------------------------------------------------------------------------------------------------


스택 정의

- 리스트의 한쪽 끝으로만 자료의 삽입, 삭제 작업이 이루어지는 자료구조

- 후입선출방식(가장 나중에 삽입된 자료가 가장 먼저 삭제되는 구조) - LIFO


스택 용도

- 부프로그램 호출 시 복귀주소를 저장할 때

- 함수 호출의 순서 제어

- 인터럽트가 발생하여 복귀주소 저장

- 후위 표기법으로 표현된 산술식을 연산할 때

- 0주소지정방식 명령어의 자료 저장소

- 컴파일러를 이용한 언어 번역시


스택 용어

TOP : Stack으로 할당된 기억공간에 가장 마지막으로 삽입된 자료가 기억된 위치를 가리키는 요소

BOTTOM : 스택의 가장 밑바닥

PUSH : 스택에 자료를 입력

POP : 스택의 자료가 출력


-----------------------------------------------------------------------------------------------------------------

큐 정의

- 선형 리스트의 한쪽에서는 삽입 작업이 이루어지고 다른 한쪽에서는 삭제 작업이 이루어지는 구조

- 시작과 끝을 표시하는 두 개의 포인터가 있다.

- 선입선출방식(가장 먼저 들어온 자료가 가장 먼저 삭제) - FIFO

- 프런트 포인터 : 가장 먼저 삽입된 자료의 기억공간을 가리키는 포인터 삭제 작업 사용

- 리어 포인터 : 가장 마지막에 삽입된 자료가 위치한 기억장소를 가리키는 포인터, 삽입 작업 사용


큐 사용 예

- 창구 업무처럼 서비스 순서를 기다리는 등의 대기 행렬의 처리에 사용

- 운영체제의 작업 스케줄링에 사용


-----------------------------------------------------------------------------------------------------------------

데크 정의

- 삽입과 삭제가 리스트의 양쪽 끝에서 모두 발생

- 스택과 큐의 장점만 따서 구성

- 입력은 양쪽에서 가능하지만 출력은 한쪽에서만 가능

- 입력제한 데크(Scroll) , 출력제한 데크 :Shelf