์ ์ฒด ๊ธ199 [์ด์์ฒด์ ] 4. Process Management ํ๋ก์ธ์ค ์์ฑ Process Creation ๋ถ๋ชจ ํ๋ก์ธ์ค๊ฐ ์์ ํ๋ก์ธ์ค ์์ฑ ๋ณต์ ์์ฑ : process context - code, data, stack / CPU context - PCB์ ๋ชจ๋ ๋ณต์ฌ ํ๋ก์ธ์ค์ ํธ๋ฆฌ(๊ณ์ธต ๊ตฌ์กฐ) ํ์ฑ ํ๋ก์ธ์ค๋ ์์์ ํ์๋ก ํจ : ์ด์์ฒด์ ๋ก๋ถํฐ ๋ฐ๊ฑฐ๋ ๋ถ๋ชจ์ ๊ณต์ ์์์ ๊ณต์ ๋ถ๋ชจ์ ์์์ด ๋ชจ๋ ์์์ ๊ณต์ ํ๋ ๋ชจ๋ธ : Copy-on-write(COW) copy ์์ฒด๋ ๋นํจ์จ์ ์ด๊ณ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ญ๋นํ๋ ํ์ ๋ฆฌ๋ ์ค ๋ฑ ํจ์จ์ ์ธ OS์์๋ ๊ณต์ ํ ์ ์๋ ๊ฒ์ ๊ณต์ ํ๊ณ ๋ฌ๋ผ์ง๋ ๊ฒ๋ง ์ผ๋ถ copy(write) ์ผ๋ถ๋ฅผ ๊ณต์ ํ๋ ๋ชจ๋ธ ์ ํ ๊ณต์ ํ์ง ์๋ ๋ชจ๋ธ(์ผ๋ฐ์ : ๋ณ๊ฐ์ ํ๋ก์ธ์ค์ด๊ธฐ ๋๋ฌธ์ ๋ถ๋ชจ-์์ ๊ฒฝ์) ์ํ Execution ๋ถ๋ชจ์ ์์์ด ๊ณต์กดํ๋ฉฐ ์ํ๋๋ ๋ชจ.. 2022. 11. 27. [์ด์์ฒด์ ] 3. Process ํ๋ก์ธ์ค์ ๊ฐ๋ a program in execution ํ๋ก์ธ์ค์ ๋ฌธ๋งฅ(context) ํน์ ์์ ์์ ํด๋น ํ๋ก์ธ์ค๊ฐ ์ด๋๊น์ง ์คํ์ ํ๋์ง ๊ท๋ช ํ๋ ์์ 1) CPU ์ํ ์ํ๋ฅผ ๋ํ๋ด๋ ํ๋์จ์ด ๋ฌธ๋งฅ : Program Counter, ๊ฐ์ข register register๊ฐ ํ์ฌ ์ด๋ค ๊ฐ์ ๊ฐ์ง๋๊ฐ 2) ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ : code, data, stack code : ํ์ฌ ์ด๋๊น์ง ์ํํ๋๊ฐ data : ํ์ฌ ๋ณ์์ ๊ฐ์ด ๋ฌด์์ธ๊ฐ stack : ๋ฌด์จ ๋ด์ฉ์ ์ด๋๊น์ง ์ ์ฅํ๋๊ฐ 3) ํ๋ก์ธ์ค ๊ด๋ จ ์ปค๋ ์๋ฃ ๊ตฌ์กฐ : PCB(Process Control Block), Kernel stack process ์์ฑ๋ ๋๋ง๋ค pcb๋ฅผ ๋์ด ๊ด๋ฆฌ kernel stack : system call ์ kerne.. 2022. 11. 20. [์ด์์ฒด์ ] 2. System Structure & Program Execution 2 ๋๊ธฐ์ ์ ์ถ๋ ฅ๊ณผ ๋น๋๊ธฐ์ ์ ์ถ๋ ฅ 1) ๋๊ธฐ์ ์ ์ถ๋ ฅ synchronous I/O I/O ์์ฒญ ํ ์ ์ถ๋ ฅ ์์ ์ด ์๋ฃ๋ ํ์์ผ ์ ์ด๊ฐ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ๋์ด๊ฐ. ํ๋ก์ธ์ค๊ฐ ์ ์ถ๋ ฅ์ ์ํํ๋ ๋์ ๊ธฐ๋ค๋ฆฌ๊ธฐ / ์ ์ถ๋ ฅ์ด ๋๋ ๋๊น์ง ์๋ฌด๊ฒ๋ ํ์ง ์๊ณ ๊ธฐ๋ค๋ ค์ผ ํจ ๊ตฌํ ๋ฐฉ๋ฒ1 : ์ผ์ ๋ชปํ๋ ๋์ CPU๋ฅผ ๊ฐ์ง๊ณ ์ I/O๊ฐ ๋๋ ๋๊น์ง CPU๋ฅผ ๋ญ๋น์ํด ๋งค์์ ํ๋์ I/O๋ง ์ผ์ด๋ ์ ์์ ๊ตฌํ ๋ฐฉ๋ฒ2 : ์ผ์ ๋ชปํ๋ ๋์ ๋ค๋ฅธ ํ๋ก์ธ์ค์๊ฒ CPU๋ฅผ ๋๊ฒจ์ค I/O๊ฐ ์๋ฃ๋ ๋๊น์ง ํด๋น ํ๋ก๊ทธ๋จ์๊ฒ์ CPU๋ฅผ ๋นผ์์ I/O ์ฒ๋ฆฌ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ค์ ๊ทธ ํ๋ก๊ทธ๋จ์ ์ค ์ธ์ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ CPU๋ฅผ ์ค -> ํ์ฌ ์์ ๋๋๋ฉด interrupt ๊ฑธ์ด์ CPU ๋ค์ ๊ฐ์ ธ์ด 2) ๋น๋๊ธฐ์ ์ ์ถ๋ ฅ asynchronous .. 2022. 11. 20. [์ด์์ฒด์ ] 2. System Structure & Program Execution 1 ์ปดํจํฐ ์์คํ ๊ตฌ์กฐ 1. Memory CPU์ ์์ ๊ณต๊ฐ. CPU๊ฐ ์ง์ ์ ๊ทผํ ์ ์๋ ๋ด๋ถ ๊ธฐ์ต์ฅ์น๋ก, ํน์ ํ๋ก๊ทธ๋จ์ด CPU์์ ์คํ๋๊ธฐ ์ํด์๋ ํด๋น ๋ถ๋ถ์ด ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์์ด์ผ ํ๋ค. ์ปดํจํฐ ๋ถํ ์, OS๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ๊ฒ ๋จ -> ๋ฉ๋ชจ๋ฆฌ์ ์์ฃผํ๋ CPU์ ์์ ๊ณต๊ฐ์ main memory๋ผ๊ณ ๋ถ๋ฅธ๋ค 2. I/O Device 1) Device Controller I/O ์ฅ์น๋ฅผ ๊ด๋ฆฌํ๋ ์ผ์ข ์ ์์ CPU๋ก, I/O๊ฐ ๋๋ฌ์ ๊ฒฝ์ฐ interrupt๋ก CPU์๊ฒ ํด๋น ์ฌ์ค์ ์๋ฆฌ๋ ์ญํ ์ ํ๋ค CPU์ I/O device์ ์ฒ๋ฆฌ ์๋๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ device๋ง๋ค controller๋ฅผ ๋์ด ๊ด๋ฆฌํ๋ค. ์ ์ด ์ ๋ณด๋ฅผ ์ํด control register, status register / local.. 2022. 11. 20. [์ด์์ฒด์ ] 1. Introduction to Operating Systems ์ด์์ฒด์ (Operating System, OS) ์ปดํจํฐ ํ๋์จ์ด ๋ฐ๋ก ์์ ์ค์น๋์ด ์ฌ์ฉ์ ๋ฐ ๋ค๋ฅธ ๋ชจ๋ ์ํํธ์จ์ด์ ํ๋์จ์ด๋ฅผ ์ฐ๊ฒฐํ๋ ์ํํธ์จ์ด ๊ณ์ธต - ์ปดํจํฐ ์์คํ ์ ์์์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌ(์์ ๊ด๋ฆฌ์) : ํ๋ก์ธ์, ๊ธฐ์ต์ฅ์น, ์ ์ถ๋ ฅ ์ฅ์น ๋ฑ์ ํจ์จ์ / ํํ์ฑ ๊ด๋ฆฌ ์ข์ ์๋ฏธ์ ์ด์์ฒด์ (์ปค๋) : ์ด์์ฒด์ ์ ํต์ฌ ๋ถ๋ถ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์์ฃผํ๋ ๋ถ๋ถ ๋์ ์๋ฏธ์ ์ด์์ฒด์ : ์ปค๋ ๋ฟ๋ง ์๋๋ผ ๊ฐ์ข ์ฃผ๋ณ ์์คํ ์ ํธ๋ฆฌํฐ๋ฅผ ํฌํจํ๋ ๊ฐ๋ ์ด์์ฒด์ ์ ๋ชฉ์ 1) ์ปดํจํฐ ์์คํ ์ ์์์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌ ์์: CPU, ๋ฉ๋ชจ๋ฆฌ, ๊ฐ์ข ์ ์ถ๋ ฅ ์ฅ์น(ํ๋์จ์ด ์์) & ํ๋ก์ธ์ค, ํ์ผ ๋ฉ์์ง(์ํํธ์จ์ด ์์) ์ฃผ์ด์ง ํ๋์จ์ด ์์์ผ๋ก ์ต๋ํ์ ์ฑ๋ฅ์ ๋ด๋ ๊ฒ์ด ๋ชฉ์ → ํจ์จ์ ์ด๊ณ ํํ์ฑ์ ๊ณ ๋ คํ ์์ ๋ถ๋ฐฐ ์ฌ์ฉ์.. 2022. 11. 13. [๋ฐฑ์ค/C++] 2504๋ฒ: ๊ดํธ์ ๊ฐ ๋ฌธ์ 4๊ฐ์ ๊ธฐํธ ‘(’, ‘)’, ‘[’, ‘]’๋ฅผ ์ด์ฉํด์ ๋ง๋ค์ด์ง๋ ๊ดํธ์ด ์ค์์ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ด๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋๋ค. ํ ์์ ๊ดํธ๋ก๋ง ์ด๋ฃจ์ด์ง ‘()’์ ‘[]’๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ด๋ค. ๋ง์ผ X๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ด๋ฉด ‘(X)’์ด๋ ‘[X]’๋ ๋ชจ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ด ๋๋ค. X์ Y ๋ชจ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ด๋ผ๋ฉด ์ด๋ค์ ๊ฒฐํฉํ XY๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ด ๋๋ค. ์๋ฅผ ๋ค์ด ‘(()[[]])’๋ ‘(())[][]’ ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ด์ง๋ง ‘([)]’ ๋ ‘(()()[]’ ์ ๋ชจ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด์ด ์๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ค ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด X์ ๋ํ์ฌ ๊ทธ ๊ดํธ์ด์ ๊ฐ(๊ดํธ๊ฐ)์ ์๋์ ๊ฐ์ด ์ ์ํ๊ณ ๊ฐ(X)๋ก ํ์ํ๋ค. ‘()’ ์ธ ๊ดํธ์ด์ ๊ฐ์ 2์ด๋ค. ‘[]’ ์ธ ๊ดํธ์ด์ ๊ฐ์ 3์ด๋ค. ‘(X)’ ์ ๊ดํธ๊ฐ์ 2×๊ฐ.. 2022. 7. 31. [๋ฐฑ์ค/C++] 11866๋ฒ: ์์ธํธ์ค ๋ฌธ์ 0 ๋ฌธ์ ์์ธํธ์ค ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ๋ค. 1๋ฒ๋ถํฐ N๋ฒ๊น์ง N๋ช ์ ์ฌ๋์ด ์์ ์ด๋ฃจ๋ฉด์ ์์์๊ณ , ์์ ์ ์ K(≤ N)๊ฐ ์ฃผ์ด์ง๋ค. ์ด์ ์์๋๋ก K๋ฒ์งธ ์ฌ๋์ ์ ๊ฑฐํ๋ค. ํ ์ฌ๋์ด ์ ๊ฑฐ๋๋ฉด ๋จ์ ์ฌ๋๋ค๋ก ์ด๋ฃจ์ด์ง ์์ ๋ฐ๋ผ ์ด ๊ณผ์ ์ ๊ณ์ํด ๋๊ฐ๋ค. ์ด ๊ณผ์ ์ N๋ช ์ ์ฌ๋์ด ๋ชจ๋ ์ ๊ฑฐ๋ ๋๊น์ง ๊ณ์๋๋ค. ์์์ ์ฌ๋๋ค์ด ์ ๊ฑฐ๋๋ ์์๋ฅผ (N, K)-์์ธํธ์ค ์์ด์ด๋ผ๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด (7, 3)-์์ธํธ์ค ์์ด์ ์ด๋ค. N๊ณผ K๊ฐ ์ฃผ์ด์ง๋ฉด (N, K)-์์ธํธ์ค ์์ด์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ N๊ณผ K๊ฐ ๋น ์นธ์ ์ฌ์ด์ ๋๊ณ ์์๋๋ก ์ฃผ์ด์ง๋ค. (1 ≤ K ≤ N ≤ 1,000) ์ถ๋ ฅ ์์ ์ ๊ฐ์ด ์์ธํธ์ค ์์ด์ ์ถ๋ ฅํ๋ค. ํ์ด ๋ฐ์ดํฐ์ ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ๊ฐ๊ฐ ์ด๋ฃจ์ด์ง๋ ํ๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.. 2022. 7. 31. [๋ฐฑ์ค/C++] 18115๋ฒ: ์นด๋ ๋๊ธฐ ๋ฌธ์ ์ํ์ด๋ ์นด๋ ๊ธฐ์ ์ ์ฐ์ตํ๊ณ ์๋ค. ์ํ์ด์ ์์ ๋ค๋ฆฐ ์นด๋๋ฅผ ํ๋์ฉ ๋ด๋ ค๋์ ๋ฐ๋ฅ์ ์์ผ๋ ค๊ณ ํ๋ค. ์ํ์ด๊ฐ ์ธ ์ ์๋ ๊ธฐ์ ์ ๋ค์ 3๊ฐ์ง๋ค. ์ ์ผ ์์ ์นด๋ 1์ฅ์ ๋ฐ๋ฅ์ ๋ด๋ ค๋๋๋ค. ์์์ ๋ ๋ฒ์งธ ์นด๋๋ฅผ ๋ฐ๋ฅ์ ๋ด๋ ค๋๋๋ค. ์นด๋๊ฐ 2์ฅ ์ด์์ผ ๋๋ง ์ธ ์ ์๋ค. ์ ์ผ ๋ฐ์ ์๋ ์นด๋๋ฅผ ๋ฐ๋ฅ์ ๋ด๋ ค๋๋๋ค. ์นด๋๊ฐ 2์ฅ ์ด์์ผ ๋๋ง ์ธ ์ ์๋ค. ์ํ์ด๋ ์ฒ์์ ์นด๋ N์ฅ์ ๋ค๊ณ ์๋ค. ์นด๋์๋ 1๋ถํฐ N๊น์ง์ ์ ์๊ฐ ์ค๋ณต๋์ง ์๊ฒ ์ ํ ์๋ค. ๊ธฐ์ ์ N๋ฒ ์ฌ์ฉํ์ฌ ์นด๋๋ฅผ ๋ค ๋ด๋ ค๋์์ ๋, ๋์ฌ ์๋ ์นด๋๋ค์ ํ์ธํ๋๋ ์์์๋ถํฐ ์์๋๋ก 1, 2, …, N์ด ์ ํ ์์๋ค! ๋๋ ์ํ์ด๋ ์ฒ์์ ์นด๋๊ฐ ์ด๋ป๊ฒ ๋ฐฐ์น๋์ด ์์๋์ง ๊ถ๊ธํด์ก๋ค. ์ฒ์ ์นด๋์ ์ํ๋ฅผ ์ถ๋ ฅํ์ฌ๋ผ. ์ ๋ ฅ ์ฒซ ๋ฒ์งธ ์ค์.. 2022. 7. 24. [๋ฐฑ์ค/C++] 2108๋ฒ: ํต๊ณํ ๋ฌธ์ ์๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ์ ํต๊ณํ์์ ์๋นํ ์ค์ํ ์ผ์ด๋ค. ํต๊ณํ์์ N๊ฐ์ ์๋ฅผ ๋ํํ๋ ๊ธฐ๋ณธ ํต๊ณ๊ฐ์๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ๋ค์ด ์๋ค. ๋จ, N์ ํ์๋ผ๊ณ ๊ฐ์ ํ์. ์ฐ์ ํ๊ท : N๊ฐ์ ์๋ค์ ํฉ์ N์ผ๋ก ๋๋ ๊ฐ ์ค์๊ฐ : N๊ฐ์ ์๋ค์ ์ฆ๊ฐํ๋ ์์๋ก ๋์ดํ์ ๊ฒฝ์ฐ ๊ทธ ์ค์์ ์์นํ๋ ๊ฐ ์ต๋น๊ฐ : N๊ฐ์ ์๋ค ์ค ๊ฐ์ฅ ๋ง์ด ๋ํ๋๋ ๊ฐ ๋ฒ์ : N๊ฐ์ ์๋ค ์ค ์ต๋๊ฐ๊ณผ ์ต์๊ฐ์ ์ฐจ์ด N๊ฐ์ ์๊ฐ ์ฃผ์ด์ก์ ๋, ๋ค ๊ฐ์ง ๊ธฐ๋ณธ ํต๊ณ๊ฐ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ ์์ ๊ฐ์ N(1 ≤ N ≤ 500,000)์ด ์ฃผ์ด์ง๋ค. ๋จ, N์ ํ์์ด๋ค. ๊ทธ ๋ค์ N๊ฐ์ ์ค์๋ ์ ์๋ค์ด ์ฃผ์ด์ง๋ค. ์ ๋ ฅ๋๋ ์ ์์ ์ ๋๊ฐ์ 4,000์ ๋์ง ์๋๋ค. ์ถ๋ ฅ ์ฒซ์งธ ์ค์๋ ์ฐ์ ํ๊ท ์ ์ถ๋ ฅํ๋ค. ์์์ ์ดํ .. 2022. 7. 24. ์ด์ 1 ยทยทยท 3 4 5 6 7 8 9 ยทยทยท 23 ๋ค์