View
๐ก์์คํ ํธ์ถ์ด๋?
๊ธฐ๋ณธ์ ์ผ๋ก '์ด์์ฒด์ (Operating System)' ๋ Operating(์ด์)
์ด๋ ์ด๋ฆ์ ๊ฑธ๋ง๊ฒ ์ปดํจํฐ๋ฅผ ์ ๋๋ก ์คํ ๋ฐ ์ฌ์ฉํ๊ฒ ํด์ฃผ๋ ํ๋ก๊ทธ๋จ์ด๋ค.
๋ง์ฐ์ค๋ฅผ ์์ง์ด๋ ๊ฒ๋ถํฐ(๋ง์ฐ์ค๋ ํ๋์จ์ด๋ก๋ถํฐ ์ค๋ ์ ํธ๋ฅผ ๋ชจ๋ํฐ ํฝ์ ๊ณผ ํจ๊ป ํด์ํ์ฌ ํ์ํ ๊ณ์ฐ๊ฐ์ CPU์ ์ ๋ฌํ๊ณ , ๊ณ์ฐ๋ฐ์ ๊ฐ์ ํ๋ก๊ทธ๋จ์ ์ ๋ฌํด์ฃผ๊ฑฐ๋ ํ๋ฉด์ ๋ณด์ฌ์ฃผ๋ ๊ฒ)์ฐ๋ฆฌ๊ฐ ๋๋ธ ํด๋ฆญํ ํ๋ก๊ทธ๋จ ์คํ๊ณผ ์ข ๋ฃ๊น์ง..
๊ทธ๋์ ๋ฌด์จ ๊ด๊ณ๊ฐ ์๋๋ฉด, ๋ฐ๋ก ์์คํ
์ฝ(system call)์ด๋ ๊ฒ์ด ๋ฐ๋ก ํ๋ก์ธ์ค๊ฐ ์ด์์ฒด์ (system)์๊ฒ ์ด์์ฒด์ ๊ธฐ๋ฅ์ ์์ฒญ
ํ๋(call) ๊ฒ!!!!
๐ก์์คํ ํธ์ถ์ ํ๋ ์ด์ ๋?
์์คํ ์ฝ(system call)'์ด๋ ํ๋ก์ธ์ค๊ฐ ์ปดํจํฐ๋ฅผ ๊ด๋ฆฌํ๋ ์์คํ (system)์ธ ์ด์์ฒด์ ์๊ฒ ์ด๋ค ๊ธฐ๋ฅ(์๋น์ค)๋ฅผ ์ฌ์ฉํ๊ฒ ํด๋ฌ๋ผ๊ณ ์์ฒญ(call)ํ ๋ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค.
์์๋ฅผ ๋ค์๋ฉด '์ด์์ฒด์ '๋ ํ์ฌ ๊ด๋ฆฌ์
๊ณ 'ํ๋ก์ธ์ค'๋ ๋ง๋จ ์ง์
์ธ ๊ฒ์ด๋ค.
'ํ๋ก์ธ์ค3'์ด๋ ์ง์์ด ์๊ธฐ ์๋ฆฌ์ ์์ ์์ ์ ํ๋ก๊ทธ๋จ ์ฝ๋๋ฅผ ์คํ์ค์ด์๋๋ฐ, ๋ง์ฝ ์๊ธฐ ํ๋ก๊ทธ๋จ์ธ ํน์ ํ์ผ ๋ฐ์ดํฐ๋ฅผ ํ์๋ก ํ๋ค๊ณ ์ณ๋ณด์. ์ด๋ด ๋ ๊ทธ๋ฅ ์กฐ์ฉํ ๋ ์์ ์ผ๋ก ํ์ผ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด๋ค์ด๋ ๊ฒ์ด ์๋๋ผ, ๊ด๋ฆฌ์ ์ด์์ฒด์ ์๊ฒ ํ๋ฝ์ ์์ฒญ(call)์ ํด์ผํ๋ค.
//์ฐธ๊ณ ์ฌ์ง:
https://mamu2830.blogspot.com/2021/01/whatIsSystemCall.html
๋ฐ๋ผ์ ์ด์์ฒด์ ๊ฐ ๊ด๋ฆฌํ๋ ๋ชจ๋ ์์(๋คํธ์ํฌ, ๋์คํฌ, ๋ฉ๋ชจ๋ฆฌ ๋ฑ๋ฑ๋ฑ)์ 'ํ๋ก์ธ์ค'๊ฐ ํ์๋ก ํ ๊ฒฝ์ฐ ์ ๋ถ๋ค ์ด '์์คํ ์ฝ(system call)'์ ํตํด ์ฌ์ฉํด์ผ ํ๋ค. ํ์ผ์ ์ฌ๋ ๊ฒ(open)๋ ๊ทธ๋ ๊ณ , ๊ธฐ์กด ํ๋ก์ธ์ค๋ฅผ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ผ๋ก ๋ฐ๊พธ๋ ๊ฒ(exec), ๋๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ํ๋ ๋ ๋ง๋๋ ๊ฒ(fork) ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ํ๋ก์ธ์ค์๊ฒ ์ด๋ค ํ์๋ฅผ ์ง์ํ๋ ์๊ทธ๋(์ ํธ)์ ๋ณด๋ผ ๋(kill)๋ ๋ง์ด๋ค!
User๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์ด์์ฒด์ ์ ์น๋ช ์ ์ธ ๋ฐ์ดํฐ๋ฅผ ์์ /์ญ์ ํ๋ ๊ถํ์ ๋ง๊ธฐ ์ํด์๋ค. ์ง์ ์ ์ธ ํ๋์จ์ด ์์ฒญ์ด๋ ๊ธฐํ ์์คํ ์์ฒญ์ OS๊ฐ ์ ๊ณตํ๋ System call์ ํตํด ํธ์ถํ๋๋ก ์ ๊ณตํ๋ค. ๋ง์ฝ ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด System call์ ํธ์ถํ์ฌ ์ฌ์ฉํ๋ฉด ํด๋น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปค๋๋ชจ๋๋ก ์ ์ ์ ํ๋๋ ์์ ์ ๊ฑฐ์น๊ฒ ๋๋ค.
๐ก์์คํ ํธ์ถ์ ๋งค๊ฐ๋ณ์ ์ ๋ฌ ๋ฐฉ์
์ด์์ฒด์ ์ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์ ํฌ๊ฒ ์ธ ๊ฐ์ง๊ฐ ์๋ค.
- ๋งค๊ฐ๋ณ์๋ฅผ ๋ ์ง์คํฐ์ ๋ฃ์ด ์ ๋ฌํ๋ค. ๊ทธ๋ฌ๋ ๋ ์ง์คํฐ ๊ฐ์๋ณด๋ค ๋งค๊ฐ๋ณ์์ ๊ฐ์๊ฐ ๋ ๋ง์ ๋๊ฐ ์๋ค. ์ด๋ฐ ๋ฌธ์ ๊ฐ ์๊ฒผ์ ๋๋ ๋ฐ์ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐํ๋ค.
- ๋งค๊ฐ๋ณ์๋ฅผ ๋ฉ๋ชจ๋ฆฌ ๋ด ๋ธ๋ก[ํน์ ํ ์ด๋ธ]์ ์ ์ฅํ๊ณ , ๋ธ๋ก์ ์ฃผ์๋ฅผ ๋ ์ง์คํฐ์ ๋งค๊ฐ๋ณ์๋ก ๋ฃ์ด ์ ๋ฌํ๋ค.
- ํ๋ก๊ทธ๋จ์ ์ํด ๋งค๊ฐ๋ณ์๊ฐ ์คํ์ (push)๋ฃ์ด์ง๊ณ ์ด์์ฒด์ ์ ์ํด (pop)๊บผ๋ด์ด์ง๋ค.
์ด์์ฒด์ ๋ ๋ธ๋ก์ด๋ ์คํ ๋ฐฉ๋ฒ์ ์ ํธํ๋๋ฐ, ์ด๋ ์ ๋ฌ๋๋ ๋งค๊ฐ๋ณ์ ๊ฐ์๋ ๊ธธ์ด๋ฅผ ์ ํํ์ง ์๊ธฐ ๋๋ฌธ์ด๋ค.
๋น๊ต์ (1)์ ๊ฒฝ์ฐ๋ CPU ๋ ์ง์คํฐ์ ๊ณต๊ฐ์ด ๋ถ์กฑํ๋ฉด ๋๋ฝ์ด ๋ ์ ์๊ธฐ ๋๋ฌธ์ ์ ํธ๋ฅผ ์ ํ์ง ์๊ณ (2),(3)๋ฒ ๋ฐฉ์์ ์ ํธํ๋ค.
๐ก์์คํ ํธ์ถ์ ์ ํ
์์คํ ์ฝ์ ๋ค์ฏ ๊ฐ์ง์ ์ค์ํ ๋ฒ์ฃผ๋ก ๋๋ ์ ์๋ค. ํ๋ก์ธ์ค ์ ์ด, ํ์ผ ์กฐ์, ์ฅ์น ์กฐ์, ์ ๋ณด ์ ์ง๋ณด์, ํต์ ๊ณผ ๋ณดํธ. ์ฌ๊ธฐ์๋ ๊ฐ ๋ฒ์ฃผ๋ค์ ์ด๋ ํ ๊ธฐ๋ฅ๋ค์ด ์๋์ง๋ง ๊ฐ๋ตํ๊ฒ ์ดํด๋ณธ๋ค.
ํ๋ก์ธ์ค ์ ์ด(Process Control)
- ๋๋ด๊ธฐ(end), ์ค์ง(abort)
- ์ ์ฌ(load), ์คํ(execute)
- ํ๋ก์ธ์ค ์์ฑ(create process)
- ํ๋ก์ธ์ค ์์ฑ ํ๋๊ณผ ์ค์ (get process attribute and set process attribute)
- ์๊ฐ ๋๊ธฐ(wait time)
- ์ฌ๊ฑด ๋๊ธฐ(wait event)
- ์ฌ๊ฑด์ ์๋ฆผ(signal event)
- ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฐ ํด์ : malloc, free
ํ์ผ ์กฐ์(File Manipulation)
- ํ์ผ ์์ฑ(create file), ํ์ผ ์ญ์ (delete file)
- ์ด๊ธฐ(open), ๋ซ๊ธฐ(close)
- ์ฝ๊ธฐ(read), ์ฐ๊ธฐ(write), ์์น ๋ณ๊ฒฝ(reposition)
- ํ์ผ ์์ฑ ํ๋ ๋ฐ ์ค์ (get file attribute and set file attribute)
์ฅ์น ๊ด๋ฆฌ(Devide Management)
- ์ฅ์น์ ๋ ผ๋ฆฌ์ ๋ถ์ฐฉ(attach) ๋๋ ๋ถ๋ฆฌ(detach)
- ์ฅ์น ์์ฑ ํ๋, ์ฅ์น ์์ฑ ์ค์
- ์ฝ๊ธฐ, ์ฐ๊ธฐ, ์์น ๋ณ๊ฒฝ
- ์ฅ์น๋ฅผ ์๊ตฌ(request devices), ์ฅ์น๋ฅผ ๋ฐฉ์ถrelease device)
์ ๋ณด ์ ์ง(Information Maintenance)
- ์๊ฐ๊ณผ ๋ ์ง์ ์ค์ ๊ณผ ํ๋(time)
- ์์คํ ๋ฐ์ดํฐ์ ์ค์ ๊ณผ ํ๋(date)
- ํ๋ก์ธ์ค ํ์ผ, ์ฅ์น ์์ฑ์ ํ๋ ๋ฐ ์ค์
ํต์ (Communication)
- ํต์ ์ฐ๊ฒฐ์ ์์ฑ, ์ ๊ฑฐ
- ๋ฉ์์ง์ ์ก์ , ์์
- ์ํ ์ ๋ณด ์ ๋ฌ
- ์๊ฒฉ ์ฅ์น์ ๋ถ์ฐฉ ๋ฐ ๋ถ๋ฆฌ
์ฐธ๊ณ :
์์คํ ์ฝ์ด๋? ์ฝ๊ณ ์์ธํ!
[ํ์ธ์ฆ/๋ฆฌ๋ ์ค] System Call ์ด๋? (feat. linux)
์ด์์ฒด์ 04 : ์์คํ ์ฝ (์์คํ ํธ์ถ, System Call)
'CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
HTTP Method (GET, POST, DELETE, PUT) (0) | 2022.09.19 |
---|---|
[OS] ๊ธฐ์ ๋ฉด์ ์ง๋ฌธ ๋ฆฌ์คํธ (0) | 2022.08.30 |
[OS] ํ์ด์ง๊ณผ ์ธ๊ทธ๋ฉํ ์ด์ (0) | 2022.08.30 |
[OS] ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ (0) | 2022.08.30 |
[OS] ์ธํฐ๋ฝํธ(Interrupt) (0) | 2022.08.30 |