λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ›  컴퓨터과학: CS

[운영체제] μŠ€λ ˆλ“œ (μŠ€λ ˆλ“œ μ •μ˜, μŠ€λ ˆλ“œ κ΄€λ ¨ μš©μ–΄, λ©€ν‹°μŠ€λ ˆλ“œ ꡬ쑰와 μž₯단점)

by 🐀 쀀콩이 2023. 8. 17.

πŸ’‘ μŠ€λ ˆλ“œμ˜ μ •μ˜

 

ν”„λ‘œμ„ΈμŠ€μ˜ μž‘μ—… 과정을 μžμ„Ένžˆ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€. μš΄μ˜μ²΄μ œλŠ” μ½”λ“œμ™€ 데이터λ₯Ό λ©”λͺ¨λ¦¬μ— κ°€μ Έμ˜€κ³ , PCB λ₯Ό μƒμ„±ν•˜κ³ , μž‘μ—…μ— ν•„μš”ν•œ λ©”λͺ¨λ¦¬ μ˜μ—­μ„ ν™•λ³΄ν•œ ν›„, μ€€λΉ„λœ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ€€λΉ„ 큐에 μ‚½μž…ν•©λ‹ˆλ‹€. ν”„λ‘œμ„ΈμŠ€κ°€ μƒμ„±λ˜λ©΄ CPU μŠ€μΌ€μ€„λŸ¬λŠ” ν”„λ‘œμ„ΈμŠ€κ°€ ν•΄μ•Ό ν•  일을 CPU 에 μ „λ‹¬ν•˜κ³  μ‹€μ œ μž‘μ—…μ€ CPU κ°€ μˆ˜ν–‰ν•©λ‹ˆλ‹€. μ΄λ•Œ CPU μŠ€μΌ€μ€„λŸ¬κ°€ CPU 에 μ „λ‹¬ν•˜λŠ” 일 ν•˜λ‚˜κ°€ μŠ€λ ˆλ“œμž…λ‹ˆλ‹€. κ·ΈλŸ¬λ―€λ‘œ CPU κ°€ μ²˜λ¦¬ν•˜λŠ” μž‘μ—…μ˜ λ‹¨μœ„λŠ” ν”„λ‘œμ„ΈμŠ€λ‘œλΆ€ν„° 전달받은 μŠ€λ ˆλ“œμž…λ‹ˆλ‹€. 운영체제 μž…μž₯μ—μ„œμ˜ μž‘μ—… λ‹¨μœ„λŠ” ν”„λ‘œμ„ΈμŠ€μ΄κ³  CPU μž…μž₯μ—μ„œμ˜ μž‘μ—… λ‹¨μœ„λŠ” μŠ€λ ˆλ“œμΈ κ²ƒμž…λ‹ˆλ‹€. ν”„λ‘œμ„ΈμŠ€ μž…μž₯μ—μ„œ μŠ€λ ˆλ“œλ₯Ό λ‹€μŒκ³Ό 같이 μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

μŠ€λ ˆλ“œλž€ ν”„λ‘œμ„ΈμŠ€μ˜ μ½”λ“œμ— μ •μ˜λœ μ ˆμ°¨μ— 따라 CPU 에 μž‘μ—… μš”μ²­μ„ ν•˜λŠ” μ‹€ν–‰ λ‹¨μœ„μž…λ‹ˆλ‹€.

 

 

πŸ’‘ μŠ€λ ˆλ“œ κ΄€λ ¨ μš©μ–΄

 

