ComputerScience π43 [OS] CPU μ€μΌμ€λ§(CPU Scheduling) CPU μ€μΌμ€λ§(CPU Scheduling) CPU μ€μΌμ€λ§μ λ€μ€ νλ‘κ·Έλ¨ μ΄μ체μ μ κΈ°λ³Έμ λλ€. μ΄μ체μ λ CPUλ₯Ό νλ‘μΈμ€ κ°μ κ΅νν¨μΌλ‘μ¨, μ»΄ν¨ν°λ₯Ό λ³΄λ€ μμ°μ μΌλ‘ λ§λλλ€. μ΄λ²μλ κΈ°λ³Έμ μΈ μ€μΌμ€λ§ κ°λ μ μκ°νκ³ μ 리ν΄λ³΄κ² μ΅λλ€. μ½μ΄κ° νλμΈ μμ€ν μμλ νμκ°μ μ€μ§ νλμ νλ‘μΈμ€λ§μ΄ μ€νλ μ μμ΅λλ€. λλ¨Έμ§ νλ‘μΈμ€λ CPUμ μ½μ΄κ° κ°μ© μνκ° λμ΄ λ€μ μ€μΌμ€ λ μ μμ λκΉμ§ κΈ°λ€λ €μΌ ν©λλ€. λ€μ€ νλ‘κ·Έλλ°μ λͺ©μ μ CPU μ΄μ©λ₯ μ μ΅λννκΈ° μν΄ νμ μ€ν μ€μΈ νλ‘μΈμ€λ₯Ό κ°μ§κ² νλ λ° μμ΅λλ€. λ€μ€ νλ‘κ·Έλλ°μ λν κΈ°λ³Έ μμ΄λμ΄λ λΉκ΅μ κ°λ¨ν©λλ€. νλμ νλ‘μΈμ€λ, μ νμ μΈ μ΄λ€ I/O μμ²μ΄ μλ£λκΈ°λ₯Ό κΈ°λ€λ €μΌλ§ ν λκΉμ§ μ€νλ©λλ€. μ΄λ κ² λλ©΄, λ¨μν.. 2022. 2. 20. [OS] μ€λ λ ν(thread pool) μ€λ λ ν [OS] μ€λ λμ λ³νμ±(Thread & Concurrency) μ€λ λμ λ³νμ±(Threads & Concurrency) μ°λ¦¬λ μ΄μ μ μ 리νλ€μνΌ νλ‘μΈμ€ λͺ¨λΈμ ν νλ‘μΈμ€κ° νλμ μ μ΄ μ€λ λλ‘ νλ‘κ·Έλ¨μ μ€ννλ€κ³ κ°μ νμμ΅λλ€. κ·Έλ¬λ κ±°μ λͺ¨λ νλ μ΄μ체μ dkswnkk.tistory.com μ΄μ μΈ μ κΈμμ λ€μ€ μ€λ λλ‘ κ΅¬μ±λ μΉλΈλΌμ°μ λ₯Ό μ€λͺ νμ΅λλ€. κ·Έλ¬ν μΉ μλΉμ€λ μμ²μ λ°μ λλ§λ€ κ·Έ μμ²μ μν μλ‘μ΄ μ€λ λλ₯Ό λ§λ€μ΄ μ€λλ€. μλ‘μ΄ μ€λ λλ₯Ό 맀 μμ²λ§λ€ λ§λ€μ΄ μ£Όλ κ²μ, κ·Έλλ§λ€ μλ‘μ΄ νλ‘μΈμ€λ₯Ό λ§λ€μ΄μ£Όλ κ²λ³΄λ€λ νμ€ν λ μ§λ³΄λ λ°©λ²μμ νλ¦Όμμ§λ§, λ€μ€ μ€λ λ μλ²λ μμ§λ μ¬λ¬ λ¬Έμ λ₯Ό κ°μ§κ³ μμ΅λλ€. 첫 λ²μ§Έ λ¬Έμ λ μλΉμ€ν λλ§λ€ μ€λ λλ₯Ό μμ±νλ .. 2022. 2. 14. [OS] μ€λ λμ λμμ±(Thread & Concurrency) μ€λ λμ λ³νμ±(Threads & Concurrency) μ°λ¦¬λ μ΄μ μ μ 리νλ€μνΌ νλ‘μΈμ€ λͺ¨λΈμ ν νλ‘μΈμ€κ° νλμ μ μ΄ μ€λ λλ‘ νλ‘κ·Έλ¨μ μ€ννλ€κ³ κ°μ νμμ΅λλ€. κ·Έλ¬λ κ±°μ λͺ¨λ νλ μ΄μ체μ λ ν νλ‘μΈμ€κ° λ€μ€ μ€λ λλ₯Ό ν¬ν¨νλ νΉμ±μ μ 곡ν©λλ€. λ€μ€ CPUλ₯Ό μ 곡νλ μ΅μ λ€μ€ μ½μ΄ μμ€ν μμ μ€λ λ μ¬μ©μ ν΅ν λ³λ ¬ μ²λ¦¬μ κΈ°νλ₯Ό μλ³νλ κ²μ΄ μ μ°¨ μ€μν΄μ§λλ€. μ΄λ² μ₯μμλ Pthreads, Windows λ° Java μ€λ λ λΌμ΄λΈλ¬λ¦¬μ© APIμ λν λ Όμλ₯Ό λΉλ‘―νμ¬ λ€μ€ μ€λ λ μ»΄ν¨ν° μμ€ν κ³Ό κ΄λ ¨λ λ§μ κ°λ μ μκ°ν΄ λ³΄κ² μ΅λλ€. λν μ€λ λ μμ± κ°λ μ μΆμννλ λͺ κ°μ§ μλ‘μ΄ κΈ°λ₯μ μ΄ν΄λ³Ό κ±΄λ° μ΄ κΈ°λ₯μ κ°λ°μκ° λ³λ ¬ μ²λ¦¬ κΈ°νλ₯Ό μλ³νκ³ μΈμ΄ μ 곡 κΈ°λ₯ λ° API ν.. 2022. 2. 14. [OS] IPC μμ€ν μ μ¬λ‘(Examples of IPC Systems) IPC μμ€ν μ μ¬λ‘(Examples of IPC Systems) [OS] νλ‘μΈμ€ κ° ν΅μ (Interprocess Communication, IPC) νλ‘μΈμ€ κ° ν΅μ (IPC) μ΄μ체μ λ΄μμ μ€νλλ λ³ν νλ‘μΈμ€λ€μ λ 립μ μ΄κ±°λ λλ νλ ₯μ μΈ νλ‘μΈμ€ λ€μΌ μ μμ΅λλ€. νλ‘μΈμ€κ° μμ€ν μμ μ€ν μ€μΈ λ€λ₯Έ νλ‘μΈμ€λ€κ³Ό λ°μ΄ν°λ₯Ό 곡 dkswnkk.tistory.com μ΄μ μ IPCμ κ°λ μ λν΄ μ΄ν΄λ³΄μμ΅λλ€. μ΄λ²μλ λ€ κ°μ§ λ€λ₯Έ IPC μμ€ν μ μ¬λ‘μ λν΄ μ΄ν΄λ³΄κ² μ΅λλ€. POSIX 곡μ λ©λͺ¨λ¦¬(POSIX Shared Memory) Mach λ©μμ§ μ λ¬(Mach Message Passing) Windows νμ΄ν(Pipes) 1. POSIX 곡μ λ©λͺ¨λ¦¬(POSIX Shared Memory) 곡.. 2022. 2. 10. [OS] νλ‘μΈμ€ κ° ν΅μ (Interprocess Communication, IPC) νλ‘μΈμ€ κ° ν΅μ (IPC) μ΄μ체μ λ΄μμ μ€νλλ λ³ν νλ‘μΈμ€λ€μ λ 립μ μ΄κ±°λ λλ νλ ₯μ μΈ νλ‘μΈμ€ λ€μΌ μ μμ΅λλ€. νλ‘μΈμ€κ° μμ€ν μμ μ€ν μ€μΈ λ€λ₯Έ νλ‘μΈμ€λ€κ³Ό λ°μ΄ν°λ₯Ό 곡μ νμ§ μλ νλ‘μΈμ€λ λ 립μ μ λλ€. νλ‘μΈμ€κ° μμ€ν μμ μ€ν μ€μΈ λ€λ₯Έ νλ‘μΈμ€λ€μ μν₯μ μ£Όκ±°λ λ°λλ€λ©΄ μ΄λ νλ ₯μ μΈ νλ‘μΈμ€λ€μ λλ€. λΆλͺ ν λ€λ₯Έ νλ‘μΈμ€λ€κ³Ό μλ£λ₯Ό 곡μ νλ νλ‘μΈμ€λ μνΈ νλ ₯μ μΈ νλ‘μΈμ€μ λλ€. νλ‘μΈμ€ νλ ₯μ νμ©νλ νκ²½μ μ 곡νλ λ°λ λͺ κ°μ§ μ΄μ κ° μμ΅λλ€. μ 보 곡μ (information sharing): μ¬λ¬ μμ© νλ‘κ·Έλ¨μ΄ λμΌν μ 보(μλ₯Ό λ€λ©΄, 볡μ¬μ λΆμ¬λ£κΈ°)μ ν₯λ―Έλ₯Ό λλ μ μμΌλ―λ‘, κ·Έλ¬ν μ 보λ₯Ό λ³νμ μΌλ‘ μ κ·Όν μ μλ νκ²½μ μ 곡ν΄μΌ νλ€. κ³μ° κ°μν(comp.. 2022. 2. 10. [OS] νλ‘μΈμ€μ κ°λ (Process Concept) νλ‘μΈμ€ κ°λ (Process Concept) μ°λ¦¬κ° μ΄μ체μ λ₯Ό λ Όμν λ ν κ°μ§ μ₯μ λ λͺ¨λ CPU νλλ€μ μ΄λ»κ² λΆλ₯Ό κ²μΈκ° νλ λ°μ μλ¬Έμ΄ μμ΅λλ€. μ΄μ°½κΈ° μ»΄ν¨ν°λ μμ (job)μ μ€ννλ μΌκ΄μ²λ¦¬ μμ€ν μ΄μκ³ , μ¬μ©μ νλ‘κ·Έλ¨ λλ νμ€ν¬(task)λ₯Ό μ€ννλ μλΆν μμ€ν μ΄ λ€λ₯Ό μ΄μμ΅λλ€. λ¨μΌ μ¬μ©μ μμ€ν μμλ μ¬μ©μλ μλ νλ‘μΈμ, μΉ λΈλΌμ°μ λ° μ μ λ©μΌ ν¨ν€μ§μ κ°μ μ¬λ¬ νλ‘κ·Έλ¨μ ν λ²μ μ€νν μ μμ΅λλ€. λν λ€μ€ νμ€νΉμ μ§μνμ§ μλ μλ² λλ μ₯μΉμμμ κ°μ΄ μ»΄ν¨ν°κ° ν λ²μ νλμ νλ‘κ·Έλ¨λ§ μ€νν μ μλλΌλ μ΄μ체μ λ λ©λͺ¨λ¦¬ κ΄λ¦¬μ κ°μ μ체 νλ‘κ·Έλ¨λ λ΄λΆ νλμ μ§μν΄μΌ ν μλ μμ΅λλ€. μ¬λ¬ μΈ‘λ©΄μμ μ΄λ¬ν λͺ¨λ νλμ μ μ¬νλ―λ‘ μ΄λ¬ν λͺ¨λ νλμ .. 2022. 2. 8. [OS] macOS, iOS μ Android μ΄μ체μ macOSμ iOS Appleμ macOSμ΄μ체μ λ μ£Όλ‘ λ°μ€ν¬ν± λ° λ©ν± μ»΄ν¨ν° μμ€ν μμ μ€νλλλ‘ μ€κ³λμμΌλ©° iOSλ iPhone μ€λ§νΈν° λ° iPad νλΈλ¦Ώ μ»΄ν¨ν°μ©μΌλ‘ μ€κ³λ λͺ¨λ°μΌ μ΄μ체μ μ λλ€. ꡬ쑰μ μΌλ‘ macOSμ iOSλ 곡ν΅μ μ΄ λ§μΌλ―λ‘ κ³΅μ νλ λ΄μ©κ³Ό μλ‘ λ€λ₯Έ μ μ κ°μ‘°νμ¬ ν¨κ» μ μν©λλ€. μ΄ λ μμ€ν μ μΌλ°μ μΈ μν€ν μ²λ μλμ μ΄λ―Έμ§μ κ°μ΅λλ€. λ€μν μΈ΅μ μ£Όμ νΉμ§μ λ€μκ³Ό κ°μ΅λλ€. μ¬μ©μ κ²½ν μΈ΅: μ΄ μΈ΅μ μ¬μ©μκ° μ»΄ν¨ν μ₯μΉμ μνΈ μμ©ν μ μλ μννΈμ¨μ΄ μΈν°νμ΄μ€λ₯Ό μ μν©λλ€. macOSλ λ§μ°μ€ λλ νΈλν¨λ μ©μΌλ‘ μ€κ³λ Aqua μ¬μ©μ μΈν°νμ΄μ€λ₯Ό μ¬μ©νλ λ°λ©΄, iOSλ ν°μΉ μ₯μΉμ©μΌλ‘ μ€κ³λ Springboard μ¬μ©μ μΈν°νμ΄μ€λ₯Ό μ¬μ©ν©λλ€. μ.. 2022. 2. 6. [OS] μμ€ν μ½(System Calls) μμ€ν μ½ μμ€ν μ½μ μ΄μ체μ μ μν΄ μ¬μ© κ°λ₯νκ² λ μλΉμ€μ λν μΈν°νμ΄μ€λ₯Ό μ 곡ν©λλ€. νΉμ μ μμ€ μμ (μλ₯Ό λ€λ©΄ νλμ¨μ΄λ₯Ό μ§μ μ κ·Όν΄μΌ νλ μμ )μ μ΄μ λΈλ¦¬ λͺ λ Ήμ μ¬μ©νμ¬ μμ±λμ΄μΌ νλλΌλ μ΄λ¬ν νΈμΆμ μΌλ°μ μΌλ‘ Cμ C++ μΈμ΄λ‘ μμ±λ ν¨μ ννλ‘ μ 곡λ©λλ€. (1) μμ μ΄μ체μ κ° μ΄λ»κ² μμ€ν μ½μ μ¬μ©ν μ μκ² λ§λλμ§μ λν΄ λ ΌμνκΈ° μ μ μμ€ν μ½μ΄ μ΄λ»κ² μ¬μ©λλμ§λ₯Ό μ€λͺ νλ μλ₯Ό νλ² λ€μ΄λ³΄κ² μ΅λλ€. ν νμΌλ‘λΆν° λ°μ΄ν°λ₯Ό μ½μ΄μ λ€λ₯Έ νμΌλ‘ 볡μ¬νλ κ°λ¨ν νλ‘κ·Έλ¨μ μμ±νλ€κ³ κ°μ ν΄ λ΄ μλ€. νλ‘κ·Έλ¨μ΄ νμλ‘ νλ 첫 λ²μ§Έ μ λ ₯μ λ κ°μ νμΌ, μ¦ μ λ ₯ νμΌκ³Ό μΆλ ₯ νμΌμ μ΄λ¦μΌ κ²μ λλ€. μ΄ μ΄λ¦λ€μ μ΄μ체μ μ€κ³μ λ°λΌ μ¬λ¬ κ°μ§ λ°©λ²μΌλ‘ μ§μ ν μ μμ΅λ.. 2022. 2. 5. [OS] μ¬μ©μμ μ΄μ체μ μΈν°νμ΄μ€(User and Operating-System Interface) μ¬μ©μμ μ΄μ체μ μΈν°νμ΄μ€(User and Operating-System Interface) μ¬μ©μκ° μ΄μ체μ μ μ μ΄νλ λ°©μμλ μ¬λ¬ λ°©λ²μ΄ μμ΅λλ€. μ λ μ΄λ²μ μ¬λ¬ κ°μ§ λ°©λ² μ€ 3κ°μ§ κΈ°λ³Έμ μΈ λ°©λ²μ λν΄ μ 리νλ €κ³ ν©λλ€. ν λ°©μμ λͺ λ Ήμ΄ λΌμΈ μΈν°νμ΄μ€ λλ λͺ λ Ή μΈν°ν리ν°(command interpreter)λ₯Ό μ 곡νλ κ²μ λλ€. μ΄ λͺ λ Ήμ΄ λΌμΈ μΈν°νμ΄μ€λ μ¬μ©μκ° μ΄μ체μ κ° μνν λͺ λ Ήμ΄λ₯Ό μ§μ μ λ ₯ν μ μλλ‘ ν©λλ€. λ€λ₯Έ λ κ°μ§ λ°©μμ μ¬μ©μκ° κ·Έλν½ κΈ°λ° μ¬μ©μ μΈν°νμ΄μ€λ₯Ό ν΅νμ¬ μ΄μ체μ μ μ μ΄νκ² νλ κ²μ λλ€. λͺ λ Ή μΈν°νλ¦¬ν° κ·Έλν½ μ¬μ©μ μΈν°νμ΄μ€ ν°μΉμ€ν¬λ¦° μΈν°νμ΄μ€ (1) λͺ λ Ή μΈν°ν리ν°(Command-Interpreter) Linux, Unix λ° Window.. 2022. 2. 3. μ΄μ 1 2 3 4 5 λ€μ