1. 인터럽트의 정의

 

프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 현재 실행 중인 작업을 즉시 중단하고, 발생된 상황을 우선 처리한 후 실행 중이던 작업으로 복귀하여 계속 처리하는 것이다. 일명 "끼어들기"라고도 한다.
- 외부 인터럽트, 내부 인터럽트, 소프트웨어 인터럽트로 분류하는데, 외부나 내부 인터럽트는 CPU의 하드웨어에서의 신호에 의해 발생하고 소프트웨어 인터럽트는 명령어의 수행에 의해 발생한다.

 

 

2. 인터럽트의 종류 및 발생원인

 

외부 인터럽트
- 전원 이상 인터럽트 (Power Fail Interrupt) : 정전이 되거나 전원 이상이 있는 경우이다.
- 기계 착오 인터럽트 (Machine Check Interrupt) : CPU의 기능적인 오류동작이 발생한 경우이다.
- 외부 신호 인터럽트 (External Interrupt): 타이머에 의해 규정된 시간(Time Slice)을 알리는 경우, 키보드로 인터럽트 키를 누른 경우, 외부장치로부터 인터럽트 요청이 있는 경우이다.
- 입/출력 인터럽트 (Input-Output Interrupt) : 입/출력 Data의 오류나 이상 현상이 발생한 경우, 입/출력장치가 데이터의 전송을 요구하거나 전송이 끝났음을 알릴 경우이다.

 

내부 인터럽트
- 잘못된 명령이나 데이터를 사용할 때 발생하며, 트랩 (Trap)이라고도 부른다.
- 명령어 잘못에 의한 인터럽트 : 프로그램에서 명령어를 잘못 사용한 경우이다.
- 프로그램 인터럽트 (Program Interrupt) : 0으로 나누거나, Over flow 또는 Underflow가 발생한 경우이다.


소프트웨어 인터럽트
- 프로그램 처리 중 명령의 요청에 의해 발생하는 것으로, 가장 대표적인 형태는 감시 프로그램을 호출하는 SVC(SuperVisor Call) 인터럽트가 있다.
- SVC (Supervisor Call) 인터럽트 : 사용자가 SVC 명령을 써서 의도적으로 호출한 경우이다.

 

3. 인터럽트 발생시 CPU가 확인할 사항

-프로그램 카운터의 내용
-사용한 모든 레지스터의 내용
-상태 조건의 내용(PSW)

 

4. 인터럽트의 동작원리
① 인터럽트 요청 신호 발생
② 프로그램 실행을 중단함 : 현재 실행 중이던 명령어(Micro Instruction)는 끝까지 실행한다.
③ 현재의 프로그램 상태를 보존함 : 프로그램 상태는 다음에 실행할 명령의 번지로서 PC가 가지고 있다.
④ 인터럽트 처리 루틴을 실행함 : 인터럽트를 요청한 장치를 식별한다.
⑤ 인터럽트 서비스 루틴을 실행함 : 실질적인 인터럽트를 처리한다.
⑥ 상태복구: 인터럽트 요청신호가 발생했을 때 보관한 PC의 값을 다시 PC에 저장한다.
⑦ 중단된 프로그램 실행 재개 : PC의 값을 이용하여 인터럽트 발생 이전에 수행 중이던 프로그램을 계속 실행한다.

 

5. 인터럽트 우선순위
- 목적 : 여러 장치에서 동시에 인터럽트가 발생하였을 때 먼저 서비스할 장치를 결정하기 위해서이다.
- 우선 순위(높음>낮음) : 전원 이상(Power Fail) > 기계착오(MachineCheck) > 외부신호(External) > 입출력(I/O) > 명령어 잘못 > 프로그램(Program Check) > SVC(Supervisor Call)

 

6. 인터럽트 우선순위 판별 방법

 

소프트웨어적인 인터럽트 우선순위 판별방법 : Polling
- Interrupt 발생시 가장 높은 우선순위의 인터럽트 자원(Source)부터 차례로 검사해서, 우선순위가 가장 높은 Interrupt 자원(Source)를 찾아내어 이에 해당하는 인터럽트 서비스 루틴을 수행하는 방식이다.
․ 소프트웨어적인 방식을 폴링이라고 한다.
․ 많은 인터럽트가 있을 때 그들을 모두 조사하는 데 많은 시간이 걸려 반응시간이 느리다는 단점이 있다.
․ 회로가 간단하고 융통성이 있으며 별도의 하드웨어가 필요 없으므로 경제적이다.

 

하드웨어적인 인터럽트 우선순위 판별방법

  • CPU와 Interrupt를 요청할 수 있는 장치 사이에 장치 번호에 해당하는 버스를 병렬이나 직렬로 연결하여 요청장치의
    번호를 CPU에 알리는 방식이다.
  •  장치 판별 과정이 간단해서 응답속도가 빠르다.
  •  회로가 복잡하고 융통성이 없으며, 추가적인 하드웨어가 필요하므로 비경제적이다.
  •  직렬(Serial) 우선순위 부여방식 : 데이지 체인(Daisy-Chain)

- 인터럽트가 발생하는 모든 장치를 1개의 회선에 직렬로 연결한다.
- 우선순위가 높은 장치를 선두에 위치시키고 나머지를 우선순위에 따라 차례로 연결한다.
- 직렬 우선순위 부여방식을 데이지 체인 방식이라고 한다.

  • 병렬(Parallel) 우선순위 부여방식
    - 인터럽트가 발생하는 각 장치를 개별적인 회선으로 연결한다.
    - 각 장치의 인터럽트 요청에 따라 각 Bit가 개별적으로 Set될 수 있는 Mask Register를 사용한다.
    - 우선순위는 Mask Register의 Bit위치에 의해서 결정된다.
    - 우선순위가 높은 Interrupt는 낮은 Interrupt가 처리되는 중에도 우선 처리된다.

 

7. 기억장치의 특성을 결정하는 요소

 

- 기억용량 :기억장치는 무조건 기억용량이 큰 것을 사용한다고 해서 좋은 것이 아니라, 사용목적에 따라 성능당 경비 비율이 적은것을 사용하는 것이 바람직하다.
- Access Time : 기억장치에 읽기요청이 발생한 시간부터 요구한 정보를 꺼내서 사용 가능할 때까지의 시간이다. 한 Word단위의 정보를 읽거나 기록하는데 걸리는 시간이고  공식은  Access time = Seek Time + Latency Time(또는 SerachTime) + Transmission Time 이다.

- Cycle Time : 기억장치에 읽기신호를 보낸 후 다시 읽기 신호를 보낼 수 있을 때까지의 시간 간격이다. Cycle Time ≥ Access Time

- Bandwidth(대역폭, 전송률) : 메모리로부터 또는 메모리까지 1초 동안 전송되는 최대한의 정보량으로 기억장치의 자료처리 속도를 나타내는 단위이고 메모리 워드의 길이가 작을수록 대역폭이 좋다.

 

8.기억장치의 구분

 

내용의 보존 여부 
- 파괴성 메모리(Destructive Memory) : 판독 후 저장된 내용이 파괴되는 메모리로, 파괴된 내용을 재생시키기 위한 재저장 시간(Restoration Time)이 필요함 (예)자기 코어
- 비파괴성 메모리 : 판독 후에도 저장된 내용이 그대로 유지됨 (예) 자기코어를 제외한 모든 기억장치이다.

 

전원단절시 내용 소멸 여부
- 휘발성 메모리(Volatile Memory) : 전원이 단절되면 모든 정보가 지워지는 메모리 (예) RAM
- 비휘발성 메모리 : 전원이 단절되더라도 기억된 정보가 보존되는 메모리 (예) ROM, 자기코어, 보조기억장치

 

재충전 (Ref resh) 여부
- 정적메모리(SRAM) : 전원이 공급되는 한 기억된 내용이 계속 유지되는 메모리이다.
- 동적메모리(DRAM) : 전원이 공급되어도 일정시간이 지나면 내용이 지워지므로 재충전을 해야 하는 메모리이다.

접근 방식
- 직접접근방식(SASD, Sequential Access Storage Device) :자료가 저장된 위치에 접근할 때, 처음부터 순서대로 접근하여 원하는 위치를 검색하는 메모리 (예) 자기테이프
- 직접접근방식(DASD, Direct Access Storage Device) : 순서를 거치지 않고 자료가 저장된 위치를 직접 접근할 수 있는 메모리 (예)자기 테이프를 제외한 모든 기억장치

 

9. ROM(Read Only Memory)
- 기억된 내용을 읽을 수만 있는 기억장치로서 일반적으로 쓰기는 불가능하다.
- 전원이 꺼져도 기억된 내용이 지워지지 않는 비휘발성 메모리이다.
- 실제로 ROM은 주기억장치로 사용하기 보다는 주로 기본 입.출력시스템(BIOS), 자가 진단 프로그램(POST) 같은 변경가능성이 희박한 시스템 소프트웨어를 기억시키는데 이용한다.

 

ROM의 종류와 특징

 

Mask ROM
제조공장에서 프로그램화하여 생산한 ROM으로, 사용자가 내용을 변경시킬 수 없다.


PROM(Programmable ROM)
PROM 프로그램장치라는 특수장치를 이용하여 비어있는 ROM에 사용자가 한번만 내용을 기입할 수 있으며, 이후엔 읽기만 가능하다.


EPROM(Erasable PROM)
- 자외선을 쏘여서 기입한 내용을 지울 수도 있고, PROM프로그램장치로 기입할 수도 있다.
- 사용자가 여러 번 반복해서 지우거나 기입할 수 있다.

EAROM (Erasable Alterable ROM)
전기적 특성을 이용하여 기록된 정보의 일부를 바꿀 수 있는 ROM이다.


EEPROM(Electronic EPROM)
전기적인 방법을 이용하여 기록된 내용을 여러 번 수정하거나 새로운 내용을 기록할 수 있는 ROM이다.

 

9. RAM(Random Access Memory)
- 자유롭게 읽고 쓸 수 있는 기억장치로, RWM(Read Write Memory)라고도 한다.
- RAM에는 현재 사용 중인 프로그램이나 데이터가 저장되어 있다.
- 전원이 꺼지면 기억된 내용이 모두 사라지는 휘발성 메모리이다.
- 일반적으로 ‘주기억장치’ 또는 메모리라고 하면 램을 의미한다.
- 정보가 저장된 위치는 주소로 구분한다.
- SRAM/DRAM의 특징 : 동적 램(DRAM)은 구성소자가 콘덴서이고, 전원공급이 되어도 일정시간이 지나면 전하가 방전되므로 주기적인 재충전(refresh)가 필요하다. 그리고 전력소모가 적으며 접근속도가 느리고, 밀도가 높고 가격이 저렴하다. DRAM은 일반적인 주기억장치로 사용된다. 정적 램(SRAM)은 플립플롭으로 구성되며 전원이 공급되는 동안에는 기억내용이 유지된다. 전력소모가 많으며 접근 속도가 빠르며 밀도가 낮고 가격이 비싸다. SRAM은 캐시메모리로 사용된다.

 

10.자기코어
- 전류 일치 기술(coincident-current technique)에 의하여 기억장소를 선별한다.
- 데이터를 읽으면 읽은 내용이 지워지는 파괴메모리(destructive memory) 이므로 내용을 읽은 후 지워진 내용을 기록하기 위한 재저장(restoration time)시간이 필요하다.
- 자기 코어는 중심을 통과하는 전선에 흐르는 전류의 방향에 따라 1혹은 0의 값을 갖는다.
- 자기 코어는 부피에 비해 용량이 작고 가격이 비싸 현재는 거의 사용하지 않는다.
- 자기코어에는 4개의 선이 있다.
- 구동선(X, Y) 2개 : 번지 선택선
- 센스선 1개 : 자기코어의 상태 검출한다.
- 금지선 1개 : 불필요하게 자화되었을 때 -1/2 금지 전류를 흘려 자화를 소거시키는 선이다.

 

11. 보조기억장치
자기 테이프
- 순차처리(SASD)만 할 수 있는 대용량 저장매체이다.
- 가격이 저렴하고 용량이 커서 자료의 백업용으로 많이 사용한다.
- 자성 물질이 코팅된 얇은 플라스틱 테이프를 동그란 릴에감아 놓은 형태이다
- 테이프의 시작과 끝부분을 알리는 은박지 사이의 정보 저장부분을 7~9 트랙으로 구성한다.


자기디스크(Magnetic Disk)
- 자성 물질을 입힌 금속 원판을 여러 장 겹쳐서 만든 기억매체로 용량이 크고 접근 속도가 빠르다.
- 순차, 비순차(직접) 처리가 모두 가능한 DASD(Direct Access Storage Device) 방식으로 데이터를 처리한다.
- 트랙(Track) : 디스크 표면에서 회전축(스핀들 모터)을 중심으로 데이터가 기록되는 동심원
- 섹터(Sector) : Track들을 일정한 크기로 구분한 부분이며, 정보 기록의 기본 단위이다.
- 실린더(Cylinder) : 서로 다른 면들에 있는 동일 위치의 Track들의 모임으로 실린더의 수는 한 면의 트랙 수와 동일하다.

 

자기드럼(Magnetic Drum)
- 원통 표면에 Track과 Sector를 구성하고, 각 Track마다 고정된 R/W Head를 두고 있어 자기디스크에 비해 속도가 빠르다.
- 순차, 비순차(직접) 처리가 모두 가능한 DASD(Direct Access Storage Device) 방식으로 데이터를 처리한다.
- 크기에 비해 용량이 적어 현재는 거의 사용하지 않는다.

 

12. 특수 기억장치

 

연관기억장치(Associative Memory)
- 기억장치에서 자료를 찾을 때 주소에 의해 접근하지 않고, 기억된 내용의 일부를 이용하여 Access할 수 있는 기억장치로 CAM(Content Addressable Memory)이라고도 한다.
- 주소에 의해서만 접근이 가능한 기억장치보다 정보검색이 신속하다.
- 캐시메모리나 가상메모리관리 기법에서 사용하는 Mapping Table에 사용된다.
- 외부의 인자와 내용을 비교하기 위한 병렬 판독 논리회로를 갖고 있기 때문에 하드웨어 비용이 증가한다.

 

복수 모듈 기억장치(Memory Interleaving)
- 독자적으로 데이터를 저장할 수 있는 기억장치 모듈을 여러 개 가진 기억장치이다.
- 주기억장치와 CPU의 속도차의 문제점을 개선한다.

- 기억장치 버스를 시분할하여 사용한다.
- 기억장소의 접근을 보다 빠르게 한다.
- 복수 모듈 기억장치에 사용되는 각각의 기억장치는 자체의 어드레스 레지스터와 버퍼 레지스터를 가지고 독자적으로 데이터를 저장할 수 있다.
- 인터리빙 기법에 의해 기억장치를 구성하는 모듈 수만큼의 단어(Word)들에 동시 접근이 가능한다.

캐시메모리(CacheMemory)
- CPU의 속도와 메모리의 속도 차이를 줄이기 위해 사용하는 고속 Buffer Memory이다.
- 캐시는 주기억장치와 CPU 사이에 위치한다.
- 캐시 메모리는 메모리 계층 구조에서 가장 빠른 소자이며, 처리속도가 거의 CPU의 속도와 비슷할 정도이다.
- 캐시를 사용하면 기억장치의 접근(access) 시간이 줄어듦으로 컴퓨터의 처리속도가 향상된다.
- 캐시는 수십 Kbyte~수백 Kbyte의 용량을 사용한다.

가상기억장치(Virtual Memory)
- 기억용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용할 수 있도록 하는 운영체제의 메모리 운영 기법이다.
- 가상기억장치의 목적은 주기억장치의 용량 확보이다.
- 가상 기억장치는 하드웨어적으로 실제로 존재하는 것이 아니고 소프트웨어적인 방법으로 보조기억 장치를 주 기억장치처럼 사용하는 것이다.
- 사용자 프로그램을 여러 개의 작은 블록으로 나누어서 보조기억장치 상에 보관해놓고 프로그램 실행시 필요한 부분들만 주기억장치에 적재한다.
- 주 기억장치의 이용률과 다중프로그래밍의 효율을 높일 수 있다.
- 가상기억장치 기법에서 사용하는 보조기억장치는 디스크 같은 DASD 장치이어야 한다.

 

 

1. 마이크로 오퍼레이션(Micro Operation)의 정의

- Instruction을 수행하기 위해 CPU내의 레지스터와 플래그가 의미 있는 상태 변환을 하도록 하는 동작이다.

- 레지스터에 저장된 데이터에 의해 이루어지는 동작이다.

- 한 개의 Clock 펼스 동안 실행되는 기본 동작이다.

- 마이크로 오퍼레이션의 순서를 결정하기 위하여 제어장치가 발생하는 신호를 제어신호라고 한다.

- 한 개의 Instruction은 여러 개의 Micro Operation이 동작되어 실행한다.

- Micro Cycle Time : 한 개의 Micro Operation을 수행하는데 걸리는 시간이다.


2. Micro Cycle Time 부여 방식

1) 동기고정식(Synchronous fixed)

- 모든 마이크로 오퍼레이션의 동작시간이 같다고 가정하여 CPU Clock의 주기를 Micro Cycle Time과 같도록 정의하는 방식이다,.

- 모든 마이크로 오퍼레이션 중에서 수행시간이 가장 긴 마이크로 오퍼레이션의 동작시간을 Micro Cycle Time으로 정한다.

- 모든 마이크로오퍼레이션의 동작시간이 비슷할 때 유리한 방식이다.

- 장점 : 제어기의 구현이 단순하다.

- 단점 : CPU의 시간 낭비가 심하다.

2) 동기가변식(Synchronous Variable)

