تفاوت بین تماس سیستم و فراخوانی تابع

تفاوت بین تماس سیستم و فراخوانی تابع
تفاوت بین تماس سیستم و فراخوانی تابع

تصویری: تفاوت بین تماس سیستم و فراخوانی تابع

تصویری: تفاوت بین تماس سیستم و فراخوانی تابع
تصویری: آیا س*کس از پشت را دوست دارید ؟😱😂😂😱(زیرنویس فارسی) 2024, جولای
Anonim

تماس سیستم در مقابل تماس عملکرد

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

تماس سیستمی چیست؟

تماس‌های سیستمی برای برنامه‌هایی که روی رایانه اجرا می‌شوند، رابطی برای مکالمه با سیستم عامل فراهم می‌کنند.هنگامی که یک برنامه نیاز به درخواست یک سرویس (که به تنهایی مجوز انجام آن را ندارد) از هسته سیستم عامل داشته باشد، از یک فراخوانی سیستم استفاده می کند. فرآیندهای سطح کاربر مجوزهای مشابهی با فرآیندهایی که مستقیماً با سیستم عامل در تعامل هستند را ندارند. برای مثال، برای برقراری ارتباط با دستگاه ورودی/خروجی خارجی یا تعامل با هر فرآیند دیگری، یک برنامه از تماس های سیستمی استفاده می کند.

فراخوانی تابع چیست؟

فراخوانی تابع، فراخوانی زیر روال نیز نامیده می شود. یک برنامه فرعی (همچنین به عنوان یک رویه، عملکرد، روش یا روال نیز شناخته می شود) بخشی از یک برنامه بزرگتر است که مسئول انجام یک کار خاص است. برنامه بزرگتر ممکن است حجم کار سنگینی را اجرا کند، و زیربرنامه ممکن است فقط یک کار ساده را انجام دهد، که همچنین مستقل از کدگذاری برنامه باقی مانده است. یک تابع به گونه ای کدگذاری می شود که ممکن است چندین بار و از مکان های مختلف (حتی از داخل توابع دیگر) فراخوانی شود. هنگامی که یک تابع فراخوانی می شود، پردازنده ممکن است به جایی که کد تابع در آن قرار دارد برود و دستورالعمل های تابع را یکی یکی اجرا کند.پس از تکمیل توابع، پردازنده دقیقاً به همان جایی که متوقف شده برمی گردد و از دستور بعدی به اجرا ادامه می دهد. توابع ابزاری عالی برای استفاده مجدد از کد هستند. بسیاری از زبان های برنامه نویسی مدرن از توابع پشتیبانی می کنند. مجموعه ای از توابع را کتابخانه می نامند. کتابخانه ها اغلب به عنوان ابزاری برای اشتراک گذاری و تجارت نرم افزار استفاده می شوند. در برخی موارد، کل برنامه می‌تواند دنباله‌ای از زیر روال‌ها باشد (مثلاً تدوین کد رشته‌ای).

تفاوت بین System Call و Function Call چیست؟

فراخوانی سیستم یک فراخوانی به یک برنامه فرعی است که در سیستم تعبیه شده است، در حالی که فراخوانی تابع فراخوانی به یک زیربرنامه در داخل برنامه است. بر خلاف فراخوانی تابع، فراخوانی سیستم زمانی استفاده می شود که یک برنامه نیاز به انجام برخی کارها دارد، که برای آن امتیاز ندارد. فراخوانی های سیستمی نقاط ورود به هسته سیستم عامل هستند و به برنامه مرتبط نیستند (مانند فراخوانی تابع). برخلاف تماس های سیستمی، فراخوانی های تابع قابل حمل هستند. سربار زمانی یک فراخوانی سیستمی بیشتر از سربار فراخوانی تابع است زیرا باید بین حالت کاربر و حالت هسته انتقالی صورت گیرد.فراخوانی های سیستم در فضای آدرس هسته اجرا می شوند، در حالی که فراخوانی های تابع در فضای آدرس کاربر اجرا می شوند.

توصیه شده: