πŸ“Œ ν•™λΆ€μƒλ•Œ κ°€μž₯ 많이 λ“€μ—ˆλ˜ 컴퓨터ꡬ쑰, λ™μž‘λ°©λ²• 등에 λŒ€ν•΄μ„œ ν•™μŠ΅μ„ ν•˜λŠ” 날이닀...!! 이둠적인 λΆ€λΆ„μ΄λ‹ˆ 기술 λ©΄μ ‘μ—μ„œ μΆ©λΆ„νžˆ λ‚˜μ˜¬ 수 μžˆμ„κ±°λΌ μƒκ°ν•˜λ‹ˆ 정리λ₯Ό 꼼꼼히 ν•΄λ³΄μž!

πŸ“— 였늘 ν•™μŠ΅ν•œ λ‚΄μš©

컴퓨터 ꡬ쑰

  • ν•˜λ“œμ›¨μ–΄μ™€ μ†Œν”„νŠΈμ›¨μ–΄κ°€ 합쳐진 ν˜•νƒœ
  • ν•˜λ“œμ›¨μ–΄
    • μ „μž 회둜 및 기계 μž₯치둜 λ˜μ–΄ μžˆμ–΄ μž…μΆœλ ₯ μž₯치, μ€‘μ•™μ²˜λ¦¬μž₯치(CPU), κΈ°μ–΅μž₯치 λ“±μœΌλ‘œ κ΅¬μ„±λ˜μ–΄ μžˆλ‹€.
  • μ†Œν”„νŠΈμ›¨μ–΄
    • ν•˜λ“œμ›¨μ–΄λ₯Ό μ œμ–΄ν•˜λ©° μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ΄λ‹€.

μ»΄ν“¨ν„°μ˜ κΈ°λ³Έ ꡬ성 μš”μ†Œ

  • μž…λ ₯μž₯치
    • 컴퓨터가 μ²˜λ¦¬ν•  수 μžˆλŠ” ν˜•νƒœλ‘œ 데이터와 λͺ…령을 λ°›μ•„λ“€μ΄λŠ” 물리적인 μž₯치
    • ν‚€λ³΄λ“œ, 마우슀, μŠ€μΊλ„ˆ, νƒ€λΈ”λž« λ“± μž…λ ₯ν•  수 μžˆλŠ” μž₯치
  • 좜λ ₯ μž₯치
    • 처리된 데이터λ₯Ό μ‚¬λžŒμ΄ 이해할 수 μžˆλŠ” ν˜•νƒœλ‘œ 좜λ ₯ν•˜λŠ” 물리적인 μž₯치
    • λͺ¨λ‹ˆν„°, ν”„λ¦°ν„° λ“± 좜λ ₯ν•  수 μžˆλŠ” μž₯치
  • 쀑앙 처리 μž₯치(CPU)
    • μ‚°μˆ /논리 μ—°μ‚° μž₯치(ALU, Arithmetic Logic Unit), μ œμ–΄ μž₯치, λ ˆμ§€μŠ€ν„°λ‘œ κ΅¬μ„±λ˜μ–΄ μžˆλ‹€.
    • μ‚°μˆ : λ§μ…ˆμ„ μˆ˜ν–‰
    • μ œμ–΄ μž₯치: ν”„λ‘œκ·Έλž¨μ— 따라 λͺ…λ Ήκ³Ό μ œμ–΄ μ‹ ν˜Έλ₯Ό μƒμ„±ν•˜μ—¬ 각쒅 μž₯치의 λ™μž‘μ„ μ œμ–΄ν•˜λŠ” 것이닀.
    • λ ˆμ§€μŠ€ν„°: CPU의 λ‚΄λΆ€ λ©”λͺ¨λ¦¬λ‘œμ„œ CPUμ—μ„œ μ‚¬μš©ν•˜λŠ” 데이터λ₯Ό μΌμ‹œμ μœΌλ‘œ μ €μž₯ν•˜λŠ” μž₯μ†Œμ΄λ‹€.
  • μ €μž₯ μž₯치
    • λ°μ΄ν„°λ‚˜ ν”„λ‘œκ·Έλž¨μ„ λ³΄κ΄€ν•˜κΈ° μœ„ν•œ 일차 κΈ°μ–΅ μž₯치인 μ£Ό κΈ°μ–΅ μž₯치(Memory)와 μ£Ό κΈ°μ–΅ μž₯치λ₯Ό λ³΄μ‘°ν•˜κΈ° μœ„ν•œ λ””μŠ€ν¬μ™€ CD 같은 보쑰 κΈ°μ–΅ μž₯μΉ˜κ°€ μ‘΄μž¬ν•œλ‹€.
    • ν”„λ‘œκ·Έλž¨ μˆ˜ν–‰μ„ μœ„ν•΄ ν•„μš”ν•œ 정보에 λΉ„ν•΄ CPU 내에 κ΅¬λΉ„λ˜μ–΄ μžˆλŠ” λ ˆμ§€μŠ€ν„°μ˜ μš©λŸ‰μ΄ μž‘κΈ° λ•Œλ¬Έμ—, μ£Ό κΈ°μ–΅ μž₯μΉ˜λŠ” 주둜 정보λ₯Ό μ €μž₯ν•΄ λ‘μ—ˆλ‹€κ°€ ν•„μš”ν•  λ–„ μ½μ–΄λ“€μ΄λŠ” μ €μž₯μ†Œλ‘œ μ‚¬μš©λœλ‹€.
    • μ£ΌκΈ°μ–΅μž₯치 (RAM, ROM)

