ComputerScience π/μ΄μ체μ 23 [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. [OS] λΆμ°μμ€ν (Distributed Systems) μλ‘ λΆμ° μμ€ν (Distributed Systems) λΆμ° μμ€ν μ 물리μ μΌλ‘ λ¨μ΄μ Έ μλ μ΄κΈ°μ’ (νλ μ΄μμ νλ‘μΈμ λλ μ½μ΄λ₯Ό μ¬μ©νλ μμ€ν ) μ»΄ν¨ν°λ€μ μ§ν©μ λλ€. λΆμ° μμ€ν μ μ»΄ν¨ν°λ€μ μ¬μ©μκ° μμ€ν λ΄μ λ€μν μμλ€μ μ κ·Όν μ μλλ‘ λ€νΈμν¬λ‘ μ°κ²°λμ΄ μμ΅λλ€. 곡μ μμμ λν μ κ·Όμ κ³μ° μλμ κΈ°λ₯, λ°μ΄ν° κ°μ©μ± λ° μ λ’°μ±μ ν₯μμν΅λλ€. λͺλͺ μ΄μ체μ λ λ€νΈμνΉμ μμΈν μ¬νμ λ€νΈμν¬ μΈν°νμ΄μ€μ μ₯μΉ λλΌμ΄λ²μ ν¬ν¨μν΄μΌλ‘μ¨ λ€νΈμν¬μ λν μ κ·Όμ νμΌ μ κ·Ό ννλ‘ μΌλ°νμν΅λλ€. λ€λ₯Έ μ΄μ체μ λ€μ μ¬μ©μκ° νΉμ λ€νΈμν¬ κΈ°λ₯μ λͺ μμ μΌλ‘ νΈμΆνκ² ν©λλ€. μΌλ°μ μΌλ‘ μμ€ν μμλ λ λͺ¨λκ° νΌμ¬λμ΄ μμΌλ©° κ·Έ μλ‘ FTP(File Transfer Protocol)μ NFS(.. 2022. 2. 2. [OS] κ°μν(Virtualization) μλ‘ κ°μν(Virtualization) κ°μνλ λ¨μΌ μ»΄ν¨ν°(CPU, λ©λͺ¨λ¦¬, λμ€ν¬ λλΌμ΄λΈ, λ€νΈμν¬ μΈν°νμ΄μ€ μΉ΄λ λ±)μ νλμ¨μ΄λ₯Ό μ¬λ¬ κ°μ§ μ€ν νκ²½μΌλ‘ μΆμννμ¬ κ°λ³ νκ²½μ΄ μμ λ§μ μ»΄ν¨ν°μμ μ€νλκ³ μλ€λ νμμ λ§λ€ μ μλ κΈ°μ μ λλ€. μ΄λ¬ν νκ²½μ λμμ μ€νλκ³ μλ‘ μνΈ μμ©ν μ μλ λ€λ₯Έ κ°λ³ μ΄μ체μ (μ: Windows λ° UNIX)λ‘ λ³Ό μ μμ΅λλ€. κ°μ λ¨Έμ μ μ¬μ©μλ λ¨μΌ μ΄μ체μ μμ λμμ μ€νλλ λ€μν νλ‘μΈμ€ κ°μ μ νν μ μλ κ²κ³Ό λμΌν λ°©μμΌλ‘ λ€μν μ΄μ체μ κ°μ μ νν μ μμ΅λλ€. κ°μνλ μ΄μ체μ κ° λ€λ₯Έ μ΄μ체μ λ΄μμ νλμ μμ©μ²λΌ μνλ μ μκ² ν©λλ€. μΈλ» 보μμλ κ·Έλ¬ν κΈ°λ₯μ΄ λ³ μ΄μ κ° μλ κ²μ²λΌ 보μ΄μ§λ§ κ°μν μ°μ μ λ°©λνλ©° μ±μ₯.. 2022. 2. 2. μ΄μ 1 2 3 λ€μ