- 수행시간이 유사한 Micro Operation끼리 그룹을 만들어, 각 그룹별로 서로 다른 Micro Cycle Time을 정의하는 방식이다.

- 동기 고정식에 비해 CPU 시간 낭비를 줄일 수 있는 반면, 제어기의 구현은 조금 복잡하다.

- 마이크로오퍼레이션의동작시간이차이가날때유리하다.(정수배)

3) 비동기식(Asynchronous)

- 모든 마이크로 오퍼레이션에 대하여 서로 다른 Micro Cycle Time을 정의하는 방식이다.

- CPU의 시간 낭비는 전혀 없으나, 제어기가 매우 복잡해지기때문에 실제로는 거의 사용되지 않는다.


3. 메이저 스테이트

- 현재 CPU가 무엇을 하고 있는가를 나타내는 상태로서 fetch, indirect, execute, interrupt 이렇게 4개의 상태가 있다.

- CPU는 메이저 스테이트의 4가지 단계를 반복적으로 거치면서 동작을 수행한다.

- 메이저 스테이는 메이저 스테이트 레지스터를 통해서 알 수 있다.

- Major Cycle 또는 Machine Cycle라고도 한다.

- 메이저 스테이트의 변천 과정이다.


4. 인출단계

- 명령어를 주기억장치에서 중앙처리장치의 명령레지스터로 가져와 해독하는 단계이다.

- 읽어와 해석된 명령어가 1 Cycle 명령이면 이를 수행한 후 다시 Fetch Cycle 사이클로 변천한다.

- 1 Cycle 명령이 아니면, 해석된 명령어의 모드비트에 따라 직접주소와간접 주소를 판단한다.


제어신호 Micro Operation 의미

C0t0 MAR ← PC PC에 있는 번지를 MAR에 전송시킨다.

C0t1

MBR ←M[MAR],

PC ← PC + 1

- 메모리에서 MAR이 지정하는 위치의 값을 MBR에 전송한다.

- 다음에 실행할 명령의 위치를 지정하기 위해 PC의 값을 1 증가시킨다.

C0t2

IR ←MBR[OP],

I ← MBR[I]

- 명령어의 OP-code 부분을 명령레지스터에 전송한다.

※현재 MBR에는 주기억 장치에서 읽어온 명령이 들어있다.

- 명령어의 모드비트를 플립플롭 I에 전송한다.

C0t3

F ← 1

또는 R ← 1

- I가 0이면 F 플립플롭에 1을 전송하여Execute 단계로 변천하고, I가 1이면 R 플립플롭에 1을 전송하여 Indirect 단계로 변천한다.


5. 간접 단계(Indirect cycle)

- Fetch 단계에서 해석된 명령의 주소부가 간접주소인 경우 수행된다.

- Fetch 단계에서 해석한 주소를 읽어온 후 그 주소가 간접주소이면 유효주소를 계산하기 위해 다시 Indirect 단계를 수행 한다.

- 간접 주소가 아닌 경우에는 명령어에 따라서 Execute 단계 또는 Fetch 단계로 이동할지를 판단한다.


제어신호 Micro Operation 의미

C1t0 MAR ← MBR[AD]

- MBR에 있는 명령어의 번지 부분을 MAR에 전송한다.

C1t1 MBR ← M[MAR]

- 메모리에서 MAR이 지정하는 위치의 값을MBR에 전송한다.

C1t2 No Operation 동작없다.

C1t3 F ← 1, R ← 0

- F에 1, R에 0을 전송하여 Execute 단계로변천한다.


6. 실행 단계(Execute Cycle)

- Fetch 단계에서 인출하여 해석한 명령을 실행하는 단계이다.

- 플래그 레지스터의 상태 변화를 검사하여 Interrupt 단계로 변천할 것 인지를 판단한다.

- Interrupt 요청신호를 나타내는 플래그 레지스터의 변화가 없으면 Fetch 단계로 변천한다.

- ADD 연산을 수행하는 Execute 단계이다.


제어신호 Micro Operation 의미

C2t0 MAR ← MBR[AD]

- MBR에 있는 명령어의 번지 부분을 MAR에 전송한다.

C2t1 MBR ← M[MAR]

- 메모리에서 MAR이 지정하는 위치의 값을MBR에 전송한다.

C2t2 AC ←AC + MBR

- 누산기의 값과 MBR의 값을 더해 누산기에전송한다.

※ 실질적인 ADD 연산이 이루어는 부분이다.

C2t3

F ← 0

또는 R ←1

- F에 0을 전송하면 F=0, R=0이 되어 Fetch단계로 변천하고, R에 1을 주면 F=1, R=1이 되어 Interrupt 단계로 변천한다.


7. 인터럽트 단계(Interrupt Cycle)

-인터럽트 발생시 복귀주소(PC)를 저장시키고, 제어순서를 인터럽트 처리 프로그램의 첫 번째 명령으로 옮기는 단계이다.

-인터럽트 단계를 마친 후에는 항상 Fetch 단계로 변천한다.


C3t0

MBR[AD] ←PC,

PC ← 0

- PC가 가지고 있는, 다음에 실행할 명령의 주소를 MBR의 주소 부분으로 전송한다.

․ 복귀 주소를 저장할 0번지를 PC에 전송한다.

C3t1

MAR ← PC,

PC ← PC + 1

․ PC가가지고있는, 값0번지를MAR에전송함․ 인터럽트 처리 루틴으로 이동할 수 있는 인터럽트 벡터의 위치를 지정하기 위해 PC의 값을 1 증가 시켜 1로 세트시킨다.

C3t2

M[MAR] ← MBR,

IEN ← 0

․ MBR이 가지고 있는, 다음에 실행할 명령의 주소를 메모리의 MAR이 가리키는 위치(0 번지)에 저장한다.

․ 인터럽트 단계가 끝날 때까지 다른 인터럽트가 발생하지 않게 IEN에 0을 전송한다.

C3t3 F ← 0, R ← 0 F에 0, R에 0을 전송하여 Fetch 단계로 변천한다.


8. 주요 명령의 마이크로 오퍼레이션

ADD : AC ← AC + M[AD]

제어신호 Micro Operation 의미

C2t0 MAR ← MBR[AD]

MBR에 있는 명령어의 번지 부분을 MAR에 전송한다.

C2t1 MBR ← M[MAR]

메모리에서 MAR이 지정하는 위치의 값을 MBR에 전송한다.

C2t2 AC ←AC + MBR

누산기의 값과 MBR의 값을 더해 누산기에 전송한다.

C2t3

IEN' F ←0

F에 0을 전송하면 F=0, R=0이 되어 Fetch 단계로 변천한다.

IEN R ←1

R에 1을 전송하면 F=1, R=1이 되어 Interrupt 단계로 변천한다.

LDA(Load to AC) : AC ← M[AD]

제어신호 Micro Operation 의미

C2t0 MAR ← MBR[AD]

MBR에 있는 명령어의 번지 부분을 MAR에 전송한다.

C2t1

MBR ← M[MAR]

AC ← 0

․ 메모리에서 MAR이 지정하는 위치의값을 MBR에 전송한다.

․ AC에 0을 전송하여 AC를 초기화 한다.

C2t2 AC ← AC + MBR

․ 메모리에서 가져온 MBR과 AC를 더해AC에 전송한다.

․ 초기화된 AC에 더해지지므로 메모리의 값을 AC로 불러오는것과 같다.

C2t3

IEN' F ← 0

F에 0을 전송하면 F=0, R=0이 되어 Fetch단계로 변천한다.

IEN R ← 1

R에 1을 전송하면 F=1, R=1이 되어 Interrupt 단계로 변천한다.

STA(Store AC) : M[AD]← AC

제어신호 Micro Operation 의미

C2t0 MAR ← MBR[AD]

MBR에 있는 명령어의 번지 부분을 MAR에 전송한다.

C2t1 MBR ← AC AC의 값을 MBR에 전송한다.

C2t2 M[MAR] ←MBR

MBR의 값을 메모리의 MAR이 지정하는 위치에 전송한다.

C2t3

IEN' F ← 0

F에 0을 전송하면 F=0, R=0이 되어 Fetch단계로 변천한다.

IEN R ← 1

R에 1을 전송하면 F=1, R=1이 되어Interrupt 단계로 변천한다.


9. 제어 데이터

제어장치가 제어신호를 발생하기위한 자료로서, CPU가 특정한 메이저 상태와 타이밍 상태에 있을 때 제어자료에 따른 제어규칙에 의해 제어신호가 발생한다.

- 메이저 스테이트 사이의 변천을 제어하는 데이터이다.

- 중앙처리장치의 제어점을 제어하는 데이터이다.

- 인스트럭션의 수행 순서를 결정하는데 필요한 제어 테이터이다.


10. 제어장치의 비교

제어장치는 필요한 마이크로 연산들이 연속적으로 수행할 수 있도록 제어 신호를 보내는 역할을 한다.

고정배선 제어장치 마이크로 프로그래밍 기법

- 반응속도 고속 저속

- 회로 복잡도 복잡 간단

- 경제성 비경제적 경제적

- 융통성 없음 있음

- 구성 하드웨어 소프트웨어


11. 입/출력장치의 구성

- 입/출력제어 장치이다.

- 입/출력 장치와 컴퓨터 사이의 자료전송을 제어하는 장치이다.

- 데이터버퍼레지스터를 이용하여 두 장치간의 속도 차이를 조절한다.

- 제어신호의 논리적, 물리적 변환 그리고 에러를 제어한다.

- 종류 : DMA, 채널, 입/출력 프로세서, 입/출력 컴퓨터 입/출력 인터페이스가 있다.

- 동작방식이나 데이터 형식이 서로 다른 컴퓨터 내부의 주기억 장치나 CPU의 레지스터와 외부 입/출력 장치간의 이진 정보를 원활하게 전송하기 위한 방법을 제공한다.

- 컴퓨터와 각 주변 장치와의 다음과 같은 차이점을 해결하는 것이 목적이다.

- 전자기 혹은 기계적인 주변장치와 전기적인 CPU나 메모리 간의 동작방식의 차이

- 주변 장치와 CPU간의 데이터 전송속도의 차이

- 주변 장치의 데이터 코드와 CPU나 메모리의 워드 형식의 차이

- 동작 방식이 서로 다른 주변 장치들의 간섭 없는 제어 입/출력 버스

- 주기억장치와 입/출력장치 사이의 데이터 전송을 위해 모든 주변 장치의 인터페이스에 공통으로 연결된 버스

- 데이터버스, 주소버스, 제어 버스로 구성되어 있다.


12. 기억장치와 입출력 장치 동작의 차이

기억장치는 처리속도가 nano(10-9)의 단위인 전자적인 장치이고 입출력 장치는 milli(10-3)의 단위인 기계적인 장치이므로 동작방식에는 많은 차이가 있다.

비교항목 입/출력 장치 기억 장치

동작의 속도 느리다 빠르다

동작의 자율성 타율/자율 타율

정보의 단위 Byte(문자) Word

착오 발생률 많다 적다


13. 스풀링(spooling)

-다중 프로그래밍 환경 하에서 용량이 크고 신속한 액세스가 가능한 디스크를 이용하여 각 사용자 프로그램이 입.출력할 데이터를 직접 I/O장치로 보내지 않고 디스크에 모았다가 나중에 한꺼번에 입.출력함으로써 입.출력 장치의 공유 및 상대적으로 느린 입.출력 장치의 처리속도를 보완하는 기법이다.

-스풀링은 고속의 CPU와 저속의 입.출력장치가 동시에 독립적으로 동작하게 하여 높은 효율로 여러 작업을 병행 작업할 수 있도록 해줌으로써 다중 프로그래밍 시스템의 성능 향상을 가져올 수 있다.

-스풀링은 디스크 일부를 매우 큰 버퍼처럼 사용하는 방법이다.


14. 입/출력 방식

Programmed I/O

․ 원하는 I/O이 완료되었는지의 여부를 검사하기 위해서 CPU가 상태 Flag를 계속 조사하여 I/O가 완료 되었으면 MDR(MBR)과 AC 사이의 자료전송도 CPU 직접 처리하는 I/O방식이다.

․ 입/출력에 필요한 대부분의 일을 CPU가 해주므로 Interface는 MDR, Flag, 장치번호 디코더로만 구성하면 된다.

․ I/O 작업시 CPU는 계속 I/O 작업에 관여해야 하기 때문에 다른 작업을 할 수 없다는 단점이 있다.

Interrupt I/O

․ 입/출력을 하기 위해 CPU가 계속 Flag를 검사하지 않고, 데이터를 전송할 준비가 되면 입/출력 인터페이스가 컴퓨터에게 알려 입/출력이 이루어지는 방식이다.

․ 입/출력 인터페이스는 CPU에게 인터럽트 신호를 보내 입/출력이 있음을 알린다.

․ CPU는 작업을 수행하던 중 입/출력 인터럽트가 발생하면 수행중인 프로그램을 중단하고 입/출력을 처리한 후 원래의 작업으로 돌아와 작업을 계속 수행한다.

․ CPU가 계속 Flag를 검사하지 않아도 되기 때문에 Programm ed I/O 보다 효율적임 DMA (Di r e c t Memory Access)에 의한 I/O

․ 입/출력장치가 직접 주기억장치를 접근(Access)하여 Data Block을 입/출력하는 방식으로 입/출력 전송이 CPU의 레지스터를 경유하지 않고 수행된다.

․ CPU는 I/O에 필요한 정보를 DMA제어기에 알려서 I/O동작을 개시 시킨 후 I/O동작에 더 이상 간섭하지 않고 다른 프로그램을 할당하여 수행한다.

․ 입/출력 자료 전송시 CPU를 거치지 않기 때문에 CPU의 부담없이 보다 빠른 데이터의 전송이 가능한다.

․ 인터럽트 신호를 발생시켜 CPU에게 입/출력 종료를 알린다.

․ Cycle Steal 방식을 이용하여 데이터를 전송한다.

Channel에 의한 I/O

․ CPU를 대신하여 주기억장치와 입/출력장치 사이에서 입/출력을 제어하는 입/출력 전용 프로세서(IOP)이다.

․ 채널 제어기는 채널명령어로 작성된 채널 프로그램을 해독하고 실행하여 입/출력 동작을 처리한다.

․ CPU로부터 입/출력 전송을 위한 명령어를 받으면 CPU와는독립적으로 동작하여 입/출력을 완료한다.

․ CPU와 인터럽트로 통신한다.

․ 채널의 종류

- Selector Channel : 고속 입/출력장치(자기디스크, 자기테이프,자기드럼)1개와 입/출력하기 위해 사용한다.

- Multiplexer Channel : . 저속 입/출력장치(카드리더, 프린터)를 여러개를 동시에 제어하는 채널이다.

- Block Multiplexer Channel : 동시에 여러 개의 고속 입/출력장치를 제어한다.

'IT > 자격증' 카테고리의 다른 글

산업기사-전자계산기구조(3)  (0) 2017.05.31
산업기사- 전자계산기 구조(1)  (0) 2017.05.18
산업기사 - 데이터베이스(2)  (0) 2017.05.17
산업기사 - 데이터베이스(1)  (0) 2017.05.16
정보처리기사 필기요약(5)  (0) 2017.01.05

2과목 : 전자계산기 구조


1. 불 대수의 기본 공식

-교환법칙 : A+B=B+A, A․ B=B․ A

-결합법칙 : A+(B+C)=(A+B)+C, A․ (B․ C)=(A․ B)․ C

-분배법칙 : A․ (B+C)=A․ B+A․ C, A+B․ C=(A+B)(A+C)

-멱등법칙 : A+A=A, A․ A=A

-보수법칙 : A+A‘=1, A․ A’=0

-항등법칙 : A+0=A, A+1=1, A․ 0=0, A․ 1=A

-콘센서스 : AB+BC+CA‘=AB+CA’, (A+B)(B+C)(C+A‘)=(A+B)(C+A’)

-드모르강 : A‘+B’=(A․ B)‘, A’․ B‘=(A+B)’

-복원법칙 : A‘’=A


2. 자료 구성의 단위


비트(Bit, Binary Digit)

- 자료(정보) 표현의 최소 단위이다.

- 두 가지 상태(0과 1)를 표시하는 2진수 1자리


니블(Nibble)

- 4개의 비트(Bit)가 모여 1개의 Nibble을 구성한다.

- 4비트로 구성되며 16진수 1자리를 표현하기에 적합하다.


바이트(Byte)

- 문자를 표현하는 최소 단위로, 8개의 비트(Bit)가 모여 1Byte를 구성한다.

- 1Byte는 256(28)가지의 정보를 표현할 수 있다.

- 주소 지정의 단위로 사용된다.


워드(Word)

- CPU가 한 번에 처리할 수 있는 명령 단위이다.

- 반워드(Half Word) : 2Byte

- 풀워드(Full Word) : 4Byte

- 더블워드(Double Word) : 8Byte


필드(Field)

- 파일 구성의 최소 단위이다.

- 의미 있는 정보를 표현하는 최소 단위이다.


레코드(Record)

- 하나 이상의 관련된 필드가 모여서 구성된다.

- 컴퓨터 내부의 자료 처리 단위로서, 일반적으로 레코드는 논리 레코드(Logical Record)를 의미한다.


블록(Block)물리 레코드(Physical Record)

- 하나 이상의 논리 레코드가 모여서 구성된다.

- 각종 저장매체와의 입/출력 단위를 의미하며, 일반적으로 물리 레코드(Physical Record)라고 한다.


파일(File)

- 프로그램 구성의 기본 단위로, 여러 레코드가 모여서 구성된다.


데이터베이스(Database)

- 여러 개의 관련된 파일(File)의 집합이다.


3. 기타 자료의 표현 방식


