λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
  • μž₯원읡 κΈ°μˆ λΈ”λ‘œκ·Έ
πŸ’» Computer Science/- Operating System

[운영체제] 16. μ΅œμ†Œμž‘μ—… μš°μ„  μŠ€μΌ€μ€„λ§ (SJF μŠ€μΌ€μ€„λ§) μ•Œκ³ λ¦¬μ¦˜

by Wonit 2019. 12. 12.

운영체제의 μŠ€μΌ€μ€„λ§ μ•Œκ³ λ¦¬μ¦˜μ„ ν‰κ°€ν•˜κΈ° μœ„ν•΄μ„œλŠ” λ‹€μŒκ³Ό 같은 νŠΉμ„±μ„ μΆ©λΆ„νžˆ 이해해야 ν•œλ‹€.

  • ν”„λ‘œμ„Έμ„œ μ‚¬μš©λ₯ 

ν”„λ‘œμ„Έμ„œλ₯Ό 항상 μ‹€ν–‰μƒνƒœλ‘œ μœ μ§€ν•˜μ—¬ 유휴 μƒνƒœκ°€ λ˜μ§€ μ•Šλ„λ‘ ν•œλ‹€.

  • 처리율

λ‹¨μœ„ μ‹œκ°„λ‹Ή μ™„λ£Œν•˜λŠ” μž‘μ—…μ˜ μˆ˜κ°€ λ§Žλ„λ‘ ν•˜μ—¬ 짧은 μž‘μ—…μ„ μš°μ„  μ²˜λ¦¬ν•˜κ±°λ‚˜ μΈν„°λŸ½νŠΈ 없이 μ²˜λ¦¬ν•œλ‹€

  • λ°˜ν™˜ μ‹œκ°„

μž‘μ—…μ΄ λ©”λͺ¨λ¦¬μ— λ“€μ–΄κ°€κΈ° κΉŒμ§€ κ±Έλ¦° μ‹œκ°„, μ€€λΉ„ 큐에 머무λ₯΄λŠ” μ‹œκ°„, μ‹€ν–‰ μ‹œκ°„, μž…μΆœλ ₯ μ‹œκ°„ λ“± μž‘μ—…μ„ μ™„λ£Œν•˜λŠ”λ° μ†Œμš”λœ μ‹œκ°„

  • λŒ€κΈ° μ‹œκ°„

ν”„λ‘œμ„ΈμŠ€κ°€ 싀행이 되기 μ „ κΉŒμ§€ λŒ€κΈ°λ˜λŠ” μ‹œκ°„μ„ λœ»ν•œλ‹€.

  • λ°˜μ‘ μ‹œκ°„

μž‘μ—…μ„ μš”μ²­ν•œ μ‹œκ°„λΆ€ν„° λ°˜μ‘μ„ μ‹œμž‘ν•˜λŠ” μ‹œκ°„κΉŒμ§€μ˜ 간격

 

μ΅œμ†Œ μž‘μ—… μš°μ„  μŠ€μΌ€μ€„λ§ (SJF μŠ€μΌ€μ€„λ§)

 

μ΅œμ†Œμž‘μ—… μš°μ„  μŠ€μΌ€μ€„λ§μ΄λž€ 각 μž‘μ—…μ˜ ν”„λ‘œμ„Έμ„œ μ‹€ν–‰ μ‹œκ°„μ„ μ΄μš©ν•˜μ—¬ ν”„λ‘œμ„Έμ„œκ°€ μ‚¬μš© κ°€λŠ₯ν•  λ•Œ μ‹€ν–‰ μ‹œκ°„μ΄ κ°€μž₯ 짧은 μž‘μ—…μ— ν• λ‹Ήν•˜λŠ” 방법이닀.

 

μ΅œμ†Œ μž‘μ—… μš°μ„  μŠ€μΌ€μ€„λ§μ€ FIFO μŠ€μΌ€μ€„λ§μ—μ„œ μ‹€ν–‰ μ‹œκ°„μ— λ”°λ₯Έ ν• λ‹Ή λ°©μ‹μ˜ 차이가 FIFO와 SJF의 차이점이라고 ν•  수 μžˆλ‹€.

 

μž₯점

  • 항상 μ‹€ν–‰ μ‹œκ°„μ΄ 짧은 μž‘μ—…μ„ μ‹ μ†ν•˜κ²Œ μ‹€ν–‰ν•˜λ―€λ‘œ 평균 λŒ€κΈ° μ‹œκ°„μ΄ κ°€μž₯ 짧닀.

