ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ 면접을 μœ„ν•œ cs 전곡지식 λ…ΈνŠΈ 정리 ] 3.운영체제 : CPU μŠ€μΌ€μ€„λ§ μ•Œκ³ λ¦¬μ¦˜
    Book 2024. 4. 20. 02:54
    λ°˜μ‘ν˜•

    (좜처 :  https://www.inflearn.com/course/%EA%B0%9C%EB%B0%9C%EC%9E%90-%EB%A9%B4%EC%A0%91-cs-%ED%8A%B9%EA%B0%95)

     

    3.4 CPU μŠ€μΌ€μ€„링 μ•Œκ³ λ¦¬μ¦˜

    3.4.1 λΉ„μ„ μ ν˜• 방식
    3.4.2 μ„ μ ν˜• 방식

     


    3.4 CPU μŠ€μΌ€μ€„링 μ•Œκ³ λ¦¬μ¦˜

     

    CPU μŠ€μΌ€μ€„λŸ¬λŠ” CPU μŠ€μΌ€μ€„λ§ μ•Œκ³ λ¦¬μ¦˜μ— 따라 ν”„λ‘œμ„ΈμŠ€μ—μ„œ ν•΄μ•Ό ν•˜λŠ” 일을 μŠ€λ ˆλ“œλ‹¨μœ„λ‘œ CPUμ—μ„œ ν• λ‹Ήν•œλ‹€.

    ν”„λ‘œκ·Έλž¨μ΄ 싀행될 λ•ŒλŠ” CPU μŠ€μΌ€μ€„λ§ μ•Œκ³ λ¦¬μ¦˜μ΄ μ–΄λ–€ ν”„λ‘œκ·Έλž¨μ— CPU μ†Œμœ κΆŒμ„ 쀄 것인지 κ²°μ •ν•œλ‹€. 이 μ•Œκ³ λ¦¬μ¦˜μ€ CPU 이용λ₯ μ€ λ†’κ²Œ, 주어진 μ‹œκ°„μ— λ§Žμ€ 일을 ν•˜κ²Œ, μ€€λΉ„ 큐(ready queue)에 μžˆλŠ” ν”„λ‘œμ„ΈμŠ€λŠ” 적게, 응닡 μ‹œκ°„μ€ 짧게 μ„€μ •ν•˜λŠ” 것을 λͺ©ν‘œλ‘œ ν•œλ‹€.

     

     

    3.4.1 λΉ„μ„ μ ν˜• 방식

     

    λΉ„μ„ μ ν˜• 방식(non-preemptive)은 ν”„λ‘œμ„ΈμŠ€κ°€ 슀슀둜 CPU μ†Œμœ κΆŒμ„ ν¬κΈ°ν•˜λŠ” 방식이며, κ°•μ œλ‘œ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ€‘μ§€ν•˜μ§€ μ•Šμ•„ μ»¨ν…μŠ€νŠΈ μŠ€μœ„μΉ­μœΌλ‘œ μΈν•œ λΆ€ν•˜κ°€ 적닀.

    • FCFS(First Come, First Saved)
      κ°€μž₯ λ¨Όμ € 온 것을 κ°€μž₯ λ¨Όμ € μ²˜λ¦¬ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€.
      길게 μˆ˜ν–‰λ˜λŠ” ν”„λ‘œμ„ΈμŠ€ λ•Œλ¬Έμ— 'μ€€λΉ„ νμ—μ„œ 였래 κΈ°λ‹€λ¦¬λŠ” ν˜„μƒ(convoy effect)'이 λ°œμƒν•œλ‹€λŠ” 단점이 μžˆλ‹€.

    • SJF(Shortest Job First)
      μ‹€ν–‰ μ‹œκ°„μ΄ κ°€μž₯ 짧은 ν”„λ‘œμ„ΈμŠ€λ₯Ό κ°€μž₯ λ¨Όμ € μ‹€ν–‰ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€.
      κΈ΄ μ‹œκ°„μ„ 가진 ν”„λ‘œμ„ΈμŠ€κ°€ μ‹€ν–‰λ˜μ§€ μ•ŠλŠ” ν˜„μƒ(starvation)이 μΌμ–΄λ‚˜λ©° 평균 λŒ€κΈ° μ‹œκ°„μ΄ κ°€μž₯ μ§§μ§€λ§Œ, μ‹€μ œλ‘œλŠ” μ‹€ν–‰ μ‹œκ°„μ„ μ•Œ 수 μ—†κΈ° λ•Œλ¬Έμ— 과거의 μ‹€ν–‰ν–ˆλ˜ μ‹œκ°„μ„ ν† λŒ€λ‘œ μΆ”μΈ‘ν•΄μ„œ μ‚¬μš©ν•œλ‹€.

    • μš°μ„ μˆœμœ„
      κΈ°μ‘΄ SJF μŠ€μΌ€μ€„λ§μ˜ 경우 κΈ΄ μ‹œκ°„μ„ 가진 ν”„λ‘œμ„ΈμŠ€κ°€ μ‹€ν–‰λ˜μ§€ μ•ŠλŠ” ν˜„μƒμ΄ μžˆμ–΄, 였래된 μž‘μ—…μΌμˆ˜λ‘ 'μš°μ„ μˆœμœ„λ₯Ό λ†’μ΄λŠ” 방법(aging)'을 톡해 단점을 λ³΄μ™„ν•œ μ•Œκ³ λ¦¬μ¦˜μ„ λ§ν•œλ‹€.


    3.4.2 μ„ μ ν˜• 방식

     

    μ„ μ ν˜• 방식(preemptive)은 ν˜„λŒ€ μš΄μ˜μ²΄μ œκ°€ μ“°λŠ” λ°©μ‹μœΌλ‘œ μ§€κΈˆ μ‚¬μš©ν•˜κ³  μžˆλŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό μ•Œκ³ λ¦¬μ¦˜μ— μ˜ν•΄ μ€‘λ‹¨μ‹œμΌœ 버리고 κ°•μ œλ‘œ λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ— CPU μ†Œμœ κΆŒμ„ ν• λ‹Ήν•˜λŠ” 방식을 λ§ν•œλ‹€.

    • λΌμš΄λ“œ 둜빈(RR, Round Robin)
      ν˜„λŒ€ 컴퓨터가 μ“°λŠ” μŠ€μΌ€μ€„λ§μΈ μš°μ„ μˆœμœ„ μŠ€μΌ€μ€„λ§(priority scheduling)의 μΌμ’…μœΌλ‘œ 각 ν”„λ‘œμ„ΈμŠ€λŠ” λ™μΌν•œ ν• λ‹Ή μ‹œκ°„μ„ μ£Όκ³  κ·Έ μ‹œκ°„ μ•ˆμ— λλ‚˜μ§€ μ•ŠμœΌλ©΄ λ‹€μ‹œ μ€€λΉ„ 큐(ready queue)의 λ’€λ‘œ κ°€λŠ” μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€.

      예λ₯Ό λ“€μ–΄ q만큼의 ν• λ‹Ή μ‹œκ°„μ΄ λΆ€μ—¬λ˜μ—ˆκ³  N개의 ν”„λ‘œμ„ΈμŠ€κ°€ μš΄μ˜λœλ‹€κ³  ν•˜λ©΄ (N - 1 )*q μ‹œκ°„μ΄ μ§€λ‚˜λ©΄ 자기 μ°¨λ‘€κ°€ 였게 λœλ‹€. ν• λ‹Ή μ‹œκ°„μ΄ λ„ˆλ¬΄ 크면 FCFSκ°€ 되고 짧으면 μ»¨ν…μŠ€νŠΈ μŠ€μœ„μΉ­μ΄ μž¦μ•„μ Έμ„œ μ˜€λ²„ν—€λ“œ 즉, λΉ„μš©μ΄ 컀진닀. 일반적으둜 전체 μž‘μ—… μ‹œκ°„μ€ κΈΈμ–΄μ§€μ§€λ§Œ 평균 응닡 μ‹œκ°„μ€ μ§§μ•„μ§„λ‹€λŠ” νŠΉμ§•μ΄ μžˆλ‹€.
      λ˜ν•œ, 이 μ•Œκ³ λ¦¬μ¦˜μ€ λ‘œλ“œλ°ΈλŸ°μ„œμ—μ„œ νŠΈλž˜ν”½ λΆ„μ‚° μ•Œκ³ λ¦¬μ¦˜μœΌλ‘œλ„ 쓰인닀.

    • SRF(Shortest Remaining Time First)
      SJFλŠ” 쀑간에 μ‹€ν–‰ μ‹œκ°„μ΄ 더 짧은 μ‹œκ°„μ΄ 듀어와도 κΈ°μ‘΄ 짧은 μž‘μ—…μ„ λͺ¨λ‘ μˆ˜ν–‰ν•˜κ³  κ·Έλ‹€μŒ 짧은 μž‘μ—…μ„ μ΄μ–΄λ‚˜κ°€λŠ”λ°, SRFλŠ” 쀑간에 더 짧은 μž‘μ—…μ΄ λ“€μ–΄μ˜€λ©΄ μˆ˜ν–‰ν•˜λ˜ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ€‘μ§€ν•˜κ³  ν•΄λ‹Ή ν”„λ‘œμ„ΈμŠ€λ₯Ό μˆ˜ν–‰ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€.

    • 닀단계 큐
      닀단계 νλŠ” μš°μ„ μˆœμœ„μ— λ”°λ₯Έ μ€€λΉ„ 큐λ₯Ό μ—¬λŸ¬ 개 μ‚¬μš©ν•˜κ³  νλ§ˆλ‹€ λΌμš΄λ“œ λ‘œλΉˆμ΄λ‚˜ FCFS λ“± λ‹€λ₯Έ μŠ€μΌ€μ€„λ§ μ•Œκ³ λ¦¬μ¦˜μ„ μ μš©ν•œ 것을 λ§ν•œλ‹€. 큐 κ°„μ˜ ν”„λ‘œμ„ΈμŠ€ 이동이 μ•ˆ λ˜λ―€λ‘œ μŠ€μΌ€μ€„λ§ 뢀담이 μ μ§€λ§Œ μœ μ—°μ„±μ΄ λ–¨μ–΄μ§€λŠ” νŠΉμ§•μ΄ μžˆλ‹€.
    λ°˜μ‘ν˜•

    λŒ“κΈ€

Designed by Tistory.