Archive

Archive for January, 2011

[PROGRAMMING] 비트와 비트패턴

January 23, 2011 Leave a comment

기본적인 사항

● 비트는 2진수가 아닌 패턴으로 이해해야 한다.
● 숫자는 비트패턴으로 표현할 수 있는 수많은 정보 유형 중 하나일 뿐이다.
● N개의 비트로 표현할 수 있는 패턴의 수 = 2N
● 1 byte = 8 bits

비트패턴의 명명법 (Pattern Name)

● 비트패턴은 4비트로 묶어보는 것이 편하다. (0010 1000 1010 1010)
● 그래서 16진수 명명법이 많이 사용된다. (0x28AC)
● 3비트씩 묶어보는 경우도 있다 (001 101 010)
● 그래서 8진수 명명법이 사용되기도 한다. (0152)
● 2진수, 8진수, 16진수 명명법은 패턴을 표현하는 방법이며, 일반적인 숫자정보가 아니다.

비트, 바이트의 단위

● 바이트의 단위는 두 가지 방식으로 표현할 수 있다. [SI decimal prefixes], [IEC binary prefixes]
● 관습적으로는 IEC 수치를 SI 단위로 부른다 (210 = 1024 bytes = 1 kilobyte)

SI decimal prefixes   IEC binary prefixes    
kilobyte (kB) 103 kibibyte (KiB) 210 1,024
megabyte (MB) 106 mebibyte (MiB) 220 1,048,576
gigabyte (GB) 109 gibibyte (GiB) 230 1,073,741,824
terabyte (TB) 1012 tebibyte (TiB) 240 1,099,511,627,776
petabyte (PB) 1015 pebibyte (PiB) 250
exabyte (EB) 1018 exbibyte (EiB) 260
zettabyte (ZB) 1021 zebibyte (ZiB) 270
yottabyte (YB) 1024 yobibyte (YiB) 280


메모리 어드레스

● 하나의 어드레스는 하나의 바이트를 가리킨다.
● 16비트 어드레스 → 216개 비트패턴 → 216개 어드레스 → 최대 216 bytes 메모리
● 32비트 어드레스 → 232개 비트패턴 → 232개 어드레스 → 최대 232 bytes 메모리
● 216 = 26 * 210 = 64 * 1kB = 64 kB
● 224 = 24 * 220 = 16 * 1MB = 16MB
● 232 = 22 * 230 = 4 * 1GB = 4 GB

Advertisements

[PROGRAMMING] 기계 명령의 실행과 번역

January 21, 2011 Leave a comment

기본적인 기계 사이클 (Basic Machine Cycle)

① Fetch the instruction from the address in the Program Counter
② Increment the Program Counter
③ Execute the Instruction

● PC(Program Counter)는 인텔 아키텍처에서 IP(Instruction Pointer)로 불린다.

기계어로의 번역 과정 (Separate Translation)

Assembly Source Code –> Assembler –> Object Module –> Linker –> Load Module
C Source Code –> Compiler –> Object Module –> Linker –> Load Module

● 어셈블러는 소스 파일을 개별적으로 컴파일해서 각각의 오브젝트 모듈을 생성한다.
● 링커는 오브젝트 모듈들을 연결(linking)하여 로드 모듈을 생성한다. 로드 모듈이 실행파일이다.
● 라이브러리는 오브젝트 모듈의 집합체이다.

[LINUX] rc

January 12, 2011 Leave a comment

“run commands” or “run control”

ref) http://en.wikipedia.org/wiki/Run_commands