λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
ComputerScience πŸ“š/운영체제

[OS] ν”„λ‘œμ„ΈμŠ€μ˜ κ°œλ…(Process Concept)

by μ•ˆμ£Όν˜• 2022. 2. 8.
ν•™μŠ΅μ€‘μΈ ꡐ재

ν”„λ‘œμ„ΈμŠ€ κ°œλ…(Process Concept)

μš°λ¦¬κ°€ 운영체제λ₯Ό λ…Όμ˜ν•  λ•Œ ν•œ 가지 μž₯μ• λŠ” λͺ¨λ“  CPU ν™œλ™λ“€μ„ μ–΄λ–»κ²Œ λΆ€λ₯Ό 것인가 ν•˜λŠ” 데에 의문이 μžˆμŠ΅λ‹ˆλ‹€. 초창기 μ»΄ν“¨ν„°λŠ” μž‘μ—…(job)을 μ‹€ν–‰ν•˜λŠ” μΌκ΄„μ²˜λ¦¬ μ‹œμŠ€ν…œμ΄μ—ˆκ³ , μ‚¬μš©μž ν”„λ‘œκ·Έλž¨ λ˜λŠ” νƒœμŠ€ν¬(task)λ₯Ό μ‹€ν–‰ν•˜λŠ” μ‹œλΆ„ν•  μ‹œμŠ€ν…œμ΄ λ’€λ₯Ό μ΄μ—ˆμŠ΅λ‹ˆλ‹€. 단일 μ‚¬μš©μž μ‹œμŠ€ν…œμ—μ„œλ„ μ‚¬μš©μžλŠ” μ›Œλ“œ ν”„λ‘œμ„Έμ„œ, μ›Ή λΈŒλΌμš°μ € 및 μ „μž 메일 νŒ¨ν‚€μ§€μ™€ 같은 μ—¬λŸ¬ ν”„λ‘œκ·Έλž¨μ„ ν•œ λ²ˆμ— μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ 닀쀑 νƒœμŠ€ν‚Ήμ„ μ§€μ›ν•˜μ§€ μ•ŠλŠ” μž„λ² λ””λ“œ μž₯μΉ˜μ—μ„œμ™€ 같이 컴퓨터가 ν•œ λ²ˆμ— ν•˜λ‚˜μ˜ ν”„λ‘œκ·Έλž¨λ§Œ μ‹€ν–‰ν•  수 μžˆλ”λΌλ„ μš΄μ˜μ²΄μ œλŠ” λ©”λͺ¨λ¦¬ 관리와 같은 자체 ν”„λ‘œκ·Έλž¨λœ λ‚΄λΆ€ ν™œλ™μ„ 지원해야 ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. μ—¬λŸ¬ μΈ‘λ©΄μ—μ„œ μ΄λŸ¬ν•œ λͺ¨λ“  ν™œλ™μ€ μœ μ‚¬ν•˜λ―€λ‘œ μ΄λŸ¬ν•œ λͺ¨λ“  ν™œλ™μ„ ν”„λ‘œμ„ΈμŠ€λΌκ³  λΆ€λ₯Ό 수 μžˆμŠ΅λ‹ˆλ‹€.
μš°λ¦¬λŠ” 개인적으둜 더 ν˜„λŒ€μ μΈ μš©μ–΄μΈ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ„ ν˜Έν•˜μ§€λ§Œ, 운영체제의 μ£Όμš” ν™œλ™μ΄ μž‘μ—… 처리인 μ‹œμ ˆμ— λ§Žμ€ 운영체제 이둠 및 μš©μ–΄κ°€ κ°œλ°œλ˜μ—ˆκΈ° λ•Œλ¬Έμ— μž‘μ—…(job)μ΄λΌλŠ” μš©μ–΄λŠ” μ—­μ‚¬μ μœΌλ‘œ μ€‘μš”ν•œ μ˜λ―Έκ°€ μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ 일뢀 μ μ ˆν•œ 경우 운영체제의 역할을 μ„€λͺ…ν•  λ•Œ μž‘μ—…μ„ μ‚¬μš©ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, ν”„λ‘œμ„ΈμŠ€κ°€ μž‘μ—…μ΄λΌλŠ” μš©μ–΄λ₯Ό λŒ€μ²΄ν–ˆλ‹€λŠ” 이유만으둜 μž‘μ—…(예: μž‘μ—… μŠ€μΌ€μ€„λ§)μ΄λΌλŠ” 단어λ₯Ό ν¬ν•¨ν•œ 일반적으둜 ν†΅μš©λ˜λŠ” μš©μ–΄λ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 것은 μ˜€ν•΄μ˜ μ†Œμ§€κ°€ μžˆμŠ΅λ‹ˆλ‹€.

