[운영체제] 2κ°• - ν”„λ‘œμ„ΈμŠ€μ™€ μ“°λ ˆλ“œ

2026. 2. 19. 12:18Β·πŸŽ“λ°©μ†‘ν†΅μ‹ λŒ€ν•™κ΅/βš™οΈμš΄μ˜μ²΄μ œ

βœ… 1. ν”„λ‘œμ„ΈμŠ€

(1) ν”„λ‘œμ„ΈμŠ€μ˜ κ°œμš”

  • ν”„λ‘œμ„ΈμŠ€λž€, μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨μ„ μ˜λ―Έν•œλ‹€.
  • μžμ„ΈνžˆλŠ” 보쑰기얡μž₯μΉ˜μ— μ €μž₯λ˜μ–΄ μžˆλŠ” ν”„λ‘œκ·Έλž¨μ΄ CPU에 μ˜ν•΄μ„œ λ©”λͺ¨λ¦¬μ— μ˜¬λΌμ™€μ„œ 싀행이 되고 μžˆλŠ” μƒνƒœλ₯Ό μ˜λ―Έν•œλ‹€.
  • ** 이 κ³Όμ •μ—μ„œ 운영체제의 내뢀적인 ν”„λ‘œμ„ΈμŠ€ κ΄€λ¦¬μž κΈ°λŠ₯이 CPUλ‚˜ λ©”λͺ¨λ¦¬μ™€ 같은 ν•˜λ“œμ›¨μ–΄λ₯Ό μ œμ–΄ λ˜λŠ” κ΄€λ¦¬ν•˜λ©° ν”„λ‘œμ„ΈμŠ€μ˜ λͺ…령을 μ‹€ν–‰ μ‹œμΌœμ€€λ‹€. λ˜ν•œ, ν”„λ‘œμ„ΈμŠ€ 생성 및 μ’…λ£Œ, μƒνƒœ 관리, μŠ€μΌ€μ€„λ§ μž‘μ—…μ„ ν•΄μ€Œ.**

(2) ν”„λ‘œμ„ΈμŠ€μ˜ ꡬ성 - λ©”λͺ¨λ¦¬ ꡬ쑰

  • λ©”λͺ¨λ¦¬ κ΅¬μ‘°λŠ”, ν”„λ‘œκ·Έλž¨ 싀행에 μ§μ ‘μ μœΌλ‘œ ν•„μš”ν•œ μ½”λ“œμ™€ 데이터λ₯Ό μ˜λ―Έν•¨.
  • μ½”λ“œ μ˜μ—­: ν”„λ‘œκ·Έλž¨ 자체λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ½”λ“œ μ˜μ—­μ΄λ©°, λ©”λͺ¨λ¦¬μƒμ— μœ„μΉ˜ν•΄μ•Ό CPUκ°€ 싀행을 ν•  수 있음.
  • 데이터 μ˜μ—­: ν”„λ‘œκ·Έλž¨μ΄ λ™μž‘ν•  λ•Œ ν•„μš”ν•œ λ°μ΄ν„°λ“€μ˜ μ˜μ—­μ΄λ©°, 정적 데이터, νž™, μŠ€νƒ μ˜μ—­ λ“±μœΌλ‘œ λ‚˜λˆ μ„œ 관리함.
  • μŠ€νƒ μ˜μ—­: ν”„λ‘œμ„ΈμŠ€μ—κ²Œ ν• λ‹Ήλœ λ©”λͺ¨λ¦¬ μ•ˆμ—μ„œλ§Œ λ™μž‘μ„ν•˜λ©°, ν•¨μˆ˜ A()κ°€ ν•¨μˆ˜ B() λ₯Ό ν˜ΈμΆœν•˜λ©΄, ν˜„μž¬ A의 μƒνƒœ(λŒμ•„κ°ˆ μ£Όμ†Œ, μ§€μ—­ λ³€μˆ˜ λ“±)λ₯Ό μŠ€νƒμ— Push ν•΄μ„œ μ €μž₯을 해두고 Bκ°€ λλ‚˜λ©΄ μŠ€νƒμ—μ„œ 정보λ₯Ό Pop ν•˜μ—¬ λ‹€μ‹œ A둜 λŒμ•„κ°€ μˆ˜ν–‰ν•˜λŠ” 원리이며, μ΄λŸ¬ν•œ μ˜μ—­μ„ μŠ€νƒ μ˜μ—­μ΄λΌν•¨. μ—¬κΈ°μ„œ μ˜λ―Έν•˜λŠ” μ„œλΈŒν”„λ‘œκ·Έλž¨μ€ ν•¨μˆ˜λ‚˜ λ©”μ„œλ“œλ₯Ό μ˜λ―Έν•œλ‹€κ³  보면됨.
  • 핡심: μš΄μ˜μ²΄μ œκ°€ λ©”λͺ¨λ¦¬λ₯Ό μ΄λŸ¬ν•œ ꡬ쑰둜 λ…Όλ¦¬μ μœΌλ‘œ λ‚˜λˆ μ„œ λ©”λͺ¨λ¦¬μƒμ—μ„œ ν”„λ‘œμ„ΈμŠ€λ“€μ˜ 곡간을 할당을 ν•΄μ£Όλ©° 관리함.

