132. 운영체제의 개념 (C)
1. 운영체제 (OS; Operating System)
- 컴퓨터의 시스템 자원들을 효율적으로 관리하며, 편리하고 효과적으로 사용할 수 있도록 환경을 제공해주는 여러프로그램
- windows, linux, unix, MacOS, MS-DOS 등
2. 운영체제의 목적
- 처리 능력
- 반환 시간
- 사용 가능도
- 신뢰도
3. 운영체제의 기능
- 프로세서, 기억장치, 입출력 장치 등 관리
- 스케줄링 기능 제공
- 인터페이스 제공
133. 운영체제의 종류
1. Windows
- MS 개발
- GUI 인터페이스
- 선점형 멀티태스킹 (Preemptive Multi-Tasking)
- 여러 개의 프로그램을 실행시키는 멀티태스킹을 지원
- Pnp (Plug and Play, 자동감지 기능)
- OLE (Object Linking and Embedding)
- 다른 여러 프로그램등의 개체(Object)를 자유롭게 연결(Linking)하거나 삽입(Embedding)하여 편집 가능
- 255자의 긴 파일명
- Single-User 시스템
- 컴퓨터 한 대를 한 사람만이 독점하여 사용
2. UNIX
- AT&T 벨 연구소, MIT, General Electirc 공동 개발
- 시분할 시스템(Time Sharing System)을 위해 설계된 대화식 OS
- 오픈 소스
- C로 개발됨
- 멀티유저 멀티태스킹
- 트리 구조 파일 시스템
3. UNIX 시스템 구성
- 커널(Kernel)
- HW를 보호, 프로그램과 HW간의 인터페이스 역할
- UNIX의 가장 핵심적인 부분
- 프로세스관리, 기억장치, 파일관리, 입출력 등 여러 기능 수행
- 쉘 (Shell)
- 사용자의 명령어를 인식하여 프로그램을 호출, 명령어 수행
- 시스템과 사용자 간의 인터페이스 담당
- 유틸리티 프로그램
- 일반 사용자가 작성한 응용 프로그램을 처리하는데 사용
- DOS에서 외부 명령어에 해당
- 에디터, 컴파일러, 인터프리터, 디버거 등
4. LINUX
- 리누스 토발즈가 UNIX 기반 개발
- 오픈소스
- UNIX와 완벽 호환
5. MacOS
- 애플 개발
- 애플에서 생산하는 제품에만 사용
- 드라이버 설치/삭제가 단순함
6. Android
- 구글에서 개발한 리눅스 커널 기반 개방형 모바일 OS
- 모든 코드 공개
- 자바와 코틀린으로 작성
- 스마트폰에 사용
7. iOS
- 애플 개발 모바일 OS
- 애플 고유 OS로 타사에 탑재 불가
134. 기억장치 관리 (C)
1. 기억장치의 관리 전략
- 반입(Fetch)전략
- 배치(Placement)전략
- 교체(Replacement)전략
2. 반입(Fetch) 전략
- 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지 결정
- 요구 반입 : 실행중인 프로그램이 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재
- 예상 반입 : 예상하여 적재
3. 배치 (Placement) 전략
- 프로그램이나 데이터를 어디에위치할 것인지
- 최초 적합 (First Fit) : 들어갈 수 있는곳 첫번째에 배치
- 최적 적합 (Best Fit) : 단편화를 가장 적게 남기는곳에 배치
- 최악 적합 (Worst Fit) : 단편화를 가장 크게 남기는 곳에 배치
*내부 단편화 : 분할된 영역이 할당된 후 사용되지 않고 남은 빈 공간
*외부 단편화 : 분할된 영역이 프로그램의 크기보다 작아서 프로그램이 할당되지 못하여 사용되지 않고 빈 공간으로 남아있는 전체 영역
4. 교체 (Replacement) 전략
- 이미 사용되고 있는 영역을 교체
- FIFO, OPT, LRU, LFU, NUR, SCR 등
135. 가상기억장치 구현 기법 (C)
1. 가상기억장치 (Virtual Memory)
- 보조기억장치 일부를 주기억장치처럼 사용
- 페이징 기법, 세그멘테이션 기법
2. 페이징 (Paging) 기법
- 프로그램과 주기억장치의 영역을 동일한 크기로나눈 후 주기억장치의 영역에 적재시켜 실행
- 외부단편화 발생 X, 내부단편화 발생할 수 있음
3. 세그먼테이션 기법(Segmentation)
- 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행
- 메모리를 절약하기위해 사용
- 내부단편화 X, 내부단편화O
136. 페이지 교체 알고리즘 (B)
1. 페이지 교체 알고리즘
- Page Fault가 발생하면 필요한 페이지를 적재
- 어떤 페이지 프레임을 선택할 것인지 결정하는 알고리즘
- OPT, FIFO, LRU, LFU, NUR, SCR 등
2. OPT (OPTimal replacement, 최적 교체)
- 가장 오랫동안 사용하지 않을 페이지를 교체
- 페이지 부재 횟수가 가장 적게 발생하는 가장 효율적인 알고리즘
3. FIFO (First In First Out)
- 가장 먼저 들어와서 가장 오래된 페이지 교체
- 쉽고, 설계 간단
Page Fault 6회
4. LRU (Least Recently Used)
- 최근에 가장 오랫동안 사용하지 않은 페이지 교체
- 가장 오래전 사용한 페이지를 교체함
결함 총 5회 발생.
- 참조 1: 캐시에 없으므로, 페이지 결함 발생. 캐시 상태: [1]
- 참조 2: 캐시에 없으므로, 페이지 결함 발생. 캐시 상태: [1, 2]
- 참조 3: 캐시에 없으므로, 페이지 결함 발생. 캐시 상태: [1, 2, 3]
- 참조 1: 이미 캐시에 있음.
- 참조 2: 이미 캐시에 있음.
- 참조 4: 캐시에 없으므로, 페이지 결함 발생. 캐시가 아직 가득 차지 않았으므로, 4를 추가. 캐시 상태: [1, 2, 3, 4]
- 참조 1: 이미 캐시에 있음.
- 참조 2: 이미 캐시에 있음.
- 참조 5: 캐시에 없으므로, 페이지 결함 발생. 가장 오래 전에 사용된 3을 제거하고 5를 추가. 캐시 상태: [1, 2, 4, 5]
5. LFU (Least Frequently Used)
- 사용 빈도가 가장 적은 페이지 교체
- 자주 교체되는 페이지는 교체되지 않음
6. NUR (Not Used Recently)
- 최근에 사용하지 않은 페이지를 교체
- 사용 여부를 알기 위해 참조비트와 변형비트가 사용됨
7. SCR (Second Change Repacement, 2차 기회 교체)
- 가장 오랫동안 주기억장치에 있떤 페이지중 자주 사용되는 페이지의 교체를 방지
- FIFO의 단점 보완
137. 가상기억장치 기타 관리 사항 (B)
1. 페이지 크기
- 페이지 크기가 작을 경우
- 단편화 감소, 시간 단축
- 효율적인 워킹 셋 유지
- 디스크 접근 회수가 많아져서 전체적인 입출력 시간 늘어남
- 페이지 크기가 클 경우
- 매핑속도가 빠름
- 디스크 접근 횟수 줄어 입출력 효율성 증가
- 단편화 증가
2. Locality
- 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질
- 캐시메모리의 이론적 근거
- 시간 구역성 (Temporal Locality)
- 프로세스가 실행되면서 하나의 페이지를 일정 시간동안 집중적으로 액세스
- 공간 구역성 (Spatial Locality)
- 프로세스 실행 시 일정 위치의 페이지를 집중적으로 액세스
3. 워킹 셋(Working Set)
- 프로세스사 일정 시간 동안 자주 참조하는 페이지들의 집합
4. 스래싱 (Thrashing)
- 프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상
- 페이지 부재(Page Fault)가 발생하며 나타남
- 전체 시스템의 성능이 저하됨
- CPU이용률이 특정 시점까지 높아지지만, 스래싱이 나타나면 CPU이용률 급 감소함
138. 프로세스의 개요 (B)
1. 프로세스
- 실행중인 프로그램
2. PCB (Process Control Block, 프로세스 제어 블록)
- OS가 프로세스에 대한 중요한 정보를 저장해 놓는 곳
3. 프로세스 상태 전이
- 제출 : 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태
- 접수 : 제출된 작업이 스풀 공간인 디스크의 할당 위치에 저장된 상태
- 준비 : 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태
- 실행 : 준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태
- 대기, 보류, 블록 : 프로세스에 입출력처리가 필요하면 현재 실행중인 프로세스가 중단되고, 입출력 처리가 완료될 때
- 까지 대기하고 있는상태
- 종료 : 프로세스의 실행이 끝나고 프로세스 할당이 해제된 상태
*Dispatch : 준비 상태에서 대기하고 있는 프로세스 중 하나가 프로세서를 할당받아 실행 상태로 전이되는 과정
5. 스레드 (Thread)
- 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위
- 하나의 프로세스에 하나의 스레드 - 단일 스레드
- 하나의 프로세스에 하나 이상의 스레드 - 다중 스레드
- 경량 (Light Weight) 프로세스라고도 함
- 동일 프로세스 환경에서 서로 독립적인 다중 수행 가능
- 기억장소 및 자원의 낭비 줄어듬
- 하나의 프로세스를 여러 개의 스레드로 생성하여 병행성 증진
139. 스케줄링 (D)
스케줄링 종류
- 장기 스케줄링: 어떤 프로세스가 시스템의 자원을 차지하는가, 작업스케줄링, 상위 스케줄링, 작업 스케줄러
- 중기 스케줄링 : 어던 프로세스들이 CPU를 할당받는가
- 단기 스케줄링 : 프로세스가실행되기 위해 CPU를 할당받는 시기와 특정 프로세스를 지정하는 작업, 프로세스 스케줄링, 하위 스케줄링
문맥 교환 (Context Switching)
- 하나의 프로세스에서 다른 프로세스로 CPU가 할당되는 과정에서 발생
- 새로운 프로세스에 CPU를 할당하기 위해 현재 CPU가 할당된 프로세스 상태 정보를 저장하고, 새로운 프로세스의 상태 정보를 설정한 후 CPU를 할당하여 실행되도록 하는 작업
프로세서 스케줄링 (단기 스케줄링) 기법
비선점(Non-Preemptive) 스케줄링
- 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링
- 프로세스가 CPU를 할당받으면 해당 프로세스가 완료 될 때 까지 CPU 사용
- 모든 프로세스에 대한 요구를 공정하게 처리
- 프로세스 응답 시간의 예측 용이, 일괄 처리 방식에 적합
- 중요한 작업이 중요하지 않은 작업을 기다리는 경우가 발생
- FCFS(FIFO), SJF, 우선순위, HRN, 기한부 알고리즘
선점(Preemptive) 스케줄링
- 하나의 프로세스가 CPU를 할당받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링
- 우선순위가 높은 프로세스를 빠르게 처리
- 많은 오버헤드 발생
- 빠른 응답시간을 요구하는 대화식 시분할 시스템에 사용
- Round Robin, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐 등 알고리즘
140. 주요 스케줄링 알고리즘 (A)
1. FCFS (First Come First Service, 선입 선출) = FIFO
프로세스 번호 | P1 | P2 | P3 |
실행 시간 | 20 | 4 | 6 |
평균 실행 시간 : (20 + 4 + 6) / 3
평균 대기 시간 : (0 + 20 + 24) / 3
평균 반환 시간 : (20 + 24 + 30) / 3
2. SJF (Shortest Job First, 단기 작업우선)
프로세스 번호 | P1 | P2 | P3 |
실행 시간 | 20 | 4 | 6 |
평균 실행 시간 : (4 + 6 + 20) / 3
평균 대기 시간 : (0 + 4 + 10) / 3
평균 반환 시간 : (4 + 10 + 30) / 3
3. HRN (Highest Response-ratio Next)
- 대기 시간과 서비스(실행) 시간을 이용
- 비선점 스케줄링
- 실행시간이 긴 프로세스에 불리한 SJF를 보완하기 위해 대기시간 및 서비스 시간을 이용
- 긴 작업과 짧은 작업간의 지나친 불평등을 해소할 수 있다.
- 우선순위를 계산 숫자가 높은것부터 낮은순으로 순위 부여
- 우선순위 = (대기시간 + 서비스시간) / 서비스시간
- 우선순위 값이 클수록 우선순위가 높다.
프로세스 번호 | P1 | P2 | P3 |
실행 시간 | 20 | 4 | 6 |
대기 시간 | 10 | 20 | 10 |
우선순위 계산 | (20+10) / 20 / 1.5 | (4+20)/4 = 6 | (6+10)/6 = 2.6 |
우선순위 | P2 -> P3 -> P1 |
4. RR (Round Robin)
- 시간 할당량 동안만 실행한 후 다음 프로세스에게 넘김
Time Slice는 4초 일 때
프로세스 번호 | P1 | P2 | P3 |
실행 시간 | 20 | 4 | 6 |
진행 시간 | 0 | 4 | 8 | 12 | 16 | 18 | 22 | 26 |
프로세스 번호 | P1 | P2 | P3 | P1 | P3 | P1 | P1 | P1 |
실행 시간 | 4 | 4 | 4 | 4 | 2 | 4 | 4 | 4 |
p2 - 8초에 완료, p3 - 18초 완료, P1 - 30초에 완료
반환 시간 : 각 프로세스가 완료된 시간
대기시간 : 프로세스의 가장 마지막 실행이 시작되기 전가지 진행시간을 구함. 여러번 실행되었을 경우실행된 시간 제외
프로세스 번호 | P1 | P2 | P3 | 평균 |
반환 시간 | 30 | 8 | 18 | 56/3 = 18.6 |
대기 시간 | 26-10 = 10 | 4 | 16 -4 = 12 | 26/3 = 8.6 |
5. SRT(Shortest Remaining Time)
- 현재실행중인 프로세스의 남은 시간과 새로 도착한 프로세스의 실행 시간을 비교하여 가장 짧은 실행시간의 프로세스에게 할당
142. 운영체제 기본 명령어
Windows
- DIR : 파일 목록 표시
- COPY : 파일 복사
- TYPE : 파일의 내용 표시
- REN : 파일 리네임
- DEL : 파일 삭제
- MD : 디렉터리 생성
- CD : 디렉터리 위치 변경
- CLS : 화면 지우기
- ATTRIB : 파일 속성 변경
- FIND : 찾기
- CHKDSK : 디스크 상태 점검
- FORMAT : 디스크 표면을 트랙과 섹터로 나누어 초기화
- MOVE : 파일 이동
UNIX/LINUX
- cat : 파일 내용 표시
- chdir : 현재 사용할 디렉터리의 위치 변경
- chmod : 파일의 권한 변경
- chown : 소유자 변경
- cp : 복사
- exec : 프로세스 수행
- find : 찾기
- fork : 프로세스 생성
- fsck : 파일 시스템 검사, 보수
- getpid : 자신의 프로세스 아이디
- getppdid : 부모 프로세스 아이디
- ls : 현재 디렉터리 파일 목록
- mount/unmount : 파일 시스템 마운트/마운트해제
- rm : 삭제
- uname : 시스템의 이름과 버전, 네트워크 호스트 명 등 시스템 정보 표시
- wait : fork 후 exec에 의해 실행되는 프로세스의 상위 프로세스가 하위 프로세스 종료 등의 event 기다림
143. 인터넷 (A)
IP주소
- 숫자로 8비트씩 4부분, 총 32비트
- A Class : 국가나 대형 통신망에 사용 (0~127) $ 2^{24} $
- B Class : 중대형 통신망 (128~191) $ 2^{16} $
- C Class : 소규모 통신망 (192~223) $ 2^8 $
- D Class : 멀티캐스트용 (224~239)
- E Class : 실험적 주소로 공용되지 않음
서브네팅 (Subnetting)
- 4바이트의 IP 주소 중 네트워크 주소와 호스트 주소를 구분하기 위한 비트를 서브넷 마스크라고하며, 이를 변경하여 네트워크 주소를 여러 개로 분할하여 사용
예) 192.168.1.0/24 네트워크를 FLSM 방식을 이용하여 3개의 Subnet으로 나누시오 (IP Subnet-Zero 적용)
192.168.1.0/24 의 서브넷마스크는 1의 개수가 24개, C 클래스에 속하는 네트워크
11111111 | 11111111 | 11111111 | 00000000 |
255 | 255 | 255 | 0 |
서브넷 마스크를 Subnet으로 나눌 때는 버스넷 마스크가 0인부분, 마지막 8비트를 사용
Subnet으로 나눌때 3개의 Subent으로 나누는 것은 크게 3가지를 따로 나누는것.
즉 3을 표현하기위한 이진수 11을 할당하기 위한 앞 2자리를 제외한 000000 6자리를 호스트로 구성하면 됨
네트워크(ID) | 호스트 수 | IP주소 범위 |
1(00) | 64 | 192.168.1.0(00000000) ~ 63(00111111) |
2(01) | 64 | 192.168.1.64(01000000) ~ 127(01111111) |
3(11) | 64 | 192.168.1.128(11000000) ~ 191(11111111) |
IPv6
- IPv4의 주소 부족 문제를 해결하기 위해 개발
- 16비트씩 8부분, 총 128비트, 각 부분을 16진수로 표현, 콜론(:)으로 구분
- 주소의 확장성, 융통성, 연동성 뛰어남
- 인증성, 기밀성, 무결성
- 패킷 크기에 제한 없음
IPv4를 IPv6로 전환하는 방법
- 듀얼 스택(Dual Stack) : 호스트에서 IPv4와 IPv6을 모두 처리할 수 있도록 두개의 스택을 구성
- 터널링(Tunneling) : IPv6망에서 인접한 IPv4망을 거쳐 다른 IPv6망으로 통신할 때 IPv4망에 터널을 만들어 패킷이 통과할 수 있도록 하는 것
- IPv4/IPv6 변환 : 헤더 변환, 전송 계층 릴레이 방식, 응용 계층 게이트웨이 방식
IPv6 구성
- 유니캐스트(Unicast) : 단일 송신자와 단일 수신자 간의 통신 (1:1 통신)
- 멀티캐스트(Multicast) : 단일 송신자와 다중 수신자 (1:다 통신)
- 애니캐스트(Anycast) : 단일 송신자와 가장 가까이 있는 단일 수신자 (1:1 통신)
144. OSI 참조 모델 (A)
하위 1~3계층
상위 4~7계층
물 - 데 - 네 - 전 - 세 - 표 - 응
물리 계층
- 전송에 필요한 두 장치간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의
- 프로토콜 : RS-232C, X.21 등
데이터 링크 계층
- 2개의 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할수 있도록 한다.
- 흐름제어, 프레임 동기화, 오류 제어, 순서 제어 등을 수행
- 프로토콜 : HDLC, LAPB, PPP, LLC 등
네트워크 계층
- 개방 시스템들 간의 네트워크 연결을 관리(네트워크 연결을 설정, 유지, 해제)하고 데이터를 교환 및 중계
- 경로 설정, 트래픽 제어, 패킷 정보전송 등 수행
전송 계층
- 종단 시스템(End-to-End) 간에 투명한 데이터 전송을가능하게 한다.
- 전송 연결 설정, 데이터 전송, 연결 해제 기능, 주소 설정, 다중화(데이터의 분할과 재조립), 오류 제어, 흐름 제어 등
- TCP, UDP 등 표준이 있음
세션 계층
- 송수신 측 간의 관련성을 유지하고 대화 제어를 담당
- 대화 구성 및 동기 제어, 데이터 교환 관리 기능
- 송수신측 간의 데이터 전송, 연결 해제, 동기 처리 등의 대화를 관리하기 위해 토큰 사용
표현 계층
- 서로 다른 데이터 표현 형태를 갖는 시스템 간의 상호 접속을 위해 필요한 계층
- 코드 변환, 데이터 암호화, 데이터 압축, 구문 검색, 정보 형식 변환, 문맥 관리 등
응용 계층
- 응용 프로세스 간의 정보 교환, 전자 사서함, 파일 전송, 가상 터미널 서비스 제공
- 사용자(응용 프로그램)가 OSI 환경에 접근 할 수 있도록 서비스 제공
145. 네트워크 관련 장비 (C)
네트워크 인터페이스 카드(NIC; Network Interface Card)
- 컴퓨터와 컴퓨터, 컴퓨터와 네트워크를 연결하는 장치
- 이더넷 카드(LAN 카드), 네트워크 어댑터 라고 함
허브(Hub)
- 사무실이나가까운 거리의 컴퓨터들을 연결하는 장치
- 신호 증폭기능을 하는 리피터 역할도 포함
- 더미허브, 스위칭 허브
리피터(Repeater)
- 전송되는 신호가 전송 선로의 특성 및 외부 충격등의 요인으로 인해 왜곡되거나 약해질 경우 원래의신호 형태로 재생하여 다시 전송하는 역할
- OSI의 물리계층
- 전송 거리 연장, 배선의 자유도를 높이기 위해 사용
브리지(Bridge)
- LAN과 LAN을 연결하거나 LAN 안에서의 컴퓨터 그룹(세그먼트)을 연결하는 기능
- 데이터 링크 계층 중 MAC 계층에서 사용되므로 MAC 브리지라고도 함
- 트래픽 병목 현상 줄임
- 네트워크를 분산적으로 구성하여 보안성 높임
- 브리지를 이용한 서브넷 구성시 전공 가능한 회선 수는 브리지가 n개일 때, n(n-1)/2 개
스위치(Switch)
- 브리지와 같이 LAN과 LAN을 연결하여 훨씬 더 큰 LAN을 만드는 장치
- HW기반으로 전송 속도가 빠름
- 포트마다 각기 다른 전송 속도 제어 가능
- OSI - 데이터 링크 계층
라우터(Router)
- 브리지와 같이 LAN과 LAN의 연결 기능에 데이터 전송의 최적 경로를 선택하는 기능이 추가됨
- 서로 다른LAN이나 WAN의 연결도 가능
- OSI - 네트워크 계층
브라우터
- 브리지와 라우터의 기능 모두 수행
- 브리지는 내부 네트워크를 분리
- 라우터는 외부 네트워크에 연결
게이트웨이(Gateway)
- 전 계층(1~7 계층)의 프로토콜 구조가 다른 네트워크의 연결을 수행
전처리기(FEP; Front End Processor)
- 통신 회선 및 단말장치 제어, 메시지의 조립과 분해, 전송 메시지 검사 등을 미리 수행하여, 컴퓨터의 부담을 줄임
- 호스트 컴퓨터와 단말장치 사이에 고속 통신 회선
146. TCP/IP (A)
TCP(Transmission Control Protocol)
- OSI - 전송 계층
- 신뢰성 있는 연결형 서비스 제공
- 패킷의 다중화, 순서 제어, 오류 제어, 흐름 제어 기능 제공
- 스트림 전송 기능 제공
- TCP 헤더에는 Source/Destination Port Number, Sequence Number, Acknowledgment Number, CheckSum 등 포함
IP(Internet Protocol)
- OSI - 네트워크 계층
- 데이터그램을 기반으로 하는 비연결형 서비스 제공
- Best Effort 원칙에 따른 전송 기능
- 패킷의 분해/조립, 주소 지정, 경로 선택
- 헤더의 길이는 20Byte ~ 60Btye
- IP 헤더에는 Version, Header Length, Total Packet Length, Header Checksum, Source IP Address, Destination IP Address 등 포함
TCP/IP 구조
OSI | TCP/IP | 기능 |
응용 계층 표현 계층 세션 계층 |
응용 계층 | 응용 프로그램 간의 데이터 송수신 제공 TELNET, FTP, SMTP, SNMP, DNS, HTTP 등 |
전송 계층 | 전송 계층 | 호스트들 간의 신뢰성 있는 통신 TCP, UDP |
네트워크 계층 | 인터넷 계층 | 데이ㅓ터 전송을 위한 주소 지정, 경로 설정 IP, ICMP, IGMP, ARP, RARP |
데이터 링크 계층 물리 계층 |
네트워크 액세스 계층 | 실제 데이터(프레임)를 송수신 하는 역할 Ethernet, IEEE 802, HDLC, X.25, RS-232C, ARQ 등 |
응용 계층 프로토콜
- FTP (File Transfer Protocol)
- 원격 파일 전송 프로토콜
- SMTP (Simple Mail Transfer Protocol)
- 전자 우편 전송 프로토콜
- TELNET
- 컴퓨터 원격 연결
- 가상 터미널 (Virtual Termanal) 기능
- SNMP (Simple Network Management Protocol)
- TCP/IP 네트워크 관리 프로토콜
- DNS (Domain Name System)
- 도메인 네임을 IP주소로 매핑하는 시스템
- HTTP
- MQTT (Message Queuing Telemetry Transport)
- 발행-구독 기반의 메시징 프로토콜, IoT에서 사용
전송 계층 프로토콜
- TCP (Transmission Control Protocol)
- 양방향 연결
- 가상 회선 연결
- 스트림 위주 전달(패킷 단위)
- 신뢰성 있는경로 확립, 메시지 전송 감독
- 패킷의 분실, 손상, 지연이나 순서가 틀린 것 등이 발생할 때 투명성이 보장되는 통신
- TCP 프로토콜의 헤더는 기본적으로 20Byte ~ 60Byte
- 선택적으로 40Byte를 추가하여 최대 100Byte 확장 가능
- UDP (User Datagram Protocol)
- 데이터 전송 전에 연결을 설정하지 않는 비연결형 서비스
- TCP에 비해 단순한 헤더, 오버헤드가 적고, 전송 송속도가 빠름
- 빠른 속도를 필요할 경우, 정기적으로 반복해서 전송할 경우 사용
- 실시간 전송에 유리하며, 신뢰성보다는 속도가 중요할 때
- UDP 헤더는 Source Port Number, Destination Port Number, Length, Checksum 등
- RTCP (Real-Time Control Protocol)
- RTP(Real-Time tranport Protocol) 패킷의 전송 품질을 제어하기 위한 제어 프로토콜
- 세션에 참여한 각 참여다즐에게 주깆거으로 제어 정보 전송
- 하위 프로토콜은 데이터 패킷과 제어패킷의 다중화(Multiplexing)를 제공
- 데이터 전송을 모니터링하고 최소한의 제어와 인증 기능만 제공
- RTCP 패킷은 항상 32비트의 경계로 끝남
인터넷 계층 주요 프로토콜
- IP (Internet Protocol)
- 전송할 데이터에 주소를 지정하고, 경로를 설정
- 비연결형인 데이터그램 방식을 사용, 신뢰성 보장되지 않음(UDP같음)
- ICMP (Internet Control Message Protocol), 인터넷 제어 메시지 프로토콜
- IP와 조합하여 통신중에 발생하는 오류의 처리와 전송 경로 변경 등을 위한 제어 메시지를 관리
- 헤더는 8Byte
- IGMP (Internet Group Management Protocol, 인터넷 그룹 관리 프로토콜)
- 멀티캐스트를 지원하는 호스트나 라우터 사이에서 멀티캐스트 그룹 유지를 위해 사용
- ARP (Address Resolution Protocol, 주소 분석 프로토콜)
- 호스트의 IP 주소를 호스트와 연결된 네트워크 접속 장치의 물리적 주소 (MAC주소)로 바꾼다
- RARP (Reverse ARP)
- ARP 반대
네트워크 액세스 계층 주요 프로토콜
- Ethernet (IEEE 802.3)
- CSMA/CD 방식의 LAN
- IEEE 802
- LAN을 위한 표준 프로토콜
147. 네트워크 관련 신기술 (A)
- IoT (Internet of Things, 사물인터넷)
- 실세계와가상세계의 다양한 사물들을 인터넷으로 서로 연결하여 서비스를 제공하기 위한 서비스 기반 기술
- M2M (Machine to Machine, 사물 통신)
- 무선 통신을 이용한 기계과 기계사이의 통신
- 모바일 컴퓨팅
- 휴대형 기기로 이동하면서 자유로이 네트워크에 접속
- 클라우드 컴퓨팅
- 각종 컴퓨팅 자원을 중앙 컴퓨터에 두고 인터넷 기능을 가진 단말기로 언제 어디서나 인터넷을 통해 작업을 수행할 수 있는 가상화된 환경
- 그리드 컴퓨팅 (Grid Computing)
- 지리적으로 분산되어 있는 컴퓨터를 초고속 인터넷 망으로 연결하여 하나의 고성능 컴퓨터처럼 활용
- 모바일 클라우드 컴퓨팅 (MCC; Mobile Cloud Computing)
- 소비자와 소비자의 파트너가 클라우드 서비스를 이용하여 모바일 기기로 여러가지 정보와 자원을 공유하는 ICT 기술
- 인터클라우드 컴퓨팅 (Inter-Cloud Computing)
- 각기 다른 클라우드 서비스를 연동하거나 컴퓨팅 자원의 동적 할당이 가능하도록 여러 클라우드 서비스 제공자들이 제공하는 클라우드 서비스나 자원을 연결하는 기술
- 메시 네트워크(Mesh Network)
- 특수 목적을 위한 새로운 방식의 네트워크 기술
- 대규모 디바이스의 네트워크 생성에 최적화
- 와이선 (Wi-SUN)
- 스마트 그리드와 같은 장거리 무선 통신을 필요로 하는 IoT 서비스를 위한 저전력 장거리 통신 기술
- NDN (Named Data Networking)
- 콘텐츠 자체의 정보와 라우터 기능만으로 데이터 전송을 수행
- 클라이언트와서버가 패킷의 헤더에 내장되어 있는 주소 정보를 이용하여 기존의 IP망을 대체할 새로운 인터넷 아키텍쳐
- NGN (Next Generation Network, 차세대 통신망)
- ITU-T에서 개발
- 유선망뿐 아니라 이동 사용자를 목표로 함, 이동통신에서 제공하는 완전한 이동성(Full Mobility) 제공을 목표
- SDN (Software Defined Networking, 소프트웨어정의 네트워킹)
- 네트워크를 컴퓨터처럼 모델링하여 여러 사용자가 각각의 소프트웨어로 네트워킹을 가상화하여 제어하고 관리하는 네트워크
- NFC (Near Field Communication, 근거리 무선 통신)
- 고주파를 이용한 근거리 무선 통신 기술
- 아주 가까운 거리에서 양방향 통신을 지원하는 RFID 기술의 일종
- UWB (Ultra WideBand, 초광대역)
- 짧은 거리에서 많은 양의 데이터를 낮은 전력으로 전송하기 위한 무선 기술
- 무선 디지털 펄스라고도 함
- 피코넷 (PICONET)
- 여러 개의 독립된 통신장치가 블루투스 기술이나 UWB 통신기술을 사용하여 통신망을 형성하는 무선 네트워크 기술
- WBAN (Wireless Body Area Network)
- 웨어러블 기기를 무선으로 연결하는 개인 영역 네트워킹 기술
- GIS (Geographic Information System, 지리 정보 시스템)
- 지리적인 자료를 수집, 저장, 분석, 출력할 수 있는 컴퓨터 응용 시스템
- 위성을 이용해 모든 사물의 위치 정보를 제공
- USN (Ubiquitous Sensor Network, 유비쿼터스 센서 네트워크)
- 각종 센서로 수집한 정보를 무선으로 수집할 수 있도록 구성한 네트워크
- 필요한 모든 것에 RFID 태그를 부착하고 사용
- SON (Self Organizing Network, 자동 구성 네트워크)
- 주변 상황에맞추어 스스로 망을 구성하는 네트워크
- 통신망 커버리지 및 전송 용량 확장의 경제성 문제를 해결하고, 망의 운영과 관리의 효율성을 높임
- 애드 훅 네트워크 (Ad-hoc Network)
- 재난 현장과 같이 별도의 고정된 유선망을 구축할 수 없는 장소에서 모바일 호스트만을 이용하여 구성한 네트워크
- 망을 구성한 후 단기간 사용되는 경우나 유선망을 구성하기 어려운 경우에 적합
- 네트워크 슬라이싱
- 네트워크에서 하나의 물리적인 코어 네트워크 인프라를 독립된 다수의 가상 네트워크로 분리하여 각각의 네트워크를 통해 다양한 고객 맞춤형 서비스를 제공하는 것을 목적으로 하는 네트워크 기술
- 저전력 블루투스 기술(BLE; Bluetooth Low Energy)
- 일반 블루투스와 동일한 2.4GHz 주파수 대역을 사용하지만 연결되지 않은 대기 상태에서는 절전모드를 유지하는 기술
- 파장 분할 다중화 (WDB, Wavelength Division Multiplexing)
- 광섬유를 이용한 통신기술
- 파장이 서로 다른복수의 신호를 보내 여러 대의 단말기가동시에 통신 회선을 사용할 수 있도록 함
- 파장이 다른 광선끼리는 서로 간섭을 일으키지 않는 성질을 이용한 기술
- 소프트웨어 정의 데이터 센터 (SDDC, Software Defined Data Center)
- 데이터 센터의 모든 자원을 가상화하여 인력의 개입없이 소프트웨어 조작만으로 관리 및 제어되는 데이터 센터
- 다양한 소프트웨어 정의 기술이 사용됨
- 개방형 링크드 데이터 (LOD, Linked Open Data)
- Linked Data 와Open Data의 합성어
- 누구나 사용할 수 있도록 웹상에 공개된 연계 데이터를 의미
- 웹상에존재하는 데이터를 개별 URI(인터넷 식별자)로 식별하고, 각 URI에 링크 정보를 부여함으로써 상호 연결된 웹을 지향하는 모형
- SSO (Single Sign On)
- 한 번의 로그인으로 개인이 가입한 모든 사이트를 이용
- 개인정보를 각 사이트마다 기억해야 하던 불편함 해소
- 기업에서는 회원에 대한 통합관리가 가능
148. 네트워크 구축 (A)
성형(Star, 중앙 집중형)
- Point-to-Point 방식
- 단말장치 추가 제거 쉬움
- 하나의 단말장치가 고장나도 괜찮은데 중앙 고장나면 안됨
- 중앙 집중식으로 교환 노드의 수가 적다.
링형(Ring, 루프형)
- Point-to-Point
- 분산 및 집중 제어 가능
- 각 단말장치에서 전송 지연 발생
- 단방향 또는 양방향 가능
- 단방향의 경우 하나만 고장나도 전부 먹통
버스형(Bus)
- 한 개의 통신 회선에 여러대의 단말 장치 연결
- 물리적 구조 간단
- 단말기 추가 제거 용이
- 단말장치가 고장나도 전체에 영향을 주지않아 신뢰성이 높음
- 기밀 보장이 어려움, 통신 회선의 길이 제한
계층형(Tree, 분산형)
- 분산 처리 시스템 구성 방식
망형(Mesh)
- 많은 단말장치로부터 많은 양의 통신이 필요할 때
- 공중 데이터 통신망에 사용, 통신 회선의 총 경로가 가장 길다
- 통신 회선 장애시 다른 경로를 통해 데이터 전송
- 노드가 n개일 때 n(n-1)/2 회선 필요, 노드당 n-1개 필요
네트워크의 분류
- 근거리 통신망 (LAN; Local Area Network)
- 회사, 학교 등 가가운 거리에 있는 컴퓨터, 프린터 등을 연결함
- 주로 자원 공유를 목적
- 버스형, 링형 사용
- 광대역 통신망 (WAN; Wide Area Network)
- 국가과 국가 연결
- 일정한 지역을 LAN으로 연결하고 각 LAN을 연결하는 방식
NAT (Network Address Translation, 네트워크 주소 변환)
- 한 개의 정식 IP주소에 대량의 가상 사설 IP주소를 할당 및 연결하는 기능
149. 경로 제어 / 트래픽 제어 (A)
1. 경로 제어 (Routing)
- 전송 경로 중에서 최적 패킷 교환 경로를 결정하는 기능
- 제어 요소
- 성능 기준
- 경로의 결정 시간과 장소
- 정보 발생지
- 경로 정보의 갱신 시간
2. 경로 제어 프로토콜 (Routing Protocol)
IGP (Interior Gateway Protocol, 내부 게이트웨이 프로토콜)
- RIP (Routing Information Protocol)
- 가장 많이 사용하는 라우팅 프로토콜
- 거리 벡터 라우팅 프로토콜이라 불림
- 최단 경로 탐색에 벨만-포드 알고리즘 사용
- 소규모 네트워크에 효율적
- 최대 홉 수를 15홉으로 제한
- OSPF (Open Shortest Path First protocol)
- RIP의 단점 해결, 대규모 사용
- 최단 경로 탐색에 다익스트라 알고리즘 사용
EGP (Exterior Gateway Protocol)
- 자율 시스템 간의 라우팅, 즉 게이트웨이 간의 라우팅에 사용
BGP (Border Gateway Protocol)
- 자율 시스템 간의 라우팅 프로토콜, EGP 단점 보안
3. 트래픽 제어 (Traffic Contol)
- 전송되는 패킷의 흐름 또는 그 양을 조절하는 기능
- 종류
- 흐름 제어
- 폭주(혼잡) 제어
- 교착상태 방지
4. 흐름 제어 (Flow Control)
- 송수신 측사이에 전송되는 패킷의 양이나 속도를 규제
- 정지-대기 (Stop-and-Wait)
- 수신 측의 Ack을 받은 후 다음 패킷 전송
- 한번에 하나의 패킷만 전송
- 슬라이딩 윈도우 (Sliding Window)
- 확인 신호를 이용해 송신 데이터 양 조절
- 수신 측의 신호 받지 않더라도 미리 정해진 패킷의 수만큼 연속 전송
- 한번에 여러개의 패킷을 보내 전송 효율 좋음
- 송신 측은 수신 측으로부터 확인 신호(Ack) 없이도 보낼 수 있는 패킷의 최대치를 미리 약속받는데, 이 패킷의 최대치가 윈도우 크기
- 긍정수신 응답이 전달되면 윈도우 크기 증가
- 부정 수신 응답이 전달되면 윈도우 크기 감소
5. 폭주(혼잡) 제어 (Congestion Control)
- 네트워크 패킷 수를 조절하여 오버플로 방지
- 느린 시작(Slow Start)
- 윈도우의 크기를 1, 2, 4, 8, 과 같이 2배씩 증가시켜 처음엔 느리지만 갈수록 빨라짐
- 전송 데이터 크기가 임계값에 도달하면 혼잡 회피 단계로 넘어감
- 혼잡 회피 (Congestion Avoidance)
- 느린 시작이 임계값에 도달하면 혼잡으로 간주하고 회피를 위해 윈도우의 크기를 1씩 선형적으로 증가시켜 혼잡을 예방
150. SW 관련 신기술 (B)
- 인공지능(AI)
- 인간의 두뇌와 같이 컴퓨터 스스로 추론, 학습 판단을 하는 시스템
- 뉴럴링크 (Neuralink)
- 테슬라의 일론머스크가 개발
- 사람의 뇌와 컴퓨터를 결합하는 기술
- 딥 러닝 (Deep Learning)
- 인간의 두뇌를 모델로 만들어진 인공신경망을 기반으로 하는 기계 학습 기술
- 전문가 시스템
- 의료 진단 등과 같은 전문가가 수행하는 업무를 지원하는 프로그램
- 증강현실(AR; Augumented Reality)
- 실제 촬영한 화면에 가상의 정보를 보여줌
- 블록체인
- P2P 네트워크를 이용하여 온라인 금융 거래 정보를 참여자 (Peer)의 디지털 장비에 분산 저장
- 분산 원장 기술 (DLT; Distributed Ledger Technology)
- 중앙 관리자나 중앙 데이터 저장소가 존재하지 않고 P2P망의 참여자들에게 모든 거래 목록이 분산 저장됨
- 해시(Hash)
- 임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환
- 양자 암호키 분배 (QKD; Quantum Key Distribution)
- 양자 통신을 위해 비밀키를 분배하여 관리하는 기술
- 프라이버시 강화 기술 (PET, Privacy Enhancing Technology)
- 개인정보 침해 위헙을 관리하기 위한 기술
- 공통 평가 기준(CC; Common Criteria)
- 정보화 순기능 역할을 보장하기 위해 정보화 제품의 정보 보호 기능과 이에 대한 사용 환경 등급 정함
- 개인정보 영향평가 제도 (PIA; Privacy Impact Assessment)
- 개인 정보를 활용하는 정보 시스템 변경시 국민의 사생활에 미칠 영향에 대해 미리 조사, 분석, 평가하는 제도
- 그레이웨어 (Grayware)
- SW제공 입장에서 악의적이지 않은 유용한 SW라 주장하지만, 사용자 입장에서 위험할 수도 있는 애드웨어, 트랙웨어 등
- 매시업 (Mashup)
- 웹에서 제공하는 정보 및 서비스를 이용하여 새로운서비스를 만드는 기술
- 리치 인터넷 애플리케이션(RIA)
- 플래시 애니메이션 기술과 웹 서버 애플리케이션 기술을 통합하여 기존 HTML보다 더 역동적인 플래시 웹 페이지 제작 기술
- 시맨틱 웹 (Semantic Web)
- 컴퓨터가 사람 대신 정보를 읽고 이해하고 가공하여 새로운정보를 만들어 낼수 있도록 이해하기 쉬운 의미를 가진 차세대 지능형 웹
- 증발품 (Vaproware)
- 판매 또는 배포 계획은 발표했으나 실제로 고객에게 판매되거나 배포되지 않은 SW
- 오픈 그리드 서비스 아키텍처 (OGSA)
- 애플리케이션 공유를 위한 웹 서비스를 그리드 상에서 제공하기 위해 만든 개방형 표준
- 서비스 지향 아키텍처 (SOA)
- 기업의 SW 인프라인 정보시스템을 공유와 재사용이 가능한 서비스 단위나 컴포넌트 중심으로 구축하는정보기술 아키텍처
- 서비스형 소프트웨어 (SaaS)
- 사용자가 필요로 하는 서비스만 이용할 수 있도록 한 SW
- 소프트웨어 에스크로
- 개발자의 지식재산권을 보호하고 사용자는 저렴한 비용으로 사용 및 유지보수 할 수 있도록 소스 프로그램과 기술 정보 등을 제 3의 기관에 보관하는 것
- 복잡 이벤트 처리 (CEP; Complex Event Processing)
- 실시간으로 발생하는 사건중 의미가 있는 것만을 추출할 수 있도록 사건 발생 조건을 정의하는 데이터 처리 방법
- 디지털 트윈
- 현실속의 사물을 SW로 가상화한 모델
152. HW 관련 신기술 (A)
- 고가용성 (HA; High Availability)
- 긴 시간동안 안정적인 서비스 운영을 위해 장애 발생시 즉시다른 시스템으로 대체 가능한 환경을 구축하는 매커니즘
- 3D 프린팅
- 아주 얇은두께로 한층한층 쌓아 형태를 만듦
- 4D 프린팅
- 특정 시간이나 환경이 갖춰지면 스스로 형태를 변화시키거나 자가 조립 기술이 적용된 제품을 3D 프린팅하는 기술
- RAID (Redundant Arry of Inexpensive Disk, Redundant Array of Independent Disk)
- 여러 개의 하드디스크로 디스크 배열을 구성하여 파일을 구성하고 있는 데이터 블록들을 서로 다른 디스크에 분산하여 저장할 경우 그 볼륵들을 여러 디스크에서 동시에 읽거나 쓸 수 있음
- 디스크 속도 매우 향상
- RAID는 한 디스크에만 문제가 생겨도 전체가 손상됨
- 오류 검출 방법에 따라 RAID1~RAID5 5종류 있음
- 4K 해상도
- 차세대 고화질 모니터의 해상도 지칭
- 앤 스크린 (N-Screen)
- 여러 개의 서로 다른 단말기에서 동일한 콘텐츠를 자유롭게 이용하는 것
- 컴패니언 스크린
- TV 방송 시청 시 방송 내용을 공유하며 추가적인 기능을 수행할 수 있는 스마트폰, 태플릿pc등을 의미함
- 앤스크린의 한 종류로 세컨드 스크린이라고도 함
- 신 클라이언트 PC (Thin Client PC)
- 하드디스크나 주변 장치 없이 메모리만 갖추고 서버와 네트워크로 운용되는 개인용 컴퓨터
- 서버 기반 컴퓨팅과 관계가 깊음
- 패블릿 (Phablet)
- 폰과 태블릿의 합성어
- 태블릿 기능을포함한 5인치 이상의 대화면 스마트폰
- C형 USB
- C 타입 USB
- 24핀으로 위아래 구분 없음
- 멤스 (MEMS; Micro-Elector Mechanical Systems)
- 초정밀 반도체 제조 기술을 바탕으로 기계 구조를 미세 가공하여 전기기계적 동작을 할 수 있도록 한 초미세 장치
- 트러스트존 기술 (TrustZone Technology)
- 하나의 프로세서 내에일반 애플리케이션을 처리하는 일반 구역과 보안이 필요한보안구역으로 분할하여 관리하는 하드웨어 기반의 보안 기술
- 엠디스크 (M-DISC, Millennial DISC)
- 한 번의 기록만으로 자료를 영구보관하는 광 저장장치
- 시간이 지나도 변하지 않음
- 멤리스터 (Memristor)
- 메모리와 레지스터의 합성어
- 전류의 방향과 양 등 기존의 경험모두를 기억
154. DB 관련 신기술 (A)
- 빅데이터
- 방대한 양의 정형 또는 비정형 데이터 집합
- 브로드 데이터 (Broad Data)
- 다양한 채널에서 소비자와 상호 작용을 통해 생성된 것
- 메타 데이터
- 일련의 데이터를 정의하고 설명해주는 데이터
- 컴퓨터에서는 데이터 사전의 내용, 스키마 등을 의미
- 디지털 아카이빙
- 디지털 정보를 장기적으로 보존
- 하둡(Hadoop)
- 오픈 소스 기반 분산 컴퓨팅 플랫폼
- 일반 pc급 컴퓨터들로 가상화된 대형 스토리지를 형성할 수 있는 자바 SW 프레임워크
- 구글, 야후 등에 적용됨
- 맵리듀스
- 대용량 데이터를 분산 처리하기 위한 목적으로 개발된 프로그래밍 모델
- 흩어진 데이터를 묶는 Map 작업 후 중복 데이터 제거하고 원하는 데이터를 추출하는 Reduce 작업
- 구글에서 고안됨
- 타조(Tajo)
- 오픈 소스 기반 분산 컴퓨팅 플랫폼인 아파치 하둡 기반의 분산 데이터 웨어하우스 프로젝트
- 데이터 다이어트
- 데이터를 삭제하는게 아닌 압축하고 중복을 제거하여 저장하는 작업
- 데이터 마이닝 (Data Mining)
- 대량의 데이터를 분석하여 패턴을 찾는 기법
- OLAP (Online Analytical Processing)
- 다차원으로 이루어진 데이터로부터 통계적인 요약 정보를 분석하여 의사결정에 활용하는 방식
155. 회복/병행제어 (A)
1. 회복 (Recovery)
DB가 손상되었을 때 손상되기 이전의 정상 상태로 복구하는 작업
연기 갱신 기법 (Deferred Update)
- 트랜잭션이 성공적으로 완료될 때까지 DB에 대한 실질적인 갱신을 연기
- 트랜잭션이 수행되는 동안 갱신된내용은 로그에 보관
- Redo작업만 가능
즉각 갱신 기법 (Immediate Update)
- 트랜잭션이 데이터를 갱신하면 부분 완료되기 전이라도 즉시 실제 DB에 반영
- Redo와 Undo 사용
그림자 페이지 대체 기법 (Shadow Paging)
- 갱신 이전 데이터베이스를 일정 크기로 페이지 복사본인 그림자페이지로 별도 보관, 장애가 발생하여 Rollback 할 때 갱신된 이후 실제 페이지 부분에 그림자 페이지를 대체하여 회복
- 로그, Undo, Redo 필요 없음
검사점 기법
- 일정 지점부터 회복하는 것
2. 병행제어 (Concurrency Control)
- 여러개의 트랜잭션을 병행 수행할때, 동시에 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호작용을 제어하는 것
목적
- 데이터베이스의 공유 최대화
- 시스템의 활용도 최대화
- 데이터베이스의 일관성 유지
- 사용자 응답 시간 최소화
병행제어 기법
- 로킹 (Locking)
- 주요 데이터의 액세스를 상호 배타적으로 하는 것
- 트랜잭션들이 어떤 로킹 단위를 액세스하기 전에 Lock(잠금)을 요청해서 Lock이 허락되어야 그 로킹 단위를 액세스 할 수 있음
- 타임 스탬프 순서 (Time Stamp Ordering)
- 직렬성 순서를 결정하기 위해 트랜잭션 간의 처리 순서를 미리 선택
- 가장 보편적
- 교착상태 발생하지 않음
- 최적 병행수행 (검증 기법, 확인 기법, 낙관적 기법)
- 트랜잭션이 Read Only일 경우 충동률이 매우 낮아서 병행제어 기법을 사용하지 않아도 일관성 있게 유지됨
- 다중 버전 기법
- 타임 스탬프 기법 이용, 다중 버전 타임 스탬프 기법 이라함
- 타임 스탬프가 시간표를 이용한다면, 다중 버전은 버전을 이용함
* 로킹 단위
- 병행제어에서 한꺼번에 로킹할 수 있는 객체의 크기
- DB, 파일, 레코드, 필드 등이 로킹 단위
- 로킹단위가 크면 로크 수가 작아 관리하기 쉽지만 병행성 수준이 낮아짐
- 로킹단위가 작으면 로크 수가 많아 관리하기 복잡해 오버헤드 증가, 병행성 수준 높아짐
156. 교착상태(B)
교착 상태 필요 충분 조건
- 상호 배제 (Mutual Exclusion)
- 한 번에 한 개의 프로세스만 공유 자원을 사용할 수 있어야 한다
- 점유와 대기 (Hold and Wait)
- 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있느 ㄴ자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 한다.
- 비선점 (Non-preemption)
- 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 한다.
- 환형 대기 (Circular Wait)
- 공유 자원과 공유자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어 자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야 한다.
교착상태 해결 방법
- 예방 기법 (Prevention)
- 교착 상태가 발생하지 않도록 사전에 시스템을 제어
- 교착상태 발생의 4가지 조건중 어느 하나를 제거하여 수행
- 자원의 낭비가 가장 심함
- 회피 기법 (Avoidance)
- 교착상태가 발생할 가능성을 배제하지 않고 교착상태가 발생하면 적절히 회피하는 방법
- 은행원 알고리즘 사용 (Banker's Algorithm)
- 다익스트라, 은행에서 모든 고객의 요구가 충족되도록 현금을 할당하는데서 유래
- 발견 기법 (Detection)
- 시스템에 교착상태가 발생했는지 점검하여 교착상태에 있는 프로세스와 자원을 발견하는 것
- 교착상태 발견 알고리즘과 자원 할당 그래프 사용
- 회복 기법 (Recovery)
- 교착상태를 일으킨 프로세스를 종료하거나 교착상태의 프로세스에 할당된 자원을 선점하여 프로세스나 자원을 회복하는 것
'정보처리기사 > 실기' 카테고리의 다른 글
자주 나오는/틀리는 항목 (0) | 2024.07.26 |
---|---|
오답 (13) | 2024.07.24 |
10장 오답 (1) | 2024.07.22 |
정보처리기사 실기 10장 - 프로그래밍 언어 활용 (0) | 2024.07.16 |
정보처리기사 실기 9장 - 소프트웨어 개발 보안 구축 (3) | 2024.07.15 |
댓글