2011년 5월 16일 월요일

일] character set, character encoding, code page, unicode

1 character set


  - 직역하면 문자 집합
  - 컴퓨터에서 문자를 표현하기 위해 각 문자를 정수 값에 대응 시켜 놓은 체계
    숫자 코드가 컴퓨터상에서 어떻게 표현되는 가는 정해지지 않은상태


  - 예를 들어 '가' 라는 문자를 '0xac00' 이라는 숫자값으로 매핑기켜 사용하도록 정의한것을 의미
  - character set 은 언어 종류만큼 다양함,  character set 에 따라 표현하고자 하는 문자의 값과 대응하는 
     숫자도 달라짐.  따라서 문자를 주고 받을때 서로간의 character set 을 일치 시켜야 함
  
  - 웹페이지 작성시 content-type 의 일부로 character set 을 명시하는 것은 웹브라우저 에게 사용하는 
     character set 을 알려주어 오해가 없도록 하기 위함


2. Enconding
  -  character set 이 문자에 대해 정수값을 지정한 것이라면, enconding 은 문자를 표현하는 정수값을
     어떤 bit 배열로 표현할 것인지를 의미해야 함.
     즉 encoding 은 character set 에서 더 나아가 컴퓨터 상에서 어떻게 표현되는 가까지 정해진 상태의 문자 집합
 - 완성형 한글인 KSC-5601 character set 은 UNIX 에서는 EUC-KR 이란 encoding 으로 표현되고 있으며
    윈도우즈에서는 cp949란 encoding 으로 표현됩니다.


 - character set 이 같다면 그 charset 을 지원하는 어떤 encoding 을 사용하든지 각문자에 대응하는
    논리적읜 정수값은 동일 하다고 볼수 있으나 encoding 이 다를수 있으니 encoding 도 맞춰라




* encoding = bit


3. EUC & codePage


  - EUC = Extended Unix Code 
  - Unix 가 세계화 되며 각국 언어 표기의 character set 을 개발함
  - codepage는 microsoft windows 가 각나라 문자 표기를 위해 개발된 character set ( cp949)


 4 Unicode
  - 모든글자 표현 체게를 하나로 통합하려고 개발된 character set
  - 

2011년 3월 19일 토요일

[전자계산기] 용어정리

saving
 - 주기억 장치에 있는 내용을 보조기억장치에 옮기는 기능

storing
 - cpu 에 있는 레지스터 내용을 주기억장치로 옮기는 기능

staging
 - 자기테이프나 디스크에 있는 블록들을 주기억장치에 미리 옮겨놓는 기능

spooling
 - 처리할 데이터를 디스크나 테이프에 잠시 저장시켰다가 나중에 다른 장치가 이용하는 기능


interrupt
 - 컴퓨터에 이상이 발생했을때 업무가 계속 처리할수 있도록 하는 기능

데이지 체인
 - 컴퓨터에 예기치 않는 문제가 발생 했을때 우선 순위가 높은것 부터 처리하기 위해 만들어 놓은 회로

명령어 사이클
 - 마이크로 작동 수행을 위한 제어신호를 가하는 것

 1) fetch cycle
 - 주기억 장치로 부터 명령을 읽어 cpu 로 가져 오는 주기

 2) indirect cycle
 - operand 가 간접 주소일 때 operand 가 지정하는 곳으로 유효주소를 읽기 위해 기억장치에 접근 하는 주기

 3) interrupt cycle
 - 현재 수행중인 명령이 중단되는 상태
 사이클을 제어하기 위한 플립플롭 FR 이 11일 때 컴퓨터 인터럽트 사이클이 된다
 이때 메모리의 번지는 return address 를 저장하는 영역으로 사용되며, 메모리의 1번지는 분기번지를 저장하기 위한 영역으로 사용된다.

execute state 가 끝나면 인터럽트를 조사해서 인터럽트가 발생했으면 인터럽트 구기 그렇지 않으면 fetch state 로 간다

간접주소  지정 방식인 경우에 대해서는 indirect state

메이저 사이클은 fetch, indirect, execute, interrupt 과정에서 필요에 따라서 간접 주소 지정 방식인 경우 indirect가 필요하고 인터럽트가 발생한 경우만 interrupt 상태가 필요하다



인터럽트의 종류 및 특징