(1) ν”„λ‘œμ„ΈμŠ€(The Process)

λΉ„κ³΅μ‹μ μœΌλ‘œ, ν”„λ‘œμ„ΈμŠ€λž€ μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨μž…λ‹ˆλ‹€. ν”„λ‘œμ„ΈμŠ€μ˜ ν˜„μž¬ ν™œλ™μ˜ μƒνƒœλŠ” ν”„λ‘œκ·Έλž¨ μΉ΄μš΄ν„° κ°’κ³Ό ν”„λ‘œμ„Έμ„œ λ ˆμ§€μŠ€ν„°μ˜ λ‚΄μš©μœΌλ‘œ λ‚˜νƒ€λƒ…λ‹ˆλ‹€. ν”„λ‘œμ„ΈμŠ€μ˜ λ©”λͺ¨λ¦¬ λ°°μΉ˜λŠ” 일반적으둜 μ—¬λŸ¬ μ„Ήμ…˜(μ˜μ—­)으둜 κ΅¬λΆ„λ˜λ©° μ•„λž˜μ˜ 이미지에 λ‚˜νƒ€λ‚˜ μžˆμŠ΅λ‹ˆλ‹€.

ν”„λ‘œμ„ΈμŠ€ λ©”λͺ¨λ¦¬ 배치

μ΄λŸ¬ν•œ μ„Ήμ…˜(μ˜μ—­)μ—λŠ” λ‹€μŒμ΄ ν¬ν•¨λ©λ‹ˆλ‹€.

  • ν…μŠ€νŠΈ μ„Ήμ…˜: μ‹€ν–‰ μ½”λ“œ
  • 데이터 μ„Ήμ…˜: μ „μ—­ λ³€μˆ˜
  • νž™ μ„Ήμ…˜: ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 쀑에 λ™μ μœΌλ‘œ ν• λ‹Ήλ˜λŠ” λ©”λͺ¨λ¦¬
  • μŠ€νƒ μ„Ήμ…˜: ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  λ•Œ μž„μ‹œ 데이터 μ €μž₯μž₯μ†Œ(예: ν•¨μˆ˜ λ§€κ°œλ³€μˆ˜, 볡귀 μ£Όμ†Œ 및 지역 λ³€μˆ˜)

