๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿช CS

(17)
CPU Scheduling์ด ๋ญ”๊ฐ€์š”? CPU ์Šค์ผ€์ค„๋ง์„ ์•Œ๊ธฐ ์ „, ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ์— ๋Œ€ํ•ด ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค! ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ๋ž€? ์šด์˜์ฒด์ œ์—์„œ ์ž‘๋™ํ•˜๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ ์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ์˜๋ฏธ์—์„œ๋Š” ํ”„๋กœ์„ธ์„œ(CPU) ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ CPU๋ฅผ ์ ์œ ํ•ด์•ผ ํ•  ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฒฐ์ •ํ•˜๊ณ , ์‹ค์ œ๋กœ CPU๋ฅผ ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹นํ•˜๋ฉฐ, ์ด ํ”„๋กœ์„ธ์Šค ๊ฐ„ ๊ณต์œ  ์ž์› ์ ‘๊ทผ๊ณผ ํ†ต์‹  ๋“ฑ์„ ๊ด€๋ฆฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค : ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ ์‹คํ–‰์ค‘์ธ ์ž‘์—… ์Šค๋ ˆ๋“œ : ํ”„๋กœ์„ธ์Šค ์•ˆ์—์„œ ์‹คํ–‰๋˜๋Š” ์—ฌ๋Ÿฌ ํ๋ฆ„ ๋‹จ์œ„ ์ •๋ฆฌํ•˜์ž๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์€ ๋‹ด๋‹น์„ ๋งก๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค๐Ÿ’‍ ํ”„๋กœ์„ธ์Šค ์Šค์ผ€์ค„๋ง ๋ฐ ๋™๊ธฐํ™” ๊ด€๋ฆฌ ๋‹ด๋‹น ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ๊ณผ ์ œ๊ฑฐ, ์‹œ์ž‘๊ณผ ์ •์ง€, ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ ๋“ฑ์˜ ๊ธฐ๋Šฅ ๋‹ด๋‹น ๊ด€๋ฆฌ ์ข…๋ฅ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค, ์Šค๋ ˆ๋“œ ์Šค์ผ€์ค„๋ง ๋™๊ธฐํ™” IPC ํ†ต์‹  ์ด ์ค‘ ์˜ค..
ํŠธ๋žœ์žญ์…˜์ด ๋ญ”๊ฐ€์š”? Transaction์ด๋ž€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์  ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—…์˜ ๋‹จ์œ„ ์ฆ‰, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ฟผ๋ฆฌ๋“ค์„ ํ•˜๋‚˜๋กœ ๋ฌถ๋Š” ๋‹จ์œ„๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค ๐Ÿ™‹‍โ™€๏ธ ๋…ผ๋ฆฌ์ ์ธ ์ด์œ ๋กœ ์—ฌ๋Ÿฌ SQL๋ฌธ๋“ค์„ ๋‹จ์ผ ์ž‘์—…์œผ๋กœ ๋ฌถ์–ด์„œ ๋‚˜๋ˆ ์งˆ ์ˆ˜ ์—†๊ฒŒ ๋งŒ๋“  ๊ฒƒ์ž…๋‹ˆ๋‹ค. database ์ฟผ๋ฆฌ๋ฌธ ๋‘ ๊ฐœ๊ฐ€ ์ •์ƒ ์ฒ˜๋ฆฌ๋˜์–ด์•ผ๋งŒ ์„ฑ๊ณตํ•˜๋Š” ๋‹จ์ผ ์ž‘์—… transaction์˜ SQL๋ฌธ๋“ค ์ค‘์— ์ผ๋ถ€๋งŒ ์„ฑ๊ณตํ•ด์„œ DB์— ๋ฐ˜์˜๋˜๋Š” ์ผ์€ ์ผ์–ด๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ transaction ์‚ฌ์šฉ ํŒจํ„ด transaction์„ ์‹œ์ž‘(begin) ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ฑฐ๋‚˜ ์“ฐ๋Š” ๋“ฑ์˜ SQL๋ฌธ๋“ค์„ ํฌํ•จํ•ด์„œ ๋กœ์ง์„ ์ˆ˜ํ–‰ ์ผ๋ จ์˜ ๊ณผ์ •๋“ค์„ ๋ฌธ์ œ์—†์ด ๋™์ž‘ํ–ˆ๋‹ค๋ฉด transaction์„ commit ์ค‘๊ฐ„์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๋ฉด transaction์„ rollback ์ปค๋ฐ‹(commit) ์—ฌ๋Ÿฌ ์ฟผ..
CPU์™€ ๋ฉ”๋ชจ๋ฆฌ ์šด์˜์ฒด์ œ(OS, Operating System) ๊ฐ€ ๋ญ”๊ฐ€์š”? ์‚ฌ์šฉ์ž๊ฐ€ ์ปดํ“จํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ๋‹ค๋ฃจ๊ฒŒ ํ•ด์ฃผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค. ํ•œ์ •๋œ ๋ฉ”๋ชจ๋ฆฌ๋‚˜ ์‹œ์Šคํ…œ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ๋ถ„๋ฐฐํ•ด์ฃผ๊ณ , ํ•˜๋“œ์›จ์–ด์™€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค ๐Ÿ’‍โ™€๏ธ ์šด์˜์ฒด์ œ์˜ ์—ญํ• ์€ ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”? CPU ์Šค์ผ€์ค„๋ง๊ณผ ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๋””์Šคํฌ ํŒŒ์ผ ๊ด€๋ฆฌ I/O ๋””๋ฐ”์ด์Šค ๊ด€๋ฆฌ ์šด์˜์ฒด์ œ์˜ ๊ตฌ์กฐ๋Š” ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”? GUI ์‹œ์Šคํ…œ์ฝœ ์ปค๋„ ๋“œ๋ผ์ด๋ฒ„ ์ด ์ค‘ ์šฐ๋ฆฌ๋Š” ์˜ค๋Š˜ CPU์™€ ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•ด ์•Œ์•„๋ณผ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค ๐Ÿง ์ปดํ“จํ„ฐ์˜ ์š”์†Œ CPU, DMA ์ปจํŠธ๋กค๋Ÿฌ, ๋ฉ”๋ชจ๋ฆฌ, ํƒ€์ด๋จธ, ๋””๋ฐ”์ด์Šค ์ปจํŠธ๋กค๋Ÿฌ ๋“ฑ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ CPU๋Š” ๊ณ„์‚ฐ ๋‹ด๋‹น์„, ๋ฉ”๋ชจ๋ฆฌ๋Š” ๊ธฐ์–ต ๋‹ด๋‹น์„ ํ•œ๋‹ค๊ณ  ์ดํ•ดํ•˜๋ฉด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค๐Ÿ‘ 1. CPU(Central Processing Unit) CPU๋Š” ์ค‘..
HTTP๊ฐ€ ๋ญ”๊ฐ€์š”? - ์›น์˜ ์‘๋‹ต ๊ณผ์ • ๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.
๋‚ด๊ฐ€ ๋งŒ๋“  ์ฟ ํ‚ค ๋„ˆ๋ฅผ ์œ„ํ•ด ๊ตฌ์› ์ง€ ๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.
ํŠธ๋žœ์žญ์…˜๊ณผ ๋ฌด๊ฒฐ์„ฑ ํŠธ๋žœ์žญ์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์  ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—…์˜ ๋‹จ์œ„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ฟผ๋ฆฌ๋“ค์„ ํ•˜๋‚˜๋กœ ๋ฌถ๋Š” ๋‹จ์œ„ ACID ํŠน์ง• ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•œ ํŠน์ง•์œผ๋กœ ์›์ž์„ฑ, ์ผ๊ด€์„ฑ, ๋…๋ฆฝ์„ฑ, ์ง€์†์„ฑ์ด ์žˆ๋‹ค. 1. ์›์ž์„ฑ(atomicity) "all or nothing" ํŠธ๋žœ์žญ์…˜๊ณผ ๊ด€๋ จ๋œ ์ผ์ด ๋ชจ๋‘ ์ˆ˜ํ–‰๋˜์—ˆ๊ฑฐ๋‚˜ ๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜๋ฅผ ๋ณด์žฅํ•˜๋Š” ํŠน์ง• ์˜ˆ๋ฅผ ๋“ค์–ด ํŠธ๋žœ์žญ์…˜์„ ์ปค๋ฐ‹ํ–ˆ๋Š”๋ฐ, ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ๋กค๋ฐฑํ•˜๋Š” ๊ฒฝ์šฐ ๊ทธ ์ดํ›„์— ๋ชจ๋‘ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์Œ์„ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ ํŠธ๋žœ์žญ์…˜ ๋‹จ์œ„๋กœ ์—ฌ๋Ÿฌ ๋กœ์ง๋“ค์„ ๋ฌถ์„ ๋•Œ ์™ธ๋ถ€ API๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ด ์žˆ์œผ๋ฉด ์•ˆ ๋œ๋‹ค. ๋งŒ์•ฝ ์žˆ๋‹ค๋ฉด ๋กค๋ฐฑ์ด ์ผ์–ด๋‚ฌ์„ ๋•Œ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์–ด์•ผ ํ•˜๊ณ  ํŠธ๋žœ์žญ์…˜ ์ „ํŒŒ๋ฅผ ์‹ ๊ฒฝ ์จ์„œ ๊ด€๋ฆฌํ•ด์•ผ ํ•œ๋‹ค. ์ปค๋ฐ‹๊ณผ ๋กค๋ฐฑ ์ปค๋ฐ‹(commit) : ์—ฌ๋Ÿฌ ์ฟผ๋ฆฌ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ..
๋น„์„ ํ˜• ์ž๋ฃŒ ๊ตฌ์กฐ ๋น„์„ ํ˜• ์ž๋ฃŒ ๊ตฌ์กฐ ์งˆ๋ฌธ ํ•ด์‹œํ…Œ์ด๋ธ”๊ณผ ์ด์ง„ ๊ฒ€์ƒ‰ํŠธ๋ฆฌ๋ฅผ ๋น„๊ตํ•˜๊ณ  ์žฅ๋‹จ์ ์„ ์ด์•ผ๊ธฐํ•ด์ฃผ์„ธ์š”. ๊ทธ๋ฆฌ๊ณ  ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ œํ•œ๋œ ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ์šฉ ์ฃผ์†Œ๋ก์— ์‚ฌ์šฉํ•  ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ํ•œ๋‹ค๋ฉด ์–ด๋А์ชฝ์„ ์“ฐ๋Š”๊ฒƒ์ด ์ข‹์„๊นŒ์š”? ํ•ด์‹œํ…Œ์ด๋ธ”์€ ํ‚ค์™€ ๊ฐ’์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์Œ์„ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋ฉฐ, ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ’์„ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ํ‰๊ท ์ ์œผ๋กœ ์ƒ์ˆ˜ ์‹œ๊ฐ„์— ์‚ฝ์ž…, ์‚ญ์ œ, ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์ตœ์•…์˜ ๊ฒฝ์šฐ์—๋Š” ์„ ํ˜• ์‹œ๊ฐ„์œผ๋กœ ๋А๋ ค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ง„ ๊ฒ€์ƒ‰ํŠธ๋ฆฌ๋Š” ๊ฐ ๋…ธ๋“œ๊ฐ€ ํ‚ค์™€ ๊ฐ’์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋ฉฐ, ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ๋Š” ๋ถ€๋ชจ ๋…ธ๋“œ์˜ ํ‚ค๋ณด๋‹ค ์ž‘์€ ๊ฐ’์œผ๋กœ, ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ๋Š” ๋ถ€๋ชจ ๋…ธ๋“œ์˜ ํ‚ค๋ณด๋‹ค ํฐ ๊ฐ’์œผ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ํ‰๊ท ์ ์œผ๋กœ O(log n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๋ฉฐ, ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ์ •๋ ฌ๋œ ์ˆœ์„œ๋กœ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํ•ด์‹œํ…Œ์ด๋ธ”๋ณด๋‹ค..
๋„คํŠธ์›Œํฌ (4๊ณ„์ธต, TCP/IP, PDU, ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ) ์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ ์Šค์œ„ํŠธ (Internet protocol suite) : ์ธํ„ฐ๋„ท์—์„œ ์ปดํ“จํ„ฐ๋“ค์ด ์„œ๋กœ ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐ ์“ฐ์ด๋Š” ํ”„๋กœํ† ์ฝœ์˜ ์ง‘ํ•ฉ ์ด๋ฅผ TCP/IP 4๊ณ„์ธต ๋ชจ๋ธ๋กœ ์„ค๋ช…ํ•˜๊ฑฐ๋‚˜ OSI 7๊ณ„์ธต ๋ชจ๋ธ๋กœ ์„ค๋ช…ํ•˜๊ธฐ๋„ ํ•œ๋‹ค. TCP/IP 4๊ณ„์ธต ๋ชจ๋ธ ๋„คํŠธ์›Œํฌ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์˜ ์ง‘ํ•ฉ ๊ณ„์ธต๋“ค์€ ํ”„๋กœํ† ์ฝœ์˜ ๋„คํŠธ์›Œํ‚น ๋ฒ”์œ„์— ๋”ฐ๋ผ 4๊ฐœ์˜ ์ถ”์ƒํ™” ๊ณ„์ธต์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. TCP/IP (TransmissionControl Protocol / Internet Protocol) ์ธํ„ฐ๋„ท ํ†ต์‹ ์˜ ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ํ”„๋กœํ† ์ฝœ๋กœ ์ด๋ฅผ ์ด์šฉํ•ด ์ปดํ“จํ„ฐ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์ฒด๊ณ„๋ฅผ ์ด๋”๋„ท(Ethernet)์ด๋ผ ํ•œ๋‹ค. 1.1. ๊ณ„์ธต ๊ตฌ์กฐ ๋น„๊ต ![[Pasted image 20230109171901.png]] TCP/IP 4๊ณ„์ธต 1 Layer : ..