BCD 코드

- 10진수 1자리의 수를 2진수 4Bit로 표현한다.

- 4Bit의 2진수 각 Bit가 8(23), 4(22), 2(21), 1(20)의 자리 값을 가지므로 8421코드라고도 한다.

- 대표적인 가중치 코드이고 문자코드인 BCD에서 Zone 부분을 생략한 형태이다.

- 10진수 입.출력이 간편하다.


Excess-3 코드(3초과 코드)

- BCD + 3, 즉BCD 코드에 310(00112)을 더하여 만든 코드이다.

- 대표적인 자보수 코드이며, 비가중치 코드이다.


Gray 코드

- BCD 코드의 인접하는 비트를 X-OR 연산하여 만든 코드이고, 입출력장치, D/A변환기, 주변장치 등에서 숫자를 표현할 때 사용한다.

․ 1Bit만 변화시켜 다음 수치로 증가시키기 때문에 하드웨어 적인 오류가 적다.


패리티 검사 코드

- 코드의 오류를 검사하기 위해서 데이터비트 외에 1Bit의 패리티 체크 비트를 추가하는 것으로 1Bit의 오류만 검출할 수 있다.

- Odd Parity : Odd 패리티는 코드에서 1인 Bit의 수가 홀수가 되도록 0이나 1을 추가한다.

․ Even Parity : Even 패리티는 코드에서 1인 Bit의 수가 짝수가 되도록 0이나 1을 추가한다.


해밍 코드

- 오류를 스스로 검출하여 교정이 가능한 코드이고, 1Bit의 오류만 교정할 수 있다.

- 데이터 비트 외에 에러 검출 및 교정을 위한 잉여 비트가 많이 필요하다.

- 해밍코드 중 1, 2, 4, 8, 16 …… 2n 번째 비트는 오류 검출을 위한 패리티 비트이다.


4. 중앙처리장치의 구성요소


-컴퓨터에 있는 모든 장치들의 동작을 지시하고 제어하는 장치이다.

- 주기억장치에서 읽어 들인 명령어를 해독하여 해당하는 장치에게 제어 신호를 보내 정확하게 수행하도록 지시한다.

- 프로그램 카운터(PC), 명령어레지스터(IR), 부호기(제어신호 발생기), 명령어 해독기, 번지 해독기 등으로 구성되어 있다.


- 제어장치의 명령에 따라 실제로 연산을 수행하는 장치이고 , 연산장치가 수행하는 연산에는 산술연산, 논리연산, 관계연산, 이동(Shift) 등이 있다.

- 가산기, 누산기(AC ; Accumulator), 보수기, 데이터 레지스터, 오버플로우 검출기, Shift Register 등으로 구성되어 있다.


- CPU 내부에서 처리할 명령어나 연산의 중간 결과값 등을 일시적으로 기억하는 임시 기억 장소이다.

- 플립플롭(Flip-Flop)이나 래치(Latch)들을 병렬로 연결하여 구성하고 메모리 중에서 가장 속도가 빠르다.


5. 레지스터

  • 프로그램 카운터, 프로그램 계수기(PC, Program Counter) : 다음 번에 실행할 명령어의 번지를 기억하는 레지스터이다.
  • 명령 레지스터(IR, Instruction Register) : 현재 실행 중인 명령의 내용을 기억하는 레지스터이다.
  • 누산기(AC, Accumulator) : 연산된 결과를 일시적으로 저장하는 레지스터로 연산의 중심이다.
  • 상태 레지스터(Status Register) PSWR(Program Status Word Register) : 시스템 내부의 순간순간의 상태가 기록된 정보를 PSW라고 하고, 오버플로, 언더플로, 자리올림, 인터럽트 등의 PSW를 저장하고 있는 레지스터이다.
  • 메모리 주소 레지스터(MAR, Memory Address Register) : 기억장치를 출입하는 데이터의 번지를 기억하는 레지스터이다.
  • 메모리 버퍼 레지스터(MBR, Memory Buffer Register) : 기억장치를 출입하는 데이터가 잠시 기억되는 레지스터이다.
  • 인덱스 레지스터(Index Register) : 주소의 변경이나 프로그램에서의 반복연산의 횟수를 계수하는 레지스터이다.
  • 데이터 레지스터(Data Register) : 연산에 사용될 데이터를 기억하는 레지스터이다.
  • Shift Register : 저장된 값을 왼쪽 또는 오른쪽으로 1Bit씩 자리 이동시키는 레지스터이고,  2배 길이 레지스터라고도 한다.
  • Major Status Register CPU의 메이저 상태를 저장하고 있는 레지스터이다.

6. 버스(BUS)

CPU, 메모리, I/O장치 등과 상호 필요한 정보를 교환하기 위해 연결하는 공동의 전송선이다.


 전송하는 정보에 따른 분류

- 번지 버스(Address Bus) : CPU가 메모리나 입출력 기기의 번지를 지정할 때 사용하는 단방향 전송선이다.

- 자료 버스(Data Bus) : CPU와 메모리 또는 입출력 기기 사이에서 데이터를 전송하는 양방향 버스이다.

- 제어 버스(Control Bus) : CPU의 현재 상태나 상태 변경을 메모리 또는 입출력에 알리는 제어신호를 전송하는선이다.


버스 위치에 따른 분류

- 내부 버스 : CPU 및 메모리 내에 구성된 Bus

- 외부 버스 : 주변 입출력장치에 구성된 Bus


7. 명령어 구성

연산자 부(Operation Code부)

- 수행해야할 동작에 맞는 연산자를 표시함, 흔히 OP-Code부라고 한다.

- 연산자부의 크기(비트수)는 표현할 수 있는 명령의 종류를 나타내는 것으로, nBit면 최대 2n개의 명령어를 사용할 수 있다.


주소부(Operand부)

- 실제 데이터에 대한 정보를 표시하는 부분이다.

- 기억장소의 주소, 레지스터 번호, 사용할 데이터 등을 표시한다.

- 주소부의 크기는 메모리의 용량과 관계가 있다.


8. 연산자(Operation Code)의 기능


함수 연산 기능

산술 연산 : ADD, SUB, MUL, DIV, 산술 Shift 등이 있다.

논리 연산 : NOT, AND, OR, XOR, 논리적 Shift, Rotate,Complement, Clear 등이 있다.


자료전달기능

- CPU와 기억장치 사이에서 정보를 교환하는 기능이다.

- Load : 기억장치에 기억되어 있는 정보를 CPU로 꺼내오는 명령이다.

- Store : CPU에 있는 정보를 기억장치에 기억시키는 명령이다.

- Move : 레지스터간에 자료를 전달하는 명령이다.

- Push : 스택에 자료를 저장하는 명령이다.

- Pop : 스택에서 자료를 꺼내오는 명령이다.


제어 기능

- 프로그래머가 명령어 실행 순서를 변경시키는 기능 이다.

- 무조건 분기 명령 : GOTO, Jump(JMP) 등이 있다.

- 조건 분기 명령 : IF 조건, SPA, SNA, SZA 등이 있다.

- Call : 부프로그램 호출

- Return : 부프로그램에서 메인 프로그램으로 복귀


입 /출력기능

- CPU와 I/O장치, 또는 메모리와 I/O장치 사이에서 자료를 전달하는 기능이다.

- INPUT : 입출력 장치의 자료를 주기억장치로 입력하는 명령이다.

- OUTPUT : 주기억 장치의 자료를 입출력 장치로 출력하는 명령이다.



9. 연산


AND(Masking Operation)

- 특정 문자 또는 특정 Bit를 삭제(Clear)시키는 명령으로 Masking 명령이라고도 한다.

- 삭제할 부분의 Bit를 0과 AND시켜서 삭제하는데, 대응시키는 0인 Bit를 Mask Bit라고 한다.


OR(SelectiveSet)

- 특정 문자를 삽입하거나 특정 Bit에 1을 세트시키는 명령으로 Selective Set 연산이라고도 한다.

- 삽입하거나 세트 시킬 Bit에 삽입할 문자코드 또는 1을 OR 연산시킨다.


XOR : 비교(Compare)명령

- 2개의 데이터를 비교하거나, 특정 비트를 반전시킬 때 사용한다.

- 2개의 데이터를 XOR 연산하여 결과에 1Bit라도 1이 있으면 서로 다른 데이터이다.

- 반전시킬 때는 반전시킬 비트와 1을 XOR 시킨다.


NOT(Complement, 보수)

- 각 비트의 값을 반전시키는 연산으로 보수를 구할 때 사용한다.


논리 Shift

- 왼쪽 또는 오른쪽으로 1Bit씩 자리를 이동시키는 연산으로 데이터의 직렬전송(Serial Transfer)에 사용하고 삽입되는 자리는 무조건 0이다.


Rotate

- Shift에서 밀려 나가는 비트의 값을 반대편 값으로 입력하는 연산이다.

- 문자 위치를 변환할 때 이용한다.


산술 Shift

- 부호(Sign)를 고려하여 자리를 이동시키는 연산으로, 2n으로 곱하거나 나눌 때 사용한다.

- 왼쪽으로 n Bit Shift하면 원래 자료에 2n을 곱한 값과 같다.

- 오른쪽으로 n Bit Shift 하면 원래 자료를 2n으로 나눈 값과 같다.

- 홀수를 오른쪽으로 한 번 Shift하면 0.5의 오차가 발생한다.


10. 명령어 형식


3번지 명령어

- Operand부가 3개로 구성되는 명령어형식으로 여러 개의 범용레지스터(GPR)를 가진 컴퓨터에서 사용한다.

- 연산의 결과는 Operand3에 기록된다.

- 연산시 원시 자료를 파괴하지 않는다.

- 다른 형식의 명령어를 이용하는 것보다 프로그램 전체의 길이를 짧게 할 수 있다.

- 전체 프로그램 실행시 명령 인출을 위하여 주기억장치를 접근하는 횟수가 줄어들어 프로그램 실행속도를 단축시킨다.

- 명령어 한 개의 길이가 너무 길어진다.


2 번지 명령어

- Operand부가 2개로 구성되는 명령어 형식으로 가장 일반적으로 사용되는 명령어 형식이다.

- 여러 개의 범용레지스터를 가진 컴퓨터에서 사용한다.

- 3 주소 명령에 비해 명령어의 길이가 짧다.

- 연산의 결과는 주로 Operand1에 저장되므로 Operand1에 있던 원시자료가 파괴된다.

- 전체 프로그램의 길이가 길어진다.


1 번지 명령어

- Operand부가 1개로 구성되어 있다.

- AC(Accumulator ; 누산기)를 이용하여 명령어를 처리한다.


0 번지 명령어

- Operand부 없이 OP Code부만으로 구성된다.

- 모든 연산은 STACK 메모리의 Stack Pointer가 가리키는 Operand를 이용하여 수행한다.

- 모든 연산은 스택에 있는 자료를 이용하여 수행하기 때문에 스택머신(Stack Machine)이라고도 한다.

- 원래의 자료가 남지 않는다.


11. 주소지정방식(Addressing Mode)의 종류


  • 암시적 주소 지정 방식 (Implied Mode) :주소를 지정하는 필드가 없는 0 번지 명령어에서 Stack의 SP가 가리키는 Operand를 암시하여 이용한다. 
  • 즉치(즉시)적 주소지정방식(Immediate Mode) : 명령어자체에오퍼랜드(실제데이터)를내포하고있는방식이고, 별도의 기억장소를 액세스하지 않고 CPU에서 곧바로 자료를 이용할 수 있어서 실행속도가 빠르다는 장점이 있다. 그리고 명령어의 길이에 영향을 받으므로 표현할 수 있는 데이터 값의 범위가 제한적이다.
  • 직접 주소 지정방식 (Direct Mode) :  명령의 주소부(Operand)가 사용할 자료의 번지를 표현하고 있는 방식이고, 명령의 Operand부에 표현된 주소를 이용하여 실제 데이터가 기억된 기억장소에 직접 사상시킬 수 있다. 그리고 기억용량이 2n개의 Word인 메모리 시스템에서 주소를 표현하려면 n 비트의 Operand부가 필요한다.
  • 간접 주소 지정방식(Indirect Mode) :  명령어에 나타낼 주소가 명령어 내에서 데이터를 지정하기 위해 할당된 비트(Operand 부의 비트) 수로 나타낼 수 없을 때 사용하는 방식이다.  명령의 길이가 짧고 제한되어 있어도 긴 주소에 접근 가능하고, 명령어 내의 주소부에 실제 데이터가 저장된 장소의 번지를 가진 기억장소의 번지를 표현함으로써, 최소한 주기억장치를 두 번 이상 접근하여 데이터가 있는 기억장소에 도달한다.
  • 계산에 의한 주소지정방식: 상대 주소 지정방식 : 명령어의 주소부분 + PC    - Base Register Mode : 명령어의 주소부분 + Base Register    - Index Register Mode : 명령어의 주소부분 + Index Register


'IT > 자격증' 카테고리의 다른 글

산업기사-전자계산기구조(3)  (0) 2017.05.31
산업기사- 전자계산기 구조(2)  (0) 2017.05.25
산업기사 - 데이터베이스(2)  (0) 2017.05.17
산업기사 - 데이터베이스(1)  (0) 2017.05.16
정보처리기사 필기요약(5)  (0) 2017.01.05

1. 관계 데이터베이스 특징

- 개체(Entity)나 관계(Relationship)를 모두 릴레이션(Relation)이라는 표로 표현한다.
- 릴레이션은 개체를 표현하는 개체 릴레이션, 관계를 나타내는 관계 릴레이션으로 구분할 수 있다.
- 장점 : 간결하고 보기 편리하며, 다른 데이터베이스로의 변환이 용이하다.
- 단점 : 성능이 다소 떨어진다.

 

2. 관계 데이터베이스의 Relation 구조

데이터들을 표의 형태로 표현한 것으로 구조를 나타내는 릴레이션 스키마와 실제 값들인 릴레이션 인스턴스로 구성된다.

 

튜플(Tuple)

- 릴레이션을 구성하는 각각의 행을 의미한다.

- 속성의 모임으로 구성된다.
- 파일 구조에서 레코드와 같은 의미이다.

 

속성(Attribute)
- 데이터베이스를 구성하는 가장 작은 논리적 단위이다.
- 파일 구조상의 데이터 항목 또는 데이터 필드에 해당된다.
- 개체의 특성이다.

도메인(Domain)
- 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자(atomic) 값들의 집합이다.
- 실제 애트리뷰트 값이 나타날 때 그 값의 합법여부를 시스템이 검사하는 데에도 이용된다.
차수(Degree) : Attribute의 개수
기수(대응수; Cardinality) : Tuple의 개수

 

3. KEY의개념 및 종류

데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 애트리뷰트이다.

 

후보키(Candidate Key)

 

- 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합, 즉 기본키로 사용할 수 있는 속성들을 말한다.
- 릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 만족시켜야 한다.

 

기본키(Primary Key)

 

- 후보키 중에서 선택한 주 키(Main Key)
- 한 릴레이션에서 특정 튜플을 유일하게 구별 할 수있는속성이다.
- Null 값을 가질 수 없다.
- 기본키로 정의된 속성에는 동일한 값이 중복되어 저장 될 수 없다.

 

대체키 (Alternate Key)

 

- 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키들을 말한다.
- 보조키라고도 한다.

 

슈퍼키(Super Key)

- 릴레이션에서 같은 튜플이 발생하지 않는 키를 구성할 때, 속성의 집합으로 구성하는 것을 말한다.
- 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족시키지만, 최소성은 만족시키지 못한다.

 

외래키 (Foreign Key)

- 관계(Realtionship)를 맺고 있는 릴레이션 R1, R2에서 릴레이션 R1이 참조하고 있는 릴레이션 R2의 기본키와 같은 R1 릴레이션의 속성이다.
- 외래키로 지정되면 참조테이블의 기본키에 없는 값은 입력할 수 없다.

 

널 값(NULL Value) : 데이터베이스에서 아직 알려지지 않거나 모르는 값으로서 "해당없음" 등의 이유로 정보 부재를 나타내기 위해 사용하는, 이론적으로 아무것도 없는 특수한 데이터

 

4. 무결성

 

- 개체 무결성 : 릴레이션에서 기본키를 구성하는 속성은 널(NULL) 값이나 중복값을 가질 수 없다.
- 참조 무결성 : 외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 함 즉, 릴레이션은 참조할 수 없는 외래키값을 가질 수 없다.

 

5. 순수관계 연산자

관계 데이터베이스에 적용할 수 있도록 특별히 개발한 관계 연산자이다.

Select
- 릴레이션에 존재하는 튜플중에서 선택조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만든다.
- 릴레이션의 행(가로)에 해당하는 튜플을 구하는 것이므로 수평연산이라고도 한다.
- 연산자의 기호는 그리스문자 시그마(σ)를 사용한다.
- 표기 형식 : σ<조건>(R) 단, R은 릴레이션 이름

Project
- 주어진 릴레이션에서 속성 List에 제시된 Attribute만을 추출하는 연산자이다.
- 릴레이션의 열(세로)에 해당하는 Attribute을 추출하는 것이므로 수직 연산자라고도 한다.
- 연산자의 기호는 그리스문자 파이(π)를 사용한다.
- 표기 형식 : π<속성리스트>(R) 단, R은 릴레이션 이름

Join

- 공통 속성을 중심으로 2개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산이다.
- 연산자의 기호는 그리스문자 ▷◁를 사용한다.
- 표기 형식 : R ▷◁키속성r=키속성sS
단, 키속성 r은 릴레이션 R의 속성이고, 키속성 s는 릴레이션 S의 속성이다.