쀑앙 처리 μž₯치(CPU)

  • 쀑앙 처리 μž₯치λ₯Ό ν†΅ν•΄μ„œ 연산을 μˆ˜ν–‰ν•˜κ²Œ λœλ‹€. (폰 λ…Έμ΄λ§Œ ꡬ쑰)
  • 각쒅 연산을 μˆ˜ν–‰ν•˜κ³  κΈ°μ–΅μž₯μΉ˜μ— κΈ°μ–΅λ˜μ–΄ μžˆλŠ” λͺ…령어듀을 μˆ˜ν–‰ν•˜λŠ” 컴퓨터 μ‹œμŠ€ν…œμ„ μ΄λ£¨λŠ” 핡심 λΆ€ν’ˆμ΄λ‹€.

CPU의 ꡬ쑰

  • μ‚°μˆ /논리 μ—°μ‚° μž₯치(ALU, Arithmetic Logic Unit)
    • μ‚°μˆ μ μΈ μ—°μ‚°κ³Ό 논리적인 연산을 λ‹΄λ‹Ήν•˜λŠ” μž₯치둜 κ°€μ‚°κΈ°, 보수기, λˆ„μ‚°κΈ°, κΈ°μ–΅ λ ˆμ§€μŠ€ν„°, 데이터 λ ˆμ§€μŠ€ν„° λ“±μœΌλ‘œ κ΅¬μ„±λœλ‹€.
    • μΊμ‹œλ‚˜ λ©”λͺ¨λ¦¬λ‘œλΆ€ν„° 읽어 온 λ°μ΄ν„°λŠ” λ ˆμ§€μŠ€ν„°λΌλŠ” CPU μ „μš©μ˜ κΈ°μ–΅μž₯μ†Œμ— μ €μž₯되며, ALUλŠ” λ ˆμ§€μŠ€ν„°μ— μ €μž₯된 데이터λ₯Ό μ΄μš©ν•˜μ—¬ λ§μ…ˆ, κ³±μ…ˆ λ“±κ³Ό 같은 μ‚°μˆ  연산을 μˆ˜ν–‰ν•œλ‹€.
    • 뢀동 μ†Œμˆ« μ—°μ‚°μž₯치(FPU)와 μ •μˆ˜μ—°μ‚°μž₯치, 논리연산(AND, OR λ“±)μž₯치 등이 μžˆλ‹€.
  • μ œμ–΄μž₯치(CU, Control Unit)
    • CPUκ°€ μžμ‹  및 주변기기듀을 μ»¨νŠΈλ‘€ν•˜λŠ” μž₯치둜 ν”„λ‘œκ·Έλž¨μ˜ μˆ˜ν–‰ μˆœμ„œλ₯Ό μ œμ–΄ν•˜λŠ” ν”„λ‘œκ·Έλž¨ κ³„μˆ˜κΈ°(Program Counter)이닀.
    • ν˜„μž¬ μˆ˜ν–‰μ€‘μΈ λͺ…λ Ήμ–΄μ˜ λ‚΄μš©μ„ μž„μ‹œ κΈ°μ–΅ν•˜λŠ” λͺ…λ Ή λ ˆμ§€μŠ€ν„°, λͺ…λ Ή λ ˆμ§€μŠ€ν„°μ— 수둝된 λͺ…령을 ν•΄λ…ν•˜μ—¬ μˆ˜ν–‰λ  μž₯μΉ˜μ— μ œμ–΄μ‹ ν˜Έλ₯Ό λ³΄λ‚΄λŠ” λͺ…λ Ήν•΄λ…κΈ°λ‘œ 이루어져 μžˆλ‹€.
  • λ ˆμ§€μŠ€ν„°
    • 쀑앙 처리 μž₯치 내뢀에 μžˆλŠ” κΈ°μ–΅μž₯μΉ˜μ΄λ‹€.
    • 주둜 μ‚°μˆ  μ—°μ‚° 논리μž₯μΉ˜μ— μ˜ν•΄ μ‚¬μš©λ˜λŠ” λ²”μš© λ ˆμ§€μŠ€ν„°μ™€ PC λ“± 특수 λͺ©μ μ— μ‚¬μš©λ˜λŠ” μ „μš© λ ˆμ§€μŠ€ν„°λ‘œ κ΅¬λΆ„λœλ‹€.
  • λ ˆμ§€μŠ€ν„°μ˜ μ’…λ₯˜
    • IR (Instruction Register): ν˜„μž¬ μˆ˜ν–‰ 쀑에 μžˆλŠ” λͺ…λ Ήμ–΄ λΆ€ν˜Έλ₯Ό μ €μž₯ν•˜κ³  μžˆλŠ” λ ˆμ§€μŠ€ν„°
    • PC (Program Counter): λͺ…령이 μ €μž₯된 λ©”λͺ¨λ¦¬μ˜ μ£Όμ†Œλ₯Ό κ°€λ¦¬ν‚€λŠ” λ ˆμ§€μŠ€ν„°
    • AC (Accumulator): μ‚°μˆ  및 논리 μ—°μ‚°μ˜ κ²°κ³Όλ₯Ό μž„μ‹œλ‘œ κΈ°μ–΅ν•˜λŠ” λ ˆμ§€μŠ€ν„°

CPU의 κΈ°λŠ₯

  • λͺ…λ Ήμ–΄ 인좜 및 해독은 λͺ¨λ“  λͺ…령어듀에 λŒ€ν•˜μ—¬ κ³΅ν†΅μ μœΌλ‘œ μˆ˜ν–‰ν•˜λ©° κΈ°μ–΅ μž₯μΉ˜λ‘œλΆ€ν„° λͺ…λ Ήμ–΄λ₯Ό μ½μ–΄μ˜¨λ‹€.
  • 데이터 인좜 및 처리, 쓰기와 같은 것듀은 λͺ…령어에 따라 ν•„μš”ν•  λ•Œλ§Œ μˆ˜ν–‰ν•œλ‹€.
  • λͺ…λ Ήμ–΄ 및 λͺ…λ Ήμ–΄ μˆ˜ν–‰ κ³Όμ •κ³Ό 처리 방식이 CPU의 μ€‘μš”ν•œ 뢀뢄이닀.

