๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Computer Science/Operating System

6 ํ”„๋กœ์„ธ์Šค ์ƒํƒœ์™€ ๊ณ„์ธต ๊ตฌ์กฐ

by Dowon Kang 2023. 12. 28.

 

ํ”„๋กœ์„ธ์Šค ์ƒํƒœ๋Š” ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์—์„œ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ์ž‘์—…์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ƒํƒœ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ƒ์„ฑ(New): ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ์•„์ง ์Šค์ผ€์ค„๋ง๋˜์ง€ ์•Š์€ ์ƒํƒœ์ž…๋‹ˆ๋‹ค.
  • ์ค€๋น„(Ready): ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ํ• ๋‹น๋ฐ›๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ์ด ์ƒํƒœ์—์„œ๋Š” ๋ชจ๋“  ํ•„์š”ํ•œ ์ž์›์„ ํ• ๋‹น๋ฐ›์•„ ์‹คํ–‰์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ์ž…๋‹ˆ๋‹ค.
  • ์‹คํ–‰(Running): CPU๋ฅผ ํ• ๋‹น๋ฐ›์•„ ์‹ค์ œ๋กœ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ด ์ƒํƒœ์— ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ํ˜„์žฌ CPU๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.
  • ๋Œ€๊ธฐ(Waiting ๋˜๋Š” Blocked): ํ”„๋กœ์„ธ์Šค๊ฐ€ ์–ด๋–ค ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค์‹œ ์ค€๋น„ ์ƒํƒœ๋กœ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค.
  • ์ข…๋ฃŒ(Terminated): ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰์„ ์™„๋ฃŒํ•˜๊ณ  ์ž์›์„ ๋ชจ๋‘ ๋ฐ˜๋‚ฉํ•œ ์ƒํƒœ์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ํ”„๋กœ์„ธ์Šค ์ƒํƒœ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ƒํƒœ ์ „์ด๋„๋ฅผ ํ†ตํ•ด ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๋Š” ์ด๋Ÿฌํ•œ ์ƒํƒœ๋“ค์„ ์ˆœํ™˜ํ•˜๋ฉด์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ํ”„๋กœ์„ธ์Šค๋Š” ์ค€๋น„ ์ƒํƒœ๋กœ ์ด๋™ํ•˜๊ณ , ์ค€๋น„ ์ƒํƒœ์—์„œ ์‹คํ–‰ ์ƒํƒœ๋กœ ์ด๋™ํ•œ ํ›„ ์ข…๋ฃŒ ์ƒํƒœ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์„ธ์Šค ์ƒํƒœ๋Š” ์šด์˜์ฒด์ œ์˜ ์Šค์ผ€์ค„๋Ÿฌ์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜๋ฉฐ, ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋”ฐ๋ผ ํ”„๋กœ์„ธ์Šค๋“ค์ด ์ ์ ˆํ•œ ์ˆœ์„œ๋กœ ์‹คํ–‰๋˜๋„๋ก ์กฐ์ ˆ๋ฉ๋‹ˆ๋‹ค.

 


 

ํ”„๋กœ์„ธ์Šค ๊ณ„์ธต ๊ตฌ์กฐ

ํ”„๋กœ์„ธ์Šค ๊ณ„์ธต ๊ตฌ์กฐ๋Š” ์šด์˜์ฒด์ œ์—์„œ ํ”„๋กœ์„ธ์Šค๋“ค ๊ฐ„์˜ ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ตฌ์กฐ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Ÿฌํ•œ ๊ด€๊ณ„๋ฅผ ํ†ตํ•ด ๊ณ„์ธต์ ์ธ ๊ตฌ์กฐ๊ฐ€ ํ˜•์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ฃผ๋กœ ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๋Š” ์ž์‹ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ž์‹ ํ”„๋กœ์„ธ์Šค๋Š” ๋˜ ๋‹ค๋ฅธ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์„ธ์Šค ๊ณ„์ธต ๊ตฌ์กฐ์˜ ์ฃผ์š” ํŠน์ง•

  1. ๋ฃจํŠธ ํ”„๋กœ์„ธ์Šค(Root Process): ์‹œ์Šคํ…œ์ด ๋ถ€ํŒ…๋  ๋•Œ ์ƒ์„ฑ๋˜๋Š” ์ตœ์ดˆ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์„ธ์Šค๋Š” ๋ชจ๋“  ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋“ค์˜ ์กฐ์ƒ์ด๋ฉฐ, ํŠธ๋ฆฌ ๊ตฌ์กฐ์—์„œ ์ตœ์ƒ์œ„์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค. (๋ฆฌ๋ˆ…์Šค์˜ ๊ฒฝ์šฐ systemd, MacOS : launchd) 
  2. ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค(Parent Process): ๋‹ค๋ฅธ ํ•˜๋‚˜ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๋Š” ์ƒ์„ฑํ•œ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋ฉฐ, ์ž์‹ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๋Š” ํ•ด๋‹น ์ž์‹์— ๋Œ€ํ•œ ์ƒํƒœ ์ •๋ณด๋ฅผ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  3. ์ž์‹ ํ”„๋กœ์„ธ์Šค(Child Process): ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ์ƒ์„ฑ๋œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ž์‹ ํ”„๋กœ์„ธ์Šค๋Š” ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค์˜ ์ž์›์„ ์ƒ์†๋ฐ›๊ฒŒ ๋˜๋ฉฐ, ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์„ธ์Šค ๊ณ„์ธต ๊ตฌ์กฐ๋Š” ๋‹ค์–‘ํ•œ ์šด์˜์ฒด์ œ์—์„œ ์ง€์›๋˜๋ฉฐ, ์ด ๊ตฌ์กฐ๋ฅผ ํ†ตํ•ด ์ž์› ๊ด€๋ฆฌ ๋ฐ ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹  ๋“ฑ์ด ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ์ด๋ฃจ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, UNIX ๋ฐ Linux ์‹œ์Šคํ…œ์—์„œ๋Š” ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ๊ณ ์œ ํ•œ ํ”„๋กœ์„ธ์Šค ID(PID)๋ฅผ ๊ฐ€์ง€๋ฉฐ, ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค์˜ PID๋ฅผ ์ €์žฅํ•˜์—ฌ ๊ณ„์ธต์ ์ธ ๊ตฌ์กฐ๋ฅผ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณ„์ธต ๊ตฌ์กฐ๋Š” ์‹œ์Šคํ…œ์˜ ์•ˆ์ „์„ฑ ๋ฐ ์ž์› ๊ด€๋ฆฌ์— ๋„์›€์„ ์ค„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์—ฌ๋Ÿฌ ์ž‘์—…์„ ์กฐ์งํ™”ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ์กฐ์ ์ธ ์ˆ˜๋‹จ์œผ๋กœ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.

 


 

ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ ๊ธฐ๋ฒ• 

ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ์€ ์šด์˜์ฒด์ œ์—์„œ ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ฃผ์š”ํ•œ ๋‘ ๊ฐ€์ง€ ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ ๊ธฐ๋ฒ•์€ fork์™€ exec์ž…๋‹ˆ๋‹ค.

