7. 병행 ν”„λ‘œμ„ΈμŠ€μ™€ 동기화 β‘ 

이 글은 λ³‘ν–‰ν”„λ‘œμ„ΈμŠ€μ™€ μƒν˜Έλ°°μ œμ— λŒ€ν•΄ λ‹€λ£¨κ² μŠ΅λ‹ˆλ‹€. μŠ€μΌ€μ€„λ§μ΄λž€ 주어진 μ‹œμ μ—μ„œ μ–΄λ–€ ν”„λ‘œμ„ΈμŠ€κ°€ 이 μžμ›μ„ μ‚¬μš©ν•  수 μžˆλ„λ‘ ν•΄ 쀄 것인가λ₯Ό κ²°μ •ν•˜λŠ” 것을 λœ»ν•©λ‹ˆλ‹€. 전체적인 λ‚΄μš©μ€ OS? Oh Yes! μ„œμ  기반, μˆ™λͺ…μ—¬λŒ€ κΉ€μ£Όκ·  κ΅μˆ˜λ‹˜ κ°•μ˜, ν‹°μŠ€ν† λ¦¬ 등을 μ •λ¦¬ν–ˆμŠ΅λ‹ˆλ‹€. κ³΅λΆ€ν•œ 것을 μ •λ¦¬ν•˜λŠ” ν˜•μ‹μœΌλ‘œ μž‘μ„±λ˜μ—ˆμœΌλ―€λ‘œ 였λ₯˜κ°€ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. 였λ₯˜ λ°œκ²¬μ‹œ λŒ“κΈ€λ‘œ κΌ­ λ§μ”€ν•΄μ£Όμ„Έμš”! μ‹œμž‘ν•΄λ³ΌκΉŒμš”? Concurrent Processes (병행 ν”„λ‘œμ„ΈμŠ€) λ³‘λ ¬μ²˜λ¦¬λŠ” μ—¬λŸ¬ 개의 ν”„λ‘œμ„ΈμŠ€κ°€ λ™μ‹œμ— μ‹€ν–‰ κ°€λŠ₯함을 λœ»ν•˜λŠ” 반면 λ³‘ν–‰μ΄λž€ λ©”λͺ¨λ¦¬μ— μ—¬λŸ¬ ν”„λ‘œμ„ΈμŠ€κ°€ 같이 μ‘΄μž¬ν•œλ‹€λŠ” λœ»μ΄λ―€λ‘œ λ³‘λ ¬κ³ΌλŠ” λ‹€λ₯Έ κ°œλ…μž…λ‹ˆλ‹€. 병행성은 처리기의 μˆ˜μ™€ 상관 μ—†μœΌλ‚˜, λ³‘λ ¬μ²˜λ¦¬κ°€ μ„±κ³΅ν•˜κΈ° μœ„ν•΄μ„œλŠ” 기본적으둜 병행성이 μ „μ œλ˜μ–΄μ•Ό ν•˜λŠ” κ΄€..

CS/OS 2020. 1. 11. 23:41
5. Thread(μŠ€λ ˆλ“œ)

