λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
  • Dev Blog

CS/운영체제18

[운영체제] ꡐ착 μƒνƒœ(Deadlock) 패슀트캠퍼슀 운영체제 κ°•μ˜μ™€ μ‰½κ²Œ λ°°μš°λŠ” 운영체제 κ΅μž¬μ— λŒ€ν•œ TILμž…λ‹ˆλ‹€. ꡐ착 μƒνƒœ ꡐ착 μƒνƒœλž€ 2개 μ΄μƒμ˜ μž‘μ—…μ΄ λ™μ‹œμ— μ΄λ£¨μ–΄μ§€λŠ” 경우, λ‹€λ₯Έ μž‘μ—…μ΄ λλ‚˜κΈ°λ§Œ 기닀리며 μž‘μ—…μ„ 더 이상 μ§„ν–‰ν•˜μ§€ λͺ»ν•˜λŠ” μƒνƒœλ₯Ό μ˜λ―Έν•œλ‹€. ꡐ착 μƒνƒœλŠ” κΈ°μ•„ μƒνƒœ(Starvation)와 λΉ„μŠ·ν•΄ λ³΄μ΄μ§€λ§Œ 차이가 μžˆλ‹€. κΈ°μ•„ μƒνƒœλŠ” 잘λͺ»λœ μ •μ±…μœΌλ‘œ νŠΉμ • ν”„λ‘œμ„ΈμŠ€μ˜ μž‘μ—…μ΄ μ§€μ—°λ˜λŠ” 문제인 반면, ꡐ착 μƒνƒœλŠ” μ—¬λŸ¬ ν”„λ‘œμ„ΈμŠ€κ°€ μž‘μ—…μ„ μ§„ν–‰ν•˜λ‹€ λ³΄λ‹ˆ λ°œμƒν•˜λŠ” μžμ—°μ μΈ ν˜„μƒμ΄λ‹€. μžμ› ν• λ‹Ή κ·Έλž˜ν”„ μžμ› ν• λ‹Ή κ·Έλž˜ν”„λŠ” ν”„λ‘œμ„ΈμŠ€κ°€ μ–΄λ–€ μžμ›μ„ μ‚¬μš© 쀑이고 μ–΄λ–€ μžμ›μ„ 기닀리고 μžˆλŠ”μ§€λ₯Ό λ°©ν–₯성이 μžˆλŠ” κ·Έλž˜ν”„λ‘œ ν‘œν˜„ν•œ 것이닀. μžμ› ν• λ‹Ή κ·Έλž˜ν”„μ—μ„œ ν”„λ‘œμ„ΈμŠ€λŠ” μ›μœΌλ‘œ, μžμ›μ€ μ‚¬κ°ν˜•μœΌλ‘œ ν‘œν˜„ν•œλ‹€. μžμ›μ„ μ‚¬μš©ν•˜λŠ” 경우(ν• λ‹Ήλœ 경우)λŠ” μžμ›μ—.. 2023. 4. 23.
[운영체제] 동기화(Synchronization) 패슀트캠퍼슀 운영체제 κ°•μ˜μ™€ μ‰½κ²Œ λ°°μš°λŠ” 운영체제 κ΅μž¬μ— λŒ€ν•œ TILμž…λ‹ˆλ‹€. λ©€ν‹° ν”„λ‘œμ„ΈμŠ€λ‚˜ λ©€ν‹° μŠ€λ ˆλ“œ ν™˜κ²½μ—μ„œλŠ” μ—¬λŸ¬ 개의 ν”„λ‘œμ„ΈμŠ€λ‚˜ μŠ€λ ˆλ“œκ°€ ν•œμ •λœ μžμ›μ„ 가지고 κ³΅λ™μœΌλ‘œ μž‘μ—…ν•  수 μžˆλŠ”λ° μ΄λ•Œ, λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆλ‹€. 경쟁 μƒνƒœ 곡유 μžμ›μ€ μ—¬λŸ¬ ν”„λ‘œμ„ΈμŠ€λ‚˜ μŠ€λ ˆλ“œκ°€ κ³΅λ™μœΌλ‘œ μ΄μš©ν•˜λŠ” λ³€μˆ˜, λ©”λͺ¨λ¦¬, 파일 등을 λ§ν•œλ‹€. 곡유 μžμ›μ€ κ³΅λ™μœΌλ‘œ 이용되기 λ•Œλ¬Έμ— λˆ„κ°€ μ–Έμ œ 데이터λ₯Ό μ½κ±°λ‚˜ μ“°λŠλƒμ— 따라 κ·Έ κ²°κ³Όκ°€ λ‹¬λΌμ§ˆ 수 있고 이λ₯Ό 데이터 뢈일치(Data Inconsistency)라고 ν•œλ‹€. 2개 μ΄μƒμ˜ ν”„λ‘œμ„ΈμŠ€λ‚˜ μŠ€λ ˆλ“œκ°€ 곡유 μžμ›μ„ λ³‘ν–‰ν•΄μ„œ μ½κ±°λ‚˜ μ“°λŠ” 상황을 경쟁 μƒνƒœ(Race Condition)라고 ν•œλ‹€. λ”°λΌμ„œ, λ™κΈ°ν™”λŠ” 경쟁 μƒνƒœλ₯Ό 막고 λ°μ΄ν„°μ˜ 일관성(Data Consistency)을 유.. 2023. 4. 23.
[운영체제] IPC 패슀트캠퍼슀 운영체제 κ°•μ˜μ™€ μ‰½κ²Œ λ°°μš°λŠ” 운영체제 κ΅μž¬μ— λŒ€ν•œ TILμž…λ‹ˆλ‹€. ν”„λ‘œμ„ΈμŠ€ κ°„ 톡신(IPC) ν”„λ‘œμ„ΈμŠ€ ν˜Ήμ€ μŠ€λ ˆλ“œλŠ” λ…λ¦½μ μœΌλ‘œ μ‹€ν–‰λœλ‹€. λ…λ¦½μ μœΌλ‘œ μ‹€ν–‰λœλ‹€λŠ” 것은 ν”„λ‘œμ„ΈμŠ€/μŠ€λ ˆλ“œλŠ” λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€/μŠ€λ ˆλ“œμ˜ 곡간을 μ ‘κ·Όν•  수 μ—†λ‹€. μ™œλƒν•˜λ©΄, λ‚΄ ν”„λ‘œμ„ΈμŠ€μ˜ λ°μ΄ν„°λ‚˜ μ½”λ“œλ₯Ό λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€κ°€ λ°”κΏ€ 수 있게 ν•˜λŠ” 것은 μœ„ν—˜ν•œ 일이기 λ•Œλ¬Έμ΄λ‹€. ν˜„λŒ€μ˜ 컴퓨터 μ‹œμŠ€ν…œμ€ μ„±λŠ₯을 높이기 μœ„ν•΄ μ—¬λŸ¬ ν”„λ‘œμ„ΈμŠ€/μŠ€λ ˆλ“œλ₯Ό λ™μ‹œμ— μ‹€ν–‰ν•˜λŠ”λ° μ΄λ•Œ, ν”„λ‘œμ„ΈμŠ€/μŠ€λ ˆλ“œ κ°„ μƒνƒœ 확인 및 데이터 μ†‘μˆ˜μ‹ μ€ κΌ­ ν•„μš”ν•˜λ‹€. λ”°λΌμ„œ, ν”„λ‘œμ„ΈμŠ€ κ°„ 톡신 방법을 μ œκ³΅ν•˜λŠ”λ°, 이λ₯Ό Inter Process Communication(IPC)라고 ν•œλ‹€. λŒ€λΆ€λΆ„μ˜ IPC 기법은 컀널 곡간을 ν™œμš©ν•˜λŠ” 것이닀. μ™œλƒν•˜λ©΄, 컀널 곡간은 λͺ¨λ“  ν”„λ‘œ.. 2023. 4. 23.
[운영체제] CPU μŠ€μΌ€μ€„λ§ 패슀트캠퍼슀 운영체제 κ°•μ˜μ™€ μ‰½κ²Œ λ°°μš°λŠ” 운영체제 κ΅μž¬μ— λŒ€ν•œ TILμž…λ‹ˆλ‹€. CPU μŠ€μΌ€μ€„λ§ CPU μŠ€μΌ€μ€„λ§μ΄λž€ μ–΄λ–€ μž‘μ—…μ— CPUλ₯Ό 배정할지 κ²°μ •ν•˜λŠ” 것이닀. 컴퓨터 μ‹œμŠ€ν…œμ˜ νš¨μœ¨μ€ μ–΄λ–€ ν”„λ‘œμ„ΈμŠ€μ— CPUλ₯Ό λ¨Όμ € λ°°μ •ν•˜λŠλƒμ— 따라 λ‹¬λΌμ§€λ―€λ‘œ CPU μŠ€μΌ€μ€„λ§μ€ μž‘μ—…μ˜ ν˜•ν‰μ„±κ³Ό νš¨μœ¨μ„±μ„ κ²°μ •ν•˜λŠ” μ€‘μš”ν•œ 일이닀. CPU μŠ€μΌ€μ€„λ§μ€ 규λͺ¨μ— 따라 κ³ μˆ˜μ€€ μŠ€μΌ€μ€„λ§, 쀑간 μˆ˜μ€€ μŠ€μΌ€μ€„λ§, μ €μˆ˜μ€€ μŠ€μΌ€μ€„λ§μœΌλ‘œ κ΅¬λΆ„λœλ‹€. κ³ μˆ˜μ€€ μŠ€μΌ€μ€„λ§ μ‹œμŠ€ν…œ λ‚΄μ˜ 전체 μž‘μ—… 수λ₯Ό μ‘°μ ˆν•˜λŠ” 것이닀. 즉, κ³ μˆ˜μ€€ μŠ€μΌ€μ€„λ§ λ‹¨κ³„μ—μ„œλŠ” μ–΄λ–€ μž‘μ—…μ„ μ‹œμŠ€ν…œμ΄ 받아듀일지 λ˜λŠ” 거뢀할지λ₯Ό κ²°μ •ν•œλ‹€. λ˜ν•œ, κ³ μˆ˜μ€€ μŠ€μΌ€μ€„λ§μ— 따라 μ‹œμŠ€ν…œ λ‚΄μ—μ„œ λ™μ‹œμ— μ‹€ν–‰ κ°€λŠ₯ν•œ ν”„λ‘œμ„ΈμŠ€μ˜ 총 κ°œμˆ˜κ°€ 정해진닀. 쀑간 μˆ˜μ€€ μŠ€μΌ€μ€„λ§ κ³ μˆ˜μ€€ μŠ€μΌ€μ€„λ§κ³Ό μ €μˆ˜μ€€ μŠ€μΌ€μ€„.. 2023. 4. 23.