fork

  • fork๋Š” ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์‹œ์Šคํ…œ ์ฝœ์ž…๋‹ˆ๋‹ค. ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • fork๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด, ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค์˜ ๋ณต์‚ฌ๋ณธ์ด ์ƒ์„ฑ๋˜์–ด ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค์™€ ๊ฑฐ์˜ ๋™์ผํ•œ ์ƒํƒœ๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค.
  • ๋ถ€๋ชจ์™€ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋Š” ๊ฐ์ž ๊ณ ์œ ํ•œ ํ”„๋กœ์„ธ์Šค ID(PID)๋ฅผ ๊ฐ–๊ณ , ํ”„๋กœ์„ธ์Šค์˜ ์ฝ”๋“œ, ๋ฐ์ดํ„ฐ, ์Šคํƒ, ํŒŒ์ผ ๋””์Šคํฌ๋ฆฝํ„ฐ ๋“ฑ์˜ ์ž์›์„ ๊ณต์œ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋ถ€๋ชจ์™€ ์ž์‹์€ ๋™์‹œ์— ์‹คํ–‰๋˜๋ฉฐ, ํ”„๋กœ์„ธ์Šค ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

exec

  • exec๋Š” ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค์˜ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค์˜ ์ด๋ฏธ์ง€๋กœ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒˆ๋กœ์šด ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋ฎ์–ด์”Œ์šฐ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
  • fork์™€ ํ•จ๊ป˜ ์ž์ฃผ ์‚ฌ์šฉ๋˜์–ด, ์ž์‹ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ƒ์„ฑ๋œ ํ›„์— exec๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ƒˆ๋กœ์šด ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • exec๋Š” ์—ฌ๋Ÿฌ ๋ณ€ํ˜•์ด ์žˆ์œผ๋ฉฐ, ๊ทธ ์ค‘ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ•จ์ˆ˜๋กœ๋Š” execl, execv, execle, execve ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ ๊ธฐ๋ฒ•์„ ์กฐํ•ฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ๋“ฑ์˜ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 


ํ”„๋กœ์„ธ์Šค ์ƒํƒœ (Process States): The various conditions a process can be in while it is running on a computer system, encompassing states such as new, ready, running, waiting, and terminated.

ํ”„๋กœ์„ธ์Šค ๊ณ„์ธต ๊ตฌ์กฐ (Process Hierarchy): A hierarchical organization in the operating system that illustrates parent-child relationships among processes, where a parent process can create and manage one or more child processes.

ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ ๊ธฐ๋ฒ• (Process Creation Techniques): Methods for initiating new processes, with fork involving the duplication of the current process to create a child process, and exec entailing the replacement of the current process's address space with that of a new program for execution.

 

'Computer Science > Operating System' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

8 CPU Scheduling  (0) 2023.12.30
7 Thread in Software  (0) 2023.12.28
5 User Space in Process (ํ”„๋กœ์„ธ์Šค ์‚ฌ์šฉ์ž ์˜์—ญ)  (0) 2023.12.23
4 Process Outline (+Kernel Space)  (1) 2023.12.23
3 Dual Mode (User & Kernel mode) + System Call  (1) 2023.12.21

๋Œ“๊ธ€