09982292579
info@mehraeen.ac.ir
فارسی پرچم
فارسی
یک زبان را انتخاب کنید
فارسی پرچم
فارسی
0
دسته ها
خانه تقویم‌آموزشی مدرس وبلاگ چارت‌‌دروس تماس‌با‌ما درباره‌ما انجمن‌ها
کارگاه سیستم عامل

جلسه 8 مدیریت پراسس ها و انواع پراسس ها در لینوکس،

خلاصه نکات کلیدی تیتر: مروری بر مفاهیم و دستورات مهم شرح: فرآیند، نمونه اجرایی یک برنامه است که دارای PID و PPID می‌باشد. فرآیندها به Foreground و Background تقسیم می‌شوند. فرآیندهای Orphan و Zombie وضعیت‌های خاصی هستند که باید شناسایی شوند. ps برای مشاهده جزئیات فرآیندها با آپشن‌های مختلف (مانند aux, -ef) به کار می‌رود. pgrep برای یافتن سریع PID فرآیندها بر اساس نام یا الگوی خط فرمان استفاده می‌شود. kill برای ارسال سیگنال به فرآیندها جهت کنترل یا خاتمه آن‌ها به کار می‌رود. SIGTERM (9) سیگنال خاتمه مودبانه و SIGKILL (9) سیگنال خاتمه اجباری است. pkill راهی سریع برای یافتن و ارسال سیگنال به فرآیندها به صورت همزمان است.

مقدمه: فرآیند چیست؟


  • تیتر: تعریف فرآیند و اهمیت آن

  • شرح:

  • فرآیند (Process) چیست؟ (نمونه در حال اجرای یک برنامه)

  • تفاوت فرآیند و برنامه (Program)

  • چرا مدیریت فرآیندها مهم است؟ (بهینه‌سازی منابع، رفع اشکال، امنیت)

  • مفاهیم پایه: PID (Process ID)، PPID (Parent Process ID)


۲. انواع فرآیندها در لینوکس



  • تیتر: طبقه‌بندی فرآیندها




  • شرح:




  • فرآیندهای Foreground (پیش‌زمینه): فرآیندهایی که مستقیماً با کاربر در تعامل هستند و خروجی خود را در ترمینال نمایش می‌دهند.




  • فرآیندهای Background (پس‌زمینه): فرآیندهایی که در پس‌زمینه اجرا می‌شوند و منابع سیستم را مصرف می‌کنند بدون اینکه مستقیماً با کاربر در تعامل باشند. (نحوه اجرای دستورات در پس‌زمینه با &)




  • فرآیندهای Orphan (یتیم): فرآیندهایی که والد آن‌ها (Parent Process) خاتمه یافته است. این فرآیندها توسط فرآیند init (یا systemd در سیستم‌های جدیدتر با PID 1) به سرپرستی گرفته می‌شوند.




  • فرآیندهای Zombie (زامبی): فرآیندهایی که اجرا شده‌اند، اما والد آن‌ها هنوز وضعیت خروجشان را نخوانده است. این فرآیندها فضای کمی از حافظه را اشغال می‌کنند اما شناسه فرآیند (PID) آن‌ها همچنان در جدول فرآیندها باقی می‌ماند.




  • مثال:




  • اجرای یک دستور طولانی مانند sleep 60 بدون & (Foreground)




  • اجرای همان دستور با sleep 60 & (Background)




  • نشان دادن فرآیند init با PID 1.




۳. مشاهده فرآیندها با دستور ps



  • تیتر: بررسی وضعیت فرآیندها




  • شرح:




  • دستور ps چیست و چه اطلاعاتی نمایش می‌دهد؟




  • آپشن‌های پرکاربرد ps:




  • ps aux: نمایش تمام فرآیندهای در حال اجرا در سیستم، همراه با جزئیات کامل (شامل کاربران، CPU، حافظه و …)




  • ps -ef: نمایش تمام فرآیندها در یک فرمت استاندارد POSIX.




  • ps -u <username>: نمایش فرآیندهای یک کاربر خاص.




  • ps -p <PID>: نمایش جزئیات یک فرآیند خاص با شناسه آن.




  • تفسیر ستون‌های خروجی ps (USER, PID, %CPU, %MEM, VSZ, RSS, TTY, STAT, START, TIME, COMMAND)




  • معنی وضعیت‌های فرآیند (STAT): R (Running), S (Sleeping), D (Disk Sleep), Z (Zombie), T (Stopped), X (Dead).




  • مثال:




  • اجرای ps aux | head برای دیدن چند فرآیند اول.




  • اجرای ps -ef | grep sshd برای پیدا کردن فرآیندهای مرتبط با sshd.




  • اجرای ps -p 1 برای دیدن فرآیند init.




۴. جستجوی فرآیندها با دستور pgrep



  • تیتر: یافتن سریع فرآیندها بر اساس نام یا ویژگی‌ها




  • شرح:




  • دستور pgrep چیست و چه زمانی استفاده می‌شود؟ (جایگزینی ساده‌تر برای ps | grep)




  • نحوه جستجو بر اساس نام فرآیند: pgrep <process_name>




  • آپشن‌های پرکاربرد pgrep:




  • -l: نمایش نام فرآیند همراه با PID.




  • -u <username>: جستجو در بین فرآیندهای یک کاربر خاص.




  • -f: جستجو در کل خط فرمان (Command Line) فرآیند، نه فقط نام آن.




  • -x: تطابق دقیق نام فرآیند.




  • مثال:




  • pgrep bash (یا pgrep -l bash)




  • pgrep -u root systemd




  • pgrep -f "python my_script.py"




۵. خاتمه دادن به فرآیندها با دستور kill



  • تیتر: کنترل و توقف فرآیندها




  • شرح:




  • دستور kill چیست و چگونه کار می‌کند؟ (ارسال سیگنال به فرآیندها)




  • مفهوم سیگنال‌ها در لینوکس (Signals)




  • سیگنال‌های رایج:




  • SIGTERM (15): سیگنال پیش‌فرض، درخواست خاتمه مودبانه (به فرآیند فرصت ذخیره اطلاعات و بستن امن را می‌دهد).




  • SIGKILL (9): سیگنال خاتمه اجباری (فرآیند بلافاصله و بدون فرصت ذخیره خاتمه می‌یابد).




  • SIGHUP (1): معمولاً برای بارگذاری مجدد پیکربندی سرویس‌ها استفاده می‌شود.




  • نحوه استفاده از kill:




  • kill <PID> (ارسال SIGTERM به صورت پیش‌فرض)




  • kill -9 <PID> (ارسال SIGKILL)




  • kill -l (نمایش لیست تمام سیگنال‌ها)




  • kill -<signal_number> <PID>




  • دستور pkill: مشابه pgrep که فرآیندها را پیدا کرده و سپس سیگنال ارسال می‌کند (مثلاً pkill -9 nginx).




  • مثال:




  • اجرای یک دستور در پس‌زمینه (مثلاً sleep 300 &).




  • پیدا کردن PID آن با pgrep sleep.




  • خاتمه دادن به آن با kill <PID>.




  • اگر پاسخ نداد، با kill -9 <PID> اجبار به خاتمه.




  • مثال pkill -f "my_process_name"




۶. خلاصه نکات کلیدی


  • تیتر: مروری بر مفاهیم و دستورات مهم

  • شرح:

  • فرآیند، نمونه اجرایی یک برنامه است که دارای PID و PPID می‌باشد.

  • فرآیندها به Foreground و Background تقسیم می‌شوند.

  • فرآیندهای Orphan و Zombie وضعیت‌های خاصی هستند که باید شناسایی شوند.

  • ps برای مشاهده جزئیات فرآیندها با آپشن‌های مختلف (مانند aux, -ef) به کار می‌رود.

  • pgrep برای یافتن سریع PID فرآیندها بر اساس نام یا الگوی خط فرمان استفاده می‌شود.

  • kill برای ارسال سیگنال به فرآیندها جهت کنترل یا خاتمه آن‌ها به کار می‌رود.

  • SIGTERM (9) سیگنال خاتمه مودبانه و SIGKILL (9) سیگنال خاتمه اجباری است.

  • pkill راهی سریع برای یافتن و ارسال سیگنال به فرآیندها به صورت همزمان است.


۷. تمرین‌های پایان فصل


  • تیتر: ارزیابی آموخته‌ها

  • شرح:






















  1. یک دستور ساده مانند while true; do echo "Hello"; sleep 1; done را در پس‌زمینه اجرا کنید.

  2. با استفاده از ps و grep (یا pgrep)، PID این فرآیند را پیدا کنید.

  3. ابتدا سعی کنید فرآیند را با سیگنال SIGTERM خاتمه دهید. آیا موفق شدید؟

  4. اگر فرآیند هنوز در حال اجراست، آن را با سیگنال SIGKILL خاتمه دهید.

  5. فرآیندهایی که متعلق به کاربر root هستند اما نامشان شامل d است را لیست کنید.

  6. دستور htop (در صورت نصب بودن) را اجرا کنید. این ابزار چه تفاوت‌هایی با ps دارد؟ (توضیح کوتاه)

  7. یک فرآیند زامبی (Zombie Process) چگونه می‌تواند ایجاد شود؟ (توضیح مفهومی

دروس متنی

#1

جلسه 1 نرم افزارهای متن باز )Source Open ،)معرفی سیستم عامل لینوکس،

#2

جلسه 2معرفی انواع محیط های کاربری گرافیکی و خط فرمان لینوکس و

#3

جلسه 3 معرفی انواع محیط های کاربری گرافیکی و خط فرمان لینوکس و نحوه اتصال و کار با آنها

#4

جلسه 4 بررسی نیازهای سخت افزاری سخت افزار برای نصب لینوکس و نصب و راه اندازی

#5

جلسه 5 معرفی محیط های خط فرمان لینوکس، نحوه نامگذاری محیطهای خط فرمان،

#6

جلسه 6آشنایی با نرمافزارهای ویرایشگر متن مانند: vim ،nano و ... کار با فرامین پردازش متن

#7

جلسه 7ساختار یک بسته نرمافزاری لینوکس، مدیریت بستههای نرمافزار لینوکس.

#8

جلسه 8 مدیریت پراسس ها و انواع پراسس ها در لینوکس،

#9

جلسه 9 مجوزهای فایل ها و نحوه کار با فرامین chmod ،umask ،chattr

#10

جلسه 10فرامین ایجاد، فرمت و مدیریت پارتیشن، مانند: df ،du ،mkfs ،mount

#11

جلسه 11مدیریت کاربران و فرامین groupadd ،passwd ،useradd

#12

جلسه 12 فرامین پشتیبان گیری و فشرده سازی مانند: cpio ،tar ،zip ،gzip ،bzip و ...

#13

جلسه 13 نحوه پیکربندی کارت شبکه در لینوکس و کار با فرمان ifconfig ،ping

مشاهده دروس کامل بررسی صفحه یادگیری دوره
درس متنی 8/13
در حال مشاهده
جلسه 8 مدیریت پراسس ها و انواع پراسس ها در لینوکس،