ν…μŠ€νŠΈ 및 데이터 μ„Ήμ…˜μ˜ ν¬κΈ°λŠ” κ³ μ •λ˜κΈ° λ•Œλ¬Έμ— ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ μ‹œκ°„ λ™μ•ˆ 크기가 λ³€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μŠ€νƒ 및 νž™ μ„Ήμ…˜μ€ ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 쀑에 λ™μ μœΌλ‘œ μ€„μ–΄λ“€κ±°λ‚˜ 컀질 수 μžˆμŠ΅λ‹ˆλ‹€. ν•¨μˆ˜κ°€ 호좜될 λ•Œλ§ˆλ‹€ ν•¨μˆ˜ λ§€κ°œλ³€μˆ˜, 지역 λ³€μˆ˜ 및 볡귀 μ£Όμ†Œλ₯Ό ν¬ν•¨ν•˜λŠ” ν™œμ„±ν™” λ ˆμ½”λ“œ(activation record)κ°€ μŠ€νƒμ— ν‘Έμ‹œλ©λ‹ˆλ‹€. ν•¨μˆ˜μ—μ„œ μ œμ–΄κ°€ λ˜λŒμ•„μ˜€λ©΄ μŠ€νƒμ—μ„œ ν™œμ„±ν™” λ ˆμ½”λ“œκ°€ 팝 λ©λ‹ˆλ‹€. λ§ˆμ°¬κ°€μ§€λ‘œ λ©”λͺ¨λ¦¬κ°€ λ™μ μœΌλ‘œ 할당됨에 따라 νž™μ΄ 컀지고 λ©”λͺ¨λ¦¬κ°€ μ‹œμŠ€ν…œμ— λ°˜ν™˜λ˜λ©΄ μΆ•μ†Œλ©λ‹ˆλ‹€. μŠ€νƒ 및 νž™ μ„Ήμ…˜μ΄ μ„œλ‘œμ˜ λ°©ν–₯으둜 컀지더라도 μš΄μ˜μ²΄μ œλŠ” μ„œλ‘œ κ²ΉμΉ˜μ§€ μ•Šλ„λ‘ ν•΄μ•Ό ν•©λ‹ˆλ‹€.
μš°λ¦¬λŠ” ν”„λ‘œκ·Έλž¨ κ·Έ μžμ²΄λŠ” ν”„λ‘œμ„ΈμŠ€κ°€ μ•„λ‹˜μ„ λͺ…μ‹œν•΄μ•Ό ν•©λ‹ˆλ‹€. ν”„λ‘œκ·Έλž¨μ€ λͺ…λ Ήμ–΄ 리슀트λ₯Ό λ‚΄μš©μœΌλ‘œ 가진 λ””μŠ€ν¬μ— μ €μž₯된 파일(μ‹€ν–‰ 파일이라고 뢈림)κ³Ό 같은 μˆ˜λ™μ μΈ 쑴재(passive entity)μž…λ‹ˆλ‹€. μ΄μ™€λŠ” λŒ€μ‘°μ μœΌλ‘œ ν”„λ‘œμ„ΈμŠ€λŠ” λ‹€μŒμ— μ‹€ν–‰ν•  λͺ…λ Ήμ–΄λ₯Ό μ§€μ •ν•˜λŠ” ν”„λ‘œκ·Έλž¨ μΉ΄μš΄ν„°μ™€ κ΄€λ ¨ μžμ›μ˜ 집합을 가진 λŠ₯동적인 쑴재(active entity)μž…λ‹ˆλ‹€. μ‹€ν–‰ 파일이 λ©”λͺ¨λ¦¬μ— 적재될 λ•Œ ν”„λ‘œκ·Έλž¨μ€ ν”„λ‘œμ„ΈμŠ€κ°€ λ©λ‹ˆλ‹€. μ‹€ν–‰ νŒŒμΌμ„ λ©”λͺ¨λ¦¬μ— μ μž¬ν•˜λŠ” 일반적인 두 가지 방식은 μ‹€ν–‰ νŒŒμΌμ„ λ‚˜νƒ€λ‚΄λŠ” μ•„μ΄μ½˜μ„ 더블 ν΄λ¦­ν•˜λŠ” 방식과 λͺ…λ Ήμ–΄ λΌμΈμƒμ—μ„œ prog.exe λ˜λŠ” a.outκ³Ό 같이 파일 이름을 μž…λ ₯ν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€.
두 ν”„λ‘œμ„ΈμŠ€λ“€μ΄ λ™μΌν•œ ν”„λ‘œκ·Έλž¨μ— 연관될 수 μžˆμ§€λ§Œ, 이듀은 두 개의 λ³„λ„μ˜ μ‹€ν–‰ μˆœμ„œλ‘œ κ°„μ£Όν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, μ—¬λŸ¬ μ‚¬μš©μžκ°€ 메일 ν”„λ‘œκ·Έλž¨μ˜ μ„œλ‘œ λ‹€λ₯Έ 볡사본을 μ‹€ν–‰ν•˜κ±°λ‚˜, λ˜λŠ” 동일 μ‚¬μš©μžκ°€ μ›Ή λΈŒλΌμš°μ € ν”„λ‘œκ·Έλž¨μ˜ μ—¬λŸ¬ 볡사본을 ν˜ΈμΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이듀 각각은 λ³„λ„μ˜ ν”„λ‘œμ„ΈμŠ€μ΄λ©°, ν…μŠ€νŠΈ μ„Ήμ…˜μ΄ λ™λ“±ν•˜λ‹€ 할지라도 데이터, νž™ 및 μŠ€νƒ μ„Ήμ…˜μ€ λ‹€λ₯Ό 수 μžˆμŠ΅λ‹ˆλ‹€. ν”„λ‘œμ„ΈμŠ€κ°€ μ‹€ν–‰λ˜λŠ” κ³Όμ •μ—μ„œ λ§Žμ€ ν”„λ‘œμ„ΈμŠ€λ₯Ό μƒμ„±ν•˜λŠ” 것이 λ³΄ν†΅μž…λ‹ˆλ‹€.
ν”„λ‘œμ„ΈμŠ€ μžμ²΄κ°€ λ‹€λ₯Έ 개체λ₯Ό μœ„ν•œ μ‹€ν–‰ ν™˜κ²½μœΌλ‘œ λ™μž‘ν•  수 μžˆλ‹€λŠ” 사싀에 μ£Όλͺ©ν•΄μ•Ό ν•©λ‹ˆλ‹€. Java ν”„λ‘œκ·Έλž˜λ° ν™˜κ²½μ΄ 쒋은 예λ₯Ό λ³΄μ—¬μ€λ‹ˆλ‹€. λŒ€λΆ€λΆ„μ˜ μƒν™©μ—μ„œ μ‹€ν–‰ κ°€λŠ₯ν•œ Java ν”„λ‘œκ·Έλž¨μ€ Java 가상 기계(JVM) μ•ˆμ—μ„œ μ‹€ν–‰λ©λ‹ˆλ‹€. JVM은 적재된 Java μ½”λ“œλ₯Ό ν•΄μ„ν•˜κ³  κ·Έ μ½”λ“œλ₯Ό λŒ€μ‹ ν•˜μ—¬ 원 기계어λ₯Ό μ΄μš©ν•˜μ—¬ 행동을 μ·¨ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€λ‘œμ„œ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 컴파일된 Java ν”„λ‘œκ·Έλž¨ Program.classλ₯Ό μ‹€ν–‰ν•˜κΈ° μœ„ν•΄ λ‹€μŒκ³Ό 같이 λͺ…령을 μž…λ ₯ν•  κ²ƒμž…λ‹ˆλ‹€.

