πŸ“— CS/OS

[OS] Process에 λŒ€ν•΄ μ•Œμ•„λ³΄μž.

Dongwoongkim 2024. 5. 17. 17:53

ν”„λ‘œμ„ΈμŠ€μ™€ ν”„λ‘œκ·Έλž¨μ˜ 차이

ν”„λ‘œκ·Έλž¨μ΄ λ©”λͺ¨λ¦¬μ— μ μž¬λ˜μ–΄ μ‹€ν–‰λ˜κ³  μžˆλŠ” μƒνƒœλ₯Ό ν”„λ‘œμ„ΈμŠ€λΌκ³  λ§ν•©λ‹ˆλ‹€.

 

.exe λ‚˜ .dmg와 같은 파일 -> ν”„λ‘œκ·Έλž¨ ( 정적인 μƒνƒœ )
이 ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰μ‹œμΌœ λ©”λͺ¨λ¦¬μ— 적재 -> ν”„λ‘œμ„ΈμŠ€ ( 동적인 μƒνƒœ ) 

  • λͺ¨λ“  ν”„λ‘œκ·Έλž¨μ€ μš΄μ˜μ²΄μ œκ°€ μ‹€ν–‰λ˜κΈ° μœ„ν•œ λ©”λͺ¨λ¦¬ 곡간을 ν• λ‹Ήν•΄μ£Όμ–΄μ•Ό 싀행될 수 μžˆμŠ΅λ‹ˆλ‹€. 
ν”„λ‘œμ„ΈμŠ€ ν”„λ‘œκ·Έλž¨
μ‹€ν–‰λ˜μ–΄ μž‘μ—…μ€‘μΈ ν”„λ‘œκ·Έλž¨ ν•˜λ‚˜μ˜ μ½”λ“œ 덩어리가 컴파일 과정을 거쳐 μ‹€ν–‰νŒŒμΌλ‘œ λ§Œλ“€μ–΄μ§„ 파일
파일이 λ©”λͺ¨λ¦¬μ— μ μž¬λ˜μ–΄ μ‹€ν–‰λ˜κ³  μžˆλŠ” μƒνƒœ 파일이 μ €μž₯μž₯μΉ˜μ— μ‘΄μž¬ν•˜μ§€λ§Œ λ©”λͺ¨λ¦¬μ—λŠ” μ˜¬λΌκ°€ μžˆμ§€ μ•Šμ€ μƒνƒœ
   

 

 

ν”„λ‘œμ„ΈμŠ€μ™€ ν”„λ‘œκ·Έλž¨

 

κ·Έλ ‡λ‹€λ©΄ ν”„λ‘œμ„ΈμŠ€μ™€ μŠ€λ ˆλ“œλŠ” μ°¨μ΄λŠ” λ¬΄μ—‡μΌκΉŒμš”.

 

ν”„λ‘œμ„ΈμŠ€μ™€ μŠ€λ ˆλ“œ 차이

μŠ€λ ˆλ“œλŠ” ν”„λ‘œμ„ΈμŠ€ λ‚΄ μž‘μ—…μ˜ 흐름을 μ§€μΉ­ν•©λ‹ˆλ‹€.

 

ν”„λ‘œμ„ΈμŠ€ μŠ€λ ˆλ“œ
OSλ‘œλΆ€ν„° μžμ›μ„ 할당받은 μž‘μ—…μ˜ λ‹¨μœ„λ‘œ λ©”λͺ¨λ¦¬μ— ν”„λ‘œκ·Έλž¨μ΄ μ μž¬λ˜μ–΄ μžˆλŠ” μƒνƒœ. ν”„λ‘œμ„ΈμŠ€κ°€ 할당받은 μžμ›μ„ μ΄μš©ν•˜λŠ” μ‹€ν–‰ νλ¦„μ˜ λ‹¨μœ„
λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ™€ κ²©λ¦¬λ˜μ–΄ 있기 λ•Œλ¬Έμ— ν”„λ‘œμ„ΈμŠ€κ°„ 톡신을 ν•˜κΈ° μœ„ν•΄μ„œλŠ” IPCλ₯Ό μ‚¬μš©ν•΄μ•Ό 함. λ‹€λ₯Έ μŠ€λ ˆλ“œμ™€ κ²©λ¦¬λ˜μ–΄ μžˆμ§€ μ•ŠμœΌλ―€λ‘œ κ·Έλƒ₯ 톡신할 수 μžˆμœΌλ―€λ‘œ ν”„λ‘œμ„ΈμŠ€λ³΄λ‹€ 속도가 빠름.
λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ™€ λ…λ¦½μ μ΄λ―€λ‘œ λ¬Έμ œκ°€ 생긴닀고 ν•΄μ„œ λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ— 영ν–₯을 μ£Όμ§„ μ•ŠμŒ. ν•œ μŠ€λ ˆλ“œμ— λ¬Έμ œκ°€ 생기면 동일 ν”„λ‘œμ„ΈμŠ€ λ‚΄μ˜ λ‹€λ₯Έ μŠ€λ ˆλ“œμ™€ ν”„λ‘œμ„ΈμŠ€μ— 영ν–₯을 쀄 수 있음.
생성과 μ’…λ£Œμ— 더 λ§Žμ€ μ‹œκ°„μ΄ μ†Œμš”. 생성과 μ’…λ£Œμ— 비ꡐ적 적은 μ‹œκ°„μ΄ μ†Œμš”

 

쑰금 더 μ‰½κ²Œ λ§ν•˜μžλ©΄ μŠ€λ ˆλ“œλŠ” ν”„λ‘œμ„ΈμŠ€μ—μ„œ 할당받은 μžμ›μ„ μ΄μš©ν•˜μ—¬ ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€μ—μ„œμ˜ 일련의 μž‘μ—…λ“€μ„ μ§„ν–‰ν•˜λŠ” λ‹¨μœ„λ‘œ, μŠ€λ ˆλ“œκ°€ ν•˜λ‚˜κ°€ μžˆλ‹€λ©΄ μ‹±κΈ€ μŠ€λ ˆλ“œ, μ—¬λŸ¬κ°œ μžˆλ‹€λ©΄ λ©€ν‹° μŠ€λ ˆλ“œλΌκ³  λΆ€λ¦…λ‹ˆλ‹€.

 

ν”„λ‘œμ„ΈμŠ€μ™€ μŠ€λ ˆλ“œ

 

ν”„λ‘œκ·Έλž¨μ˜ 컴파일 κ³Όμ •

ν”„λ‘œκ·Έλž¨μ˜ 컴파일 κ³Όμ •

1. μ „μ²˜λ¦¬κΈ° ( Preprocessor )

  • μ†ŒμŠ€μ½”λ“œμ˜ 주석 제거, ν—€λ”νŒŒμΌ 병합. 맀크둜 μΉ˜ν™˜ν•˜μ—¬ μ»΄νŒŒμΌν•  수 μžˆλŠ” *.i νŒŒμΌμ„ 생성

 

2. 컴파일러 ( Compiler )

  • μ „μ²˜λ¦¬κΈ°μ—μ„œ λ§Œλ“€μ–΄μ§„ *.i 파일의 였λ₯˜λ₯Ό μ²˜λ¦¬ν•˜κ³ , μ½”λ“œλ₯Ό μ΅œμ ν™” ν•˜λŠ” μž‘μ—…μ„ ν•˜μ—¬ μ–΄μ…ˆλΈ”λ¦¬μ–΄λ‘œ λ³€ν™˜ν•œ *.s file 을 생성

 

3. μ–΄μ…ˆλΈ”λŸ¬ ( Assembler )

  • μ–΄μ…ˆλΈ”λ¦¬μ–΄λ‘œ μž‘μ„±λœ *.s file을  *.o λͺ©μ  νŒŒμΌμ„ 생성

 

