반응형

cs:app 3

[CS:APP] CH07 링커 Linking

CH07 링커 Linking 링킹 Linking 여러 개의 코드와 데이터를 모아서 연결하여 메모리에 로드될 수 있고 실행될 수 있는 한 개의 파일로 만드는 작업 링킹은 컴파일 시에 수행할 수 있으며 대게 링커에 의해 처리되고, 링커는 독립적인 컴파일을 가능하게 한다 링킹을 이해하면 큰 프로그램을 작성하는 데 도움이 될 것이다 링커를 이해하면 위험한 프로그래밍 에러를 피할 수 있게 된다 링킹을 이해하면 어떻게 언어의 변수 영역 규칙이 구현되었는지 이해하는 데 도움이 된다 링킹에 대해서 이해하면 다른 중요한 시스템 개념을 이해할 수 있게 된다 링킹을 이해하면 공유 라이브러리에 대해 이해할 수 있다 7.1 컴파일러 드라이버 대부분의 컴파일 시스템은 사용자를 대신에서 언어 전처리기, 컴파일러, 어셈블리, 링..

[CS:APP] CH03 프로그램의 기계 수준 표현 3.1-3.5

컴퓨터는 하위 동작들을 인코딩한 연속된 바이트인 기계어 코드 machine code 를 실행한다 컴파일러는 프로그램 언어의 규칙, 대상 컴퓨터의 인스트럭션 집합, 운영 체제의 관례 등에 따라 기계어 코드를 생성한다 어셈블리 코드로 프로그램을 짤 때는 프로그래머가 계산을 하기 위해 사용해야 하는 저급 인스트럭션들을 명시해야 한다 대개의 경우 고급 언어가 제공하는 높은 수준의 추상화를 사용하는 것이 보다 더 생산적이고 안정적이다 어셈블리 코드를 이해하면 1) 컴파일러의 최적화 성능을 알 수 있으며 2) 코드에 내재된 비효율성을 분석할 수 있다 쓰레드 패키지를 사용해서 동시성 프로그램을 작성할 때 어떻게 프로그램의 데이터가 공유되고, 쓰레드들이 이들을 사적 Private 으로 어떻게 유지하고, 공유된 데이터가..

[CS:APP] CH01 컴퓨터 시스템으로의 여행

컴퓨터 시스템은 하드웨어와 시스템 소프트웨어로 구성되며, 이들이 함께 작동하여 응용프로그램을 실행한다 모든 컴퓨터 시스템은 유사한 기능을 수행하는 유사한 하드웨어와 소프트웨어 컴포넌트를 가지고 있다 1.1 정보는 비트와 컨텍스트로 이루어진다 소스 프로그램은 0 과 1 로 표시되는 비트들의 연속이며, Byte 라는 8 bit 단위로 구성된다 각 바이트는 프로그램의 텍스트 문자를 나타낸다 아스키 코드들로만 구성된 프로그램 == 텍스트 파일, 다른 모든 파일은 바이너리 파일이라고 부른다 hello.c 프로그램은 연속된 바이트들로 파일에 저장되고,각 바이트들은 특정 문자에 대응되는 정수 값을 가진다 (ex. 문자 i 는 아스키 코드 105)# hello.c Program#include int main(){ p..

반응형