rosieblue
article thumbnail
728x90

๐Ÿ’ก๊ฐœ๋… ์ดํ•ดํ•˜๊ธฐ

์˜ค๋Š˜์€ ๋™๊ธฐ์‹ ์ž…์ถœ๋ ฅ๊ณผ ๋น„๋™๊ธฐ์‹ ์ž…์ถœ๋ ฅ์— ๋Œ€ํ•˜์—ฌ ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค.

๋จผ์ € ๋™๊ธฐ์‹, ๋น„๋™๊ธฐ์‹ ์–ด์›๋ถ€ํ„ฐ ์‚ดํŽด๋ณด์ž. ๋™๊ธฐ์‹์€ ์˜์–ด๋กœ Synchronized์ธ๋ฐ, ๋”ฑ๋”ฑ ์‹œ๊ฐ„์— ๋งž์ถฐ์ง„๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋ฆฝ์‹ฑํฌ์—์„œ ์‹ฑํฌ๋„ Sync์ด๋‹ค. ์ž…๋ชจ์–‘๊ณผ ๋…ธ๋ž˜ ์†Œ๋ฆฌ๋ฅผ ์‹œ๊ฐ„์— ๋งž์ถ”๋Š” ๊ฒƒ์ด๋‹ˆ ๋ฆฝ'์‹ฑํฌ'๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด IO์—์„œ synchronize ๋˜์–ด์žˆ๋‹ค๋Š” ๊ฒƒ์€ ๋ฌด์Šจ ์˜๋ฏธ์ผ๊นŒ? ์•„๋ž˜ ๊ทธ๋ฆผ์„ ๋ณด์ž.

 

๋™๊ธฐ์‹ ์ž…์ถœ๋ ฅ (Synchronized IO)๋Š” ์ˆœ์ฐจ์ ์œผ๋กœ ์ž…์ถœ๋ ฅ์ด ์ฒ˜๋ฆฌ๋˜๊ณ  ์žˆ๊ณ , ๋น„๋™๊ธฐ์‹ ์ž…์ถœ๋ ฅ (Asynchronized IO)์—์„œ๋Š” ์ˆœ์„œ๋ฅผ ์ง€ํ‚ค์ง€ ์•Š์€์ฑ„ ์ฒ˜๋ฆฌ๋˜๊ณ  ์žˆ๋‹ค. 

 

์ด์™€ ๊ฐ™์ด ์ˆœ์„œ๋ฅผ ์ง€์ผœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๋™๊ธฐ์ (Synchronized), ๊ทธ๊ฒƒ์„ ๋ณด์žฅํ•ด์ฃผ์ง€ ์•Š๋Š” ๊ฒƒ์„ ๋น„๋™๊ธฐ์ (Asynchronous)๋ผ๊ณ  ํ•œ๋‹ค.

 

 

1. Synchronous์˜ ๊ฒฝ์šฐ, user๊ฐ€ ์–ด๋–ค ๊ฒƒ์„ requestํ•˜๊ณ  IO๋ฅผ ์š”์ฒญํ–ˆ์„ ๋•Œ user๋Š” ๊ฑฐ๊ธฐ์„œ ๋ฉˆ์ถฐ๋ฒ„๋ฆฐ๋‹ค. ๊ทธ๋ฆฌ๊ณ  kernel์—์„œ IO interrupt๊ฐ€ ์˜ฌ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฐ๋‹ค.

2. ํ•˜์ง€๋งŒ Asynchronous์˜ ๊ฒฝ์šฐ, user๋Š” IO interrupt๊ฐ€ ์˜ค์ง€ ์•Š์•„๋„ ๊ทธ๋ƒฅ ๋ฌด์‹œํ•˜๊ณ  ๊ณ„์† ์ง„ํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค.

 

์ด์ œ ์ง€๊ธˆ๊นŒ์ง€ ์ด์•ผ๊ธฐํ•œ ๊ฒƒ์„ ์ •๋ฆฌํ•ด๋ณด๊ณ  ์–ด๋–ค ๊ตฌํ˜„ ๋ฐฉ์‹์ด ์žˆ๋Š”์ง€ ์‚ดํŽด๋ณด์ž.

 

๋™๊ธฐ์  ์ž…์ถœ๋ ฅ (Synchronized IO)

  • ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด I/O ์ž‘์—…์„ ์š”์ฒญํ•˜๊ณ , I/O ์ž‘์—…์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐํ•จ. IO์ž‘์—…์ด ์™„๋ฃŒ๋˜์–ด์„œ์•ผ์ง€๋งŒ ์ œ์–ด๊ฐ€ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋„˜์–ด๊ฐ
  • ๊ตฌํ˜„ ๋ฐฉ๋ฒ• 1
    • IO๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€ CPU๋Š” ์•„๋ฌด๊ฒƒ๋„ ์•ˆํ•˜๊ณ  ์žˆ์Œ. ๋งค์‹œ์  ํ•˜๋‚˜์˜ IO๋งŒ ์ผ์–ด๋‚  ์ˆ˜ ์žˆ์Œ
  • ๊ตฌํ˜„ ๋ฐฉ๋ฒ• 2
    • IO๊ฐ€ ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์—๊ฒŒ์„œ ์ œ์–ด๋ฅผ ๋นผ์•˜์Œ. 
    • ๊ทธ ํ”„๋กœ๊ทธ๋žจ์„ IO ์ฒ˜๋ฆฌ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ํ์— ์ค„์„ธ์›€
    • ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์—๊ฒŒ CPU๋ฅผ ์คŒ

๋น„๋™๊ธฐ์  ์ž…์ถœ๋ ฅ (Asynchronized IO)

  • I/O ์ž‘์—…์„ ์š”์ฒญํ•˜๊ณ , I/O ์ž‘์—…์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐํ•˜์ง€ ์•Š๊ณ  ์ œ์–ด๊ฐ€ ๋ฐ”๋กœ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์—๊ฒŒ๋กœ ๋„˜์–ด๊ฐ

 

๐Ÿ’ก ๋™๊ธฐ์‹, ๋น„๋™๊ธฐ์‹ ๋ชจ๋‘ I/O์˜ ์™„๋ฃŒ๋Š” interrupt๋กœ ์ค€๋‹ค!

 

 

์˜ˆ์‹œ

์™ผ(๋™๊ธฐ์‹), ์˜ค(๋น„๋™๊ธฐ์‹)

ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์„œ๋ฒ„์—์„œ๋„ ๋™๊ธฐ์‹, ๋น„๋™๊ธฐ์‹์˜ ๊ฐœ๋…์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์™ผ์ชฝ ๊ทธ๋ฆผ(๋™๊ธฐ์‹)์„ ๋ณด๋ฉด ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค. ์š”์ฒญ1,2,3์ด ๋“ค์–ด์™”์„ ๋•Œ ์š”์ฒญ1์ด ๋๋‚˜์•ผ์ง€ ์š”์ฒญ2๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ทธ ํ›„์—๋Š” ์š”์ฒญ3์„ ์ฒ˜๋ฆฌํ•˜๊ณ ... ์ด๋Ÿฐ ์‹์ด๋‹ค. ์ด๋Ÿฐ ๋ฐฉ์‹์ผ ๊ฒฝ์šฐ ๋งŒ์•ฝ ์š”์ฒญ์ด ๋งค์šฐ ๋งŽ์ด ๋“ค์–ด์˜ค๋ฉด ์„œ๋ฒ„์˜ ๊ณผ๋ถ€ํ•˜๊ฐ€ ๊ฑธ๋ฆด ์ˆ˜์žˆ๊ณ  ์‚ฌ์šฉ์ž๋Š” ๋ฌด์ž‘์ •๋งŒ ๋Œ€๊ธฐ๋งŒ ํƒ€์•ผํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋ฐ˜๋ฉด ์˜ค๋ฅธ์ชฝ์˜ ๋น„๋™๊ธฐ์‹ ์ฒ˜๋ฆฌ๋ฅผ ๋‚˜ํƒ€๋‚ธ ๊ทธ๋ฆผ์„ ๋ณด์ž. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ์„ ๋ณด๋ƒˆ์„ ๋•Œ ์ด ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ ํ›„ ๋‹ค์Œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋™์‹œ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ์œ„ ๋™๊ธฐ์‹ ๋ฐฉ์‹์œผ๋กœ ํ–ˆ์„ ๋•Œ์˜ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

Reference

https://product.kyobobook.co.kr/detail/S000001772604

 

profile

rosieblue

@Rosieblue

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!