java Program

java λͺ…λ Ήμ–΄λŠ” JVM을 λ³΄ν†΅μ˜ ν”„λ‘œμ„ΈμŠ€μ²˜λŸΌ μ‹€ν–‰μ‹œν‚€κ³ , JVM은 Java ν”„λ‘œκ·Έλž¨ Program을 가상기계 μ•ˆμ—μ„œ μ‹€ν–‰ν•©λ‹ˆλ‹€. 이 κ°œλ…μ€ λ‹€λ₯Έ κΈ°κ³„μ–΄λ‘œ μž‘μ„±λœ ν”„λ‘œκ·Έλž¨μ΄ μ•„λ‹ˆλΌ Java μ–Έμ–΄λ‘œ μž‘μ„±λœ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰μ‹œν‚¨λ‹€λŠ” 점을 μ œμ™Έν•˜λ©΄ λͺ¨μ˜μ‹€ν—˜κ³Ό λ™μΌν•œ κ°œλ…μž…λ‹ˆλ‹€.

(2) ν”„λ‘œμ„ΈμŠ€ μƒνƒœ(Process State)

ν”„λ‘œμ„ΈμŠ€λŠ” μ‹€ν–‰λ˜λ©΄μ„œ κ·Έ μƒνƒœκ°€ λ³€ν•©λ‹ˆλ‹€. ν”„λ‘œμ„ΈμŠ€μ˜ μƒνƒœλŠ” λΆ€λΆ„μ μœΌλ‘œ κ·Έ ν”„λ‘œμ„ΈμŠ€μ˜ ν˜„μž¬μ˜ ν™œλ™μ— λ”°λΌμ„œ μ •μ˜λ©λ‹ˆλ‹€. ν”„λ‘œμ„ΈμŠ€λŠ” λ‹€μŒ μƒνƒœ 쀑 ν•˜λ‚˜μ— 있게 λ©λ‹ˆλ‹€.

  • μƒˆλ‘œμš΄(new): ν”„λ‘œμ νŠΈκ°€ 생성 쀑이닀.
  • μ‹€ν–‰(running): λͺ…령어듀이 μ‹€ν–‰λ˜κ³  μžˆλ‹€.
  • λŒ€κΈ°(wating): ν”„λ‘œμ„ΈμŠ€κ°€ μ–΄λ–€ 이벀트(μž…μΆœλ ₯ μ™„λ£Œ λ˜λŠ” μ‹ ν˜Έμ˜ μˆ˜μ‹  같은)κ°€ μΌμ–΄λ‚˜κΈ°λ₯Ό κΈ°λ‹€λ¦°λ‹€.
  • μ€€λΉ„(readty): ν”„λ‘œμ„ΈμŠ€κ°€ μ²˜λ¦¬κΈ°μ— ν• λ‹Ήλ˜κΈ°λ₯Ό κΈ°λ‹€λ¦°λ‹€.
  • μ’…λ£Œ(treminated): ν”„λ‘œμ„ΈμŠ€μ˜ 싀행이 μ’…λ£Œλ˜μ—ˆλ‹€.