4. 링컀

  • λͺ©μ  νŒŒμΌμ„ 톡해 μ‹€ν–‰ν•  수 μžˆλŠ” *.exe, *.out ν™•μž₯자의 ν”„λ‘œκ·Έλž¨μ„ 생성

 

ν”„λ‘œμ„ΈμŠ€μ˜ λ©”λͺ¨λ¦¬ ꡬ쑰 

ν”„λ‘œμ„ΈμŠ€μ˜ λ©”λͺ¨λ¦¬ ꡬ쑰

 

μš΄μ˜μ²΄μ œλŠ” ν”„λ‘œκ·Έλž¨μ΄ μ‹€ν–‰λ˜μ–΄ ν”„λ‘œμ„ΈμŠ€κ°€ 되면 ν”„λ‘œμ„ΈμŠ€μ— μ μ ˆν•œ λ©”λͺ¨λ¦¬λ₯Ό ν• λ‹Ήν•©λ‹ˆλ‹€.

μ˜μ—­μœΌλ‘œ κ΅¬λΆ„ν•˜λ©΄ μŠ€νƒ μ˜μ—­, νž™ μ˜μ—­, 데이터 μ˜μ—­(BSS/Data Segment), μ½”λ“œ μ˜μ—­μœΌλ‘œ κ΅¬λΆ„ν•©λ‹ˆλ‹€.

 

  • μŠ€νƒ μ˜μ—­ : μ§€μ—­λ³€μˆ˜, λ§€κ°œλ³€μˆ˜, ν•¨μˆ˜κ°€ μ €μž₯. 컴파일 μ‹œ 크기가 κ²°μ •μ§€λ§Œ, ν•¨μˆ˜κ°€ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λŠ” μž¬κ·€ ν•¨μˆ˜κ°™μ€ κ²½μš°λŠ” λŸ°νƒ€μž„ μ‹œ 크기가 변경됨. (동적)
    • μ§€μ—­λ³€μˆ˜, λ§€κ°œλ³€μˆ˜, μ‹€ν–‰λ˜λŠ” ν•¨μˆ˜μ— μ˜ν•΄ λŠ˜μ–΄λ‚˜κ±°λ‚˜ μ€„μ–΄λ“œλŠ” λ©”λͺ¨λ¦¬ μ˜μ—­μœΌλ‘œ, μž¬κ·€ ν•¨μˆ˜μ˜ 경우 맀번 μƒˆλ‘œμš΄ μŠ€νƒ ν”„λ ˆμž„μ΄ μ‚¬μš©λ˜κΈ° λ•Œλ¬Έμ— ν•¨μˆ˜ λ‚΄μ˜ λ³€μˆ˜ 집합이 ν•΄λ‹Ή ν•¨μˆ˜μ˜ λ‹€λ₯Έ μΈμŠ€ν„΄μŠ€ λ³€μˆ˜λ₯Ό λ°©ν•΄ν•˜μ§€ μ•ŠμŒ.
  • νž™ μ˜μ—­ : 동적 ν• λ‹Ήν•  λ•Œ μ‚¬μš©λ˜λŠ” μ˜μ—­μœΌλ‘œ λŸ°νƒ€μž„ μ‹œ 크기가 κ²°μ • (동적)
    • malloc(), free() ν•¨μˆ˜λ₯Ό 톡해 ν• λ‹Ήν•˜κ³  ν•΄μ œν•˜λ©° λ™μ μœΌλ‘œ 관리할 수 있으며, λ™μ μœΌλ‘œ κ΄€λ¦¬λ˜λŠ” 자료ꡬ쑰 (ex : Cpp의 vector, Java의 Collection)κ°€ 이 νž™ μ˜μ—­μ— μ €μž₯λ©λ‹ˆλ‹€.
  • 데이터 μ˜μ—­ : μ½”λ“œκ°€ μ‹€ν–‰λ˜λ©΄μ„œ μ‚¬μš©λ˜λŠ” μ „μ—­ λ³€μˆ˜κ°€ μ €μž₯된 μ˜μ—­μœΌλ‘œ BSS Segment와 Data Segment둜 ꡬ뢄. (정적)
    • BSS Segment : 0으둜 μ΄ˆκΈ°ν™”λ˜κ±°λ‚˜ μ΄ˆκΈ°ν™” λ˜μ§€ μ•Šμ€ μ „μ—­ λ³€μˆ˜, static, const둜 μ„ μ–Έλœ λ³€μˆ˜κ°€ μ €μž₯λ˜λŠ” μ˜μ—­
    • Data Segment : 0이 μ•„λ‹Œ κ°’μœΌλ‘œ μ΄ˆκΈ°ν™”λœ μ „μ—­ λ³€μˆ˜, static, const둜 μ„ μ–Έλœ λ³€μˆ˜κ°€ μ €μž₯λ˜λŠ” μ˜μ—­
  • μ½”λ“œ μ˜μ—­ : μ†ŒμŠ€μ½”λ“œκ°€ CPUκ°€ 해석할 수 μžˆλŠ” 기계어 ν˜•νƒœλ‘œ μ €μž₯λ˜μ–΄ μžˆλŠ” μ˜μ—­. (정적)

 