1. 기계검사 인터럽트 (machine check interrupt)
 - 컴퓨터 하드웨어 검사 회로가 기계의 에러를 발견했을 때 발생되는 인터럽트

2. 불법 명령어 사용 인터럽트 (user bad command interrupt)
 - 정의되지 않은 명령어나 불법적인 명령어를 사용하여 발생하는 인터럽트

3. 입출렵 인터럽트 ( I/O interrupt)
 - 입출력 장치에서 컴퓨터의 CPU 에 인터럽트 신호를 보내는 것
 - 입출력의 시작이나 끝, 오류의 발생 등을 CPU 에 알리는 역할

4. 외부 인터럽트 ( External Interrupt )
 - 컴퓨터의 CPU 바깥에서 발생한 원인으로 일어나는 인터럽트

5 . 인터럽트 동작 순서

 1) 인터럽트 발생 장치로 부터 인터럽트 기능을 요청한다
 2) 현재 실행 중이던 프로그램 상태를 안전한 장소에 보관시킨다
 3) 인터럽트 처리 루틴을 실행 시킨다
 4) 인터럽트 처리 루틴에서는 해당 인터럽트에 대한 조치를 취한다
 5) 원래 프로그램이 계속 되도록 한다



Flynn 분류
 - 명령어 갯수 에 따른 데이터 처리량

 S: 싱글, M : 멀티  I : 명령어  D: 데이터

SISD
SIMD
MISD
MIMD

파괴성 판독 (DRO : Destructive Read  Out
 - 데이터를 읽어내면서 원래의 데이터를 소거하는 판독 방법,
 정보를 보존하려면 읽어낸 뒤 즉시 재기입하여야 하는 성질을 의미 한다 -> 자기 코어 메모리


MAR ( Memory Address Register) 는 주소를 기억하는 레지스터
MBR (Memory Buffer Register) 는 주기억장치에 일거나 쓰기 위한 데이터를 기억시키는 레지스터 


문자 동기 방식
- Syn 등의 동기 문자 ( 전송제어 문자)  에 의해 동기를 맞추는 방식
- BSC 프로토콜에서 사용

비트 동기 방식
- 데이터 블록의 처음과 끝에 8 비트의 플래그 비트 (01111110) 를 표시하여 동기를 맞추는 방식
- HDLC, SDLC 프로토콜에서 사용됨

즉시 주소 방식 (Immediate address Mode)
 - 주소 ( operand) 부분에 실제 데이터가 들어있는 방식
 - 명령어 수행이 즉각적으로 이루어지는 방식

직접 주소 방식 (Direct address Mode)
 - 명령어의 주소 (operand ) 부분에 실제 데이터가 들어있는 주기억 장소의 주소값이 명령어에 들어있는 경우

2011년 3월 18일 금요일

[전자계산기] 자료표현

1. 구성단위
  비트 : 정보의 최소단위
  니블 : 4개의 비트로 구성
  원드 : 연산 처리의 단위
  바이트 : 8개의 비트로 구성

2. 코드 종류
  BCD 코드  :  8421 코드
  ASCII 코드 :  표준코드, 128개 문자 , 숫자, 영문 표현
  GRAY 코드 : A/D 주로 사용, BCD 코드의 첫 비트는 그대로 사용 -> 옆에 있는 비트와 XOR 연산
  패리티 검사 코드 : 데이터 오류 검사
  해밍 코드 : 에러 검출 및 수정
  EXcess-3  코드 : BCD 코드


3. 표현 방식
고정소수점  /  부동 소수점  /  존형 10진수  /  보수

[전자계산기] 논리회로

조합 논리 회로

반가산기 : 하나의 and 회로과 ex-or 회로의 조합 ( S=a'b + ab , C = 뮤 )
전가산기 : 두개의 반가산기와 한개의 or 회로
병렬가산기 : 여러개의 전가산기를 병렬로 연결
디코더 : n 개의 입력 -> 2n 개를 출력
멀티 플랙서 : 단일 출력선으로 전달하는 회로 - 순서논리 회로 = " Flip - Flop " ( count, register, ram ) 구성 가능
   ex)  J-K Flip-Flop, R-S Flip - Flop

[데이터베이스] 데이터베이스란

정의

1. Integrated Data  : 통합된 데이터
2. Stored Data : 저장된 데이터
3. Operational Data : 운영 데이터
4. Shared Data : 공용 데이터


특징
1. Real-Time Accessbility  :  실시간 접근성
2. Continous Evolution  :  계속적인 변화
3. Concurrent Sharing  :  동시 공유
4. Content Reference  :  내용에 의한 참조

독립성

1. 논리적 데이터 독립성
2. 물리적 데이터 독립성

2011년 3월 17일 목요일

[데이터베이스] 동시성제어

- 다수의 트랜젝션을 병렬로 처리함에 있어, 갱신손실, 불이치 모순성을 방지하기 위해 트랜잭션을 직렬화 시킴

- 목적 : 다수의 트랜잭션 처리시 갱신손실, 분일치 모순성 방지

1. 갱신손실 ( Lost Update)
 - 지연된 업데이트로 트랜젝션의 업데이트 내용이 반영되지 않음

2. 불일치 모순성 ( Inconsistency )
 - 연산중 중첩 업데이트로 인해 트랜젝션의 연산 내용의 불일치

3. 동시성 제어기법 종류
 1) Locking : 데이터 읽기, 쓰기제한, 간단한 알고리즘, 사전에 안전성 보장, Lock 대시시간, DeadLock 우려
 2) TimeStamp : 트랜젝션 수행시간 정렬, DeadLock 없음, Lock 대기시간 없음, Rollback 확률 높음, Cascading Rollback
 3) Validation : 낙관적 수행후 오류 검증, 동시 처리능력 증가, 트랜젝션 대기시간 없음, 장기 트랜잭션 철회시 낭비