Division
- X ⊃ Y인 2개의 릴레이션에서 R(X)와 S(Y)가 있을 때, R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을구하는 연산이다.
- 표기 형식 : R [속성r ÷ 속성s] S
단, 속성 r은 관계 R의 속성이고 속성 s는 관계 S의 속성이며, 속성 r과 속성 s는 동일 속성값을 가지는 속성이어야 한다.

 

6. Anomaly(이상)의 개념 및 종류

이상(Anomaly) : 정규화(Normalization)를 거치지 않은 데이터베이스 내에 데이터들이 불필요하게 중복되어 릴레이션 조작시 발생하는 예기치못한 곤란한 현상이다.

 

삽입이상 - 릴레이션에 데이터를 삽일 할 때 의도와는 상관없이 원하지 않은 값들도 함께 삽입되는 현상이다.

삭제이상 - 릴레이션에서 한 튜플을 삭제할 때 의도와는 상관없이 값들도 함께 삭제되는 연쇄 삭제 현상이다.

갱신이상 - 릴레이션에서 튜플에 있는 속성값을 갱신할 떄 일부 튜플의 정보만 갱신되어 정보에 모순이 생기게 되는 현상이다.

 

7. SQL의 분류

 

DDL(데이터 정의어)
- SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의하거나 변경 또는 삭제할 때 사용하는 언어이다.
- 데이터베이스 관리자나 데이터베이스 설계자가 사용한다.
- 데이터 정의어(DDL)의 3가지 유형

CREATE, ALTER, DROP

 

DML(데이터 조작어)

 

- 데이터베이스 사용자가 응용 프로그램이나 질의어를 통하여 저장된 데이터를 실질적으로 처리하는데 사용하는 언어이다.
- 데이터베이스 사용자와 데이터베이스관리시스템 간의 인터페이스 제공이다.
- 데이터 조작어(DML)의 4가지 유형

SELECT , INSERT, DELETE, UPDATE

 

DCL(데이터 제어어)

 

데이터의 보안, 무결성, 데이터 회복, 병행 수행 제어 등을 정의하는데 사용하는 언어이다.
- 데이터베이스 관리자가 데이터 관리를 목적으로 사용한다.
- 데이터 제어어(DCL)의 종류

COMMIT, ROLLBACK, GRANT, REVOKE

 

8. 시스템 카탈로그

- 시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스이다.
- 데이터베이스에 포함되는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지 관리하는 시스템 테이블이다.
- 데이터 정의어의 결과로 구성되는 기본 테이블, 뷰, 인덱스, 패키지,접근권한 등의 데이터베이스 구조 및 통계 정보를 저장한다.
- 카탈로그들이 생성되면 자료 사전(Data Dictionary)에 저장되기 때문에 좁은 의미로는 카탈로그를 자료사전이라고도 한다.
- 카탈로그에 저장된 정보를 메타 데이터(Meta-Data)라고 한다.
- 카탈로그의 특징 ․ 카탈로그 자체도 시스템 테이블로 구성되어 있어 일반 이용자도 SQL을 이용하여 내용을 검색해 볼 수 있다.

- INSERT, DELETE, UPDATE문으로 갱신하는 것은 허용하지 않음 ․ DBMS가 스스로 생성하고, 유지한다. 카탈로그는 사용자가 SQL문을 실행시켜 기본 테이블, 뷰, 인덱스 등에 변화를 주면 시스템이 자동으로 갱신하다.

 

9. 뷰(View)

 

사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블이다.

- 권한이 있는 상태로 저장장치 내에 물리적으로 존재하지 않지만, 사용자에게는 있는 것처럼 간주된다.
- 뷰 (View)의 특징 ․ 기본 테이블로부터 유도된 테이블이기 때문에 기본 테이블과 같은 형태의 구조를 가지며, 조작도 기본 테이블과 거의 같다 ․ 가상 테이블이기 때문에 물리적으로 구현되어 있지 않다 ․ 필요한 데이터만 뷰로 정의해서 처리할 수 있기 때문에 관리가 용이하고 명령문이 간단해진다 ․ 뷰를 통해서만 데이터에 접근하게 하면 뷰에 나타나지 않는 데이터를 안전하게 보호하는 효율적인 기법으로 사용할 수 있다 ․ 기본 테이블의 기본키를 포함한 속성(열) 집합으로 뷰를 구성해야만삽입, 삭제, 갱신 연산이 가능하다 ․ 정의된 뷰는 다른 뷰의 정의에 기초가 될 수 있다 ․ 하나의 뷰를 삭제하면 그 뷰를 기초로 정의된 다른 뷰도 자동으로 삭제된다.

 

 

- 뷰의 장점 : 논리적 데이터 독립성을 제공한다. 동일 데이터에 대해 동시에 여러 사용자의 상이한 응용이나 요구를지원해준다 ․ 사용자의 데이터 관리를 간단하게 해준다 ․ 접근제어를 통한 자동 보안이 제공된다.
- 뷰의 단점 : 독립적인 인덱스를 가질 수 없다 ․ 뷰의 정의를 변경할 수 없음 ․ 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신 연산에 제약이 따른다.

 

10. 자료구조의 분류

- 선형 구조 : 선형리스트, 연결리스트, 스택, 큐, 데크

- 비선형 구조 : 트리, 그래프

 

11. Stack

- 리스트의 한쪽 끝으로만 자료의 삽입, 삭제 작업이 이루어지는 자료구조이다.
- 가장 나중에 삽입된 자료가 가장 먼저 삭제되는 후입선출(LIFO;Last-In, First-Out) 방식으로 자료를 처리한다.
- TOP : Stack으로 할당된 기억공간에 가장 마지막으로 삽입된 자료가 기억된 공간을 가리키는 요소, 스택 포인터라고도 한다.
- Bottom : 스택의 가장 밑바닥이다.
- Stack의 용도

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

 ․ 인터럽트가 발생하여 복귀주소를 저장할 때

 ․ 후위표기법(Postfix Notation)으로 표현된 산술식을 연산할 때

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

 ․ 재귀(RECURSIVE)프로그램의 순서제어

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

 

12. 큐(Queue)

-선형 리스트의 한쪽에서는 삽입작업이 이루어지고 다른 쪽에서는 삭제 작업이 이루어지도록 구성한 자료구조이다.
-가장 먼저 삽입된 자료가 가장 먼저 삭제되는 선입선출(FIFO; First-In,First-Out) 방식으로 처리한다.
-Queue를 이용하는 예

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

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

 

13. 데크(Deque)

- 삽입과 삭제가 리스트의 양쪽 끝에서 모두 발생할 수 있는 자료구조이다.
- Stack과 Queue의 장점만 따서 구성한 것이다.
- 입력이 한쪽에서만 발생하고 출력은 양쪽에서 일어날 수 있는 입력제한과, 입력은 양쪽에서 일어나고 출력은 한곳에서만 이루어지는 출력 제한이 있다.
- 입력 제한 데크 : Scroll
- 출력 제한 데크 : Shelf

 

14. 이진트리의 운행법(Traversal)

 

- Preorder 운행 : Root → Left → Right 순
- Inorder 운행 : Left → Root → Right 순
- Postorder 운행 : Left → Right → Root 순

 

15. 해싱(Hashing)

 

- Hash Table이라는 기억공간을 할당하고, 해시함수(Hash Function)를 이용하여 레코드 키에 대한 Hash Table 내의 Home Address를 계산한 후 주어진 레코드를 해당 기억장소에 저장하거나 검색작업을 수행하는 방식이다.

- DAM(직접접근) 파일을 구성할 때 해싱이 사용되며, 접근 속도는 빠르나 기억공간이 많이 요구된다.
- 검색 속도가 가장 빠르다.
- 삽입, 삭제 작업의 빈도가 많을 때 유리한 방식이다.
- 해시 테이블(Hash Table) ․ 레코드를 1개 이상 보관할 수 있는 Home Bucket들로 구성한 기억공간으로, 보조기억장치에 구성할 수도 있고 주기억장치에 구성할 수도 있다.
- 버킷(bucket) : 하나의 주소를 갖는 파일의 한 구역을 의미하며, 버킷의 크기는 같은 주소에 포함될 수 있는 레코드 수를 의미한다

․ 슬롯(slot) : 한 개의 레코드를 저장할 수 있는 공간으로 n개의 슬롯이 모여 하나의 버킷을 형성한다.
․ Collision(충돌현상) : 서로 다른 두 개 이상의 레코드가 같은 주소를 갖는 현상이다.
․ Synonym : 같은 Home Address를 갖는 레코드들의 집합이다.
․ Overflow : 계산된 Home Address의 Bucket 내에 저장할 기억공간이 없는 상태(Bucket을 구성하는 Slot이 여러 개일 때는 Collision은발생해도 Overflow는 발생하지 않을 수 있다.)

 

16. 순차 파일(Sequential File) = 순서 파일

 

- 입력되는 데이터들을 논리적인 순서에 따라 물리적 연속 공간에 순차적으로 기록하는 방식이다.
- 급여 관리 등과 같이 변동 사항이 크지 않고 기간 별로 일괄 처리를 주로 하는 경우에 적합하다.
- 주로 순차 접근이 가능한 자기 테이프에서 사용된다.
- 순차 파일의 장점 : 기록 밀도가 높아 기억 공간을 효율적으로 사용할 수 있다.
․ 매체 변환이 쉬워 어떠한 매체에도 적용할 수 있음 ․ 레코드를 기록할 때 사용한 키 순서대로 레코드를 처리하는 경우, 다른 편성법보다는 처리 속도가 빠르다.
-순차 파일의 단점 : 파일에 새로운 레코드를 삽입, 삭제하는 경우 파일 전체를 복사해야하므로 시간이 많이 소요되고, 데이터 검색시 처음부터 순차적으로 하기 때문에 검색 효율이 낮다.

 

17. 색인 순차 파일(Indexed Sequential File)

 

- 순차 처리와 랜덤 처리가 모두 가능하도록 레코드들을 키 값순으로 정렬(Sort)시켜 기록하고, 레코드의 키 항목만을 모은 색인을 구성하여편성하는 방식이다.
- 색인을 이용한 순차적인 접근 방법을 제공하여 ISAM(Index Sequential Access Method)라고도 한다.
- 레코드를 참조하는 경우 색인을 탐색한 후 색인이 가리키는 포인터(주소)를 사용하여 직접 참조할 수 있다.
- 일반적으로 자기 디스크에 많이 사용되며, 자기 테이프에서는 사용할 수 없다.
- 색인 순차 파일의 구성

․ 기본 구역(Prime Area) : 실제 레코드들을 기록하는 부분으로, 각 레코드는 키 값순으로 저장된다

․ 색인 구역(Index Area) : 기본 구역에 있는 레코드들의 위치를 찾아가는 색인이 기록되는 부분으로, 트랙 색인 구역, 실린더 색인 구역, 마스터 색인 구역으로 구분할 수 있다

․ 오버플로우 구역(Overflow Area) : 기본 구역에 빈 공간이 없어서 새로운 레코드의 삽입이 불가능할 때를 대비하여 예비적으로 확보해둔 부분이다.

 

 

'IT > 자격증' 카테고리의 다른 글

산업기사- 전자계산기 구조(2)  (0) 2017.05.25
산업기사- 전자계산기 구조(1)  (0) 2017.05.18
산업기사 - 데이터베이스(1)  (0) 2017.05.16
정보처리기사 필기요약(5)  (0) 2017.01.05
정보처리기사 필기요약(4)  (0) 2016.12.28

1. 정보처리 시스템

 

정보시스템

 

- 조직체에 필요한 데이터를 수집, 저장해 두었다가 필요시에 처리해서 의사결정에 유용한 정보를 생성하고 분배하는 수단이다.
- 사용하는 목적에 따라 경영정보 시스템, 군사 정보시스템, 인사 행정 정보 시스템, 의사 결정 지원 시스템 등으로 사용된다.

 

정보와 자료

- 자료(Data) : 관찰이나 측정을 통해 수집한 단순한 사실이나 결과값으로, 가공되지 않은 상태이다.
- 정보(Information) : 의사 결정에 도움을 줄 수 있는 유용한 형태, 자료를 가공해서 얻을 수 있는 결과이다.

 

자료처리 시스템 : 정보시스템이 사용할 자료를 처리하는 정보 시스템의 서브시스템으로, 처리형태에 따라서 일괄 처리 시스템, 온라인 실시간처리 시스템, 분산 처리 시스템으로 분류된다.

-데이터 웨어 하우스(DataWare House) : 조직이나 기업체의 중심이 되는 주요 업무 시스템에서 추출되어 새롭게 생성된 데이터베이스로서 의사결정지원 시스템을 지원하는 주체적, 통합적, 시간적 데이터 집합체이다.

 

2. 데이터베이스의 정의

 

- 통합된 데이터(Integrated data) : 자료의 중복을 배제한 데이터의 모임이다.
- 저장된 데이터(Stored data) : 저장 매체에 저장된 자료이다.
- 운영 데이터(Operational data) : 조직의 업무를 수행하는데 있어서 없어서는 안 될 반드시 필요한 자료이다.
- 공용 데이터 : 여러개 응용 시스템들이 공동(공용)으로 소유하고 유지하는 자료이다.

 

3. 데이터베이스의 특징

 

-실시간 접근성 : 수시적이고 비정형적인 질의(조회)에 대하여 실시간 처리(real time processing) 응답이 가능하다.
-계속적인 변화 : 새로운 데이터의 삽입(insertion), 삭제(deletion),갱신(update)으로 항상 최신의 데이터를 유지한다.
-동시 공용 : 여러 사용자가 동시에 자기가 원하는 데이터를 이용할 수있다. 서로 공용으로 데이터를 사용한다.
-내용에 의한 참조 : 데이터베이스에 있는 데이터를 참조할 때, 데이터 주소나 위치에 의해서가 아니라 사용자가 요구하는 데이터 내용으로 데이터를 찾는다.

 

4. 기존의 파일 처리 방식의 문제점

 

▶ 종속성으로 인한 문제점
- 종속성 : 응용프로그램과 데이터 파일이 상호 의존적인 관계인 것
- 데이터 파일이 보조 기억 장치에 저장되는 방법이나 저장된 데이터의 접근 방법을 변경할 때는 종속 되어있기 때문에 응용프로그램도 같이 변경하여야한다.
▶ 중복성으로 인한 문제점
- 일관성 : 중복된 데이터간에 내용이 일치하지 않는 상황이 발생하여 일관성이 없어진다.
- 보안성 : 중복되어 있는 모든 데이터에 동등의 보안수준을 유지하기가 어렵다.
- 경제성 : 저장 공간 낭비와 동일한 데이터의 반복 작업으로 인한 비용의 증가
- 무결성 : 제어의 분산으로 인해 데이터의 정확성을 유지할 수 없다.

 

5. DBMS의 필수기능

- 정의(조직) : 데이터의 형과 구조, 데이터가 DB에 저장될 때의 제약조건 등을 명시하는 기능이다.
- 조작 : 처리를 위한 데이터 접근 수단 등을 정하는 기능이다.
- 제어 : 무결성, 보안 및 권한 검사, 병행수행 제어 등의 기능을 정하는 기능이다.

 

6. DBMS의 장단점

장점
- 데이터의 중복을 피할 수 있다.
- 저장된 자료를 공동(공유)으로 이용할 수 있다.
- 데이터의 일관성을 유지할 수 있다.
- 데이터의 무결성을 유지할 수 있다.
- 보안을 유지할 수 있다.
- 데이터를 표준화할 수 있다.
- 데이터를 통합하여 관리할 수 있다.
- 항상 최신의 데이터를 유지한다.
- 데이터의 실시간 처리가 가능하다.
- 데이터의 논리적 물리적 독립성이 보장된다.

 

단점
- 데이터베이스 전문가 부족하다.
- 전산화 비용이 증가한다.
- 대용량 디스크로의 집중적인 Access로 과부하가 발생한다.
- 파일의 예비(Backup)와 회복(Recovery)이 어렵다.
- 시스템이 복잡하다.

 

7. 데이터의 독립성

 

- 논리적 독립성 : 응용 프로그램과 데이터베이스를 독립시킴으로써, 데이터의 논리적 구조를 변경시켜도 응용 프로그램은 변경되지 않는다.

- 물리적 독립성 : 응용 프로그램과 보조기억장치와 같은 물리적 장치를 독립시킴으로써, 데이터베이스 시스템의 성능 향상을 위해 새로운 디스크를 도입하더라도 응용 프로그램에는 영향을 주지 않고 데이터의 물리적 구조만을 변경한다. 서로 영향을 주지 않는다.

 

8. 스키마(Schema)의 정의

 

- 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한다.
- 데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작시 데이터 값들이 갖는 제약조건 등을 전반적으로 정의한다.

 

9. 스키마의 3계층

 

외부 스키마(External Schema) = 서브 스키마 = 사용자 뷰(View)

- 사용자나 응용프로그래머가 개인의 입장에서 필요로 하는 데이터베이스 논리적 구조 정의한다.
- 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있으므로 서브스키마(subschema)라고도 한다.
- 하나의 데이터베이스 시스템에는 여러 개의 외부 스키마가 존재할 수있으며, 하나의 외부 스키마를 여러 개의 응용 프로그램이나 사용자가 공유해서 사용할 수 있다.
- 같은 데이터베이스에 대해서도 서로 다른 관점을 정의할 수 있도록 허용한다.

 

개념 스키마(Conceptual Schema) = 전체적인 뷰(View)

- 데이터베이스의 전체적인 논리적 구조로 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로 하나만 존재한다.
- 개념 스키마는 개체간의 관계와 제약조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의한다.
- 단순히 스키마(schema)라고하면 개념 스키마를 의미한다.
- 기관이나 조직체의 관점에서 데이터베이스를 정의한 것이다.


