크래프톤정글1주차 - 컴퓨터시스템 책 읽기

김태성·2024년 1월 17일
0
post-thumbnail

새로배운 단어

  • 인스트럭션 : 컴퓨터에서 일을 시키는 단위 기계어로 이루어져있음.
  • 워드 : 하나의 기계어 명령어나 연산을 통해 저장된 장치로부터 레지스터에 옮겨 놓을 수 있는 데이터 단위
  • 레지스트리 : 윈도우에서 사용하는 시스템 구성 정보를 저장한 데이터베이스
  • 프로그램카운터(PC) : 마이크로프로세서(중앙 처리 장치) 내부에 있는 레지스터 중의 하나로서, 다음에 실행될 명령어의 주소를 가지고 있어서 명령어 포인터라고 한다.

컴파일이란 무엇인가

내가 이해한 바가 맞다면, 컴파일이란
'사람이 쓴 코드를 컴퓨터가 이해할 수 있는 코드로 해석하는것'이다.
컴파일의 단계는 다음과 같다.

  • 전처리 단계
  • 컴파일 단계
  • 어셈블리 단계
  • 링크 단계
  1. 전처리 단계
    이 글에서는 c 언어를 사용하기 때문에, cpp라는 전처리기를 사용한다.
    검색해보니 c plus plus라서 c++이라고 한다.
    .c 프로그램을 바탕으로 .i 프로그램을 생성한다.

  2. 컴파일 단계
    컴파일러(cc1)는 텍스트파일 .i를 .s로 번역하며, 이 팔일에는 어셈블리어 프로그램이 저장된다.

  3. 어셈블리 단계
    어셈블러(as)가 hello.s를 기계어 인스트럭션으로 번역하고, 이들을 재배치가능 목적프로그램의 형태로 묵어서 hello.o라는 목적파일에 결과를 저장한다.
    hello.o는 사람이 봤을때 의미를 알 수 없는 데이터 뭉치로 보일 것이다.

  4. 링크 단계
    printf.o 목적파일에 들어있는 printf를 호출하여 hello.o 파일과 결합한다. 링커 프로그램(ld)이 이 통합작업을 수행한다.
    그 결과인 hello 파일은 실행가능한 목적파일(실행파일)로 멜모리에 적재되어 시스템에 의해 실행된다.

    컴파일 시스템의 이해가 중요한 이유

  • 최신의 컴파일러들은 컴파일러의 성능이 좋아서 과정을 자세하게 알 필요는 없으나, c언어는 프로그램 작성할때부터 효율적인 기계어 코드를 짜기 위해 컴파일에대한 이해가 필요하다.

  • 링크 에러 가 발생했을때 어떻게 해서 발생했는지, 어떻게 해결하는지, 애초에 문제가 발생 하지 않을 수 있을지 알게된다.

    컴퓨터의 하드웨어적 구성

  • 버스 : 컴퓨터 안 부품 또는 여러 장치사이를 연결해 데이터와 주소, 제어 신호 등 정보를 전송하는 통로(통신 시스템). 메인버스 생각하기
    일반적으로 버스는 워드 단위로 데이터를 전송한다.

  • 메인 메모리 : 보통 DRAM을 의미한다. SRAM은 캐시나 레지스트리.

  • 프로세서 : CPU/주처리장치는 메인 메모리에 저장된 인스트럭션들을 해독(실행)하는 엔진이다. 프로세서의 중심에는 워드 크기의 저장장치(또는 레지스터)인 프로그램 카운터(PC)가 있다.

    컴퓨터 시스템 1.4까지 읽어봤다.
    뭔 1000페이지가 넘어가는데 이제 겨우 10페이지 읽었다.
    다다음주 까지 300페이지까지 읽어야된다..

    몹시 끔찍하다

profile
닭이 되고싶은 병아리

0개의 댓글

관련 채용 정보