아래 내용은 2020 정보처리 산업기사 시나공 기본서를 공부해 요약한 내용이며
완벽하게 모든 내용을 정리한것이 아니고 제 편의껏 요약한것 입니다 보다 자세한 내용과 여러 동작에 대한 원리등이
궁금하시다면 책과 함께봐주세요
출처 : 정보처리 산업기사 필기 - 시나공 시리즈
출판사 : 길벗

1. 논리회로

 

1) 불 대수

 

불 대수
: 하나의 명제가 참 또는 거짓인가를 판단하는데 이용되는 수학적인 방법으로 영국의 불(G. Boole)에 의해 개발되었다

 

기본적인 논리함수

 

- AND : 입력 정보의 값이 모두 1일 때만 결과가 1이 된다 입력되는 값이 A, B라면 A AND B 또는 A·B로 표현한다
- OR : 입력 정보의 값 중 한 개라도 1이며 결과가 1이된다 입력되는 값이 A, B라면 A OR B 또는 A+B로 표현한다
- NOT : 입력되는 정보의 반대값이 출력된다 입력되는 값이 항상 1개이며 입력되는 값이 A라면 NOT A 또는 A'로 표현

           한다

 

불 대수의 기본 공식

 

- 교환법칙 : 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)' = A'·B', (A·B)' = A'+B'
- 복원법칙 : A" = A

 

*(논리식의 간소화)

 

2) 논리 게이트

 

논리 게이트
: 논리회로를 구성하는 기본적인 전자소자로 0또는 1을 입력과 출력으로 사용한다

 

3) 조합논리회로

 

조합논리회로
:임의의 시간에서의 출력이 이전의 입력에는 관계없이 현재의 입력조합으로부터 직접결정되는 논리회로이다

 

조합논리회로의 종류

 

- 반가산기 : 2진수 두 개를 덧셈하여 합과 자리올림수를 구하는 회로이다
- 전가산기 : 뒷자리에서 올라온 자리올림수를 포함하여 1 bit 크기의 2진수 3자리를 더하여 합과 자리올림수를 구하는

                회로이다
- 병렬가산기 : n bit로 된 2진수 A, B에 대한 덧셈을 n개의 전가산기를 이용하여 구성한 실질적인 가산기이다
- 반감산기 : 1 bit짜리 2진수 2자리에 대한 감산을 하는 회로이다
- 전감산기
- 디코더 : n bit의 Code화된 정보를 그 Code의 각 bit 조합에 따라 2ⁿ개의 출력으로 번역하는 회로이다
- 인코더 : 디코더의 반대 기능을 한다
- 멀티플렉서 : 2ⁿ의 입력선 중 1개를 선택하여 그 선으로부터 입력되는 값을 1개의 출력선으로 출력시키는 회로이다
- 디멀티플렉서 : 1개의 입력선으로 들어오는 정보를 2ⁿ개의 출력선 중 1개를 선택하여 출력하는 회로이다
- 다수결회로
- 비교기

 

4) 순서논리회로

 

순서논리회로
: 외부로부터의 입력과 현재 상태에 따라 출력이 결정된다

 

순서논리회로의 종류

 

- 플립플롭
- 카운터
- 레지스터
- RAM
- CPU

 

플립플롭(FF, Flip-Flop)의 특징

 

- 두 개의 NAND 또는 NOR 게이트를 이용하여 구성한다
- 전원이 공급되고 있는 한 상태의 변화를위한 외부 신호가 발생할 때까지 현재의 상태를 그대로 유지하는 논리회로이다

 

RS 플립플롭(Reset-Set FF)
: 모든 플립플롭의 기본으로 S와 R선의 입력을 조절하여 임의의 bit 값을 그대로 유지시키거나 무조건 0 또는 1의 값을 기억시키기 위해서 사용되는 플립플롭이다

 

D 플립플롭
: RS FF의 R선에 인버터를 추가하여 S선과 하나로 묶어서 입력선을 하나만 구성한 플립플롭이며 입력하는 값을 그대로 저장하는 기능을 수행한다

 

JK 플립플롭
: RS FF에서 S=R-1일 떄 동작되지 않는 결점을 보완한 플립플롭이며 입력선 S와 R에 AND 게이트 2개를 추가하여 JK FF의 입력선 J와 K로 사용한다

 

T 플립플롭
: JK FF의 두 입력선을 묶어서 한 개의 입력선으로 구성한 플립플롭이다

 

마스터-슬레이브 플립플롭(주종 플립플롭)
: 출력 측의 일부가 입력 측에 궤환되어 유발되는 레이스 현상을 없애기 위해 고안된 플립플롭이다

 

2. 자료의 표현

 

1) 자료 구성의 단위

 

자료 구성의 단위

 

- 비트(Bit) : 자료 표현의 최소 단위
- 니블(Nibble) : 4개의 Bit가 모여 구성
- 바이트(Byte) : 문자를 표현하는 최소 단위 8개의 Bit가 모여 1Byte
- 워드(Word) : 컴퓨터가 한 번에 처리할 수 있는 명령 단위, 반워드(Half-Word)2Byte, 전워드(Full-Word)4Byte, 더블

                    워드 (Double-Word)8Byte
- 필드(Field) : 파일 구성의 최소 단위이다
- 레코드(Record) : 하나 이상의 관련된 필드가 모여서 구성된다
- 블록(Block), 물리 레코드(Physical Record) : 하나 이상의 논리 레코드가 모여서 구성된다
- 파일(File) : 프로그램 구성의 기본 단위로 같은 종류의 여러 레코드가 모여서 구성된다
- 데이터베이스(Database) : 여러 개의 관련된 파일의 집합이다

 

2) 수의 표현 및 진법 변환

 

진법

 

- 컴퓨터 내부에서는 2진법을 사용하여 모든 연산을 수행한다
- 2진수 외에 컴퓨터를 연구할 때 자주 사용하는 진법은 8진수와 16진수이다

 

진법의 종류

 

- 2진법(Binary) : 0과 1 두 개의 숫자로 표현한다
- 8진법(Octal) : 0~7까지의 숫자로 표현하며 2진수 3자리를 묶어서 하나의 수로 표현한다
- 10진법(Decimal) : 0~9까지의 숫자로 표현한다
- 16진법(Hexadecimal) : 0~9까지의 숫자와 10~15까지를 의미하는 A~F까지의 문자로 표현한다

 

*(다른 진법으로의 변환 익히기)

 

3) 보수

 

보수

 

- 컴퓨터가 기본적으로 수행하는 덧셈 회로를 이용하여 뺄셈을 수행하기 위해 사용한다
- r진법에는 r의 보수와 r-1의 보수가 있다

 

보수를 이용한 뺄셈
: A-B는 A+(-B)이므로 B에 대한 보수를 구하여 덧셈 연산으로 뺄셈을 한다

- 1의 보수 이용
- 2의 보수 이용

 

4) 자료의 내부적 표현 - 고정 소수점 표현

 

2진 연산

 

- 음수의 표현 방법 : 부호와 절대치, 부호와 1의 보수, 부호와 2의 보수

 

10진 연산

 

- 언팩(Unpack)연산 : 연산이 불가능하고 데이터의 입출력에 사용된다
- 팩(Pack)연산 : 연산이 가능하고 데이터의 입출력이 불가능하다

 

5) 자료의 내부적 표현 _ 부동 소수점 표현

 

부동 소수점 방식의 특징

 

- 매우 큰 수나 작은수 매우 정밀한 수를 적은 비트로 표현할 수 있다
- 고정 소수점 방식에 비해 연산 시간이 많이 걸린다
- 지수부와 가수부를 분리하는 정규화 과정이 필요하다
- 과학이나 공학 또는 수학적인 응용에 주로 사용된다

 

부동 소수점 수의 연산 방법

 

- 덧셈, 뺄셈 : 0인지 여부 조사 -> 가수의 위치 조정 -> 가수부 값끼리 더하거나 뺀다 -> 결과를 정규화한다
- 곱셈 : 0인지 여부 조사 -> 지수를 더한다 -> 가수를 곱한다 -> 결과를 정규화한다
- 나눗셈 : 0인지 여부 조사 -> 부호 결정 -> 피제수가 제수보다 작게 피제수의 위치를 조정한다 -> 지수의 뺼셈을한다

             -> 가수의 누눗셈을 한다

 

6) 자료의 외부적 표현

 

자료의 외부적 표현이란
: 처리된 결과를 사람이 확인할 수 있도록 출력할 때의 문자를 표현하는 방식이다

 

자료의 외부적 표현의 종류

 

- BCD(Binary Coded Decimal, 2진화 10진 코드)
- ASCII(American Standard Code for Information Interchange)
- EBCDIC(Extended BCD Interchange Code, 확장 2진화 10진 코드)

 

7) 기타 자료의 표현 방식

 

BCD 코드

 

- 10진수 1자리의 수를 2진수 4Bit로 표현한다
- 4Bit의 2진수 각 Bit가 8(2³), 4(2²), 2(2¹), 1의 자리값을 가지므로 8421 코드라고도 한다
- 대중적인 가중치 코드이다

 

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

 

- BCD +3 즉 BCD 코드에 3(0011₂)을 더하여 만든 코드이기 때문에 모든 비트가 동시에 0이 되는 경우는 없다
- 대표적인 자기 보수 코드이며 비가중치 코드이다

 

Gray 코드

 

- BCD 코드의 인접하는 비트를 XOR 연산하여 만든 코드이다
- A/D 변환기에 사용한다
- 1Bit만 변환시켜 다음 수치로 증가시키기 때문에 하드웨어적인 오류가 적다

 

패리티 검사 코드

 

- 1Bit의 오류만 검출할 수 있다
- 1의 개수에 따라 짝수패리티와 홀수패리티 방법이 있다

 

해밍코드

 

- 오류를 스스로 검출하여 교정이 가능한 코드이다
- 해밍코드 중 1, 2, 4, 8, 16,···, 2ⁿ번째는 오류 검출을 위한 패리티 비트이다

 

코드의 분류

- 가중치코드 : BCD, 2421, 84-2-1, 51111, Ring-Counter
- 비가중치코드 : 3초과(Excess-3), Gray, Jonson, 2-out-of-6, 3-out-of-5
- 자기 보수 코드 : 3초과(Excess-3), 2421, 51111, 84-2-1
- 오류 검출용 코드 : 해밍코드, 패리티 검사 코드, Binquinary, Ring-Counter, 2-out-of-6, 3-out-of-5

 

3. 프로세서

 

1) 중앙처리장치

 

중앙처리장치

:사람의 두되와 같이 컴퓨터 시스템에 부착된 모든 장치의 동작을 제어하고 명령을 실행하는 장치이다

- 중앙처리장치는 제어장치, 연산장치, 레지스터 그리고 이들을 연결하여 데이터를 전달하는 버스로 구성되어 있다

 

제어장치
: 모든 장치들의 동작을 지시하고 제어하는 장치이다


- 명령 레지스터
- 명령 해독기(Decoder)
- 제어신호 발생기, 부호기(Encoder)
- 제어 주소 레지스터(CAR)
- 제어 버퍼 레지스터(CBR)
- 제어 기억장치
- 순서 제어 모듈
- 순차 카운터(Sequence counter)

 

연산장치
: 산술 연산, 논리 연산, 관계 연산, 이동 등을 수행한다(가산기, 누산기, 보수기, 데이터 레지스터등)

 

레지스터
: CPU 내부에서 처리할 명령어나 연산의 중간 결과값 등을 일시적으로 기억하는 임시 기억장치이다

 

- 프로그램 카운터(PC) : 다음에 실행할 명령어의 번를 기억하는 레지스터
- 명령 레지스터(IR) : 현재 실행 중인 명령의 내용을 기억하는 레지스터
- 누산기(AC) : 연산된 결과를 일시적으로 저장하는 레지스터
- PSWR, 상태 레지스터, 플래그 레지스터 : 시스템 내부의 순간순간의 상태를 기록하고 저장하고 있는 레지스터
- 메모리 주소 레지스터(MAR) : 데이터의 번지를 기억하는 레지스터
- 메모리 버퍼 레지스터(MBR) : 데이터가 잠시 기억되는 레지스터
- 베이스 레지스터(Base Register) : 명령이 시작되는 시작 번지를 기억하고 있는 레지스터
- 인덱스 레지스터(Index Register) : 주소의 변경, 서브루틴 연결 및 프로그램에서의 반복 연산의 횟수를 세는 레지스터
- 데이터 레지스터(Data Register) : 연산에 사용될 데이터를 기억하는 레지스터
- 시프트 레지스터(Shift Register) : 저장된 값을 왼쪽 또는 오른쪽으로 1Bit씩 자리를 이동시키는 레지스터
- 메이저 스테이터스 레지스터(Major status Register): CPU의 메이저 상태를 저장하고 있는 레지스터

 

버스
: 버스를 통해 전달되는 제어 신호, 어드레스 신호 및 데이터 신호의 상호 시간적 관계가 잘 유지되어야 한다

 

- 번지 버스
- 자료 버스
- 제어 버스

 

2) 명령어(Instrution)

 

명령어의 구성

 

- 연산자부(Operation Code 부) : 수행해야 할 동작에 맞는 연산자를 표시한다
- 모드(Mode)부 : 주소부의 유효 주소가 결정되는 방법을 지정한다
- 자료(Operand)부 : 실제 데이터에 대한 정보를 표시하는 부분이다

 

명령어 설계시 고려사항

 

- 연산자의 종류
- 명령어 형식
- 주소지정방식
- 데이터 구조
- 인스트럭션 세트의 효율성을 높이기 위하여 고려할 사항 : 기억공간, 사용빈도, 주소지정방식

 

연산자(Operation Code)의 기능

 

- 함수 연산 기능
수치적인 산술 연산 : ADD, SUB, MUL, DIV, 산술 Shift 등
비수치적인 논리 연산 : NOT, AND, OR, XOR, 논리적 Shift, Rotate, Complement, Clear

 

- 자료 전달 기능
Load : 기억장치에 기억되어 있는 정보를 CPU로 꺼내오는 명령
Stor : CPU에 있는 정보를 기억장치에 기억시키는 명령
MOVE : 레지스터 간에 자료를 전달하는 명령
Push : 스택에 자료를 저장하는 명령
Pop : 스택에서 자료를 꺼내오는 명령

 

- 제어기능 : 무조건 분기명령, 조건 분기 명령, Call(서브루틴 호출), Return(복귀)

- 입출력기능 : INPUT, OUTPUT

 

3) 연산(Operation)

 

AND(Masking Operation)

 

- 특정 문자 또는 특정 비트를 삭제 시키는 연산으로 Masking 연산이라고도 한다
- 삭제할 부분의 비트를 0과 AND 시켜서 삭제하는데 대응시키는 0인 비트를 MASK Bit라 한다

 

OR(Selective-Set)

 

- Selective-Set 연산이라고도 한다
- 삽입하거나 세트시킬 비트에 삽입할 문자 코드 또는 1을 OR 시킨다

 

XOR(Compare, 비교)

 

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

 

NOT(Complement, 보수)

 

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

 

논리 Shift

 

- 왼쪽 또는 오른쪽으로 1Bit씩 자리를 이동시키는 연산으로 데이터의 직렬 전송에 사용한다

 

Rotate

 

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

 

산술 Shift

 

- 부호를 고려하여 자리를 이동시키는 연산으로 2ⁿ으로 곱하거나 나눌 때 사용한다
- 왼쪽으로 n Bit Shift하면 원래 자료에 2ⁿ을 곱한 것과 같다
- 오른쪽으로 n Bit Shift하면 원래 자료를 2ⁿ으로 나눈 것과 같다
- 홀수를 오른쪽으로 한 번 Shift하면 0.5의 오차가 발생한다

 

4) 명령어 형식

 

명령어
: 명령어는 크게 OP-Code부와 Operand(자료부)로 구성되는 Operand부의 개수에 따라 네 가지 명령어 형식이 있다

 

3 주소 명령어

 

- Operand부가 세 개로 구성된다
- 연산의 결과는 주로 Operand 1에 기록한다
- 연산 시 원래의 자료를 파괴하지 않는다

 

2 주소 명령어

 

- Operand부가 두 개로 구성된다
- 가장 일반적으로 사용되는 명령어 형식이다
- 실행 속도가 빠르고 기억 장소를 많이 차지하지 않는다
- 원래의 자료가 파괴된다

 

1 주소 명령어

 

- Operand부가 한 개로 구성된다
- 누산기를 이용한다

 

0 주소 명령어

 

- 스택머신이라고도 한다
- 인스트럭션 수행시간이 짧다
- 스택을 사용한 컴퓨터에서 수식을 계산하기 위해서는 수식을 Postfix 형태로 변경해야한다

 

Stack의 응용 분야

 

- 0 주소 명령어 형식의 자료 저장소
- 부 프로그램 호출 시 복귀주소
- 재귀(Recursion) 프로그램의 순서 제어
- 인터럽트가 발생시의 복귀주소
- 컴파일러를 이용한 언어 번역시
- 후위 표기법으로 표현된 산술식을 연산할때

 

5) 주소지정방식(Adressing Mode)

 

주소 설계 시 고려 사항

 

- 표현의 효율성 : 빠르게 접근하고 주소 지정에 적은 비트 수를 사용할 수 있도록 다양한 어드레스 모드를 사용할 수 있

                       어야 한다
- 사용의 편리성 : 다양하고 융통성 있는 프로그램 작업을 위해 포인터, 프로그램 리로케이션 등의 편의를 제공하여야 한

                       다
- 주소공간과 기억공간의 독립성 : 프로그램 상에서 사용한 주소를 변경 없이 실제 기억공간 내의 주소로 재배치할 수 있

                                            도록 서로 독립적이여야 한다

 

암시적(묵시적) 주소지정방식(Implied Mode)

 

- 명령 실행에 필요한 데이터의 위치를 지정하지 않고 누산기나 스택의 데이터를 묵시적으로 지정하여 사용한다

 

즉시적 주소지정방식(Immediate Mode)

 

- 명령어 자체에 실제 데이터를 가지고 있는 방식이다
- 별도의 기억장소를 액세스하지 않고 실행 속도가 빠르다

 

직접 주소지정방식(Direct Mode)

 

- Operand부에 실제 사용할 데이터의 주소를 표현
- 주소 길이에 제약을 받는다

 

간접 주소지정방식(Indirect Mode)

 

- Operand부에 실제 데이터의 주소가 저장된 곳의 주소를 표현한다
- 최소한 주기억장치를 두 번 이상 접근한다
- 긴 주소에 접근 가능한 방식이다

 

계산에 의한 주소지정방식

 

- 상대 주소 : 명령어의 주소 부분 + PC
- 베이스 레지스터 : 명령어 주소 부분 + Base Register
- 인덱스 레지스터 : 명령어의 주소 부분 + Index Register

 

4. 명령 실행과 제어

 

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

 

마이크로 오퍼레이션의 정의
: 한 개의 Clock 펄스 동안 실행되는 기본 동작으로 모든 마이크로 오퍼레이션은 CPU의 Clock 펄스에 맞춰 실행된다

 

마이크로 사이클 타임(Micro Cycle Time)
: 한 개의 Micro Operation을 수행하는데 걸리는 시간

 

마이크로 사이클 타임 부여 방식

 

- 동기 고정식(Synchronous Fixed)
모든 마이크로 오퍼레이션 중에서 동작시간이 가장 긴 마이크로 오퍼레이션의 동작시간을 Micro Cycle Time이라 한다
모든 마이크로 오퍼레이션의 동작시간이 비슷할 때 유리한 방식이다

 

- 동기 가변식(Synchronous Variable)
각 그룹별로 서로 다른 Micro Cycle Time을 정의하는 방식이다
마이크로 오퍼레이션 수행시간이 현저한 차이를 나타낼 때 사용한다

 

- 비동기식(Asynchronous)
모든 마이크로 오퍼레이션에 대하여 서로 다른 Micro Cycle Time을 정의하는 방식이다

 

2) 메이저 스테이트(Major State)

 

메이저 스테이트의 정의
: 현재 CPU가 무엇을 하고 있는가를 나타내는 상태로서 CPU가 무엇을 위해 주기억장치에 접근하느냐에 따라 Fetch, Indirect, Execute, Interrupt 이렇게 네 개의 상태로 나뉜다

 

메이저 스테이트의 변천과정

 

인출 단계(Fetch Cycle)

 

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

  저 수행되는 동작이다

 

간접 단계(Indirect Cycle)

 

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

 

실행 단계(Execute Cycle)

 

- Fetch 단계에서 인출하여 해석한 명령을 실행하는 단계이다
- Execute 단계에서는 플래그 레지스터의 상태 변화를 검사하여 Interrupt 단계로 변천할 것인지를 판단한다

 

인터럽드 단계(Interrupt Cycle)

 

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

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

 

3) 주요 명령의 마이크로 오퍼레이션

 