내부 스키마(Internal Schema)

- 물리적인 저장장치와 밀접한 계층이다.
- 데이터베이스의 물리적 구조이다.
- 데이터의 실제 저장 방법 기술이다.
- 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마이다.

 

 

10. 데이터베이스 언어

 

데이터 정의 언어(DDL; Data Definition Language)


- DB 구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정할 목적으로 사용하는 언어이다.
- 번역한 결과가 데이터사전(Data-dictionary)이라는 특별한 파일에 여러개의 테이블로서 저장된다.
- 데이터 정의 언의의 기능 , 외부 스키마 명세 정의 , 데이터베이스 정의 및 수정 , 스키마에 사용되는 제약조건에 대한 명세 정의 ․ 데이터의 물리적 순서 규정를 규정한다.


데이터 조작 언어(DML; Data Manipulation Language) = 서브 언어

- 사용자로 하여금 데이터를 처리할 수 있게 하는 도구로서 사용자와 DBMS간의 인터페이스를 제공한다.
- 응용 프로그램을 통하여 사용자가 DB의 데이터를 실질적으로 조작할 수 있도록 하기 위해 FORTRAN, COBOL 등의 호스트 언어에 DB 기능을 추가시켜 만든 언어이다.
- 대표적인 데이터 조작어(DML)에는 질의어가 있으며, 질의어는 터미널에서 주로 이용하는 비절차적(procedural) 데이터 언어이다.

데이터 제어 언어(DCL; Data Control Language)
- 무결성, 보안 및 권한 제어, 회복을 등을 하기 위한 언어이다.
- 데이터를 보호하고 데이터를 관리를하는 목적으로 사용된다.
- 데이터 제어 언어의 기능 , 불법적인 사용자로부터 데이터를 보호하기 위한 데이터 보안(Security) , 데이터 정확성을 위한 무결성(Integrity)유지하고 , 시스템 장애에 대비한 데이터 회복과 병행 수행한다

 

11. DBA

데이터베이스 시스템의 모든 관리와 운영대한 책임을 지고 있는 사람이나 그룹이다.

 

데이터베이스 설계와 조작에 대한 책임

- 데이터베이스 구성요소 결정
- 개념 스키마 및 내부스키마 정의
- 데이터베이스의 저장 구조 및 접근 방법 정의
- 보안 및 데이터베이스의 접근 권한 부여 정책 수립
- 장애에 대비한 예비(Back Up) 조치와 회복(Recovery)에 대한 전략 수립
- 무결성을 위한 제약 조건의 지정
- 데이터 사전의 구성과 유지관리한다.
- 사용자의 변화 요구와 성능향상을 위한 데이터베이스의 재구성한다.

 

행정책임
- 사용자의 요구와 불평의 청취 및 해결
- 데이터 표현 방법의 표준화
- 문서화에 대한 기준 설정 시스템 감시 및 성능분석
- 변화 요구에 대한 적응과 성능 향상에 대한 감시
- 시스템 감시 및 성능분석
- 자원의 사용도와 병목현상 조사
- 데이터 사용 추세, 이용 형태 및 각종 통계 등을 종합, 분석한다.

 

12. 데이터 모델의 정의

- 정보들을 컴퓨터에 표현하기 위해 단순화, 추상화하여 체계적으로 표현한 개념적 모형이다.
- 데이터베이스에 표현하는 중간 과정, 즉 데이터베이스 설계과정에서 데이터의 구조를 표현하기 위해 사용되는 도구이다.
- 데이터의 구조(Schema)를 논리적으로 묘사하기 위해 사용되는 지능적도구이다.

 

13. 데이터 모델의 종류

개념적 데이터 모델

- 속성들로 기술된 개체 타입과 이 개체 타입들 간의 관계를 이용하여 현실 세계를 표현하는 방법이다.
- 종류로는 E-R 모델이 있다.


논리적 데이터 모델
-필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계를 이용하여 현실 세계를 표현하는 방법이다.
- 단순히 데이터 모델이라고 하면 논리적 데이터 모델을 의미한다.
- 논리적 데이터베이스 모델은 데이터 간의 관계를 어떻게 표현하느냐에 따라서 관계모델, 계층모델, 네트워크 모델로 구분한다.

 

 

14. 데이터 모델의 구성요소

 

개체(Entity)
- 데이터베이스에 표현하려는 것으로 사람이 생각하는 개념이나 정보단위 같은 현실 세계의 대상체이다.
- 유형, 무형의 정보로서 서로 연관된 몇 개의 속성으로 구성된다.
- 파일 시스템의 레코드에 대응하는 것으로 어떤 정보를 제공하는 역할을 한다.
- 독립적으로 존재하거나 그 자체로서도 구별이 가능한다.

속성(Attribute)

- 데이터의 가장 작은 논리적 단위로서 파일 구조상의 데이터 항목 또는 데이터 필드에 해당한다.
- 개체를 구성하는 항목이다.

관계(Relationship)
- Entity간의 관계 또는 Attribute간의 관계

 

15. 개체-관계(Entity-Relationship) 모델

 

- 개체 타입(entity type)과 이들 간의 관계 타입(relationship type)을 이용해 현실 세계를 개념적으로 표현한다.
- 데이터를 개체(Entity), 관계(Relationship), 속성(Attribute)으로 묘사한다.
- 특정 DBMS를 고려한 것은 아니다.

 

16. 관계형 데이터 모델

 

- 계층 모델과 망 모델의 복잡한 구조를 단순화시킨 모델이다.
- 표(Table)를 이용해서 데이터 상호관계를 정의하는 DB 구조이다.
- 데이터간의 관계를 기본키(primary key)와 이를 참조하는 외래키(foreign key)로 표현한다.
- 대표적인 언어 : Orcle, MS-SQL, Informix가 있다.
- 1:1, 1:N, M:N 관계를 자유롭게 표현할 수 있다.
- 장점 : 간결하고, 보기 편리하고, 다른 데이터베이스로의 변환이 용이하다.
- 단점 : 성능이 다소 떨어진다.

 

17. 계층형 데이터 모델

- 데이터의 논리적 구조도가 트리 형태이고 , 개체가 트리를 구성하는 노드 역할을 한다.
- 개체 집합에 대한 속성 관계를 표시하기 위해서 개체를 노드로 표현하고 개체 집합들 사이의 관계를 링크로 연결한다.
- 개체간의 관계를 부모와 자식간의 관계로 표현한다.
- 개체 타입간에는 상위와 하위관계가 존재하며, 일 대 다(1:N) 대응관계만 존재한다.
- 레코드 삭제시 연쇄 삭제(Triggered Delete)가 된다.
- 개체 타입들간에는 사이클(cycle)이 허용되지 않는다.
- 계층형 모델에서는 개체(Entity)를 세그먼트(Segment)라 부른다.
- 대표적인 DBMS는 IMS가 있다.
- 속성 관계(Attribute Relation) : 세그먼트(개체)를 구성하는 속성들의 관

- 개체 관계(Entity Relation) : 개체와 개체간의 관계를 링크로 표시함

 

18. 망(그래프)형 데이터모델

- CODASYL이 제안한 것으로, CODASYL DBTG 모델이라고도 한다.
- 그래프를 이용해서 데이터 논리구조를 표현한 데이터 모델이다.
- 상위와 하위 레코드 사이에서 다 대 다(N:M) 대응관계를 만족하는 구조이다.
- 레코드 타입간의 관계는 1:1, 1:N, N:M이 될 수 있다.
- 대표적인 DBMS는 DBTG, EDBS, TOTAL가 있다.

'IT > 자격증' 카테고리의 다른 글

산업기사- 전자계산기 구조(1)  (0) 2017.05.18
산업기사 - 데이터베이스(2)  (0) 2017.05.17
정보처리기사 필기요약(5)  (0) 2017.01.05
정보처리기사 필기요약(4)  (0) 2016.12.28
정보처리기사 필기 요약(3)  (0) 2016.12.27

RAID ( Redundant Array of Inexpensive Disks / Redundant Array of Independent Disks )

1988년 버클리 대학의 3명의 과학자가 제안한 이론으로 그 당시에는 하드디스크의 용량이 제한적이었고, 함부로 사용하는 이도 드물 정도로 값도 비쌌기 때문에 보다 저렴하며 용량이 적고, 성능이 낮은 하드디스크를 묶어 중복 구성함으로써, 성능이 좋은 고가의 대용량 하드디스크 장비와 겨뤄 손색이 없도록 하는 것이 주목적이었습니다.
그러나 그들이 열심히 RAID를 연구하는 동안 Storage 기술의 발전으로 용량대비 가격이 지속적으로 하락하였으므로 애초 주목적이었던 가격적인 면보다는 데이터의 안정성과 에러 보정, 그리고 하드디스크의 장애에 의한 데이터의 손실을 막기 위한 측면이 강조되었고, RAID의 의미는 'Inexpensive'에서 'Independent'로 의미가 바뀌게 되었습니다.  단순히 구성으로만 보자면 지금 많이들 사용하는 partition의 반대 비슷한 개념정도 됩니다. 파티션이 하나의 물리적인 드라이브를 여러개의 논리적 드라이브로 분할한것 이라면 레이드는 여러개의 물리적 드라이브를 하나의 논리적 드라이브로 묶는 방식 입니다. RAID 시스템은 동일한 데이터를 여러 개의 디스크에 중복 저장하면서도, 운영체계에는 하나의 단일 디스크로 인식시킴으로써, 내고장성의 증가와 데이터 접근 효율성을 높여주는 장점이 있습니다.

 


RAID Level 0 : 필요 드라이브 최소 2개이상, 빠른 입출력 목적


레이드 0은 같은 모델의 하드디스크와 같은 용량이어야 한다는 전제 조건이 있습니다. 레이드 0 구성시 중요데이터는 반드시 Back-up 하셔야 합니다. 레벨 0은 RAID의 가장 기본적인 구현방식으로 Striping(스트라이핑)이라고 합니다. 이것은 하나의 데이터를 여러 드라이브에 분산 저장을 함으로써 빠른 입출력을 가능하게 합니다. 1부터 100까지의 숫자로 이루어진 데이터가 있다면 이것을 1부터 100까지 순서대로 읽게 되는 상황이 일반적인 하드디스크의 구성이고 2개의 하드 디스크로 레벨0 을 구성하면 하나는 1~50 까지만 읽고 다른 하나는 51부터 100까지만 읽고 저장하기 때문에 그 속도는 2배가 됩니다. 즉 3개로 구성되면 속도는 3배가 되고 10개로 구성되면 그 속도는 1/10 로 줄어 들게 됩니다. 다시말하면 하나의 데이터는 Stripe(스트라이프) 기술을 이용해서 여러 개의 같은, 일정한 크기로 쪼개집니다. 그리고 이 쪼개진 하나하나의 조각을 Stripe Unit(스트라이프 유닛)이라고 합니다. 레벨 0은 분산 저장에만 초점이 맞춰져 있어 하드디스크의 속도 향상에는 무척 도움이 되지만, Striping(스트라이핑) 되어 있는 하드디스크 중 1개만 장애를 일으키더라도 데이터를 모두 유실할 위험성이 있습니다. 예를들어, "어린이" 라는 단어를 2개의 드라이브(하드 디스크)로 구성된 Raid 0 에  저장한다면 한개의 드라이브는 "ㅇ , ㄹ, ㄴ, ㅇ" 라는 자음만 저장하고 다른 하나는 " ㅓ, ㅣ, ㅣ " 이런 모음만 저장합니다. 따라서 저장하거나 불러오는 속도는 빠르지만 하나의 디스크에서 에러가 발생하면 완전한 데이터를 불러오지 못하게 되는 것입니다. 300GB 두개로 레이드0 을 구성하면 600GB의 단일 드라이브로 나타나고 성능 또한 2배이지만 하나의 디스크에서 손실이 발생하면 둘다 사용하지 못하게 되는 안전성이 낮은 구성입니다.


RAID Level 1 : 필요 드라이브 최소 2개이상, 안정성의 목적


레벨 1은 2개의 하드디스크가 사용되며, 하나의 하드디스크에 기록되는 모든 데이터가 나머지 하나의 하드디스크에 고스란히 복사되는 방법으로 저장하게 됩니다. 두 개의 하드디스크에는 한치의 오차도 없이 똑같은 데이터가 저장이 되기 때문에 Mirroring(미러링)이라고 합니다. 이 경우 2개의 하드디스크 중 1개가 장애를 일으키더라도 남은 1개의 데이터는 장애를 일으킨 하드디스크의 데이터와 똑같기 때문에 안정성 측면에서 상당히 우수한 구성입니다.
읽기에서는 성능의 향상이 있으나, 쓰기에서의 속도 향상은 별반 차이가 없고, 전체 공간의 50%만 이용할 수 있다는 문제점이 있습니다. 때문에 매우 중요한 파일을 백업 받을 일이 없는 개인 사용자의 경우 하드디스크 두 개로 한 개 용량만 사용해야 한다는 단점이 있습니다.


RAID Level 2 : 기록용 드라이브와 테이터 복구용 드라이브가 별도로 필요4개 하드 디스크에 기록하기 위해서는 3개의 부가 데이터를 기록해야 되기 때문에 효율성 측면에서 거의 사용하지는 않습니다. RAID 2는 RAID 0처럼 스트라이핑 방식이지만 에러 체크와 수정을 할 수 있도록 Hamming Code를 사용하고 있는 것이 특징입니다. 레벨 4가 나오면서 거의 사용하지 않는 기술입니다.


 

Raid Level 0  Striping(스트라이핑) 데이터를 쪼개서 저장하는 분산 저장 해서 속도향상을 위한 레벨이고.

Raid Level 1 
 Mirroring ( 미러링 ) 안전성을 좋지만 드라이브 용량 이용의 비효율성이 있습니다.

Raid Level 3,4 
 Parity ( 패리티 : 데이터 오류 체크 기술)로 레벨0의 불안전성을 보완한 것입니다.

 

RAID Level 5 ( 레이드 5 ) : 필요 드라이브 최소 3개이상


레벨 5는 레벨 3과 레벨 4의 단점을 보완한 방식으로, 패리티 정보의 저장을 전담하는 하드디스크 대신 모든 하드디스크에 패리티 정보를 분산 저장합니다. 이 방식은 쓰기(Write)에는 패리티 정보가 분산되어 저장되기 때문에 Level 3, 4의 단점이었던 병목을 줄여주지만, 읽기(Read)에서는 사방에 흩어져 있는 패리티 정보를 갱신하며 읽게 되기 때문에 성능 저하가 생길 수밖에 없습니다. 이러한 단점 역시 컨트롤러에 지능형 캐쉬를 내장하여 속도저하를 최소화시키는 역할을 하고 있습니다. 성능면에서 Raid 0 보다 떨어지지만 성능, 안정성, 용량 3 부분을 고려한 형태입니다.하나의 드라이브가 고장날 경우 다른 드라이브에 별도로 저장된 패리티( Parity ) 정보를 정보를 통해서 복구하고 손상된 드라이브의 패리티 ( Parity ) 정보는 나머지 하드에 있는덷 테이터를 토대로 다시 작성할 수 있습니다.그러나 별도의 패리티 정보를 저장하는 작업을 해야 하기 때문에 RAID Level 1 보다는 쓰기 성능이 떨어집니다.

RAID 3, 4와 달리 패리티 정보가 저장된 디스크가 따로 없어 패리티 디스크 고장과 같은 문제에서 자유롭고 실제 서버/워크스테이션에서 가장 많이 사용되는 방식입니다.


RAID Level 6 ( 레이드 6 ) : 필요 드라이브 최소 4개이상

레벨 6은 RAID 5와 같은 개념이지만 다른 드라이브들 간에 분포되어 있는 2차 패리티 정보를 넣어 2개의 하드에 문제가 생겨도 데이터를 복구할 수 있습니다. RAID 5보다 더욱 데이터 안정성을 고려하는 시스템에서 사용합니다. 
하드를 스트라이핑으로 묶었기 때문에 RAID 0+1이나 RAID 10(1+0)보다 성능은 더 높고 신뢰성도 우수합니다. 패리티 정보를 2중으로 저장하며 읽기 성능은 RAID 5와 비슷하지만 쓰기 작업 구현이 아주 복잡해서 일반적으로 잘 사용하지 않습니다.


RAID Level  0+1 / 1+0 (레이드 01 / 10 ) : 필요 드라이브 최소 4개 

간단히 말하자면 레이드 레벨 0과 레벨 1의 복합 구성입니다. 레벨 0의 Striping과 레벨 1의 Mirroring의 기능이 합쳐진 것으로, 분산 저장을 통한 성능 향상을 꾀할 수 있으면서 데이터의 안정성 또한 보장받을 수 있습니다. 때문에 속도 및 안정성 두 마리의 토끼를 다 잡은 듯 보이지만, 여전히 전체 용량의 50%만 사용할 수 있는 것은 변함이 없으며, 비용이 많이 든다는 문제점이 있습니다.


01과 10의 차이는 어느 쪽을 먼저 구성하느냐의 차이입니다.  4개의 드라이브로 구성한다면 위의 이미지 처럼 그 차이는 없습니다.

 

그러나 6개의 드라이브로 구성한다면 01의 구성은 3:3 으로 구성되지만 10의 구성은 2:2:2 로 구성되게 됩니다. RAID 0+1은 RAID 0으로 구성된 드라이브들을 최종적으로 RAID 1로 묶는 것이라 각각 3개씩 하드 가 나눠지며, RAID 1+0은 2개씩 RAID 1으로 묶여있는 하드들이 RAID 0으로 구성됩니다. 
  
