정보처리기사 도전기
[정보처리기사 실기 이론정리11] 병행제어 & 운영체제
츄98
2024. 7. 27. 22:48
1. 병행제어 : 여러 트랜잭션이 동시에 실행되면서도 데이터베이스의 일관성을 유지
- 문제점1. 갱신분실(Lost Update) : 여러 트랜잭션이 같은 데이터를 공유하여 갱신할 때 일부 갱신 결과가 손실
- 2. 비완료 의존성(Uncommitted Dependency) : 실패한 트랜잭션이 회복되기 전에 다른 트랜잭션이 그 결과를 참조
- 3. 모순성(Inconsistency) : 병행 수행 중 원치 않는 자료를 사용함으로써 발생, 여러 데이터를 가져올 때 발생
- 4. 연쇄 복귀(Cascading Rollback) : 하나의 트랜잭션이 실패해 롤백되면, 다른 트랜잭션도 함께 롤백
2. 병행제어기법
- 로킹 : 트랜잭션이 데이터에 접근하려면 로킹을 수행해야 한다. 로킹된 데이터는 다른 트랜잭션이 접근할 수 없다.
| 로크 수 | 병행성 | 오버헤드 | |
| 로킹 단위가 크면 | 적어짐 | 낮아짐 | 감소 |
| 로킹 단위가 작으면 | 많아짐 | 높아짐 | 증가 |
- 2단계 로킹 규약 : 확장 단계에서는 새로운 Lock만 가능, 축소 단계에서는 Unlock만 가능
- 타임스탬프 : 데이터에 접근하는 시간을 미리 정해 순서대로 접근, 교착상태가 발생하지 않지만, 연쇄복귀를 초래
- 낙관적 병행제어 : 트랜잭션 수행 동안 검사를 하지 않고, 종료 시 일괄적으로 검사
- 다중 버전 병행 제어 : 여러 버전의 타임스탬프를 비교하여 직렬 가능성이 보장되는 타임스탬프 선택
3. 회복 : 장애로 인해 손상된 데이터베이스를 이전의 정상 상태로 복구
- Undo : 트랜잭션 로그를 이용해 오류와 관련된 모든 변경을 취소하여 복구
- Redo : 트랜잭션 로그를 이용해 오류 발생 트랜잭션을 재실행하여 복구
- 로그 기반 회복 기법 :
- 지연 갱신 회복 기법(Deferred Update) : 트랜잭션이 커밋되기 전까지 변경내용을 로그 파일에만 저장
- 즉시 갱신 회복 기법(Immediate Update) : 트랜잭션 수행 중 변경 내용을 데이터베이스에 즉시 기록 - 검사적 회복 기법(Checkpoint Recovery) : 장애발생시 검사점 이전에 처리된 트랜잭션은 회복에서 제외, 이후 처리된 트랜잭션은 회복 작업 수행
- 그림자 페이징 회복 기법
- 미디어 회복 기법
- ARIES 회복 기법
4. ETL (Extraction, Transformation, Loading) : 데이터 전환은 기존 원천시스템에서 데이터를 추출하고, 이를 목적 시스템의 데이터베이스에 적합한 형식과 내용으로 변환한 후, 목적 시스템에 적재하는 일련의 과정
5. 기억장치 : 데이터, 프로그램, 연산의 중간 결과 등을 일시적 또는 영구적으로 저장
- 레지스터 : 중앙처리장치(CPU) 내부에 위치
- 캐시 메모리 : CPU와 주기억장치 사이의 속도 격차를 줄이기 위해 사용
- 주기억장치 : CPU가 직접 접근하여 데이터를 읽고 쓸 수 있는 장치
- ROM(Read Only Memory) : 읽기만 가능한 읽기 전용 메모리, 비 휘발성 메모리
- RAM(Random Access Memory) : 기억장소를 임의로 접근할 수 있는 메모리, 읽고 쓰기가 가능한 휘발성 메모리
- SRAM : 전원 공급 중에 내용이 사라지지 않음(캐시메모리로 사용)
- DRAM : 일반적인 주기억장치, 일정 시간이 되면 내용이 사라짐 - 연관 메모리 : 주소에 의해 접근하지 않고, 기억된 내용의 일부를 이용해여 Access할 수 있는 기억장치
- 보조기억장치 : 주기억장치에 비해 접근시간은 느리지만, 기억용량은 크다.
6. 운영체제 성능 평가 기준
- 처리량(Throughput) : 일정 시간 내 처리하는 작업의 양
- 반환시간(Turnaround Time) : 작업 요청부터 결과 반환까지 소요되는 시간, 대기시간 + 실행시간 + 응답시간
- 신뢰도
- 사용가능도
- 확장성
- 보안
- 자원활용도
6. 윈도우 : 마이크로소프트사에서 개발한 운영체제
7. 리눅스 : 오픈소스 유닉스 호환 운영체제
8. 유닉스 : AT&T 벨연구소에서 켄 톰슨이 개발한 운영체제
- 커널 : UNIX의 가장 핵심적인 부분
- 쉘 : 명령어 해석기
- Utility Program : 일반 사용자가 작성한 응용 프로그램을 처리하는 데 사용
- 파일 디스크립터(FD, File Descriptor) : 유닉스 시스템에서 프로세스가 파일에 접근할 때 사용, 파일 제어 블록이라고도 함, 사용자가 직접 참조할수 없음
- POSIX(Portable Operation System Interface) : 이식 가능한 운영체제 인터페이스
9. MacOS : 애플이 개발한 유닉스 기반의 운영체제