AND ( AC <- AC ∧ M[AD )
: AND는 AC와 메모리의 내용을 AND하여 결과를 AC에 저장하는 연산명령이다

 

ADD ( AC <- AC + M[AD] )
: ADD는 AC와 메모리의 내용을 더하여 결과를 AC에 저장하는 연산 명령이다

 

LDA ( AC <- M[AD] )
: LDA는 메모리의 내용을 AC로 가져오는 명령이다

 

STA ( M[AD] <- AC )
: STA는 AC의 내용을 메모리에 저장하는 명령이다

 

BUN
: BUN은 PC에 특정한 주소를 전송하여 실행 명령의 위치를 변경하는 무조건 분기 명령이다

 

BSA
: BSA는 복귀주소를 저장하고 부 프로그램을 호출하는 명령이다

 

ISZ
: ISZ는 메모리의 값을 읽어 그 값을 1 증가시킨 후 음수에서 시작한 그 값이 0이면 현재 명령을 건너 띄어 다음 명령으

  로 이동한다

 

4) 제어기의 구현

 

제어 데이터
: 제어장치가 제어 신호를 발생하기 위한 자료

 

제어 데이터 종류

 

- 메이저 스테이트 사이의 변천을 제어하는 데이터
- 중앙처리장치의 제어점을 제어하는 데이터
- 인스트럭션의 순서를 결정하는데 필요한 제어 데이터

 

제어기의 구현

 

- 고정배선 제어장치(Hard-wired Control Unit)
조합논리회로를 설계하는 해당 제어점에 연결하는 방식이다
Hardware적인 구성 방법이다 고속이며 회로 구성이 복잡하다

 

- 마이크로 프로그래밍 기법(Micro Programmed Control Unit)
내부 제어 신호를 여러 가지 마이크로 인스트럭션으로 작성하는 것이다
Software적인 구성방법이다 펌에워를 이용하는 방식이며 저속이다

마이크로 명령의 형식

- 수평 마이크로 명령(Horizontal Micro Instruction)
- 수직 마이크로 명령(Vertical Micro Instruction)
- 나노 명령(Nano Instruction)

 

5. 입력 및 출력

 

1) 입출력의 기본

 

입출력장치의 구성

 

- 입출력 제어장치
입출력장치와 컴퓨터 사이의 자료 전송을 제어한다
데이터 버퍼 레지스터를 이용하여 두 장치 간의 속도 차를 조절한다

 

- 입출력 인터페이스
내부장치(주기억장치, CPU)와 외부 입출력장치 사이에 정보를 원활하게 전송하기 위한 방법이다

 

- 입출력 버스
데이터버스, 주소버스, 제어버스

 

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

 

 

비동기 데이터 전송
: 두 개의 독릭적인 장치 사이의 비동기적인 데이터 전송을 이루기 위해서는 데이터 전송시각을 알기 위한 제어 신호를

 서로 교환하여 송수신 상태를 서로 맞추어야 한다

 

- 스토르브 펄스
- 핸드셰이킹

 

스풀링(Spooling)

 

- 디스크에 입출력할 데이터를 모았다가 나중에 한꺼번에 입출력한다
- 여러 작업을 병행 수행할 수 있도록 하여 다중 프로그래밍 시스템의 성능 향상을 가져온다
- 디스크 일부를 매우 큰 버퍼처럼 사용하며 큐 방식의 입출력을 수행한다

 

2) 입출력 제어 방식

 

- Programmed I/O
CPU가 계속 Flag를 검사

 

- Interrupt I/O
CPU가 계속 Flag를 검사하지 않고 입출력 장치의 요구가 있을 때 데이터를 전송하는 제어방식이다

 

- DMA(Direct Memory Access)에 의한 I/O
CPU를 거치지 않고 메모리와 입출력 장치가 직접 통신
Cycle Steal 방식을 이용하여 데이터를 전송한다


(Cycle Steal이란 채널과 CPU가 주 기억 장치를 동시에 Access할 때 우선 순위를 데이터 채널에게 주는 방식이다)

 

- Channel에 의한 I/O

CPU 관여 없이 주 기억 장치와 입출력장치 사이에서 입출력을 제어
DMA 방법으로 입출력을 수행한다


(Selector Channel : 고속 입출력, 장치 1개의 장치를 관리
(Multiplexer Channel : 저속 입출력 장치, 동시에 여러 개의 입출력 장치를 제어한다
(Block Multiplexer Channel : 고속 입출력장치를 제어하는 채널, 동시에 여러 개의 입출력 장치를 제어한다

 

3) 인터럽트의 개념

 

인터럽트의 정의

 

- 프로그램을 실행하는 도중에 예기치 않은 상황이 발생한 경우
- 현재 실행 중인 작업을 잠시 중단하고 발생된 상황을 우선 처리한 후 실행 중이던 작업으로 복귀하는 것을 말한다

인터럽트 종류 및 발생 원인

 

외부 인터럽트

 

- 전원 이상 인터럽트(Power Fail Interrupt)
: 정전이 되거나 전원 이상이 있는 경우

 

- 기계 착오 인터럽트(Machine Check Interrupt)
: CPU의 기능적인 오류 동작이 발생한 경우

 

- 외부 신호 인터럽트(External Interrupt)
: 타이머에 의해 규정된 시간을 알리는 경우, 키보드로 인터럽트 키를 누른 경우, 외부 장치로부터 인터럽트 요청이 있는 경우

 

- 입출력 인터럽트(Input-Output Interrupt)
: 입출력 Data의 오류나 이상 현상이 발생한 경우, 입출려 장치가 데이터의 전송을 요구하거나 전송이 끝났음을 알릴 경우

 

내부 인터럽트

 

- 프로그램 검사 인터럽트(Program Check Interrupt)
: 0으로 나누기가 발생한 경우, Overflow 또는 Underflow가 발생한 경우, 프로그램에서 명령어를 잘못 사용한 경우, 부당한 기억장소의 참조와 같은 프로그램 상의 오류

 

소프트웨어 인터럽트

 

- SVC 인터럽트(SuperVisor Call Interrupt)
: 사용자가 SVC 명령을 써서 의도적으로 호출한 경우, 복잡한 입출력 처리를 해야 하는 경우, 기억장치 할당 및 오퍼레이터와 대화를 해야 하는 경우

 

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

 

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

 

인터럽트의 동작 원리(수행순서)

 

- 인터럽트 요청 신호 발생
- 현재 수행중인 명령을 완료하고, 상태를 기억시킨다
- 인터럽트를 요청한 장치를 식별
- 인터럽트 서비스 루틴을 실행한다
- 보존한 프로그램 상태를 복귀
- 중단된 프로그램 실행 재개

 

4) 인터럽트 우선순위(Priority)체제

 

인터럽트 우선순위
: 전원이상 -> 기계 착오 -> 외부 신호 -> 입출력 -> 명령어 잘못 -> 프로그램 -> SVC

 

인터럽트 우선순위 체제의 목적과 기능

 

- 하나 이상의 인터럽트가 발생하였을 때 먼저 서비스할 장치를 결정
- 각 장치에 우선순위를 부과하는 기능
- 인터럽트를 요청한 장치의 우선 순위를 판별하는 기능
- 우선 순위가 높은 것을 먼저 처리할 수 있는 기능

 

소프트웨어적인 인터럽트 우선순위 판별 방법 (Polling)

 

- 인터럽트 요청 플래그를 차례로 검사
- 속도가 느리지만 경제적이고 회로가 간단하며 융통성이 있다

 

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

 

- 반응 속도가 빠르고 비싸고 회로가 복잡하며 융통성이 없다
- 직렬 우선순위 부여 방식 : 데이지 체인(Daisy-chain)방식
- 병렬 우선순위 부여 방식 : Mask Register를 사용한다

 

6. 기억장치

 

1)기억장치의 개요

 