[데이터베이스] 병행제어

1. 다중 사용자 DBMS 의 동시적 트랜잭션 실행을 조정하는 기술

2. 단일 사용자 일때는 불필요

3. 병행제어는 갱신분실 때분에 필요하다

* 갱신분실
 - 트랜젝션이 데이터베이스를 갱신 할 때 사용자가 원하지 않는 결과를 초래하는 것
 - 트랜젝션 수행중 다른 트랜젝션이 끼어들어 순차적 수행을 방해하기 때문
 - 2개이상의 트랜젝션이 같은 데이터를 공유하여 갱신할때 발생하는 문제

4. 갱신분실 해결 방법
 - 차단 방식
 1) 차단 (Lock) 방식
  - 한 트랜잭션이 데이터 베이스 갱신을 위해 수행중에 다른 트랜젝션이 접근 못하게 함
  - 차단 단위 : 데이터베이스> 테이블, 페이지, 레코드, 필드
  - 데이터 베이스 성격에 따라 차단 단위가 달라짐
  - 차단 수준이 높을 경우 활용도 낮아짐 , 수준이 낮을수록 활용도는 높아지나 그밖에 문제가 발생할 수 있음
 
  2) 차단 유형
   - 독점 차단 : 해당 차단이 해제되기 전까지 접근할 수 없다.
   - 공유 차단 : 작업중에도 검색은 가능하나 데이터 변경은 불가

  3) 2단계 차단
   - 확장단계 트랜잭션은 실행에 필요한 모든 차단을 설치, 이단계에서 어떤 차단도 해제해서는 안됨
   - 수축단계 : 트랜젝션이 차단을 해제, 새로이 차단을 해제 해서는 안됨, 새로이 차단하게 되면 교착상태 유발
   - 시작부터 확장단계로 하여 완전히 차단한 차단단계로 해서 처리가 끝난 후 수축단계로 완전 해제 하여 종료

  4) 교착 상태
  - 서로 다른 트랜잭션이 차단을 하고 있는 상태에서 교차하여 획득하려 할 때 발생
  - 둘중하나가 자신이 차단한 것을 풀지 않는한 진행 불가
  - 효율적인 사용이 불가
  - 이를 막기위해 시스템 자체에서 처음부터 예방 할 방안을 마련 하던가 하나가 취소가 되도록 우선권 부여
     또는 회피 등의 방법이 있다

-타임스탬프(timestamp)
  - 교착상태의 미발생과 자원의 효율적인 사용이 가능한 반면 오류 처리한 트랜잭션을 다시 수행해야 함
  - 다시 수행하는 트랜잭션이 기억장치 일부를 차지하여 처리속도가 느려지고 저장 단위가 커짐