(3) ν”„λ‘œμ„ΈμŠ€μ˜ ꡬ성 - ν”„λ‘œμ„ΈμŠ€ μ œμ–΄ 블둝(PCB)

  • PCBλŠ” λ©”λͺ¨λ¦¬μ— μ‘΄μž¬ν•˜μ§€λ§Œ, κ·Έ 쀑 컀널 λͺ¨λ“œμ—μ„œ 접근이 κ°€λŠ₯ν•œ 컀널 μ˜μ—­ λ‚΄μ˜ ν”„λ‘œμ„ΈμŠ€ ν…Œμ΄λΈ” λ˜λŠ” 컀널 μŠ€νƒμ— μ €μž₯됨.
  • μ΄λŸ¬ν•œ PCB λŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ ν”„λ‘œμ„ΈμŠ€μ˜ μ—¬λŸ¬ 정보λ₯Ό κ°€μ§€κ³  있으며, 정보λ₯Ό 톡해 관리가 κ°€λŠ₯해짐.
  • 핡심: PCB μ—λŠ” ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€κ°€ λ™μž‘ν•˜κΈ° μœ„ν•œ μ—¬λŸ¬ 정보듀을 μ €μž₯ν•˜κ³  μžˆλŠ”λ°, A ν”„λ‘œμ„ΈμŠ€ μ‹€ν–‰ 쀑간에 B ν”„λ‘œμ„ΈμŠ€κ°€ 싀행이 되게 되면 A ν”„λ‘œμ„ΈμŠ€κ°€ μˆ˜ν–‰μ€‘μ΄λ˜ μƒνƒœκ°’λ“€μ΄ μ €μž₯이 λ˜μ–΄μžˆμ–΄μ•Ό ν•˜λ©°, B ν”„λ‘œμ„ΈμŠ€κ°€ λλ‚˜λŠ” μ‹œμ μ— λ‹€μ‹œ A ν”„λ‘œμ„ΈμŠ€λ₯Ό μ‹€ν–‰ ν•  λ•Œ μ΄λŸ¬ν•œ μƒνƒœκ°’λ“€μ„ λ³΅μ›ν•΄μ„œ μˆ˜ν–‰μ΄ λ˜μ–΄μ•Ό ν•œλ‹€. μ΄λ•Œ ν•„μš”ν•œ 것이 μƒνƒœκ°’ λ˜λŠ” μ—¬λŸ¬ 정보λ₯Ό μ €μž₯ν•˜κ³  μžˆλŠ” PCB κ°€ 될 수 있음. ( 이 과정은 κ²°κ΅­ νŠΉμ • 컀널 μŠ€νƒ μ˜μ—­μ— μ €μž₯ν•¨μœΌλ‘œμ¨ λ³΅μ›ν•˜λŠ” κ°œλ…μž„ )

(4) ν”„λ‘œμ„ΈμŠ€ μƒνƒœ 관리 - ν”„λ‘œμ„ΈμŠ€ μƒνƒœ

  • ν”„λ‘œμ„ΈμŠ€ μƒνƒœ: μ΄λŸ¬ν•œ PCB의 ν”„λ‘œμ„ΈμŠ€ μƒνƒœκ°’λ“€μ€ CPU μžμ›μ„ μ—¬λŸ¬ ν”„λ‘œμ„ΈμŠ€μ—κ²Œ 효율적으둜 λ‚˜λˆ μ£ΌκΈ° μœ„ν•œ 기쀀이 될 수 있음. μ¦‰, μ–΄λ–€ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ‹€ν–‰μ‹œν‚€κ³ , μ–΄λ–€ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ‰¬κ²Œ ν• μ§€ κ²°μ •ν•˜λŠ” κ·Όκ±°κ°€ λ°”λ‘œ PCB의 μƒνƒœκ°’μ΄ 될 수 있음.
  • 생성: ν”„λ‘œμ„ΈμŠ€ 생성 κ³Όμ •μ—μ„œ PCB λ₯Ό λ§Œλ“€λ©°, 기본적인 PID λ“± λ‹€μ–‘ν•œ ν”„λ‘œμ„ΈμŠ€ 정보λ₯Ό λ§Œλ“€μ–΄μ„œ μ €μž₯ν•΄λ‘” μƒνƒœ
  • μ€€λΉ„: μ‹€ν–‰ μ€€λΉ„κ°€ λ˜μ–΄ CPU 할당을 κΈ°λ‹€λ¦¬λŠ” μƒνƒœ
  • μ‹€ν–‰: ν”„λ‘œμ„ΈμŠ€κ°€ μ‹€μ œλ‘œ μ²˜λ¦¬κ°€ λ˜λŠ” μƒνƒœμ΄λ©°, 이 과정은 κ°„λ‹¨ν•˜κ²Œ λͺ…λ Ήμ–΄λ₯Ό μ²˜λ¦¬ν•˜λŠ” μƒνƒœ
  • λŒ€κΈ°: ν”„λ‘œμ„ΈμŠ€ 싀행쀑에 였랜 μ‹œκ°„μ΄ κ±Έλ¦¬λŠ” I/O μž‘μ—…μ΄ λ°œμƒν•΄ CPUλ₯Ό μžμ›μ„ 잠깐 보λ₯˜ν•œ μƒνƒœ
  • μ’…λ£Œ: ν”„λ‘œμ„ΈμŠ€κ°€ μ’…λ£Œλ˜μ–΄ 더 이상 μ‹€ν–‰λ˜μ§€ μ•Šλ„λ‘ λλ‚œ μƒνƒœ

(5) ν”„λ‘œμ„ΈμŠ€ μƒνƒœ 관리 - ν”„λ‘œμ„ΈμŠ€ μƒνƒœ λ³€ν™”

  • 1. ν”„λ‘œμ„ΈμŠ€ μƒνƒœλŠ” 생성 μƒνƒœμ—μ„  μ€€λΉ„ μƒνƒœλ‘œλ§Œ 갈 수 있음. 
  • 2. λ””μŠ€νŒ¨μΉ˜: μ€€λΉ„ νμ—μ„œ νŠΉμ • ν”„λ‘œμ„ΈμŠ€μ˜ μˆœμ„œκ°€ λœλ‹€λ©΄ μ‹€ν–‰ μƒνƒœλ‘œ 이동을 ν•˜κ²Œ λ˜λŠ”λ° μ΄λ•Œ CPUλ₯Ό ν• λ‹Ή λ°›λŠ” μƒνƒœκ°€ λœλ‹€. 이 과정을 λ””μŠ€νŒ¨μΉ˜λΌκ³  ν•œλ‹€.
  • 3. ν• λ‹Ήμ‹œκ°„ 만료: μ‹€ν–‰μ€‘μ΄λ˜ ν”„λ‘œμ„ΈμŠ€κ°€ λλ‚˜μ§€ μ•Šμ•˜μ§€λ§Œ, ν• λ‹Ή 받은 μ‹œκ°„μ΄ λλ‚˜κ²Œ 되면 λ‹€μ‹œ μ€€λΉ„ 큐둜 λŒμ•„κ°€ μ€€λΉ„ μƒνƒœκ°€ λœλ‹€. λ˜ν•œ, ν• λ‹Ή μ‹œκ°„μ΄ λλ‚˜μ§€ μ•Šμ•˜μ§€λ§Œ, μš°μ„ μˆœμœ„κ°€ 높은 ν”„λ‘œμ„ΈμŠ€κ°€ CPUλ₯Ό λΊμ–΄κ°€λŠ” κ²½μš°μ—λ„ μ€€λΉ„ μƒνƒœκ°€ λœλ‹€.
  • - 즉, μ‹€ν–‰μ—μ„œ μ€€λΉ„λ‘œ λ„˜μ–΄κ°€λŠ” κ²½μš°λŠ” νƒ€μ˜μ— μ˜ν•΄μ„œ λ„˜μ–΄κ°€λŠ” κ²½μš°μž„.
  • 4. 이벀트 λŒ€κΈ°: 였랜 μ‹œκ°„μ΄ κ±Έλ¦¬λŠ” I/O λ“±μ˜ μž‘μ—…μ΄ λ°œμƒν•  λ•Œμ—λŠ” 이벀트 λŒ€κΈ°κ°€ λ˜μ–΄ λŒ€κΈ° μƒνƒœκ°€ λœλ‹€.
  • - 이 κ²½μš°μ—λŠ” ν”„λ‘œμ„ΈμŠ€ μžμ²΄κ°€ μžμ˜μ— μ˜ν•΄μ„œ CPUλ₯Ό λ°˜λ‚©ν•˜κ³  λŒ€κΈ°ν•˜λŠ” κ²½μš°μž„.
  • 5. 재개 쑰건 만쑱: I/O μž‘μ—…μ΄ λλ‚˜ μΈν„°λŸ½νŠΈλ₯Ό λ°›μœΌλ©΄ ν•΄λ‹Ή ν”„λ‘œμ„ΈμŠ€λŠ” μ€€λΉ„ 큐둜 λŒμ•„κ°€ μ€€λΉ„ μƒνƒœκ°€ λœλ‹€.
  • 6. 이후 ν”„λ‘œμ„ΈμŠ€μ˜ λͺ…령이 λ‹€ λλ‚˜κ²Œ 되면 μ’…λ£Œ μƒνƒœκ°€ λ˜μ–΄ μ’…λ£Œκ°€ λœλ‹€.

(6) λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€μ™€ μžμ‹ ν”„λ‘œμ„ΈμŠ€

  • νŠΉμ • ν”„λ‘œμ„ΈμŠ€ λ‚΄λΆ€μ—μ„œ μ‹œμŠ€ν…œ ν˜ΈμΆœμ„ 톡해 또 λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€λ₯Ό λ§Œλ“œλŠ” 경우 λΆ€λͺ¨μ™€ μžμ‹ 관계가 됨.
  • μ‰½κ²Œλ§ν•΄, λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€ λ‚΄λΆ€μ—μ„œ μ‹œμŠ€ν…œ ν˜ΈμΆœμ„ ν•΄μ„œ λ§Œλ“€μ–΄μ§€λŠ” ν”„λ‘œμ„ΈμŠ€λŠ” μžμ‹ ν”„λ‘œμ„ΈμŠ€κ°€ 될 수 있음.
  • 이런 λΆ€λͺ¨, μžμ‹ ν”„λ‘œμ„ΈμŠ€ κ΄€κ³„λŠ” μš΄μ˜μ²΄μ œκ°€ λΆ€νŒ…λœ 직후뢀터 컴퓨터λ₯Ό λ„λŠ” μˆœκ°„κΉŒμ§€ λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€λŠ” μƒμ†μ˜ μ‚¬μŠ¬λ‘œ μ—°κ²°λ˜μ–΄μžˆμŒ.
  • 즉, νƒœμ΄ˆμ˜ ν”„λ‘œμ„ΈμŠ€μΈ PID 0λ²ˆμ—μ„œ λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€κ°€ 싀행이 λœλ‹€.
  • PID 0λ²ˆμ„ ν†΅ν•΄μ„œ λ°±κ·ΈλΌμš΄λ“œμ—μ„œ λŒμ•„κ°€λŠ” 각쒅 μ„œλΉ„μŠ€(λ°±μ‹ , λ„€νŠΈμ›Œν¬ μ—…λ°μ΄νŠΈ λ“±) κ΄€λ¦¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨, 둜그인 λΉ„λ°€λ²ˆν˜Έ λ“± λ³΄μ•ˆ λ‹΄λ‹Ήν•˜λŠ” ν”„λ‘œκ·Έλž¨ λ“± λ‹€μ–‘ν•œ ν”„λ‘œμ„ΈμŠ€κ°€ 싀행이 되게 됨.
  • ** κ²°κ΅­ μ‚¬μš©μžκ°€ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰μ‹œν‚€κ²Œ 되면, 바탕화면을 λ‹΄λ‹Ήν•˜λŠ” 바탕화면 ν”„λ‘œμ„ΈμŠ€κ°€ μ‘μš© ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰μ‹œμΌœμ„œ λΆ€λͺ¨ μžμ‹ 관계가 λ˜λŠ” μ›λ¦¬μž„. **

