در ادامه مطلب هفته گذشته با عنوان “شرح مختصری در رابطه با عملیات Link فایلهای اجرایی” به بررسی روش لینک فایلهای اجرایی به صورت ایستا (Static) می‌پردازم.
در این روش تمامی موارد ارجاع برنامه، از کتابخانه مربوطه پیدا شده و در برنامه اصلی کپی می‌شوند. به عبارتی یک کپی از کتابخانه‌های مورد نیاز تهیه شده و به طور فیزیکی به برنامه الحاق می‌گردد.

برخی از مزایای این روش به شرح زیرند:

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

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

البته معایب این روش هم کاملا آشکار بوده و به شرح زیرند:

– به دلیل اضافه شدن روتینهای مورد ذکر به برنامه، حجم فایل نهایی (Executable image) افزایش یافته و بارگذاری آن در حافظه هزینه بیشتری را به سیستم و سیستم عامل تحمیل می‌کند.

– در صورت اجرای چندین نسخه از برنامه، تمامی آنها حاوی تمام روتینهای ضمیمه شده مورد ارجاع بوده و این سربار حافظه، به همه آنها تحمیل گشته و مصرف حافظه بسیار زیاد می‌گردد.

– در صورت اعمال کوچکترین تغییری در کتابخانه‌های مورد استفاده، فایل اجرایی تمام برنامه‌هایی که از محتوای آن کتابخانه‌ها استفاده کرده‌اند می‌بایست دوباره اسمبل و کامپایل شوند.

کتابخانه‌های ایستا به نام آرشیو (Archive) هم شناخته شده و در برخی زبانها با پسوند “.a” مورد استفاده قرار می‌گیرند. توابع و زیربرنامه‌های موجود در آنها پس از الحاق به برنامه به همراه بدنه خود برنامه در فایل Object قرار گرفته و سپس این فایل به کد ماشین ترجمه می‌گردد.

در مطلب آینده، به بررسی مزایا و معایب فن‌آوری لینک پویا (Dynamic Linking) می‌پردازم. همانطور که احتمالا می‌دانید، این فن‌آوری باعث بوجود آمدن تحول بسیار بزرگی در ساختار سیستم عاملها شد. به عنوان مثال، سیستم عامل Windows که در حال حاضر محبوب‌ترین سیستم عامل موجود است، تماما بر مبنای لینک پویا، بنا نهاده شده است.

Print this pageEmail this to someoneShare on Google+Share on FacebookShare on LinkedInTweet about this on TwitterShare on RedditShare on TumblrShare on StumbleUponPin on Pinterest