기억장치의 분류

 

 

기억장치의 계층 구조

 

 

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

 

- 기억용량
- Access Time : 읽기 요청이 발생한 시간부터 정보를 꺼내서 사용 가능할 때까지의 시간이다
- Cycle Time : 기억장치에 읽기 신호를 보낸 후 다시 읽기 신호를 보낼 수 있을 때까지의 시간
- Bandwidth(대역폭, 전송률) : 메모리로부터 또는 메모리까지 1초 동안 전송되는 최대한의 정보량

 

2) 주기억장치

 

ROM(Read Only Memory)

 

- 읽기만 가능하고 쓰기는 불가능한 기억장치
- 전원이 꺼져도 기억된 내용이 지워지지 않는 비휘발성 메모리다

 

ROM의 종류와 특징

 

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

 

- PROM
: PROM 프로그램 장치라는 특수 장비를 이용하여 비어 있는 ROM에 사용자가 한 번만 내용를 기입할 수 있다

 

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

 

- EEPROM
: 전기적 특성을 이용하여 기록된 정보의 일부를 바꿀 수 있는 ROM

 

- EAROM
: 전기적인 방법을 이용하여 기록된 내용을 여러번 수정하거나 새로운 내용을 기록할 수 있는 ROM

 

RAM(Random Access Memory)

 

- 자유롭게 읽고 쓸 수 있는 기억장치로 RWM이라고도 한다
- 현재 사용중인 프로그램이나 데이터가 저장되어있다
- 전원이 꺼지면 기억된 내용이 모두 사라지는 휘발성 메모리다

 

DRAM과 SRAM의 특징

 

 

자기코어
: 전류 일치 기술에 의하여 기억장소를 선별한다

 

3) 보조기억장치

 

보조기억장치의 개념
: 주기억장치의 단점을 보완하기 위한 기억장치이며 주기억장치에 비해 속도는 느리지만 전원이 차단되어도 내용이 그대로 유지되고 저장 용량이 크다는 장점이 있다

보조기억장치의 일반적인 특징

 

- 중앙처리장치와 직접 자료 교환이 불가능하다
- 접근 시간(Acess Time)이 오래 걸린다

 

자기 테이프(Magnetic Tape)
: 주소의 개념이 없고 처음부터 차례대로 처리하는 순차 처리만 할 수 있는 대용량 저장 매체이다

- 순차 처리만 가능하다
- 블록 단위로 데이터를 전송하며 블록과 블록 사이에는 GAP이 있다

 

자기 디스크(Magnetic Disk)
: 자성 물질을 입힌 금속 원판을 여러 장 겹쳐서 만든 기억 매체로 용량이 크고 접근 속도가 빠르다

자기 디스크의 구조

 

- 트랙(Track) : 디스크 표면에서 회전축을 중심으로 데이터가 기록되는 동심원이다
- 섹터(Sector) : 트랙들을 일정한 크기로 구분한 부분이며 정보 기록의 기본 단위이다
- 실린더(Cylinder) : 서로 다른 면들에 있는 동일 위치의 트랙들의 모임이다

 

자기 드럼(Magnetic Drum)
: 원통 표면에 Track과 Sector를 구성하고 각 Track마다 고정된 R/W Head를 두고 있어 자기 디스크에 비해 속도가 빠르다

 

4) 연관기억장치, 복수 모듈 기억장치

 

연관기억장치(Associative Memory)
: 기억장치에서 자료를 찾을 때 주소에 의해 접근하지 않고 기억된 내용의 일부를 이용하여 Access할 수 있는 기억장치이다

 

복수 모듈 기억장치

 

- 주기억장치와 CPU의 속도 차이 문제점을 개선한다
- 기억장치의 버스를 시분할하여 사용한다
- 기억장소의 접근을 보다 빠르게 한다

 

메모리 인터리빙

 

- 기억장치를 각 모듈이 순차적으로 번갈아 가며 접근하는 방법이다
- 대역폭을 효율적으로 높일 수 있다
- 캐시 기억장치, 고속 DMA 전송 등에서 많이 사용된다

 

5) 캐시 메모리(Cache Memory)

 

캐시 메모리

 

- CPU의 처리 속도와 주기억장치의 접근 속도 차이를 줄이기 위해 사용한다
- 주기억장치를 접근하느 횟수가 줄어듦으로써 컴퓨터의 처리 속도가 향상된다

   캐시 설계시 고려할 사항

- 캐시의 크기
- 전송 Block Size
- 교체 알고리즘

 

매핑 프로세스(Mapping Process)

 

- 직접 매핑(Direct Mapping) : 간단하고 구현 비용이 적게들지만 적중률이 낮아질 수 있다
- 어소시에이티브 매핑(Associative Mapping, 연관매핑) : 직접 매핑 방식의 단점을 보완한 방식이다
- 세트-어소시에이티브 매핑(Set-Associative Mapping) : 직접 매핑과 연관 매핑의 장점만을 취한 방식이다

 

캐시의 적중률

 

- 적중률 = (적중횟수 / 총 접근 횟수)로 계산한다
- 미스율 = 1 - (적중률)

 

6) 가상기억장치(Virtual Memory)

 

가상기억장치
: 기억 용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용할 수 있어 사용자는 프로그램의 크기에 제한 받지 않고 프로그램 실행이 가능하다

 

가상기억장치의 특징

 

- 소프트웨어적인 방법으로 보조기억장치를 주기억장치처럼 사용
- 보조기억장치 중 디스크와 같은 DASD 장치에서 가능

 

가상기억장치의 관리 기법

 

- 페이징 기법 : OS가 보조기억장치에 있는 프로그램을 동일 크기의 블록으로 나눈어서 관리하는 기법
- 세그먼트 기법 : 사용 자가 보조기억장치에 있는 프로그램을 가변적인 크기으 블록으로 나누어서 관리하는 기법

 

기억장치의 관리 전략

 

- 반입(Fetch)전략
: 보조기억장치에 보관중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 결정하는 전략으로 요구반입과 예상반입이 있다

 

- 배치(Placement) 전략
: 새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인지를 결정하는 전략으로 최초접합(First Fit), 최적접합(Best Fit), 최악접합(Worst Fit)이 있다

 

- 교체(Replacement) 전략
: 새로운 프로그램을 주기억장치에 배치하려고 할때 이미 사용되고 있는 페이지 프레임 중에서 어느 하나를 선택하여 빈 페이지 프레임을 만들어 줄 것인지를 결정하느 전략이다

 

주소 매핑(주소 교환)

- 주소 매핑은 가상주소를 실기억주소로 변환하는 작업이다

 

'자격증 공부!' 카테고리의 다른 글