(7) ν”„λ‘œμ„ΈμŠ€ 생성 - μ‹œμŠ€ν…œ 호좜

  • UNIX, Linux 의 κ²½μš°λŠ” fork() ν•¨μˆ˜λ₯Ό ν†΅ν•΄μ„œ ν”„λ‘œμ„ΈμŠ€ 생성 μ‹œμŠ€ν…œ ν˜ΈμΆœμ„ ν•  수 μžˆλ‹€.
  • νŠΉμ • ν”„λ‘œμ„ΈμŠ€ λ‚΄λΆ€μ—μ„œ fork() μ‹œμŠ€ν…œ ν˜ΈμΆœμ„ ν•˜κ²Œ 되면, ν•΄λ‹Ή ν”„λ‘œμ„ΈμŠ€μ™€ PID만 λ‹€λ₯Έ λ™μΌν•œ ν”„λ‘œμ„ΈμŠ€κ°€ λ³΅μ œκ°€ λ˜μ–΄μ„œ λ§Œλ“€μ–΄μ§€κ²Œ λ˜λŠ”λ°, μ΄λ•Œ λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€λŠ” ν•¨μˆ˜μ˜ 호좜 결과둜 μžμ‹ ν”„λ‘œμ„ΈμŠ€μ˜ PID 번호λ₯Ό 받을 수 있음.
  • 즉, PID 정보λ₯Ό κ°€μ§€κ³  있기 λ•Œλ¬Έμ— λΆ€λͺ¨ μžμ‹ 관계가 성립이 λ˜μ–΄ λΆ€λͺ¨λŠ” μžμ‹ PID λ₯Ό ν†΅ν•΄μ„œ μžμ‹ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ’…λ£Œλ₯Ό μ‹œν‚¬ 수 있음.
  • 반면, μžμ‹ ν”„λ‘œμ„ΈμŠ€μ˜ fork() 의 λ°˜ν™˜ κ°’μœΌλ‘œλŠ” 0번 PID λ₯Ό κ°€μ§€κ³  λ˜μ–΄, 본인이 μžμ‹μž„μ„ μ•Œ 수 있음.

  • exec(): μžμ‹ ν”„λ‘œμ„ΈμŠ€λŠ” λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€μ™€λŠ” λ‹€λ₯Έ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰μ‹œν‚€λŠ” 경우 ν˜ΈμΆœν•˜λŠ” μ‹œμŠ€ν…œ 콜 ν•¨μˆ˜λ‹€.
  • fork() λ₯Ό ν˜ΈμΆœν–ˆμ„ λ•Œ, μžμ‹ ν”„λ‘œμ„ΈμŠ€μ˜ 경우 0을 λ°›κΈ° λ•Œλ¬Έμ— pid κ°€ 0인 경우 exec(prg2); λ₯Ό μˆ˜ν–‰ν•˜κ²Œ 되면, exec() ν•¨μˆ˜ 맀개둜 λ„˜κΈ΄ prg2 λΌλŠ” ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰μ‹œν‚€κ²Œ λœλ‹€. μ΄λ ‡κ²Œ 되면, prg2 에 ν•΄λ‹Ήν•˜λŠ” ν”„λ‘œκ·Έλž¨ μ½”λ“œλ‘œ λ°”λ€Œλ©°, 데이터 μ˜μ—­λ„ λ°”λ€Œκ²Œ λœλ‹€. 즉, λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€μ™€ λ‹€λ₯Έ μžμ‹ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ‹€ν–‰ν•˜κ²Œ 됨.

  • Windows의 경우 CreateProcess() λͺ…λ Ήμ–΄λ₯Ό ν†΅ν•΄μ„œ ν”„λ‘œμ„ΈμŠ€λ₯Ό λ§Œλ“€ 수 있음.
  • CreateProcess(prg2, ..., &pid); ν•¨μˆ˜μ—μ„œ prg2 λŠ” νŠΉμ • ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰μ‹œν‚€κ² λ‹€λŠ” 의미이고, pid λŠ” λ§Œλ“€μ–΄μ§€λŠ” μžμ‹ ν”„λ‘œμ„ΈμŠ€μ˜ PID λ₯Ό λ°›κ² λ‹€λŠ” μ˜λ―Έμ΄λ‹€.
  • ** λ¦¬λˆ…μŠ€μ™€ λ‹€λ₯΄κ²Œ ν•œ λ²ˆμ— λ³΅μ œκ°€ μ•„λ‹Œ νŠΉμ • ν”„λ‘œκ·Έλž¨μ„ μˆ˜ν–‰μ‹œν‚€λ©°, pid λ₯Ό λ¦¬ν„΄ν•˜κ²Œ 됨. **

(8) ν”„λ‘œμ„ΈμŠ€ μ’…λ£Œ

  • 1. λΆ€λͺ¨ μžμ‹ 관계λ₯Ό λ– λ‚˜ λ‹¨μˆœνžˆ ν”„λ‘œμ„ΈμŠ€κ°€ λͺ¨λ“  처리λ₯Ό μ™„λ£Œν•˜λ©΄ μ •μƒμ μœΌλ‘œ μ’…λ£Œκ°€ 되게 됨.
  • 2. λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€μ— μ˜ν•΄μ„œ μžμ‹ ν”„λ‘œμ„ΈμŠ€κ°€ κ°•μ œλ‘œ μ’…λ£Œκ°€ 될 수 있음.
  • 이 과정에선 ν”„λ‘œμ„ΈμŠ€ μ’…λ£Œ μ‹œμŠ€ν…œ ν˜ΈμΆœμ„ ν•  수 μžˆλŠ”λ°, 이게 κ°€λŠ₯ν•œ μ΄μœ λŠ” μžμ‹ ν”„λ‘œμ„ΈμŠ€λ₯Ό λ§Œλ“€ λ•Œ PIDλ₯Ό μ–»μ—ˆκΈ° λ•Œλ¬Έμž„.
  • 3. λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€κ°€ μ’…λ£Œλ˜λŠ” κ²½μš°μ— λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€κ°€ μžμ‹ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ’…λ£Œ μ‹œν‚¬ 수 μ—†κΈ° λ•Œλ¬Έμ— μš΄μ˜μ²΄μ œκ°€ μžμ‹ ν”„λ‘œμ„ΈμŠ€λ₯Ό λŒ€μ‹  μ’…λ£Œ μ‹œν‚€κ²Œ 됨.

βœ… 2. μ“°λ ˆλ“œ

(1) 전톡적인 ν”„λ‘œμ„ΈμŠ€

  • μ•žμ„œ 배운 λ‚΄μš©μ€ 전톡적인 ν”„λ‘œμ„ΈμŠ€ 방식이며, ν•˜λ‚˜μ˜ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰μ‹œν‚€κΈ° μœ„ν•œ 전톡적인 λ°©μ‹μ˜ κΈ°λ³Έ λ‹¨μœ„λ‘œ 배움.
  • 즉, 전톡적인 ν”„λ‘œμ„ΈμŠ€λŠ” ν•˜λ‚˜μ˜ λ©”λͺ¨λ¦¬ ꡬ쑰만 κ°€μ§€κ³  있으며, ν•˜λ‚˜μ˜ μ œμ–΄νλ¦„μœΌλ‘œλ§Œ 흐λ₯΄κ²Œ 됨. 즉, 닀쀑 처리 λΆˆκ°€λŠ₯

