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

[운영체제] 8. μŠ€λ ˆλ“œμ˜ κ°œλ…κ³Ό μƒνƒœ λ³€ν™”

by Wonit 2019. 12. 9.

μŠ€λ ˆλ“œμ˜ κ°œλ…κ³Ό μƒνƒœ λ³€ν™”

μŠ€λ ˆλ“œμ˜ κ°œλ…

 

ν”„λ‘œμ„ΈμŠ€μ—λŠ” 두 가지 νŠΉμ„±μ΄ μ‘΄μž¬ν•œλ‹€ μžμ›, μ œμ–΄. 이 쀑 μ œμ–΄ λΆ€λΆ„λ§Œ λΆ„λ¦¬ν•œ μ‹€ν–‰ λ‹¨μœ„λ₯Ό μŠ€λ ˆλ“œ(Thread)라고 ν•œλ‹€.

 

ν”„λ‘œμ„ΈμŠ€λŠ” 싀행쀑인 ν”„λ‘œκ·Έλž¨ 객체 자체λ₯Ό μ˜λ―Έν•˜λŠ” 것이고 μŠ€λ ˆλ“œλŠ” 이 μ‹€ν–‰μ˜ 흐름을 이야기 ν•œλ‹€.

 

μŠ€λ ˆλ“œλŠ” ν”„λ‘œμ„ΈμŠ€μ˜ 직접 μ‹€ν–‰ 정보λ₯Ό μ œμ™Έν•˜κ³  λ‚˜λ¨Έμ§€ ν”„λ‘œμ„ΈμŠ€ 관리 정보λ₯Ό κ³΅μœ ν•œλ‹€.

  • ν”„λ‘œμ„ΈμŠ€ 직접 μ‹€ν–‰ 정보: PC, SP, μŠ€νƒ, 지역 데이터, λ¬Έλ§₯ 정보 독립적 μ†Œμœ 

    각기 λ‹€λ₯Έ ν”„λ‘œμ‹œμ €λ₯Ό ν˜ΈμΆœν•˜κ³  λ‹€λ₯Έ 싀행을 κΈ°λ‘ν•˜κΈ° λ•Œλ¬Έμ— λ³„λ„μ˜ 곡간 ν•„μš”

  • ν”„λ‘œμ„ΈμŠ€ 관리 정보: μ½”λ“œ, μ „μ—­ 데이터, νž™ 곡유

    μŠ€λ ˆλ“œλ“€μ΄ λ™μ‹œμ— μ½”λ“œμ˜ λ™μΌν•œ 뢀뢄을 μ‹€ν–‰ν•  수 μžˆμ–΄μ•Ό ν•˜λ―€λ‘œ 곡유된 곡간 ν•„μš”

 

κ²½λŸ‰ ν”„λ‘œμ„ΈμŠ€ LWP,Light_Weight_Process

μŠ€λ ˆλ“œ μ€‘μ—μ„œ ν”„λ‘œμ„ΈμŠ€μ˜ 속성 일뢀가 λ“€μ–΄μžˆλŠ” 것.

 

μ€‘λŸ‰ ν”„λ‘œμ„ΈμŠ€ HWP,Heavy_Weight_Process

μŠ€λ ˆλ“œ ν•˜λ‚˜μ— ν”„λ‘œμ„ΈμŠ€ ν•˜λ‚˜μΈ 전톡적인 경우.

 

νŠΉμ§• 1: μ‘μš© ν”„λ‘œκ·Έλž¨μ—λŠ” 적어도 ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€κ°€ 있고, ν”„λ‘œμ„ΈμŠ€μ—λŠ” μŠ€λ ˆλ“œκ°€ ν•œ 개 이상이 μ‘΄μž¬ν•œλ‹€.
νŠΉμ§• 2: 같은 ν”„λ‘œμ„ΈμŠ€μ˜ μŠ€λ ˆλ“œλ“€μ€ λ™μΌν•œ μ£Όμ†Œ 곡간을 κ³΅μœ ν•œλ‹€

 

