ํ๋ก์ธ์ค ํน์ ์ค๋ ๋์ ๋๊ธฐํ๋ ๋ฌด์์ธ๊ฐ์?
- ๋๊ธฐํ๋?
- ๋๊ธฐํ ๋ฉ์ปค๋์ฆ์ ํ ๋ฒ์ ํ๋์ ์ค๋ ๋ ๋๋ ํ๋ก์ธ์ค๋ง ๊ณต์ ๋ฆฌ์์ค์ ์ก์ธ์คํ ์ ์๋๋ก ์ํธ ๋ฐฐ์ ๋ฅผ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ ๊ฒ์ด๋ค.
- ๋๊ธฐํ๋ฅผ ํด์ผํ๋ ์ด์
- ๋ฉํฐ ์ค๋ ๋์ธ ๊ฒฝ์ฐ ์๋ก ๋ค๋ฅธ ์ฐ๋ ๋๊ฐ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ ๋์์ ์์์ ์ ๊ทผํ๋ ์ํฉ(๊ฒฝ์ ์ํฉ)์ด ์๊ธฐ๊ฒ ๋๋๋ฐ ์ด๋ฐ ๊ฒฝ์ ์ํฉ์ผ๋ก ์ธํด ๋ฐ์ํ๋ ๋ฌธ์ ๊ฐ ๋๊ธฐํ ๋ฌธ์ ์ด๋ค.
- ์ด๋ฐ ๋ฌธ์ ๋ก๋ถํฐ ๋ณดํธํ๊ธฐ ์ํด ํ๋์ ํ๋ก์ธ์ค ํน์ ํ๋์ ์ฐ๋ ๋๋ง์ด ํ ์์์ ์ ๊ทผํ ์ ์๊ฒ ํด์ผ ํ๋ค.
- ๋๊ธฐํ ๋ฐฉ๋ฒ
- Mutex(๋ฎคํ ์ค), Semaphore(์ธ๋งํฌ์ด) ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ ์ ์๋ค. ๊ฐ๋จํ๊ฒ ๋งํ๋ฉด ๋ฎคํ ์ค๋ ํ ๊ฐ์ ์ฐ๋ ๋๋ง ๊ณต์ ์์์ ์ ๊ทผํ ์ ์๊ฒ ํด์ ๊ฒฝ์ ์ํฉ์ ๋ฐฉ์งํ๋ ๊ฒ์ด๊ณ , ์ธ๋งํฌ์ด๋ ์ง์ ํ ์ ๋งํผ์ ์ฐ๋ ๋๋ง ๊ณต์ ์์์ ์ ๊ทผํ ์ ์๊ฒ ํ๋ ๊ฒ์ด๋ค.
์ฌ์ฉ์ ์์ค์ ์ค๋ ๋์ ์ปค๋ ์์ค์ ์ค๋ ๋์ ์ฐจ์ด๋ ๋ฌด์์ธ๊ฐ์?
์ฌ์ฉ์ ์์ค ์ค๋ ๋์ ์ปค๋ ์์ค ์ค๋ ๋๋ ์์ฑ ์ฃผ์ฒด๊ฐ ๋๊ตฌ๋์ ๋ฐ๋ผ ๊ตฌ๋ถ
์ฌ์ฉ์๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด ๋ง๋ค๊ณ ๊ด๋ฆฌํ๋ ์ค๋ ๋๊ฐ ์ฌ์ฉ์ ์์ค ์ค๋ ๋์ด๊ณ , OS์ ์ปค๋์ด ๋ง๋ค๊ณ ๊ด๋ฆฌํ๋ ์ค๋ ๋๊ฐ ์ปค๋ ์์ค ์ค๋ ๋
์ฌ์ฉ์ ์์ค ์ค๋ ๋
- ์ฌ์ฉ์๊ฐ ์ค๋ ๋ ๊ด๋ จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๊ตฌํํด ์ฌ์ฉํ๋ ์ค๋ ๋๋ฅผ ์ฌ์ฉ์ ์์ค ์ค๋ ๋๋ผ๊ณ ํ๋ค.
- ์ค๋ ๋์ ๊ด๋ จ๋ ๋ชจ๋ ํ์๋ฅผ ์ฌ์ฉ์ ์์ญ์์ ํ๊ธฐ ๋๋ฌธ์, ์ปค๋์ ์ฌ์ฉ์ ์์ค ์ค๋ ๋์ ์กด์ฌ๋ฅผ ์์ง ๋ชปํ๊ณ , ์ค๋ ๋ ๊ตํ์ ๊ฐ์ ํ์ง ์๋๋ค.
- ์ฌ์ฉ์ ์์ค ์ค๋ ๋ N๊ฐ๊ฐ ์ปค๋ ์์ค ์ค๋ ๋ 1๊ฐ์ ๋งคํ๋๋ฏ๋ก, ๋ค๋์ผ ์ค๋ ๋ ๋งคํ์ด๋ผ๊ณ ํ๋ค.
์ฅ์
- ์ปค๋์ ๋ ๋ฆฝ์ ์ผ๋ก ์ค์ผ์ค๋ง ํ ์ ์๋ค → ๋ชจ๋ ์ด์์ฒด์ ์ ์ ์ฉํ ์ ์๋ค, ์ด์์ฑ์ด ๋๋ค.
- ์ค์ผ์ค๋ง์ด๋ ๋๊ธฐํ๋ฅผ ์ํด ์ปค๋์ ํธ์ถx → ์ปค๋ ์์ญ์ผ๋ก ์ ํํ๋ ์ค๋ฒํค๋๊ฐ ์ค์ด๋ ๋ค.
- ์ปค๋์ด ์๋ ์ค๋ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ค๋ ๋ ์ค์ผ์ค๋ง์ ์ ์ด → ์ ์ฐํ ์ค์ผ์ค๋ง์ด ๊ฐ๋ฅํ๋ค.
๋จ์
- ํ๋์ ํ๋ก์ธ์ค๋ก๋ถํฐ ํ ๋น๋ ์ฌ๋ฌ๊ฐ์ ์ค๋ ๋๋ค ์ค, ํ ์ค๋ ๋๊ฐ ๋๊ธฐ ์ํ๊ฐ ๋๋ฉด, ๋ชจ๋ ์ค๋ ๋๋ค์ ์คํ์ํฌ ์ ์๊ฒ ๋๋ค.
- ์ปค๋์ด ์ค๋ ๋ ๊ด๋ฆฌ์ ๊ฐ์ ํ์ง ์์ผ๋ฏ๋ก, ์ค๋ ๋ ๊ฐ ๋ณดํธ์ ์ปค๋์ ๋ณดํธ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ค์ ๋ณดํธ ๋ฐฉ๋ฒ๊น์ง๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
ํต์ฌ ํค์๋
- ์ปค๋์ด ์ฌ์ฉ์ ์์ค ์ค๋ ๋๋ฅผ ์์ง ๋ชปํ๋ค
- ์ฅ์ : ์ค์ผ์ค๋ง์ด๋ ๋๊ธฐํ๋ฅผ ์ํด ์ปค๋์ ํธ์ถํ์ง ์๋๋ค → ์ปค๋ ์์ญ์ผ๋ก ์ ํํ๋ ์ค๋ฒํค๋๊ฐ ์ค์ด๋ ๋ค.
- ๋จ์ : ์ค๋ ๋ ๊ฐ ๋ณดํธ์ ์ปค๋์ ๋ณดํธ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์๋ค.
์ปค๋ ์์ค ์ค๋ ๋
์ปค๋์ด ์ค๋ ๋์ ๊ด๋ จ๋ ๋ชจ๋ ์์ ์ ๊ด๋ฆฌํ๋ ๋ฐฉ์์ด๋ค.
์ฌ์ฉ์ ์์ค ์ค๋ ๋์ ์ปค๋ ์์ค ์ค๋ ๋๊ฐ 1๋1๋ก ๋งคํ๋๋ค.
๋จ์
์ปค๋์ด ์ง์ ์ค์ผ์ค๋งํ๊ณ ์คํํ๊ธฐ ๋๋ฌธ์ ์ปค๋์ ๊ด๋ฆฌ ์ง์์ ๋ง์ด ๋ฐ์ ์ ์์ง๋ง, ๊ทธ ๋งํผ ์ค๋ฒํค๋๊ฐ ๋์ด๋๋ค.
์ฅ์
์ปค๋์ด ๊ฐ ์ค๋ ๋๋ค์ ๊ฐ๋ณ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ผ๋ฏ๋ก, ๋์ผํ ํ๋ก์ธ์ค์์ ํ ๋น๋ ์ฌ๋ฌ๊ฐ์ ์ค๋ ๋๋ค ์ค ํ ์ค๋ ๋๊ฐ ๋๊ธฐ์ํ๊ฐ ๋๋๋ผ๋, ๋ค๋ฅธ ์ค๋ ๋๋ค์ ์คํ์ํฌ ์ ์๋ค.
ํต์ฌ ํค์๋
- <์ปค๋>์ด ์ค๋ ๋์ ๊ด๋ จ๋ ๋ชจ๋ ์์ ์ ๊ด๋ฆฌ
CPU ์ค์ผ์ค๋ง์ด๋ ๋ฌด์์ธ๊ฐ์?
์ฌ๋ฌ ํ๋ก์ธ์ค๋ ์ค๋ ๋๊ฐ CPU ์๊ฐ์ ๋๊ณ ๊ฒฝ์ํ๋ ๋ฉํฐํ์คํน ํ๊ฒฝ์์ CPU ์ค์ผ์ค๋ง์ CPU๋ฅผ ํจ์จ์ ์ผ๋ก ํ์ฉํ๊ธฐ ์ํด ์ธ์ ์ด๋ค ํ๋ก์ธ์ค์ CPU๋ฅผ ํ ๋นํ ์ง ๊ฒฐ์ ํ๋ ์์ ์ด๋ค.
nonpreemptive(๋น์ ์ ํ)
- ๊ฐ์ ๋ก ๋นผ์์ง ์๊ณ ์์ง ๋ฐ๋ฉ
preemptive(์ ์ ํ)
- ๊ฐ์ ๋ก ๋นผ์์
์ค์ผ์ค๋ง ์ฑ๋ฅ ํ๊ฐ
CPU utilization (์ด์ฉ๋ฅ )
- ์ ์ฒด ์๊ฐ ์ค์์ CPU๊ฐ ์ผ์ ํ ์๊ฐ์ ๋น์จ
- keep the CPU as busy as possible
Throughput (์ฒ๋ฆฌ๋)
- ์ฃผ์ด์ง ์๊ฐ๋์ ์ค๋น ํ์์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ ํ๋ก์ธ์ค ์ค ๋ช ๊ฐ๋ฅผ ๋๋ง์ณค๋์ง ๋ํ๋
- ์ฆ CPU์ ์๋น์ค๋ฅผ ์ํ๋ ํ๋ก์ธ์ค ์ค ๋ช ๊ฐ๊ฐ ์ํ๋ ๋งํผ์ CPU๋ฅผ ์ฌ์ฉํ๊ณ ์ด๋ฒ CPU ๋ฒ์คํธ๋ฅผ ๋๋ด์ด ์ค๋น ํ๋ฅผ ๋ ๋ฌ์ง ์ธก์ ํ ๊ฒ
- ๋ ๋ง์ ํ๋ก์ธ์ค๋ค์ด CPU ์์ ์ ์๋ฃํ๊ธฐ ์ํด์๋ CPU ๋ฒ์คํธ๊ฐ ์งง์ ํ๋ก์ธ์ค์๊ฒ ์ฐ์ ์ ์ผ๋ก CPU๋ฅผ ํ ๋นํ๋ ๊ฒ์ด ์ ๋ฆฌ
- number of processes that complete their execution per time until
Turnaround time (์์ ์๊ฐ, ๋ฐํ ์๊ฐ)
- ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์์ฒญํ ์์ ๋ถํฐ ์์ ์ด ์ํ๋ ๋งํผ CPU๋ฅผ ๋ค ์ฐ๊ณ CPU ๋ฒ์คํธ๊ฐ ๋๋ ๋๊น์ง ๊ฑธ๋ฆฐ ์๊ฐ
- (์ค๋น ํ์์ ๊ธฐ๋ค๋ฆฐ ์๊ฐ) + (์ค์ ๋ก CPU๋ฅผ ์ฌ์ฉํ ์๊ฐ)
- amount of time to execute a particular process
Waiting time (๋๊ธฐ ์๊ฐ)
- CPU ๋ฒ์คํธ ๊ธฐ๊ฐ ์ค ํ๋ก์ธ์ค๊ฐ ์ค๋น ํ์์ CPU๋ฅผ ์ป๊ธฐ ์ํด ๊ธฐ๋ค๋ฆฐ ์๊ฐ์ ํฉ์ ๋ปํ๋ค.
- ์๋ถํ ์์คํ ์ ๊ฒฝ์ฐ, ํ ๋ฒ์ CPU ๋ฒ์คํธ ์ค์๋ ์ค๋น ํ์์ ๊ธฐ๋ค๋ฆฐ ์๊ฐ์ด ์ฌ๋ฌ ๋ฒ ๋ฐ์ํ ์ ์๋ค.
- ์ด๋ ๋๊ธฐ ์๊ฐ์ CPU ๋ฒ์คํธ๊ฐ ๋๋๊ธฐ๊น์ง ์ค๋น ํ์์ ๊ธฐ๋ค๋ฆฐ ์๊ฐ์ ํฉ์ ๋ปํ๊ฒ ๋๋ค.
- amount of time a process has been waiting in the ready queue
Response time (์๋ต ์๊ฐ)
- ํ๋ก์ธ์ค๊ฐ ์ค๋น ํ์ ๋ค์ด์จ ํ ์ฒซ ๋ฒ์งธ CPU๋ฅผ ํ๋ํ๊ธฐ๊น์ง ๊ธฐ๋ค๋ฆฐ ์๊ฐ์ ๋ปํ๋ค.
- ์๋ต ์๊ฐ์ ๋ํํ ์์คํ ์ ์ ํฉํ ์ฑ๋ฅ ์ฒ๋๋ก์, ์ฌ์ฉ์ ์ ์ฅ์์ ๊ฐ์ฅ ์ค์ํ ์ฑ๋ฅ ์ฒ๋๋ผ๊ณ ํ ์ ์๋ค.
CPU ์ค์ผ์ค๋ง ๋ฐฉ๋ฒ์๋ ๋ํ์ ์ผ๋ก ์ด๋ค ๊ฒ๋ค์ด ์๋์?
FCFS (First-Come First-Served)
- ๋น์ ์ ํ ์ค์ผ์ฅด๋ง
- ๋จผ์ ์จ ์์๋๋ก ์ฒ๋ฆฌํ๋ ์ค์ผ์ค๋ง
- CPU๋ฅผ ์ค๋ ์ฐ๋ ํ๋ก์ธ์ค๊ฐ ๋จผ์ ์์ CPU๋ฅผ ํ ๋น ๋ฐ์ผ๋ฉด, ๋๋จธ์ง ํ๋ก์ธ์ค๋ค์ ์ ๋ถ ๊ธฐ๋ค๋ ค์ผํ๋ฏ๋ก ํจ์จ์ ์ด์ง ์์
SJF (Shortest-Job-First)
- SJF๋ CPU ๋ฒ์คํธ๊ฐ ๊ฐ์ฅ ์งง์ ํ๋ก์ธ์ค์๊ฒ ์ ์ผ ๋จผ์ CPU๋ฅผ ํ ๋นํ๋ ๋ฐฉ์
- ํ๊ท ๋๊ธฐ ์๊ฐ์ ๊ฐ์ฅ ์งง๊ฒ ํ๋ ์ต์ ์๊ณ ๋ฆฌ์ฆ
๋ ๊ฐ์ง ๋ฐฉ์
- nonpreemptive (๋น์ ์ ํ)
- ์ผ๋จ CPU๋ฅผ ์ก์ผ๋ฉด ๋ ์งง์ ํ๋ก์ธ์ค๊ฐ ๋ค์ด์๋ CPU ๋ฒ์คํธ๊ฐ ์๋ฃ๋ ๋๊น์ง CPU๋ฅผ ์ ์ ๋นํ์ง ์์
- preemptive (์ ์ ํ)
- SRTF (Shortest-Remaining-Time-First)
- CPU๋ฅผ ์ก์๋ค ํ๋๋ผ๋ ๋ ์งง์ ํ๋ก์ธ์ค๊ฐ ๋ค์ด์ค๋ฉด CPU๋ฅผ ๋นผ์๊น
๋ฌธ์ ์
- Starvation (๊ธฐ์)
- ์งง์ ํ๋ก์ธ์ค๋ก ์ธํด ๊ธด ํ๋ก์ธ์ค๊ฐ ์์ํ CPU๋ฅผ ์ก์ง ๋ชปํ ์ ์์
- CPU ๋ฒ์คํธ ์๊ฐ์ ๋ฏธ๋ฆฌ ์ ์ ์์
- ๊ณผ๊ฑฐ CPU ์ฌ์ฉ ์๊ฐ์ ํตํด ์ถ์ ๋ง ๊ฐ๋ฅ
์ฐ์ ์์ ์ค์ผ์ค๋ง (Priority Scheduling)
- ์ฐ์ ์์๊ฐ ์ ์ผ ๋์ ํ๋ก์ธ์ค์๊ฒ CPU๋ฅผ ํ ๋น
- ์ผ๋ฐ์ ์ผ๋ก ์ฐ์ ์์ ๊ฐ (priority number)๊ฐ ์์ ์๋ก ๋์ ์ฐ์ ์์
๋ ๊ฐ์ง ๋ฐฉ์
- nonpreemptive (๋น์ ์ ํ)
- ์ผ๋จ CPU๋ฅผ ์ก์ผ๋ฉด ๋ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง ํ๋ก์ธ์ค๊ฐ ๋ค์ด์๋ CPU ๋ฒ์คํธ๊ฐ ์๋ฃ๋ ๋๊น์ง CPU๋ฅผ ์ ์ ๋นํ์ง ์์
- preemptive (์ ์ ํ)
- CPU๋ฅผ ์ก์๋ค ํ๋๋ผ๋ ๋ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง ํ๋ก์ธ์ค๊ฐ ๋ค์ด์ค๋ฉด CPU๋ฅผ ๋นผ์๊น
- SJF๋ ์ผ์ข ์ ์ฐ์ ์์ ์ค์ผ์ค๋ง์ด๋ผ๊ณ ๋ณผ ์ ์์ (์ฐ์ ์์ = ์์๋๋ ๋ค์ CPU ๋ฒ์คํธ ์๊ฐ)
๋ฌธ์ ์
- Starvation (๊ธฐ์): ์ฐ์ ์์๊ฐ ๋ฎ์ ํ๋ก์ธ์ค๋ ์์ํ CPU๋ฅผ ์ก์ง ๋ชปํ ์ ์์
ํด๊ฒฐ ๋ฐฉ์
- Aging (๋ ธํ): ์๋ฌด๋ฆฌ ์ฐ์ ์์๊ฐ ๋ฎ์ ํ๋ก์ธ์ค๋ผ ํ๋๋ผ๋ ์๊ฐ์ด ์ค๋ ์ง๋๋ฉด ์ฐ์ ์์๋ฅผ ๋์ฌ์ฃผ๋ ๊ธฐ๋ฒ
Round Robin (RR)
- ์ ์ ํ ์ค์ผ์ค๋ง
- ๊ฐ ํ๋ก์ธ์ค๋ ๋์ผํ ํฌ๊ธฐ์ ํ ๋น ์๊ฐ์ธ time quantum ์ ๊ฐ์ง
- ํ ๋น ์๊ฐ์ด ์ง๋๋ฉด ํ๋ก์ธ์ค๋ CPU๋ฅผ ๋นผ์๊ธฐ๊ณ Ready Queue ๋งจ ๋ค์ ๊ฐ์ ์ค์ ์๊ฒ ๋จ
- ์งง์ ์๋ต ์๊ฐ์ ๋ณด์ฅํจ
- ์กฐ๊ธ์ฉ CPU๋ฅผ ์คฌ๋ค ๋บ์๋ค๋ฅผ ๋ฐ๋ณตํ๊ธฐ ๋๋ฌธ์ CPU๋ฅผ ์ต์ด๋ก ์ป๊ธฐ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ์งง์
- ์ฑ๋ฅ
- q๊ฐ ์ปค์ง ์๋ก FCFS์ ๊ฐ๊น์์ง
- q๊ฐ ์์ ์๋ก context switch ์ค๋ฒํค๋๊ฐ ์ฆ๊ฐํจ
- ์ผ๋ฐ์ ์ผ๋ก SJF๋ณด๋ค **ํ๊ท turnaround time(์์ ์๊ฐ)**์ด ๊ธธ์ง๋ง, ์๋ต ์๊ฐ์ ์งง์
- ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ job๊ณผ ์งง๊ฒ ๊ฑธ๋ฆฌ๋ job์ด ์์ฌ ์์ ๋๋ ํจ์จ์ ์ด์ง๋ง, ๋ชจ๋ ์๊ฐ์ด ๋์ผํ job๋ง ์์ ๋๋ ๋นํจ์จ์
๋๊ธฐ์ ๋น๋๊ธฐ, ๋ธ๋กํน๊ณผ ๋๋ธ๋กํน์ ์ฐจ์ด๋ ๋ฌด์์ธ๊ฐ์?
Blocking(๋ธ๋กํน)๊ณผ Non-blocking(๋ ผ๋ธ๋กํน)
- A ํจ์๊ฐ B ํจ์๋ฅผ ํธ์ถํ์ ๋, ์ ์ด๊ถ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋๋์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค.
- ์ ์ด๊ถ
- ์ ์ด๊ถ์ ์์ (ํจ์)์ ์ฝ๋๋ฅผ ์คํํ ๊ถ๋ฆฌ ๊ฐ์ ๊ฒ์ด๋ค. ์ ์ด๊ถ์ ๊ฐ์ง ํจ์๋ ์์ ์ ์ฝ๋๋ฅผ ๋๊น์ง ์คํํ ํ, ์์ ์ ํธ์ถํ ํจ์์๊ฒ ๋๋ ค์ค๋ค.
1) ๋ธ๋กํน
๋ธ๋กํน์ A ํจ์๊ฐ B ํจ์๋ฅผ ํธ์ถํ๋ฉด, ์ ์ด๊ถ์ A๊ฐ ํธ์ถํ B ํจ์์ ๋๊ฒจ์ค๋ค.
2) ๋ ผ๋ธ๋กํน
๋ ผ๋ธ๋กํน์ Aํจ์๊ฐ Bํจ์๋ฅผ ํธ์ถํด๋ ์ ์ด๊ถ์ ๊ทธ๋๋ก ์์ ์ด ๊ฐ์ง๊ณ ์๋๋ค.
Synchronous(๋๊ธฐ)์ Asynchronous(๋น๋๊ธฐ)
- ๋๊ธฐ์ ๋น๋๊ธฐ์ ์ฐจ์ด๋ ํธ์ถ๋๋ ํจ์์ ์์ ์๋ฃ ์ฌ๋ถ๋ฅผ ์ ๊ฒฝ์ฐ๋์ง์ ์ฌ๋ถ์ ์ฐจ์ด์ด๋ค.
1) ๋๊ธฐ
ํจ์ A๊ฐ ํจ์ B๋ฅผ ํธ์ถํ ๋ค, ํจ์ B์ ๋ฆฌํด๊ฐ์ ๊ณ์ ํ์ธํ๋ฉด์ ์ ๊ฒฝ์ฐ๋ ๊ฒ์ด ๋๊ธฐ์ด๋ค.
2) ๋น๋๊ธฐ
ํจ์ A๊ฐ ํจ์ B๋ฅผ ํธ์ถํ ๋ ์ฝ๋ฐฑ ํจ์๋ฅผ ํจ๊ป ์ ๋ฌํด์, ํจ์ B์ ์์ ์ด ์๋ฃ๋๋ฉด ํจ๊ป ๋ณด๋ธ ์ฝ๋ฐฑ ํจ์๋ฅผ ์คํํ๋ค.
ํจ์ A๋ ํจ์ B๋ฅผ ํธ์ถํ ํ๋ก ํจ์ B์ ์์ ์๋ฃ ์ฌ๋ถ์๋ ์ ๊ฒฝ์ฐ์ง ์๋๋ค.
'CS > ์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CS ๋ฉด์ ์ง๋ฌธ] ํ๋ก์ธ์ค(1) (2) | 2023.05.17 |
---|