آموزش خط فرمان: قسمت بیست و هشتم، فرآیندها

نوشته شده توسط فرشید نوتاش حقیقت.

همانطور که می‌دانید سیستم‌عامل‌های مدرن به صورت چندوظیفه‌ای عمل می‌کنند؛ به این معنا که با جابه‌جایی دایم بین برنامه‌های در حال اجرا این تصور را ایجاد می‌کنند که چند کار در حال انجام می‌باشد. هسته لینوکس این کار را با استفاده از پروسه‌ها یا همان فرآیندها انجام می‌دهد. فرآیندها شیوه‌ای هستند که لینوکس با استفاده از آن برنامه‌های مختلفی را که در CPU منتظر اجرا شدن هستند را مدیریت می‌کند. برخی اوقات یک برنامه کند شده و یا یک اپلیکیشن خاص قادر به پاسخگویی نیست. در این فصل به برخی ابزارهای موجود در خط فرمان که به ما اجازه آزمون عملکرد برنامه‌ها و پروسه‌های آن‌ها را می‌دهد نگاهی می‌کنیم.

فرآیندها در لینوکس چگونه کار می‌کنند؟

هنگامی که یک سیستم شروع به کار می‌کند. هسته مرکزی یا همان کرنل (Kernel) فعالیت‌هایی را به عنوان پروسه آغاز کرده و برنامه‌ای با نام init را اجرا می‌کند.

Init نیز به نوبه خود، اسکریپت‌هایی از شل (Shell) را که در مسیر /etc قرار دارند اجرا کرده (به آن‌ها اسکریپت‌های init می‌گویند) که این اسکریپت‌ها نیز سرویس‌های سیستم را آغاز می‌کنند.

بسیاری از این سرویس‌ها به عنوان daemon programs پیاده‌سازی می‌شود، یعنی برنامه‌هایی که مثل روح در پس‌زمینه باقی مانده و وظیفه خود را بدون رابط کاربری انجام می‌دهند.

این واقعیت که یک برنامه قادر است دیگر برنامه‌ها را اجرا کند بر اساس یک طرح پردازشی بیان می‌شود که در این طرح پروسه والد، پروسه‌های فرزند را اجرا می‌کند.

هسته مرکزی اطلاعات هر پروسه را نگهداری می‌کند تا همه چیز سازماندهی شده باشد. برای مثال هر پروسه یک شماره که شناسه پروسه یا Process ID و به اختصار PID را دریافت می‌کند. همچنین کرنل (هسته مرکزی) حافظه‌ای که به هر پردازش اختصاص می‌یابد و آمادگی پردازش برای بازگشت به اجرا را پیگیری می‌کند. قابل توجه است که در لینوکس پروسه‌ها نیز همچون فایل‌ها مالک و شناسه کاربر و … دارند.

نمایش فرآیندها با فرمان ps

رایج‌ترین فرمان برای نمایش فرآیندها فرمان ps است. برنامه ps دارای گزینه‌های زیادی می‌باشد ولی در ساده‌ترین شکل به صورت زیر نمایش داده می‌شود:

نتایج در این مثال دو پروسه را نشان می‌دهد با شماره‌های ۵۱۹۸ و ۱۰۱۲۹ که همان پروسه‌های bash و ps هستند. همانطور که می‌بینیم فرمان ps به صورت پیش‌فرض موارد زیادی را نشان نمی‌دهد و فقط پروسه‌هایی که با نشست فعلی ترمینال مرتبط هستند را نشان می‌دهد. برای نشان دادن بایستی گزینه‌های بیشتری را اضافه کنیم ولی قبل از آن نگاهی به دیگر فیلدهایی که توسط فرمان ps تولید شده بیندازیم. TTY مخفف teletype و به معنی دورنگار می‌باشد و اشاره به ترمینال کنترل کننده پروسه‌ها دارد. فیلد TIME مقدار زمان پردازشی استفاده شده از CPU را نشان می‌دهد. همانطور که می‌بینیم هیچ کدام باعث فعالیت زیاد کامپیوتر نمی‌شوند.

اکنون اگر یک گزینه به آن اضافه کنیم، می‌توانیم یک تصویر بزرگتر از کاری که سیستم می‌کند را دریافت کنیم:

با اضافه کردن گزینه x (دقت داشته باشید که این گزینه دارای علامت دش – نمی‌باشد) به فرمان ps می‌گوییم که همه پروسه‌ها (جدای از اینکه ترمینال چه گزینه‌هایی را کنترل کرده) نمایش دهد. وجود علامت سوال (?) در ستون TTY نشانگر این است که ترمینال کنترلی بر روی آن ندارد و با استفاده از این گزینه ما لیست همه پروسه‌هایی که مالک آن هستیم را نشان می‌دهیم.

از آنجایی که سیستم در حال اجرای پروسه‌های زیادی است، فرمان ps لیست بلندی را ایجاد می‌کند. گاهی قرار دادن ps در داخل less نمایش آن را ساده‌تر می‌کند. یک ستون جدید با نام STAT وجود دارد. STAT مخفف واژه انگلیسی state می‌باشد و وضعیت اخیر پروسه را نشان می‌دهد. این کار با استفاده از حروف اختصاری که شرح آن در جدول زیر آمده است صورت می‌گیرد.

وضعیت پروسه ممکن است با کاراکترهای دیگری در دنباله آن همراه شود. این کاراکترها نشانگر مشخصه‌های پروسه‌های خارجی هستند. برای مشاهده جزئیات بیشتر در این مورد به صفحات manual مراجعه کنید.

یکی دیگر از گزینه‌های رایج aux می‌باشد. این گزینه اطلاعات بیشتری را به ما خواهد داد:

این مجموعه گزینه‌ها پروسه‌هایی که به هر کاربر تعلق دارند را نمایش می‌دهد. با این گزینه‌ها ما ستون‌های داده بیشتری را دریافت می‌کنیم که در جدول زیر نشان داده شده‌اند:

نمایش پویای پردازش‌ها با فرمان top

با وجود اینکه فرمان ps اطلاعات زیادی درباره اینکه سیستم چه می‌کند را به ما می‌دهد وای این فرمان تنها یم تصویر را از وضعیت سیستم در لحظه اجرای فرمان را به ما نشان می‌دهد. برای اینمه نمایشی پویاتر از وضعیت فعالیت‌های ماشین را دریافت کنید، فرمان top گزینه خوبی است. برنامه top یک نمایش دنباله‌دار که در لحظه (به صورت پیش‌فرض هر ۳ ثانیه یکبار) بروزرسانی می‌شود را از وضعیت پروسه‌های سیستم به منظور نمایش فعالیت پروسه‌ها به ما نشان می‌دهد.

نام این فرمان از واقعیت گرفته شده است که از برنامه بالایی برای نمایش پروسه‌های بالایی سیستم استفاده می‌شود. نمایش فرمان top شامل دو بخش است: یک بخش خلاصه سیستم که در بالا وحود دارد و در ادامه آن جدولی از پروسه‌های فعالیت CPU که در ادامه، جدول آن آورده شده است:

بخش خلاصه سیستم شامل اطلاعات مفیدی است که در جدول زیر نمایش داده می‌شود:

برنامه top دستورات صفحه کلید را قبول می‌کند. دو مورد از مهم‌ترین آن‌ها h است که صفحه راهنمای برنامه را نشان می‌دهد و همچنین q که ما را از برنامه top خارج می‌کند.

محیط‌های دسکتاپ اپلیکیشن‌های گرافیکی را به ما ارائه می‌کند که اطلاعاتی مشابه برنامه top را در اختیار ما قرار می‌دهند (مانند Task Manager در محیط ویندوز). ولی برنامه top بهتر از نسخه‌های گرافیکی می‌باشد. به دلیل اینکه سریع‌تر عمل می‌کند و منابع سیستمی بسیار کمتری را درگیر خود می‌کند. علاوه بر آن، برنامه مانیتوری سیستم ما نبایستی بازدهی سیستمی که در حال بررسی آن هستیم را کاهش دهد.

منبع: کتاب The Linux Command Line نوشته William E. Shotts

نوشته آموزش خط فرمان: قسمت بیست و هشتم، فرآیندها اولین بار در لینوکس سیزن پدیدار شد.


دیدگاهی بنویسید