반응형
컴퓨터 시스템은 하드웨어와 시스템 소프트웨어로 구성되며, 이들이 함께 작동하여 응용 프로그램을 실행한다.
정보는 비트와 컨텍스트로 이루어진다
hello 프로그램이 실행되는 과정
#inclue <stdio.h>
int main()
{
printf("hello, world\n");
return 0;
}
hello 프로그램은 프로그래머가 에디터로 작성한 소스 프로그램(=소스파일)으로 생명을 시작하며, hello.c라는 텍스트 파일로 저장된다.
소스 프로그램 ( = 소스파일)
- 소스 프로그램은 0 또는 1로 표시되는 비트들의 연속이며, 바이트라는 8비트 단위로 구성된다.
- 각 바이트는 프로그램의 텍스트 문자를 나타낸다.
- 대부분의 컴퓨터 시스템은 텍스트 문자를 아스키(ASCII) 표준을 사용하여 표시한다.
아스키(ASCII) 표준
- 아스키 표준은 각 문자를 바이트 길이의 정수 값으로 나타낸다.
- 각 바이트는 특정 문자에 대응되는 정수 값을 갖는다.
- ex.
- 35 바이트 → 문자 #
- 105 바이트 → 문자 i
- 10 바이트 → 문자 \n (newline)
hello.c 처럼 오로지 아스키 문자들로만 이루어진 파일들을 텍스트 파일이라고 부른다.
(다른 모든 파일은 바이너리 파일 이라고 한다)
컨텍스트
- 모든 시스템 내부의 정보는 비트들로 표시된다
- 모든 시스템 내부의 정보: 디스크 파일, 메모리상의 프로그램, 데이터, 네트워크를 통해 전송되는 데이터
- 서로 다른 객체들을 구분하는 유일한 방법은 이들을 바라보는 컨텍스트에 의해서다.
- 비트가 " 01000001" 일 때, 이는 ASCII 코드에서 문자 "A"를 나타냄. 이때 'A'라는 문자의 의미를 말한다. 이때 문자의 의미란. 특정 문자가 전달하는 정보나 개념을 의미한다.내가 이해한 바로는, 즉 컨텍스트라는 것은 맥락상 ~다 라는걸 나타낸다고 이해했다. " 01000001"가 나왔을 때 이는 ASCII로 "A"를 나타내고, 해당 비트가 나오는 맥락을 고려하여 의미를 결정한다.
- 일례로 다른 컨텍스트에서는 동일한 일련의 바이트가 정수, 부동소수, 문자열 또는 기계어 명령을 의미 할 수 있다.
🤔 내가 이해한 관계
소스파일(hello) - 바이트(8비트) 단위를 사용하는 0, 1로 구성된 파일
텍스트파일(hello.c) - 아스키코드로만 이루어진 파일 (연속된 파일)
컨텍스트 - 코드의 배경이 되는 조건, 배경 → 비트가 0과 1의 조합이라면, 컨텍스트느 이 비트들이 어떻게 해석되고 사용되는지 결정하는 요소
👉알아야 하는 이유
- 컴퓨터 내에서 숫자들의 표현이 우리가 알던 정수나 실수와 같지 않기 때문에 프로그래머로서 이들에 대해 이애할 필요가 있다.
- 이들은 예상치 못하는 방식으로 움직일 수 있는 유일한 근사값이다.
반응형
'CS > Computer System' 카테고리의 다른 글
[CS:APP] 3-4 정보 접근하기 (1) | 2024.09.04 |
---|---|
[CS:APP] 1-7 운영체제는 하드웨어를 관리한다 (1) | 2024.08.27 |
[CS:APP] 1-5~1-6) 캐시 메모리, 저장장치의 계층 구조 (2) | 2024.08.27 |
[CS:APP] 1-4 프로세서의 작동 원리 (3) | 2024.08.21 |
[CS:APP] 1-2, 1-3 컴파일 시스템 (0) | 2024.08.13 |