이듀 이름은 μž„μ˜μ μ΄κ³ , μš΄μ˜μ²΄μ œλ§ˆλ‹€ λ³€ν•©λ‹ˆλ‹€. κ·Έλ ‡μ§€λ§Œ, 이듀이 λ‚˜νƒ€λ‚΄λŠ” μƒνƒœλ“€μ€ λͺ¨λ“  μ‹œμŠ€ν…œμ—μ„œ μ°Ύμ•„λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ μ–΄λ–€ μš΄μ˜μ²΄μ œλŠ” ν”„λ‘œμ„ΈμŠ€ μƒνƒœλ₯Ό λ”μš± μžμ„Έν•˜κ²Œ λ¬˜μ‚¬ν•˜μ—¬ κ΅¬λ³„ν•©λ‹ˆλ‹€. μ–΄λŠ ν•œμˆœκ°„μ— ν•œ 처리기 μ½”μ–΄μ—μ„œλŠ” 였직 ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€λ§Œμ΄ μ‹€ν–‰λœλ‹€λŠ” 것을 μΈμ‹ν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€. κ·Έλ ‡μ§€λ§Œ, λ§Žμ€ ν”„λ‘œμ„ΈμŠ€κ°€ μ€€λΉ„ μ™„λ£Œ 및 λŒ€κΈ° μƒνƒœμ— μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. μ•„λž˜ μ΄λ―Έμ§€λŠ” 이듀 μƒνƒœμ— ν•΄λ‹Ήν•˜λŠ” μƒνƒœ λ‹€μ΄μ–΄κ·Έλž¨(state diatgram)μž…λ‹ˆλ‹€.

ν”„λ‘œμ„ΈμŠ€ μƒνƒœ λ‹€μ΄μ–΄κ·Έλž¨


(3) ν”„λ‘œμ„ΈμŠ€ μ œμ–΄ 블둝(Process Control Block)

각 ν”„λ‘œμ„ΈμŠ€λŠ” μš΄μ˜μ²΄μ œμ—μ„œ ν”„λ‘œμ„ΈμŠ€ μ œμ–΄ 블둝(process control block, PCB)(νƒœμŠ€ν¬ μ œμ–΄ 블둝이라고도 λΆˆλ¦½λ‹ˆλ‹€)에 μ˜ν•΄ ν‘œν˜„λ©λ‹ˆλ‹€. μ•„λž˜ μ΄λ―Έμ§€λŠ” PCBλ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

ν”„λ‘œμ„ΈμŠ€ μ œμ–΄ 블둝(PCB)