(2) μ“°λ ˆλ“œ(thread)

  • ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€ λ‚΄μ—μ„œμ˜ λ‹€μ€‘μ²˜λ¦¬λ₯Ό μœ„ν•΄μ„œ λ§Œλ“€μ–΄μ§„ κ°œλ…μž„.
  • 전톡적인 ν”„λ‘œμ„ΈμŠ€μ—μ„œ 싀행은 ν”„λ‘œμ„ΈμŠ€ ν•˜λ‚˜λ§Œμ„ μ˜λ―Έν–ˆμ§€λ§Œ, μ“°λ ˆλ“œ κ°œλ…μ˜ λ“±μž₯으둜 μ‹€ν–‰ λ‹¨μœ„λŠ” μ“°λ ˆλ“œλ‘œ 변경이 됨.
  • λ˜ν•œ, ν”„λ‘œμ„ΈμŠ€κ°€ λ””μŠ€νŒ¨μΉ­μ˜ λ‹¨μœ„μ˜€μ§€λ§Œ, μ“°λ ˆλ“œ κ°œλ…μ˜ λ“±μž₯으둜 μ“°λ ˆλ“œκ°€ λ””μŠ€νŒ¨μΉ­μ˜ λ‹¨μœ„λ‘œ 변경이 됨.
  • λŒ€μ‹  μžμ› μ†Œμœ μ˜ λ‹¨μœ„ μžμ²΄λŠ” ν”„λ‘œμ„ΈμŠ€κ°€ 됨. 즉, ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€ 내에 λ©”λͺ¨λ¦¬ κ΅¬μ‘°λŠ” ν•˜λ‚˜λ‘œ 톡합이 λ˜μ–΄μžˆλŠ” μƒνƒœμž„.
  • ν”„λ‘œμ„ΈμŠ€ λ‚΄μ—μ„œ λ©”λͺ¨λ¦¬ ꡬ쑰와 PCB λŠ” λ™μΌν•˜μ§€λ§Œ, μŠ€νƒ μ˜μ—­μ΄ ν”„λ‘œμ„ΈμŠ€ 직접 κ΄€λ¦¬μ—μ„œ 사라짐.
  • μ—¬λŸ¬ μ œμ–΄λ₯Ό μœ„ν•΄μ„œ PC λ ˆμ§€μŠ€ν„°κ°€ μ“°λ ˆλ“œλ‹Ή ν•˜λ‚˜μ”© κ°€μ§€κ²Œ 됨.
  • ** μ΄λŸ¬ν•œ ꡬ쑰가 κ°€λŠ₯ν•œ μ΄μœ λŠ” ν•˜λ“œμ›¨μ–΄μ μœΌλ‘œ CPU 섀계 λ•Œ μ½”μ–΄ λ‹Ή μŠ€λ ˆλ“œ μˆ˜μ— 영ν–₯을 λ°›μœΌλ©°, μŠ€λ ˆλ“œμˆ˜μ— 맞게 λ ˆμ§€μŠ€ν„° μ„ΈνŠΈλ₯Ό ν•˜λ‚˜μ”© κ°€μ§€κ²Œ 됨. **

(3) μ“°λ ˆλ“œμ™€ ν”„λ‘œμ„ΈμŠ€

  • μ“°λ ˆλ“œ λ‹¨μœ„κ°€ μŠ€νƒμ„ ν•˜λ‚˜μ”© κ°€μ§€κ³  μžˆλŠ” ꡬ쑰가 λ˜μ—ˆμŒ.
  • 즉, μ“°λ ˆλ“œ 내뢀에 λ ˆμ§€μŠ€ν„°, μƒνƒœ λ ˆμ§€μŠ€ν„°, μŠ€νƒ λ ˆμ§€μŠ€ν„°.. 등이 μ—¬λŸ¬ μ„ΈνŠΈλ‘œ μ‘΄μž¬ν•˜κ²Œ 됨.
  • μŠ€νƒμ—λŠ” μ„œλΈŒν”„λ‘œκ·Έλž¨λ“€μ˜ ν˜ΈμΆœλ˜λŠ” 관계듀이 μ €μž₯이 λ˜μ–΄μžˆμŒ. 즉, μ“°λ ˆλ“œμ˜ ν˜ΈμΆœμ „ μ½”λ“œ 라인 정보λ₯Ό κ°€μ§€κ³  있음.

(4) 닀쀑 μ“°λ ˆλ“œλ‘œ κ΅¬μ„±λœ ν”„λ‘œμ„ΈμŠ€

  • ν•˜λ“œμ›¨μ–΄μ μœΌλ‘œ μ½”μ–΄μˆ˜μ™€ μ“°λ ˆλ“œ μˆ˜κ°€ λ‹€μ€‘μœΌλ‘œ λ˜μ–΄μžˆλŠ” 경우 μ—¬λŸ¬ μ“°λ ˆλ“œκ°€ 효율적으둜 λ³‘λ ¬λ‘œ μ²˜λ¦¬κ°€ κ°€λŠ₯함.
  • 역할을 λ‚˜λˆ μ„œ μ²˜λ¦¬μ†λ„λ₯Ό 높일 μˆ˜λ„ 있음.