단점

  • 초기의 κΈ΄ μž‘μ—…μ„ 짧은 μž‘μ—…μ„ μ’…λ£Œν•  λ•Œ κΉŒμ§€ λŒ€κΈ°μ‹œμΌœ κΈ°μ•„κ°€ λ°œμƒν•œλ‹€.
  • 기본적으둜 짧은 μž‘μ—…μ΄ 항상 μ‹€ν–‰λ˜λ„λ‘ μ„€μ •ν•˜λ―€λ‘œ λΆˆκ³΅μ •ν•œ μž‘μ—…μ„ μ‹€ν–‰ν•œλ‹€.
  • μ‹€ν–‰ μ‹œκ°„μ„ μ˜ˆμΈ‘ν•˜κΈ° μ–΄λ €μ›Œ μ‹€μš©μ μ΄μ§€ λͺ»ν•˜λ‹€.

 

비선점 SJF μŠ€μΌ€μ€„λ§μ˜ μ‹€ν–‰

 

μ•„λž˜μ˜ 그림을 λΆ„μ„ν•΄λ³΄μž. μ‹œκ°„μ— 따라 ν”„λ‘œμ„ΈμŠ€μ˜ ν• λ‹Ή 방식 차이λ₯Ό 주의깊게 보자.

 

 

  • p1은 전에 아무 ν”„λ‘œμ„ΈμŠ€κ°€ μ—†κΈ° λ•Œλ¬Έμ— λ°”λ‘œ μ‹€ν–‰ν•œλ‹€.
  • p1의 μ‹€ν–‰ μ‹œκ°„μ΄ 1μΌλ•Œ, 2μΌλ•Œ, 3μΌλ•Œ, 4μΌλ•Œ 각각 p2, p3, p4, p5κ°€ λ“€μ–΄μ˜¨λ‹€.
  • 각각의 ν”„λ‘œμ„ΈμŠ€ μ‹€ν–‰ μ‹œκ°„μ„ λΉ„κ΅ν•˜μ—¬ κ°€μž₯ 짧은 ν”„λ‘œμ„ΈμŠ€ p4λ₯Ό μΈμ§€ν•˜κ³  p4λ₯Ό μ‹€ν–‰ μ‹œν‚¨λ‹€.
  • p4의 싀행이 λλ‚˜κ³  λ‚˜μ„œ κ·Έ λ‹€μŒμ˜ μ‹€ν–‰ μ‹œκ°„μ΄ 짧은 p3λ₯Ό μ‹€ν–‰μ‹œν‚¨λ‹€.
  • p3의 싀행이 λλ‚˜κ³  κ·Έ λ‹€μŒ μ‹€ν–‰ μ‹œκ°„μ΄ 짧은 p5λ₯Ό μ‹€ν–‰ μ‹œν‚¨λ‹€.
  • p5의 싀행이 λλ‚˜κ³  κ·Έ λ‹€μŒ μ‹€ν–‰ μ‹œκ°„μ΄ 짧은 p2λ₯Ό μ‹€ν–‰ μ‹œν‚¨λ‹€.

 

μœ„μ™€ 같은 과정을 거치면 λ°˜ν™˜ μ‹œκ°„κ½ˆ λŒ€κΈ° μ‹œκ°„μ„ 계산할 수 μžˆλ‹€.

 

 

λ°˜ν™˜ μ‹œκ°„ = κ°„νŠΈ μ°¨λ“œμ— μ‹€ν–‰ μˆœμ„œμ— λ”°λ₯Έ μ‹€ν–‰ μ‹œκ°„ + λŒ€κΈ° μ‹œκ°„


λŒ€κΈ° μ‹œκ°„ = λ°˜ν™˜ μ‹œκ°„ - μ‹€ν–‰ μ‹œκ°„

선점 SJF μŠ€μΌ€μ€„λ§μ˜ μ‹€ν–‰

 

선점 SJF μŠ€μΌ€μ€„λ§μ€ 싀행쀑 μ‹€ν–‰ μ‹œκ°„μ— 따라 λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€κ°€ ν”„λ‘œμ„Έμ„œλ₯Ό 선점할 수 있게 ν•œλ‹€.

 

선점 SJF μŠ€μΌ€μ€„λ§

 