이 글은 μŠ€λ ˆλ“œ λŒ€ν•΄ λ‹€λ£¨κ² μŠ΅λ‹ˆλ‹€. OS? Oh Yes! μ„œμ  기반, μˆ™λͺ…μ—¬λŒ€ κΉ€μ£Όκ·  κ΅μˆ˜λ‹˜ κ°•μ˜, Chegg 등을 μ •λ¦¬ν–ˆμŠ΅λ‹ˆλ‹€. κ³΅λΆ€ν•œ 것을 μ •λ¦¬ν•˜λŠ” ν˜•μ‹μœΌλ‘œ μž‘μ„±λ˜μ—ˆμœΌλ―€λ‘œ 였λ₯˜κ°€ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. 였λ₯˜ λ°œκ²¬μ‹œ λŒ“κΈ€λ‘œ κΌ­ λ§μ”€ν•΄μ£Όμ„Έμš”! μ‹œμž‘ν•΄λ³ΌκΉŒμš”? Thread (μŠ€λ ˆλ“œ) μ§€λ‚œ 글은 ν”„λ‘œμ„ΈμŠ€λ₯Ό λ‹€λ€„λ³΄μ•˜μŠ΅λ‹ˆλ‹€. 였늘 정리할 μŠ€λ ˆλ“œλŠ” ν”„λ‘œμ„ΈμŠ€μ™€ 맀우 관련이 κΉŠμœΌλ‹ˆ κ·Έ 관계λ₯Ό μ˜ˆμ‹œλ₯Ό 톡해 μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€. 유튜브λ₯Ό μ‹œμ²­ν•  λ•Œ λ™μ˜μƒλ„ λ‚˜μ˜€μ§€λ§Œ μ˜†μ— μΆ”μ²œ μ˜μƒλ„ 뜨고, ν•˜λ‹¨μ—λŠ” λŒ“κΈ€λž€κ³Ό κ΄‘κ³  λ°°λ„ˆλ“€μ΄ λ™μž‘ν•˜μ£ . μ΄λ ‡κ²Œ μœ νŠœλΈŒλΌλŠ” 큰 ν”„λ‘œμ„ΈμŠ€μ— 각각의 μž‘μ€ 일, 즉 μŠ€λ ˆλ“œκ°€ μž‘λ™ν•˜λŠ” 것이라고 μƒκ°ν•˜λ©΄ μ‰¬μšΈ 것 κ°™μŠ΅λ‹ˆλ‹€. [ Multi-Threading ] (λ‹€μ€‘μŠ€λ ˆλ”©) ν•œ ν”„λ‘œμ„ΈμŠ€μ— μ†ν•œ μ—¬λŸ¬ μŠ€λ ˆλ“œλ“€μ€ ν”„λ‘œμ„Έ..

CS/OS 2020. 1. 10. 19:49
4. Process (ν”„λ‘œμ„ΈμŠ€)

이 글은 ν”„λ‘œμ„ΈμŠ€μ— λŒ€ν•΄ λ‹€λ£¨κ² μŠ΅λ‹ˆλ‹€. OS? Oh Yes! μ„œμ  기반, μˆ™λͺ…μ—¬λŒ€ κΉ€μ£Όκ·  κ΅μˆ˜λ‹˜ κ°•μ˜, Chegg 등을 μ •λ¦¬ν–ˆμŠ΅λ‹ˆλ‹€. κ³΅λΆ€ν•œ 것을 μ •λ¦¬ν•˜λŠ” ν˜•μ‹μœΌλ‘œ μž‘μ„±λ˜μ—ˆμœΌλ―€λ‘œ 였λ₯˜κ°€ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. 였λ₯˜ λ°œκ²¬μ‹œ λŒ“κΈ€λ‘œ κΌ­ λ§μ”€ν•΄μ£Όμ„Έμš”! μ‹œμž‘ν•΄λ³ΌκΉŒμš”? Process ν”„λ‘œμ„ΈμŠ€μ— λŒ€ν•΄ μ„€λͺ…을 ν•  λ•Œ a program in execution (μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨)μ΄λΌλŠ” ν‘œν˜„μ„ 많이 μ”λ‹ˆλ‹€. 눈치λ₯Ό μ±„μ…¨λŠ”μ§€ λͺ¨λ₯΄κ² μ§€λ§Œ μ‹€ν–‰ μ€‘μ΄λΌλŠ” 것은 λ‹¨μˆœνžˆ λ””μŠ€ν¬μ— 머물러 μžˆλŠ” ν”„λ‘œκ·Έλž¨μ΄ μ•„λ‹Œ λ©”λͺ¨λ¦¬μ— 등둝이 λ˜μ–΄ μžˆλ‹€λŠ” λœ»μž…λ‹ˆλ‹€. κ·Έλ ‡λ‹€λ©΄ ν”„λ‘œμ„ΈμŠ€λŠ” μ‹œμŠ€ν…œ λ‚΄μ—μ„œ μ–΄λ–€ λͺ¨μŠ΅μœΌλ‘œ μ‘΄μž¬ν• κΉŒμš”? ν”„λ‘œμ„ΈμŠ€λŠ” ν…Œμ΄λΈ” λͺ¨μ–‘μ˜ 자료ꡬ쑰인 PCB(Process Control Block, ν”„λ‘œμ„ΈμŠ€ μ œμ–΄ 블둝)의 ν˜•νƒœλ‘œ μ‘΄μž¬ν•©λ‹ˆλ‹€. ..

CS/OS 2020. 1. 10. 03:05
3. λ“€μ–΄κ°€κΈ° 전에 β‘’

이 글은 본격적으둜 μš΄μ˜μ²΄μ œμ— λŒ€ν•΄ 닀루기 이전에 미리 μƒμ‹μ μœΌλ‘œ μ•Œλ©΄ 쒋을 것 같은 λ‚΄μš©λ“€μ„ λ‹€λ£¨κ² μŠ΅λ‹ˆλ‹€. OS? Oh Yes! μ„œμ  기반, μˆ™λͺ…μ—¬λŒ€ κΉ€μ£Όκ·  κ΅μˆ˜λ‹˜ κ°•μ˜, μœ„ν‚€ν”Όλ””μ•„ 등을 μ •λ¦¬ν–ˆμŠ΅λ‹ˆλ‹€. κ³΅λΆ€ν•œ 것을 μ •λ¦¬ν•˜λŠ” ν˜•μ‹μœΌλ‘œ μž‘μ„±λ˜μ—ˆμœΌλ―€λ‘œ 였λ₯˜κ°€ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. 였λ₯˜ λ°œκ²¬μ‹œ λŒ“κΈ€λ‘œ κΌ­ λ§μ”€ν•΄μ£Όμ„Έμš”! μ‹œμž‘ν•΄λ³ΌκΉŒμš”? μ‹œμž‘ μ „ (작)μ—¬λ‹΄ λ§ˆμ§€λ§‰ 'λ“€μ–΄κ°€κΈ° 전에'μž…λ‹ˆλ‹€. μ΄λ²ˆμ— λ‹€λ£° λ‚΄μš©λ“€μ€ 컴퓨터 ꡬ쑰 μˆ˜μ—…μ„ λ“€μ–΄λ΄€λ‹€λ©΄ ν•œ λ²ˆμ”©μ€ 더 μ‹¬λ„μžˆκ²Œ 닀뀄봀을 λ‚΄μš©μž…λ‹ˆλ‹€. μ €λŠ” 컴퓨터 ꡬ쑰λ₯Ό μˆ˜κ°•ν•  λ‹Ήμ‹œ λ„ˆλ¬΄λ„ˆλ¬΄λ„ˆλ¬΄λ„ˆλ¬΄ 이 μˆ˜μ—…μ΄ μ‹«μ–΄ 정말 μž¬μˆ˜κ°•λ§Œ λ©΄ν•˜μž... λΌλŠ” μƒκ°μœΌλ‘œ κ³΅λΆ€ν–ˆλ˜ κ³Όλͺ©μž…λ‹ˆλ‹€. 그런데 운영체제λ₯Ό κ³΅λΆ€ν•˜λ‹€λ³΄λ‹ˆ 컴퓨터 ꡬ쑰와 λ„ˆλ¬΄ λ°€μ ‘ν•œ 관계λ₯Ό 가지고 μžˆμ—ˆκ³ , 운영체제λ₯Ό λ„ˆλ¬΄ 재미있게 곡뢀..

CS/OS 2020. 1. 9. 05:15
2. λ“€μ–΄κ°€κΈ° 전에⑑