μŠ€λ ˆλ“œλŠ” νž™ μ˜μ—­, 데이터 μ˜μ—­, μ½”λ“œ μ˜μ—­μ„ κ³΅μœ ν•œλ‹€!

ν”„λ‘œμ„ΈμŠ€, μŠ€λ ˆλ“œμ˜ λ©”λͺ¨λ¦¬ μ˜μ—­

 

  • ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€μ—μ„œ νŒŒμƒλœ μŠ€λ ˆλ“œλ“€μ€ ν”„λ‘œμ„ΈμŠ€μ—μ„œ μ‚¬μš©λ˜λŠ” λ©”λͺ¨λ¦¬ μ˜μ—­ 쀑 μŠ€νƒ μ˜μ—­μ„ μ œμ™Έν•œ νž™, 데이터, μ½”λ“œ μ˜μ—­μ„ κ³΅μœ ν•΄μ„œ μ‚¬μš©ν•˜κ³ , μŠ€νƒ μ˜μ—­μ€ 각각의 μŠ€λ ˆλ“œκ°€ 각각 λ³„λ„λ‘œ κ°€μ§‘λ‹ˆλ‹€.
  • μŠ€λ ˆλ“œλŠ” 각각의 μŠ€νƒμ„ κ°€μ§μœΌλ‘œμ¨ 독립적인 ν•¨μˆ˜ 호좜이 κ°€λŠ₯ν•˜λ©°, 이에 따라 독립적인 싀행흐름을 κ°€μ§ˆ 수 μžˆκ² μŠ΅λ‹ˆλ‹€.

 

PCB (Process Control Block)

  • ν”„λ‘œμ„ΈμŠ€μ— λŒ€ν•œ 메타 데이터λ₯Ό μ €μž₯ν•˜κ³  μžˆλŠ” 데이터 λΈ”λ‘μœΌλ‘œ 컀널 μŠ€νƒμ— μ €μž₯λ©λ‹ˆλ‹€.
  • 각 ν”„λ‘œμ„ΈμŠ€λ§ˆλ‹€ 고유의 PCBκ°€ μƒμ„±λ˜κ³ , ν”„λ‘œμ„ΈμŠ€κ°€ μ’…λ£Œλ˜λ©΄ PCBκ°€ 제거됨.