정보처리 산업기사 필기(데이터베이스)  (0) 2020.08.26
아래 내용은 2020 정보처리 산업기사 시나공 기본서를 공부해 요약한 내용이며
완벽하게 모든 내용을 정리한것이 아니고 제 편의껏 요약한것 입니다 보다 자세한 내용과 여러 동작에 대한 원리등이
궁금하시다면 책과 함께봐주세요
출처 : 정보처리 산업기사 필기 - 시나공 시리즈
출판사 : 길벗

1. 데이터베이스의 개념

 

1)정보 시스템

 

자료(Data) : 단순한  관찰, 측정을 통해 수집된 사실이나 값

정보(Information) : 자료를 가공처리한 결과

 

정보 시스템의 정의

: 한 조직체에 필요한 Data를 수집, 저장해 두었다가 필요 시에 처리해서 의사결정에 유용한 정보를 생성하고 분배하는 수단

 

자료 처리 시스템

: 일과처리 시스템, 온라인 실시간 처리 시스템, 분산 처리 시스템

 

데이터 웨어하우스(Data Warehouse)

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

 

2)데이터베이스의 개념

 

데이터베이스의 정의

 

- 통합된 데이터(Integrated Data)

- 저장된 데이터(Stored Data)

- 운영 데이터(Operational Data)

- 공용 데이터(Shared Data)

 

데이터베이스의 특징

 

- 실시간 접근성(Real-Time Accessbility)

- 계속적인 변화(Continuous Evolution) 

- 동시 공용(Concurrent Sharing)

- 내용에 의한 참조(Content Reference) 

 

3) DBMS의 기능

 

DBMS의 발전 배경

 

- 종속성으로 인한 문제점

- 중복성으로 인한 문제점

 

DBMS의 필수 기능

 

- 정의(Definition)

- 조작(Manipulation)

- 제어(Control)

 

DBMS의 장점

 

- 데이터의 중복을 피할 수 있어 기억공간이 절약된다

- 저장된 자료를 공동으로 이용할 수 있다

- 데이터의 일관성을 유지할 수 있다

- 데이터의 무결성을 유지할 수 있다

- 보안을 유지할 수 있다.

- 데이터를 표준화할 수 있다

 

4) 스키마(Schema)

 

스키마의 정의

: 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술

 

스키마의 3계층

 

- 내부 스키마(Internal Schema)       : 물리적 저장장치의 입장

- 개념 스키마(Conceptual Schema)  : 데이터베이스의 전체적인 논리적 구조

- 외부 스키마(External Schema)      : 사용자나 응용 프로그래머

 

5) 데이터베이스 언어

 

- 데이터 정의 언어(DDL) : 데이터 베이스를 구축(정의)하거나 수정할 목적으로 사용하는 언어

- 데이터 조작 언어(DML) : 사용자로 하여금 데이터를 처리할 수 있게 한다

- 데이터 제어 언어(DCL) : 무결성, 보안 및 권한 제어, 회복 등을 하기 위한 언어이다

 

6) 데이터베이스 사용자

(DBA, 응용 프로그래머, 일반 사용자 )

 

- DBA(DataBase Administrator) : 데이터베이스 시스템의 모든 관리와 운영에 대한 책임을 지고 있는 사람이나 그룹

- DBA의 역할

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

   ( 책임 행정시스템 감시 및 성능 분석

 

2. 데이터 모델링 및 설계

 

1) 데이터 모델의 개념

 

데이터 모델의 정의

: 현실 세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현한 개념적 모형이다

 

데이터 모델의 종류

 

- 개념적 데이터 모델

- 논리적 데이터 모델

 

데이터 모델에 표시할 요소

 

- 구조(Structure) : 논리적으로 표현된 개체 타입들 간의 관계

- 연산(Operation) : 데이터베이스를 조작하는 기본 도구

- 제약 조건(Constraint) : 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건

 

데이터 모델의 구성 요소

 

- 개체(Entity) : 데이터베이스에 표현하려고 하는 현실 세계의 대상체이다

- 속성(Attribute) : 데이터의 가장 작은 논리적 단위로서 파일 구조상의 데이터 항목 또는 데이터 필드에 해당한다

- 관계(Relationship) : 개체 간의 관계 또는 속성 간의 관계이다

                             ( 일 대 일(1:1), 일 대 다(1:n), 다 대 다(n:m) )

 

2) 개체 - 관계 모델

 

개체 - 관계(Entity-Relationship) 모델의 개요

: 데이터를 개체(Entity), 관계(Relationship), 속성(Attribute)으로 묘사한다

 

E-R(개체 - 관계) 다이어그램

 

- 개체(Entity) : 사각형

- 관계(Relationship) : 마름모

- 속성(Attribute) : 타원

- 다중값 속성(복합 속성) : 이중타원

- 기본키 속성 : 밑줄 타원

- 개체 타입과 속성을 연결 : 선, 링크

 

3) 데이터 모델(Data Model)

 

관계형 데이터 모델(Relation Data Model)의 개념

: 개체 집합에 대한 속성 관계를 표현하기 위해 개체를 2차원적인 표를 사용한다

 

계층형 데이터 모델(Hierarchical Data Model)의 개념

: 트리 구조를 이용해서 데이터의 상호관계를 계층적으로 정의한 구조이다

 

망형 데이터 모델(Network Data Model)의 개념

: 그래프를 이용해서 데이터 논리 구조를 표현한 데이터 모델이다

 

4) 데이터베이스 설계

 

데이터베이스 설계 시 고려사항

 

- 무결성

- 일관성

- 회복

- 보안

- 효율성

- 데이터베이스 확장

 

데이터베이스의 설계 순서

 

1.   요구분석   : 요구 조건 명세서 작성

         ↓

2. 개념적 설계 : 개념 스키마, 트랜잭션 모델링, E-R 모델 

        

3. 논리적 설계 : 목표 DBMS에 맞는 논리 스키마 설계, 트랜잭션 인터페이스 설계

        

4. 물리적 설계 : 목표 DBMS에 맞는 물리적 구조의 데이터로 변환

        

5.     구현      : 목표 DBMS의 DDL로 데이터베이스 생성, 트랜잭션 작성 

 

3. 관계 데이터베이스 모델과 언어

 

1) 관계형 데이터베이스의 구조

 

관계형 데이터베이스의 Relation의 구조

 

- 릴레이션(Relation) : 데이터들을 표의 형태로 표현한 것이다

- 튜플(Tuple) : 릴레이션을 구성하는 각각의 행을 말한다 (튜플에 수를 카디널리티(Cardinality)라고 부른다)

- 속성(Attribute) : 데이터베이스를 구성하는 가장 작은 논리적 단위이다 (속성의 수를 (Degree)라고 부른다)

- 도메인(Domain) : 하나의 속성이 취할 수 있는 같은 타입의 원자값들의 집합이다

 

릴레이션의 특징

 

- 릴레이션에 포함된 튜플들은 모두 상이하다

- 한 릴레이션에 포함된 튜플 사이에는 순서가 없다

- 속성들 간의 순서는 중요하지 않다

- 각 속성은 릴레이션 내에서 유일한 이름을 가진다

 

2) 관계형 데이터베이스의 제약 조건

 