이 글은 본격적으둜 μš΄μ˜μ²΄μ œμ— λŒ€ν•΄ 닀루기 이전에 미리 μƒμ‹μ μœΌλ‘œ μ•Œλ©΄ 쒋을 것 같은 λ‚΄μš©λ“€μ„ λ‹€λ£¨κ² μŠ΅λ‹ˆλ‹€. OS? Oh Yes! μ„œμ  기반, μˆ™λͺ…μ—¬λŒ€ κΉ€μ£Όκ·  κ΅μˆ˜λ‹˜ κ°•μ˜, OSS 등을 μ •λ¦¬ν–ˆμŠ΅λ‹ˆλ‹€. κ³΅λΆ€ν•œ 것을 μ •λ¦¬ν•˜λŠ” ν˜•μ‹μœΌλ‘œ μž‘μ„±λ˜μ—ˆμœΌλ―€λ‘œ 였λ₯˜κ°€ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. 였λ₯˜ λ°œκ²¬μ‹œ λŒ“κΈ€λ‘œ κΌ­ λ§μ”€ν•΄μ£Όμ„Έμš”! μ‹œμž‘ν•΄λ³ΌκΉŒμš”? OS의 λͺ©μ  μš΄μ˜μ²΄μ œλŠ” μ‚¬μš©μžμ˜ μž…μž₯κ³Ό μ„€κ³„μžμ˜ μž…μž₯μ—μ„œ κ·Έ λͺ©μ μ„ κ΅¬λΆ„ν•΄μ„œ μ„€λͺ…ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 우리 같은 μ‚¬μš©μžμ˜ μž…μž₯μ—μ„œ μš΄μ˜μ²΄μ œλŠ” 컴퓨터λ₯Ό 보닀 λΉ λ₯΄κ³  νŽΈλ¦¬ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆλ„λ‘ ν•΄μ£Όμ–΄μ•Ό ν•˜κ³ , 배우기 쉽고 믿음이 κ°€μ•Όν•©λ‹ˆλ‹€. 그리고 (μ•žμœΌλ‘œ μš°λ¦¬κ°€ 될 μˆ˜λ„ μžˆλŠ”) μ„€κ³„μžμ˜ μž…μž₯μ—μ„œ μš΄μ˜μ²΄μ œλŠ” 섀계, μœ μ§€, λ³΄μˆ˜κ°€ 쉽고 적응성이 μ’‹μœΌλ©° 였λ₯˜ 없이 νš¨μœ¨μ μ΄μ–΄μ•Ό ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ 이 ..

CS/OS 2020. 1. 8. 22:33
1. λ“€μ–΄κ°€κΈ° 전에①

이 글은 본격적으둜 μš΄μ˜μ²΄μ œμ— λŒ€ν•΄ 닀루기 이전에 미리 μƒμ‹μ μœΌλ‘œ μ•Œλ©΄ 쒋을 것 같은 λ‚΄μš©λ“€μ„ λ‹€λ£¨κ² μŠ΅λ‹ˆλ‹€. OS? Oh Yes! μ„œμ  기반, μˆ™λͺ…μ—¬λŒ€ κΉ€μ£Όκ·  κ΅μˆ˜λ‹˜ κ°•μ˜, μœ„ν‚€ν”Όλ””μ•„ 등을 μ •λ¦¬ν–ˆμŠ΅λ‹ˆλ‹€. κ³΅λΆ€ν•œ 것을 μ •λ¦¬ν•˜λŠ” ν˜•μ‹μœΌλ‘œ μž‘μ„±λ˜μ—ˆμœΌλ―€λ‘œ 였λ₯˜κ°€ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. 였λ₯˜ λ°œκ²¬μ‹œ λŒ“κΈ€λ‘œ κΌ­ λ§μ”€ν•΄μ£Όμ„Έμš”! μ‹œμž‘ν•΄λ³ΌκΉŒμš”? μ‹œμž‘ μ „ (작)μ—¬λ‹΄ μ§€λ‚œ ν•™κΈ° 싱가포λ₯΄μ˜ NTU둜 κ΅ν™˜ν•™μƒμ„ λ‹€λ…€μ™”κ³ , λ‹€μŒ ν•™κΈ° μ—­μ‹œ NTUμ—μ„œ λ³΄λ‚΄κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 그리 λŒ€λ‹¨ν•œ 것을 ν•˜κ³  μ˜€μ§€λŠ” μ•Šμ•˜μ§€λ§Œ 개인적으둜 쒋은 μŠ΅κ΄€ν•˜λ‚˜λŠ” 듀이고 온 것 κ°™μŠ΅λ‹ˆλ‹€. 세계 10, 11μœ„λ₯Ό λ‹€νˆ¬λŠ” ν•™κ΅μ˜ μˆ˜μ—…μ€ μ–΄λ– ν• κΉŒ? λΌλŠ” μ§ˆλ¬Έμ„ ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ– λ‚œ κ³³μ΄μ—ˆλŠ”λ° κ΅μˆ˜λ‹˜λ“€μ˜ κ°•μ˜λ ₯(을 μ œκ°€ λ…Όν•  것은 μ•„λ‹™λ‹ˆλ‹€λ§Œ 감히 ν•΄λ³΄μžλ©΄)이 λ›°μ–΄λ‚œ 것은 ..

CS/OS 2020. 1. 8. 20:03