[컀널 μŠ€νƒ]
- 가상 λ©”λͺ¨λ¦¬λŠ” μŠ€νƒκ΅¬μ‘°λ‘œ λ˜μ–΄ μžˆλŠ” μ‚¬μš©μž 곡간과 컀널 κ³΅κ°„μœΌλ‘œ κ΅¬λΆ„λ˜λ©°, μ‚¬μš©μž μŠ€νƒ - 컀널 μŠ€νƒμœΌλ‘œ λΆ€λ₯΄κΈ°λ„ 함.
- 컀널 μŠ€νƒ : 컀널 λͺ¨λ“œμ—μ„œλ§Œ μ ‘κ·Ό κ°€λŠ₯
- μ‚¬μš©μž μŠ€νƒ : μ‚¬μš©μž λͺ¨λ“œμ—μ„œλ§Œ μ ‘κ·Ό κ°€λŠ₯

 

PCB의 ꡬ쑰 

  • ν”„λ‘œμ„ΈμŠ€μ˜ μƒνƒœ : λŒ€κΈ°μ€‘, μ‹€ν–‰ 쀑 λ“± ν”„λ‘œμ„ΈμŠ€μ˜ μƒνƒœ
  • ν”„λ‘œμ„ΈμŠ€ 번호 : 각 ν”„λ‘œμ„ΈμŠ€μ˜ 고유 식별 번호 (Process ID, PID)
  • ν”„λ‘œκ·Έλž¨ μΉ΄μš΄ν„° : 이 ν”„λ‘œμ„ΈμŠ€μ— λŒ€ν•˜μ—¬ 싀행될 λ‹€μŒ λͺ…λ Ήμ–΄μ˜ μ£Όμ†Œμ— λŒ€ν•œ 포인터. (Program Counter, PC)
  • λ ˆμ§€μŠ€ν„° κ΄€λ ¨ 정보
  • λ©”λͺ¨λ¦¬ μ œν•œ 정보 : ν”„λ‘œμ„ΈμŠ€μ˜ λ©”λͺ¨λ¦¬ κ΄€λ ¨ 정보
  • μ—΄λ¦° 파일 정보 : ν”„λ‘œμ„ΈμŠ€λ₯Ό μœ„ν•΄ μ—΄λ¦° 파일 λͺ©λ‘

 

Context Switching

μ»¨ν…μŠ€νŠΈ μŠ€μœ„μΉ­μ€ CPUκ°€ ν•œ ν”„λ‘œμ„ΈμŠ€μ—μ„œ λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€λ‘œ μ „ν™˜ν•˜κΈ° μœ„ν•΄ PCBλ₯Ό 기반으둜 ν”„λ‘œμ„ΈμŠ€μ˜ μƒνƒœλ₯Ό μ €μž₯ν•˜κ³  λ‹€μ‹œ λ³΅μ›μ‹œν‚€λŠ” 일련의 κ³Όμ •μœΌλ‘œ, μ—¬λŸ¬ 개의 ν”„λ‘œμ„ΈμŠ€λ₯Ό λ²ˆκ°ˆμ•„κ°€λ©° μ‹€ν–‰ν•˜μ—¬ CPU ν™œμš©λ₯ μ„ 높이기 μœ„ν•΄ ν•„μš”ν•˜λ©°, ν”„λ‘œμ„ΈμŠ€κ°€ μ’…λ£Œλ˜κ±°λ‚˜, μΈν„°λŸ½νŠΈμ— μ˜ν•΄ λ°œμƒλ˜κΈ°λ„ ν•©λ‹ˆλ‹€.

 

  1. ν”„λ‘œμ„ΈμŠ€ 1이 μ‹€ν–‰ 쀑에 μΈν„°λŸ½νŠΈ λ°œμƒ -> ν”„λ‘œμ„ΈμŠ€ 1의 μƒνƒœλ₯Ό PCB에 μ €μž₯.
  2. CPUκ°€ 놀지 μ•Šλ„λ‘ ν•˜κΈ° μœ„ν•΄ ν”„λ‘œμ„ΈμŠ€ 2의 μƒνƒœλ₯Ό PCBλ‘œλΆ€ν„° λΆˆλŸ¬μ™€ CPU에 λ‘œλ”©.
  3. μΈν„°λŸ½νŠΈ μ’…λ£Œ -> ν”„λ‘œμ„ΈμŠ€ 1을 λ‹€μ‹œ CPU에 μ˜¬λ €μ•Ό 함.
  4. ν”„λ‘œμ„ΈμŠ€ 1을 CPU에 올리기 μœ„ν•΄ μΈν„°λŸ½νŠΈλ₯Ό λ°œμƒμ‹œμΌœ PCB에 ν”„λ‘œμ„ΈμŠ€ 2의 μƒνƒœ μ €μž₯.
  5. ν”„λ‘œμ„ΈμŠ€ 1λ₯Ό 뢈러였기 μœ„ν•΄ PCBλ‘œλΆ€ν„° μƒνƒœλ₯Ό 뢈러옴.
  6. ν”„λ‘œμ„ΈμŠ€ 1을 CPU에 λ‘œλ”©

 