키(Key)의 종류

 

- 후보키(Candidate Key) : 유일성과 최소성을 만족시켜야 한다

- 기본키(Primary key) : 후보키 중에서 선택한 주 키(Main Key)

- 대체키(Alternate Key) : 후보키중 기본키를 제외한 나머지 후보키

- 슈퍼키(Super Key) : 유일성은 만족시키지만 최소성은 만족시키지 못하는 키

- 외래키(Foreign Key) : 관계를 맺고 있는 릴레이션 R1, R2에서 R1이 참고하고 있는 릴레이션 R2의 기본키와 같은

                                R1의 릴레이션의 속성을 외래키라 한다

 

무결성

- 개체 무결성 : 릴레이션에서 기본키를 구성하는 속성은 널(NULL) 값이나 중복 값을 가질 수 없다

- 참조 무결성 : 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다

 

3) 관계대수 및 관계해석

 

관계대수

: 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어이다

- 순수 관계 연산자 : Select( б ), Project( π ), Join( ⋈ ), Division( ÷ )

- 일반 집합 연산자 : UNION( 합집합 ∪ ), INTERSECTION( 교집합 ∩ ), DIFFERENCR( 차집합 - ),

                          CARTESIAN PRODUCT( 교차곱 X )

 

관계해석

 

- 수학의 술어 해석에 기반을 두고있다

- 튜플 관계해석과 도메인 관계해석이있다

- 기본적으로 관계해석과 관계대수는 관계 데이터베이스를 처리하는 기능과 능력면에서 동등하다

- 관계해석으로 표현한 식은 관계대수로 표현할 수 있다

- 관계해석은 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 지닌다

 

4) 정규화(Normalization)

 

정규화의 개요

: 더 작은 테이블로 분해해 가면서 종속성을 제거하는 것이다

 

정규화의 목적

: 중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 방지한다

 

Anomaly(이상)의 개념 및 종류

 

- 삽입 이상(Insertion Anomaly) : 불필요한 데이터가 함께 삽입되는 현상

- 삭제 이상(Delettion Anomaly) : 연쇄 삭제로 인해 정보의 손실

- 갱신 이상(Update Anomaly) : 일부 속성을 갱신함으로써 정보의 모순성이 발생

 

정규화 과정

 

비정규 릴레이션

        ↓  도메인이 원자값

제1정규형(1NF)

        ↓  부분적 함수 종속 제거

제2정규형(2NF)

        ↓  이행적 함수 종속 제거

제3정규형(3NF)

        ↓  결정자이면서 후보키가 아닌것 제거

      BCNF

        ↓  다치 종속

제4정규형(4NF)

        ↓  조인 종속성 이용

제5정규형(5NF)

 

5) SQL(Structured Query Language)의 개념

 

SQL의 개요

: 질의어지만 질의 기능만 있는 것이 아니라 데이터 구조의 정의, 데이터 조작, 데이터 제어 기능을 모두 갖추고 있다

 

데이어 정의어(DDL)

 

- CREATE : SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의한다

- ALTER : TABLE에 대한 정의를 변경하는데 사용한다

- DROP : SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 삭제한다

 

데이터 조작어(DML)

 

- INSERT : 테이블에서 조건에 맞는 튜플을 검색한다

- DLLETE : 테이블에 새로운 튜플을 삽입한다

- UPDATE : 테이블에서 조건에 맞는 튜플을 삭제한다

- SELECT : 테이블에서 조건에 맞는 튜플의 내용을 변경한다 

 

데이터 제어어(DCL)

- COMMIT

- ROLLBACK

- GRANT

- REVOKE

 

6) 내장 SQL(Embedded SQL)

 

내장 SQL의 정의
: 응용 프로그램 내에 SQL 문장을 내포하여 프로그램이 실행될 때 함께 실행되도록 호스트 프로그램 언어로 만든 프로그램에 삽인된 SQL이다

 

내장 SQL의 특징

 

- 호스트 언어에서 실행문이 나타날 수 있는 곳이면 프로그램의 어느 곳에서나 사용할 수 있다
- 내장 SQL 프로그램은 컴파일보다 우선하는 전처리기에 의해 처리된다
- 호스트 변수와 데이터베이스 필드의 이름은 같아도 된다
- 내장 SQL문에 사용된 호스트 변수의 데이터 타입은 이에 대응하는 데이터베이스 필드의 SQL 데이터 타입과 일치하여야한다

 

7) 뷰(VIEW)

 

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

 

뷰의 특징

 

- 가상 테이블이기 때문에 물리적으로 구현되어 있지 않다
- 필요한 데이터만 뷰로 정의해서 처리할 수 있기 때문에 관리가 용이하고 명령문이 간단해진다
- 정의된 뷰는 다른 뷰의 정의에 기초가 될 수 있다
- 뷰를 삭제하면 그 뷰를 기초로 정의된 다른 뷰도 자동으로 삭제된다

 

뷰의 장점

 

- 논리적 데이터 독립성을 제공한다
- 여러 사용자의 상이한 요구를 지원해 준다
- 사용자의 데이터 관리를 간단하게 해준다
- 접근 제어를 통한 자동 보안이 제공된다

 

뷰의 단점

 

- 독릭전인 인덱스를 가질 수 없다
- ALTER VIEW문을 사용할 수 없다 즉, 뷰의 정의를 변경할 수 없다
- 삽입, 갱신, 삭제 연산에는 제약이 따른다

 

뷰 삭제
: 뷰는 ALTER문을 사용하여 변경할 수 없으므로 필효한 경우는 삭제(DROP)한 후 재생성한다

 

8) 시스템 카탈로그(System Catalog)

 

시스템 카탈로그의 의미
: 시스템 자신이 필요로 하는 여러 가지 개체에 관한 정보를 포함한 시스템 데이터베이스이다 자료 사전이라고도 한다

 

시스템 카탈로그의 특징

 

- 일반 이용자도 SQL을 이용하여 내용을 검색해 볼 수 있다
- DBMS가 스스로 생성하고 유지하는 데이터베이스 내의 특별한 테이블의 집합체이다

 

4. 자료 구조의 기본서

 

1) 자료 구조의 개념

 

자료 구조의 분류

- 선형 구조 : 스택(Stack), 큐(Queue), 데크(Deque), 리스트(배열리스트,연결 리스트)
- 비선형 구조 : 트리(Tree), 그래프(Graph)

 

2) 스택(Stack)

 

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

 

스택의 응용 분야

 

- 부 프로그램 호줄 시 복귀주소를 저장할 때
- 함수 호출의 순서 제어
- 인터럽트가 발생하여 복귀주소를 저장할 때
- 후위 표기법으로 표현된 수식을 연산할때
- 0 주소지정방식 명령어의 자료 저장소
- 재귀 프로그램의 순서 제어
- 컴파일러를 이용한 언어 번역시

 

3) 큐(Queue)와 데크(Deque)

 

큐의 개념
: 선형 리스트의 한쪽에서는 삽입 작업이 이루어지고 다른 한쪽에서는 삭제 작업이 이루지도록 구성한 자료 구조이다

 

큐의 응용 분야

 

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

 

데크의 개념

