πŸ“— CS

[운영체제/컴퓨터 ꡬ쑰] 컴퓨터 ν•˜λ“œμ›¨μ–΄μ˜ κ΅¬μ„±μš”μ†Œ

Dongwoongkim 2023. 8. 14. 21:31

이 전에 운영체제의 일 쀑 ν•˜λ‚˜κ°€ ν•˜λ“œμ›¨μ–΄λ₯Ό κ΄€λ¦¬ν•˜λŠ” 일이라고 ν–ˆμ—ˆμŠ΅λ‹ˆλ‹€.

μš΄μ˜μ²΄μ œλŠ” ν•˜λ“œμ›¨μ–΄μ™€ λ—„λ ˆμ•Ό λ—„ 수 μ—†λŠ” κ΄€κ³„μž…λ‹ˆλ‹€. λ”°λΌμ„œ 컴퓨터 ꡬ쑰λ₯Ό λ‹Ήμ—°νžˆ μ•Œκ³  μžˆμ–΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— μ΄λ²ˆμ—λŠ” 컴퓨터 ꡬ쑰 즉, μ»΄ν“¨ν„°μ˜ μš”μ†Œλ“€μ— λŒ€ν•΄ ν•œ 번 μ§šμ–΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

 

μ»΄ν“¨ν„°λŠ” 크게 ν•˜λ“œμ›¨μ–΄μ™€ μ†Œν”„νŠΈμ›¨μ–΄λ‘œ λ‚˜λˆŒ 수 μžˆμŠ΅λ‹ˆλ‹€.

 

μ†Œν”„νŠΈμ›¨μ–΄μ—λŠ” 운영체제(OS), 컴파일러, μ–΄μ…ˆλΈ”λŸ¬, λ‘œλ” 등이 있고,

ν•˜λ“œμ›¨μ–΄μ—λŠ” 크게 μ€‘μ•™μ²˜λ¦¬μž₯치인 CPU, μ£Ό κΈ°μ–΅μž₯치인 Memory, μž…/좜λ ₯μž₯치둜 κ΅¬μ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

μ»΄ν“¨ν„°μ˜ κ΅¬μ„±μš”μ†Œ


 

CPU (쀑앙 처리 μž₯치)

  • CPU(Central Processing Unit / 쀑앙 처리 μž₯치) 
    • μ‚°μˆ λ…Όλ¦¬μ—°μ‚°μž₯치, μ œμ–΄μž₯치, λ ˆμ§€μŠ€ν„°λ‘œ κ΅¬μ„±λ˜μ–΄ μžˆλŠ” 컴퓨터 μž₯치
    • μ œμ–΄ μž₯치 (CU, Control Unit) : ν”„λ‘œμ„ΈμŠ€ μ‘°μž‘μ„ μ§€μ‹œν•˜λŠ” CPU의 λΆ€ν’ˆ
    • λ ˆμ§€μŠ€ν„° (Register) : CPU λ‚΄λΆ€μ˜ 맀우 λΉ λ₯Έ "μž„μ‹œ"κΈ°μ–΅μž₯치, CPU와 직접 μ—°κ²° λ˜μ–΄ μžˆμ–΄ 연산속도가 λ©”λͺ¨λ¦¬λ³΄λ‹€ 훨씬 λΉ λ₯Έκ²ƒμ΄ νŠΉμ§•μž…λ‹ˆλ‹€.
      • CPU μžμ²΄λŠ” 데이터 μ €μž₯방법이 μ—†μ–΄, 이 λ ˆμ§€μŠ€ν„°λ₯Ό 톡해 데이터가 μ „λ‹¬λ©λ‹ˆλ‹€.
    • μ‚°μˆ λ…Όλ¦¬μ—°μ‚°μž₯치 (ALU, Arithmetic Logic Unit) : λ§μ…ˆ, λΊ„μ…ˆ, κ³±μ…ˆ, λ‚˜λˆ—μ…ˆ λ“±μ˜ μ‚°μˆ μ—°μ‚°κ³Ό 논리곱, 논리합, λΆ€μ • λ“±μ˜ 논리연산을 μˆ˜ν–‰ν•˜λŠ” λ””μ§€ν„Έ νšŒλ‘œμž…λ‹ˆλ‹€.

운영체제의 컀널이 ν”„λ‘œκ·Έλž¨μ„ λ©”λͺ¨λ¦¬μ— 올렀 "ν”„λ‘œμ„ΈμŠ€λ₯Ό λ§Œλ“€λ©΄" CPUκ°€ 이λ₯Ό μ²˜λ¦¬ν•©λ‹ˆλ‹€.

CPU의 μ—°μ‚° 처리 
1. μ œμ–΄μž₯치(CU)κ°€ λ©”λͺ¨λ¦¬λ‘œλΆ€ν„° 계산할 값을 λ°›μ•„μ˜΅λ‹ˆλ‹€. 이 λ•Œ, μž„μ‹œκΈ°μ–΅μž₯치인 λ ˆμ§€μŠ€ν„°μ—λ„ μ „λ‹¬ν•©λ‹ˆλ‹€.
2. μ œμ–΄μž₯μΉ˜κ°€ λ©”λͺ¨λ¦¬λ‘œλΆ€ν„° λ°›μ•„μ˜¨ 값을 ALUμ—κ²Œ μ „λ‹¬ν•˜μ—¬ 계산을 λͺ…λ Ήν•©λ‹ˆλ‹€.
3. μ œμ–΄μž₯μΉ˜κ°€ κ³„μ‚°λœ 값을 μž„μ‹œ κΈ°μ–΅μž₯치인 λ ˆμ§€μŠ€ν„°μ— μ €μž₯ν•˜κ³  λ‹€μ‹œ λ ˆμ§€μŠ€ν„°μ—μ„œ λ©”λͺ¨λ¦¬λ‘œ 계산할 값을 μ €μž₯ν•©λ‹ˆλ‹€.

μ£Ό κΈ°μ–΅ μž₯치(Main Memory, RAM)

  • λ©”λͺ¨λ¦¬λŠ” μ „μžνšŒλ‘œμ—μ„œ λ°μ΄ν„°λ‚˜ μƒνƒœ, λͺ…λ Ήμ–΄ 등을 κΈ°λ‘ν•˜λŠ” μž₯μΉ˜μž…λ‹ˆλ‹€.
  • 보톡 RAM을 일컬어 λ©”λͺ¨λ¦¬λΌκ³  ν•©λ‹ˆλ‹€.
  • CPUλŠ” "계산"을 λ‹΄λ‹Ήν•œλ‹€λ©΄ RAM은 "기둝, μ €μž₯"을 λ‹΄λ‹Ήν•©λ‹ˆλ‹€.
CPU - 일꾼,
λ©”λͺ¨λ¦¬ - μž‘μ—…λ¬Ό μ €μž₯ν•΄μ£ΌλŠ” μž‘μ—…μž₯,
μž‘μ—…μž₯(λ©”λͺ¨λ¦¬)κ°€ 클수둝 λ§Žμ€ 일을 ν•  수 μžˆλ‹€!

λ²ˆμ™Έλ‘œ CPU의 λ ˆμ§€μŠ€ν„°λŠ” "μž„μ‹œ"κΈ°μ–΅μž₯μΉ˜λ‹ˆκΉŒ 일꾼의 "μ£Όλ¨Έλ‹ˆ" μ •λ„λ‘œ μƒκ°ν•˜λ©΄ 될 것 κ°™μŠ΅λ‹ˆλ‹€.

μž…/좜λ ₯ μž₯치 (I/O)

  • μž…λ ₯μž₯치: 컴퓨터 λ‚΄λΆ€λ‘œ 데이터λ₯Ό μž…λ ₯ν•˜λŠ” μž₯치둜 ν‚€λ³΄λ“œ, 마우슀 등이 μžˆμŠ΅λ‹ˆλ‹€.
  • 좜λ ₯μž₯치: 컴퓨터 데이터λ₯Ό μ™ΈλΆ€λ‘œ ν‘œν˜„ν•˜λŠ” μž₯치둜 ν”„λ¦°ν„°, λͺ¨λ‹ˆν„°, μŠ€ν”Όμ»€ 등이 μžˆμŠ΅λ‹ˆλ‹€.

κ·Έ μ™Έ λ‹€μ–‘ν•œ μš”μ†Œλ“€ 

μ‹œμŠ€ν…œ λ²„μŠ€

  • μ»΄ν“¨ν„°μ˜ ꡬ성 μš”μ†Œλ“€ 간에 컀λ„₯터와 μΌ€μ΄λΈ”λ‘œ μ—°κ²°ν•˜μ—¬ "데이터 전솑을 μœ„ν•œ ν†΅λ‘œ"μž…λ‹ˆλ‹€.
  • 컴퓨터 μ‹œμŠ€ν…œμ˜ μ£Όμš” λΆ€ν’ˆ μ‚¬μ΄μ—μ„œ 데이터와 μ œμ–΄ μ‹œκ·Έλ„μ„ μœ„ν•œ 톡신을 μ œκ³΅ν•˜λŠ” 톡신 μ‹œμŠ€ν…œμœΌλ‘œ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.
  • κΈ°λŠ₯ λ³„λ‘œ κ΅¬λΆ„ν•˜μžλ©΄ μ–΄λ“œλ ˆμŠ€ λ²„μŠ€, μ œμ–΄ λ²„μŠ€, 데이터 λ²„μŠ€κ°€ μžˆμŠ΅λ‹ˆλ‹€.

타이머

  • 타이머(Timer)λŠ” νŠΉμ • ν”„λ‘œκ·Έλž¨μ— μ‹œκ°„ μ œν•œμ„ λ‹€λŠ” 역할을 ν•©λ‹ˆλ‹€. μ‹œκ°„μ΄ 많이 κ±Έλ¦¬λŠ” ν”„λ‘œκ·Έλž¨μ΄ μž‘λ™ν•  λ–„ μ œν•œμ„ κ±ΈκΈ° μœ„ν•΄ μ‘΄μž¬ν•©λ‹ˆλ‹€.

λ””λ°”μ΄μŠ€ 컨트둀러

  • λ””λ°”μ΄μŠ€ 컨트둀러(DC)컴퓨터와 μ—°κ²°λ˜μ–΄ μžˆλŠ” I/O λ””λ°”μ΄μŠ€λ“€μ˜ μž‘μ€ CPU 

DMA Controller 

DMA μ»¨νŠΈλ‘€λŸ¬λŠ” I/O λ””λ°”μ΄μŠ€κ°€ λ©”λͺ¨λ¦¬μ— 직접 μ ‘κ·Όν•  수 μžˆλ„λ‘ ν•΄μ£ΌλŠ” ν•˜λ“œμ›¨μ–΄ μž₯μΉ˜μž…λ‹ˆλ‹€. (Direct Memory Access, DMA Controller)

 

CPUμ—λ§Œ λ„ˆλ¬΄ λ§Žμ€ μΈν„°λŸ½νŠΈ μš”μ²­μ΄ λ“€μ–΄μ˜€κΈ° λ•Œλ¬Έμ—, CPU λΆ€ν•˜λ₯Ό 막아주며 CPU의 일을 λΆ€λ‹΄ν•˜λŠ” λ³΄μ‘°μΌκΎΌμž…λ‹ˆλ‹€. 

  •  λ˜ν•œ ν•˜λ‚˜μ˜ μž‘μ—…μ„ CPU와 DMA μ»¨νŠΈλ‘€λŸ¬κ°€ λ™μ‹œμ— ν•˜λŠ” 것을 λ°©μ§€ν•΄μ€λ‹ˆλ‹€.
  • 직접 λ©”λͺ¨λ¦¬ μ ‘κ·Ό(DMA)은 νŠΉμ • ν•˜λ“œμ›¨μ–΄ ν•˜μœ„ μ‹œμŠ€ν…œμ΄ CPU와 λ…λ¦½μ μœΌλ‘œ 메인 μ‹œμŠ€ν…œ λ©”λͺ¨λ¦¬μ— μ ‘κ·Όν•  수 있게 ν•΄μ£ΌλŠ” 컴퓨터 μ‹œμŠ€ν…œμ˜ κΈ°λŠ₯