• Home
  • About
    • PI photo

      PI

      Beginner's Blog

    • Learn More
    • Github
  • Posts
    • All Posts
    • All Tags
    • All Categories
  • Projects

[OS] Process API

๐Ÿ“† Created: 2025.04.22 Tue

Reading time ~1 minute

๋ชฉ์ฐจ

Process API

ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑยท์ข…๋ฃŒ API

  • fork(): ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค์—๋Š” ์ž์‹ PID(>0), ์ž์‹ ํ”„๋กœ์„ธ์Šค์—๋Š” 0์„ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ์‹คํŒจ ์‹œ โ€“1 ๋ฐ˜ํ™˜ ๋ฐ errno ์„ค์ •
  • exec*() ๊ณ„์—ด: execvp(), execl(), execle() ๋“ฑ์œผ๋กœ ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์™„์ „ํžˆ ์ƒˆ๋กœ์šด ํ”„๋กœ๊ทธ๋žจ ์ด๋ฏธ์ง€๋กœ ๋ฎ์–ด์”€. ์—ด๋ ค ์žˆ๋Š” ํŒŒ์ผ ๋””์Šคํฌ๋ฆฝํ„ฐ์™€ PID๋Š” ๊ทธ๋Œ€๋กœ ์œ ์ง€๋จ
  • wait() / waitpid(): ๋ถ€๋ชจ๊ฐ€ ์ž์‹ ํ”„๋กœ์„ธ์Šค์˜ ์ข…๋ฃŒ๋ฅผ ๋Œ€๊ธฐํ•˜๋ฉฐ, ๋ฐ˜ํ™˜๊ฐ’์œผ๋กœ ์ข…๋ฃŒ๋œ ์ž์‹์˜ PID๋ฅผ ๋ฐ›๊ณ , WIFEXITED, WEXITSTATUS ๋งคํฌ๋กœ๋กœ ์ข…๋ฃŒ ์ฝ”๋“œ๋ฅผ ํ•ด์„

์‹œ๊ทธ๋„(signal) API

  • kill(pid, sig): ํŠน์ • ํ”„๋กœ์„ธ์Šค๋‚˜ ํ”„๋กœ์„ธ์Šค ๊ทธ๋ฃน์— ์‹œ๊ทธ๋„ ์ „์†ก (์˜ˆ: SIGINT, SIGTSTP). ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋Š” ๋™์ผ UID ํ”„๋กœ์„ธ์Šค์—๋งŒ, root๋Š” ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์— ์‹œ๊ทธ๋„ ์†ก์‹  ๊ฐ€๋Šฅ
  • signal(sig, handler): ์‚ฌ์šฉ์ž ์ •์˜ ์‹œ๊ทธ๋„ ํ•ธ๋“ค๋Ÿฌ ๋“ฑ๋ก. ๋น„๋™๊ธฐ ์ด๋ฒคํŠธ(ํƒ€์ด๋จธ, I/O ์™„๋ฃŒ ๋“ฑ)๋ฅผ ํ”„๋กœ์„ธ์Šค์— ์ „๋‹ฌ

๊ถŒํ•œ๊ณผ ๊ฒฉ๋ฆฌ

UID ๊ธฐ๋ฐ˜ ๊ถŒํ•œ ๊ฒ€์‚ฌ๋กœ, ์‚ฌ์šฉ์ž๋Š” ์ž์‹ ์˜ ํ”„๋กœ์„ธ์Šค๋งŒ ์ œ์–ด
์Šˆํผ์œ ์ €(root)๋งŒ์ด ์‹œ์Šคํ…œ ์ „์ฒด์˜ ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ ๋ฐ ์‹œ๊ทธ๋„ ์†ก์‹  ๊ถŒํ•œ์„ ๊ฐ€์ง

์œ ์šฉํ•œ ์‹œ์Šคํ…œ ๋ชจ๋‹ˆํ„ฐ๋ง ๋„๊ตฌ

  • ps / top: ํ”„๋กœ์„ธ์Šค ์ƒํƒœยท์ž์› ์‚ฌ์šฉ๋Ÿ‰ ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง
  • killall: ํ”„๋กœ์„ธ์Šค ์ด๋ฆ„ ๊ธฐ์ค€ ์ผ๊ด„ ์‹œ๊ทธ๋„ ์ „์†ก

macOS ๋“ฑ์—์„œ MenuMeters ๊ฐ™์€ GUI ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ™œ์šฉ ๊ฐ€๋Šฅ

์š”์•ฝ

PID (Process ID): ๊ฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๊ณ ์œ  ๋ฒˆํ˜ธ

ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ API: fork(), exec(), wait()

  • fork(): ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค์˜ ๊ฑฐ์˜ ์™„์ „ํ•œ ๋ณต์‚ฌ๋ณธ์ธ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑ
  • exec(): ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค ์ด๋ฏธ์ง€๋ฅผ ์ƒˆ๋กœ์šด ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋ฎ์–ด์“ฐ๊ธฐ
  • wait(): ๋ถ€๋ชจ๊ฐ€ ์ž์‹์˜ ์ข…๋ฃŒ๋ฅผ ๋Œ€๊ธฐ

ํ”„๋กœ์„ธ์Šค ์ œ์–ด: ์‹œ๊ทธ๋„(kill(), signal())์„ ์ด์šฉํ•ด ์ค‘๋‹จ, ์ผ์‹œ ์ค‘๋‹จ, ์ข…๋ฃŒ ๊ฐ€๋Šฅ

  • ์‹œ๊ทธ๋„: ํ”„๋กœ์„ธ์Šค ์ œ์–ด(์ค‘๋‹จยท์žฌ๊ฐœยท์ข…๋ฃŒ ๋“ฑ)๋ฅผ ์œ„ํ•ด OS๊ฐ€ ๋ณด๋‚ด๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ

์‚ฌ์šฉ์ž ๊ฒฉ๋ฆฌ: ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋Š” ์ž์‹ ์˜ ํ”„๋กœ์„ธ์Šค๋งŒ ์ œ์–ดํ•˜๊ณ , root๋Š” ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌ

  • superuser(root): ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์™€ ์‹œ์Šคํ…œ ์ž์›์— ๋Œ€ํ•œ ๋ฌด์ œํ•œ ๊ถŒํ•œ ์‚ฌ์šฉ์ž


OSTIL Share Tweet +1
/#disqus_thread