ν”„λ‘œμ„ΈμŠ€ μ œμ–΄ 블둝은 νŠΉμ • ν”„λ‘œμ„ΈμŠ€μ™€ μ—°κ΄€λœ μ—¬λŸ¬ 정보λ₯Ό μˆ˜λ‘ν•˜λ©°, λ‹€μŒκ³Ό 같은 것듀을 ν¬ν•¨ν•©λ‹ˆλ‹€.

  • ν”„λ‘œμ„ΈμŠ€ μƒνƒœ: μƒνƒœλŠ” μƒˆλ‘œμš΄(new), μ€€λΉ„(ready), μ‹€ν–‰(running), λŒ€κΈ°(waiting) λ˜λŠ” 정지(halted) μƒνƒœ 등이닀.
  • ν”„λ‘œκ·Έλž¨ μΉ΄μš΄ν„°: ν”„λ‘œκ·Έλž¨ μΉ΄μš΄ν„°λŠ” 이 ν”„λ‘œμ„ΈμŠ€κ°€ λ‹€μŒμ— μ‹€ν–‰ν•  λͺ…λ Ήμ–΄μ˜ μ£Όμ†Œλ₯Ό 가리킨닀.
  • CPU λ ˆμ§€μŠ€ν„°λ“€: CPU λ ˆμ§€μŠ€ν„°λŠ” μ»΄ν“¨ν„°μ˜ ꡬ쑰에 따라 λ‹€μ–‘ν•œ μˆ˜μ™€ μœ ν˜•μ„ 가진닀. λ ˆμ§€μŠ€ν„°μ—λŠ” λˆ„μ‚°κΈ°(accumulator), 인덱슀 λ ˆμ§€μŠ€ν„°, μŠ€νƒ λ ˆμ§€μŠ€ν„°, λ²”μš©(general-purpose) λ ˆμ§€μŠ€ν„°λ“€κ³Ό μƒνƒœ μ½”λ“œ(condition code) 정보가 ν¬ν•¨λœλ‹€. ν”„λ‘œκ·Έλž¨ μΉ΄μš΄ν„°μ™€ ν•¨κ»˜ 이 μƒνƒœ μ •λ³΄λŠ”, λ‚˜μ€‘μ— ν”„λ‘œμ„ΈμŠ€κ°€ λ‹€μ‹œ μŠ€μΌ€μ€„ 될 λ•Œ 계속 μ˜¬λ°”λ₯΄κ²Œ μ‹€ν–‰λ˜λ„λ‘ ν•˜κΈ° μœ„ν•΄μ„œ μΈν„°λŸ½νŠΈ λ°œμƒ μ‹œ μ €μž₯λ˜μ–΄μ•Ό ν•œλ‹€.
  • CPU-μŠ€μΌ€μ€„λ§ 정보: 이 μ •λ³΄λŠ” ν”„λ‘œμ„ΈμŠ€ μš°μ„ μˆœμœ„, μŠ€μΌ€μ€„ 큐에 λŒ€ν•œ 포인터와 λ‹€λ₯Έ μŠ€μΌ€μ€„ λ§€κ°œλ³€μˆ˜λ₯Ό ν¬ν•¨ν•œλ‹€.
  • λ©”λͺ¨λ¦¬ 관리 정보: 이 μ •λ³΄λŠ” μš΄μ˜μ²΄μ œμ— μ˜ν•΄ μ‚¬μš©λ˜λŠ” λ©”λͺ¨λ¦¬ μ‹œμŠ€ν…œμ— 따라 κΈ°μ€€(base) λ ˆμ§€μŠ€ν„°μ™€ ν•œκ³„(limit) λ ˆμ§€μŠ€ν„°μ˜ κ°’, μš΄μ˜μ²΄μ œκ°€ μ‚¬μš©ν•˜λŠ” λ©”λͺ¨λ¦¬ μ‹œμŠ€ν…œμ— 따라 νŽ˜μ΄μ§€ ν…Œμ΄λΈ” λ˜λŠ” μ„Έκ·Έλ¨ΌνŠΈ ν…Œμ΄λΈ” λ“±κ³Ό 같은 정보λ₯Ό ν¬ν•¨ν•œλ‹€.
  • νšŒκ³„(accounting) 정보: 이 μ •λ³΄λŠ” CPU μ‚¬μš© μ‹œκ°„κ³Ό 경과된 μ‹€μ‹œκ°„, μ‹œκ°„ μ œν•œ, 계정 번호, 작 λ˜λŠ” ν”„λ‘œμ„ΈμŠ€ 번호 등을 ν¬ν•¨ν•œλ‹€.
  • μž…μΆœλ ₯ μƒνƒœ 정보: 이 μ •λ³΄λŠ” 이 ν”„λ‘œμ„ΈμŠ€μ— ν• λ‹Ήλœ μž…μΆœλ ₯ μž₯μΉ˜λ“€κ³Ό μ—΄λ¦° 파일의 λͺ©λ‘ 등을 ν¬ν•¨ν•œλ‹€.

μš”μ•½ν•˜λ©΄ ν”„λ‘œμ„ΈμŠ€ μ œμ–΄ 블둝은 μ•½κ°„μ˜ νšŒκ³„ 데이터와 ν•¨κ»˜ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ‹œμž‘μ‹œν‚€κ±°λ‚˜ λ‹€μ‹œ μ‹œμž‘μ‹œν‚€λŠ” 데 ν•„μš”ν•œ λͺ¨λ“  데이터λ₯Ό μœ„ν•œ μ €μž₯μ†Œμ˜ 역할을 ν•©λ‹ˆλ‹€.