λͺ…λ Ήμ–΄

  • μ‹œμŠ€ν…œμ΄ νŠΉμ • λ™μž‘μ„ μˆ˜ν–‰μ‹œν‚€λŠ” μž‘μ€ λ‹¨μœ„μ΄λ‹€.
  • λ™μž‘μ½”λ“œ(Op-code, Operational Code)
    • 각 λͺ…λ Ήμ–΄μ˜ μ‹€ν–‰ λ™μž‘μ„ κ΅¬λΆ„ν•˜μ—¬ ν‘œν˜„ν•œλ‹€.
  • μ˜€νΌλžœλ“œ (Operand)
    • λͺ…λ Ήμ–΄μ˜ 싀행에 ν•„μš”ν•œ μžλ£Œλ‚˜ μ‹€μ œ 자료의 μ €μž₯ μœ„μΉ˜λ₯Ό μ˜λ―Έν•œλ‹€.

λͺ…λ Ήμ–΄ μˆ˜ν–‰ κ³Όμ •

  1. 읽기(FI, Fetch Instruction): λ©”λͺ¨λ¦¬μ—μ„œ λͺ…령을 κ°€μ Έμ˜¨λ‹€.
  2. 해석(DI, Decode Instruction): λͺ…령을 ν•΄μ„ν•œλ‹€.
  3. μ‹€ν–‰(EI, Execute Instruction): λͺ…령을 μˆ˜ν–‰ν•œλ‹€.
  4. 기둝 (WB, Write Back): μˆ˜ν–‰ν•œ κ²°κ³Όλ₯Ό κΈ°λ‘ν•œλ‹€.

λͺ…λ Ήμ–΄ 처리 방식

RISC와 CISC방식이 μžˆλ‹€.

RISC(Reduced Instruction Set Computer)

  • 컴퓨터 λ‚΄λΆ€μ μœΌλ‘œ μ‚¬μš©ν•˜λŠ” λͺ…λ Ήμ–΄ μ„ΈνŠΈλ₯Ό λ‹¨μˆœν™” μ‹œμΌœμ„œ μ²˜λ¦¬ν•˜λŠ” ν˜•νƒœμ˜ ꡬ쑰이닀.
  • ν•˜λ‚˜μ˜ μ‚¬μ΄ν΄λ‘œ λͺ…λ Ήμ–΄λ₯Ό μ²˜λ¦¬ν•œλ‹€.
  • λ©”λͺ¨λ¦¬ Load / Store λͺ…λ Ήλ§Œ μ²˜λ¦¬ν•˜λŠ” 방식이닀.
  • νŒŒμ΄ν”„λΌμ΄λ‹, 슈퍼슀칼라의 μ‚¬μš©μ΄ κ°€λŠ₯ν•˜λ‹€.
    • νŒŒμ΄ν”„λΌμ΄λ‹: λͺ…λ Ήμ–΄λ₯Ό μ½μ–΄ μˆœμ°¨μ μœΌλ‘œ μ‹€ν–‰ν•˜λŠ” ν”„λ‘œμ„Έμ„œμ— μ μš©λ˜λŠ” κΈ°μˆ 
    • 슈퍼슀칼라: CPU λ‚΄μ— νŒŒμ΄ν”„라인을 μ—¬λŸ¬ κ°œ λ‘μ–΄ λͺ…λ Ήμ–΄λ₯Ό λ™μ‹œμ— μ‹€ν–‰ν•˜λŠ” κΈ°μˆ 
  • λ³΅μž‘ν•œ 컴파일러 ꡬ쑰λ₯Ό κ°–κ³  μžˆλ‹€.

CISC(Complex Instruction Set computer)

  • ν•˜λ‚˜μ˜ κΈ°λŠ₯에 ν•΄λ‹Ήν•˜λŠ” ν•˜λ‚˜μ˜ λͺ…령이 μžˆλŠ” κ°œλ…μ΄λ‹€.
  • μ—¬λŸ¬ μ‚¬μ΄ν΄λ‘œ λͺ…λ Ήμ–΄λ₯Ό μ²˜λ¦¬ν•œλ‹€.
  • λ§Žμ€ λͺ…λ Ήμ–΄κ°€ λ©”λͺ¨λ¦¬λ₯Ό μ°Έμ‘°ν•˜λŠ” 처리 방식이닀.
  • νŒŒμ΄ν”„λΌμ΄λ‹μ˜ μ‚¬μš©μ΄ μ–΄λ ΅λ‹€.
  • λ³΅μž‘ν•œ 마이크둜 ν”„λ‘œκ·Έλž¨ ꡬ쑰λ₯Ό κ°–κ³  μžˆλ‹€.

Memory

  • μž„μ‹œμ μΈ λ‚΄μš©λ“€μ„ κΈ°μ–΅ν•˜λŠ” μž₯치
  • μ‹œμŠ€ν…œμ΄ ν™œμ„±ν™” 된 μƒνƒ€μ—μ„œ κ·Έ 값을 κΈ°μ–΅ν•˜κ³  μžˆμ§€λ§Œ μ‹œμŠ€ν…œμ΄ κΊΌμ§€κ²Œ 되면 μ§€μ›Œμ§€λŠ” νœ˜λ°œμ„±μ΄λ‹€.

λ©”λͺ¨λ¦¬ μ„±λŠ₯

  • λ©”λͺ¨λ¦¬μ˜ μ†λ„λŠ” λ©”λ‘œλ¦¬κ°€ CPU와 데이터λ₯Ό μ£Όκ³ λ°›λŠ” μ‹œκ°„μ„ λ§ν•œλ‹€. (μ—‘μ„ΈμŠ€)
  • λ¦¬ν”„λ ˆμ‹œ μ‹œκ°„, λ©”λͺ¨λ¦¬ μ—‘μ„ΈμŠ€ μ‹œκ°„, 사이클 μ‹œκ°„ 등이 μžˆλ‹€.

λ©”λͺ¨λ¦¬ μ’…λ₯˜

μ£Ό κΈ°μ–΅μž₯치

  • RAM(Random Access Memory)
  • μ»΄ν“¨ν„°μ˜ 전원이 λŠμ–΄μ§€λ©΄ λ‚΄μš©μ΄ νœ˜λ°œλ˜μ–΄ 보쑰 μ €μž₯ μž₯μΉ˜κ°€ λ°˜λ“œμ‹œ ν•„μš”ν•˜λ‹€. (νœ˜λ°œμ„±)
  • RAM의 ν¬κΈ°λŠ” ν”„λ‘œκ·Έλž¨μ˜ μˆ˜ν–‰ 속도에 영ν–₯을 μ€€λ‹€.
  • CPUμ—μ„œ 직접 접근이 κ°€λŠ₯ν•œ μœ μΌν•œ μ €μž₯ μž₯μΉ˜μ΄λ‹€.
  • RAM의 μ’…λ₯˜
    • SRAM: λ¦¬ν”„λ ˆμ‰¬κ°€ ν•„μš” μ—†κ³  μ „λ ₯ μ†Œλͺ¨κ°€ μ μœΌλ‚˜ λΉ„μ‹Έλ‹€.
    • DRAM: λ¦¬ν”„λ ˆμ‰¬κ°€ ν•„μš”ν•˜κ³  SRAM보닀 저가이며 많이 μ‚¬μš©λœλ‹€.

보쑰 κΈ°μ–΅ μž₯치

  • 자기 λ””μŠ€ν¬
    • μ›νŒ ν‘œλ©΄μ˜ μ²  μž…μžμ˜ λ°©ν–₯으둜 0κ³Ό 1을 ν‘œν˜„ν•œλ‹€. (ν”Œλ‘œν”Ό λ””μŠ€ν¬, ν•˜λ“œ λ””μŠ€ν¬)
  • κ΄‘ λ””μŠ€ν¬
    • λΉ›μ˜ λ°˜μ‚¬λ₯Ό μ΄μš©ν•˜μ—¬ 자료λ₯Ό μ½μ–΄λ‚΄λŠ” μ €μž₯ 맀체이닀. (CD, DVD, λΈ”λ£¨λ ˆμ΄ λ“±)
  • ν”Œλž˜μ‹œ λ©”λͺ¨λ¦¬
    • μ „μžμ μœΌλ‘œ 데이터λ₯Ό μ§€μš°κ³  μ“Έ 수 μžˆλŠ” λΉ„νœ˜λ°œμ„± λ©”λͺ¨λ¦¬λ‘œ 좩격에 κ°•ν•˜μ—¬ νœ΄λŒ€μš© 기기에 많이 μ‚¬μš©λœλ‹€. (USB, SSD λ“±)
    • SSD: 헀더와 같은 기계적 μž₯μΉ˜λŠ” λΉ μ‘Œμ§€λ§Œ μ €μ „λ ₯, μ €μ†ŒμŒ, μ €μ€‘λŸ‰μ΄λΌλŠ” νŠΉμ§•μ„ κ°€μ§€κ³  μžˆλ‹€.
  • μΊμ‹œ λ©”λͺ¨λ¦¬(Cache Memory)
    • CPU λ‚΄β€’μ™Έ μ‘΄μž¬ν•˜λŠ” λ©”λͺ¨λ¦¬λ©°, 메인 λ©”λͺ¨λ¦¬μ™€ CPU κ°„μ˜ 데이터 속도 ν–₯상을 μœ„ν•œ 쀑간 버퍼 역할을 ν•œλ‹€.
    • λΉ λ₯Έ CPU의 처리 속도와 느린 메인 λ©”λͺ¨λ¦¬μ—μ„œμ˜ μ†λ„μ˜ 차이λ₯Ό κ·Ήλ³΅ν•˜λŠ” 역할을 ν•œλ‹€.

운영체제

  • ν•˜λ“œμ›¨μ–΄ 상에 ν”„λ‘œκ·Έλž¨λ“€μ΄ λ™μž‘λ˜λ„λ‘ 데이터λ₯Ό μ£Όκ³  λ°›μœΌλ©° 논리적인 일을 ν•œλ‹€.
  • μ‚¬μš©μžμ˜ ν•˜λ“œμ›¨μ–΄, μ‹œμŠ€ν…œ λ¦¬μ†ŒμŠ€λ₯Ό μ œμ–΄ν•˜κ³  ν”„λ‘œκ·Έλž¨μ— λŒ€ν•œ 일반적 μ„œλΉ„μŠ€λ₯Ό μ§€μ›ν•˜λŠ” μ‹œμŠ€ν…œ μ†Œν”„νŠΈμ›¨μ–΄μ΄λ‹€.

운영체제 λͺ©μ  및 κΈ°λŠ₯

  • 처리λŠ₯λ ₯ ν–₯상, μ‚¬μš© κ°€λŠ₯도 ν–₯상, 신뒰도 ν–₯상, λ°˜ν™˜ μ‹œκ°„ 단좕 λ“±μ˜ κΈ°λŠ₯이 μžˆλ‹€.
  • ν”„λ‘œμ„Έμ„œ, κΈ°μ–΅μž₯치, μž…μΆœλ ₯μž₯치, 파일 및 정보 λ“±μ˜ μžμ›μ„ κ΄€λ¦¬ν•œλ‹€.
  • μžμ›μ„ 효율적으둜 κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ μžμ›μ˜ μŠ€μΌ€μ€„λ§ κΈ°λŠ₯을 μ œκ³΅ν•œλ‹€.
    • μŠ€μΌ€μ€„λ§: μ–΄λ–€ μžμ›μ„ λˆ„κ°€, μ–Έμ œ, μ–΄λ–€ λ°©μ‹μœΌλ‘œ μ‚¬μš©ν• μ§€λ₯Ό κ²°μ •ν•΄μ£ΌλŠ” 것이닀.
  • μ‚¬μš©μžμ™€ μ‹œμŠ€ν…œ κ°„μ˜ νŽΈλ¦¬ν•œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•œλ‹€.
  • μ‹œμŠ€ν…œμ˜ 각쒅 ν•˜λ“œμ›¨μ–΄μ™€ λ„€νŠΈμ›Œν¬λ₯Ό κ΄€λ¦¬ν•˜κ³  μ œμ–΄ν•œλ‹€.

운영 체제의 μ‹œμŠ€ν…œ μžμ› 관리

  • ν”„λ‘œμ„ΈμŠ€ 관리(CPU)
  • λ©”λͺ¨λ¦¬ 관리
  • I/O(μž…μΆœλ ₯) 관리 (λ””μŠ€ν¬, λ„€νŠΈμ›Œν¬ λ“±)

μ‘μš© ν”„λ‘œκ·Έλž¨ 관리

  • μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ μ‹€ν–‰λ˜κ³ , μ‹œμŠ€ν…œ μžμ›μ„ μ‚¬μš©ν•  수 μžˆλ„λ‘ κΆŒν™˜κ³Ό μ‚¬μš©μžλ₯Ό κ΄€λ¦¬ν•œλ‹€.

ν”„λ‘œμ„ΈμŠ€

  • ν”„λ‘œκ·Έλž¨μ΄ μ‹€ν–‰ 쀑인 μƒνƒœλ‘œ νŠΉμ • λ©”λͺ¨λ¦¬ 곡간에 ν”„λ‘œκ·Έλž¨μ˜ μ½”λ“œκ°€ 적재되고 CPUκ°€ ν•΄λ‹Ή λͺ…λ Ήμ–΄λ₯Ό ν•˜λ‚˜μ”© μˆ˜ν–‰ν•˜κ³  μžˆλŠ” μƒνƒœλ₯Ό μ˜λ―Έν•œλ‹€.

ν”„λ‘œμ„ΈμŠ€ ꡬ성 μš”μ†Œ

  1. μœ μ € λ©”λͺ¨λ¦¬ μ˜μ—­ 관리 (Virtual Address Descriptors)
  2. ν•Έλ“€ ν…Œμ΄λΈ” (Handle Table)
  3. 독립적인 λ©”λͺ¨λ¦¬ 곡간

ν”„λ‘œμ„ΈμŠ€ νŠΉμ§•

  • μžμ› μ†Œμœ μ˜ λ‹¨μœ„
    • 각각의 ν”„λ‘œμ„ΈμŠ€λŠ” μžμ‹ μ˜ μ‹€ν–‰ 이미지 λ‘œλ“œμ™€ 싀행에 ν•„μš”ν•œ 좔가적인 λ©”λͺ¨λ¦¬ 곡간을 κ°€μ§€κ³  μžˆμ–΄μ•Όν•œλ‹€.
  • λ””μŠ€νŒ¨μΉ­μ˜ λ‹¨μœ„
    • ν”„λ‘œμ„ΈμŠ€λŠ” ν•˜λ‚˜μ˜ ν”„λ‘œκ·Έλž¨μ΄ μš΄μ˜μ²΄μ œλ‘œλΆ€ν„° CPU의 μžμ›μ„ 일정 κΈ°κ°„ λ™μ•ˆ ν• λ‹Ή λ°›μ•„ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜λŠ” 것이며, μš΄μ˜μ²΄μ œλŠ” μ—¬λŸ¬ 개의 ν”„λ‘œμ„ΈμŠ€κ°€ λ³‘λ ¬μ μœΌλ‘œ μ‹€ν–‰λ˜κ²Œ ν•˜κΈ° μœ„ν•΄μ„œ CPU의 μ‚¬μš© μ‹œκ°„μ„ 각각의 ν”„λ‘œμ„ΈμŠ€μ— 골고루 λ‚˜λˆ„μ–΄ μ£Όμ–΄μ•Ό ν•œλ‹€.

ν”„λ‘œμ„ΈμŠ€ μƒνƒœ

  • μ‹€ν–‰ (Run): ν”„λ‘œμ„ΈμŠ€κ°€ ν”„λ‘œμ„Έμ„œλ₯Ό μ°¨μ§€ν•˜μ—¬ μ„œλΉ„μŠ€λ₯Ό λ°›κ³  μžˆλŠ” μƒνƒœ
  • μ€€λΉ„ (Ready): 싀행될 수 μžˆλ„λ‘ μ€€λΉ„λ˜λŠ” μƒνƒœ
  • λŒ€κΈ° (Waiting): CPU의 μ‚¬μš©μ΄ μ•„λ‹ˆλΌ μž…μΆœλ ₯의 사건을 κΈ°λ‹€λ¦¬λŠ” μƒνƒœ