RAID 0+1의 경우 1개의 하드만 고장나서 복구해도 다른 RAID 0 구성에서 나머지 하드까지 데이터 전체를 복구해야 하지만, RAID 1+0으로 만든 시스템은 고장난 하드가 하드 1개라고 하면 미러링으로 묶인 하드를 통해 데이터만 복구하면 되므로 실제로 운용하는데는 RAID 1+0 이 훨씬 유리합니다.

 

 

Raid 51 / 15 ,  Raid 05 / 50 , Raid 60, Raid100

기존의 레벨의 복합적 구성입니다.


레벨 0 이 들어가면 성능의 향상을 기대할수 있으나 안정성은 불안하게 됩니다. 
레벨 1 이 들어 가면 안전성을 확복할수 있으나 용량의 감소 또한 감수 해야 됩니다.
레벨 5나 6의 구성에 최소 3~4개의 드라이이브가 소모되기 때문에 이들의 복합적인 구성은 최소 6개 이상의 드라이브가 있어야 가능한 구성입니다. 랜덤 읽기/ 쓰기의 성능의 향상은 체감속도의 향상과 같습니다. 프로그램을 런칭하는 속도가 랜덤 엑세스의 성능과 비례한다고 보시면 됩니다. 그리고 순차 읽기 / 쓰기는 영화파일과 같은 대용량의 파일을 이동할때의 성능 이라고 생각하시면 됩니다.

'IT > IT자료' 카테고리의 다른 글

DLP  (0) 2017.02.21
Active Directory(2)  (0) 2017.02.19
Active Directory(1)  (0) 2017.02.19

DLP 관리


1) Enforcer 서버에서의 서버 관리

    - 시스템 > 개요 “클릭” 하면 각 서버의 상태 및 서버에서 발생한 오류를 알 수 있다.

2) 서버 상세 내역[Endpoint Server]

    - [시스템] > [개요] > [서버]를 클릭하면 서버의 상세 내역을 볼 수 있다.

    - Endpoint Server

① Configuration :  정책 그룹, 에이전트 구성 및 구성 상태가 표시

② Agent Summary :  에이전트에 대한 요약 

총 설치 대수

온라인 대수

오프라인 대수

상태에 따른 Agent 대수

3) Windows에서 DLP 서버 서비스 [Enforcer/Endpoint Server]

※ Enforcer 서버 서비스 시작 

- [시작]>[모든 프로그램]>[관리 도구]>[서비스]  이동.

- 서비스 시작 순서 : Vontu Notifier >  Vontu Manager > Vontu Incident Persister > Vontu Update > Vontu Monitor Controller

- 서비스 중지 순서 : Vontu Update >  Vontu Incident Persister > Vontu Manager > Vontu Monitor Controller > Vontu Notifier

※ 탐지 서버 서비스 시작 

- [시작]>[모든 프로그램]>[관리 도구]>[서비스]  이동.

- 서비스 시작 순서 : Vontu Monitor >  Vontu Update

- 서비스 중지 순서 : Vontu Update > Vontu Monitor


1) 일반설정

 - 시스템 >  설정 > 일반 > 일반 설정 편집

① 리포트 및 알림(현재 전송 않음으로 설정됨 )

시스템 이상시 알림이나 예약 리포트를 이메일로 전송 한다.

※ 리포트 형식

- 리포트를 링크로 전송. 확인 시 로그인 필요

  리포트에 대한 링크가 포함된 이메일 메시지를 전송한다.   - 이메일로 리포트 데이터 전송

  DLP이메일 메시지를 전송하고 리포트 데이터를 첨부한다.  

※ 정규화된 관리자 이름

리포트 형식을 선택할 때 “Send reports as links, login required to view”를 선택하였다면 서버 주소 링크가 전송되므로 서버 주소를 입력해줘야 한다.(ex : http://server_ip or server hostname)

※ 상관 관계

correlations는 해당 인시던트와 관련된 상세 내용이다. 예를 들어 해당 인시던트의 사용자는 해당 인시던트를 주 또는 월단위로 몇건을 전송하였는지, 발신인이 같은 건은 몇건인지 등의 해당 인시던트와 상관관계가 있는 인시던트의 정보를 알려 주는 옵션이다.

② SMTP

    SMTP 서버를 설정하여 알림 및 리포트를 전송하는 설정  

③ 라이센스

    라이센스 등록 현황

1) 일반설정 (계속)

 - 시스템 >  설정 > 일반 > 일반 설정 편집

① 프로세스제어- 서버의 상세 내용을  표시한다.   

-  고급 프로세스 제어 체크박스를 선택하여 기능을 enable 하면

 시스템 >  서버  > 개요  > 서버 상세 내역 메뉴에서 서버의 상세 내용을 확인 할 수 있다.

② 암호 설정

- 콘솔 계정의 패스워드 보안 및 기간설정

  (ex : 숫자,영문 혼용, 패스워드 만료기간 설정)

1) 일반설정 (계속)

 - System >  Settings > General > configure

① 인증 정보 관리

- Endpoint FlexResponse 또는 Endpoint Discover 검역소 대응   규칙에 대한 격리 저장소의 인증 정보를 설정한다.

  ex) 예로는 엔드포인트 디스커버를 실행 한 후에 정책에   위반되는 문서를 특정 서버에 격리 시킬때 특정서버의 계정 정보를   DLP서버에 저장하여 자동으로 서버에 로그인을 할 수 있도록 한다.

- 인증 정보는 시스템 > 설정 > 인증 정보 에서 설정할수 있다.

② Active Directory 인증

- 관리콘솔 계정과 Active Directory 계정 연동

 Active Directory 인증 수행 항목을 체크하여 설정하면 DLP 관리콘솔 계정 추가하시 관리콘솔 계정과 Active Diretory 계정이 연동된 계정을 설정할 수 있다.(패스워드 등)   

③ 언어

- 25개의 언어 지원

- 언어팩을 추가로 설치하면 지원되는 언어를 지원받을 수 있다.

 ④ 에이전트 관리 

- Enforce : 에이전트가 Endpoint Server를 통해서만 설정등을   수신하도록 하려면 이 옵션을 선택한다.  

 SMC : 에이전트가 Symantec Management Console을   통해서만 설정등을 수신하도록 하려면 이 옵션을 선택하고 Symantec Management Console항목에 서버 정보를 입력한다.

Ex) http://172.100.20.20:8080

1) SQL Plus 사용법

- 시작  실행  sqlplus (도스 모드)/ sqlplusw (윈도우 모드)

- Login user (protect) 및 password 입력  예) protect / protect04

- 환경 setting (option)  Set pagesize 1000  : SQL결과의 한 pages 크기  Set line 130 : SQL결과가 나오는 폭(line)의 크기

2) Table space 용량 확인하는 방법 (다음장 계속)

- 시작  실행 ‘sqlplus’(or sqlplusw) 입력후 Enter

- ‘system’ user로 Login 한다.  (User name : system, password : protect04)

- 접속후 SQL> 상태에서 ‘@c:\dlp_space.sql’을 입력후 Enter

- 실행후 C:\에 ‘Symantec_DLP_ORACLE_SIZE_ + (MonthDay+Time+Minute+Second).txt’ 포맷으로 결과 파일이 생성된다.


3) Table space 용량 확인하는 방법

- C:\에 ‘Symantec_DLP_ORACLE_SIZE_ + (MonthDay+Time+Minute+Second).txt 파일을 열면 정보를 확인할 수 있다.


3) Table space 용량 늘리는 방법

- 시작 실행 'sqlplus’(or sqlplusw) 입력후 Enter

- ‘system’ user로 Login 한다.  (User name : system, password : protect04)

- LOB05.DBF를 하나 더 만들고 용량 늘리는 쿼리를 실행한다.

SQL>ALTER TABLESPACE LOB_TABLESPACE add datafile ‘E:\DATA\ORAC\protect\LOB05.DBF’ size 32767M;

- 해당 경로에 LOB05.DBF가 추가되었는지 확인한다.


1) 서버 구성파일 백업

   - DLP Enforcer Server 접속 (데이터센터 : 174.100.24.145, 조선호텔 : 174.100.101.123)

   - D:\Vontu\Protect\config 파일을 복사하여 Backup 대상 디렉토리에 복사

 - 현재 백업된 서버 구성파일 경로D:\Backup\DLPConfig\config

2) 사용자 정의 구성 변경 백업

 - D:\Vontu\Protect\plugins 파일을 복사하여 Backup 대상 디렉토리에 복사

 - 현재 백업된 서버 구성파일 경로D:\Backup\DLPConfig\plugins

3) 정책 백업

   - 생성된 정책 선택 > “이 정책을 템플릿으로 내보내기” 선택하여 백업


1) Enforcer Server 서비스 중지

   - 서비스 중지 순서 :

      Vontu Update >  Vontu Incident Persister > Vontu Manager > Vontu Monitor Controller > Vontu Notifier

2) 서버 구성파일 복구    - 백업된 서버구성파일을  D:\Vontu\Protect\config 에 복사

    - 현재 백업된 서버 구성파일 경로D:\Backup\DLPConfig\config

3) 사용자 정의 구성 변경 복구

   - 백업된 사용자 정의 구성변경 파일을  D:\Vontu\Protect\plugins 에 복사

   - 현재 백업된 정의 구성파일 경로D:\Backup\DLPConfig\plugins

4) 정책 복구

   - 백업된 정책파일을 D:\Vontu\Protect\config\templates 에 복사

   - 현재 백업된 정의 구성파일 경로D:\Backup\DLPConfig\policy

5) Enforcer 서비스 시작

   - 서비스 시작 순서 :                                                                                                                                                            

      Vontu Notifier >  Vontu Manager > Vontu Incident Persister > Vontu Update > Vontu Monitor Controller


Oracle 백업에는 다음의 3가지 방법이 있지만, Symantec DLP에서는 DB를 shutdown하고 백업을 받는 오프라인

    1)(cold) 백업을 권장.


2. Windows에서 spfile의 복사본 생성 Oracle SQL*Plus의 SQL> 명령 프롬프트에서 다음을 입력.

         create pfile='/Temp/inittemp.ora' from spfile;

    2) Oracle SQL*Plus를 종료 

         exit

    3) \Temp 디렉터리로 이동 

    4) inittemp.ora 파일을 백업 시스템 디렉터리로 복사


3. 데이터베이스 파일을 백업

    1) Oracle 서버의 서비스 중지

        ■ OracleOraDb11g_home1TNSListener

        ■ OracleServicePROTECT

    2) Enforcer서버의 서비스 중지

        ■ Vontu Update

        ■ Vontu Incident Persister

        ■ Vontu Manager

        ■ Vontu Monitor

        ■ Vontu Monitor Controller

        ■ Vontu Notifier

    3) 데이터베이스 파일을 백업 위치로 복사

        $oracle\oradata\protect

    4) \oracle\product\11.2.0\db_1\database\PWDprotect.ora 파일을 선택하고 백업

1. 기존 데이터베이스를 복원하여 데이터베이스를 복구하려면

    1) Oracle 서버의 서비스 중지

        ■ OracleOraDb11g_home1TNSListener

        ■ OracleServicePROTECT

    2) Enforcer서버의 서비스 중지

        ■ Vontu Update

        ■ Vontu Incident Persister

        ■ Vontu Manager

        ■ Vontu Monitor

        ■ Vontu Monitor Controller

        ■ Vontu Notifier

    3) 데이터베이스 파일을 복원

        $oracle\oradata\protect

    4) 데이터베이스 시작

        ① Oracle SQL*Plus를 실행

            - Windows > 시작 > 프로그램 > Oracle - OraDb11g_home1 > 응용 프로그램 개발 > SQL Plus로 이동

        ② SQL> 명령 프롬프트 sysdba 사용자로 연결 

           connect sys/protect as sysdba

        ③ startup을 입력 후 엔터

2. Windows에서 새 데이터베이스 생성

     - 새 데이터베이스의 드라이브 구조가 기존 데이터베이스의 드라이브 구조와 동일하다고 가정

     1) 데이터베이스 파일을 복원

         $oracle\oradata\protect

     2) 데이터베이스 시작

         ① Oracle SQL*Plus를 실행

              Windows > 시작 > 프로그램 > Oracle - OraDb11g_home1 > 응용 프로그램 개발 > SQL Plus로 이동

         ② SQL> 명령 프롬프트 sysdba 사용자로 연결

             connect sys/protect as sysdba

         ③ startup을 입력 후 엔터


DLP 업그레이드

 Upgrade Path 체크

- Symantec DLP는 major release(10.5, 11.0, 12.0, 12.5 )를 반드시 설치해야만 다음 버전으로 업그레이드 가능합니다. 

- 예를 들면 10.0버전을 12.5 버전으로 업그레이드를 하기 위해서는 10.0 -> 11.0 -> 12.0 -> 12.5 순으로 업그레이드를 해야 합니다. 이러한 순서를 Upgrade path라 합니다.

 

수동업그레이드

1) 파일 복사 

- Symantec_DLP_12.0_Platform_Win-IN\DLP\12.0\Upgrade_11.x_to_12.0 경로에서 12.0_Upgrader_Windows.jar 파일을 복사합니다.

2) 새폴더 생성 

- DLP가 설치된 경로(C:\Vontu\Protect\updates)에 새 폴더를 생성합니다.

- 폴더명은 아무거나 상관없으나 버전을 알 수 있도록 생성하는 것을 권장합니다.

3) 압축해제

- C:\Vontu\Protect\updates\12.0 폴더에 12.0_Upgrader_Windows 파일을 붙여 넣고 압축을 해제 합니다. 이때 또 다른 새 폴더가 생기지 않도록 유의합니다.

- 압축 해제 프로그램(알집, 반디집 등)이 없는 경우에는 확장자를 .zip으로 변경 후 윈도우 자체에서 제공하는 압축 풀기를 진행합니다.

4) start_upgrade_wizard.bat 실행

- start_upgrade_wizard.bat 파일을 관리자 권한으로 실행하거나 Administrator 계정으로 로그인 후 실행합니다.

5) start_upgrade_wizard.bat 실행(계속)

- ‘1개의 파일이 복사되었습니다.’ 라는 CMD창이 생성되고, Tomcat 창이 실행됩니다. 

- Tomcat 창은 닫지 않고 유지합니다.

6) DLP Console 로그인

- 브라우저에서 https://localhost:8300으로 접속하면 DLP Upgrade 로그인 페이지가 나옵니다. Password : protect04 를 넣고 Login을 합니다.

7) DLP License Agreement

- License Agreement 화면이 나오고 밑에 [Accept] 버튼을 클릭합니다. Logfiles 을 클릭하시면 로그 파일을 보거나 저장할 수 있습니다.

8) System Check

- System을 Check하기 전에 나오는 페이지 입니다. [Next >] 버튼을 클릭합니다.

9) System Check Succeeded

- Upgrade Path에 맞는 Upgrade 버전일 경우 System Check Succeeded 문구가 보이는 페이지가 나옵니다. [Next >] 버튼을 클릭합니다.

10) DLP Upgrade

- 이전 버전에서 설치한 Language Packs은 제거 된다는 경고 문구가 나옵니다. [Next >] 버튼을 눌러 업그레이드를 계속 진행합니다.

11) DLP Upgrade ? Pre-check

- Upgrade전에 Upgrade를 올바르게 하기 위한 준비가 되어있는지 Check 합니다. 완료되면 밑에 [Next >] 버튼을 클릭합니다.

12) DLP Upgrade ? Enforce Server

- Enforce Server를 Upgrade합니다. [Next >] 버튼을 클릭해서 Upgrade를 진행 합니다. 진행 과정이 퍼센트로 나타나고 Upgrade is Complete가 나오면 [Next >] 버튼을 클릭합니다. 

13) DLP Upgrade ? Enforce Server(계속)

- (본 화면은 12.0 이상의 버전에서 나옵니다) ① Production version / Test version 을 선택하고 [Next >] 버튼을 클릭합니다. 

- ②은 Symantec Product의 quality의 향상을 돕기 위해 원격 프로그램 지원에 참여한다는 사항입니다.

14) DLP Upgrade ? Detection Servers

- 설치된 Detection Servers 중에서 먼저 업그레이드 하고자 하는 server를 선택합니다. (실망에서는 한번에 모든 서버를 업그레이드 할 경우 모든 서비스가 중지 되므로 나눠서 업그레이드를 실시합니다)

15) DLP Upgrade Finish

- Upgrade가 마무리 되었습니다. [Finish] 버튼을 클릭합니다.


자동업그레이드

1) Enforce console 접속

- DLP Enforce console 접속 후 [System] ? [Servers] ? [Overview] ? [Upgrade] 버튼을 클릭합니다.

2) 파일 업로드 후 Upgrade 진행

- 찾아보기 버튼을 클릭 후 Upgrade할 버전의 Jar 파일을 넣고 [Launch Upgrade] 버튼을 클릭합니다. 그 후 관리자 계정 로그인 페이지 창이 보이고 로그인을 하게 되면 수동 설치 6)번 과정 이후와 동일하게 Upgrade를 진행합니다.


'IT > IT자료' 카테고리의 다른 글

RAID (레이드) 레벨과 구성방식  (0) 2017.02.22
Active Directory(2)  (0) 2017.02.19
Active Directory(1)  (0) 2017.02.19

1. Active Directory의 요소

Active Directory를 구성하는 각 요소들은 논리적인 구조로 엮어져 있다. 정보나 자원들은 사용자나 회사가 그것을 사용하는 용도나 내용에 따라서 논리적으로 그룹화 되어 있으며, 이 그룹화 된 object를 위치에 상관없이 그 이름만으로 손쉽게 탐색할 수 있는 것이다. 이러한 Active Directory의 논리 구조에 대해서 우선 이를 구성하는 기본 구성 요소에 대해서 알아 보자.

 