μ»¨ν…μŠ€νŠΈ μŠ€μœ„μΉ­μ—μ„œ λ°œμƒν•˜λŠ” λΉ„μš©

1. μœ νœ΄μ‹œκ°„μ˜ λ°œμƒ 

  • μ»¨ν…μŠ€νŠΈ μŠ€μœ„μΉ­μ„ ν•  λ•Œ λ§ˆλ‹€ μœ νœ΄μ‹œκ°„( CPUκ°€ 일을 ν•˜μ§€ μ•Šκ³  μ‰¬λŠ” μ‹œκ°„ )이 생겨 CPU의 κ°€μš©μ„±μ΄ λ–¨μ–΄μ§€λŠ” λΉ„μš©μ΄ λ°œμƒ.

 

2. μΊμ‹œ 미슀

  • ν”„λ‘œμ„ΈμŠ€κ°€ κ°€μ§€κ³  μžˆλŠ” λ©”λͺ¨λ¦¬ μ£Όμ†Œκ°€ κ·ΈλŒ€λ‘œ 있으면 잘λͺ»λœ μ£Όμ†Œλ³€ν™˜μ΄ 생겨 TLB κ³„μΈ΅μ—μ„œ μ£Όμ†Œλ³€ν™˜μ„ μœ„ν•΄ 기쑴의 μ£Όμ†Œλ₯Ό μ œκ±°ν•˜λŠ” μΊμ‹œ 클리어 과정이 μΌμ–΄λ‚˜, μΊμ‹œλ―ΈμŠ€κ°€ λ°œμƒ. 

 

3. μ˜€λ²„ν—€λ“œ

  • PCBλ₯Ό μ €μž₯ν•˜κ³ , λΆˆλŸ¬μ˜€λŠ” λΉ„μš©
  • μŠ€μΌ€μ€„λ§μ— λŒ€ν•œ λΉ„μš©
- μŠ€λ ˆλ“œ κ°„μ˜ μ»¨ν…μŠ€νŠΈ μŠ€μœ„μΉ­ λΉ„μš©/μ‹œκ°„ < ν”„λ‘œμ„ΈμŠ€ κ°„ μ»¨ν…μŠ€νŠΈ μŠ€μœ„μΉ˜ λΉ„μš©/μ‹œκ°„ 
>> μ•„λ¬΄λž˜λ„ μŠ€λ ˆλ“œλΌλ¦¬λŠ” μŠ€νƒμ˜μ—­μ„ μ œμ™Έν•˜κ³ λŠ” λͺ¨λ‘ 같은 곡간을 κ³΅μœ ν•˜λ‹€λ³΄λ‹ˆ, ν”„λ‘œμ„ΈμŠ€μ— λΉ„ν•΄ μ»¨ν…μŠ€νŠΈ μŠ€μœ„μΉ­ λΉ„μš©κ³Ό μ‹œκ°„μ΄ μ λ‹€λŠ” μž₯점이 μžˆμŠ΅λ‹ˆλ‹€.

 