ν”„λ‘œμ„ΈμŠ€μ™€ μŠ€λ ˆλ“œμ˜ 차이점을 μ€‘μ‹¬μœΌλ‘œ κ΄€λ ¨ μš©μ–΄λ₯Ό μ •λ¦¬ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

 

  • λ©€ν‹°μŠ€λ ˆλ“œ: ν”„λ‘œμ„ΈμŠ€ λ‚΄ μž‘μ—…μ„ μ—¬λŸ¬ 개의 μŠ€λ ˆλ“œλ‘œ λΆ„ν• ν•¨μœΌλ‘œμ¨ μž‘μ—…μ˜ 뢀담을 μ€„μ΄λŠ” ν”„λ‘œμ„ΈμŠ€ 운영 기법
  • λ©€ν‹°νƒœμŠ€ν‚Ή: μš΄μ˜μ²΄μ œκ°€ CPU 에 μž‘μ—…μ„ 쀄 λ•Œ μ‹œκ°„μ„ 잘게 λ‚˜λˆ„μ–΄ λ°°λΆ„ν•˜λŠ” 기법
  • λ©€ν‹°ν”„λ‘œμ„Έμ‹±: CPU λ₯Ό μ—¬λŸ¬ 개 μ‚¬μš©ν•˜μ—¬ μ—¬λŸ¬ 개의 μŠ€λ ˆλ“œλ₯Ό λ™μ‹œμ— μ²˜λ¦¬ν•˜λŠ” μž‘μ—… ν™˜κ²½
  • CPU λ©€ν‹°μŠ€λ ˆλ“œ: ν•œ λ²ˆμ— ν•˜λ‚˜μ”© μ²˜λ¦¬ν•΄μ•Ό ν•˜λŠ” μŠ€λ ˆλ“œλ₯Ό νŒŒμ΄ν”„λΌμΈ 기법을 μ΄μš©ν•˜μ—¬ λ™μ‹œμ— μ—¬λŸ¬ μŠ€λ ˆλ“œλ₯Ό μ²˜λ¦¬ν•˜λ„λ‘ λ§Œλ“  병렬 처리 기법

 

 

πŸ’‘ λ©€ν‹°μŠ€λ ˆλ“œμ˜ ꡬ쑰

 

C 언어와 같은 초기의 ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‘œ μ—¬λŸ¬ 개의 μž‘μ—…μ„ λ™μ‹œμ— μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄ fork() μ‹œμŠ€ν…œ ν˜ΈμΆœμ„ μ‚¬μš©ν•˜μ—¬ λΆ€λͺ¨μ™€ λ˜‘κ°™μ€ ν”„λ‘œμ„ΈμŠ€λ₯Ό μƒμ„±ν•˜κ±°λ‚˜, exec() μ‹œμŠ€ν…œ 호좜둜 ν”„λ‘œμ„ΈμŠ€λ₯Ό μ „ν™˜ν•˜λŠ” 방법을 μ΄μš©ν–ˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ fork() μ‹œμŠ€ν…œ ν˜ΈμΆœμ„ 낭비적인 μš”μ†Œκ°€ λ§ŽμŠ΅λ‹ˆλ‹€. fork() μ‹œμŠ€ν…œ 호좜둜 ν”„λ‘œμ„ΈμŠ€λ₯Ό λ³΅μ‚¬ν•˜λ©΄ μ½”λ“œ μ˜μ—­κ³Ό 데이터 μ˜μ—­μ˜ 일뢀가 λ©”λͺ¨λ¦¬μ— μ€‘λ³΅λ˜μ–΄ μ‘΄μž¬ν•˜κ²Œ λ©λ‹ˆλ‹€.

 

λ©€ν‹°νƒœμŠ€ν‚Ήμ˜ λ‚­λΉ„ μš”μ†Œ

 

μŠ€λ ˆλ“œλŠ” μ΄λŸ¬ν•œ λ©€ν‹°νƒœμŠ€ν‚Ήμ˜ λ‚­λΉ„ μš”μ†Œλ₯Ό μ œκ±°ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ©λ‹ˆλ‹€. λΉ„μŠ·ν•œ 일을 ν•˜λŠ” 2개의 ν”„λ‘œμ„ΈμŠ€λ₯Ό λ§Œλ“œλŠ” λŒ€μ‹  μ½”λ“œ, 데이터 등을 κ³΅μœ ν•˜λ©΄μ„œ μ—¬λŸ¬ 개의 일을 ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€ λ‚΄μ—μ„œ ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

 

λ©€ν‹°νƒœμŠ€ν‚Ήκ³Ό λ©€ν‹°μŠ€λ ˆλ“œμ˜ ꡬ쑰

 

μœ„ 그림은 λ©€ν‹°νƒœμŠ€ν‚Ήκ³Ό λ©€ν‹°μŠ€λ ˆλ“œμ˜ 차이λ₯Ό λ³΄μ—¬μ€λ‹ˆλ‹€. μ™Όμͺ½ 그림처럼 fork() μ‹œμŠ€ν…œ 호좜둜 μ—¬λŸ¬ 개의 ν”„λ‘œμ„ΈμŠ€λ₯Ό λ§Œλ“€λ©΄ ν•„μš” μ—†λŠ” 정적 μ˜μ—­μ΄ μ—¬λŸ¬ κ°œκ°€ λ©λ‹ˆλ‹€. 반면, ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€ 내에 μ—¬λŸ¬ 개의 μŠ€λ ˆλ“œλ₯Ό μƒμ„±ν•˜λŠ” λ©€ν‹°μŠ€λ ˆλ“œλŠ” μ½”λ“œ, νŒŒμΌλ“±μ˜ μžμ›μ„ κ³΅μœ ν•¨μœΌλ‘œμ¨ μžμ›μ˜ λ‚­λΉ„λ₯Ό 막고 νš¨μœ¨μ„±μ„ ν–₯μƒν•©λ‹ˆλ‹€.

 

 

πŸ’‘ λ©€ν‹°μŠ€λ ˆλ“œμ˜ μž₯점

 

ν”„λ‘œμ„ΈμŠ€ λ‚΄ κ³΅μœ κ°€ κ°€λŠ₯ν•œ 뢀뢄을 μ œμ™Έν•˜κ³  μ‹€ν–‰κ³Ό κ΄€λ ¨λœ 뢀뢄을 μŠ€λ ˆλ“œλ‘œ λ‚˜λˆ„μ–΄ κ΄€λ¦¬ν•˜λ©΄ μžμ›μ˜ 쀑볡 μ‚¬μš©μ„ ν”Όν•¨μœΌλ‘œμ¨ λ‚­λΉ„λ₯Ό 막을 수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€μ—μ„œ μ—¬λŸ¬ μŠ€λ ˆλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ μž‘μ—…μ˜ νš¨μœ¨μ„ 높일 수 μžˆμŠ΅λ‹ˆλ‹€.

 

λ©€ν‹°μŠ€λ ˆλ“œμ˜ μž₯점은 λ‹€μŒκ³Ό 같이 μš”μ•½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

  • 응닡성 ν–₯상: ν•œ μŠ€λ ˆλ“œκ°€ μž…μΆœλ ₯으둜 인해 μž‘μ—…μ΄ μ§„ν–‰λ˜μ§€ μ•Šλ”λΌλ„ λ‹€λ₯Έ μŠ€λ ˆλ“œκ°€ μž‘μ—…μ„ κ³„μ†ν•˜μ—¬ μ‚¬μš©μžμ˜ μž‘μ—… μš”κ΅¬μ— 빨리 응닡할 수 μžˆμŠ΅λ‹ˆλ‹€.
  • μžμ› 곡유: ν•œ ν”„λ‘œμ„ΈμŠ€ λ‚΄μ—μ„œ 독립적인 μŠ€λ ˆλ“œλ₯Ό μƒμ„±ν•˜λ©΄ ν”„λ‘œμ„ΈμŠ€κ°€ κ°€μ§„ μžμ›μ„ λͺ¨λ“  μŠ€λ ˆλ“œκ°€ κ³΅μœ ν•˜κ²Œ λ˜μ–΄ μž‘μ—…μ„ μ›ν™œν•˜κ²Œ μ§„ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • νš¨μœ¨μ„± ν–₯상: μ—¬λŸ¬ 개의 ν”„λ‘œμ„ΈμŠ€λ₯Ό μƒμ„±ν•˜λŠ” 것과 달리 λ©€ν‹°μŠ€λ ˆλ“œλŠ” λΆˆν•„μš”ν•œ μžμ›μ˜ 쀑볡을 λ§‰μŒμœΌλ‘œμ¨ μ‹œμŠ€ν…œμ˜ 효율이 ν–₯μƒλ©λ‹ˆλ‹€.
  • 닀쀑 CPU 지원: 2개 μ΄μƒμ˜ CPU λ₯Ό κ°€μ§„ μ»΄ν“¨ν„°μ—μ„œ λ©€ν‹°μŠ€λ ˆλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ 닀쀑 CPU κ°€ λ©€ν‹°μŠ€λ ˆλ“œλ₯Ό λ™μ‹œμ— μ²˜λ¦¬ν•˜μ—¬ CPU μ‚¬μš©λŸ‰μ΄ μ¦κ°€ν•˜κ³  ν”„λ‘œμ„ΈμŠ€ 처리 μ‹œκ°„μ΄ λ‹¨μΆ•λ©λ‹ˆλ‹€.

 

 

πŸ’‘ λ©€ν‹°μŠ€λ ˆλ“œμ˜ 단점

 

λ©€ν‹°μŠ€λ ˆλ“œλŠ” μœ„μ™€ 같은 μž₯점뿐 μ•„λ‹ˆλΌ 단점도 μžˆμŠ΅λ‹ˆλ‹€.

 

 

μœ„ 그림은 λ§ˆμ΄ν¬λ‘œμ†Œν”„νŠΈ 인터넷 μ΅μŠ€ν”Œλ‘œλŸ¬μ™€ ꡬ글 크둬의 ν™”λ©΄μž…λ‹ˆλ‹€. 두 λΈŒλΌμš°μ €λŠ” λ©€ν‹°νƒ­ κΈ°λŠ₯을 μ΄μš©ν•˜μ—¬ μ—¬λŸ¬ 개의 화면을 λ„μšΈ 수 μžˆλŠ”λ°, 인터넷 μ΅μŠ€ν”Œλ‘œλŸ¬λŠ” ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€μ— λ©€ν‹°μŠ€λ ˆλ“œλ₯Ό μ‚¬μš©ν•˜κ³  크둬은 μ—¬λŸ¬ 개의 ν”„λ‘œμ„ΈμŠ€λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

 

μ—¬λŸ¬ 개의 ν”„λ‘œμ„ΈμŠ€λ₯Ό μ‚¬μš©ν•˜λŠ” 것은 λ‚­λΉ„ μš”μ†Œκ°€ μžˆμ–΄ λ©€ν‹°μŠ€λ ˆλ“œλ₯Ό μ‚¬μš©ν•œλ‹€κ³  ν–ˆμ§€λ§Œ, μ΄λŠ” λ‹¨μ μœΌλ‘œ μž‘μš©ν•˜κΈ°λ„ ν•©λ‹ˆλ‹€. λ©€ν‹°μŠ€λ ˆλ“œμ˜ 경우 λͺ¨λ“  μŠ€λ ˆλ“œκ°€ μžμ›μ„ κ³΅μœ ν•˜κΈ° λ•Œλ¬Έμ— ν•œ μŠ€λ ˆλ“œμ— λ¬Έμ œκ°€ 생기면 전체 ν”„λ‘œμ„ΈμŠ€μ— 영ν–₯을 미치게 λ©λ‹ˆλ‹€.

 

인터넷 μ΅μŠ€ν”Œλ‘œλŸ¬μ—μ„œ μ—¬λŸ¬ 개의 화면을 λ™μ‹œμ— λ„μ› λŠ”λ° κ·Έ 쀑 ν•˜λ‚˜μ— λ¬Έμ œκ°€ 생겼닀고 κ°€μ •ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€. λ¬Έμ œκ°€ μžˆλŠ” 화면을 κ°•μ œλ‘œ μ’…λ£Œν•˜λ©΄ κ·Έ ν™”λ©΄λ§Œ 사라지지 μ•Šκ³  인터넷 μ΅μŠ€ν”Œλ‘œλŸ¬ 전체가 μ’…λ£Œλ©λ‹ˆλ‹€. 인터넷 μ΅μŠ€ν”Œλ‘œλŸ¬ ν”„λ‘œμ„ΈμŠ€λŠ” ν•˜λ‚˜μ΄κ³  κ·Έ μ•ˆμ— μ—¬λŸ¬ 개의 μŠ€λ ˆλ“œλ₯Ό μ‚¬μš©ν•˜λ―€λ‘œ μŠ€λ ˆλ“œλ§Œ μ’…λ£Œλ˜λŠ” 것이 μ•„λ‹ˆλΌ ν”„λ‘œμ„ΈμŠ€ 전체가 μ’…λ£Œλ˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.

 

ν•œνŽΈ 크둬은 각 화면이 독립적인 ν”„λ‘œμ„ΈμŠ€μ΄λ―€λ‘œ 그쀑 ν•˜λ‚˜μ— λ¬Έμ œκ°€ μƒκ²¨μ„œ μ’…λ£Œν•΄λ„ λ‹€λ₯Έ 화면에 λ―ΈμΉ˜λŠ” 영ν–₯이 μ μŠ΅λ‹ˆλ‹€. 크둬은 λ©€ν‹°μŠ€λ ˆλ“œμ˜ μ‚¬μš©μœΌλ‘œ 인해 λ‹€λ₯Έ μŠ€λ ˆλ“œκ°€ 영ν–₯을 λ°›λŠ” 것을 μ΅œμ†Œν™”ν•˜κΈ° μœ„ν•΄ λ‚­λΉ„ μš”μ†Œκ°€ μžˆλ”λΌλ„ λ©€ν‹°μŠ€λ ˆλ“œ λŒ€μ‹  λ©€ν‹°νƒœμŠ€ν‚Ήμ„ μ΄μš©ν•©λ‹ˆλ‹€.

 

 

πŸ’‘ μ°Έκ³ 

 

μ‰½κ²Œ λ°°μš°λŠ” 운영체제 - μ‘°μ„±ν˜Έ