(4) μŠ€λ ˆλ“œ(Threads)

μ΄μ œκΉŒμ§€ μ •λ¦¬ν•œ ν”„λ‘œμ„ΈμŠ€ λͺ¨λΈμ€ ν”„λ‘œμ„ΈμŠ€κ°€ λ‹¨μΌμ˜ μ‹€ν–‰ μŠ€λ ˆλ“œλ₯Ό μ‹€ν–‰ν•˜λŠ” ν”„λ‘œκ·Έλž¨μž„μ„ μ•”μ‹œν–ˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€λ©΄, 만일 ν•œ μŠ€λ ˆλ“œκ°€ μ›Œλ“œ ν”„λ‘œμ„Έμ„œ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ 쀑이면, μ‹€ν–‰λ˜λŠ” λͺ…λ Ήμ–΄μ˜ 단일 μŠ€λ ˆλ“œκ°€ μ‘΄μž¬ν•©λ‹ˆλ‹€. 이 단일 μ œμ–΄ μŠ€λ ˆλ“œλŠ” ν”„λ‘œμ„ΈμŠ€κ°€ ν•œ λ²ˆμ— 단지 ν•œ 가지 일만 μ‹€ν–‰ν•˜λ„λ‘ ν—ˆμš©ν•©λ‹ˆλ‹€. λ”°λΌμ„œ μ‚¬μš©μžλŠ” 문자λ₯Ό μž…λ ₯ν•˜λ©΄μ„œ λ™μ‹œμ— 철자 검사기λ₯Ό μ‹€ν–‰ν•  수 μ—†μŠ΅λ‹ˆλ‹€. λŒ€λΆ€λΆ„μ˜ ν˜„λŒ€ μš΄μ˜μ²΄μ œλŠ” ν”„λ‘œμ„ΈμŠ€ κ°œλ…μ„ ν™•μž₯ν•˜μ—¬ ν•œ ν”„λ‘œμ„ΈμŠ€κ°€ λ‹€μˆ˜μ˜ μ‹€ν–‰ μŠ€λ ˆλ“œλ₯Ό κ°€μ§ˆ 수 μžˆλ„λ‘ ν—ˆμš©ν•©λ‹ˆλ‹€. 그듀은 λ”°λΌμ„œ ν”„λ‘œμ„ΈμŠ€κ°€ ν•œ λ²ˆμ— ν•˜λ‚˜ μ΄μƒμ˜ 일을 μˆ˜ν–‰ν•  수 μžˆλ„λ‘ ν—ˆμš©ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ νŠΉμ„±μ€ 닀쀑 처리기 μ‹œμŠ€ν…œμ—μ„œ 이읡을 얻을 수 μžˆλŠ”λ°, μ—¬λŸ¬ μŠ€λ ˆλ“œκ°€ λ³‘λ ¬λ‘œ 싀행될 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 닀쀑 μŠ€λ ˆλ“œ μ›Œλ“œ ν”„λ‘œμ„Έμ„œλŠ” ν•˜λ‚˜μ˜ μŠ€λ ˆλ“œμ— μ‚¬μš©μž μž…λ ₯ 관리λ₯Ό λ§‘κΈ°λŠ” λ™μ•ˆ λ‹€λ₯Έ μŠ€λ ˆλ“œκ°€ 철자 검사기λ₯Ό μˆ˜ν–‰ν•˜λ„λ‘ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€. μŠ€λ ˆλ“œλ₯Ό μ§€μ›ν•˜λŠ” μ‹œμŠ€ν…œμ—μ„œλŠ” PCBλŠ” 각 μŠ€λ ˆλ“œμ— κ΄€ν•œ 정보λ₯Ό ν¬ν•¨ν•˜λ„λ‘ ν™•μž₯λ©λ‹ˆλ‹€. μŠ€λ ˆλ“œλ₯Ό μ§€μ›ν•˜κΈ° μœ„ν•΄μ„œλŠ” μ‹œμŠ€ν…œ μ „λ°˜μ— 걸친 λ‹€λ₯Έ μˆ˜μ •λ„ ν•„μš”ν•©λ‹ˆλ‹€.

λŒ“κΈ€