ν”„λ‘œμ„Έμ„œ

  • ν•˜λ“œμ›¨μ–΄μ μΈ μΈ‘λ©΄: 컴퓨터 λ‚΄μ—μ„œ ν”„λ‘œκ·Έλž¨μ„ μˆ˜ν–‰ν•˜λŠ” ν•˜λ“œμ›¨μ–΄ μœ λ‹›
  • μ†Œν”„νŠΈμ›¨μ–΄μ μΈ μΈ‘λ©΄: 데이터 포맷을 λ³€ν™˜ν•˜λŠ” 역할을 μˆ˜ν–‰ν•˜λŠ” 데이터 처리 μ‹œμŠ€ν…œ

μŠ€λ ˆλ“œ

  • λͺ…λ Ήμ–΄κ°€ CPUλ₯Ό ν†΅ν•΄μ„œ μˆ˜ν–‰λ˜λŠ” 객체의 λ‹¨μœ„μ΄λ‹€.
  • μ—¬λŸ¬ 개의 λͺ…λ Ήμ–΄λ₯Ό λ…λ¦½μ μœΌλ‘œ μˆ˜ν–‰ν•˜μ—¬ μ²˜λ¦¬ν•˜λ €κ³  ν•  λ•Œ μ‚¬μš©ν•˜κ²Œ λœλ‹€.

μŠ€λ ˆλ“œμ˜ κ΅¬μ„±μš”μ†Œ

  • 가상 CPU: 인터프리터, μ»΄νŒŒμΌλŸ¬μ— μ˜ν•΄ λ‚΄λΆ€μ μœΌλ‘œ μ²˜λ¦¬λ˜λŠ” 가상 μ½”λ“œ
  • μˆ˜ν–‰ μ½”λ“œ: Thread Class에 κ΅¬ν˜„λ˜μ–΄ μžˆλŠ” run() Method μ½”λ“œ
  • 처리 데이터: Threadμ—μ„œ μ²˜λ¦¬ν•˜λŠ” 데이터

μŠ€λ ˆλ“œμ˜ νŠΉμ§•

  • ν”„λ‘œμ„ΈμŠ€ λ‚΄μ—μ„œ μ‹€ν–‰λ˜λŠ” νλ¦„μ˜ λ‹¨μœ„μ΄λ‹€.
  • ν•˜λ‚˜μ˜ μŠ€λ ˆλ“œλŠ” μ‹œμž‘ν•΄μ„œ μ’…λ£Œν•  λ•ŒκΉŒμ§€ ν•œλ²ˆμ— ν•˜λ‚˜μ”© λͺ…령듀을 μˆ˜ν–‰ν•œλ‹€.
  • 각 μŠ€λ ˆλ“œλ§ˆλ‹€ call stack이 μ‘΄μž¬ν•˜λ©°, λ‚˜λ¨Έμ§€ Code, Data, Heap μ˜μ—­μ€ μŠ€λ ˆλ“œ 끼리 κ³΅μœ ν•œλ‹€.
  • λ‹€λ₯Έ μŠ€λ ˆλ“œμ™€ λ…λ¦½μ μœΌλ‘œ λ™μž‘ν•œλ‹€.

μ‹±κΈ€ μŠ€λ ˆλ“œ(Single-Thread)

  • ν”„λ‘œμ„ΈμŠ€κ°€ 단일 μŠ€λ ˆλ“œλ‘œ λ™μž‘ν•˜λŠ” 방식
  • μž₯점
    • μžμ› 접근에 λŒ€ν•œ 동기화λ₯Ό μ‹ κ²½μ“°μ§€ μ•Šμ•„λ„ λœλ‹€.
    • λ¬Έλ§₯ κ΅ν™˜ μž‘μ—… λ˜ν•œ μš”κ΅¬ν•˜μ§€ μ•ŠλŠ”λ‹€.
    • ν”„λ‘œκ·Έλž˜λ° λ‚œμ΄λ„κ°€ 쉽고, CPU λ©”λͺ¨λ¦¬λ₯Ό 적게 μ‚¬μš©ν•œλ‹€.
  • 단점
    • μ—¬λŸ¬ 개의 CPUλ₯Ό ν™œμš©ν•˜μ§€ λͺ»ν•œλ‹€.
    • μ—°μ‚°λŸ‰μ΄ λ§Žμ€ μž‘μ—…μ„ ν•˜λŠ” 경우, κ·Έ μž‘μ—…μ΄ μ™„λ£Œλ˜μ–΄μ•Ό λ‹€λ₯Έ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆλ‹€.
    • μ‹±κΈ€ μŠ€λ ˆλ“œ λͺ¨λΈμ€ μ—λŸ¬ 처리λ₯Ό λͺ»ν•˜λŠ” 경우 λ©ˆμΆ”κ²Œ λœλ‹€.

λ©€ν‹° μŠ€λ ˆλ“œ(Multi-Thread)

  • ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€ λ‚΄μ—μ„œ λ‘˜ μ΄μƒμ˜ μŠ€λ ˆλ“œκ°€ λ™μ‹œμ— μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” 방식
  • μ‹œμŠ€ν…œ μžμ›μ˜ ν™œμš© κ·ΉλŒ€ν™” 및 μ²˜λ¦¬λŸ‰μ„ μ¦λŒ€ν•  수 μžˆμ–΄ 단일 ν”„λ‘œμ„ΈμŠ€ μ‹œμŠ€ν…œμ˜ νš¨μœ¨μ„±μ„ 높일 수 μžˆλ‹€.
  • μž₯점
    • μž‘μ—…μ„ λΆ„λ¦¬ν•΄μ„œ μˆ˜ν–‰ν•˜λ―€λ‘œ μ‹€μ‹œκ°„μœΌλ‘œ μ‚¬μš©μžμ—κ²Œ 응닡할 수 μžˆλ‹€.
    • ν•œ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ—¬λŸ¬ ν”„λ‘œμ„Έμ„œμ—μ„œ μˆ˜ν–‰ν•  수 μžˆμ–΄ νš¨μœ¨μ μ΄λ‹€.
  • 단점
    • 주의 κΉŠμ€ 섀계가 ν•„μš”ν•˜λ©° 디버깅이 κΉŒλ‹€λ‘­λ‹€.
    • 단일 ν”„λ‘œμ„ΈμŠ€ μ‹œμŠ€ν…œμ˜ 경우 효과λ₯Ό κΈ°λŒ€ν•˜κΈ° μ–΄λ ΅λ‹€.
    • ν•˜λ‚˜μ˜ μŠ€λ ˆλ“œμ— λ¬Έμ œκ°€ λ°œμƒν•˜λ©΄ 전체 ν”„λ‘œμ„ΈμŠ€κ°€ 영ν–₯을 λ°›κ²Œ λ˜λŠ” μžμ› 곡유의 λ¬Έμ œκ°€ λ°œμƒν•œλ‹€.
    • λ¬Έλ§₯ κ΅ν™˜ μž‘μ—…μ„ μš”κ΅¬ν•œλ‹€.

