π Computer Science/β OS
![λκΈ°μ λΉλκΈ° & Blockingκ³Ό Non-Blocking](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUVDXW%2FbtrJD3ZBwqg%2FekW0y7kTEkvXnKtcKVdftK%2Fimg.png)
λκΈ°μ λΉλκΈ° & Blockingκ³Ό Non-Blocking
λκΈ°μ λΉλκΈ° & Blockingκ³Ό Non-Blocking 1. λκΈ°(Synchronous)μ λΉλκΈ°(Asynchronous) ν¨μλ₯Ό μ€νμν΄κ³Ό λμμ λ°ν κ°μ΄ κΈ°λλλ κ²½μ°λ λκΈ°λΌ νννκ³ κ·Έλ μ§ μμ κ²½μ°λ λΉλκΈ°λΌκ³ νννλ€. λκΈ°: μ€νλμμ λ κ°μ΄ λ°νλκΈ° μ κΉμ§λ Blocking μνμ΄λ€. λΉλκΈ°: Blocking λμ§ μκ³ μ΄λ²€νΈ νμ λ£κ±°λ λ°±κ·ΈλΌμ΄λ μ€λ λμκ² ν΄λΉ taskλ₯Ό μμνκ³ λ€μ μ½λλ₯Ό μ€ννλ―λ‘ κΈ°λλλ κ°μ΄ λ°λ‘ λ°νλμ§ μλλ€. 2. Blockingκ³Ό Non-Blocking κ°λ¨ν λ§ν΄μ νΈμΆλ ν¨μκ° νΈμΆν ν¨μμκ² μ μ΄κΆμ 건λ€μ£Όλ μ 무μ μ°¨μ΄λΌκ³ λ³Ό μ μλ€. 1) Blocking I/O νλ‘μΈμ€(μ€λ λ)κ° μ»€λμκ² μ μΆλ ₯ μμ μ μμ²νλ recvfrom() ν¨..
νλ‘μΈμ€ λκΈ°ν
νλ‘μΈμ€ λκΈ°ν 1. μ€λ λ μΈμ΄ν(Thread Safe) λ©ν° μ€λ λ νλ‘κ·Έλλ°μμ μΌλ°μ μΌλ‘ μ΄λ€ ν¨μλ λ³μ, νΉμ κ°μ²΄κ° μ¬λ¬ μ€λ λλ‘λΆν° λμμ μ κ·Όμ΄ μ΄λ£¨μ΄μ Έλ νλ‘κ·Έλ¨μ μ€νμ λ¬Έμ κ° μμμ λ»νλ€. λ³΄λ€ μλ°νκ²λ νλμ ν¨μκ° ν μ€λ λλ‘λΆν° νΈμΆλμ΄ μ€ν μ€μΌ λ, λ€λ₯Έ μ€λ λκ° κ·Έ ν¨μλ₯Ό νΈμΆνμ¬ λμμ ν¨κ» μ€νλλλΌλ κ° μ€λ λμμμ ν¨μμ μν κ²°κ³Όκ° μ¬λ°λ‘ λμ€λ κ²μΌλ‘ μ μνλ€. 2. μκ³ μμ(Critical Section) μκ³ μμμ΄λ λμΌν μμ(곡μ μμ)μ λμμ μ κ·Όνλ μμ (곡μ λ³μ μ¬μ©, λμΌ νμΌ μ¬μ© λ±)μ μ€ννλ μ½λ μμμ΄λ€. μ΄λ¬ν μκ³ μμ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄μλ 3κ°μ§ 쑰건μ λ§μ‘±ν΄μΌ νλ€. μνΈ λ°°μ (Mutual Exclusion): ν ν..
![νλ‘μΈμ€ μ€μΌμ€λ¬](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczEqON%2FbtqDBAJx4jp%2FIYjEdcdfRhFzWaGfXs9Q7K%2Fimg.png)
νλ‘μΈμ€ μ€μΌμ€λ¬
1. μ€μΌμ€λ§(Scheduling) νλ‘μΈμ€κ° μμ±λμ΄ μ€νλ λ νμν μμ€ν μ μ¬λ¬ μμμ ν΄λΉ νλ‘μΈμ€μκ² ν λΉνλ μμ μ΄λ€. 1) μ₯κΈ°(μμ ) μ€μΌμ€λ§ λ©λͺ¨λ¦¬μ λμ€ν¬ μ¬μ΄μ μ€μΌμ€λ§μ λ΄λΉνλ€. λ§μ νλ‘μΈμ€κ° νκΊΌλ²μ λ©λͺ¨λ¦¬μ μ¬λΌμ¬ κ²½μ° λμ€ν¬μ μμλ‘ μ μ₯λλλ° μ μ₯λ νλ‘μΈμ€ μ€ μ΄λ€ νλ‘μΈμ€λ₯Ό λ©λͺ¨λ¦¬μ ν λΉνμ¬ μ€λΉ νλ‘ λ³΄λΌμ§ κ²°μ νλ€. 2) μ€κΈ° μ€μΌμ€λ§ ν μμ€ν μμ λ©λͺ¨λ¦¬μ λ무 λ§μ νλ‘κ·Έλ¨μ΄ λμμ μ¬λΌκ°λ κ²μ μ‘°μ νλ€ 3) λ¨κΈ°(νλ‘μΈμ) μ€μΌμ€λ§ CPUμ λ©λͺ¨λ¦¬ μ¬μ΄μ μ€μΌμ€λ§κ³Ό λ¬Έλ§₯ κ΅νμ λ΄λΉνλ€. μ€λΉ νμ μ‘΄μ¬νλ νλ‘μΈμ€ μ€ μ΄λ€ νλ‘μΈμ€λ₯Ό μ€νμν¬μ§ κ²°μ νλ€. 4) μ€μΌμ€λ§ ν(Queue) μμ (Job) ν: νμ¬ μμ€ν λ΄μ μλ λͺ¨λ νλ‘μΈμ€λ€μ μ§ν©μ΄λ€...
![νλ‘μΈμ€ μ£Όμ 곡κ°κ³Ό κΈ°μ΅ ν΄λμ€](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdCcI02%2FbtqDzkU5eNI%2FFw7pEVONvKRkPgFZfhStG1%2Fimg.png)
νλ‘μΈμ€ μ£Όμ 곡κ°κ³Ό κΈ°μ΅ ν΄λμ€
1. νλ‘μΈμ€ μ£Όμ κ³΅κ° νλ‘κ·Έλ¨μ΄ CPUμμ λͺ λ Ήμ μννλ €λ©΄ μννλ €λ μ£Όμ μμμ΄ λ©λͺ¨λ¦¬μ μ¬λΌκ° μμ΄μΌ νλλ° μ΄ μ£Όμ μμμ ν¬κ² μ€ν, ν, λ°μ΄ν°, μ½λ μμμΌλ‘ ꡬλΆλλ€. μ€ν: ν¨μμ 맀κ°λ³μ, λ³΅κ· μ£Όμμ μ§μ λ³μ κ°μ μμ μλ£λ₯Ό μ μ₯νλ λΆλΆ ν: νλ‘κ·Έλ¨ μ€ν μ€μ λμ μΌλ‘ ν λΉλλ λ³μλ₯Ό μ μ₯νλ λΆλΆ λ°μ΄ν°: μ μ λ³μ, μ μ λ³μ λ± νλ‘κ·Έλ¨μ΄ μ¬μ©νλ λ°μ΄ν°λ₯Ό μ μ₯νλ λΆλΆ μ½λ: μμ±ν νλ‘κ·Έλ¨ ν¨μλ€μ μ½λκ° κΈ°κ³μ΄ λͺ λ ΉμΌλ‘ λ³νλμ΄ μ μ₯λ λΆλΆ 2. κΈ°μ΅ ν΄λμ€(Storage Class) λ³μ μ μΈ μ λ©λͺ¨λ¦¬ λ΄μ λ³μ κ°μ μ μ₯νκΈ° μν κΈ°μ΅ μμμ΄ ν λΉλλλ° ν λΉλλ κΈ°μ΅ μμμ λ°λΌ μ¬μ© λ²μμ μ νμ΄ μλ€. μ΄λ¬ν κΈ°μ΅ μμμ κ²°μ νλ μμ μ κΈ°μ΅ ν΄λμ€λΌ ν..
![νλ‘μΈμ€μ μ€λ λ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzCsjH%2FbtqDyOot4Hr%2FcDkHD8ZvaSdLITkPw3AqJ1%2Fimg.png)
νλ‘μΈμ€μ μ€λ λ
1. νλ‘μΈμ€(Process) μ€ν μ€μΈ νλ‘κ·Έλ¨μΌλ‘ λμ€ν¬λ‘λΆν° λ©μΈ λ©λͺ¨λ¦¬μ μ μ¬λμ΄ CPUμ ν λΉμ λ°μ μ μλ κ²μ΄λ€. μ΄μ체μ λ‘λΆν° μ£Όμ 곡κ°, νμΌ, λ©λͺ¨λ¦¬ λ±μ ν λΉλ°μΌλ©° μ΄κ²λ€μ μ΄μΉνμ¬ νλ‘μΈμ€λΌκ³ νλ€. 1) νλ‘μΈμ€ μ μ΄ λΈλ‘(Process Control Block, PCB) νΉμ νλ‘μΈμ€μ λν μ€μν μ 보(metadata)λ₯Ό μ μ₯νκ³ μλ μ΄μ체μ μ μλ£κ΅¬μ‘°μ΄λ€. μ°κ²° 리μ€νΈλ₯Ό μ΄μ©ν΄ λ©μΈ λ©λͺ¨λ¦¬μμ κ΄λ¦¬λλ©° νλ‘μΈμ€ μμ±κ³Ό λμμ κ³ μ ν PCBκ° μμ±λκ³ νλ‘μΈμ€ μλ£ μ μ κ±°λλ€. CPU ν λΉ ν μμ μ νλ€κ° νλ‘μΈμ€ μ ν(λ¬Έλ§₯ κ΅ν)μ΄ λ°μνλ©΄, PCBμ μ§ννλ μμ μ λͺ¨λ μ μ₯νκ³ CPUλ₯Ό λ°ννλ€. λ€μ CPUλ₯Ό ν λΉλ°κ² λλ©΄, PCBμ μ μ₯λ λ΄μ©μ λΆλ¬μ μ’ λ£λλ..
![μ»΄ν¨ν° μμ€ν
μ ꡬμ±](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fq2uKx%2FbtqDCZcAPi9%2FrHqpJ1A8XvGIAYXqsKxmK0%2Fimg.png)
μ»΄ν¨ν° μμ€ν μ ꡬμ±
μ»΄ν¨ν° μμ€ν μ λ°μ΄ν°λ₯Ό μ²λ¦¬νλ 물리μ κΈ°κ³ μ₯μΉμΈ νλμ¨μ΄μ νΉλ³ν μμ μ μ§μνλ €κ³ λͺ λ Ήμ΄λ‘ μμ±ν νλ‘κ·Έλ¨μΈ μννΈμ¨μ΄λ‘ ꡬμ±λμ΄ μλ€. νλμ¨μ΄ νλ‘μΈμ, λ©λͺ¨λ¦¬, λ²μ€ λ± λ€μν μ£Όλ³ μ₯μΉλ‘ ꡬμ±λμ΄ μλ€. 1. νλ‘μΈμ(CPU) μ΄μ체μ μ κ°μ₯ λ°μ ν νλμ¨μ΄λ‘ μ»΄ν¨ν° κ° λΆλΆμ λμμ μ μ΄νκ³ μ°μ°μ μννλ€. 1) λμ κ³Όμ μ£Ό κΈ°μ΅μ₯μΉλ μ λ ₯μ₯μΉμμ μ λ ₯λ°μ λ°μ΄ν° λλ 보쑰기μ΅μ₯μΉμ μ μ₯λ νλ‘κ·Έλ¨ μ½μ΄μ¨λ€. CPUλ νλ‘κ·Έλ¨μ μ€ννκΈ° μν΄ μ£Ό κΈ°μ΅μ₯μΉμ μ μ₯λ νλ‘κ·Έλ¨ λͺ λ Ήμ΄μ λ°μ΄ν°λ₯Ό μ½μ΄μ μ²λ¦¬νκ³ κ²°κ³Όλ₯Ό λ€μ μ£Ό κΈ°μ΅μ₯μΉμ μ μ₯νλ€. μ£Ό κΈ°μ΅μ₯μΉλ μ²λ¦¬ κ²°κ³Όλ₯Ό 보쑰기μ΅μ₯μΉμ μ μ₯νκ±°λ μΆλ ₯μ₯μΉλ‘ 보λΈλ€. μ μ΄μ₯μΉλ 1~3 κ³Όμ μμ λͺ λ Ήμ΄κ° μμλλ‘ μ€νλλλ‘ κ° μ₯μΉλ₯Ό μ μ΄ν..