μ•„κΉŒμ™€ 같이 뢄석을 ν•΄λ³΄μž

 

  • p1은 아무 ν”„λ‘œμ„ΈμŠ€κ°€ μ—†κΈ° λ•Œλ¬Έμ— λ°”λ‘œ μ‹€ν–‰λœλ‹€.
  • μ‹œκ°„μ΄ 흐λ₯΄κ³  μ‹€ν–‰ μ‹œκ°„μ΄ 1μΌλ•Œ p2κ°€ λ“€μ–΄μ˜€λŠ”λ°, p2의 μ‹€ν–‰ μ‹œκ°„(28)보닀 p1의 μ‹€ν–‰ μ‹œκ°„(10-1=9)κ°€ 더 짧기 λ•Œλ¬Έμ— 계속 μ§„ν–‰ν•œλ‹€.
  • 또 μ‹œκ°„μ΄ 흐λ₯΄κ³  μ‹€ν–‰ μ‹œκ°„ 2일 λ•Œ p3κ°€ λ“€μ–΄μ˜€λŠ”λ° p1의 μ‹€ν–‰ μ‹œκ°„(10-2=8)보닀 p3의 μ‹€ν–‰ μ‹œκ°„(6)이 더 짧기 λ•Œλ¬Έμ— p1의 싀행을 μž μ‹œ μ€‘λ‹¨ν•˜κ³  p3λ₯Ό μ‹€ν–‰μ‹œν‚¨λ‹€.
  • μ‹œκ°„μ΄ 흐λ₯΄κ³  μ‹€ν–‰ μ‹œκ°„ 3μΌλ•Œ p4κ°€ λ“€μ–΄μ˜€λŠ”λ° p3의 μ‹€ν–‰ μ‹œκ°„(6-1=5)보닀 p4의 μ‹€ν–‰ μ‹œκ°„(4)κ°€ 더 짧기 λ•Œλ¬Έμ— p3λ₯Ό μž μ‹œ μ€‘λ‹¨μ‹œν‚€κ³  p4λ₯Ό μ‹€ν–‰ μ‹œν‚¨λ‹€.
  • μ‹œκ°„μ΄ 흐λ₯΄κ³  μ‹€ν–‰ μ‹œκ°„μ΄ 4일 λ•Œ p5κ°€ λ“€μ–΄μ˜€λŠ”λ°, p4의 μ‹€ν–‰ μ‹œκ°„(4-1=3) 보닀 p5의 μ‹€ν–‰ μ‹œκ°„(14)이 κΈΈκΈ° λ•Œλ¬Έμ— p4λ₯Ό κ·ΈλŒ€λ‘œ μœ μ§€μ‹œν‚¨λ‹€.
  • μ‹œκ°„μ΄ 흐λ₯΄κ³  μ‹€ν–‰ μ‹œκ°„μ΄ 7일 λ•Œ p4의 싀행을 끝내고 κ·Έ λ‹€μŒμœΌλ‘œ 짧은 p3λ₯Ό μ‹€ν–‰μ‹œν‚¨λ‹€.
  • 이와 같은 과정을 λ°˜λ³΅ν•œλ‹€..

 

선점 SJF μŠ€μΌ€μ€„λ§λ˜ν•œ μœ„μ™€ 같은 과정을 거치면 λ°˜ν™˜ μ‹œκ°„κ³Ό λŒ€κΈ° μ‹œκ°„μ„ ꡬ할 수 μžˆλ‹€.


ν•˜μ§€λ§Œ λ°˜ν™˜ μ‹œκ°„κ³Ό λŒ€κΈ° μ‹œκ°„μ„ κ΅¬ν•˜κΈ° μœ„ν•΄μ„œ κ³ λ €ν•΄μ•Ό ν•  것듀이 μžˆλ‹€.

 

 

λ°˜ν™˜ μ‹œκ°„ = μ’…λ£ŒκΉŒμ§€ κ±Έλ¦° μ‹œκ°„ - μ‹œμž‘ μ‹œκ°„(μ€‘λ³΅λœ μ‹œκ°„)

ν”„λ‘œμ„ΈμŠ€μ˜ μ’…λ£Œ μ‹œκ°„κΉŒμ§€ κ²ΉμΉ˜λŠ” μ‹œκ°„μ„ μ œμ™Έν•œλ‹€.

λŒ€κΈ° μ‹œκ°„ = λ°˜ν™˜ μ‹œκ°„ - μ‹œμž‘ μ‹œκ°„(쀑볡 μ‹œκ°„) || - μ‹€ν–‰ μ‹œκ°„

λ°˜ν™˜ μ‹œκ°„μ—μ„œ μ‹œμž‘ μ‹œκ°„κ³Ό μ‹€ν–‰ μ‹œκ°„μ„ λΉΌμ£ΌλŠ”λ° μ΄λ˜ν•œ κ²ΉμΉ˜λŠ” μ‹œκ°„μ„ μ œμ™Έν•œλ‹€.

λŒ“κΈ€