분류 전체보기

    [CSAPP] 7.4 Relocatable Object Files(재배치 가능 목적 파일)

    학습 주제 Relocatable Object file에 대한 ELF 형식에서 어떠한 내용들이 담겨있는지를 학습했다. 정리한 내용 7.4 Relocatable Object Files(재배치 가능 목적 파일) 전형적인 ELF relocatable object file을 보여주고 있다. 이 그림을 통해 Relocatable object file에 무엇이 있는지를 살펴보자. 1. ELF header object file은 16-byte의 ELF header를 통해 시작하고 있다. 16-byte sequence가 담는 정보 : 현재 system의 word size와 byte-ordering(endian관련)에 대한 정보가 담겨 있다. 헤더의 나머지 부분 : linker가 이 object file을 parsing하..

    [CSAPP] 7.3 Object Files(목적 파일)

    학습 주제 Object File의 3가지 종류와 여러 system에 따른 Object file format에 대해 학습했다. 정리한 내용 7.3 Object Files(목적 파일) 위에서 언급되왔던 object file에 대해서 알아볼 것이다. 세가지 형식의 object files Relocatable object file binary code와 data를 포함 executable object file을 생성하기 위해, compile time때 다른 relocatable object file과 결합될 수 있는 형식이다. Executable object file binary code와 data를 포함 memory에 바로 복사될 수 있다. 실행 가능하다. shared object file relocatabl..

    [CSAPP] 7.2 Static Linking(정적연결)

    학습 주제 linking 중 static linking이라는 것을 학습했다. 정리한 내용 7.2 Static Linking(정적연결) static linking이란? relocatable object file들과 command-line에서의 인자들을 입력으로 받아서, 완전히 link된 object file들을 생성하는 것을 말한다. 그럼 지금까지 나온 relocatable object file 이란 뭘까? → 이건 바로 아래 7.3에서 살펴볼 것이다. 여기서는 실행 가능한 file로 build하기 위해서 linker가 수행해야 하는 두가지 작업에 대해 알아보자. Step1. Symbol resolution object file들은 여러 symbol들을 정의하고 또한 참조하기도 한다. 여기서의 symbol..

    [CSAPP] 7.1 Compiler Drivers(컴파일러 드라이버)

    링킹이란 다양한 조각들의 code와 data를 하나의 file에 모으고 결합하는 과정. 이로 인해 이 file은 memory에 load하고 실행 가능해도록 한다. 링킹은 여러 단계에서 실행될 수 있다. at compile-time : source code가 machine code로 번역되는 시간에 at load-time : program이 memory에 로드되고 loader에 의해 실행되는 시간에 at run-time : 응용프로그램에 의해 어떠한 시간에 어떻게 linking해야 하는지는 linker에 의해 자동적으로 수행이 된다. 링킹을 알아야 하는 이유 1.큰 program을 build하는 데에 도움이 된다.(펼치기) 큰 program에서의 에러는 다음과 같다. missing module missin..

    [CSAPP] 6.6 Putting It Together: The Impact of Caches on Program Performance(프로그램 성능에 대한 캐시의 영향)

    6.6 Putting It Together: The Impact of Caches on Program Performance(프로그램 성능에 대한 캐시의 영향) 프로그램의 성능에 영향을 미치는 두가지 요소를 통해 두가지 요소를 변형해가면서 read throughput으로 확인해보려 한다. read throughput이란? s초 동안 n번 read를 수행한다면 ⇒ s/n의 read throughput을 가진다. 두가지 요소는? cache size cache size가 작을 수록 temporal locality가 증가한다. stride-k k가 작을 수록 spatial locality가 증가한다. 이 두가지 요소를 이용해 다음의 3차원 그래프를 그릴 수 있다.