๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ง๊ฐ๋กœ๊ทธ

ํฌ๋ž˜ํ”„ํ†ค ์ •๊ธ€ WEEK7 Day 51 - 6์ฃผ์ฐจ ๋ฐœ์ œ/CPU์Šค์ผ€์ค„๋ง ๋ณธ๋ฌธ

Krafton jungle

ํฌ๋ž˜ํ”„ํ†ค ์ •๊ธ€ WEEK7 Day 51 - 6์ฃผ์ฐจ ๋ฐœ์ œ/CPU์Šค์ผ€์ค„๋ง

habbn 2024. 3. 1. 00:44
728x90
๐Ÿ“†2024.2.29

1. ๋ฐœ์ œ / ์ปคํ”ผ์ฑ—
2. ํ‚ค์›Œ๋“œ
3. ๋ฐฑ์ค€

 

 ๋ฐœ์ œ / ์ปคํ”ผ์ฑ—

 

์˜ค๋Š˜ ๋“œ๋””์–ด ๋Œ€๋ง์˜ PintOS 7์ฃผ์ฐจ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ๋‹ค..

์ด๋ฒˆ ๋„คํŠธ์›Œํฌํ•˜๋ฉด์„œ ๋„ˆ๋ฌด ์–ด๋ ค์› ์–ด์„œ ๋ฒŒ์จ๋ถ€ํ„ฐ ๊ฒ์ด ๋‚˜์ง€๋งŒ ์ด๋ฒˆ์—” ์ •๋ง ํด๋ก ์ฝ”๋”ฉ ์•ˆ ํ•  ๊ฒƒ์ด๋‹ค...!!

์ €๋ฒˆ echo/tiny ๊ณผ์ œ ๋ฐœํ‘œ๋ฅผ ํ•˜๋ฉด์„œ ํ˜„์ˆ˜์ฝ”์น˜๋‹˜๊ป˜์„œ ํ•ด์ฃผ์‹  ๋ง์”€ ์ •๋ฆฌ๋ฅผ ํ•ด๋ดค๋‹ค.

 

echo์—์„œ client์™€ server์—์„œ ์–ด๋–ค ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๊ณ  ์ง์ด ๋งž์ถฐ์ง€๋Š”์ง€๋ฅผ ์•Œ์•„์•ผํ•œ๋‹ค.

์‹ค์ œ๋กœ ๋ฉด์ ‘์—์„œ ์ด ํ•จ์ˆ˜๋Š” ์–ด๋Š ๋ถ€๋ถ„์—์„œ ์—ฐ๊ฒฐํ•˜๋‚˜์š”? ๋ฌผ์–ด๋ณธ๋‹ค๊ณ  ํ•œ๋‹ค.

echo์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ์†Œ์ผ“์— ๋Œ€ํ•ด ์ดํ•ดํ•ด์•ผํ•œ๋‹ค.

Accept()ํ•˜๋Š” ๋ถ€๋ถ„์—์„œ ํŒŒ์ผ๋””์Šคํฌ๋ฆฝํŠธ ์™œ ์ƒ๊ธฐ๋Š”์ง€ ์ด์œ ๋ฅผ ์•Œ์•„์•ผ ํ•œ๋‹ค

-> ๊ทธ ์ด์œ ๋Š” ๋ฐ”๋กœ listenfd ๋“ฃ๊ธฐ ์‹๋ณ„์ž๋Š” ๊ณ ์œ ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋”ฐ๋กœ ์—ฐ๊ฒฐ connfd๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. (๊ณ„์† ๋“ฃ๊ณ  ์žˆ์–ด์•ผ ํ•จ)

3-way handshaking ๋ญ”์ง€ ๋ฌผ์–ด๋ณธ๋‹ค

 

๊ทธ๋ฆฌ๊ณ  ์Šนํ˜„์ฝ”์น˜๋‹˜๊ป˜์„œ 7์ฃผ์ฐจ ๋ฐœ์ œํ•˜์‹œ๋ฉด์„œ ํ•ด์ฃผ์‹  ๋ง์”€๋„ ์ •๋ฆฌํ•ด๋ดค๋‹ค.

 

ํ•€ํ† ์Šค๋Š” 3๋งŒ ๋ผ์ธ ์ •๋„ ๋˜๊ณ  ์‹ค๋ฌด๋ณด๋‹ค ์ ์€ ์–‘์ด๋‹ค. ๊ทผ์„ฑ์ด ํ•„์š”ํ•˜๋‹ค!