Objects
object란 공통된 속성을 가지며 class(클래스)별로 구성된다. Users, computers, printers, applications등이 object이다.

 

Object Attributes
Attribute(속성 혹은 properties)는 각 object가 가지고 있는 특징을 정의하는 정보의 카테고리이다. 같은 타입의 모든 object는 동일한 attribute를 가진다. 그리고 그 attribute의 값이 서로 틀리기 때문에 해당 object를 고유(unique)하게 되는 것이다. 예를 들면 User Account object의 attribute 중에 First Name 이 있을 경우에, 이 First Name 속성의 값에는 John, 이나 Jane등 어떤 이름이던지 들어 갈 수가 있으며, 이 속성 값으로 네트워크 상의 누구라도 찾을 수 있는 것이다.

 

Object Classes
Object Classes는 object의 논리적 그룹이다. 이 클래스의 특징을 기술하는 것을 properties라고 부른다. 예를 들면 object classes는 users, groups, computers, domains, organizational units 그리고 security policies등이 있다.

 

Schema
Schema는 Active Directory의 object 를 정의한다. 이는 각 object 의 attributes, classes, 그리고 classes properties등을 규정한다. 이 schema는 각 object의 attributes에 특정 값이 반드시 필요한 지 아니면 선택인지(optional)인지를 규정한다. 그리고 이 schema는 손쉽게 확장되는 데, User Account object의 First Name 이라는 attribute에는 반드시 입력되어야 하는 값이 있어야 하는 반면에, Telephone Number나 Address라는 attribute에는 값이 들어가도 되고 안 들어가도 되는 optional로 정의 되어 있다.

 

2. Active Directory의 논리 구조

Active Directory object는 다음과 같이 containers, domains 그리고 OUs를 구성한다.

 

Containers
Container는 다른 object를 포함하고 있는 일종의 directory object이다. 컴퓨터 네트워크나 domain은 container의 한 일종이다.

 

Domains
Active Directory의 논리 구조의 핵심 단위가 domain이다. 이 domain은 사용자 계정 정보와 이DNS이름을 바탕으로 서로를 각기 구별하고 보안 정보를 공유하는 object의 논리적 container이다.
한 domain은 보안 관리 체계를 이루는 최소 단위가 되면서 Windows 2000 네트워크에 복제가 일어나는 단위가 된다. 다시 말하면, security policy던가, 관리 권한(administrative right), ACL등과 같은 것은 domain 내부에서만 일어나는 것이지 다른 domain으로 적용할 수 없는 것이다. 하지만 domain은 다른 domain과 보안 관계를 맺을 수 있다.
한 domain은 물리적인 지역 여러 곳을 커버 할 수 있다.

 

Domain Controller
Active Directory의 물리적 구조를 살펴 보면, domain controller라는 서버가 domain의 directory를 한 벌 저장하고 있다. 한 domain내에서 여러 개의 domain controller가 있으며, 이는 각기 해당 domain의 directory 정보의 복제 본을 한 벌씩 가지고 있다.

 

Organizational Units
OU(Organizational Units)는 일종의 container object로서 domain내의 object 들을 관리할 수 있는 그룹으로 묶어 놓은 것을 말한다. 하나의 OU는 user accounts, groups, computers, printers, applications, security policies, file shares, 그리고 다른 OU등을 포함할 수 있다.
한 domain내의 OU는 그 계층 구조가 다른 domain의 계층구조와 전혀 상관이 없이 구성된다. 그러므로 OU는 각 domain에서 독립적인 계층 구조를 가진다고 말할 수 있다.

 

 

3. Active Directory의 논리 구조와 그 상관 관계
Domain은 서로 연결되어Tree와 Forest를 구성한다.

 

Trees
연속되는 이름영역(namespace)을 가진 하나 이상의 domain으로 구성된 계층적 조직을 tree라고 한다. 이 연속된 이름영역(contiguous namespace)이라는 것은 parent container의 이름이 child object의 이름의 뒤에 붙는다는 것을 말한다. Active Directory내에서 tree내의 domain끼리는 서로 trust relationship을 가지면서 공통된 schema, configuration, global catalog server를 사용한다. 여기서 trust relationship이라고 하는 것은 두 개 이상의 domain을 논리적으로 연결하여 하나의 관리 단위로 이용하는 것을 의미하기 때문에 각 object는 domain에 상관없이 서로 공유된다. 여기에 사용된 trust relationship은 2 way trust relationship혹은 transitive trust라고 불리며, Kerberos 버전 5 프로토콜이 trust relationship을 인증하는데 사용된다.
예를 들면, ICMARKET 사는 Manufacturing 부서를 위해 하나의 domain을 만들어 manu.icmarket.com라고 이름하고 Marketing 부서는 market.icmarket.com라고 이름 짓는 다면, 각 부서의 domain은 공동의 application과 자원을 공유하게 해야 한다. 이 것이 가능한 것은 이 두개의 domain이 icmarket.com라는 연속되는 이름영역(namespace)을 사용하기 때문이다.

 

Forests
Forest는 연속되지 않는 이름영역(namespace)을 가진 하나 이상의 tree로 이루어 진다. Forest내의 각 tree는 독립적인 이름영역(namespace)을 가지는 데, 이들 tree간에 각기 틀린 이름영역을 disjointed namespace라고 부른다. 디폴트로 root tree나 forest내에서 제일 먼저 만들어 지는 tree의 이름이 forest의 이름으로 사용된다.
비록 그 이름은 서로 공유되지 않더라도 forest내의 tree들은 schema, configuration 그리고 global catalog server는 공유한다. 예를 들면 미국에 있는 icmarket.com와 한국에 새로 만들어진 tainspintoys.co.kr은 서로 다른 이름영역을 가지더라도 동일한 application, objects 등을 공유할 수 있는 것이다.

 

Global Catalog Server
Global catalog server는 전체 directory의 모든 구성 요소와 그 상관 관계를 한눈에 알아 볼 수 있도록 한다. 이것은 Active Directory가 복제 될 때에 만들어 지며, 전 directory의 복제 본을 저장하고 있다. 이것을 통하여 사용자나 관리자가 object의 attribute 로서 모든 directory object를 이를 저장하고 있는 domain이나 domain내의 서버나 그 서버의 지리적 위치에 상관없이 찾을 수 있다. 
Global catalog server는 모든 directory object를 담고 있지만 이는 Active Directory의 각 object와 attribute의 일부분을 복제하여 저장하고 있다. 다시 말하면 각 object의 전 attribute를 저장하는 것이 아니라 검색에서 가장 자주 이용되는 attribute 들만 저장하고 있는 것이다. 예를 들면 user account object의 First Name은 들어 있어도, Last Name 이나 logon name은 들어 있지 않은 것이다.


4. 물리적 구조의 구성요소

 

Active Directory는 논리 구조와 물리 구조로 나누어 접근해 볼 수 있다. 앞장에서의 논리구조와는 달리 Active Directory는 Site내에서 domain controller를 포함하는 site topology 를 구성하여 하나의 물리적 디렉토리 구조를 이룬다.

 

Sites
Site란 Active Directory server가 물리적으로 위치하는 장소 정도로 이해하면 된다. Administrators는 신뢰성 있고 아주 빠른 LAN 네트워크 망에 있는 여러 서버들을 묶어서 Site를 만든다. 여기서 신뢰성 있고 아주 빠른 LAN 네트워크가 필요한 까닭은 Site내의 서버 끼리 일어나는 복제 작업에 따른 네트워크 트래픽을 감당해야 하기 때문이다. Site는 서버나, 컴퓨터, 프린터, 팩스 등과 같은 하드웨어를 포함한다. IP 네트워크의 서브 넷을 Site로 만들게 되면 관리자가 Active Directory를 설정하거나 관리하기가 용이해진다.

Site를 만들 때 고려해야 하는 것은
 1. 복제 트래픽이 원할 하게 전송될 것
 2. 사용자가 domain controller에 신뢰성 있고 아주 빠른 LAN 망으로 접속할 수 있게 할 것.
 3. 한 Site는 여러 domain의 여러 domain controller를 포함할 수 있고, 한 domain의 여러 domain controller는 여러 site에 포함될 수 있다.

 

Site는 이름영역(namespace)에 속하지 않는다. Site topology정보나 그 구조에 관한 사항은 directory에 별개로 저장된다.

 

Site Topology
Site Topology는 기업의 전 네트워크에 site를 어떻게 분산 배치 할 것인가를 기술하고 있다. 한 site에 최소 하나의 domain controller를 두도록 설계하는 것이 좋다.

 

Domain Controllers
Domain controller란 domain directory를 업데이트 할 수 있는 복사본을 가지고 있는 서버를 말한다. 모든 domain controller는 계층적 구조가 아닌 동등한 관계를 유지하기 때문에 NT 4.0 이전 버전에 있었던 primary나 backup domain controller라는 개념은 더 이상 사용하지 않는다.

 

5. 물리적 구조 내에서의 동작

 

Site를 이루는 물리적 구성 요소와 domain controller가 구성되면 이는 Active Directory운용에 함께 어울려 동작한다. 이 동작에는 디렉토리 복제, Global catalog server 업데이트, Directory 확장과 성능의 최적화를 위한 directory저장 조직의 개편 등이 포함된다

 

복제(Replication)
Directory에 변경이 생기면 이는 바로 다른 domain controller에게도 복제가 일어난다. 그리고 domain내에 새 서버가 설치될 때에도 domain directory는 자동으로 이 새로 설치되는 서버에 복제가 되는 것이다.
Active Directory는 multi-master replication을 한다. 

Replication이 됨으로써 다음과 같은 두 가지 이점이 있다. 
 1. 서버의 장애로 인해 디렉토리 데이터에 손상이 가더라도 다른 서버에서 읽을 수 있다.
 2. 복제된 디렉토리가 네트워크 전반에 걸쳐 있기 때문에 각 사용자의 액세스가 분산되어 로드를 줄일 수 있다.
복제가 일어나게 되면 이 변경 사항이 Global catalog server에도 복제가 된다.

 

물리 구조에서의 Global catalog server의 역할

Global catalog server는 domain controller가 만들어 질 때에 자동으로 만들어 진다. Active Directory의 부분 복제 분이 domain controller에 있게 된다. 이것이 가능한 것은 Active Directory가 정보와 자원을 저장하기 위해 partition을 사용하기 때문이다.

 

Partitions
Partitions은 디렉토리 데이터의 서브 셋을 담고 있는 물리적 저장 컨테이너 이다. Active Directory는 partition에 각 domain의 디렉토리 정보를 DN별로 분리 저장한다. Active Directory의 저장 컨테이너(container)는 domain이나 OU가 될 수 있다. Global catalog server는 DN을 보면 해당 object가 있는 partition의 복제 본이 어디 있는지를 알 수 있기 때문에 object를 쉽게 찾을 수 있다.

 

Naming context
Naming context란 디렉토리의 연속되는 서브 트리이며 복제의 단위가 된다. 한 partition이 하나의 naming context이다. Active Directory에서는 하나의 서버가 다음과 같이 최소 3 개의 naming context를 가진다. 
 1. Configuration: Sites, services, partition과 schema에 대한 물리적 데이터를 저장한다. 
 2. Domain naming: domain directory 데이터를 포함하는 복제의 기본 단위이다. 
 3. Schema: 전 Active Directory에 대한 Schema를 저장한다. 

복제(replication)가 일어 날 때 마다 이들 naming context도 복제된다.

 

6. Active Directory Security 특징

 

Active Directory를 관리하고 액세스하는 것은 엄격한 보안 관리를 통해서 제어된다. 이 보안 관리를 위해 다음과 같이 4 가지 기능이 있다.

 

Access Control List
Active Directory내의 각 object에는 해당 object를 누가 이 object를 어떤 퍼미션으로 액세스 할 수 있지를 통제할 수 있는 Access Control List(ACL)이 있다. 이 ACL의 적용 대상은 object 뿐만 아니라, object attribute과 object classes도 액세스 하는 것을 통제한다.

 

Delegation(권한 위임)
Delegation이란 Administrators가 특정 개인이나 그룹에게 컨테이너나 서브트리에 대한 특정 퍼미션을 주어서 이를 관리하게 할 수 있는 것을 말한다.

 

Inheritance (상속)
상속(Inheritance)이란 컨테이너 object에 대한 ACE(Access Control Entry)을 child container에 있는 object에게도 그대로 세습하여 적용하는 것을 말한다.

 

Trust Relationships
한 domain에 있는 사용자가 다른 domain에 있는 자원을 액세스 하려면 해당 domain사이에는 trust relationship이 이루어져야 한다. 이 trust relationship은 schema, configuration 그리고 global catalog server를 공유한다는 것을 의미한다.
이 trust relationship에는 다음과 같이 transitive trust와 explicit trust가 있다.

 

Transitive Trusts
Domain이 만들어 져서 tree에 포함 될 때에 이 transitive trust가 자동으로 설정된다. Transitive trust란 domain간에 서로 양방향 신뢰관계(trust relationship)가 설립되는 것을 말한다. 이는 forest 에서도 일정한 퍼미션만 주어진다면 사용자는 어떤 자원에도 액세스할 수 있도록 하기 위함이다. 
이 Transitive Trust는 Kerberos 버전 5 프로토콜을 사용해서 사용자 인증을 한다. 

Transitive trust를 다른 용어로 implicit trust라고도 하는 데, 이는 domain A가domain B를 trust하고, domain B가 domain C를 trust할 경우에, domain A는 자동으로 domain C를 trust하는 관계가 되는 것을 의미한다.

 

Explicit Trusts
Explicit trust란 단 방향으로 신뢰가 설정되는 경우이다. Domain A가 domain B를 trust할 때에는 domain B의 사용자가 domain A의 자원을 액세스 할 수 있다. 그 반대는 안 된다. Forest 간에는 explicit trust가 설정된다.



'IT > IT자료' 카테고리의 다른 글

RAID (레이드) 레벨과 구성방식  (0) 2017.02.22
DLP  (0) 2017.02.21
Active Directory(1)  (0) 2017.02.19

1. Active Directory 개요

 

Directory란 일종의 저장 용기(container)로서, 여기에는 사용자에 관한 데이터, 프린터, 서버, 데이터베이스, 그룹, 컴퓨터, 보안 정책등과 같은 object가 들어 있다.
예를 들면 전화번호부를 directory라고 부르는 이유는 그 전화번호부 안에 각 전화 이용자의 이름이나 회사의 전화번호부와 주소가 있기 때문이다.


Directory Service는 이 Directory에 있는 정보를 사용자가 찾아서 해당 네트워크 자원에 액세스할 수 있도록 하는 서비스를 말한다.
여기서 네트워크 자원이라고 하는 것은 사용자 계정, 그룹 계정, 컴퓨터, 프린터 등과 같은 주변 기기들을 말한다.
이는 관리자(Administrators)가 directory object과 그 속성(attributes)을 정의 하고 관리하도록 되어 있다.

 

Active Directory란 Windows Server에 들어 있는 Directory Service를 말한다.
Active Directory는 directory service로서 기본 기능뿐만 아니라 거대 기업의 네트워크 환경을 관리 할 수 있는 기능까지 들어 있다.

Active Directory의 directory service로서의 기본 기능을 다음과 같이 수행한다. 
 조직이나 회사의 확장이나 성장에 따라 같이 확장할 수 있는 정보 소스의 역할.
 관리자가 한 컴퓨터에서 전체 네트워크의 정보를 입력하고 관리할 수 있는 기능.
 Schema에서 정의한 룰이나 정책을 정의할 수 있는 방법을 갖춤.
 DNS(Domain Name System)이나 LDAP(Lightweight Directory Access Protocol)을 이용하는 Internet 관련

 directory object를 검색할 수 있는 방법을 제공함.

 

2. Active Directory 기능

 

Active Directory 의 전체 기능(Full capabilities)

Active Directory의 전체 기능을 이해하기 위해서는 Active Directory가 가지고 있는 기본 기능 이외에 이가 가지고 있는 다른 기능 까지도 알아 볼 필요가 있다.
이는 사용자의 현재 네트워크 환경에 있는 시스템과 서로 호환되면서 장애 발생시도에도 서비스를 계속할 수 있는 기능과 directory object에 허가 받지 않는 사용자들이 접근할 수 없도록 보호하는 기능도 들어 있다.

 

확장가능 Directory (Extensible Directory)
Active Directory가 적게는 몇 백 개 수준의 object에서 부터 몇 백 만개 의 object를 관리할 수 있는 것은 Active Directory가 기본적으로 여러 개의 섹션으로 나누어져서 관리 될 수 있도록 하는 파티션 개념을 도입했기 때문이다.
Active Directory는 여러 개의 파티션으로 이루어져 있기 때문에 회사나 조직이 성장하더라도 이에 따라 계속 확장할 수 있는 것이다.

 

스키마(Schema)- 공통된 정의 방법
Directory service를 하기 위해선 object 에 대한 기술 방법이나 이를 유형별로 구분하는 일정한 룰이 필요한 데, Active Directory는 스키마(schema)를 이용하여 각 object를 관리하고 이용한다.
스키마(Schema)가 정의하는 데로 Active Directory의 내용과 구조가 구축된다. 그리고 이 스키마 자체도 바로 Active Directory내에 포함 되어 있다.

 

Internet표준 이름 명명법- DNS를 이용
Active Directory는 Internet 이름 영역(name space) 개념인 DNS을 도입하여 사용한다.
이는 이름을 IP주소로 이름 풀이하는 방법인 데, Active Directory는 이 DNS를 이용하여 Internet에 있는 자원이나 object를 찾는다.
이는 바로 네트워크 상의 물리적 지리적 위치에 상관없이 자원이나 object의 이름으로 바로 찾을 수 있는 방법을 제공하게 되는 것이다.

 

