[데이터 통신] Block coding과 Analog to Digital 변환
·
CS/데이터 통신
Block codingBlock coding은 동기화나 오류 검출을 하는 것에 특화된 방법이다. 동기화나 오류 검출을 위해 line coding과 다르게 여분의(redundancy) 정보를 더 포함한다. 당연히 자원이 더 들 수 밖에 없다는 것을 어렵지 않게 알 수 있다.  일반적으로, block coding은 m개의 비트로 이루어진 데이터를 n개의 비트로 변환한다. 그럼 $m > n$ 인거면 이득 아닌가? 라고 생각했다면 여분의 정보를 포함한다는 소개를 안 읽었으니 마음이 좀 아플거 같다. 기존 $m$개의 비트의 여분의 비트를 더했으니 항상 $m  그리고 $m        4B/5BBlock coding의 예시로 4B/5B 방식을 소개하려 한다. 우선 이 방식이 왜 나왔는 가를 먼저 이해해보자.   4..
[데이터 통신] Line coding에 대해
·
CS/데이터 통신
Line coding Line coding은 디지털 데이터를 디지털 신호로 바꾸는 것을 말한다. 디지털 데이터는 당연히 혼자 쓸거면 굳이 신호로 만들 이유가 없지만 다른 사람에게 보낸다고 생각하면 어쩔 수 없이 전기신호로 바꾸는 과정을 거쳐야한다. 따라서 데이터를 보내는 쪽에서는 신호로 encoding 해서 보내고 받는 쪽은 반대로 decoding 해서 다시 데이터로 복원하는 과정을 거친다. 데이터가 돌아다니는 선(Line)에 대해 encoding과 decoding 규칙을 정하는 것이기 때문에 Line Coding 이라고 한다. 자원이 그렇게 많지 않던 시절에는 신호하나 보내는데에도 많은 최적화를 거쳐야했다. 원본 데이터를 빠르게 보낼수만 있다면 얼마나 좋을까..! 극한의 효율을 추구하기 위해, 이를 측..
[데이터 통신] 데이터와 신호
·
CS/데이터 통신
Analog & Digital데이터는 그 형태가 연속적인지(continuous), 이산적인지(discrete)에 따라 각각 아날로그 데이터 그리고 디지털 데이터라고 부른다.  신호도 마찬가지로 아날로그 신호와 디지털 신호가 존재한다.   아날로그 신호는 모든 데이터들이 서로 굉장히 가깝게 붙어있기 때문에 어느 지점을 찍어도 그 지점에 대한 값을 알 수 있다.  그에 반해 디지털 신호는 아날로그 신호에 비하면 셀 수 있을만큼의 데이터들이 존재한다.  위의 그림에서 디지털 신호부분은 데이터를 일부러 파란 원으로 표시했다. 디지털 신호가 빨간 선으로 이어진건 그냥 보기 편하라고 저렇게 해놓은 것이지, 데이터들이 저렇게 분포해있지 않다.        Periodic & Nonperiodic신호는 주기적(peri..
[운영체제] 프로세스의 상태
·
CS/OS
개요 우리가 작성한 코드는 디스크에 저장된 하나의 파일로 존재한다. 이를 프로그램이라고 할 수 있다. 우리는 프로그램을 작성하고 산다. 이 프로그램을 실행하려면 메인 메모리에 올려야하고, 이 메모리 공간이 생각보다 작다면 무방비 상태에서 저장도 못한채로 에디터가 꺼진다던가 컴퓨터가 죽는다던가 하는 상황이 발생한다. 아찔한 상황이 아닐 수 없다. 프로세스라고 하는 건, 프로그램이 실행중인 상태에 임을 말한다. 만약 우리가 서버를 하나 만들어서 돌리면, 실행중인 서버는 하나의 프로세스라고 부를 수 있다. 앞으로 돌고있는 서버를 프로그램이라고 하는 친구가 있다면, 귀에 대고 프로세스라고 정정해주자. 운영체제는 수많은 프로세스들을 관리한다. 물론 프로그램도 관리하지만, 이는 파일을 다루는 부분이지 오늘 주제와는..
[확률과 통계] 큰 수의 법칙과 중심 극한 정리
·
CS/확률과 통계
큰 수의 법칙 큰 수의 법칙(The low of large numbers)은 확률 변수 $Z_1, Z_2, \cdots$가 어떤 실수 b로 수렴한다고 할때 만약 $\forall \varepsilon > 0$ 라면 $\displaystyle\lim_{n \to \infty} P(|Z_n - b| < \varepsilon) = 1$ 을 만족한다고 하고 $Z_n \overset{p}{\longrightarrow} b$ 라고 표기합니다. $\varepsilon$의 값이 큰 경우 $Z_n$이 lower ~ upper 범위 내에서 존재할 확률은 굉장히 적지만 $\varepsilon$의 값이 계속해서 작아지면 $Z_n$이 lower ~ upper 범위 내에서 존재할 확률은 계속해서 커지고 결국 1에 수렴하게 됩니다...
[확률과 통계] 표본평균과 마르코브 그리고 체비셰브 부등식
·
CS/확률과 통계
표본(Sample)에 대하여 모집단(Population)은 굉장히 큰 집합으로 표현됩니다. 이때 평균과 분산을 모르는 모집단에서 n개의 무작위 표본들을 가져가보려 합니다. 모집단에서 가져온 랜덤한 n개의 표본들은 서로 같은 분포에서 채취했으며(identically distribution), 무작위로 가져왔기 때문에 서로 독립(independent)입니다. 따라서 n개의 표본들은 i.i.d 임을 알 수 있습니다. 표본평균 무작위 표본 $X_1, \cdots, X_n$ 을 가지고 있다고 하겠습니다. 이때 표본들의 평균은 $\frac{1}{n} \displaystyle\sum_{i=1}^{n} X_i$ 입니다. 이 단순한 표본들의 평균을 표본평균(Sample mean)이라 하며 $\bar{X_n}$ 으로 표현..
[확률과 통계] 정규 분포와 표본 정규 분포
·
CS/확률과 통계
정규분포 정규 분포는 가우시안 분포라고도 불리는 유명한 분포입니다. 어떤 확률 변수 $X$가 평균이 $\mu$이고, 분산이 $\sigma^2$인 정규 분포를 따른다면 다음과 같이 나타냅니다. $X \sim N(\mu, \sigma^2) \ \ (-\infty < \mu < \infty, \ \sigma^2 \ge 0)$ 정규분포의 성질들 $X \sim N(\mu, \sigma^2)$ 라고 할때 $X$의 p.d.f. $f(x) = \frac{1}{\sqrt{2\pi} \sigma} e^{- \frac{(x-\mu)^2}{2\sigma^2}}$ $X$의 m.g.f. $\psi(t) = e^{\mu t + \frac{1}{2} \sigma^2 t^2}$ m.g.f를 통해 $E(X) = \mu$ 이고, $Var..
[논리회로] 밀리머신과 출력 오류 현상
·
CS/논리회로
밀리머신 밀리머신은 출력이 현재 상태와 입력에 모두 관련되는 경우입니다. 현재 상태가 무엇이고, 그때의 특정 입력이 무엇이냐에 따라 출력이 화살표에 표시됩니다. 직렬 덧셈기 회로 직렬 덧셈기는 두개의 n비트 2진수 $X$, $Y$를 더하는 회로입니다. 병렬 덧셈기와의 차이점은 입력이 순차적으로 들어오고, 그에 따른 출력도 순차적으로 나간다는 점입니다. 상태는 덧셈의 결과로 생성되는 1비트의 캐리 값으로 잡으면, 필요한 FF의 개수는 1개임을 알 수 있습니다. 또한 덧셈을 할 수 있는 Full Adder와 함께 구성해보겠습니다. 우선 진리표 먼저 구성해보겠습니다. 상태를 다음과 같이 구성하고, 상태도를 그려보겠습니다. $S_0 : C_{i+1} = 0$ $S_1 : C_{i+1} = 1$ 이에 따른 다음 ..
[논리회로] 무어머신과 순차 패리티 체커 회로
·
CS/논리회로
상태도 상태도(State Diagram)는 다음 요소를 이용하여 그래프의 형태로 나타냅니다. 원은 상태를 나타냅니다. 화살표는 현재 상태에서 다음 상태로의 전이(Transition)를 의미합니다. 각 화살표위의 라벨은 상태 전이를 일으키는 입력을 의미합니다. 무어머신 무어머신의 상태도는 다음의 특징이 있습니다. 원 내부의 라벨에는 "상태 / 출력" 형태로 표시됩니다. 화살표에는 입력이 표시됩니다. 무어머신은 상태(State)만 출력하며(즉, 최종 출력에는 사용자의 입력은 관여하지 않습니다.) 입력은 상태만 바꿀 뿐, 출력에 영향을 주지 않습니다. 입력에 따라 상태가 바뀌면, 최종 출력에 관여하니까 입력도 상관있는거 아니야? 아예 상관 없다고 할 수는 없지만, 입력이 출력에 직접적으로 관여하지 않는것이 무..
[논리회로] 카운터
·
CS/논리회로
카운터 일정한 순서의 값을 순환하는 회로를 카운터라고 합니다. Shift Reg의 출력의 반전된 출력을 reg의 첫번째 FF과 피드백으로 연결해주면 존슨 카운터를 만들 수 있습니다. 위 카운터는 두개의 루프가 존재합니다. 1. 000 -> 100 -> 110 -> 111 -> 011 -> 001 -> 000 2. 010 -> 101 -> 010 카운터의 종류 - 동기형 카운터 1.FF들의 동작이 공통 클럭에 맞춰서 동작하며 2.FF들의 상태변화가 동시에 일어난다. 즉 클럭입력에 따라 모든 FF들의 상태가 변화된다고 할 수 있습니다. - 비동기형 카운터 리플 카운터라고도 불리며, 한 개의 FF 상태변화가 다른 FF 상태를 변경하는 트리거 역할을 하는 회로입니다. T-FF을 이용한 3비트 이진 카운터 설계 ..