3. 프로그램의 기계 수준 표현 3.2 프로그램의 인코딩 gcc 명령은 소스 코드를 실행 코드로 변환하기 위해 일련의 프로그램들을 호출한다. C 전처리기가 #include로 명시된 파일을 코드에 삽입해 주고, #define으로 선언된 매크로를 확장해 준다. 두 개의 소스파일의 어셈블리 버전인 p1.s, p2.s를 생성한다. 어셈블러는 어셈블리 코드를 바이너리 목적 코드인 p1.o와 p2.o로 변환한다. 목적코드는 기계어 코드의 한 유형이다. 마지막으로 링커는 두 개의 목적코드 파일을 라이브러리 함수들을 구현한 코드와 함께 합쳐서 최종 실행파일인 p를 생성한다. 이것이 프로세서가 실행할 정확한 코드의 형태이다. 3.2.1 기계수준 코드 컴퓨터 시스템은 보다 간단한추상화 모델을 이용해서 세부 구현내용을 감추..
2.1 정보의 저장 기계 수준의 프로그램은 메모리를 가상메모리라고 하는 거대한 바이트의 배열로 취급 메모리의 각 바이트는 주소라고 하는 고유한 숫자로 식별 모든 가능한 주소들의 집합을 가상 주소공간이라고 부른다. 기계 수준의 프로그램은 각 프로그램의 객체를 단순히 바이트들의 블록으로 취급하고, 프로그램 자신은 바이트의 연속으로 취급한다. 2.1.1 16진수 표시 이진수 표시는 너무 장황하고, 십진수 표시는 비트 패턴으로 변환해야 하므로 불편하다. 따라서, 우리는 비트 패턴을 16진수로 표시하고자 한다. 16진수는 '0'에서 '9'까지의 숫자와 'A'에서 'F'까지의 문자를 사용해서 16개의 가능한 값을 나타낸다. C에서 0x 혹은 Ox로 시작하는 ..
1.4 시스템의 하드웨어 조직 프로그램을 실행할 때 무슨 일이 일어나는지 이해하기 위해서는 위의 그림과 같은 전형적인 시스템에서의 하드웨어 조직을 이해할 필요가 있다. 버스 (Buses) 시스템 내를 관통하는 전기적 배선군 컴포넌트들 간에 바이트 정보들을 전송 입출력 장치 시스템과 외부세계와의 연결을 담당 메인 메모리 프로세서가 프로그램을 실행하는 동안 데이터와 프로그램을 모두 저장하는 임시 저장장치 물리적으로 메인 메모리는 DRAM 칩들로 구성되어 있다. 논리적으로 메모리는 연속적인 바이트들의 배열로, 각각 0부터 시작해서 고유의 주소(배열의 인덱스)를 가지고 있다. 프로세서 주처리장치(CPU) 간단히는 프로세서는 메인 메모리에 저장된 인스트럭션들을 해독(실행)하는 엔진이다. 시스템에 전원이 공급되는 ..
- Total
- Today
- Yesterday
- 빅데이터
- DFS
- sqoop
- DP
- 파이썬
- HDFS
- 이코테
- OS
- Espher
- kafka
- kubernetes
- BOJ
- Hadoop
- 프로그래머스
- Python
- 백준
- cka
- elasticsaerch
- Algorithm
- CS
- 빅데이터를지탱하는기술
- logstash
- GROK
- oozie
- Elasticsearch
- mahout
- Flutter
- 네트워크
- heapq
- CSAPP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |