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

Computer science6

3. Physical Layer - Data์™€ Signals ๊ทธ๋ฆฌ๊ณ  Bandwidth ๋ฌผ๋ฆฌ ๊ณ„์ธต์— ๋Œ€ํ•ด ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ๋ฐ์ดํ„ฐ์™€ ์‹ ํ˜ธ์— ๋Œ€ํ•œ ๊ฐœ๋…์ด ํ•„์š”ํ•œ๊ฐ€๋ณด๋‹ค. ๋ฐ์ดํ„ฐ ํ†ต์‹ ์—์„œ ๋ฐ์ดํ„ฐ๋Š” ๋‘ ๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค. 1. ์•„๋‚ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ - ์—ฐ์†์ ์ธ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ 2. ๋””์ง€ํ„ธ ๋ฐ์ดํ„ฐ - ๋ถˆ์—ฐ์†์ ์ธ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์•„๋‚ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ์™€ ๋””์ง€ํ„ธ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ ๊ฐ ์‹ ํ˜ธ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ๊ทธ๋ฆผ A์ฒ˜๋Ÿผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ ์‹ ํ˜ธ๋Š” ์ฃผ๊ธฐ์ ์ธ ์‹ ํ˜ธ(Periodic)์™€ ๋น„์ฃผ๊ธฐ์ ์ธ ์‹ ํ˜ธ(Non-Periodic)๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฃผ๊ธฐ์ ์ธ ์‹ ํ˜ธ๋Š” ์ผ์ •ํ•œ ํŒจํ„ด์ด ๋™์ผํ•œ ์‹œ๊ฐ„ ๋‚ด ๋ฐ˜๋ณต๋˜๋Š” ๊ฒƒ์„ ๋งํ•˜๊ณ  ์‚ฌ์ดํด์„ ํ˜•์„ฑํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. ๋น„์ฃผ๊ธฐ์ ์ธ ์‹ ํ˜ธ๋Š” ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ๋ฐ˜๋ณต๋˜๋Š” ํŒจํ„ด ์—†์ด ์‹ ํ˜ธ๊ฐ€ ๋ฐ”๋€Œ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ ๊ทธ๋ฆผ B์™€ ๊ฐ™์€ ์ •ํ˜•ํŒŒ๊ฐ€ ์ฃผ๊ธฐ์ ์ธ ์‹ ํ˜ธ์— ์†ํ•œ๋‹ค. ๊ทธ ์™ธ, ๊ทธ๋ฆผ A์™€ ๊ฐ™์€ ์‹ ํ˜ธ๋“ค์€.. 2024. 4. 23.
2. Protocol Model Seven layers of the OSI Model OSI๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ณ„์ธต, ํ‘œํ˜„ ๊ณ„์ธต, ์„ธ์…˜ ๊ณ„์ธต, ์ „์†ก ๊ณ„์ธต, ๋„คํŠธ์›Œํฌ ๊ณ„์ธต, ๋ฐ์ดํ„ฐ ๋งํฌ ๊ณ„์ธต, ๋ฌผ๋ฆฌ ๊ณ„์ธต์œผ๋กœ 7๊ฐœ์˜ ๋ ˆ์ด์–ด๋ฅผ ๊ฐ€์ง„๋‹ค. ํ”ํžˆ, ์ž๊ฒฉ์ฆ ๊ณต๋ถ€์—์„œ๋Š” '๋ฌผ๋ฐ๋„ค ์ „์„ธํ‘œ์‘'์œผ๋กœ ์™ธ์šฐ๋Š” ์œ ๋ช…ํ•œ ๋…€์„์ด๋‹ค. OSI์˜ 7๊ณ„์ธต์„ ์‚ดํŽด๋ณด๋ฉด ํ”„๋กœํ† ์ฝœ์˜ ์›์น™์„ ์ž˜ ์ง€ํ‚ค๊ณ  ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ ๋ ˆ์ด์–ด๋Š” ์–‘๋ฐฉํ–ฅ์œผ๋กœ ํ†ต์‹ ์ด ๋˜๋ฉฐ, ๊ฐ™์€ ๊ณ„์ธต์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ฐธ๊ณ ๋กœ ๋„คํŠธ์›Œํฌ, ๋ฐ์ดํ„ฐ ๋งํฌ, ๋ฌผ๋ฆฌ ๊ณ„์ธต์˜ ๊ฒฝ์šฐ ํ†ต์‹  ์ƒ ์กด์žฌํ•˜๋Š” ์ค‘๊ฐ„ ๋ผ์šฐํ„ฐ, ์Šค์œ„์น˜ ๋“ฑ์— ์˜ํ•ด ์ถ”๊ฐ€์ ์ธ ํ†ต์‹ ์ด ๋ฐœ์ƒ ๊ฐ ๊ณ„์ธต์€ ์–ด๋–ค ์ผ์„ ํ•˜๋Š”์ง€ ๋ณด์ž. Physical Layer ๋ฌผ๋ฆฌ ๊ณ„์ธต์€ ๊ทธ๋ฆผ A์™€ ๊ฐ™์ด ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค. ํ”„๋กœํ† ์ฝœ ์›์น™์—์„œ ์„ค๋ช…ํ–ˆ์ง€๋งŒ, ๊ฐ ๊ณ„์ธต์€ ๋‘๊ฐ€์ง€ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ํ–ˆ.. 2024. 4. 22.
1. Protocol Layering ํ”„๋กœํ† ์ฝœ์ด ๋ญ˜๊นŒ? ํ”„๋กœํ† ์ฝœ(Protocol)์€ ํ†ต์‹ ์—์„œ ์ƒ๋Œ€๋ฐฉ๊ณผ ํ†ต์‹ ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๊ทœ์•ฝ์ด๋‹ค. ์–ด๋–ป๊ฒŒ ํ†ต์‹ ํ•  ๊ฒƒ์ธ์ง€๋ฅผ ๋ฏธ๋ฆฌ ์‚ฌ์ „์— ์ •์˜ํ•ด๋†“๊ณ  ๊ทธ ๋ฐฉ์‹์— ๋งž๊ฒŒ ํ†ต์‹ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋งŒ์•ฝ, ํ”„๋กœํ† ์ฝœ์ด ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. A ํšŒ์‚ฌ์—์„œ B ํšŒ์‚ฌ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š”๋ฐ ๊ทธ๋ƒฅ ์›๋ณธ ๊ทธ๋Œ€๋กœ ์ „์†กํ•œ๋‹ค. A ํšŒ์‚ฌ๋Š” ์ „์šฉ ์šฐํŽธํ•จ์ด ์กด์žฌํ•˜๊ณ  B ํšŒ์‚ฌ๋Š” ์šฐํŽธํ•จ์ด ๋”ฐ๋กœ ์—†๋‹ค. B ํšŒ์‚ฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌ ๋ฐ›์„ ๋•Œ, ์šฐํŽธํ•จ์ด ์—†์–ด์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ง์ ‘ ๊ฐ€์ ธ๋‹ค ์ค˜์•ผํ•˜๋Š”๋ฐ ์šฐํŽธ ๊ธฐ์‚ฌ๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด ํ•œ ๋ช…, ํ•œ ๋ช…์— ๋Œ€ํ•ด ์ผ์ผ์ด ๋ฌผ์–ด๋ณด๊ณ  ๊ฐ–๋‹ค์ค˜์•ผํ•œ๋‹ค. ๋งŒ์•ฝ, B ํšŒ์‚ฌ์—๋„ ์šฐํŽธํ•จ์ด ์กด์žฌํ–ˆ๊ณ  ์ด ์šฐํŽธ์„ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ์‚ฌ๋žŒ์ด ์กด์žฌํ•œ๋‹ค๋ฉด? ์•Œ์•„์„œ ๋‹ค ํ•ด์ค„ ๊ฒƒ์ด๋‹ค. ์ปดํ“จํ„ฐ ์ž…์žฅ์—์„œ ๋ณธ๋‹ค๋ฉด ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์ด ์‚ฌ์šฉ์ž๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•˜๊ณ  ์‹œ๊ฐ„.. 2024. 4. 22.
14. CPU Scheduling CPU ์Šค์ผ€์ค„๋ง์€ ์™œ ์ƒ๊ฒผ์„๊นŒ? ์šด์˜์ฒด์ œ์˜ ๋ฐœ์ „์„ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๋‹ค์ค‘ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ๋„์ž…๋œ ๊ฒƒ์„ ์•Œ๊ฒŒ๋๋‹ค. ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ I/O ์ฒ˜๋ฆฌ๋กœ ์ธํ•œ CPU Idle Time์„ ์ค„์—ฌ์„œ CPU ํ™œ์šฉ๋ฅ ์„ ํ–ฅ์ƒ ์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ ๋„์ž… ๋˜์—ˆ๋Š”๋ฐ ์ด ๋•Œ, ๋‹ค์ค‘ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฒ•์ด CPU ์Šค์ผ€์ค„๋ง์ด๋‹ค. ์Šค๋ ˆ๋“œ๊นŒ์ง€ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์•Œ๊ฒŒ ๋œ ๋‚ด์šฉ์€ CPU๋Š” ์Šค๋ ˆ๋“œ๋ฅผ ์Šค์ผ€์ค„๋งํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ทผ๋ฐ ์–ด๋–ค ์Šค๋ ˆ๋“œ๋ฅผ ์„ ํƒํ•  ๊ฒƒ์ธ์ง€ ๊ณจ๋ผ์•ผํ•œ๋‹ค. ์œ„์™€ ๊ฐ™์€ ์ •์ฑ…์„ ๊ฐ€์ง„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํฌ๊ฒŒ CPU ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๊ณ  ํ•˜๊ณ  ์—„๋ฐ€ํ•˜๊ฒŒ๋Š” ์Šค๋ ˆ๋“œ ์Šค์ผ€์ค„๋ง์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ 2๊ฐ€์ง€ ์Šค์ผ€์ค„๋ง์„ ํ†ตํ•ด ๋ฐœ์ƒํ•œ๋‹ค. 1. ์ž‘์—… ์Šค์ผ€์ค„๋ง(job scheduling) - ๋””์Šคํฌ ์žฅ์น˜๋กœ๋ถ€ํ„ฐ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆด ์ž‘์—…์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ์ข….. 2024. 4. 22.
12. ์ปค๋„ ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ์™€ ์‚ฌ์šฉ์ž ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ ์Šค๋ ˆ๋“œ์˜ ๋ ˆ๋ฒจ? ์Šค๋ ˆ๋“œ๋Š” ์Šค์ผ€์ค„๋ง ์ฃผ์ฒด์— ๋”ฐ๋ผ ๋‘ ์ข…๋ฅ˜์˜ ์Šค๋ ˆ๋“œ๋กœ ๊ตฌ๋ถ„๋œ๋‹ค. 1. ์ปค๋„ ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ (Kernal-Level Thread) : ์ปค๋„์— ์˜ํ•ด ์Šค์ผ€์ค„๋ง ๋œ๋‹ค. 2. ์‚ฌ์šฉ์ž ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ (User-Level Thread) : ์Šค๋ ˆ๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์˜ํ•ด ์Šค์ผ€์ค„๋ง ๋œ๋‹ค. TCB๋ฅผ ์†Œ์œ ํ•˜๊ณ  ์žˆ๋Š” ์ฃผ์ฒด์— ๋”ฐ๋ผ ๋‘ ์ข…๋ฅ˜์˜ ์Šค๋ ˆ๋“œ๋กœ ๊ตฌ๋ถ„๋˜๋Š”๋ฐ ์ž์„ธํžˆ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค. ์ปค๋„ ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ ์ปค๋„ ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ๋Š” ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ํ†ตํ•ด์„œ๋งŒ ์ƒ์„ฑ๋œ๋‹ค. ์ฆ‰, ์ปค๋„์— ์˜ํ•ด์„œ๋งŒ ์Šค์ผ€์ค„๋ง ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ, ์ปค๋„ ์ฝ”๋“œ์™€ ๋‹ฌ๋ฆฌ ์ปค๋„ ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ์˜ ์ฝ”๋“œ๋‚˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ปค๋„ ๊ณต๊ฐ„๋ฟ ์•„๋‹ˆ๋ผ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—๋„ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒŒ ๋ฌด์Šจ๋ง์ธ์ง€ ์ •๋ง ํ—ท๊ฐˆ๋ ธ๋‹ค. thread_create() ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ktread_create()๋ผ๋Š” ์Šค๋ ˆ๋“œ.. 2024. 4. 22.
6. ์ปค๋„ (Kernal) ์ปค๋„์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ? ์šด์˜์ฒด์ œ์˜ ํ•ต์‹ฌ ๋ถ€๋ถ„์ด๋‹ค. 1. ์šด์˜์ฒด์ œ๋ž€? ์—์„œ๋„ ์„ค๋ช…ํ–ˆ์ง€๋งŒ ์ปดํ“จํ„ฐ๋ฅผ ๋ถ€ํŒ…ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด OS๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋ณธ์ ์ธ ์‹คํ–‰์ฝ”๋“œ๋“ค์ด ์‹คํ–‰๋œ๋‹ค. ์ด ๋•Œ, ์ปค๋„ ์ฝ”๋“œ์™€ GUI, ์ž‘์—… ์Šค์ผ€์ฅด๋Ÿฌ์— ์˜ํ•œ ์ตœ์ดˆ ์‹คํ–‰ ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋œ๋‹ค. ๊ทธ ์ค‘ ์šฐ๋ฆฌ๋Š” ์šด์˜์ฒด์ œ์˜ ๋ชจ๋“  ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๋Š” ์ปค๋„์— ๋Œ€ํ•ด์„œ๋งŒ ์ƒ๊ฐํ•ด์•ผํ•œ๋‹ค. ์ปค๋„์—๋Š” ์‹œ์Šคํ…œ ํ˜ธ์ถœ(System Call)๊ณผ ์ธํ„ฐ๋ŸฝํŠธ(Interrupt)๋ผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ œ๊ณต๋˜๊ณ  ์žˆ๋‹ค. ์•ž์„œ, ์„ค๋ช…ํ•œ ๋‚ด์šฉ์ด์ง€๋งŒ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ OS ๊ฐ„์— ์ธํ„ฐํŽ˜์ด์Šค์ด๊ณ  ์ธํ„ฐ๋ŸฝํŠธ๋Š” HW์™€ OS ๊ฐ„์— ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค. ์‹œ์Šคํ…œ ํ˜ธ์ถœ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค์€ open(), close(), fork()์™€ ๊ฐ™์ด ABI๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋Š” ์œ ๋ช…ํ•œ ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋Šฅ๋“ค์ด๋‹ค. .. 2024. 4. 21.