https://seung2344.tistory.com/110
[๐ฆOS๐ฆ]2์ฅ. ์ด์์ฒด์ ๊ตฌ์กฐ(1)
์ด ์ฅ์ ํ์ต ๋ชฉํ์ด์์ฒด์ ์์ ์ ๊ณตํ๋ ์๋น์ค ํ์ต์ฌ์ฉ์ ์ธํฐํ์ด์ค ์ข ๋ฅ์ ๋ํด ํ์ต์๋น์ค๋ฅผ ์ ๊ณตํ๊ธฐ ์ํ ์์คํ ์ฝ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ ํ์ต์ด์์ฒด์ ์ค๊ณ๋ฅผ ์ํ ๋ชจ๋๋ฆฌ์, ๊ณ์ธตํ, ๋ง
seung2344.tistory.com
์ง๋ ํฌ์คํ ์ ์ด์ด ๋ง์ ๊ณต๋ถํด๋ณด์.
์ด์์ฒด์ ์์ ์ ๊ณตํ๋ ์๋น์ค ํ์ต์ฌ์ฉ์ ์ธํฐํ์ด์ค ์ข ๋ฅ์ ๋ํด ํ์ต์๋น์ค๋ฅผ ์ ๊ณตํ๊ธฐ ์ํ ์์คํ ์ฝ์ ์ข ๋ฅ์ ๋ํด ํ์ต๋ง์ปค์ ๋ก๋์ ๋ํด ํ์ต์ด์์ฒด์ ์ค๊ณ๋ฅผ ์ํ ๋ชจ๋๋ฆฌ์, ๊ณ์ธตํ, ๋ง์ดํฌ๋ก ์ปค๋, ๋ชจ๋ ๋ฐ ํ์ด๋ธ๋ฆฌ๋ ์ ๋ต์ ๋ํด ํ์ต- ์ด์์ฒด์ ์ฑ๋ฅ์ ๋ชจ๋ํฐ๋ง ํ๊ธฐ ์ํ ๋๊ตฌ ํ์ต
์์คํ ์ฝ(System Call)
์์คํ ์ฝ์ ์ปค๋๊ณผ ์ฌ์ฉ์ ์ฌ์ด์ ์ธํฐํ์ด์ค์ด๋ค. ์์ฃผ ๊ฐ๋จํ ์์ , ์๋ฅผ ๋ค์ด ์ฝ์์ hello๋ฅผ ์ถ๋ ฅํ๋ ์์ ์กฐ์ฐจ๋ ์์คํ ์ฝ์ ๊ฑฐ์ณ์ ๋์ํ๊ฒ ๋๋ค. ๋ค์์ ํ์ผ์ ๋ณต์ฌํ๋ cp ๋ช ๋ น์ด ํ๋์์ ๋ฐ์ํ๋ ์์คํ ์ฝ๋ค์ด๋ค.
์์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด ์๋ฏ์ด ๊ฐ๋จํ ํ ์คํฌ ํ๋์๋ ์๋ง์ ์์คํ ์ฝ์ด ๋ฐ์ํ๊ฒ ๋๋ค. ํ์ง๋ง ์ฌ์ฉ์ ๋๋ถ๋ถ์ ์ด๋ฌํ ์์ธ ๋ก์ง์ ์์ง ๋ชปํ๋ฉฐ ์ํ์๋ ๋ณ๋ก ์๋ค. ๊ทธ๋ ๋ค๋ฉด ๊ฐ๋ฐ์๋ค์ ์ด๋จ๊น. ๊ตฌํ์ ์ํด์ ๋ฐ์ํ๋ ๋ชจ๋ ๋ก์ง์ ๋ํด์ ํ์ ํ๊ณ ์๋๊ฒ์ด ๋ฌผ๋ก ์ข๊ฒ ์ง๋ง, ๋ชจ๋ ์์คํ ์ฝ์ ์ง์ ๊ตฌํํ๊ธฐ๋ ๋งค์ฐ ์ด๋ ต๊ณ ์๊ฐ ๋ํ ๋ง์ด ์์๋ ๊ฒ์ด๋ค. ์ด๋ฅผ ์ํด ์กด์ฌํ๋ ๊ฒ์ด ์์ฉ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค ์ฆ, API์ด๋ค. API๋ ๊ฐ๋ฐ์๊ฐ ์ฌ์ฉ ๊ฐ๋ฅํ ํจ์์ ์งํฉ์ผ๋ก OS๊ฐ ์ ๊ณตํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด ์ฌ์ฉ๊ฐ๋ฅํ๋ค. API๋ฅผ ๊ตฌ์ฑํ๋ ํจ์๋ค์ด ๊ฐ๋ฐ์๋ฅผ ๋์ ํด์ ์์คํ ์ฝ์ ํธ์ถํ๊ฒ ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํธ์ถ์๋ ๋จ์ง API๋ฅผ ์ค์ํ๊ณ ์์คํ ์ฝ์ ๊ฒฐ๊ณผ๋ก์ ์ด์์ฒด์ ๊ฐ ๋ฌด์์ ํ ๊ฒ์ธ์ง๋ง ์ดํดํ๋ฉด ๋๋ค.
์ด์์ฒด์ ์ธํฐํ์ด์ค์ ๋ํ ๋๋ถ๋ถ์ ์์ธํ ๋ด์ฉ์ API์ ์ํด ํ๋ก๊ทธ๋๋จธ๋ก๋ถํฐ ์จ๊ฒจ์ง๊ณ RTE์ ์ํด ๊ด๋ฆฌ๋๊ฒ ๋๋ค. RTE(Run-Time Environment)๋ ํน์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์ฐ์ฌ์ง ์ฑ์ ์ํํ๊ธฐ ์ํ ์ํํธ์จ์ด ์งํฉ์ด๋ค. RTE๋ OS๊ฐ ์ ๊ณตํ๋ ์์คํ ์ฝ์ ๋ํ ์ฐ๊ฒฐ๊ณ ๋ฆฌ ์ญํ ์ ํ๋ ์์คํ ์ฝ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ค. ๋ฐ๋ก ์ด ์์คํ ์ฝ ์ธํฐํ์ด์ค๊ฐ API ํจ์์ ํธ์ถ์ ๊ฐ๋ก์ฑ์ด OS์ ์์คํ ์ฝ์ ํธ์ถํด์ฃผ๋ ์์ด์ด๋ค.
์์คํ ์ฝ์ ์ฌ์ฉ์ ์ํด ์ข ์ข ๋งค๊ฐ๋ณ์๋ฅผ ์๊ตฌํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ์ด๋ฅผ ์ํด OS์ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฌํด์ผ ํ๋๋ฐ ์ฃผ๋ ๋ฐฉ๋ฒ์ ๋ค์ 3๊ฐ์ง ์ด๋ค.
- ๋งค๊ฐ๋ณ์๋ฅผ ๋ ์ง์คํฐ ๋ด์ ์ ๋ฌ (๋ ์ง์คํฐ ๊ณต๊ฐ๋ณด๋ค ๋ ๋ง์ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฌํด์ผ ํ ๊ฒฝ์ฐ์ ์ฌ์ฉ ๋ฌด๋ฆฌ)
- ๋งค๊ฐ๋ณ์๋ฅผ ๋ฉ๋ชจ๋ฆฌ ๋ด์ ๋ธ๋ก์ด๋ ํ ์ด๋ธ์ ์ ์ฅํ ํ, ํด๋น ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๋ ์ง์คํฐ ๋ด์ ์ ๋ฌ
- ํ๋ก๊ทธ๋จ์ด stack์ ๋ฃ์ผ๋ฉด OS๊ฐ ๊บผ๋ด์ด ์ฌ์ฉ
์ด๋ฌํ ์์คํ ์ฝ์ ์ฌ์ฏ ๊ฐ์ง์ ์ค์ํ ๋ฒ์ฃผ๋ก ๋๋ ์ ์์ผ๋ฉฐ ๊ทธ ์ข ๋ฅ๋ ๋ค์๊ณผ ๊ฐ๋ค.
- ํ๋ก์ธ์ค ์ ์ด(Process Control)
- ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ์ ์ ์์ ์ผ๋ก(end()) ๋๋ ๋น์ ์์ ์ผ๋ก(abort()) ๋ฉ์ถ ์ ์์ด์ผ ํ๋ค.
- ํ์ฑํ ์ํ์ธ ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ ์ ์ฌ(load())ํ๊ณ ์คํ(execute()) ํ ์ ์์ด์ผ ํ๋ค.
- ์๋ก์ด ํ๋ก์ธ์ค๋ job์ ์์ฑ, ์ ์ด(์ฐ์ ์์ ๋ถ์ฌ ๋ฑ), ์ฌ์ค์ , ์ข ๋ฃ์ ๊ฐ์ ํ์๋ค๋ก ๊ทธ๋ค์ ์ ์ด ํ ์ ์์ด์ผ ํ๋ค.
- ํ๋ก์ธ์ค๋ค์ ์ด๋ฒคํธ ๋ฐ์(wait_event()) ํน์ ์ผ์ ์๊ฐ(wait_time())์ ๊ธฐ๋ค๋ฆด ์ ์์ด์ผ ํ๋ค.
- ๋ ์ด์์ ํ๋ก์ธ์ค๊ฐ ๊ณต์ ํ๋ ๋ฉ๋ชจ๋ฆฌ๋ ์ผ๊ด์ฑ ์ ์ง๋ฅผ ์ํด ๋ฐ์ดํฐ์ ์ ๊ธ์ ๊ฑธ ์ ์์ด์ผ ํ๋ค.
- ํ์ผ ์กฐ์(File Manipulation)
- ํ์ผ์ ์์ฑ(create())ํน์ ์ญ์ (delete()) ํ ์ ์์ด์ผ ํ๋ค.
- ํ์ผ์ ์ด๊ณ (open()) ๋ซ์ ์ (close()) ์์ด์ผ ํ๋ค.
- ํ์ผ์ ์ฝ๊ณ (read()), ์ฐ๊ณ (write()), ๋๊ฐ์ ์(rewind()) ์์ด์ผ ํ๋ค.
- ํ์ผ์ ์์ฑ์ ํ๋ํ๊ณ ์ด๋ฅผ ์ค์ ํ ์ ์์ด์ผ ํ๋ค.
- ์ฅ์น ๊ด๋ฆฌ(Device Management)
- ๋ค์์ ์ฌ์ฉ์๊ฐ ์ ๊ทผํ๋ ์ฅ์น์ ๊ฒฝ์ฐ, ๋ ์ ์ ์ธ ์ฌ์ฉ์ ๋ณด์ฅ๋ฐ๊ธฐ ์ํด ์ฅ์น๋ฅผ ์๊ตฌํ๊ณ ๋ ๋ฐฉ์ถํ ์ ์์ด์ผ ํ๋ค.
- ํ์ผ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฝ๊ธฐ, ์ฐ๊ธฐ, ์์น ๋ณ๊ฒฝ ๋ฑ์ด ๊ฐ๋ฅํด์ผ ํ๋ฉฐ, ์ฅ์น์ ์์ฑ์ ํ๋ํ๊ณ ๋ณ๊ฒฝํ ์ ์์ด์ผ ํ๋ค.
- ์ฅ์น๋ ๋ ผ๋ฆฌ์ ์ผ๋ก ๋ถ์ฐฉ๋๊ฑฐ๋ ๋ถ๋ฆฌ๋ ์ ์์ด์ผ ํ๋ค.
- ์ ๋ณด ์ ์ง(Information Maintenance)
- ํ๋ก๊ทธ๋จ์ time profile์ ์ ๊ณตํ์ฌ ํ๋ก๊ทธ๋จ์ด ํน์ ์์น, ํน์ ์์น์ ์งํฉ์์ ์ํํ ์๊ฐ์ ์์ ๋ํ๋ด์ผ ํ๋ค.
- OS์์ ์ด์๋๊ณ ์๋ ๋ชจ๋ ํ๋ก์ธ์ค์ ๋ํ ์ ๋ณด๋ฅผ ํ๋ํ๊ณ ์ค์ ํ ์ ์์ด์ผ ํ๋ค.
- ํต์ (Communication)
- ๋ฉ์์ง ์ ๋ฌ ๋ชจ๋ธ : ํต์ ์ ์ํ๋ ํ๋ก์ธ์ค๊ฐ ์ ๋ณด ๊ตํ์ ์ํด ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ฒ. ์๋์ ์ ๋ณด ์ ๋ฌ์ ์ ์ฉํ๋ฉฐ ์ถฉ๋ ๊ฐ๋ฅ์ฑ์ด ๋ฎ์ ํธ์ด๋ค.
- ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ๋ชจ๋ธ : ์ ๋ณด๋ฅผ ์ํ๋ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ ๊ทผํ์ฌ ์ ๋ณด๋ฅผ ์ป๋ ๊ฒ. ๋น ๋ฅธ ์๋๋ก ์ ๋ณด ๊ณต์ ๊ฐ ๊ฐ๋ฅํ์ง๋ง ์ถฉ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ ํธ์ด๋ค.
- ๋ณดํธ(Protection)
- ์ปดํจํฐ ์์คํ ์ด ์ ๊ณตํ๋ ์์์ ๋ํด ์ ๊ทผ์ ์ ํํ๋ ๊ธฐ๋ฒ์ ๊ฐ์ ธ์ผ ํ๋ค.
๋ง์ปค์ ๋ก๋(Linkers and Loaders)
์ผ๋ฐ์ ์ผ๋ก ํ๋ก๊ทธ๋จ์ ๋์คํฌ์ ์ด์ง ์คํ ํ์ผ(ex, a.out ํน์ b.exe)๋ก ์กด์ฌํ๋ค. CPU์์ ์คํํ๋ ค๋ฉด ํ๋ก๊ทธ๋จ์ ๋ฉ๋ชจ๋ฆฌ๋ก ๊ฐ์ ธ์ ํ๋ก์ธ์ค ํํ๋ก ๋ฐฐ์น๋์ด์ผ ํ๋ค. ์ด๋ฅผ ์ํ ์ผ๋ จ์ ์ ์ฐจ๋ฅผ ๋ง์ปค์ ๋ก๋๋ฅผ ํตํด ์ค๋ช ํ๊ณ ์ ํ๋ค.
- ์์ค ํ์ผ์ ์ฌ๋ฐฐ์น ๊ฐ๋ฅ ์ค๋ธ์ ํธ ํ์ผ๋ก ์ปดํ์ผ (์ปดํ์ผ ๋จ๊ณ)
- ๋ง์ปค๊ฐ ์ฌ๋ฐฐ์น ๊ฐ๋ฅ ์ค๋ธ์ ํธ ํ์ผ์ ํ๋์ ์ด์ง ์คํ ํ์ผ๋ก ๊ฒฐํฉ (๋งํน ๋จ๊ณ)
- ๋ก๋๋ ์ด์ง ์คํ ํ์ผ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ (๋ก๋ฉ ๋จ๊ณ)
์์ ๊ณผ์ ์์ ์คํ์ ํ์ํ ๋ชจ๋ ํ์ผ์ ํ๋ฒ์ ๋งํนํ๊ณ ๋ก๋ฉํ๋ฉด ๊ฝค๋ ๋ง์ ์๊ฐ์ ์๋ชจํ๊ฒ ๋ ๊ฒ์ด๋ค. ์ด๋ฅผ ์ํด ์กด์ฌํ๋ ๊ฒ์ด ๋ฐ๋ก DLL(Dynamically linked library)์ด๋ค. DLL์ ์ฌ์ฉํ๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋์ ์ผ๋ก ๋งํฌ๋์ด์ ํ๋ก๊ทธ๋จ ์คํ ๋์ค์ ํ์์ ๋ฐ๋ผ ์ ์ฌ๋๊ฒ ๋๋ค. ์ด๋ฅผ ํตํด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ํฌ๊ฒ ์ ์ฝํ ์ ์๋ค.
์ด์์ฒด์ ๊ตฌ์กฐ(Operating-System Structures)
- ๋ชจ๋๋ฆฌ์ ๊ตฌ์กฐ
- ์ปค๋์ ๋ชจ๋ ๊ธฐ๋ฅ์ ๋จ์ผ ์ฃผ์ ๊ณต๊ฐ์์ ์คํ๋๋ ๋จ์ผ ์ ์ ์ด์ง ํ์ผ์ ๋ฃ๋ ๊ฒ
- ์ด์์ฒด์ ๋ฅผ ์ค๊ณํ๋ ๊ฐ์ฅ ๊ฐ๋จํ๊ณ ์ผ๋ฐ์ ์ธ ๊ธฐ์
- ์์คํ ์ด ์๋ก ๋ฐ์ ํ๊ฒ ๊ฒฐํฉ๋์ด ์์
- ๊ตฌ์กฐ๊ฐ ๋จ์ํ๊ณ ์๋๊ฐ ๋น ๋ฅด์ง๋ง ๊ตฌํ๊ณผ ํ์ฅ์ด ์ด๋ ค์
- ๊ณ์ธต์ ์ ๊ทผ ๊ตฌ์กฐ
- ๊ธฐ๋ฅ์ด ํน์ ๊ธฐ๋ฅ ๋ฐ ํ์ ๋ ๊ธฐ๋ฅ์ ๊ฐ์ง ๊ฐ๋ณ์ ์ธ ์์ ๊ตฌ์ฑ์์๋ก ๋๋๋ ๊ตฌ์กฐ
- ๊ฐ๊ฐ์ ์์๋ค์ด ๋ชจ์ฌ ์ปค๋์ ๊ตฌ์ฑํ๊ฒ ๋จ
- ์์คํ ๋ค์ด ๋์จํ๊ฒ ๊ฒฐํฉ๋์ด ์์
- OS๊ณ์ธต์ ๋ฐ์ดํฐ์ ์ฐ์ฐ์ผ๋ก ๊ตฌ์ฑ๋ ์ถ์๋ ๊ฐ์ฒด์ ๊ตฌํ์
- ๊ฐ๊ฐ์ ์ธต์ ์์์ธต์์ ํธ์ถํ ์ ์๋ ๋ฃจํด์ ์งํฉ์ผ๋ก ๊ตฌ์ฑ๋จ
- ์ถ์ํ์ ์บก์ํ๊ฐ ์๋์ง๋ง ์ ์ฒด์ ์ธ ์ฑ๋ฅ์ ํ๊ฐ ๋ฐ์ํ๋ฉฐ ๊ฐ๊ฐ์ ์ธต์ ์ ์ํ๊ณ ๋ถ๋ฆฌํ๋ ๊ธฐ์ค์ด ๋ชจํธํ๋ค.
- ๋ง์ดํฌ๋ก์ปค๋ ๊ตฌ์กฐ
- ์ค์ํ ์์๋ก๋ง ์ปค๋์ ๊ตฌ์ฑํ๊ณ , ๊ทธ ์ธ์ ๊ฒ๋ค์ ๋ณ๋์ ์ฃผ์ ๊ณต๊ฐ์ ์กด์ฌํ๋ ์ฌ์ฉ์ ์์ค ํ๋ก๊ทธ๋จ์ผ๋ก ๊ตฌํํ๋ ๋ฐฉ์
- ํต์ ๊ธฐ๋ฅ ์ธ์ ์ต์ํ์ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ ๊ณต
- ์๋น์ค๊ฐ์ ํต์ ์ ๋ฉ์์ง ์ ๋ฌ ๋ฐฉ์์ผ๋ก ์ด๋ฃจ์ด์ง
- ํ์ฅ์ด ์ฝ๊ณ ์ปค๋์ ๋ณด์์ฑ์ด ๋์ ํธ์ด์ง๋ง, ํต์ ์ ์ํ ๊ณผ์ ์ด ์ถ๊ฐ๋๊ณ ์๋น์ค๊ฐ ๋์ด๋ ์๋ก ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ๋ค.
- ์ ์ฌ ๊ฐ๋ฅ ์ปค๋ ๋ชจ๋ ๊ตฌ์กฐ
- ์ปค๋์ ํต์ฌ์ ์ธ ๊ตฌ์ฑ์์์ ์งํฉ์ ๊ฐ์ง๊ณ ์๊ณ , ์คํ ๋์ค์ ๋ถ๊ฐ์ ์ธ ์๋น์ค๋ค์ ๋ชจ๋์ ํตํ์ฌ ๋งํฌํ๋ ๋ฐฉ์
- ํต์ ์ ๋ฉ์์ง ์ ๋ฌ ๋ฐฉ์์ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์ ์ผ๋ก ์ข ๋ ์ฐ์ํจ
- ํ์ด๋ธ๋ฆฌ๋ ์์คํ
- ๋ค์ํ ๊ตฌ์กฐ๋ฅผ ๊ฒฐํฉํ์ฌ ์ฑ๋ฅ, ๋ณด์ ๋ฐ ํธ๋ฆฌ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ ํผ์ฉ ๊ตฌ์กฐ
'CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ด์์ฒด์ ]๐ฆ๊ณต๋ฃก์ฑ ๐ฆ3์ฅ - ํ๋ก์ธ์ค(1) (6) | 2024.10.16 |
---|---|
[์ด์์ฒด์ ]๐ฆ๊ณต๋ฃก์ฑ ๐ฆ2์ฅ - ์ด์์ฒด์ ๊ตฌ์กฐ(3) (4) | 2024.10.07 |
[์ด์์ฒด์ ]๐ฆ๊ณต๋ฃก์ฑ ๐ฆ2์ฅ - ์ด์์ฒด์ ๊ตฌ์กฐ(1) (1) | 2024.09.26 |
์ฝ๋ฉ ํ ์คํธ ์ดํดํ๊ธฐ (1) | 2024.03.29 |