LDAP지원(Lightweight Directory Access Protocol)
Active Directory을 검색하고 directory와 응용 프로그램간의 정보 교환을 할 때에 바로 이 LDAP 프로토콜을 사용한다.

 

한 곳에서 관리할 수 있는 기능(Single Point of Administration)
Directory를 관리한 다는 것은 네트워크 상의 자원이나 object를 끊임 없이 추가하거나, 변경하고 삭제하는 작업을 말한다.
Active Directory에서는 네트워크 상의 어떤 자원이나 object도 한 컴퓨터에서 액세스하여 관리할 수 있도록 되어 있다.
이는 관리 비용과 시간의 절약을 말하는 것이다.

 

Active Directory 의 정상 기능(Full capabilities)

 

향상된 질의/응답 기능(Enhanced Queries)
Active Directory 에는 Global catalog server에 전체 directory 에 대한 index를 만들어 둔다.
이 Global catalog server에다가 사용자는 질의 함으로서, 전 네트워크에 대한 자원이나 object를 찾을 수 있고, 이를 view해 볼 수 있다.
Global catalog server는 Active Directory가 replication(복제)될 때에 자동으로 생성되기 때문에 전 네트워크에 걸쳐 복제된 정보를 이중화로 가지고 있다.

 

결함 허용(Fault Tolerance)
Active Directory가 복제 되기 때문에 이는 한 쪽에 장애가 발생하더라도 복제된 정보를 이용해서 계속 서비스를 할 수 있기 때문에 결함허용 기능을 가지게 된다.
다시 말하며 전 네트워크 사용자는 똑 같이 복제된 데이터를 사용하기 때문에 그 중 하나에 장애가 발생하더라도 동일한 서비스를 계속 받을 수 있다는 것을 말한다.

 

보안 통제(Security Controls)
사용자나 관리자가 Active Directory를 사용하고 관리하는 것은 보안 정책(Security Policy)으로 규정된다.
Active Directory에는 ACL(Access Control List)가 있어서 directory내의 object 에 대한 정보를 연결해서 읽어 오는 것을 행위는 퍼미션이 부여된 사람 많이 할 수 있도록 통제 된다.
그리고 전체 네트워크의 자원과 object에 대한 모든 액세스 통제를 한 사람이 다 할 수는 없기 때문에 이를 여러 책임 있는 그룹에게 관리 권한과 책임을 분산하여 이양할 수도 있다.

 

호환성(Interoperability)
Active Directory는 다음과 같이 다른 운영체제나 서비스, 플랫폼(platform), 프로토콜과 문제없이 상호 운용된다.
 NT 3.51, 4.0과 같이 호환된다.
 DNS서비스를 이용하여 Internet 이름 영역 과 통합되어 운영된다.
 코어 프로토콜은 LDAP 버전 2 버전 3을 사용한다.
 ISO X.500 표준을 따르며, MS Exchange 4.0과 5.x 클라이언트가

 사용하는 NSPI(Name Service Provider Interface)도 지원한다.
 WWW을 통하여 정보를 제공할 수 있는 Internet 프로토콜인 HTTP

 (Hypertext Transfer Protocol)을 지원한다.
 NDS(Novell Directory Service)등과 같은 다른 directory service와도

 정보를 공유할 수 있다.


3. Active Directory 이름 명명법

 

Active Directory 는 분산 네트워크에 적용될 수 있도록 만들어진 directory service이다.
그러므로 이는 각 분산된 네트워크나 사용자들이 지역이나 하드웨어의 제약을 떠나서, 다국적 기업일 경우에는 각 국가가 사용하는 서버의 언어도 극복해서 구축 관리 할 수 있도록 만들어진 것이다.

 

다시 말하면 회사나 조직의 그 크기에 한계에 상관없이 적용할 수 있는 directory service이기 때문에 단일 서버를 사용하는 아주 작은 조직에서부터 수천 대의 서버에서 수 백만 개의 object를 관리해야 하는 거대 기업에 까지 이를 적용할 수 있는 것이다. 

 

이러한 분산 처리 방식의 directory service인 Active Directory의 동작 원리를 이해하기 위하여 다음과 같은 4 가지 정도의 개념을 이해하도록 하자. 
1. 표준 이름 명명법(Naming Standards) 
2. 논리적 구조 요소와 organization 그리고 이 들의 상관관계 
3. 각  컴포넌트의 물리적 구조와 동작 
4. Active Directory의 보안 특징 
5. Active Directory에서의 표준 이름 명명법(Naming Standards)

 

Active Directory Naming

 

Active Directory는 각 object 를 기준으로 하여 동작한다. 각 object는 Active Directory내에서 각각 고유한 이름을 갖게 되며 이것으로 서로 구분된다.

 

이름영역(Namespace)
Active Directory는 각 고유의 이름을 가진 object로 구성되며, 그 이름을 기술적이 용어로 이름영역(namespace)이라고 한다. 이 namespace는 일종의 경계를 포함하는 영역을 나타내는 것이다.

 

이름 풀이(Name Resolution)
이름 풀이(Name resolution)라고 하는 것은 이름을 object 나 그 이름이 나타내고 있는 정보로 번역하는 과정을 말한다. 예를 들면 전화 번호부라는 것은 전화 가입자의 이름으로 그 사람의 전화 번호와 주소에 관한 정보를 알아 낼 수 있는 이름 영역(Namespace)이라고 할 수 있는 것이다.


이와 같이 Active Directory도 object의 이름이 object 그 자체로 변환될 수 있는 이름 영역을 구성하는 것이다. 실례를 들자면, 사용자 James Smith는 Active Directory 내에서 그가 속한 domain의 이름도 풀이가(알 수 있게 되는)되는 것이다.

관리자가 Active Directory 구조를 생성할 때에, 그 컨텐츠는 논리적 계층적 구조로 만들어 져서 보관된다.
예를 들면, Tailspin Toy사는 icmarket.com로 되어 있으며, 이 회사의 생산과 국제부 그리고 마케팅 부서는 Tailspin Topy사의 이름 영역을 붙여서, 각기 manu.icmarket.com, inter.icmarket.com, 그리고 market.icmarket.com로 만들어 지며
이 것이 Active Directory내에서 논리적 계층 구조로 이름이 명명된다는 것을 말하는 것이다.

 

Active Directory Name Types
Active Directory내의 각 object의 이름에는 다음과 같은 3 가지 타입이 있다.

 

DN (Distinguished Name)
Active Directory내의 모든 object 는 DN을 가진다. James Smith 가 ICMARKET 회사의 Marketing 부서에서 근무하는 사용자라고 할 때, 이 James Smith 의 DN은 다음과 같이 표현 된다.
James Smith라는 object의 DN = James Smith@market.icmarket.com
여기서 각 부분을 살펴보면;
James Smith: 이것은 Active Directory내에 정의된 user object의 실제 이름이다.
Market: 이것은 ICMARKET사의 Marketing 부서를 나타내는 컨테이너(container)이다.
Icmarket: 이것은 Active Directory내의 ICMARKET사의 이름 영역(namespace)이다.
Com: Internet에서  일반 회사임을 나타내는 (edu, mil처럼) 컨테이너(container)이다.

 

RDN (Relative Distinguished Name)
RDN(Relative Distinguished Name)은 object의 attribute(속성)을 나타내는 이름의 한 부분을 말한다. Active Directory에서 질의를 할 때에 DN 뿐만 아니라 object의 한 속성을 가지고 찾을 수도 있다. James Smith라는 user object의 RDN은 바로 James Smith이다. 이 object의 부모(parent) object 의 RDN은 Users이다.
User Principal Name

 

UPN(User Principal Name)

UPN(User Principal Name)이란 Windows 2000에서 사용자의 로그온 이름이다. UPN은 사용자 object가 있는 컨테이너의 DNS 이름이나 user object 를 대신하는 줄인 이름인 것이다. James Smith 는 jsmith 등과 같은 UPN을 갖을 수 있을 것이다.

 

Naming Conventions (이름 명명법)
Active Directory는 다음과 같은 업계 표준인 2 가지의 이름 명명법을 사용하기 때문에 사용자나 응용프로그램이 Active Directory를 액세스 할 때에 비슷한 포맷으로 사용할 수 있다.

 

DNS (Domain Name System)
Internet 의 표준 이름 영역(namespace) 방식이 DNS이다. Active Directory는 이 DNS와 같은 이름 영역 표시법을 사용하고 또 이를 이용해서 이름을 주소로 풀이(Name resolution)해서 그 자원이 있는 장소를 찾을 수 있는 서비스를 제공하기도 한다. DNS는 계층적 구조를 가진 이름 영역 표시법이기 때문에 이를 이용하여 네트워크 상의 컴퓨터나 다른 자원들을 찾을 수 있는 방법으로 쓰이는 것이다.

 

LDAP (Lightweight Directory Access Protocol)
LDAP 버전 2 와 버전 3을 지원한다. 그리고 이는 Active Directory가 directory database와 응용 프로그램 간의 핵심 프로토콜로 사용된다.



'IT > IT자료' 카테고리의 다른 글

RAID (레이드) 레벨과 구성방식  (0) 2017.02.22
DLP  (0) 2017.02.21
Active Directory(2)  (0) 2017.02.19

1. Lock and Key ACL(Dynamic ACL)


Lock and Key ACL은 인증된 곳으로부터 오는 트래픽을 허용하기 위해 동적으로 ACL 항목을 추가하여 트래픽 필터링을 가능하게 하는 보안 기능이다.

- 기존 ACL은 관리자가 항목을 변경하지 않는 한 바뀌지 않지만, Lock and Key ACL은 사용자가 라우터에 인증한 다음에만 활성화되는 동적 ACL 항목을 추가한다. 인증 과정이 끝난 뒤, 동적 ACL 항목은 미리 설정된 시간이 지나거나 동적 항목의 최대 수명이 다 할 경우 삭제된다. 이 동적 ACL 항목이 삭제되면 라우터 인터페이스 설정은 원래대로 동작을 실시한다.

- 라우터에 인증을 하기 위해서 Telnet 패켓을 전송한다. 그 다음 라우터는 관리자가 설정한 인증 데이터베이스를 기반으로 인증을 수행한다. 이 인증 과정은 로컬 라우터에 저장되어 있는 사용자 이름/패스워드를 이용할 수 있고, 또는 인증 서버(TACACS+, RADIUS)를 이용할 수도 있다.

- 사용자가 인증에 성공되면 Telnet 세션은 닫히고 동적 ACL 항목이 추가된다. 이 동적 ACL 항목은 만료시간이 지나면 삭제되며, 그전에 관리자에 의해 삭제도 가능하다.

- 사용자가 DHCP 및 Dialer-Up 환경을 통해 인터넷에 연결되어 있다면 고정 IP 대신 유동 IP를 사용하게 된다. 이때, 사용자는 매번 다른 IP 주소를 가지고 네트워크 자원에 접근을 실시하게 된다. 이때, Lock and Key ACL를 사용하면 공격자로부터 보안 수준을 높일 수 있다.

- Lock and Key ACL은 두 개의 추가 필드를 제외하고는 Extended ACL과 동일하다.


2. Lock and Key ACL Example


R11은 Lock and Key ACL를 구성하여 Telnet을 통해 Local 인증이 성공된 사용자만 FTP에 접근을 허용하길 원한다.


1) Telnet으로 접속 하는 모든 사용자는 Telnet 접속 이후 연결이 끊어진다.

R11(config)# username cisco password cisco

R11(config)# access-list 113 dynamic FTP_USER timeout 60 permit tcp any host 172.16.1.113 eq ftp

R11(config)# access-list 113 permit tcp any host 11.11.11.11 eq telnet

R11(config)# interface serial 0/0

R11(config-if)# ip access-group 113 in

R11(config-if)# line vty 0 4

R11(config-line)# login local

R11(config-line)# autocommand access-enable host timeout 10


2) Telnet으로 접속 하는 Lock and Key ACL 사용자만 Telnet 접속 이후 연결이 끊어진다.

R11(config)# username cisco password cisco

R11(config)# username cisco autocommand access-enable host timeout 10(10분 동안 트래픽이 없으면 dynamic ACL 해제)

R11(config)# access-list 113 dynamic FTP_USER timeout 60 permit tcp any host 172.16.1.113 eq ftp(60 분후 dynamic ACL 해제)

R11(config)# access-list 113 permit tcp any host 11.11.11.11 eq telnet

R11(config)# interface serial 0/0

R11(config-if)# ip access-group 113 in

R11(config-if)# line vty 0 4

R11(config-line)# login local


3. Verifying Lock and Key ACL


- Lock and Key ACL를 구성한 R11은 사용자 로그인이 없을 경우에는 평범한 ACL로 동작을 실시한다.

- 만약, 사용자로부터 Telnet 접속 및 로컬 인증을 실시 하게 되면, 사용자에 대한 소스 트래픽을 동적으로 ACL 항목에 추가하여 동작을 실시한다.

- 위의 정보 확인을 통해 Lock and Key ACL의 동작 원리를 확인할 수 있다.

- 앞에 설정 중에 ‘R11(config)# username cisco autocommand access-enable host timeout 10’는 ‘cisco’라는 사용자에 대해서만 Lock and Key ACL에 적용되어 Telnet 연결을 종료시키고, 나머지 사용자들에 대해서는 Telnet 종료를 시키지 않는 구문이다. 그 이유는 FTP Server 접근을 위한 Lock and Key ACL 사용자 이외에도 관리목적상 R11으로 Telnet 접근을 실시하는 관리자를 위해서 위의 구문은 필요하다.

- 또한 ‘host’ 키워드를 사용하지 않으면 모든 트래픽들을 허용하는 동적 항목이 생성되기 때문에, ‘host’ 키워드를 빼먹어서는 안된다.


4. Reflexive ACL


Reflexive ACL은 Standard ACL과 Extended ACL에서 제한되었던 일부 기능을 가능하게 하였고, Extended ACL과 마찬가지로 상위 계층 세션 정보에 근거하여 IP 패켓을 필터링한다, 또한, 허용된 세션에 속하는 IP 트래픽에 대한 동적 연결 정보를 유지하여 세션 필터링도 할 수 있다.


- Reflexive ACL를 사용하면 내부 네트워크로부터 시작된 세션에 속하는 IP 트래픽을 허용하고, 외부 네트워크로부터 시작된 세션에 속하는 IP 트래픽을 거부할 수 있다. 설정은 Extended Named ACL으로만 설정이 가능하다.

- IP 상위 계층 세션이 내부 네트워크로부터 시작되어 외부 네트워크로 전송되는 경우, 새로운 임시 항목이 ACL 항목에 생성되어 외부 네트워크로부터 되돌아오는 트래픽을 허용한다. 되돌아오는 트래픽 중에 세션에 속하는 트래픽만 허용하고 나머지 다른 트래픽들은 거부된다.

- 이렇게 동작 하는 이유는 내부에서 외부 네트워크로 TCP 패켓이 나갈 때 임시 ACL 항목이 Reflexive ACL 항목 내에 생성되기 때문에 외부로 나가는 트래픽에 대응하여 내부로 들어오는 트래픽만 허용한다.

- Reflexive ACL은 기존의 ACL처럼 아무런 명시를 하지 않는 한 ‘deny any’ 처리는 실시 하지 않는다. 그 이유는 Reflexive ACL은 다른 ACL에 포함되어 동작하기 때문에, 일단 Reflexive ACL를 처리하고 나면, 라우터는 Extended ACL의 나머지 부분을 계속 처리를 한다.

- Extended Named ACL 구성 시 ‘reflect’ Command와 ‘evaluate’ Command가 사용된다.


5. Reflexive ACL Example


R1에서 Reflexive ACL를 구성하여, 내부 사용자 192.168.1.0/24가 외부로 나갔다가 되돌아오는 Telnet 트래픽을 허용하며, 외부에서 직접적으로 R1 내부 네트워크로 접근하는 Telnet 트래픽은 허용하지 않길 원한다. (Ping Test는 가능하게 하여라)

R1(config)# ip access-list extended OUTBOUND

R1(config-ext-nacl)# permit icmp any any

R1(config-ext-nacl)# permit tcp any any reflect RFX_USER

R1(config-ext-nacl)#

R1(config-ext-nacl)# exit

R1(config)# ip access-list extended INBOUND

R1(config-ext-nacl)# permit icmp any any

R1(config-ext-nacl)# evaluate RFX_USER

R1(config-ext-nacl)# exit

R1(config)# interface serial 0/0

R1(config-if)# ip access-group OUTBOUND out

R1(config-if)# ip access-group INBOUND in

Reflexive ACL은 Telnet과 같은 단일 채널의 어플리케이션만 다룰 수다는 단점을 가지고 있다. 이러한 어플리케이션은 세션이 지속되는 동안 동일한 정적 포트 하나만을 사용한다. 즉, 세션 중간에 포트가 변경되는 어플리케이션을 지원하지 못한다. 한 예로 하나의 통제 채널과 다른 하나의 데이터 채널을 사용하는(다중 채널 어플리케이션) FTP를 들수 있다. 만약, Reflexive ACL과 FTP를 사용한다면 FTP는 수동 모드인 Passive Mode로 동작을 실시해야 한다.


'IT > CISCO' 카테고리의 다른 글

CBAC(Context-based Access Control)  (0) 2017.02.18
Linux에서 ftp server 설치 및 운영 방법  (0) 2017.02.16
Linux에서 Telnet server 설치 및 운영 방법  (0) 2017.02.16
Linux에서 router 설치 및 운영 방법  (0) 2017.02.15
리눅스  (0) 2017.02.14

+ Recent posts