교육 (Today I Learned)/Hanaro

[Hanaro] 4일차 / 컴퓨터 아키텍쳐, 컴파일러

Bay Im 2024. 1. 19. 17:34

컴퓨터 아키텍쳐, 컴파일러

  • 컴퓨터 구조
    • Memory(주기억장치)
      • Kernel, Code, Data, Stack, Heap
    • Cache Memory
      • 데이터를 찾을 때 메모리(주기억장치)에서 찾아보기 전에 먼저 캐시 메모리에 가서 있는지 확인
      • 속도가 빠르지만 데이터를 많이 담을 수 없다.
    • System Bus
      • Address Bus, Data Bus, ControlB Bus
    • CPU
      • ALU(Arithmetic and Logical Unit)
      • Accumulator(누산기)
      • CU(Control Unit)
      • Register
        • Program Counter, Address Register, Buffer Register, Instruction Register, Flag Register
      • 기타 Data Register
        • MMU(Memory Management Unit)
    • Disk/SSD (보조기억장치) + 외부장치
  • OS(Operating System)
    • OS
      • Unix, Linux, Windows
    • ROM BIOS
      • Memory
        • DRAM(Dynamic RAM): RAM (고집적, 저속)
        • SRAM(Staic RAM): Cache (저집적, 저속)
        • SDRAM(SyncDynamic RAM): clock 신호와 동기
        • DDR SDRAM(Double Data Rate SDRAM): 2배 대역폭, 속도
      • Bootstrap
    • 응용 SW, 시스템 SW, Firmware HW
      • File System(FAT,Unix)
  • Process와 Thread
    • Process
      • 메모리에 올라와서 실행되고 있는 프로그램
      • 프로그램을 실행시켰을 때 각 프로그램마다 프로세스를 하나씩 갖고있다.
    • Thread
      • 프로세스 안에서 실행되는 여러 흐름의 단위
      • CPU 코어에서 실행된다.
      • 프로세스 안의 최소 한 개의 스레드 존재, stack만 따로 할당받고 code, data, heap 영역은 스레드끼리 공유하면서 실행
    • 차이점
      • 프로세스는 자원을 공유하지 않고, 스레드는 스레드끼리 자원을 공유한다.
  • 함수형 언어와 컴파일러의 차이점
    • 함수형 언어
      • 함수 안의 함수
    • 컴파일러
      • 구조적 언어
728x90