๊นƒ๋ถ์ด OS๊ณผ์ •์˜ ๋ฐ”์ด๋ธ”์ด๋ผ๊ณ  ์ƒ๊ฐ. ํ•„์ˆ˜์ ์ธ ๋‚ด์šฉ์€ ์ด๊ณณ์— ๋‹ค ์žˆ๋‹ค.

ํ•€ํ† ์Šค๋Š” ํด๋ก  ์ฝ”๋”ฉํ•˜์ง€๋ง๊ณ  ์ƒ๊ฐํ•ด์„œ ์Šค์Šค๋กœ ํ•ด๋ผ(๊ถŒ์žฅ)

 

๋งˆ์ง€๋ง‰์œผ๋กœ ์ปคํ”ผ์ฑ— ์ •๋ฆฌ!

 

ํŒŒ์ผ 3-4๊ฐœ๋ฅผ ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ์งœ์•ผํ•จ (๋‚˜๋ˆ ์„œ ์งœ๋Š” ๊ฑด ๋น„ํšจ์œจ์ ์ด๋‹ค) ๊ทธ๋ž˜์„œ ๋จธ๋ฆฌ ๋งž๋Œ€๊ณ  ๊ตฌํ˜„ํ•ด๋ผ ! -> ํŽ˜์–ดํ”„๋กœ๊ทธ๋ž˜๋ฐ!!

์ „์ฒด ๋งฅ๋ฝ์„ ์ดํ•ดํ•ด๋ผ ํ•จ์ˆ˜ ์ด๋ฆ„ ๋ณด๊ณ  ๋ฌด์Šจ ์—ญํ• ์ผ์ง€ ์ถ”๋ก ํ•˜๋ฉด์„œ ํ•ด๋ผ. ๋” ๊นŠ๊ฒŒ ๋“ค์–ด๊ฐ€์ง€ ๋งˆ๋ผ

ํ•จ์ˆ˜ ์ด๋ฆ„์€ ํ•จ์ˆ˜์˜ ์„ธ๋ถ€์ ์ธ ๊ธฐ๋Šฅ์˜ ์ถ”์ƒํ™”๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์ ‘๊ทผ!

ํ•จ์ˆ˜ ์ด๋ฆ„ ์ž˜ ์ง€์–ด๋ผ(a,b,c,a1a2, aaa ์ด๋Ÿฐ๊ฑฐ ๊ธˆ์ง€ ์ ˆ๋Œ€๊ธˆ์ง€๐Ÿ™…‍โ™€๏ธ๐Ÿ™…‍โ™€๏ธ๐Ÿ™…‍โ™€๏ธ๐Ÿ™…‍โ™€๏ธ)

 

์ฝ”๋“œ๋Š” ๋ฆฌํŒฉํ† ๋งํ•ด์„œ ์ง ๋‹ค. ์ฒ˜์Œ๋ถ€ํ„ฐ ๊นจ๋—ํ•˜๊ฒŒ ์งœ๋Š” ๊ฒƒ๋ณด๋‹ค ์ผ๋‹จ ๋Œ์•„๊ฐ€๊ฒŒ๋” ์งœ๊ณ  ๊ทธ ์ฝ”๋“œ๋ฅผ ๊นจ๋—ํ•˜๊ฒŒ ๋‹ค์‹œ ์ •๋ฆฌํ•ด๋‚˜๊ฐ„๋‹ค.

์ •ํ›ˆ ์ฝ”์น˜๋‹˜์˜ ๊ณต๋ถ€ ํŒ - ํƒ€์ด๋จธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ง‘์ค‘์‹œ๊ฐ„ ์ •ํ•ด์„œ ๊ณต๋ถ€ํ•˜๋ฉด ์ž˜ ๋จ (ํšจ๊ณผ ๋ณด์‹ฌ)

 

 

ํ‚ค์›Œ๋“œ (CPU ์Šค์ผ€์ฅด๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜)

 

CPU ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜

- CPU ์Šค์ผ€์ค„๋ง์€ ์–ธ์ œ ์–ด๋–ค ํ”„๋กœ์„ธ์Šค์— CPU๋ฅผ ํ• ๋‹นํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ์ž‘์—…์„ ํ•œ๋‹ค.

๋น„์„ ์ ํ˜• ๋ฐฉ์‹๊ณผ ์„ ์ ํ˜• ๋ฐฉ์‹์ด ์žˆ๋‹ค.

 

1) ๋น„์„ ์ ํ˜• ๋ฐฉ์‹

- ํ”„๋กœ์„ธ์Šค๊ฐ€ ์Šค์Šค๋กœ CPU ์†Œ์œ ๊ถŒ์„ ํฌ๊ธฐํ•˜๋Š” ๋ฐฉ์‹(์–ด๋–ค ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ์ ์œ ํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ์ด๋ฅผ ๋บ์„ ์ˆ˜ ์—†๋Š” ๋ฐฉ์‹), ๊ฐ•์ œ๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘์ง€ํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

FCFS - ๊ฐ€์žฅ ๋จผ์ € ์˜จ ๊ฒƒ์„ ๊ฐ€์žฅ ๋จผ์ € ์ฒ˜๋ฆฌ / ํ˜ธ์œ„ํšจ๊ณผ ๋ฐœ์ƒ

SJF - ์‹คํ–‰์‹œ๊ฐ„์ด ๊ฐ€์žฅ ์งง์€ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ์‹คํ–‰ / ๊ธฐ์•„ ํ˜„์ƒ ๋ฐœ์ƒ

Priority - ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ์ˆœ์œผ๋กœ ์‹คํ–‰ / ๋…ธํ™” ๋ฐฉ๋ฒ• ํ†ตํ•ด ๋‹จ์  ๋ณด์™„

 

2) ์„ ์ ํ˜• ๋ฐฉ์‹

- ์ง€๊ธˆ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์˜ํ•ด ์ค‘๋‹จ์‹œํ‚ค๊ณ  ๊ฐ•์ œ๋กœ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— CPU ์†Œ์œ ๊ถŒ์„ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

 

RoundRobin - ๋™์ผํ•œ ํ• ๋‹น ์‹œ๊ฐ„์„ ๋ถ€์—ฌํ•ด์„œ ํ•ด๋‹น ์‹œ๊ฐ„ ๋™์•ˆ๋งŒ CPU ์ด์šฉ

SRTF - ์ค‘๊ฐ„์— ๋” ์งง์€ ์ž‘์—…์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ํ˜„์žฌ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘๋‹จํ•˜๊ณ  ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ๋ฐ”๊ฟˆ

MLQ - ์šฐ์„ ์ˆ˜์œ„์— ๋”ฐ๋ฅธ ์ค€๋น„ ํ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ๋“ค๋กœ ๋‚˜๋‰˜๊ณ  ๊ฐ๊ฐ์˜ ํ๋งˆ๋‹ค ๊ฐ์ž์˜ ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉํ•œ ๊ฒƒ / ๊ธฐ์•„ํ˜„์ƒ ๋ฐœ์ƒ

MLFQ - ์„œ๋กœ ๋‹ค๋ฅธ Queue๋กœ๋„ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐœ์„ ํ•œ ๊ธฐ๋ฒ• , ๋‹ค์–‘ํ•œ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ๋ฒ•

 

4BSD - 4BSD ์Šค์ผ€์ค„๋Ÿฌ๋Š” ํ”„๋กœ์„ธ์Šค์˜ nice๊ฐ’๊ณผ ์ตœ๊ทผ cpu ์‚ฌ์šฉ๋Ÿ‰์„ ๊ณ ๋ คํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋™์ ์œผ๋กœ ์กฐ์ •

nice - ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฐ’

 

์ž์„ธํ•œ ์„ค๋ช…์€..

 

CPU ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜(FCFS, SJF, Priority Queue, Round Robin, SRTF, MLQ, MLFQ), 4BSD,nice

CPU ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜ CPU ์Šค์ผ€์ค„๋Ÿฌ๋Š” CPU ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋”ฐ๋ผ ํ”„๋กœ์„ธ์Šค์—์„œ ํ•ด์•ผํ•˜๋Š” ์ผ์„ ์Šค๋ ˆ๋“œ ๋‹จ์œ„๋กœ CPU์— ํ• ๋‹นํ•œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋  ๋•Œ๋Š” CPU ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ

habbn-unitystudy.tistory.com

 

๋ฐฑ์ค€ ๋ถ€๋…€ํšŒ์žฅ์ด ๋ ํ…Œ์•ผ!

 

DP๋ฌธ์ œ๋‹ค. ์ ํ™”์‹ ๋‹จ๋ฒˆ์— ์ฐพ์•„์„œ ํ’€์—ˆ๋‹น.

T = int(input())

for i in range(T):
    k = int(input())
    n = int(input())
    
    dp =[[0] * (n+1) for i in range(k+1)]

    for j in range(n+1):
        dp[0][j] = j
        
    for i in range(1,k+1):
        for j in range(1,n+1):
            dp[i][j] = dp[i-1][j] + dp[i][j-1]
            
    print(dp[i][j])

 

728x90