Skip to content

lye2i/OS_2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

5 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

OS_2

๊ณผ์ œ๊ฐœ์š”

SSUShell ๊ตฌํ˜„์€ Linux์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” bash ์‰˜๊ณผ ์œ ์‚ฌํ•œ SSUShell์„ ์ง์ ‘ ๊ตฌํ˜„ํ•ด๋ณด๊ณ , Linux์˜ ๋‚ด์žฅ ๋ช…๋ น์–ด ps, top์™€ ์œ ์‚ฌํ•œ ๋ช…๋ น์–ด์ธ pps, ttop๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•ด๋ณด๋ฉด์„œ Linux์˜ ๊ฐ„๋‹จํ•œ ๋‚ด์žฅ ๋ช…๋ น์–ด ๊ธฐ๋Šฅ๊ณผ ์šด์˜์ฒด์ œ์˜ ํ”„๋กœ์„ธ์Šค ์ •๋ณด๋“ค์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์„ ์ดํ•ดํ•œ๋‹ค.

SSUShell์˜ ์‹คํ–‰ ํ๋ฆ„๋„๋Š” fork๋ฅผ ํ†ตํ•ด ์ž์‹ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ž์‹ํ”„๋กœ์„ธ์Šค๋Š” exec()๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ž…๋ ฅ๋ฐ›์€ ์‚ฌ์šฉ์ž ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ์ด๋•Œ ๋ถ€๋ชจํ”„๋กœ์„ธ์Šค๋Š” wait()์„ ํ†ตํ•ด ์ž์‹ํ”„๋กœ์„ธ์Šค์˜ ์ข…๋ฃŒ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์ˆ˜๊ฑฐํ•˜๋„๋ก ํ•œ๋‹ค. SSUShell์€ โ€˜๋Œ€ํ™”์‹โ€™ ๋˜๋Š” โ€˜๋ฐฐ์น˜(์ผ๊ด„์ฒ˜๋ฆฌ)์‹โ€™์œผ๋กœ ์‹คํ–‰๋œ๋‹ค.
โ€˜๋Œ€ํ™”์‹โ€™์€ SSUShell์„ ์‹คํ–‰ํ•˜๊ณ  ์›ํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ๊ณ„์† ์ž…๋ ฅ๋ฐ›์•„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์œผ๋กœ, while๋ฌธ์„ ํ†ตํ•ด Crtl + C๋ฅผ ๋ˆ„๋ฅผ ๋•Œ๊นŒ์ง€ ๋ช…๋ น์–ด๋ฅผ ๊ณ„์† ์ž…๋ ฅ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
โ€˜๋ฐฐ์น˜์‹ ๋ชจ๋“œโ€™๋Š” ๊ตฌํ˜„ํ•œ ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด์„œ ์ธ์ž๋กœ ํŒŒ์ผ์„ ์ œ๊ณตํ•˜์—ฌ ํ•ด๋‹น ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ์ฝ์–ด ํŒŒ์ผ์— ์ž…๋ ฅ๋œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
๋”ฐ๋ผ์„œ ๋ฐฐ์น˜์‹ ๋ชจ๋“œ์—์„œ๋Š” ์ž…๋ ฅ๋ฐ›์€ ํŒŒ์ผ์ด ์กด์žฌํ•˜๋Š”์ง€๋ฅผ ๋จผ์ € ํ™•์ธํ•˜๋„๋ก ํ•˜๊ณ , fgets๋ฅผ ํ†ตํ•ด ํŒŒ์ผ์˜ ์ž…๋ ฅ๋œ ๋‚ด์šฉ๋“ค์„ ํ•œ ์ค„์”ฉ ์‹คํ–‰ํ•˜๋„๋ก ํ•œ๋‹ค.
ํ•ด๋‹น ํŒŒ์ผ์˜ ๋ชจ๋“  ๋‚ด์šฉ์„ ์ฝ์–ด์™€ ์ˆ˜ํ–‰ํ•œ ํ›„์—๋Š” ์ข…๋ฃŒํ•œ๋‹ค. ์ž…๋ ฅ๋ฐ›์€ ๋ชจ๋“  ๋ช…๋ น์–ด๋“ค์€ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํ† ํฐํ™”๋ฅผ ํ•œ๋‹ค. ํ† ํฐํ™”๋œ ๋ช…๋ น์–ด๋“ค์€ exec()๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๊ฐ„ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

SSUShell์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์€ ํŒŒ์ดํ”„๋กœ, ํŒŒ์ดํ”„๋Š” ์ž…์ถœ๋ ฅ ํŒŒ์ผ๋””์Šคํฌ๋ฆฝํ„ฐ๋ฅผ ์ œ์–ดํ•˜๋ฉด์„œ ํŒŒ์ดํ”„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ช…๋ น์–ด๋“ค์„ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.
pipe()๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ๋œ ํŒŒ์ผ๋””์Šคํฌ๋ฆฝํ„ฐ๋“ค์„ forkํ•˜์—ฌ ์ƒ์„ฑ๋œ ์ž์‹ํ”„๋กœ์„ธ์Šค๋“ค์—๊ฒŒ์„œ dup2๋ฅผ ์ด์šฉํ•˜์—ฌ ์ž…์ถœ๋ ฅ ํŒŒ์ผ๋””์Šคํฌ๋ฆฝํ„ฐ๋“ค์„ ์—ฐ๊ฒฐํ•œ ๋’ค, execv()๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๋ช…๋ น์–ด๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.
๋ช…๋ น์–ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ„์† fork๋กœ ์ž์‹ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•˜๋‹ค๋ณด๋‹ˆ ๋ถ€๋ชจํ”„๋กœ์„ธ์Šค๋Š” ์ž์‹ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋˜์—ˆ๋Š”์ง€, ์ข€๋น„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—†๋Š”์ง€๋„ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.
ttop์™€ pps๋Š” ๋‚ด์žฅ๋ช…๋ น์–ด์ธ top์™€ ps์˜ ๊ธฐ๋Šฅ๊ณผ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ๋“ค์„ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ํ”„๋กœ์„ธ์Šค์˜ pid, cpu์‚ฌ์šฉ๋Ÿ‰, ๋ฉ”๋ชจ๋ฆฌ์‚ฌ์šฉ๋Ÿ‰ ๋“ฑ์˜ ์ •๋ณด๋“ค์„ ํ•œ๋ˆˆ์— ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค.
๋˜ํ•œ ์˜ต์…˜์„ ํ†ตํ•ด์„œ ์ถœ๋ ฅ๋˜๋Š” ์ •๋ณด๋“ค๋„ ๋‹ฌ๋ผ์ง„๋‹ค.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors