Linux Process Life Cycle


แแฒ แแฎโแแฑแทแแพแฌแแแบแธ Linux แแฒแทแแแบแแแบแแฒแท under the hood แแฒแ process โแแฝแฑแกแแฏแแบแแฏแแบแแฏแถแแญแฏ แแแบแแแบโแแผแฑแฌแแฝแฌแธแแซแแแบแ แแฎแแญแฏแทแ แบแแพแฌโแแฑแฌแท Process แแ แบแแฏแแฒแท แ แแแบ create แแฏแแบแแญแฏแแบแแฒแทแกแแปแญแแบแแ แแผแฎแธ แกแแแบแทแแแบแทแแผแแบแแแบแธแแแฒแท different states โแแฝแฑแ แแฎ process โแแฝแฑแกแแปแแบแธแแปแแบแธ communicate แแแบแแญแฏแแฏแแบแแฒ แแญแฏแแฌโแแฝแฑ แแแบแทโแแผแฑแฌแแผแ แบแแซแแแบแ
๐ซ๐๐๐๐๐๐๐๐ ๐๐๐๐๐๐ ๐๐ ๐ ๐๐๐๐๐๐๐
แแปแฝแแบโแแฑแฌแบแแญแฏแทโแแฝแฑแแฌ system โแแ แบแแฏแแญแฏ แ power on แแญแฏแแบแแผแฎแแญแฏแแฌแแฒแท OS แโแแฑแแฐแท แกแแญแฏแกโแแปแพแฑแฌแแบ start แแฏแแบแแฝแฌแธแแฒแท process โแแฝแฑแแพแญแแแญแฏ user แ run แแปแแบแแญแฏแท แแแบแแฝแแบแแปแแบแแพแญแแพแญ แ run แแญแฏแแบแแฒแท process โแแฝแฑแแแบแธแแพแญแแซแแแบแ แแญแฏแทโแแฑแฌแบ แแแบแแญแฏแแแบแแผแ แบแแผแ แบ process แแ แบแแฏ แ แแผแฎแแญแฏแแฌแแฒแท แแฎ process โแแฝแฑแแแฐแแญแฏแทแแฒแท life cycle แแพแฌแแแฐแแฎแแฒแท different states โแแฝแฑแแญแฏแแผแแบแแแบแธแแแซแแแบแ แแฎ states โแแฝแฑแแญแฏแแผแแบแแฌโแกแฑแฌแแบ โแกแฑแฌแแบแแแฏแถโแแฑแธแแฒแท แแฝแฒแแผแแบแทโแแฑแธแแซแ แ แฌโแแฑแธแแฐแแญแฏแทแแฌ Linux system แแ แบแแฏแแญแฏ แ แแผแฎแธ boot แแแบแแญแฏแแบแแผแฎแแญแฏแแฌแแฒแท init process แแญแฏแแฒแท process แแ แบแแฏแแญแฏ machine แแ run แแญแฏแแบแแซแแแบแ แแแฏโแแฑแฌแแบแแญแฏแแบแธ modern system โแแฝแฑแแพแฌโแแฑแฌแท init แกแ แฌแธ systemd แแญแฏโแแผแฑแฌแแบแธแแฒ แกแแฏแถแธแแผแฏแแฌแแฌโแแผแ แบแแซแแแบแ แแซโแแฑแแแบแท แแฐแแญแฏแท แแแฏแแฏแถแธแแฒแทแแฐแแฎแแฌแโแแฑแฌแท vmlinuz แแญแฏแแฒแท Linux kernel executable แแญแฏ memory โแแฑแซแบแแฝแฒแแแบแแญแฏแแบแแฌแโแแฑ Linux kernel แ create แแฏแแบแแญแฏแแบแแฒแท mother process แแญแฏแทโแแผแฑแฌแแญแฏแทแแแฌแแฒแแผแ แบแแซแแแบแ แกแฒแทโแแฑแฌแท แแฎ init process แแพแฌโแแฑแฌแท parent process แแแบแแญแฏแทแแแพแญโแแฑแฌแทแแซแแฐแธแ แแฐแโแแฑแแพแแ แบแแแบแท แแฎ system แแฒแแพแฌแแพแญแแฒแท process โแแฝแฑโแแฝแฑแธแแฝแฌแธแแฌแแพแฌแแผแ แบแแซแแแบแ Linux boot process step by step แแแบแแญแฏ แกแแฏแแบแแฏแแบแแฒแแญแฏแแฌแแญแฏโแแฑแฌแท โแแฑแฌแแบแแพ post แแ แบแแฏแแฒแทแแแบแแแบ sharing แแแบแแฏแแบแแซแฅแฎแธแแแบแ แแฒ แแผแแบแแแบแแญแฏแแบแแผแโแกแฑแฌแแบ.. แกแฒแทโแแฑแฌแท แแฎ init process โแแฑแแแพแแปแฝแแบโแแฑแฌแบแแญแฏแท แแญแฏแแ แบโแแฑแทแแแญแแฒแทแแฒแท fork() function แแญแฏแกแแฏแถแธแแผแฏแแผแฎแธ child process โแแฝแฑแแแบแแแบโแแฑแซแบโแแฑแซแแบแแฌแแฌแแผแ แบแแซแแแบแ แกแฒแทโแแฑแฌแทแ แฌโแแฑแธแแฐแแญแฏแทแ ps command แแฒแท running process โแแฝแฑแแญแฏแแผแแบแทแแผแแบแทแแแบแแญแฏแแแบ แ แฌโแแฑแธแแฐแแญแฏแท run แแญแฏแแบแแฒแท commands โแแฝแฑแ (แกโแแฑแซแบแ ps command แกแแซแกแแแบ) shell แแฒแท child process แกโแแฑแแฒแทแแพแญโแแฑแแฌ โแแฝแฑแทแแผแแบแแแพแฌแแซแ แแฎแแญแฏแแฒ แแปแฝแแบโแแฑแฌแบแแญแฏแทแแผแแบแแแแบแท GUI โแแฝแฑแแแแบแธ แกโแแฑแซแบแแพแฌโแแผแฑแฌแแฒแทแแฒแท init process แแฒแท child process โแแฝแฑแกโแแฑแแฒแทแแแบแแพแญโแแฑแแฌแแซแ Process แแ แบแแฏ แ แแแบแแผแ แบโแแฑแซแบแแฌแแฒแท แกแแปแญแแบแแ แแญแฏแท แแฐแทแแฒแท task แแผแฎแธแแฏแถแธแแฝแฌแธแแฒแทแกแแปแญแแบแแญ แแผแแบโแแปแฑแฌแบแแแฒแท แกแแแบแท แแแแบแทแแญแฏ แแ แบแแฏแแปแแบแธแแฎโแแผแฑแฌแแฝแฌแธแแซแแแบแ
1. ๐น๐๐๐ ๐ / ๐น๐๐๐๐๐๐
แแฎ state แแพแฌโแแฑแฌแท process โแแฝแฑแแฌแแแบแแพแญ CPU โแแฑแซแบแแพแฌ processing time แแฐโแแฑแแผแฎแธ execute แแฏแแบโแแฑแแฌแแผแ แบแแญแฏแแบแแแญแฏ run แแญแฏแท ready แแผแ แบโแแฑแแผแฎแธ scheduler แ assign แแปแโแแฑแธโแแฑแธแแญแฏแท โแ แฑแฌแแบแทโแแฑแแแฒแท process โแแฝแฑแแแบแธแแผแ แบแแญแฏแแบแแซแแแบแ
2. ๐พ๐๐๐๐๐๐ / ๐บ๐๐๐๐๐๐๐
แแฎ state แแพแฌโแแฑแฌแท process แแ แบแแฏแแฌ run โแแฑแแแบแธ event แแ แบแแฏแแฏแแญแฏโแ แฑแฌแแบแทโแแฑแแฌแแปแญแฏแธแ แฅแแแฌแกแฌแธแแผแแบแท hard disk โแแฑแซแบแแพแฌแแพแญแแฒแท file แแ แบแแฏแแญแฏแแแบแแญแฏแทแแญแฏแแแบแแญแฏแแแบ I/O wait time แแพแญแแฒแทแกแแฝแแบโโแแผแฑแฌแแบแท run โแแฑแแฒแท state แโแแฑ แแฎ process แแฌ sleeping state แแญแฏโแแผแฑแฌแแบแธแแถแแญแฏแแบแแแซแแแบแ โแแฑแฌแแบแแฐแแญแฏแกแแบแแฒแท I/O แแฏแแบแแผแฎแธแแผแฎแแญแฏแแแบโแแฑแฌแท แแฎ process แแฌแแ แบแแแบแแผแแบแแผแฎแธ running แแฏแแบแแญแฏแทแกแแฝแแบ queue แแฒแแพแฌ ready state แกโแแฑแแฒแท แแผแแบโแ แฑแฌแแบแทแแแพแฌแแฒ แแผแ แบแแซแแแบแ แกแฒแทโแแฑแฌแทแแพ scheduler แกโแแฑแแฒแท แแฎ process แแญแฏ cpu run time แแผแแบแแแบแแพแแบโแแฑแธแแญแฏแท แแฏแแบโแแฑแฌแแบแแพแฌแแผแ แบแแซแแแบแ
3. ๐ป๐๐๐๐๐๐๐๐๐ / ๐บ๐๐๐๐๐๐
แแฎ state แโแแฑแฌแท Process แแ แบแแฏแ แแฐแทแแฒแท run แแแฒแท แแแบแแฝแแบแแปแแบแแผแฎแธโโแแผแฑแฌแแบแแฝแฌแธแแญแฏแท exit() function แแฒแทแแฝแแบแแฝแฌแธแแฌ แแผแ แบแแญแฏแแบแแแญแฏแ แแ แบแแผแฌแธ process แโโแแฑ signal แแ แบแแฏแแฏแแฒแท interupt แแฏแแบแแญแฏแท stopped แแผแ แบแแฝแฌแธแแฌแแแบแธแแผแ แบแแญแฏแแบแแซแแแบแ แแฎ state แแพแฌแแญแฏแแแบโแแฑแฌแท process table แแฒแโแแฑแแซ แแฝแแบแแฝแฌแธแแพแฌแแฒ แแผแ แบแแซแแแบแ Signals โแแฝแฑแแฒแทแแแบแแแบแแผแฎแธโแแฑแฌแทแแแบแธ โแแฑแฌแแบแแพแกโแแฑแธแ แญแแบโแแฑแธแแซแแแบแ โแแฑแฌโแแฑแฌแแแบโแแฑแฌแท SIGTERM or SIGSTOP แแญแฏแแปแญแฏแธ signals โแแฝแฑแแฌ process โแแฝแฑแแญแฏ Stopped แแปแแบแแแบ แกแแฏแถแธแแผแฏแแญแฏแทแแแแบโแแฑแฌแแบแแฌ แแญแแฌแธแแแบแแแซแแผแฎแ
4. ๐๐๐๐๐๐ ๐บ๐๐๐๐
Zombie state แแญแฏแแฌแโแแฑแฌแท process แแ แบแแฏแแฌ stopped แแผแ แบแแผแฎแธโแแฑแฌแแบแแญแฏแแบแธ แแฐแทแแฒแท parent process แ exit status แแญแฏ collect แแฏแแบแแผแฎแธ process table แโแแฑ แแแแบแแพแฌแธโแแฑแธแแแบแแพแฌ แแฎ child process แแฌ zombie state แแพแฌแแพแญโแแฑแแพแฌแแฒแแผแ แบแแซแแแบแ
๐๐ง๐ญ๐๐ซ-๐ฉ๐ซ๐จ๐๐๐ฌ๐ฌ ๐๐จ๐ฆ๐ฆ๐ฎ๐ง๐ข๐๐๐ญ๐ข๐จ๐ง
แแฎแกแแญแฏแแบแธแแพแฌโแแฑแฌแท แ แฌโแแฑแธแแฐแแญแฏแท system แแฒแแพแฌแแพแญแแฒแท process โแแฝแฑแแฌ แกแแปแแบแธแแปแแบแธ communicate แแแบแแญแฏแแฏแแบแแผแแฒแ แแผแฎแธโแแฑแฌแท parent process โแแฝแฑแโแแฑแฌ แแฐแทแแฒแท แแแบแแญแฏแแบแแฒแท child process โแแฝแฑแแญแฏแแแบแแญแฏ manage แแฏแแบแแฒแแญแฏแแฌโแแฝแฑแแฒแทแแแบแแแบแแฌแแญแฏโแแผแฑแฌแแฝแฌแธแแซแแแบแ แแปแฝแแบโแแฑแฌแบแแญแฏแท inter-process communication แแฏแแบแแฒแทโแแฑแแฌแแพแฌ oldest way แโแแฑแฌแท signal แแญแฏแทแแฒแทแแแบแธแแแบแธแแฒแแผแ แบแแซแแแบแ แแปแฝแแบโแแฑแฌแบแแญแฏแท แกโแแฑแซแบแแพแฌ โแแผแฑแฌแแฒแทแแฒแท signals โแแฝแฑแแญแฏ user แโแแฑ kill or pkill command แแฒแทแแผแ แบโแ แฑ process โแแฝแฑแกแแปแแบแธแแปแแบแธ แแแผแ แบโแ แฑแแญแฏแทแแญแฏแแบแแซแแแบแ แแฎ signals โแแฝแฑแแญแฏแแแบแแถแแแพแญแแฒแทแกแแปแญแแบแแพแฌ แแฎ process or running program โแแฝแฑแแแฐแแญแฏแทแแฎ signal แแญแฏ แแฌแแฏแแบแแแแฒแแญแฏแแฒแท Default action แแญแฏแแผแฏแแฏแแบแแฝแฌแธแแซแแแบแ แแซแแพแแแฏแแบแแปแฝแแบโแแฑแฌแบแแญแฏแทแ แแฎ signal แแญแฏแแแแบ แแฌแแฏแแบแแซแแญแฏแแฒแท handler แแแบแทแแฌแธแแญแฏแทแแแบแธแแแซแแแบแ แแซแแพแแแฏแแบ แแฎ signal แแฌแแแบแธแแฌแแพแแแฏแแบแแฐแธแแญแฏแแผแฎแธ ignore แแฏแแบแแฌแธแแญแฏแทแแแบแธแแแซแแแบแ แแซโแแฑแแแบแทแกแฒแทแแญแฏ ignore แแฏแแบแแฌแธแแญแฏแทแแแแฒแท signals โแแฝแฑแแแบแธแแพแญแแซแแแบแ แฅแแแฌแกแฌแธแแผแแบแท SIGSTOP แแฒแท SIGKILL แแญแฏแแญแฏแแแบ ignore แแฏแแบแแญแฏแทแแแแซแแฐแธแ SIGKILL แแญแฏแทแแถแแแฒแท process แแ แบแแฏแแฌ force kill แแฏแแบแแถแแญแฏแแถแแแซแแแบแ แกแฒแทแแญแฏโแแผแฑแฌแแปแแบแแฌแแซแ แแ แบแแผแฌแธ Inter-Process Communication แแพแฌแแฏแถแธแแฒแท แแแบแธแแแบแธ แแแฏแกโแแผแฑแฌแแบแธแแแบโแแผแฑแฌแแฝแฌแธแแซแแแบแ
1. ๐บ๐๐๐๐๐ ๐๐๐๐๐๐
แแแ แแแบแธแแแบแธแแ แบแแฏแโแแฑแฌแท different process แแแฏแ แแฐแแญแฏแทแกแแปแแบแธแแปแแบแธ communicate แแฏแแบแแผแฎแธ process แแ แบแแฏแแฒแท action โแแฝแฑแ information โแแฝแฑแแญแฏแแ แบแแผแฌแธ process แแแญโแกแฑแฌแแบ memory segment แแญแฏ แ แฏแแฏแถแธแแฒแท แแฏแถแ แถแแฒแท แแผแฏแแฏแแบแแญแฏแทแแแซแแแบแ แโแแฑแฌแโแแฑแฌแท process A แแฒแท process Bแแญแฏแทแแฒแแฌแธแแซโแแฑแฌแทแ process A แแแฐแแฏแแบแแฒแทแแฒแท information โแแฝแฑแ แแฐแแฏแถแธแแฒแทแแฒแท computation โแแฝแฑแแญแฏ memory segment แแ แบแแฏแแฒแแพแฌ buffer แกโแแฑแแฒแทแแญแแบแธแแฒแทแแซแแแบแ process B แ แแฎ information โแแฝแฑแแญแฏแกแแฏแถแธแแผแฏแแผแฎแธ task แแ แบแแฏแแฏแแผแฏแแฏแแบแแญแฏแทแแญแฏแกแแบแแฌแแฒแทแกแแซ แแฎ shared แแฏแแบแแฌแธแแฒแท memory segment แแฒแแแฝแฌแธแแฐแแผแฎแธแแฏแถแธแแฒแทแแฏแถแ แถแแญแฏโแแผแฑแฌแแฌแแซแ
2. ๐ด๐๐๐๐๐๐ ๐ท๐๐๐๐๐๐
แแฏแแญแแแแบแธแแแบแธแโแแฑแฌแท process แกแแปแแบแธแแปแแบแธแแผแฌแธแแพแฌ โแแฑแธแแญแฏแทแแปแแบแแฒแท specific information โแแฝแฑแแญแฏ message แแ แบแแฏแกโแแฑแแฒแท header, body แแฝแฒแแผแฎแธ communication link แแ แบแแฏแโแแฑ แกแแผแแบแกแแพแแบ แแแบแแฝแแบแแฒแทแแฏแถแ แถแแซแ Communication link โแแฑแแฌแแพแฌ direct communication แแฒแท indirect communication แแญแฏแท แแแปแญแฏแธแแแบแแฝแฒแแผแฎแธ direct communication แแญแฏแแฌแโแแฑแฌแท sender แ message แแญแฏแทแแฒแทแกแแปแญแแบแแพแฌ แแแบ receiver แแฎแแญแฏแแญแฏแทแแแบแแญแฏแแฌแแญแฏ แแฏแถโแแฑแแแบแแพแแบโแแฑแธแแญแฏแแบแแฌแแญแฏโแแผแฑแฌแแปแแบแแฌแแซแ Indirect communication แแพแฌโแแฑแฌแท process โแแฝแฑแแฌ แกแแปแแบแธแแปแแบแธ message share แแญแฏแแบแแญแฏแทแกแแฝแแบ mailbox แแ แบแแฏแแญแฏ share แแฏแถแธแแแแบแทแแฏแถแแญแฏโแแผแฑแฌแแปแแบแแฌแแซแ mailbox แแญแฏแแฌแแญแฏ port แแ แบแแฏแกโแแฑแแฒแทแแผแแบแแผแแบแทแแญแฏแแบแแซแแแบแ แแฎโแแฑแแฌแแพแฌโแแฑแฌแท one to one communication แแแฏแแบแแฒ multiple senders แโแแฑ receiver แแ แบโแแฑแฌแแบแแฎแแญแฏ message โแแฑแธแแญแฏแทแแฌแแแบแธแแผแ แบแแญแฏแแบแแซแแแบแ แแฎ share แแฏแแบแแฌแธแแฒแท mailbox แแญแฏโแแฑแฌแท receiver process แแแบแ create แแฏแแบแแฌแแผแ แบแแผแฎแธ receiver process terminate แแฏแแบแแฝแฌแธแแปแญแแบแแพแฌ แแ แบแแซแแฒ destroy แแฏแแบแแฒแทแแญแฏแทแแแซแแแบแ แแฒโแแผแฑแฌแแฌโแแฝแฑแแแบแธแแปแฌแธแแฝแฌแธแแผแฎแแแบแแซแแแบแ แแฎโแแฑแทแแพแฌโแแฑแฌแท แแฎโแแฑแฌแแบแแฒแทแแฒแแแบแแผแฎแธ โแแฑแฌแแบแแ แบโแแฑแทแแพแฌโโแแฑแฌแท แแปแฝแแบโแแฑแฌแบแแญแฏแท CPU context switching แแญแฏแแฒแทโแแฑแซแแบแธแ แฅแบแแฒแท แ แแผแฎแธ 1 core แแฒแแซแแฒแท CPU แแ แบแแฏแ multiple processes โแแฝแฑแแญแฏแแแบแแญแฏ handle แแฏแแบแแฒแแญแฏแแฌ แแแบแแถโแแผแฑแฌแแฝแฌแธแแซแแแบแ
Subscribe to my newsletter
Read articles from Hein Htet Win directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Hein Htet Win
Hein Htet Win
I am a DevOps Engineer from Yangon, Myanmar. I fell in love with automation and CI/CD. I also enjoy using open-source software and regularly contribute to and participate on webinars. In my spare time, I enjoy playing games with my friends in addition to my job.