컀λμ΄λ?
컀λμ΄λ μ΄μ체μ λ΄λΆμμ μμλ€μ κ΄λ¦¬νκ³ μΆμν ν΄μ€λ€. μ΄ λλΆμ μ¬μ©μλ λ΄λΆ νλμ¨μ΄μ μ§μ μ κ·Όνμ§ μκ³ λ κ°νΈνκ² νλ‘κ·Έλ¨μ μ€νν μ μλ€. μ¬κΈ°μ μμμ CPU, λ©λͺ¨λ¦¬ , μ μΆλ ₯ μ₯μΉ κ°μ κ²λ€μ λνλΈλ€.
λν 컀λμ μμμ κ΄λ¦¬νκΈ° μν μ¬λ¬ κ΄λ¦¬μλ€μ΄ μλ€.
- ν μ€νΈ κ΄λ¦¬μ : 물리μ μμμΈ CPUλ₯Ό μΆμ μμμΈ ν μ€ν¬λ‘ μ 곡νλ€.
- λ©λͺ¨λ¦¬ κ΄λ¦¬μ : 물리μ μμμΈ λ©λͺ¨λ¦¬λ₯Ό μΆμ μμμΈ νμ΄μ§λ μΈκ·Έλ¨ΌνΈλ‘ μ 곡νλ€.
- νμΌ μμ€ν κ΄λ¦¬μ : 물리μ μμμΈ λμ€ν¬λ₯Ό μΆμ μμμΈ νμΌλ‘ μ 곡νλ€.
- λ€νΈμν¬ κ΄λ¦¬μ : 물리μ μμμΈ λ€νΈμν¬ μ₯μΉλ₯Ό μΆμ μμμΈ μμΌμΌλ‘ μ 곡νλ€.
- λλ°μ΄μ€ λλΌμ΄λ² κ΄λ¦¬μ : κ°μ’ μΈλΆ μ₯μΉ(νλ¦°ν°, GPU λ±)μ λν μ κ·Όμ μ 곡νλ€.
컀λμ λμ λ°©μ
컀λμ Memory Resident ν νλ‘κ·Έλ¨μ΄λ€. μΌλ°μ μΌλ‘ νλ‘κ·Έλ¨λ€μ λμ€ν¬μ μμ£Όν΄μλλ°, 컀λμ λ©λͺ¨λ¦¬μμ μ¬λ¬ λͺ λ Ήλ€μ μ²λ¦¬νλ€.
νμ§λ§ 컀λμ μ¬μ©μμ λͺ λ Ήμ μ§μ μ μΌλ‘ λ°μ§ μκ³ μμ΄λ νλ‘κ·Έλ¨μ ν΅ν΄μ λͺ λ Ήμ μ λ¬λ°λλ€. μ¦ μμ ν΅ν΄μ 컀λμκ² λͺ λ Ήμ λ΄λ¦΄ μ μλ κ²μ΄λ€.
μμ μν
νλ‘κ·Έλ¨λ€μ΄ μΈμ λ©λͺ¨λ¦¬μ λ‘λ©λκ³ ν΄μ λλμ§ κ΄λ¦¬ν΄μ£Όλ νλ‘κ·Έλ¨μ΄λ€. μ¬λ¬ νλ‘κ·Έλ¨λ€μ λ©λͺ¨λ¦¬λ₯Ό κ΄λ¦¬ν΄μ£Όλ©° 컀λμ μ€κ°λ€λ¦¬ μν μ μννκΈ°λ νλ€.

μΌλ°μ μΌλ‘ μ΄μ체μ κ° λΆν λλ©΄ Memory Residentν νΉμ±μ κ°μ§λ 컀λμ΄ λ¨Όμ λ©λͺ¨λ¦¬μ μ¬λΌμ¨λ€.
κ·Έ ν μ μ κ° ν°λ―Έλμ μ€ννλ©΄ μμ΄ λ©λͺ¨λ¦¬μ μ¬λΌμ€κ³ μ μ κ° μ λ ₯ν 컀맨λμ λ§λ μ‘(job)μ λ©λͺ¨λ¦¬μ μ¬λ¦°λ€.
μ΄λ° κ³Όμ μΌλ‘ μ μ λ νλ‘κ·Έλ¨μ λ΄λΆμ μΈ κ΅¬μ‘°λ₯Ό μ κ²½μ°μ§ μκ³ μ€νμν¬ μ μλ κ²μ΄λ€.
νμ§λ§ μ΄λ° 리λ μ€ νκ²½μ μ κ²½μ¨μΌ ν μ μ΄ νλ μλ€. λ°λ‘ λ©ν°μ μ μμ€ν μ΄λΌλ μ μ΄λ€.
μλμ°λ κ°μΈpcμ© μ΄μ체μ μ¬μ 보μμ λν λΆλ΄μ΄ 리λ μ€μ λΉν΄ μ μ μ μμ§λ§, μ¬λ¬ μ¬μ©μκ° μ΄μ©νλ 리λ μ€λ 보μμ νΉλ³ν λ μ κ²½μ¨μΌνλ€.
λ§μ½ μ μ Aκ° μ μ Bμ νμΌμ λ§λλ‘ μ κ·Όν μ μλ€λ©΄ μ΄λ¨κΉ? μ΄λ μ¬κ°ν λ¬Έμ λ₯Ό μ΄λν μ μλ€.
λ°λΌμ μ΄μ체μ λ 컀λλͺ¨λμ μ μ λͺ¨λλ₯Ό λλμ΄μ μ μΆλ ₯ μμ κ°μ΄ μμμ μ κ·Όνλ μΌλ€μ 컀λμμ λ΄λΉνλλ‘ νμλ€.
μ΄λ 컀λμκ² ν΄λΉ μμ μ μμ²νλ κ²μ μμ€ν μ½μ΄λΌκ³ νλ€.
μ μ λͺ¨λμμ μμ€ν μ½μ΄λ μΈν°λ½νΈκ° λ°μνκ² λλ©΄ 컀λ λͺ¨λλ‘ μ§μ νλ€.
μμ€ν μ½μ μ’ λ₯λ λ€μκ³Ό κ°μ μν λ€μ μννλ€.
νλ‘μΈμ€/μ€λ λ κ΄λ ¨ μ²λ¦¬
νμΌ I/O κ΄λ ¨ μ²λ¦¬
μμΌ κ΄λ ¨ μ²λ¦¬
λλ°μ΄μ€ κ΄λ ¨ μ²λ¦¬
νλ‘μΈμ€ ν΅μ κ΄λ ¨ μ²λ¦¬
λ¬Όλ‘ λͺ¨λ 컀맨λμ λν΄μ μμ€ν μ½μ΄ 컀λλ‘ λͺ λ Ήμ μ λ¬ν΄μ£Όλ©΄ μ΄λ 무μ©μ§λ¬ΌμΌ κ²μ΄λ€. κ·Έλμ ν΄λΉ λͺ λ Ήμ΄ μ ν©ν λͺ λ ΉμΈμ§λ₯Ό νλ¨νλ λ°μ΄λ리 λΉνΈλ₯Ό CPUμ λλλ°, μ΄λ₯Ό mode bitλΌκ³ νλ€. 1μ΄λ©΄ 컀λλͺ¨λ 0μ΄λ©΄ μ μ λͺ¨λλΌκ³ μλ €μ Έμλ€.
컀λλͺ¨λμμλ λͺ¨λ μμμ λν μ κ·Όμ΄ κ°λ₯νλ° μ΄λ I/O κ°μ μμ λ€μ μννκ³ μμ€ν μ½μ 리ν΄κ°μΌλ‘ ν΄λΉ μμ μ λν κ²°κ³Όλ₯Ό λ°λλ€. κ·Έλ¦¬κ³ ν΄λΉ μμ μ΄ μ’ λ£λλ©΄ λ€μ μ μ λͺ¨λλ‘ λμκ°μ νλ‘κ·Έλ¨μ μ€ννλ€. μ΄ μμ μ΄ νλ²λ§ μ§νλλ 건 μλκ³ νλ‘κ·Έλ¨μ΄ μ€νλλ©΄μ μμμ΄ μ»€λλͺ¨λμ μ μ λͺ¨λλ₯Ό μλ€κ°λ€νλ€.
μΈν°λ½νΈλ
μμ μΈν°λ½νΈκ° λ°μνμμ λ 컀λ λͺ¨λλ‘ μ§μ νλ€κ³ νμλ€. μ΄ λ μΈν°λ½νΈλ 무μμ΄κ³ μ λ°μν κΉ?
μΈν°λ½νΈλ μμ€ν μμ λ°μν λ€μν μ’ λ₯μ μ΄λ²€νΈ νΉμ κ·Έλ° μ΄λ²€νΈλ€μ΄ λ°μνμ λ μλ €μ£Όλ λ©μ»€λμ¦μ΄λ€.
μΈν°λ½νΈλ€μ΄ λ°μνλ©΄ CPUμμλ μΈν°λ½νΈ μ²λ¦¬λ₯Ό μν΄ μ»€λ λͺ¨λλ‘ μ§μ νλ€.
νλμ¨μ΄ νΉμ νλ‘κ·Έλ¨μ΄ μΈν°λ½νΈ λΌμΈμ μΈν°λ½νΈλ₯Ό μΈν νλ©΄ μΈν°λ½νΈκ° λ°μνλ€. μ΄λ μΈν°λ½νΈ 벑ν°λ₯Ό ν΅ν΄ μΈν°λ½νΈ μλΉμ€ 루ν΄μ μ€νν΄μ μΈν°λ½νΈλ₯Ό μ²λ¦¬νλ€.
μΈν°λ½νΈ 벑ν°
μΈν°λ½νΈ μλΉμ€ 루ν΄(νΈλ€λ¬)μ μ£Όμλ₯Ό λ΄κ³ μλ ν μ΄λΈ
μΈν°λ½νΈ μλΉμ€ 루ν΄
μ€μ μΈν°λ½νΈλ₯Ό μ²λ¦¬νκΈ° μν 루ν΄
μ°Έκ³ λ‘ νλ‘κ·Έλ¨ λ 벨μμ λ°μνλ μΈν°λ½νΈλ νΈλ©μ΄λΌκ³ λΆλ¦¬λ©° νλμ¨μ΄ μΈν°λ½νΈλ³΄λ€ μ°μ μμκ° λλ€.
μΈλΆ μΈν°λ½νΈ
μ μμ λ¬Έμ κ° μκ²Όμ λ
I/O μμ μ΄ μλ£λμμ λ
νμ΄λ¨Έ μκ°μ΄ λλ¬μ λ
λ΄λΆ μΈν°λ½νΈ
0μΌλ‘ λλ΄μ λ
μλͺ»λ λ©λͺ¨λ¦¬ 곡κ°μ μ κ·Όμ μλν λ
μννΈμ¨μ΄ μΈν°λ½νΈ
νλ‘κ·Έλ¨ μ²λ¦¬ μ€ λͺ λ Ήμ μμ²μ μν΄ λ°μνλ λ°, λνμ μΌλ‘ SVCμ μν callμ΄ μλ€.
μΈν°λ½νΈλ λ€μκ³Ό κ°μ μ°μ μμλ₯Ό κ°μ§λ€.
- μ μ μ΄μ(Power fail)
- κΈ°κ³ μ°©μ€(Machine Check)
- μΈλΆ μ νΈ(External)
- μ μΆλ ₯(I/O)
- λͺ λ Ήμ΄ μλͺ»
- νλ‘κ·Έλ¨ κ²μ¬(Program Check)
- SVC(SuperVisor Call)
μμ€ν μ½ & μΈν°λ½νΈμ λμ κ³Όμ (μμ)
μ±κΈ μ½μ΄ νκ²½μμ μ°λ λ1(t1)κ³Ό μ°λ λ2(t2)κ° μλ€κ³ κ°μ ν΄λ³΄μ

