๊ตญ๋น์ง์ D+07
- ๊ฐ๋ฐํ๊ฒฝ ๊ตฌ์ถ -
๊ฐ๋ฐํ๊ฒฝ ๊ตฌ์ถ
1-1) ์ด์์ฒด์ ์๋ณ
์๋ณ : ๋์์ด ๋๊ตฐ์ง ์ธ์ํ๊ณ ๊ณ ์ ๊ฐ์ ๋ถ์ธ๋ค.
์ธ์ : ๋์์ ํน์ง (๋์๋ง์ด ๊ฐ์ง๊ณ ์๋ ๊ณ ์ ํ ์ฑ์ง) ๊ณ ์ ๊ฐ : ์๋ณ์(id)๋ฅผ ๋ถ์ฌํ๋ค. → ๋คํธ์ํฌ์์ session์ด๋ผ๊ณ ํ๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ key๋ผ๊ณ ํ๋ค. |
• ์ํํธ์จ์ด ํ์ง ํน์ง (ISO 9126)
1๏ธโฃ ๊ธฐ๋ฅ์ฑ (functionality)
2๏ธโฃ ์ ๋ขฐ์ฑ (reliability)
3๏ธโฃ ์ฌ์ฉ์ฑ (usability)
4๏ธโฃ ํจ์จ์ฑ (efficiency)
5๏ธโฃ ์ ์ง๋ณด์์ฑ (maintainability)
6๏ธโฃ ์ด์์ฑ (portability)
• ์ด์์ฒด์
- ์ด์์ฒด์ ๋ ํ๋์จ์ด์ ์ํํธ์จ์ด๋ฅผ ์ ์ฌ์ฉํ ์ ์๊ฒํ๋ ์์คํ ์ํํธ์จ์ด์ด๋ค.
- ์ด์์ฒด์ ์์ ํฌ์ปค์ค๋ฅผ ๋๊ณ ์๋ ๊ฐ์ฅ ํฐ ํน์ง์ ํจ์จ์ฑ๊ณผ ์ ๋ขฐ์ฑ์ด๋ค.
• ์ด์์ฒด์ ๊ฐ๋ ๋
์ปดํจํฐ์์ ํ๋์จ์ด์ ์ํํธ์จ์ด๋ ์ง์ ์ ์ผ๋ก ๋ง๋๋ ๊ฒ์ด ์๋๋ผ ์์คํ ํ๋ก๊ทธ๋จ์ด๋ผ๊ณ ํ๋ ์ค๊ฐ๋ค๋ฆฌ ์ญํ ์ ๊ฑฐ์ณ์ ์ํต์ ํ ์ ์๋๋ก ๋์ด ์๋ค.
์ด๋, ์ด์์ฒด์ ๊ฐ๋ ๋์์ ํต์ฌ์ ์ธ ์ญํ ์ ํ๋ ๊ฒ์ ๊ฐ๋ฆฌ์ผ ์ปค๋์ด๋ผ๊ณ ํ๋ค.
๋ํ ์ด๋ฌํ ๊ณ์ธต์ ์ธ ๊ตฌ์กฐ๋ฅผ ๋ ์ด์ด๋ ์ํคํ ์ฒ๋ผ๊ณ ํ๋ค.
•์ปค๋ ์ํคํ ์ฒ
์ปค๋ ์ํคํ ์ฒ์ ๋ํด์ ์์๋ณด๊ธฐ์ ํด๋น ๊ทธ๋ฆผ์ ์๋ฆฌ์ ๋ํด ์์๋ณด๋๋ก ํ์.
S/W๋ H/W์ ์์์ ๊ณต๊ธ๋ฐ๊ธฐ ์ํด์ ์ค๊ฐ๋ค๋ฆฌ ๋ธ๋ก์ปค๋ฅผ ๊ปด์ผ ํ๋ค.
๊ทธ๋์ S/W๊ฐ ๋ธ๋ก์ปค์๊ฒ ์์ฒญ์ ํ๊ฒ ๋๋๋ฐ ์ด๋ฌํ ์์ฒญ์ APIํธ์ถ์ด๋ผ๊ณ ํ๋ฉฐ ์ด๋ S/W๊ฐ ๋ธ๋ก์ปค์๊ฒ ์ํ๋ ๊ฒ์ ์๊ตฌํ ๋ ์์ฒญํ๋ ํ์๋ ํ๋ฒ์ด๋ค.
์ด๋ ์์ฒญ์ ํ๊ฒ ๋๋ฉด ๋ธ๋ก์ปค๋ H/W์๊ฒ ์์์ ์ป๊ธฐ์ํด์ ์๋ง์ ์ค๊ณ ๊ฐ๊ณผ์ ์ ๊ฒช์ด์ผํ๋๋ฐ ์ด๋ฌํ ๊ฒ์ ์๋ง์ system call์ด ์ค๊ณ ๊ฐ๋ค๊ณ ๋งํ ์ ์๋ค.
์ด๋ system call์ ์์ด ๋ง์ผ๋ฉด ๋ง์์ง์๋ก ์๋๊ฐ ๋๋ ค์ง๊ฒ ๋๋ค.
- ๋ง์ดํฌ๋ก ์ปค๋ ์ํคํ ์ฒ : ์ปค๋์ ์ด์์ฒด์ ์ ์ต์ ํต์ฌ ๊ธฐ๋ฅ๋ง ์์น์ํค๋ ๊ตฌ์กฐ๋ก ๋ง๋ค์ด์ง ์ปค๋
- ๋ชจ๋ ธ๋ฆฌ์ ์ปค๋ ์ํคํ ์ฒ : ๋ง์ดํฌ๋ก ์ปค๋์ด ๋๋ ค์ ์ด์์ฒด์ ์ ๊ธฐ๋ฅ์ ์ปค๋์ ๊ฐ๊ธ์ ํฌํจ์์ผ์ ๋ง๋ ์ปค๋
• 3ํฐ์ด ์ํคํ ์ฒ
์ฐ๋ฆฌ๋ ํด๋ผ์ด์ธํธ ์ ์ฅ์ผ๋ก์ ์์ฒญํ๋ ์ปจํ ์ธ ์ ๋ํด์ ์๊ฐํด๋ณธ๋ค๋ฉด, ํ๋๋ ๋จ์ํ ๋ณด์ด๋ ํ๋ฉด์ธ ์ ์ ์ปจํ ์ธ ์ ํน์ ๊ฒ์์ด ์ ๋ณด๋ง ๋์ค๊ฒ ํ๋ ๋์ ์ปจํ ์ธ ๋ ๊ฐ์ง๋ฅผ ์์ฒญํ ์ ์๋ค.
์ด๋ฌํ ์์ฒญ์ ํ ๊ฐ์ง์ ์๋ฒ๋ก ๋ชจ๋ ์ผ์ ํ๋ ค๊ณ ํ ๋ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆด ์ ์๊ธฐ ๋๋ฌธ ๊ฐ ํน์ง์ ๋ง๊ฒ ์๋ฒ๋ฅผ ์ด 3๊ฐ๋ฅผ ๋ง๋ค์ด์ ์์ฒญ์๋ํ ๋ต๋ณ์ ์ ํด์ฃผ๊ฒ ๋๋ฉด ๋จ์ํ ์ ๋ณด์์ฒญ์ ํ๋์ฌ๋์ด ๋์ ์ปจํ ์ธ ๋ก ์ธํด ์ค๋๊ธฐ๋ค๋ฆฌ์ง ์์ ์ ์์ด ํจ์ฌ ์๊ฐ์ด ๋จ์ถ๋๋ ๊ฒ์ ์ ์ ์๋ค.
์ฐ๋ฆฐ๋ ์ด๋ฌํ ๊ฒ์ ๊ฐ๋ฆฌ์ผ 3ํฐ์ด ์ํคํ ์ฒ๋ผ๊ณ ํ๋ค.
1-2) ์ด์์ฒด์ ๊ธฐ๋ณธ ๋ช ๋ น์ด ํ์ฉ
CLI(Command Line Interface) : ์ฌ์ฉ์๊ฐ ์ง์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ์ฌ ์ปดํจํฐ ์์คํ ์๊ฒ ๋ช ๋ น์ ๋ด๋ฆฌ๋ ๋ฐฉ์
GUI(Graphic User Interface) : ์ฌ์ฉ์๊ฐ ๋ง์ฐ์ค ๋ฑ์ ํตํด ์๋์์ ํ๋ก๊ทธ๋จ์ ์คํํ๊ณ ํ์ผ์ ์ด๋ํ๋ ๋ฐฉ์
• ๋ฆฌ๋ ์ค ๊ธฐ๋ณธ ๋ช ๋ น์ด
1-3) ์ด์์ฒด์ ์์ ์ฐ์ ์์
• ํ๋ก์ธ์ค ์ํ
S/W๋ ์์์ด ํ์ ์ ์ด๊ธฐ๋๋ฌธ์ ์์์ ์ป๊ธฐ ์ํด์๋ ์์๊ณผ ์ง์ ๋งบ๊ฒ ๋์์ฃผ๋ ๋ธ๋ก์ปค๋ฅผ ๊ฑฐ์ณ๊ฐ์ผ ํ๋๋ฐ ๋ฐ๋ก ์ค์ผ์ค๋ฌ ์ด๋ค.
์ค์ผ์ค๋ฌ๋ policy๋ผ๋ ์ ์ฑ ์ ๊ฐ์ง๊ณ ์๋๋ฐ ์ด๋ ์ ์ฑ ์ ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๋ ๊ธฐ์ค์ ์ ๋ํ๋ธ๋ค.
policy๋ผ๋ ์ ์ฑ ์ ์ง์ผ์ผ ํ์ง๋ง ๋ง์ฝ ์ค๊ฐ์ ์ด๋ ํ ์ด์๋ก ์ ์ฑ ์ ์ด๊ธฐ๊ณ ์งํํด์ผ ํ ๋๊ฐ ํ์ํ๋ฐ ์ด๋ฌํ ์ธ๋ถ์ ์ธ ๊ด๋ฆฌ์ ๋ํ ๊ธฐ์ค์ Scheduling Algorithm์ด ํ๊ฒ๋๋ค.
์ด์ ๋ถํฐ ์ค์ผ์ค๋ฌ๊ฐ ํ๋ก์ธ์ค์ ์ํ๋ฅผ ์ด๋ป๊ฒ ๊ด๋ฆฌํ๊ณ ์ ์ง์ํค๋์ง์ ๋ํด ์์๋ณด๋๋ก ํ์.
๋จผ์ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ์๊ฐ ํ๋ก์ธ์ค๊ฐ ๋ฐ์๋๋๋ฐ ์ด์๊ฐ์ New(์์ฑ)๋ผ๊ณ ํ๋๋ฐ ์ด๋, ํด๋นํ๋ก์ธ์ค๊ฐ CPU๊ณผ ๊ด๊ณ๋ฅผ ๋งบ๊ธฐ ์ํด์๋ ํ๋ก์ธ์ค์ ๋ํ ์ ๋ณด๊ฐ ํ์ํ๋ฐ ํ๋ก์ธ์ค์ ๋ํ ์ ๋ณด๋ฅผ ๊ธฐ๋กํ ๊ณณ์ด ๋ฐ๋ก PCB(Process Contorl Block)์ด๋ค.
์ด๋ ๊ฒ ์ผ์ข ์ ์ด๋ค์ ๋ฉค๋ฒ๊ฐ ๋ ์๊ฐ ํ๋ก์ธ์ค๋ CPU์ ๋ง์ฃผํ ๋จ๊ณ๋ฅผ ๋ง์น๊ณ ์ค๋น๋ฅผ ํ๊ฒ ๋๋๋ฐ ์ด ๊ณผ์ ์ Ready(์ค๋น)๋ผ๊ณ ํ๋ค.
์ค๋น๊ฐ ๋ ์ดํ ์ค์ผ์ค๋ฌ๋ CPU์ ์ง์ ๋งบ๊ฒ ํด์ฃผ๋๋ฐ ์ด๋ฅผ Dispatch๋ผ๊ณ ํ๋ฉฐ ํ๋ก์ธ์ค๊ฐ CPU์ ๋ง๋ ์์์ ๊ณต๊ธ ๋ฐ๋ ๊ฒ์ Running(์คํ)์ด๋ผ๊ณ ํ๋ค.
์ด๋ ๋ง์ฝ CPU์๊ฒ ์์์ ๊ณต๊ธ๋ฐ๋ ํ๋ก์ธ์ค๊ฐ ํ๋์ผ์ ์ ์ ์ค์งํ๊ณ ์ ์ถ๋ ฅ๊ณผ ๊ฐ์ ๋ค๋ฅธ ์ ๋ฌด๋ฅผ ํ๊ฒ ๋๋ฉด ํ๋ก์ธ์ค๋ ํ๋์ผ์ ๋ฉ์ถ๊ณ ์ ์ถ๋ ฅ๊ฐ์ ์ผ์ ๋จผ์ ํ๊ฒ ๋๋๋ฐ ์ด๋๋ฅผ Waiting(๋๊ธฐ) ์ด๋ผ๊ณ ํ๊ณ ์ด๋ ๋ง์ฝ ์ ์ถ๋ ฅ์ด ์๋ฃ๋๊ณ ๋ค์ ๋์์์๋ CPU์๊ฒ ๋ฐ๋ก ๊ฐ๋๊ฒ์ด ์๋๋ผ ์ฐจ๋ก๋๋ก ๋ค์ ๋ค๋ก ์ค์์์ผํ๊ธฐ ๋๋ฌธ์ Ready(์ค๋น) ์ํ๋ก ๋น ์ง๊ฒ ๋๋ค.
(CPU๋ ๊ณ ๊ธ์ธ๋ ฅ์ด๋ผ ์ค๊ฐ์ ํน์ ํ๋ก์ธ์ค๋ก ์ธํด ๋ฉ์ถ์ ์๊ธฐ ๋๋ฌธ์ ์ ์ถ๋ ฅ์ผ๋ก ์ค๊ฐ์ ๋น ์ง ํ๋ก์ธ์ค๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋ค์ ํ๋ก์ธ์ค๋ฅผ ๋ง์ํ๊ฒ ๋๋ค.)
์ดํ์ ํ๋ก์ธ์ค๊ฐ ์ถฉ๋ถํ ์์์ ๋ฐ๊ณ ์คํ์ด ์ข ๋ฃ๋์์๋๋ฅผ Terminated(์ข ๋ฃ)๋ผ๊ณ ํ๋๋ฐ, ์ด๋ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๊ฐ ๋์ง์๊ณ ํฌ๊ธฐ๊ฐ ํฐ ํ๋ก์ธ์ค๊ฐ CPU๊ฐ ๊ณ์ ๋ถ์ก๊ณ ์์ ์ ์๋๋ฐ ์ด๋ ์ค์ผ์ค๋ฌ๋ CPU๋ฅผ ๋ถ์ก์ ์ ์๋ ์ต๋ ์๊ฐ์ธ Slice time(=Quantum time) ์ ๋๊ธฐ๊ฒ ๋๋ฉด ํ๋ก์ธ์ค๋ฅผ ๋ค์ Ready(์ค๋น) ์ํ๋ก ๋๊ฒจ ๋ฒ๋ฆฌ๊ฒ ๋๋ฉฐ, ์ค๊ฐ์ ๋์จ ํ๋ก์ธ์ค๋ ๋ค์ ์์์ ๊ณต๊ธ๋ฐ๊ธฐ ์ํด์ ๋ค์ ์ค์ ์ค๊ฒ ๋๋ ๊ฒ์ด๋ค.
์ด๋ฌํ ์ํ๋ค์ ๊ฑฐ์น๊ฒ ๋๋ ํ๋ก์ธ์ค๋ ์ต์ข ์ ์ผ๋ก Terminated๋ผ๋ ์ํ๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค.
• Context Switching
์ปจํ ์คํธ ์ค์์นญ์ ์์ ๊ทธ๋ฆผ์์ Running์์ Reday๋ก ๋์๊ฐ ๋ ๋ฐ์๋๋ ๊ฒ์ผ๋ก ๋ง์ฝ ํ๋ก์ธ์คA๊ฐ Slice time์ ์ด๊ณผํ๊ฒ ๋์ด Ready ์ํ๊ฐ ๋๋ฉด ๋๋ค๋ฅธ ํ๋ก์ธ์คB๊ฐ Running์ํ๋ก ๊ฐ๊ฒ ๋๋๋ฐ ์ด๋ A๊ฐ Ready์ํ๋ก ๊ฐ๊ธฐ ์ํด A๋ ํ๋ ์์ ์ ํต์งธ๋ก PCB์ ๋ฃ๊ณ Ready์ํ๋ก ๊ฐ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ์ํฉ์ด ๋ฐ๋ณต๋๋ฉด ์ค๋ฒํค๋์ ๋ฐ์๋์ด ์ฆ๊ฐํ ์๋ฐ์ ์๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์์ํ ํ๋ก์ธ์ค๊ฐ ๋ง์์๋ก ContextSwitching์๋ํ ์ค๋ฒํค๋๊ฐ ๋ ๋ง์ด ๋ฐ์๋๋ ๊ฒ์ด๋ค.
• Scheduling Algorithm
์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์๋ ํฌ๊ฒ ๋๊ฐ์ง๊ณ ๋๋ ์ ์๋๋ฐ ํ๋๋ ์ ์ ํ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋ค๋ฅธ ํ๋๋ ๋น์ ์ ํ ์๊ณ ๋ฆฌ์ฆ ์ด๋ค.
์ ์ ํ ์๊ณ ๋ฆฌ์ฆ์ ์ฐ๋ฆฌ๊ฐ ํ๋ก์ธ์ค ์ํ๋ฅผ ๋ฐฐ์ ๋ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๊ฐ์ ์๋ฆฌ๋ก ์คํ์ค์ธ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ ๋ก Ready ์ํ๋ก ๋์ด๋ผ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ฉฐ, ์ฅ์ ์ ํ ํ๋ก์ธ์ค๊ฐ ๋ ์ ํ ์ ์๊ฒ ๋์๊ฐ๋ฉฐ ์ํํ๊ธฐ ๋๋ฌธ์ starvation์ด ์์ผ๋ฉฐ ๋จ์ ์ ์์ํ ํ๋ก์ธ์ค๊ฐ ๋ง์ผ๋ฉด Context Switching์ ๋ํ ์ค๋ฒํค๋๊ฐ ๋ฐ์๋ ์ ์๋ค.
๋น์ ์ ํ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ ํ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋ฐ๋๋ก ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ ๋ก Ready ์ํ๋ก ๋ง๋ค ์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ฉฐ, ์ ์ ํ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋ฐ๋๋ก starvation์ด ๋ฐ์๋ ์ ์์ผ๋ฉฐ Context Switching์ ๋ํ ์ค๋ฒํค๋๊ฐ ๋ฐ์๋ ์ผ์ด ์๋ค.
• Turn-around Time
ํด๋น๊ทธ๋ฆผ์ ํ๋ก์ธ์ค์ ์ํ๊ฐ ์ค์ ๋์๊ฐ์๋๋ฅผ ์์ง์ ์ผ๋ก ํํํ ๊ฒ์ผ๋ก ์ค์ ๋์๊ฐ๋ ์๊ฐ๊ณผ ๋๊ธฐ์๊ฐ์ ๋ํ ๋ช ์นญ์ด ์ ํด์ ธ ์๋ค.
- Running Time(=Burst Time) : ์ค์ ๋ก ๋์๊ฐ๋ ์๊ฐ
- Waiting Time : ๋๊ธฐ์๊ฐ
- Turn-around Time : Burst Time + Waiting Time
'์๋ > ๊ตญ๋น์ง์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[D+09] ์ปดํจํฐ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ๋๊ฐ? (0) | 2022.09.30 |
---|---|
[D+08] ํจ์, ๋๋ฒ๊ฑฐ (0) | 2022.09.28 |
[D+06] ์กฐ๊ฑด๋ฌธ & ๋ฐ๋ณต๋ฌธ ์์ (0) | 2022.09.27 |
[D+06] ๋ณต์ต ๋ฐ ๋ฐ๋ณต๋ฌธ (0) | 2022.09.26 |
[D+05] ์ฐ์ฐ, ์กฐ๊ฑด๋ฌธ (0) | 2022.09.23 |
๋๊ธ