λ¬Έμžμ—΄

  • μœ λ‹ˆμ½”λ“œ
    • μœ λ‹ˆμ½”λ“œ ν˜‘νšŒκ°€ μ œμ •ν•˜λŠ” μ „ μ„Έκ³„μ˜ λͺ¨λ“  문자λ₯Ό μ»΄ν“¨ν„°μ—μ„œ μΌκ΄€λ˜κ²Œ ν‘œν˜„ν•˜κ³  λ‹€λ£° 수 μžˆλ„λ‘ μ„€κ³„λœ μ‚°μ—… ν‘œμ€€μ΄λ‹€.
    • ISO 10646 문자 μ§‘ν•©, 문자 인코딩, 문자 정보 λ°μ΄ν„°λ² μ΄μŠ€, 문자λ₯Ό 닀루기 μœ„ν•œ μ•Œκ³ λ¦¬μ¦˜ 등을 ν¬ν•¨ν•˜κ³  μžˆλ‹€.
    • ASCIIλ₯Ό ν™•μž₯ν•œ ν˜•νƒœμ΄λ‹€.
  • ASCII
    • 영문 μ•ŒνŒŒλ²³μ„ μ‚¬μš©ν•˜λŠ” λŒ€ν‘œμ μΈ 문자 μΈμ½”λ”©μœΌλ‘œ 7λΉ„νŠΈλ‘œ λͺ¨λ“  μ˜μ–΄ μ•ŒνŒŒλ²³μ„ ν‘œν˜„ν•  수 μžˆλ‹€.
    • 52개의 영문 μ•ŒνŒŒλ²³ λŒ€μ†Œλ¬Έμž, 10개의 숫자, 32개의 특수 문자, ν•˜λ‚˜μ˜ 곡백 문자λ₯Ό ν¬ν•¨ν•œλ‹€.
  • UTF-8 (κ°€λ³€ 길이 인코딩)
    • μœ λ‹ˆμ½”λ“œ ν•œ 문자λ₯Ό λ‚˜νƒ€λ‚΄κΈ° μœ„ν•΄ 1 byte(=8 bits)μ—μ„œ 4 byteκΉŒμ§€ μ‚¬μš©ν•œλ‹€.
    • λ„€νŠΈμ›Œν¬λ₯Ό 톡해 μ „μ†‘λ˜λŠ” ν…μŠ€νŠΈλŠ” 주둜 UTF-8둜 μΈμ½”λ”©λœλ‹€.
    • λ°”μ΄νŠΈ μˆœμ„œκ°€ μ •ν•΄μ Έ μžˆλ‹€.
  • UTF-16 
    • μ½”λ“œ κ·ΈλŒ€λ‘œ λ°”μ΄νŠΈλ‘œ ν‘œν˜„ κ°€λŠ₯ν•˜λ©°, λ°”μ΄νŠΈ μˆœμ„œκ°€ λ‹€μ–‘ν•˜λ‹€.

κ·Έλž˜ν”½

  • λΉ„νŠΈλ§΅
    • μ›Ή μƒμ—μ„œ λ””μ§€ν„Έ 이미지λ₯Ό μ €μž₯ν•˜λŠ” 데 κ°€μž₯ 많이 μ“°μ΄λŠ” 이미지 파일 포맷 ν˜•μ‹
    • λž˜μŠ€ν„° κ·Έλž˜ν”½ (점 방식)이라고 ν•œλ‹€.
    • μ΄λ―Έμ§€μ˜ 각 점듀을 κ²©μžν˜•μ˜ ν”½μ…€ λ‹¨μœ„λ‘œ κ΅¬μ„±λ˜λ©°, ν•œ 지역을 μ°¨μ§€ν•˜λŠ” 셀은 μœ„μΉ˜μ— 따라 λ‹€λ₯Έ 값을 κ°–λŠ”λ‹€.
    • ν™•λŒ€λ₯Ό ν•˜λ©΄ κ³„λ‹¨ν˜„μƒ, κΉ¨μ§ν˜„μƒμ΄ λ°œμƒν•œλ‹€.
    • μ»΄ν“¨ν„°μ—κ²Œ 뢀담을 덜 μ£ΌλŠ” ꡬ쑰둜 λ˜μ–΄ μžˆλ‹€.
  • 벑터
    • 이미지λ₯Ό μˆ˜ν•™μ μΈ 곡식을 μ‚¬μš©ν•˜μ—¬ ν‘œν˜„ν•œλ‹€.
    • ν™•λŒ€λ₯Ό 해도 κ³„λ‹¨ν˜„μƒ, κΉ¨μ§ν˜„μƒμ΄ λ°œμƒν•˜μ§€ μ•ŠλŠ”λ‹€.
    • μ»΄ν“¨ν„°μ—κ²Œ 뢀담을 κ°€ν•˜λŠ” λ°©μ‹μ΄λ―€λ‘œ 주둜 λ„ν˜•, κΈ€μž 등을 κ·Έλ¦¬λŠ” μž‘μ—…μ— μ‚¬μš©λœλ‹€.
    • μ‚¬μ΄μ¦ˆλ₯Ό ν‚€μ›Œλ„ μš©λŸ‰μ—λŠ” λ³€ν™”κ°€ μ—†λ‹€.