'πŸŽ“λ°©μ†‘ν†΅μ‹ λŒ€ν•™κ΅ > βš™οΈμš΄μ˜μ²΄μ œ' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[운영체제] 6κ°• - κ΅μ°©μƒνƒœ(1)  (0) 2026.03.20
[운영체제] 5κ°• - 병행 ν”„λ‘œμ„ΈμŠ€(2)  (0) 2026.03.18
[운영체제] 4κ°• - 병행 ν”„λ‘œμ„ΈμŠ€(1)  (0) 2026.03.06
[운영체제] 3κ°• - ν”„λ‘œμ„ΈμŠ€ μŠ€μΌ€μ€„λ§  (0) 2026.02.27
[운영체제] 1κ°• - 운영체제 μ†Œκ°œ  (0) 2026.02.18
'πŸŽ“λ°©μ†‘ν†΅μ‹ λŒ€ν•™κ΅/βš™οΈμš΄μ˜μ²΄μ œ' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [운영체제] 5κ°• - 병행 ν”„λ‘œμ„ΈμŠ€(2)
  • [운영체제] 4κ°• - 병행 ν”„λ‘œμ„ΈμŠ€(1)
  • [운영체제] 3κ°• - ν”„λ‘œμ„ΈμŠ€ μŠ€μΌ€μ€„λ§
  • [운영체제] 1κ°• - 운영체제 μ†Œκ°œ
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • 전체
    였늘
    μ–΄μ œ
    • 전체보기 (211)
      • πŸŽ“λ°©μ†‘ν†΅μ‹ λŒ€ν•™κ΅ (65)
        • βš™οΈμ»΄ν“¨ν„°μ˜ 이해 (11)
        • πŸ’»μ»΄ν“¨ν„°κ³Όν•™ 개둠 (15)
        • πŸ”’μžλ£Œκ΅¬μ‘° (14)
        • πŸ§¬μ•Œκ³ λ¦¬μ¦˜ (5)
        • βš™οΈμš΄μ˜μ²΄μ œ (6)
        • πŸ•ΈοΈμ΄μ‚°μˆ˜ν•™ (2)
        • πŸŒμœ λΉ„μΏΌν„°μŠ€ μ»΄ν“¨νŒ… (11)
        • πŸ–₯️컴퓨터과학과 (1)
      • πŸ› οΈBackend (70)
        • πŸ“šλ°±μ—”λ“œ 곡뢀 (4)
        • β˜•Java (23)
        • 🌳Spring (13)
        • βš™οΈC (12)
        • ⚑Python (15)
        • JavaScript (1)
        • πŸ›’οΈDatabase (0)
        • Algorithm Problem Solving (2)
      • 🌐 Network (7)
        • πŸ“œHTTP (7)
      • πŸš€DevOps (1)
      • β›ΊμŠ€νŒŒλ₯΄νƒ€μ½”λ”©ν΄λŸ½ (64)
      • 정보 (2)
      • 정리가 ν•„μš”ν•œ κΈ€ (2)
  • λΈ”λ‘œκ·Έ 메뉴

    • ν™ˆ
    • νƒœκ·Έ
    • λ°©λͺ…둝
  • 링크

    • GitHub
  • 곡지사항

  • 인기 κΈ€

  • νƒœκ·Έ

    Java
    μ•Œκ³ λ¦¬μ¦˜
    λ°©μ†‘λŒ€
    운영체제
    spring
    μžλ°”
    λ°°μ—΄
    자료ꡬ쑰
    C μ–Έμ–΄
    μœ λΉ„μΏΌν„°μŠ€
    ν•¨μˆ˜
    Cμ–Έμ–΄
    μ»΄ν“¨ν„°μ˜ 이해
    λ°©ν†΅λŒ€
    파이썬
    λ°©μ†‘ν†΅μ‹ λŒ€ν•™κ΅
    컴퓨터과학과
    Python
    μœ λΉ„μΏΌν„°μŠ€ μ»΄ν“¨νŒ…κ°œλ‘ 
    컴퓨터과학 개둠
  • 졜근 λŒ“κΈ€

  • 졜근 κΈ€

  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.1
junbin2
[운영체제] 2κ°• - ν”„λ‘œμ„ΈμŠ€μ™€ μ“°λ ˆλ“œ
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”