ν”„λ‘œμ„ΈμŠ€ μƒνƒœ

ν”„λ‘œμ„ΈμŠ€κ°€ μ‹€ν–‰λ˜λŠ” λ™μ•ˆ λ³€κ²½λ˜λŠ” 고유 μƒνƒœλ₯Ό λ§ν•©λ‹ˆλ‹€. PCB에 μ €μž₯되며, 일반적으둜 5κ°€μ§€μ˜ μƒνƒœλ₯Ό κ°€μ§‘λ‹ˆλ‹€.

 

  • 생성 (NEW) : ν”„λ‘œμ„ΈμŠ€κ°€ μƒμ„±λœ μƒνƒœλ‘œ PCB만 ν• λ‹Ήλœ μƒνƒœ. fork(), exec()와 같은 ν˜ΈμΆœμ„ 톡해 ν”„λ‘œμ„ΈμŠ€κ°€ μƒμ„±λ˜κΈ°λ§Œ ν•œ μƒνƒœ. 
  • μ€€λΉ„ (READY) : 싀행을 μœ„ν•΄ κΈ°λ‹€λ¦¬λŠ” μƒνƒœλ‘œ, μ€€λΉ„ 큐에 λ“€μ–΄κ°€μ„œ λŒ€κΈ°ν•˜λ©΄μ„œ CPU μŠ€μΌ€μ€„λŸ¬λ‘œλΆ€ν„° CPU μ†Œμœ κΆŒμ΄ λ„˜μ–΄μ˜€κΈ°λ₯Ό κΈ°λ‹€λ¦¬λŠ” μƒνƒœ.
  • μ‹€ν–‰ (RUNNING) : CPU μ†Œμœ κΆŒκ³Ό λ©”λͺ¨λ¦¬λ₯Ό ν• λ‹Ήλ°›μ•„, λͺ…령어듀을 μˆ˜ν–‰μ€‘μΈ μƒνƒœ.
  • λŒ€κΈ° (WAITING) : ν”„λ‘œμ„ΈμŠ€ μ‹€ν–‰ 도쀑 (μž…μΆœλ ₯κ³Ό 같은) μ΄λ²€νŠΈκ°€ λ°œμƒν•˜μ—¬ μž μ‹œ μ€‘λ‹¨λœ μƒνƒœ
  • μ’…λ£Œ (EXIT) : ν”„λ‘œμ„ΈμŠ€κ°€ 싀행을 μ™„λ£Œν•˜κ³  μ’…λ£Œλœ μƒνƒœλ‘œ, λ©”λͺ¨λ¦¬μ—μ„œ 제거되며, CPU μ†Œμœ κΆŒμ„ μžƒμ€ μƒνƒœ.

 

 

<참고 자료>

 

 

πŸ‘©‍πŸ’» ‍μ™„μ „νžˆ μ •λ³΅ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€ vs μŠ€λ ˆλ“œ κ°œλ…

ν•œλˆˆμ— μ΄ν•΄ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€ & μŠ€λ ˆλ“œ κ°œλ… 전곡 지식 없이 μ»΄ν“¨ν„°μ˜ ν”„λ‘œκ·Έλž¨μ„ μ΄μš©ν•˜λŠ”λ°λŠ” 문제 μ—†μ–΄ μ™”μ§€λ§Œ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό κ°œλ°œν•˜λŠ” μ‚¬λžŒμœΌλ‘œμ„œ 컴퓨터 μ‹€ν–‰ λ‚΄λΆ€ μš”μ†Œλ₯Ό λ”°μ Έλ³΄κ²Œ λ λ•Œ, μ•„

inpa.tistory.com