: 스택과 큐의 장점만 따서 구성한 것으로 삽입과 삭제가 리스트의 양쪽 끝에서 모두 발생할 수 있는 자료 구조이다

 

4) 트리(Tree)

 

트리의 개념
: 트리는 정점(노드)와 선분(가지)을 이용하여 사이클을 이루지 않도록 구성한 Graph의 특수한 형태이다

 

트린 관련 용어

 

- 근 노드(Root Node) : 트리의 맨 위에 있는 노드
- 디그리(Degree, 차수) : 가지의 수
- 단말 노드(Terminal Node) : Degree가 0인 노드
- 부모 노드(Parent Node) : 이전 레벨의 노드
- 형제 노드(Brother Node) : 동일한 부모를 갖는 노드
- 트리의 Degree(디그리) : 노드들의 디그리 중에서 가장 많은수

 

5) 이진 트리

 

이진 트리
: 차수가 2이하인 노드들로 구성된 트리 즉, 자식이 둘 이하인 노드들로만 구성된 트리를 말한다

 

6) 이진 트리의 운행법(Traversal)

 

트리의 운행법

 

   ⓐ
  /  |
ⓑ  ⓒ

 

- Preorder 운행 : Root -> Left -> Right 순으로 운행한다(위 트리 예시 : a,b,c)
- Inorder 운행 : Left -> Root -> Right 순으로 운행한다(위 트리 예시 : b,a,c)
- Postorder 운행 : Left -> Right -> Root 순으로 운행한다(위 트리 예시 : b,c,a)

 

수식의 표기법

 

   +
  /  |
ⓐ  ⓑ

 

- 전위 표기법(PreFix) : 연산자 -> Left -> Right (위 트리 예시 : +ab)
- 중위 표기법(InFix) : Left -> 연산자 -> Right (위 트리 예시 : a+b)
- 후위 표기법(PostFix) : Left -> Right -> 연산자 (위 트리 예시 : ab+)

 

*(다른 표기법으로 변환하는법 이해하기)

 

7) 그래프(Graph)

 

그래프 정의

 

- G는 정점 V(Vertex)와 간선 E(Edge)의 두 집합으로 이루어진다
- 간선의 방향성 유뮤에 따라 방향 그래프와 무방향 그래프로 구분된다
- 통신망, 교통망, 유리화학 구조식, 무향선분 해법 등에 응용된다

 

*(인접행렬(Adjacency matrix)을 이용한 그래의 표현 방법)

 

8) 정렬(Sort)의 개요

 

정렬
: 정렬은 파일을 구성하는 각 레코드를 특정 키 항목을 기준으로 오름차순(Ascending) 또는 내림차순(Descending)으로 재배열하는 작업을 말한다

 

정렬 방식

 

- 내부 정렬 : 히프 정렬, 삽입 정령, 쉘 정렬, 버블 정렬, 선택 정렬, 퀵 정열, 2-Way Merge Sort, 기수정렬
- 외부 정렬 : 밸런스 병합 정렬, 캐스케이드 병합 정렬, 폴리파즈 병합 정렬, 오실레이팅 병합 정렬

 

*(내부 정렬의 종류와 정렬하는 법 익히기)

 

정렬 알고리즘 선택 시 고려 사항

 

- 데이터의 양
- 초기 데이터의 배열 상태
- 키 값들의 분포 상태
- 소요공간 및 작업시간
- 사용 컴퓨터 시스템 특성

 

9) 검색(Search)

 

검색

: 컴퓨터를 이용해서 기억공간에 보관중인 특정 레코드를 찾아내는 작업이다

 

제어 검색(Control Search)
:반드시 순서화된 파일이어야 검색할 수 있다

- 이분 검색(Binary Search)
- 피보나치 검색(Fibonacci Search)
- 보간 검색(Interpolation Search)
- 블록 검색(Block Search)
- 이진 트리 검색(Binary Tree Search)

 

10) 검색-해싱(Hashing)

 

해싱
: DAM(직접 접근) 파일을 구성할 때 사용된다

 

해시 테이블(Hash Table, 해시표)
: 레코드를 한 개 이상 보관할 수 있는 Bucket들로 구성된 기억공간으로 주기억 장치나 보조기억장치에 저장한다

 

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

 

해싱함수(Hashing Function)

 

- 제산법
- 제곱법
- 폴딩법
- 기수(Radix) 변환법
- 대수적 코딩법
- 계수 분석법(숫자 분석법)
- 무작위법

 

Overflow 해결방법

 

- 개방 주소법(Open Adressing)
- 폐쇄 주소법(Close Addressing)
- 재해싱(Rehashing)

 

11) 인덱스(Index)의 구조

 

인덱스의 개념
: 데이터 레코드를 빠르게 접근하기 위해서 구성하는 것이다

 

12) 파일 편성

 

순차 파일(Sequential File) = 순서 파일
: 입력되는 데이터들을 논리적인 순서에 따라 물리적 연속 공간에 순차적으로 기록하는 방식이다

 

순차 파일의 장점

 

- 기록밀도가 높아 기억공간을 효율적으로 사용할 수 있다
- 레코드가 키 순서대로 편성되어 취급이 용이하다
- 매체 변환이 쉬워 어떠한 매체에도 적용할 수 있다

 

순차 파일의 단점

 

- 파일에 레코드를 삽입하거나 삭제하는 경우 파일 재구성을 위해 전체를 복사해야 하므로 시간이 많이 소요된다
- 데이터 검색 시 처음부터 순차적으로 검색하기 때문에 검색 효율이 낮고, 시간 및 응답시간이 느리다

 

색인 순차 파일(Indexed Sequential File)
: 순차 처리와 랜덤 처리가 모두 가능하도록 레코드들을 키 값 순으로 정렬시켜 기록하고 레코드의 키 항목만을 모은 색인을 구성하여 편성하는 방식이다

 

색인 순차 파일의 구성

 

- 기본 구역(Prime Area)
- 색인 구역(Index Area) : 트랙 색인 구역, 실린더 색인 구역, 마스터 색인 구역으로 나눠져있다
- 오버플로 구역(Overflow Area)

 

색인 순차 파일의 장점

 

- 순차 처리와 랜덤 처리가 모두 가능하므로 목적에 따라 융통성 있게 처리할 수 있다
- 효율적인 검색이 가능하고 레코드의 삽입, 삭제, 갱신이 용이하다
- 레코드를 추가 및 삽입하는 경우, 파일 전체를 복사할 필요가 없다

 

색인 순차 파일의 단점

 

- 색인 구역과 오버플로 구역을 구성하기 위한 추가 기억공간이 필요하다
- 파일 사용중 오버플로 레코드가 많아지면 파일을 재편성해야한다
- 파일이 정렬되어 있어야 하므로 추가, 삭제가 많으면 효율이 떨어진다

 

직접 파일(Direct File)
: 해시 함수를 이용하여 이 키에 대한 보조기억장치의 물리적 상대 레코드 주소를 계산한 후 해당하는 주소에 레코드를 저장한다

 

'자격증 공부!' 카테고리의 다른 글

정보처리 산업기사(전자계산기 구조)  (0) 2020.08.29

+ Recent posts