c컴파일 할 수 있도록 환경 바꾸기

  1. 컴퓨터의 구성

    1. 필수장치 : CPU, memory
    2. 구성장치 : I/O, 저장장치
  2. cpu : 명령어 해석, 실행

    메모리 : 작업에 필요한 프로그램과 데이터를 저장하는 장소, 바이트 단위로 분할되어 있으며 분할 공가남다 주소로 구분

  3. 폰노이만 구조 ↔ 하버드 구조

    1. cpu, 메모리, 입출력장치, 저장장치가 버스로 연결되어 있는 구조
    2. **메모리**에 프로그램, 데이터를 올리는 구조
  4. 클록과 헤르츠

    1. 클록은 컴퓨터에서 일정한 박자를 만들어 내는 것. 클록에 의해 일정 간격으로 만들어지는 틱(시간)을 펄스 혹은 클록 틱
    2. 클록이 일정 간격으로 펄스를 만들면 거기에 맞추어 컴퓨터 안의 모든 구성 부품들이 작업 진행
    3. 컴퓨터에서 헤르츠 단위로 사용한다는 것은 1초 동안 몇번의 작업이 이루어져서 몇 번의 펄스가 발생하였는가를 의미
  5. 시스템 버스와 CPU버스

    1. 시스템 버스는 메모리와 주변장치를 연결하는 버스로, 메인보드의 동작 속도를 의미하며 FSB(Front-Side Bus)혹은 전면 버스라고 부름
    2. CPU버스는 CPU 내부의 다양한 장치를 연결하는 것으로 BSB(Back Side Bus)혹은 후면 버스라고 부름
    3. BSB속도는 CPU 클록과 같고 FSB보다 훨씬 빠름
  6. 배열 & 연결리스트

    1. 배열은 형태가 같은 자료를 나열하여 메모리에 연속으로 저장하는 것으로 구현은 간단하지만 공간의 삽입과 삭제같은 관리가 어려운게 단점
    2. 연결 리스트는 데이터를 포인터로 연결데이터를 중간에 삽입하는것도 가능
    3. 배열 형태의 테이블은 크기가 어느정도 정해진 메모리나 파일 관리에 사용, 연결 리스트는 데이터의 삽입과 삭제가 빈번한 테이블에 주로 사용
    4. 큐를 구현할 때도 연결 리스트를 사용하면 편리

CPU의 구성과 동작

  1. ALU : 데이터의 덧셈, 뺄셈, 곱, 나누기 같은 연상자와 and, or같은 논리 연산을 수행

  2. 제어장치 : cpu에서 작업을 지시하는 부분

  3. 레지스터 : 작업에 필요한 데이터를 cpu내부에 보관하는 곳

  4. CPU의 명령어 처리 과정

    1. cpu에서는 산술논리 연산장치, 제어장치, 레지스터들이 협업하여 작업 처리

      1. fetch : 메모리에 있는 명령어 갖고오기
      2. decode :
      3. read : 메모리의 동작 갖고오기
      4. excute : 실행
        1. fetch → decode → read → excute

      위 방식의 비효율성을 해결한 방법이 pipeline

  5. 레지스터 종류

    1. 데이터 레지스터
    2. 주소 레지스터
    3. 프로그램 카운터 : 다음 명령어를 가리키는 레지스터
    4. 명령어 레지스터 : 현재 실행중인 명령어 저장
    5. 메모리 주소 레지스터
    6. 메모리 버퍼 레지스터
  6. 버스의 종류

    1. 제어 버스 : 읽기, 쓰기 제어
    2. 주소 버스 : 주변장치에 위치 정보를 보내기 위해 사용
    3. 데이터 버스 : 데이터가 실려서 나옴

메모리의 종류와 부팅

RAM : 휘발성 비휘발성

휘발성 : DRAM(외부 메모리), SRAM(속도가 매우매우빠름→캐시), SDRAM

비휘발성 : 플레시메모리, FRAM, PRAM

ROM : 마스크롬, PROM, EPROM