What is an OS

Reference: ์ดํ™”์—ฌ๋Œ€ ์šด์˜์ฒด์ œ ๊ฐ•์˜ - ๋ฐ˜ํšจ๊ฒฝ ๊ต์ˆ˜๋‹˜

์šด์˜์ฒด์ œ๋ž€?

  • ์‚ฌ์šฉ์ž๊ฐ€ ํ•˜๋“œ์›จ์–ด๋ฅผ ๋ชฐ๋ผ๋„ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์„ ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•œ๋‹ค

  • ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ํ•œ์ •๋œ ์ž์› (CPU, Memory, I/O)๋ฅผ์œผ๋กœ ์ตœ๋Œ€ํ•œ์˜ ์„ฑ๋Šฅ์„ ๋‚ด๋„๋ก ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค

    • ex)

      • ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ๋“ค์—๊ฒŒ ์งง์€ ์‹œ๊ฐ„์”ฉ CPU๋ฅผ ๋ฒˆ๊ฐˆ์•„ ํ• ๋‹น (round robin)

      • ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ๋“ค์— memory ๊ณต๊ฐ„์„ ์ ์ ˆํžˆ ๋ถ„๋ฐฐ

        • memory: CPU์˜ ์ž‘์—… ๊ณต๊ฐ„

  • ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด ๋ฐ”๋กœ ์œ„์— ์„ค์น˜๋˜์–ด ์‚ฌ์šฉ์ž ๋ฐ ๋‹ค๋ฅธ ๋ชจ๋“  ์†Œํ”„ํŠธ์›จ์–ด์™€ ํ•˜๋“œ์›จ์–ด๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ณ„์ธต

    • ์ข์€ ์˜๋ฏธ (์ปค๋„)

      • ์šด์˜์ฒด์ œ์˜ ํ•ต์‹ฌ ๋ถ€๋ถ„์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผํ•˜๋Š” ๋ถ€๋ถ„

    • ๋„“์€ ์˜๋ฏธ

      • ์ปค๋„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฐ์ข… ์ฃผ๋ณ€ system utility๋ฅผ ํฌํ•จํ•œ ๊ฐœ๋…

์šด์˜์ฒด์ œ์˜ ๊ธฐ๋Šฅ

  • ์ปดํ“จํ„ฐ๊ฐ€ ๋ถ€ํŒ…์ด ๋œ๋‹ค

    == memory์— ์šด์˜์ฒด์ œ๊ฐ€ ์˜ฌ๋ผ๊ฐ„๋‹ค

  • Kernel

    • ์ปดํ“จํ„ฐ๊ฐ€ ์‹คํ–‰๋˜๋ฉด memory์— ์ƒ์ฃผํ•œ๋‹ค

  • CPU ๊ด€๋ฆฌ

    • ๋งค ํด๋Ÿญ๋งˆ๋‹ค memory์— ์žˆ๋Š” ๊ธฐ๊ณ„์–ด๋ฅผ ์ฝ์–ด์™€ ์—ฐ์‚ฐ์„ ํ•œ๋‹ค

    • CPU๋Š” ์ง์ ‘ I/O ์žฅ์น˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค

      • I/O๋“ค์€ ๊ฐ์ž ๋™์ž‘์„ ๋‹ด๋‹นํ•˜๋Š” ์ž‘์€ CPU์™€ ๊ฐ™์€ I/O ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์žˆ๊ณ , CPU๋Š” ์ปจํŠธ๋กค๋Ÿฌ์— ์š”์ฒญํ–์—ฌ I/O ์žฅ์น˜์— ํ•„์š”ํ•œ ์ž‘์—…์„ ์‹คํ–‰ํ•˜๊ฒŒ ํ•œ๋‹ค

    • CPU Scheduling

      • ์šด์˜์ฒด์ œ์˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ!

      • ์šด์˜์ฒด์ œ ๋‚ด๋ถ€์— ์žˆ๋Š” ๊ธฐ๊ณ„์–ด๊ฐ€ CPU์—๊ฒŒ ํŠน์ • ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋„๋ก ๋ช…๋ น, ์ฆ‰ ์Šค์ผ€์ค„๋ง ํ•œ๋‹ค

      • ํ•œ์ •๋œ ์‹œ๊ฐ„๋™์•ˆ๋งŒ ํŠน์ • ํ”„๋กœ๊ทธ๋žจ์ด CPU๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜๊ณ , ์ฃผ์–ด์ง„ ์‹œ๊ฐ„์ด ๋๋‚˜๋ฉด CPU๋ฅผ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์— ๋„˜๊ธด๋‹ค

        โ†’ ์šด์˜์ฒด์ œ๊ฐ€ ๋‹จ๋…์œผ๋กœ ์ง„ํ–‰ํ•  ์ˆ˜๋Š” ์—†๊ณ , ํ•˜๋“œ์›จ์–ด์˜ ๋„์›€์„ ๋ฐ›๋Š”๋‹ค

  • Memory ๊ด€๋ฆฌ

    • ํ•œ์ •๋œ memory๋ฅผ ์–ด๋–ป๊ฒŒ ์ชผ๊ฐœ์–ด ์“ธ์ง€

  • ๋””์Šคํฌ Scheduling

    • ๋””์Šคํฌ๋Š” ๋А๋ฆฌ๋‹ค!

    • CPU๋Š” ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์ž‘์—…(ex. ๋””์Šคํฌ์—์„œ ํŒŒ์ผ ์ฝ๊ธฐ)์„ ์‹คํ–‰ํ•˜๋Š” ์ค‘์— ๋‹ค๋ฅธ ์ž‘์—…์œผ๋กœ ๋„˜์–ด๊ฐ€์„œ ๋‹ค๋ฅธ ์ž‘์—…์„ ์‹คํ–‰ํ•œ๋‹ค

    • CPU ์ฒ˜๋Ÿผ I/O ์žฅ์น˜์—๋„ ์—ฌ๋Ÿฌ ์š”์ฒญ์ด ๋™์‹œ์— ๋“ค์–ด์˜ค๋Š”๋ฐ, ์–ด๋–ค ์ˆœ์„œ๋กœ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ• ์ง€ ์šด์˜์ฒด์ œ๊ฐ€ scheduling ํ•˜์—ฌ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค

  • Interrupt ์™€ Caching

    • ๋น ๋ฅธ CPU์™€ ๋А๋ฆฐ I/O ์žฅ์น˜ ๊ฐ„ ์†๋„์ฐจ๋ฅผ ์™„์ถฉํ•˜๊ธฐ ์œ„ํ•ด Interrupt ์™€ Caching๋ฅผ ํ™œ์šฉํ•œ๋‹ค

    • Caching

      • ์ค‘๊ฐ„ ๋‹จ๊ณ„๋ฅผ ๋‘๋Š” ๊ฒƒ

      • ์ž์ฃผ ์กฐํšŒ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ memory์— caching

    • Interrupt

      • CPU๋Š” I/O ์ปจํŠธ๋กค๋Ÿฌ์— ์ผ์„ ์‹œํ‚ค๊ณ  ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ๋‹น์žฅ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…์„ ์ฐพ์•„ ํ•ด๋‹น ์ž‘์—…์„ ์‹คํ–‰ํ•œ๋‹ค

        • I/O ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์ž‘์—…์ด ์™„๋ฃŒ ๋์Œ์„ Interrupt ๋ฅผ ํ†ตํ•ด CPU์—๊ฒŒ ์•Œ๋ฆฐ๋‹ค

          • CPU๋Š” ๋งค ์ž‘์—…์ด ๋๋‚œ ํ›„ Interrupt check ๋ฅผ ํ•ด์„œ ์‹คํ–‰ํ•œ ์ž‘์—…๋“ค์ด ๋๋‚ฌ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค

      • Interrupt๊ฐ€ ๋“ค์–ด์˜ค๋ฉด CPU๋Š” ์šด์˜์ฒด์ œ์—๊ฒŒ ๋„˜์–ด๊ฐ€๊ณ , ์ข…๋ฃŒ๋œ ์ž‘์—…์ด ๋‹ค์‹œ CPU๊ฐ€ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค

      • Interrupt๋Š” ๋А๋ฆฐ ์žฅ์น˜(ex. ๋””์Šคํฌ I/O)๋“ค์ด ์ž‘์—…์ด ์™„๋ฃŒ๋˜์—ˆ์Œ์„ CPU์—๊ฒŒ ์•Œ๋ฆฌ๊ธฐ ์œ„ํ•œ ์žฅ์น˜์ด๋‹ค

์šด์˜ ์ฒด์ œ์˜ ๋ชฉ์ 

  • ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณต

  • ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌ

    • ์ปดํ“จํ„ฐ์˜ ๋‘๋‡Œ๋Š” CPU ๊ฐ€ ์•„๋‹ˆ๋ผ OS๋‹ค! (๊ต์ˆ˜๋‹˜ ์ƒ๊ฐ)

      • CPU๋Š” ๊ณ„์‚ฐ์„ ์ž˜ํ•˜๋Š” ์กด์žฌ

      • Memory๋Š” ๊ธฐ์–ต์„ ํ•˜๋Š” ์กด์žฌ

      • OS๋Š” ๊ทธ๋“ค์„ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ• ์ง€ ํŒ๋‹จ ํ•˜๋Š” ์กด์žฌ (ํ†ต์น˜์ž)

        • ex) ํ”„๋กœ๊ทธ๋žจ๋งˆ๋‹ค ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ์ ˆํžˆ ๋‚˜๋ˆ ์ค˜์•ผ ํ•˜๋Š”๋ฐ, ๊ทธ ๋•Œ OS๊ฐ€ ๊ฒฐ์ •์„ ํ•œ๋‹ค

์šด์˜ ์ฒด์ œ์˜ ๋ถ„๋ฅ˜

๋™์‹œ ์ž‘์—… ๊ฐ€๋Šฅ ์—ฌ๋ถ€

  • ๋‹จ์ผ ์ž‘์—… (single tasking)

    • ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์ž‘์—…๋งŒ ์ฒ˜๋ฆฌ

  • ๋‹ค์ค‘ ์ž‘์—… (multi tasking)

    • ๋™์‹œ์— ๋‘ ๊ฐœ ์ด์ƒ์˜ ์ž‘์—… ์ฒ˜๋ฆฌ

    • ex) ํ•˜๋‚˜์˜ ๋ช…๋ น์˜ ์ˆ˜ํ–‰์ด ๋๋‚˜๊ธฐ ์ „์— ๋‹ค๋ฅธ ๋ช…๋ น์ด๋‚˜ ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค

์‚ฌ์šฉ์ž์˜ ์ˆ˜

  • ๋‹จ์ผ ์‚ฌ์šฉ์ž (single user)

    • ex) MS-DOS, MS Windows

  • ๋‹ค์ค‘ ์‚ฌ์šฉ์ž (multi user)

    • ex) Unix, Linux

    • ๋‹ค์ค‘ ์‚ฌ์šฉ์ž๊ฐ€ ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ๋ณด์•ˆ / ๊ถŒํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ด ํ•„์š”ํ•จ

์ฒ˜๋ฆฌ ๋ฐฉ์‹

  • ์ผ๊ด„ ์ฒ˜๋ฆฌ (Batch processing)

    • ์ž‘์—… ์š”์ฒญ์˜ ์ผ์ •๋Ÿ‰์„ ๋ชจ์•„์„œ ํ•œ๊บผ๋ฒˆ์— ์ฒ˜๋ฆฌ

    • ์ž‘์—…์ด ์™„์ „ํžˆ ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผํ•จ

    • ex) ์ดˆ๊ธฐ Punch Card ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ

  • ์‹œ๋ถ„ํ•  (Time sharing)

    • ์—ฌ๋Ÿฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์ปดํ“จํ„ฐ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์„ ์ผ์ •ํ•œ ๋‹จ์œ„๋กœ ๋ถ„ํ• ํ•˜์—ฌ ์‚ฌ์šฉ

    • ์ผ๊ด„ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ์— ๋น„ํ•ด ์งง์€ ์‘๋‹ต ์‹œ๊ฐ„์„ ๊ฐ€์ง

    • Interactive ํ•œ ๋ฐฉ์‹

    • ์ฃผ์–ด์ง„ ์ž์›์„ ์‹œ๊ฐ„์„ ์ชผ๊ฐœ์„œ ์ตœ๋Œ€ํ•œ ํšจ์œจ์ ์œผ๋กœ ์“ฐ๋Š” ๋ฐฉ์‹

    • ex) Unix

  • ์‹ค์‹œ๊ฐ„(Realtime OS)

    • ์ •ํ•ด์ง„ ์‹œ๊ฐ„ ์•ˆ์— ์–ด๋– ํ•œ ์ผ์ด ๋ฐ˜๋“œ์‹œ ์ข…๋ฃŒ๋จ์„ ๋ณด์žฅ๋˜์–ด์•ผ ํ•˜๋Š” ์‹ค์‹œ๊ฐ„ ์‹œ์Šคํ…œ์„ ์œ„ํ•œ OS

    • ์‹ค์‹œ๊ฐ„ ์‹œ์Šคํ…œ์˜ ๊ฐœ๋… ํ™•์žฅ

      • Hard realtime system

        • Deadline์„ ์–ด๊ธฐ๋ฉด ํฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ

        • ex) ์›์ž๋กœ / ๊ณต์žฅ ์ œ์–ด, ๋ฏธ์‚ฌ์ผ ์ œ์–ด, ๋ฐ˜๋„์ฒด ์žฅ๋น„, ๋กœ๋ด‡ ์ œ์–ด

      • Soft realtime system

        • Best effort โ†’ ์ตœ๋Œ€ํ•œ ๋…ธ๋ ฅํ•˜์ง€๋งŒ ๋ณด์žฅ์€ ๋ชปํ•œ๋‹ค

        • ex) ๋™์˜์ƒ ํ”Œ๋ ˆ์ด์–ด ์žฌ์ƒ ์‹œ ํ”„๋ ˆ์ž„์ด ์ฐํžˆ์ง€ ์•Š์œผ๋ฉด ์˜์ƒ์ด ๋Š๊น€

์šฉ์–ด ์ •๋ฆฌ

์•„๋ž˜์˜ 4๊ฐœ ์šฉ์–ด๋“ค์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ™์€ ์˜๋ฏธ์ด๋‚˜, ์กฐ๊ธˆ์”ฉ ๊ฐ•์กฐํ•˜๋Š” ๋ฐ”๊ฐ€ ๋‹ค๋ฅด๋‹ค

  • Multi-tasking

  • Multi-programming

    • memory์— ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์ด ๋™์‹œ์— ์˜ฌ๋ผ๊ฐ€ ์žˆ์Œ์„ ๊ฐ•์กฐ

  • Time sharing

    • CPU์˜ ์‹œ๊ฐ„์„ ๋ถ„ํ• ํ•˜์—ฌ ๋‚˜๋ˆ„์–ด ์“ด๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ•์กฐ

  • Multi-process

์•„๋ž˜ ์šฉ์–ด๋Š” ์•„์˜ˆ ๋‹ค๋ฅธ ์˜๋ฏธ์ด๋‹ค

  • Multi-processor

    • ํ•˜๋‚˜์˜ ์ปดํ“จํ„ฐ์— CPU (processor)๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ ๋ถ™์–ด์žˆ์Œ์„ ์˜๋ฏธ

    • ๊ณ ์„ฑ๋Šฅ ์ปดํ“จํŒ…, Cloud ์ปดํ“จํŒ…์—์„œ ๋‹ค๋ฃจ๋Š” ๋ฌธ์ œ

์šด์˜ ์ฒด์ œ์˜ ์˜ˆ์‹œ

UNIX

  • ์ฝ”๋“œ์˜ ๋Œ€๋ถ€๋ถ„์„ C ์–ธ์–ด๋กœ ์ž‘์„ฑ

    • ์šด์˜์ฒด์ œ๊ฐ€ ํ•˜๋“œ์›จ์–ด์  ์š”์†Œ๋ฅผ ์ œ์–ดํ•˜๋ ค๋ฉด Assembly ์–ธ์–ด๋กœ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š”๋ฐ, ๊ทธ๊ฒŒ ์–ด๋ ค์›Œ์„œ ์‚ฌ๋žŒ์ด ์ดํ•ดํ•˜๊ธฐ์— ํŽธํ•œ C ์–ธ์–ด๋ฅผ ๋งŒ๋“ฆ

    • ์‚ฌ๋žŒ์ด ์ดํ•ดํ•˜๊ธฐ ํŽธํ•ด์ง

  • ๋†’์€ ์ด์‹์„ฑ

    • C์–ธ์–ด๋Š” ์—ฌ๋Ÿฌ ์•„ํ‚คํ…์ฒ˜์—์„œ ํ˜ธํ™˜์ด ๋˜๋ฏ€๋กœ ๋†’์€ ์ด์‹์„ฑ์„ ๊ฐ–๋Š”๋‹ค

  • ์ตœ์†Œํ•œ์˜ Kernel ๊ตฌ์กฐ

  • ๋ณต์žกํ•œ ์‹œ์Šคํ…œ์— ๋งž๊ฒŒ ํ™•์žฅ ์šฉ์ด

  • ์†Œ์Šค ์ฝ”๋“œ ๊ณต๊ฐœ

  • ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์— ์šฉ์ด

  • ๋‹ค์–‘ํ•œ ๋ฒ„์ „

    • System V, FreeBSD, SunOS, Solaris

    • Linux

      โ†’ ์†Œ์Šค์ฝ”๋“œ ๊ณต๊ฐœ๋˜์–ด์žˆ๊ณ , ์ด๊ฑธ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐœ์ „ํ•˜๊ณ  ์ž‡์Œ

DOS (Disk Operating System)

  • MS์‚ฌ์—์„œ 1981๋…„ IBM-PC๋ฅผ ์œ„ํ•ด ๊ฐœ๋ฐœ

  • ๋‹จ์ผ ์‚ฌ์šฉ์ž์šฉ ์šด์˜์ฒด์ œ

  • ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๋Šฅ๋ ฅ์— ํ•œ๊ณ„๊ฐ€ ์žˆ์Œ (์ฃผ ๊ธฐ์–ต์žฅ์น˜: 640KB)

MS Windows

  • MS์‚ฌ์˜ ๋‹ค์ค‘ ์ž‘์—…์šฉ GUI ๊ธฐ๋ฐ˜ ์šด์˜ ์ฒด์ œ

  • Plug and Play

  • ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ ๊ฐ•ํ™”

  • DOS์šฉ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ˜ธํ™˜์„ฑ ์ œ๊ณต

  • ํ’๋ถ€ํ•œ ์ง€์› ์†Œํ”„ํŠธ์›จ์–ด

์šด์˜ ์ฒด์ œ์˜ ๊ตฌ์กฐ

ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ

  • ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ๊ณผ ์‚ญ์ œ

  • ์ž์› ํ• ๋‹น ๋ฐ ๋ฐ˜ํ™˜

  • ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ˜‘๋ ฅ

๊ทธ ์™ธ

  • ๋ณดํ˜ธ ์‹œ์Šคํ…œ

  • ๋„คํŠธ์›Œํ‚น

  • ๋ช…๋ น์–ด ํ•ด์„๊ธฐ (command line interpreter)

ํ”„๋กœ์„ธ์Šค

  • ํ”„๋กœ์„ธ์Šค๋ž€?

    • ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ

  • CPU Queue

    • CPU๋ฅผ ์“ฐ๊ณ ์ž ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ๋“ค์„ ์ค„ ์„ธ์›Œ๋‘”๋‹ค

CPU Scheduling

์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ๋“ค์ด CPU ์‚ฌ์šฉ์„ ํ•˜๊ณ ์ž CPU queue์—์„œ ๊ธฐ๋‹ค๋ฆด ๋•Œ, ์–ด๋–ค ์ˆœ์„œ๋กœ queue์— ์žˆ๋Š” ์ž‘์—…์„ ์‹คํ–‰ํ• ์ง€ ์ •ํ•˜๋Š” ๊ฒƒ

โ†’ ์šด์˜์ฒด์ œ์˜ ์ค‘์š” ์—ญํ•  ์ค‘ ํ•˜๋‚˜

FCFS (First-Come First-Served)

  • ์„ค๋ช…

    • ์š”์ฒญ์ด ๋“ค์–ด์˜จ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•

      โ†’ ํ˜•ํ‰์„ฑ ์ข‹์Œ
  • ๋ฌธ์ œ์ 

    • ๋จผ์ € ๋“ค์–ด์˜จ ์š”์ฒญ์ด CPU๋ฅผ ์˜ค๋ž˜ ์ ์œ ํ•˜๋ฉด ๊ทธ ๋’ค์— ๋“ค์–ด์˜จ ์ž‘์—…๋“ค์˜ average waiting time์ด ๊ธธ์–ด์ง

      โ†’ ํšจ์œจ์„ฑ ์ข‹์ง€ ์•Š์Œ

SJF (Shortest-Job-First)

  • ์„ค๋ช…

    • CPU ์‚ฌ์šฉ์‹œ๊ฐ„์ด ๊ฐ€์žฅ ์งง์€ process๋ฅผ ์ œ์ผ ๋จผ์ € ์Šค์ผ€์ค„

    • Minimum average waiting time์„ ๋ณด์žฅ

      โ†’ ํšจ์œจ์„ฑ์€ ์ข‹์Œ
  • ๋ฌธ์ œ์ 

    • Starvation (๊ธฐ์•„ ํ˜„์ƒ) ๋ฐœ์ƒ ๊ฐ€๋Šฅ

      โ†’ ํ˜•ํ‰์„ฑ ๋ฌธ์ œ

Round Robin (RR)

  • ํ˜„๋Œ€์— ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

  • ๊ฐ process๋Š” ๋™์ผํ•œ ํฌ๊ธฐ์˜ CPU ํ• ๋‹น ์‹œ๊ฐ„์„ ๊ฐ–๋Š”๋‹ค

    • ํ• ๋‹น ์‹œ๊ฐ„์ด ๋๋‚˜๋ฉด Interrupt ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ process๋Š” CPU๋ฅผ ๋นผ์•—๊ธฐ๊ณ  CPU queue์˜ ์ œ์ผ ๋’ค์— ์ค„์„ ์„ ๋‹ค

  • n๊ฐœ process๊ฐ€ CPU queue์— ์žˆ๋Š” ๊ฒฝ์šฐ

    • ์–ด๋–ค process๋„ (n-1)*ํ• ๋‹น์‹œ๊ฐ„ ์ด์ƒ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๋Š”๋‹ค

      • ์ „์ฒด process n๊ฐœ - ๋‚˜ ์ž์‹ 

  • ์žฅ์ 

    • ์งง์€ ์ž‘์—…์€ ์ฃผ์–ด์ง„ ํ• ๋‹น ์‹œ๊ฐ„์— ๋น ๋ฅด๊ฒŒ ์ž‘์—…์„ ์™„๋ฃŒํ•˜๋ฉด ๋˜๊ณ , ๊ธด ์ž‘์—…์€ ํ• ๋‹น ์‹œ๊ฐ„๋™์•ˆ ๋๋งˆ์น˜์ง€ ๋ชปํ•œ ์ž‘์—…์„ ๋‹ค์‹œ ์ฐจ๋ก€๊ฐ€ ๋์„ ๋•Œ ์ด์–ด์„œ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋œ๋‹ค

      โ†’ ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด process์˜ CPU ์‚ฌ์šฉ์‹œ๊ฐ„์— ๋น„๋ก€ํ•œ๋‹ค

๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

  • Swap ์˜์—ญ

    • ์‹คํ–‰์ค‘์ธ process์˜ ๋‹น์žฅ ํ•„์š”ํ•œ ๊ณต๊ฐ„์€ memory์— ์˜ฌ๋ผ๊ฐ€์ง€๋งŒ, memory์˜ ๊ณต๊ฐ„์  ํ•œ๊ณ„๋กœ ๋‹ค ์˜ฌ๋ฆฌ์ง€ ๋ชปํ•œ ๋ถ€๋ถ„์ด swap ์˜์—ญ์— ์˜ฌ๋ผ๊ฐ„๋‹ค

    • ์˜์† ๊ฐ€๋Šฅํ•œ ๋””์Šคํฌ์— ์œ„์น˜ํ•˜์ง€๋งŒ, ์ „์›์ด ๋‚˜๊ฐ€๋ฉด ๋”์ด์ƒ ์“ธ๋ชจ ์—†๋Š” ๋ฐ์ดํ„ฐ๋‹ค

      • ์ด๋ฏธ ํ•ด๋‹น process๋Š” ์‹คํ–‰์ค‘์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์—

  • ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์–ด๋–ค ๊ฒƒ์„ ์ซ“์•„๋‚ผ๊นŒ?

    • ๋ฏธ๋ž˜์— ๋‹ค์‹œ ์‚ฌ์šฉ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์€ ํŽ˜์ด์ง€๋Š” ์ซ“์•„๋‚ด์ง€ ๋ง๊ณ , ๊ฐ€๊นŒ์šด ๋ฏธ๋ž˜์— ์‚ฌ์šฉ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋‚ฎ์€ ํŽ˜์ด์ง€๋ฅผ ์ซ“์•„๋‚ด์•ผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌ๋œ๋‹ค!

  • LRU (Least Recently Used)

    • ๊ฐ€์žฅ ์˜ค๋ž˜ ์ „์— ์ฐธ์กฐ๋œ ํŽ˜์ด์ง€ ์‚ญ์ œ

  • LFU (Least Frequently Used)

    • ๊ฐ€์žฅ ์ ๊ฒŒ ์ฐธ์กฐ๋œ ํŽ˜์ด์ง€ ์‚ญ์ œ

๋””์Šคํฌ ์Šค์ผ€์ค„๋ง

  • ๋””์Šคํฌ์˜ ์ ‘๊ทผ ์‹œ๊ฐ„ ์ค‘ ๊ฐ€์žฅ ๋งŽ์€ ์‹œ๊ฐ„์„ ์ฐจ์ง€ํ•˜๋Š”๊ฒŒ ๋””์Šคํฌ ํ—ค๋“œ ์ด๋™ ์‹œ๊ฐ„

    โ†’ ํ—ค๋“œ ์ด๋™ ๊ฑฐ๋ฆฌ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๊ฒŒ ์Šค์ผ€์ค„๋ง์„ ํ•ด์•ผํ•œ๋‹ค

  • Seek time์„ ์ค„์—ฌ์•ผ ํ•œ๋‹ค!

    โ†’ ๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด ๋””์Šคํฌ ์Šค์ผ€์ค„๋ง์ด ํ•„์š”ํ•˜๋‹ค

FCFS (First-Come First-Served)

์˜ค๋ž˜๊ฑธ๋ฆผ (๋น„ํšจ์œจ์ )

SSTF (Shortest Seek Time First)

  • ์ด๋™๊ฑฐ๋ฆฌ๊ฐ€ ์งง์•„ ํšจ์œจ์ 

  • but, starvation ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค

SCAN

  • ํ˜„์žฌ ๋””์Šคํฌ ์Šค์ผ€์ค„๋ง ๋ฐฉ์‹

  • queue์— ๋“ค์–ด์˜จ ์š”์ฒญ์— ์ƒ๊ด€ ์—†์ด head๋Š” ์ด๋™ํ•œ๋‹ค

  • ์ด๋™ํ•˜๋ฉด์„œ queue์— ๋“ค์–ด์˜จ ์š”์ฒญ์ด ์žˆ์œผ๋ฉด ์ฒ˜๋ฆฌํ•œ๋‹ค

    โ†’ ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ์˜ ๋™์ž‘ ๋ฐฉ์‹๊ณผ ์œ ์‚ฌ!

์ €์žฅ์žฅ์น˜ ๊ณ„์ธต๊ตฌ์กฐ์™€ Caching

  • CPU๋Š” ๊ธฐ๊ณ„์–ด๋ฅผ ์‹คํ–‰ํ•  ๋•Œ Register์— ์žˆ๋Š” ๊ฐ’๋“ค๋กœ ์‹คํ–‰ํ•œ๋‹ค

  • CPU์™€ memory ์‚ฌ์ด์˜ ์†๋„ ์ฐจ์ด๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด Cache Memory๋ฅผ ๋‘”๋‹ค

  • ํ˜„์žฌ๋Š” Main Memory์™€ Magnetic Disk ์‚ฌ์ด์— Flash memory๊ฐ€ ์œ„์น˜ํ•œ๋‹ค

  • Primary

    • ํœ˜๋ฐœ์„ฑ

    • CPU๊ฐ€ ์ง์ ‘ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค (executable)

  • Secondary

    • ๋น„ํœ˜๋ฐœ์„ฑ

    • CPU๊ฐ€ ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์—†์–ด์„œ, Primary์— ์˜ฌ๋ ค์„œ ์‹คํ–‰ํ•œ๋‹ค

  • ์†๋„ ์ฐจ์ด๋ฅผ ๊ทน๋ณต (์™„์ถฉ) ํ•˜๊ธฐ ์œ„ํ•ด layered architecture๋ฅผ ๊ฐ–๋Š”๋‹ค

    • ๋น ๋ฅธ ๊ณ„์ธต์œผ๋กœ ๋ณต์‚ฌ๋ฅผ ํ•ด๋†“๊ณ , ๋ณต์‚ฌ๋ณธ์„ ์ฝ์–ด๊ฐ€๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ Caching์ด๋‹ค!

  • Caching

    • copying information into faster storage system

    • ๋ˆ„๊ตฌ๋ฅผ ์ซ“์•„๋‚ผ ๊ฒƒ์ธ๊ฐ€!

Flash Memory

Flash Memory ๋ž€?

  • ๋ฐ˜๋„์ฒด ์žฅ์น˜ (ํ•˜๋“œ๋””์Šคํฌ: ๋งˆ๊ทธ๋„คํ‹ฑ)

  • NANDํ˜• (storage), NOR ํ˜• (embeded code ์ €์žฅ์šฉ)

    • ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ (์ €์žฅ์žฅ์น˜ ๋ชฉ์ )์€ ๋ชจ๋‘ NAND ํ˜•!

Flash Memory ํŠน์ง•

  • Non-volatile

    • ์ „์›์ด ๋‚˜๊ฐ€๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์ง€๊ฐ€ ๋œ๋‹ค

  • Low power consumption

    • ํ•˜๋“œ๋””์Šคํฌ์— ๋น„ํ•ด ์ „๋ ฅ ์†Œ๋ชจ๊ฐ€ ์ ๋‹ค

  • Shock resistance

    • ๋ฌผ๋ฆฌ์  ์ถฉ๊ฒฉ์— ๊ฐ•ํ•˜๋‹ค

  • Small size

  • Lightweight

  • ์“ฐ๊ธฐ ํšŸ์ˆ˜ ์ œ์•ฝ

    • ํŠน์ • ํšŸ์ˆ˜ ์ด์ƒ ์‚ฌ์šฉํ•˜๋ฉด ๋”์ด์ƒ ์“ฐ๊ธฐ๋ฅผ ํ•  ์ˆ˜ ์—†๋‹ค

  • ๋ฐ์ดํ„ฐ๊ฐ€ ์‹œ๊ฐ„์ด ํ๋ฆ„์— ๋”ฐ๋ผ ๋ณ€์งˆ๋  ์ˆ˜ ์žˆ๋‹ค

    • cell ์•ˆ์— ๋“ค์–ด๊ฐ€์žˆ๋Š” ์ „ํ•˜์˜ ์–‘์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š”๋ฐ, ์ „ํ•˜๊ฐ€ ์‹œ๊ฐ„์ด ํ๋ฆ„์— ๋”ฐ๋ผ cell์—์„œ ๋น ์ง€๊ฒŒ ๋œ๋‹ค

      • ๋‚˜์ค‘์—๋Š” ์ฝํžˆ์ง€ ์•Š๊ฒŒ ๋  ์ˆ˜ ์žˆ๋‹ค

Flash Memory์˜ ์‚ฌ์šฉ ํ˜•ํƒœ

  • ํœด๋Œ€ํฐ, PDA ๋“ฑ embeded system ๊ตฌ์„ฑ์šฉ

  • USB์šฉ memory stick

  • SD ์นด๋“œ

  • ๋ชจ๋ฐ”์ผ ์žฅ์น˜ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋Œ€์šฉ๋Ÿ‰ ์‹œ์Šคํ…œ์—์„œ SSD (Solid State Drive) ๋ž€ ์ด๋ฆ„์œผ๋กœ ํ•˜๋“œ๋””์Šคํฌ ๋Œ€์ฒด ์‹œ๋„

Last updated

Was this helpful?