κ°€λΉ„μ§€ μ»¬λ ‰μ…˜

  • ν”„λ‘œκ·Έλž¨μ—μ„œ 더 이상 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” λ©”λͺ¨λ¦¬λ₯Ό μžλ™μœΌλ‘œ μ •λ¦¬ν•˜λŠ” 것이닀.
  • κ°€λΉ„μ§€ μ»¬λ ‰μ…˜ κΈ°λŠ₯을 κ°€μ§„ μ–Έμ–΄λ‘œλŠ” JAVA, C#, JavaScript 등이 μžˆλ‹€.

κ°€λΉ„μ§€ μ»¬λ ‰μ…˜μ˜ λŒ€ν‘œμ μΈ 방법

  • νŠΈλ ˆμ΄μ‹±: ν•œκ°μ²΄μ— flagλ₯Όλ‘κ³ , κ°€λΉ„μ§€ μ»¬λ ‰μ…˜ μ‚¬μ΄ν΄λ§ˆλ‹€ flag에 ν‘œμ‹œ ν›„ μ‚­μ œν•˜λŠ” mark and sweep 방법이닀.
  • 레퍼런슀 μΉ΄μš΄νŒ…: ν•œ 객체λ₯Ό μ°Έμ‘°ν•˜λŠ” λ³€μˆ˜μ˜ 수λ₯Ό μΆ”μ ν•˜λŠ” 방법이닀.

μ›Ή μ„œλΉ„μŠ€μ—μ„œμ˜ μΊμ‹œ

λ§Žμ€ μ‹œκ°„μ΄λ‚˜ 연산이 ν•„μš”ν•œ μž‘μ—…μ˜ κ²°κ³Όλ₯Ό μ €μž₯ν•΄λ‘λŠ” 것을 μ˜λ―Έν•œλ‹€.

μΊμ‹œμ˜ λ°μ΄ν„°λŠ” 일반적으둜 RAMκ³Ό 같이 λΉ λ₯΄κ²Œ μ•‘μ„ΈμŠ€ν•  수 μžˆλŠ” ν•˜λ“œμ›¨μ–΄μ— μ €μž₯되며 μ†Œν”„νŠΈμ›¨μ–΄ ꡬ성 μš”μ†Œμ™€ ν•¨κ»˜ μ‚¬μš©λ  수 μžˆλ‹€.

κΈ°λ³Έ μŠ€ν† λ¦¬μ§€ 계측에 μ•‘μ„ΈμŠ€ν•˜μ—¬ 데이터λ₯Ό κ°€μ Έμ˜€λŠ” 더 느린 μž‘μ—…μ˜ μš”κ΅¬λ₯Ό 쀄이고 데이터 κ²€μƒ‰μ˜ μ„±λŠ₯을 높인닀.

μΊμ‹œμ˜ μž₯점

  • μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ„±λŠ₯ κ°œμ„ 
  • λ°μ΄ν„°λ² μ΄μŠ€ λΉ„μš© 절감
  • λ°±μ—”λ“œ λΆ€ν•˜ κ°μ†Œ
  • 예츑 κ°€λŠ₯ν•œ μ„±λŠ₯
  • λ°μ΄ν„°λ² μ΄μŠ€ ν•«μŠ€νŒŸ 제거
  • 읽기 μ²˜λ¦¬λŸ‰ 증가

μΊμ‹œ μ‚¬μš©μ˜ μ˜ˆμ‹œ

  • ν΄λΌμ΄μ–ΈνŠΈ: HTTP μΊμ‹œ 헀더, λΈŒλΌμš°μ €
  • λ„€νŠΈμ›Œν¬: DNS μ„œλ²„, HTTP μΊμ‹œ 헀더, CDN, λ¦¬λ²„μŠ€ ν”„λ‘μ‹œ
  • μ„œλ²„ 및 λ°μ΄ν„°λ² μ΄μŠ€: ν‚€-κ°’ 데이터 μŠ€ν† μ–΄, 둜컬 μΊμ‹œ

πŸ“˜ μΆ”κ°€λ‘œ 곡뢀할 λ‚΄μš©

[udemy] React μ™„λ²½ κ°€μ΄λ“œ κ°•μ˜ 보기 (맀일 μ‘°κΈˆμ”© 이라도 κΎΈμ€€νžˆ λ“£κΈ°)

Study원과 ν•¨κ»˜ 진행쀑인 ν”„λ‘œμ νŠΈ κ΅¬ν˜„

πŸ“ μ€‘μš”ν•œ λ‚΄μš©

  • 컴퓨터 ꡬ쑰
  • 쀑앙 처리μž₯치
  • 운영 체제
  • ν”„λŸ¬μ„ΈμŠ€
  • μŠ€λ ˆλ“œ
  • μΊμ‹œ

'Daily > Today I Learned' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

22.08.03_TIL  (0) 2022.08.03
22.08.02_TIL  (0) 2022.08.02
22.07.28_TIL  (0) 2022.07.28
22.07.27_TIL  (0) 2022.07.27
22.07.26_TIL  (0) 2022.07.26

+ Recent posts