μž₯점

  • μ‚¬μš©μž 응닡성 증가

    μ‘μš© ν”„λ‘œκ·Έλž¨μ˜ 일뢀뢄을 λ΄‰μ‡„ν•˜κ±°λ‚˜ κΈ΄ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ”λΌλ„ 병령 ν”„λ‘œκ·Έλž˜λ°μœΌλ‘œ ν”„λ‘œκ·Έλž¨μ„ 계속 μˆ˜ν–‰ν•  수 μžˆμ–΄ μ‚¬μš©μž 응닡성이 λŠ˜μ–΄λ‚œλ‹€

  • ν”„λ‘œμ„ΈμŠ€μ˜ μžμ›κ³Ό λ©”λͺ¨λ¦¬ 곡유 κ°€λŠ₯

    ν”„λ‘œμ„ΈμŠ€μ˜ μžμ›μ„ (μ½”λ“œ, μ „μ—­ 데이터, νž™) μ—¬λŸ¬ μŠ€λ ˆλ“œκ°€ κ³΅μœ ν•˜λ―€λ‘œ μ‘μš©ν”„λ‘œκ·Έλž¨ ν•˜λ‚˜κ°€ λ™μΌν•œ μ£Όμ†Œ κ³΅κ°„μ—μ„œ μŠ€λ ˆλ“œλ₯Ό μ—¬λŸ¬ 개 μ‹€ν–‰ν•˜μ—¬ μ‹œμŠ€ν…œμ„ ν–₯상 μ‹œν‚¬ 수 μžˆλ‹€.

  • κ²½μ œμ„±μ΄ μ’‹μŒ

    ν”„λ‘œμ„ΈμŠ€λ₯Ό μƒμ„±ν•˜λŠ” 것보닀 μŠ€λ ˆλ“œλ₯Ό μƒμ„±ν•˜μ—¬ λ¬Έλ§₯을 κ΅ν™˜ν•˜λ©΄ μ˜€λ²„ν—€λ“œκ°€ 쀄어든닀. λ˜ν•œ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ—¬λŸ¬κ°œ μƒμ„±ν–ˆμ„ μ‹œμ— μƒκΈ°λŠ” ν”„λ‘œμ„ΈμŠ€ μžμ›μ˜ 쀑볡을 μ΅œμ†Œν™” ν•  수 μžˆλŠ” 점이 μžˆλ‹€.

  • 닀쀑 처리(λ©€ν‹° ν”„λ‘œμ„Έμ‹±)으둜 μ„±λŠ₯κ³Ό 효율 ν–₯상

    각 μŠ€λ ˆλ“œλ₯Ό μ—¬λŸ¬ ν”„λ‘œμ„Έμ„œμ—μ„œ λ³‘λ ¬λ‘œ μ‹€ν–‰ν•˜μ—¬ μ„±λŠ₯κ³Ό νš¨μœ¨μ„±μ„ 높일 수 μžˆλ‹€.

단일 μŠ€λ ˆλ“œμ™€ 닀쀑(λ©€ν‹°)μŠ€λ ˆλ“œ

μœ„ 그림에 μžˆλŠ” (a)같은 경우 ex) λ„μŠ€ λŠ” 아직 μŠ€λ ˆλ“œμ˜ κ°œλ…μ΄ νƒ„μƒν•˜κΈ° 전이라 λΆˆν™•μ‹€ν•˜λ‹€.

μŠ€λ ˆλ“œμ˜ νŠΉμ„±

νŠΉμ§• 1: ν”„λ‘œκ·Έλž¨ ν•˜λ‚˜λ₯Ό μ—¬λŸ¬ μ‹€ν–‰ λ‹¨μœ„λ‘œ μͺΌκ°œμ–΄ μ‹€ν–‰ν•œλ‹€λŠ” 츑면은 닀증 처리(닀쀑 ν”„λ‘œμ„Έμ‹±)κ³Ό λΉ„μŠ·ν•˜λ‹€.
νŠΉμ§• 2: 동일 ν”„λ‘œμ„ΈμŠ€μ˜ μŠ€λ ˆλ“œλŠ” μžμ›μ„ κ³΅μœ ν•˜λ―€λ‘œ μžμ› 생성과 κ΄€λ¦¬μ˜ 쀑볡성을 μ΅œμ†Œν™” ν•œλ‹€.
νŠΉμ§• 3: 각 μŠ€λ ˆλ“œλŠ” 컀널이 κ°œμž…ν•˜μ§€ μ•Šκ³  λ…λ¦½μ μœΌλ‘œ μ‹€ν–‰ν•  수 μžˆμ–΄μ„œ μ„œλ²„μ— λ§Žμ€ μš”μ²­μ„ 효과적으둜 μ²˜λ¦¬ν•  수 μžˆλ‹€.
νŠΉμ§• 4: ν”„λ‘œμ„ΈμŠ€μ˜ 생성과 μ’…λ£Œ 과정에 맀우 μœ μš©ν•˜λ‹€.
λ”°λΌμ„œ μŠ€λ ˆλ“œλ₯Ό ν™œμš©ν•œλ‹€λ©΄ ν”„λ‘œκ·Έλž¨μ„ λ³€κ²½ν•˜μ§€ μ•Šκ³  μŠ€λ ˆλ“œλ₯Ό λ³‘λ ¬λ‘œ μ²˜λ¦¬ν•˜μ—¬ νš¨μœ¨μ„ κ·ΉλŒ€ν™” ν•  수 μžˆλ‹€.

 

μŠ€λ ˆλ“œμ˜ μ‚¬μš© 예

ν˜„λŒ€μ˜ 수 λ§Žμ€ ν”„λ‘œκ·Έλž¨λ“€μ€ 닀쀑 μŠ€λ ˆλ“œλ₯Ό μ§€μ›ν•˜μ—¬ μŠ€λ ˆλ“œμ˜ κ°œλ…μ„ μ‚¬μš©μž μˆ˜μ€€μ—μ„œ 적용 μ‹œν‚¨λ‹€.

 

예λ₯Ό λ“€μ–΄ μ›Œλ“œ νŽΈμ§‘κΈ° 같은 경우 μš°λ¦¬λŠ” κΈ°λŠ₯을 크게 3κ°€μ§€λ‘œ λ‚˜λˆŒ 수 μžˆλ‹€.

  1. κΈ€ μ“°κΈ°

    μ‚¬μš©μžμ˜ μž…λ ₯에 응닡을 ν•˜λŠ” μŠ€λ ˆλ“œ

  2. μ΄λ―Έμ§€λ‚˜ ν…μŠ€νŠΈλ₯Ό 화면에 λ„μš°κΈ°

    μ΄λ―Έμ§€λ‚˜ ν…μŠ€νŠΈλ₯Ό λ³΄μ—¬μ£ΌλŠ” μŠ€λ ˆλ“œ

  3. μžλ™ μ €μž₯ κΈ°λŠ₯

    μ§€μ •λœ μ‹œκ°„μ„ κΈ°λ‹€λ¦¬λ©΄μ„œ 계속 μ €μž₯을 ν•˜λŠ” μŠ€λ ˆλ“œ.

 

μŠ€λ ˆλ“œμ˜ μƒνƒœ λ³€ν™”

 

μŠ€λ ˆλ“œλŠ” ν”„λ‘œμ„ΈμŠ€μ™€ 곡톡점이 μƒλ‹Ήνžˆ λ§Žλ‹€. ν”„λ‘œμ„ΈμŠ€μ²˜λŸΌ μ€€λΉ„, μ‹€ν–‰, λŒ€κΈ°, μ’…λ£Œ μƒνƒœκ°€ 있으며 ν”„λ‘œμ„ΈμŠ€μ— μ‘΄μž¬ν•˜λŠ” μŠ€λ ˆλ“œλŠ” 순차적으둜 μ‹€ν–‰ν•˜λ©°, ν•΄λ‹Ή μŠ€λ ˆλ“œμ˜ 정보λ₯Ό μ €μž₯ν•˜λŠ” λ ˆμ§€μŠ€ν„°μ™€ μŠ€νƒμ΄ μžˆλ‹€.

 

보톡 ν”„λ‘œμ„ΈμŠ€λ₯Ό μƒμ„±ν•˜λ©΄ ν•΄λ‹Ή ν”„λ‘œμ„ΈμŠ€μ˜ μŠ€λ ˆλ“œλ„ ν•¨κ»˜ 생성이 λ˜λŠ”λ°, μŠ€λ ˆλ“œ μƒμ„±μ—μ„œλŠ” μš΄μ˜μ²΄μ œκ°€ λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€μ™€ κ³΅μœ ν•  μžμ›μ„ μ΄ˆκΈ°ν™” ν•˜λŠ” μˆ˜κ³ λ‘œμ›€μ΄ μ—†λ‹€.

μŠ€λ ˆλ“œμ˜ 연속성

λ˜ν•œ μŠ€λ ˆλ“œμ˜ μž₯점은 ν•œ μŠ€λ ˆλ“œκ°€ λŒ€κΈ° μƒνƒœλ‘œ λ³€ν•  λ•Œ ν”„λ‘œμ„ΈμŠ€λ₯Ό λŒ€κΈ° μƒνƒœλ‘œ λ§Œλ“€μ§€ μ•ŠλŠ”λ‹€.

μŠ€λ ˆλ“œ μ œμ–΄ 블둝

ν”„λ‘œμ„ΈμŠ€ μ œμ–΄ 블둝 PCB
μŠ€λ ˆλ“œ μ œμ–΄ 블둝 PCB

ν”„λ‘œμ„ΈμŠ€ μ œμ–΄ 블둝이 μ‘΄μž¬ν•˜λ“―μ΄ μŠ€λ ˆλ“œ μ œμ–΄ 블둝도 TCB에 정보λ₯Ό μ €μž₯ν•œλ‹€.

그런데 ν”„λ‘œμ„ΈμŠ€λŠ” μŠ€λ ˆλ“œλ₯Ό ν•œ 개 이상 κ°€μ§ˆ 수 μžˆμœΌλ―€λ‘œ, κ²°κ΅­ PCBλŠ” TCB의 리슀트λ₯Ό 가리킨닀

TCB λ‚΄μš©

  • μ‹€ν–‰ μƒνƒœ

    ν”„λ‘œμ„Έμ„œ λ ˆμ§€μŠ€ν„°, ν”„λ‘œκ·Έλž¨ μΉ΄μš΄ν„°, μŠ€νƒ 포인터

  • μŠ€μΌ€μ₯΄λ§ 정보

    μƒνƒœ(μ‹€ν–‰, μ€€λΉ„, λŒ€κΈ°), μš°μ„ μˆœμœ„, ν”„λ‘œμ„Έμ„œ μ‹œκ°„.

  • 계정 정보

  • μŠ€μΌ€μ€„λ§ 규용 λ‹€μ–‘ν•œ 포인터

  • ν”„λ‘œμ„ΈμŠ€ μ œμ–΄ 블둝^PCB^λ₯Ό ν¬ν•¨ν•˜λŠ” 포인터

λŒ“κΈ€