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

CS31

[운영체제] 동기화(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.
[운영체제] μŠ€λ ˆλ“œ 패슀트캠퍼슀 운영체제 κ°•μ˜μ™€ μ‰½κ²Œ λ°°μš°λŠ” 운영체제 κ΅μž¬μ— λŒ€ν•œ TILμž…λ‹ˆλ‹€. μŠ€λ ˆλ“œλž€? ν”„λ‘œμ„ΈμŠ€κ°€ μƒμ„±λ˜λ©΄ CPU μŠ€μΌ€μ€„λŸ¬λŠ” ν”„λ‘œμ„ΈμŠ€κ°€ ν•΄μ•Ό ν•  일을 CPU에 μ „λ‹¬ν•˜κ³  μ‹€μ œ μž‘μ—…μ€ CPUκ°€ μˆ˜ν–‰ν•œλ‹€. μ΄λ•Œ CPU μŠ€μΌ€μ€„λŸ¬κ°€ CPU에 μ „λ‹¬ν•˜λŠ” 일 ν•˜λ‚˜κ°€ μŠ€λ ˆλ“œλ‹€. 즉, CPUκ°€ μ²˜λ¦¬ν•˜λŠ” μž‘μ—…μ˜ λ‹¨μœ„λŠ” ν”„λ‘œμ„ΈμŠ€λ‘œλΆ€ν„° 전달받은 μŠ€λ ˆλ“œκ°€ λœλ‹€. λ”°λΌμ„œ, 운영체제의 μž‘μ—… λ‹¨μœ„λ₯Ό ν”„λ‘œμ„ΈμŠ€λΌκ³  ν•œλ‹€λ©΄ CPU의 μž‘μ—… λ‹¨μœ„λ₯Ό μŠ€λ ˆλ“œλΌκ³  ν•œλ‹€. ν”„λ‘œμ„ΈμŠ€μ™€ μŠ€λ ˆλ“œμ˜ 차이 ν”„λ‘œμ„ΈμŠ€λΌλ¦¬λŠ” μ•½ν•˜κ²Œ μ—°κ²°λ˜μ–΄ μžˆλ‹€. μ•½ν•˜κ²Œ μ—°κ²°λ˜μ–΄ μžˆλ‹€λŠ” 것은 각각의 ν”„λ‘œμ„ΈμŠ€λŠ” λ…λ¦½λœ λ©”λͺ¨λ¦¬ μ˜μ—­μ„ 가지며, μ„œλ‘œ λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€ κ°„μ—λŠ” λ©”λͺ¨λ¦¬ 곡유λ₯Ό ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” 것이닀. μ΄λ ‡κ²Œ 독립적인 ν”„λ‘œμ„ΈμŠ€λŠ” μ„œλ‘œ λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€λΌλ¦¬ 데이터λ₯Ό 주고받을 λ•Œ ν”„λ‘œμ„Έ.. 2023. 4. 14.