t1μμ file read μμ²μ΄ λ€μ΄μλ€.
μ΄λ file readμ ν΄λΉνλ μμ€ν μ½μ΄ νΈμΆλλ©° κΈ°μ‘΄ t1μ μνλ₯Ό μ μ₯νκ³ μ»€λ λͺ¨λλ‘ μ§μ νλ€.
컀λλͺ¨λμ μ§μ ν t1μ ν΄λΉ fileμ΄ read κ°λ₯ν μνκ° λ λκΉμ§ waiting νκ² λλ©° λ€μ μ μ λͺ¨λλ‘ μ§μ ν t2κ° μ€νλκ² λλ€.
t1μμ μμ²ν fileμ΄ read μμ²μ μ²λ¦¬ν μ€λΉκ° λμλ€.
μ΄λλ μκΉμ λ€λ₯΄κ² μμ€ν μ½μ΄ μλ μΈν°λ½νΈκ° νΈμΆλλ€. λ€μ CPUλ t2μ μνλ₯Ό μ μ₯νκ³ t1μ waitingμμ ready(runnable)λ‘ μνλ₯Ό λ°κΎΌλ€. κ·Έλ° λ€μ μ μ λͺ¨λλ‘ μ§μ νμ t2λ₯Ό μ€ννλ€.
λͺ¨μ’ μ μ΄μ λ‘ t2μ CPU μ μ κ° μ€λ¨λλ μΌμ΄ μκΈΈ κ²μ΄λ€.
CPUλ λ€μ 컀λ λͺ¨λλ‘ μ§μ νμ t2λ₯Ό ready μνλ‘ λ°κΎΌλ€. μ΄μ λ t1μ μ€ν μνλ‘ λ°κΎΈκ³ μμ λ€μ μ²λ¦¬νλ©΄ λλ€.
νμ§λ§ μ¬μ©μλ μ§μ μ μΌλ‘ μμ€ν μ½μ νΈμΆν μΌμ΄ μλλ° μ΄λ νμ΄(high) λ 벨 μΈμ΄κ° μμ€ν μ½μ νΈμΆν μ μλλ‘ λν(wrapping)μ ν΅ν΄ μ 곡νκΈ° λλ¬Έμ΄λ€. λνμ μΌλ‘ μ€λ λλ₯Ό start ν λ native μ½λλ₯Ό ν΅ν΄μ JNI(Java Native Interface)κ° ν΄λΉ μ΄μ체μ μ λ§λ μμ€ν μ½μ νΈμΆν΄μ€λ€.
private native void start0();
'Computer Science > μ΄μ체μ ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| μΊμ λ©λͺ¨λ¦¬ κ°λ μ 리 (0) | 2024.02.04 |
|---|---|
| CISCμ RISCμ κ°λ κ³Ό μ°¨μ΄ (1) | 2024.01.24 |
| κ°μ λ©λͺ¨λ¦¬μ κ°λ (λ Όλ¦¬μ£Όμ, νμ΄μ§ ν΄νΈ, μ€μν) (1) | 2024.01.10 |
| μ°μ λ©λͺ¨λ¦¬ ν λΉκ³Ό νμ΄μ§ λ°©μ (1) | 2024.01.03 |
| λ°λλ½μ΄ λ°μνλ μ΄μ μ ν΄κ²° μ λ΅ (2) | 2024.01.03 |