لینک دانلود و خرید پایین توضیحات
دسته بندی : وورد
نوع فایل : word (..doc) ( قابل ویرایش و آماده پرینت )
تعداد صفحه : 16 صفحه
قسمتی از متن word (..doc) :
توابع ………………………………………………………………API1
توضیحی مختصر درباره API
قلب ویندوز یعنی چیزی که اساس سیستم عامل ویندوز است، چیزی نیست بجز توابع API .
API مخفف کلمه Aplication programming interface میباشد که به معنای رابط برنامه سازی کاربردی است.
که از آن به نام های Aplication programming Interface و Application Programmers Interface نیز یاد شده است.
نام API به توابعی اطلاق میشود که در فایل های مختلف ویندوز مانند advapi32.DLL و userDLL32.DLL و ole32.DLL و ... وجود دارند.
هر کاری که در ویندوز روی می دهد و هر اتفاقی که می افتد با استفاده از این توابع صورت می گیرد.
در حقیقت نوشتن برنامه برای ویندوز از صدا کردن توابع API تشکیل می شود.
API بخشی از خود ویندوز است. لذا تمام برنامهای کاربردی ویندوز به همان توابعی دسترسی دارند که برنامه های دیگر دارند.
در محیط چند وظیفه ای ویندوز ضروری است که تمام برنامه ها در روش تعریف شده دقیق عمل کنند . با استفاده از توابع API که در تمامی برنامه های کاربردی استفاده می شود این سازگاری بوجود می آید.
شاید شما ندانسته تا حالا بارها با API کار کرده باشید. وقتی شما در محیط یک زبان برنامه نویسی مثل Delphi یا Visual Basic یا هر محیط دیگری پروژه جدیدی را آغاز می کنید و فرم اولیه را روی صفحه آورده و آماده طراحی می شوید در واقع استفاده از توابع API را آغاز کرده اید . در حقیقت در همان لحظه تابع Create Window فراخوانده شده است و فرم مزبور در مقابل شما قرار می گیرد که خود این تابع یکی از توابع API است.
از نظر برنامه نویس API شامل یک سری زیر برنامه ی آماده و کاملا سالم می باشد که در اختیار برنامه نویسان محیط ویندوز قرار می گیرد.
مشخصات توابع API
اگر بخواهیم توابع API را تقسیم بندی کنیم به دو دسته 16 بیتی و 32 بیتی تبدیل میشوند که دسته 16 بیتی دارای 730 تابع و دسته 32 بیتی دارای 6500 تابع میباشد.این روالها درون فایلهایی وجود دارند که در پوشه های Windows و Windows\System ذخیره شده اند.
در توابع API مانند هر زبان برنامه نویسی متغیر های ورودی و خروجی وجود دارد. این متغیر ها میتوانند از نوع long , integer , string , byte و ... باشند.
توابع ………………………………………………………………API2
برخی از این توابع میتوانند فقط مقدار ثابت تعریف شده ای را بگیرند.
در تعدادی از توابع متغیر های ورودی و خروجی یه یک ساختار TYPE اشاره دارند که فیلدهای این ساختار اطلاعات ورودی یا برگشتی تابع را در خود نگهداری میکنند.
توابع API در کجا قرار می گیرند؟
حتما این سوال برای شما پیش آمده که این توابع قدرتمند در کجا قرار دارند؟ یا اینکه این توابع کجا هستند که می توانند به طور اشتراکی در چند برنامه و حتی خود ویندوز مورد استفاده قرار گیرند؟ ابتدا باید مطالبی در مورد فایل های DLL بیاموزید.
DLL چیست؟
در حقیقت DLL ها هم مانند API ابزاری هستند که شما از آنها استفاده کرده اید ولی شاید نمی دانستید. اگر نگاهی به دایرکتوری system یا windows یا System32 بیندازید تعداد زیادی از این فایل های DLL می بینید!
Dynamic Linked Library (DLL): به معنای کتابخانه پیوندی پویا می باشد که می تواند شامل انواع داده یا کد باشد. درون DLL میتوان انواع داده ها همانند کد - تصویر - صوت و غیره را قرار داد.
فایلهای DLL در دسترس برنامه هایی که به زبان ویژوال بیسیک و زبانهای دیگری(که از DLL پشتیبانی می کنند) نوشته شده اند می باشد.
نکته جالب فایل های DLL خاصیت مستقل از زبان برنامه نویسی این فایل ها می باشد. یعنی اگر DLL با استفاده از Delphi ایجاد شده باشد می تواند Visual Basic یا Visual C++ از آن استفاده کرد.
نکته دیگر DLL ها صرفه جویی در مصرف حافظه می باشد که به همین دلیل نام Dynamic را به همراه خود دارند. در واقع هر قسمت از DLL که فراخوانی می شود همان قسمت به حافظه بار می شود و در صورت عدم نیاز هم از حافظه خارج می شود.
در واقع دلایل استفاده از DLL را موارد زیر را می توان نام برد:
توانایی اشتراکی کردن کد بین چند برنامه و حتی خود ویندوز
استفاده مجدد از کد های نوشته شده.
استفاده بهینه از منابع ویندوز و منابع سیستم.
جدا کردن کد های مختلف از هم.
توابع ………………………………………………………………API4
لازم به ذکر است که DLL ها را می توان به زبان هایی مانند Delphi و Visual C++ تولید کرد.
حالا می توانیم به سوال قبلی پاسخ دهیم . API درون فایلهایی وجود دارند که در پوشه های Windows و Windows\System ذخیره شده اند. هنگام نصب ویندوز فایلهای DLL نیز ذخیره می شوند ، پس به طور اتوماتیک به این کتابخانه ها دسترسی دارید.
مهمترین DLL ها که بیشترین API ها را در خود جا داده اند عبارتند از Kernel32.DLL و User32.DLL و Shell32.DLL و ... البته DLL های دیگری هم وجود دارند!
اکثر فایلهای DLL پسوند .DLL یا .EXE دارند.هربرنامه ای که می نویسید به این فایلها دسترسی دارد.این فایلهای DLL در ویرایش های قدیمی تر ویندوز (قبل از 95) هم وجود داشتند ، منتها این فایلها شماره 32 را (که نشان دهنده سازگار 32 بیتی است)در نام خود نداشتند.ویرایشهای قبل از ویندوز 95 سیستمهای 16 بیتی بودند ، بدین معنی که انتقال اطلاعات با نرخ 16 بیت یا دو بایت انجام می شد.برنامه نویسی در محیط های 32 بیتی ، انعطاف بیشتر ، سرعت زیادتر و کارایی بالاتر را در مقایسه با یک محیط 16 بیتی قدیمی دارد.
سه فایل که عمدتا استفاده می شوند عبارتند از:
Usre32.DLL: شامل توابعی است که محیط ویندوز و واسط کاربر مثل مکان نماها ، منوها و پنجره ها را کنترل می کند .
Gdi32.DLL: شامل توابعی است که خروجی برنامه به صفحه تصویر و ابزارهای دیگر را کنترل می کنند.
Kernel32.DLL: شامل توابعی است که سخت افزار و واسط نرم افزار داخلی ویندوز را کنترل می کنند.اکثر روالهای مربوط به حافظه ، فایل و دایرکتوری درون Kernel32.DLL قرار دارند.
توجه: ویندوز یک سیستم عامل است که از چند لایه تشکیل شده است.شروع این لایه ها با واسط گرافیکی کاربر یا GUI(Grapical User Interface) است که کاربر می بیند و ختم آنها با نزدیک ترین لایه به سخت افزار است که جریان داده ها بین برنامه و سخت افزار را کنترل می کند. این پایین ترین سطح سیستم عامل را هسته اصلی (Kernel) می گویند. بنابراین نام Kernel32.DLL مربوط به کتابخانه ای است که تعدادی روال بر مبنای هسته اصلی را دارد.
این سه فایل بیشتر روالها یا توابع API را نگه می دارند.با یک نگاه کوتاه به پوشه های Windows و Windows \ system
توابع ………………………………………………………………API4
چند کتابخانه پیوند دینامیکی دیگر را نیز می بینید مثل COMDLG.DLL,MAPI32.DLL,NETAPI32.DLLوWINMM.DLL . همچنانکه مایکروسافت قابلیتهایی را به سیستم عامل اضافه می کند، فایلهای جدید DLL هم ظاهر می شوند.
فایلهای DLL فقط قسمتی از ویندوز نمی باشند . وقتی یک برنامه جدید را به سیستم خودتان اضافه می کنید.این برنامهDLL خاص خودش را فراهم می کند.بنابراین در طول زمان تعداد زیادی فایل DLL روی سیستم خودتان خواهید داشت.
ماهیت فایلهای DLL:
اصطلاح پیوند دینامیکی معانی خاصی برای برنامه نویسان دارد.وقتی گفته میشود که یک روال با یک برنامه پیوند دینامیکی دارد بدین معناست که این روال(سابروتین یا تابع) تا قبل از ترجمه برنامه به آن متصل نمی شود .این تابع فقط در زمان اجرا در دسترس برنامه می باشد.توابعی که درون پنجره کد می نویسید دارای پیوند استاتیکی میباشند،یعنی هر وقت برنامه را ترجمه می کنید این توابع با بقیه کد اصلی ترکیب می شوند.اما فایلهای DLL برنامه ترکیب نمی شوند. برنامه شما به این روالها در زمان اجرا دسترسی دارداما فایل EXE برنامه شامل روالهای واقعی DLL نمی باشد.
این توابع زمانی با ارزش است که می خواهید توابع را به عنوان کتابخانه های پیوند دینامیکی استفاده کنید، زیرا کتابخانه یا توابعی که برنامه شما احضار می کند هیچوقت قسمتی از برنامه شما نیستند.توابع API اندازه فایلهای برنامه شما را زیاد نمی کنند.حین اجرای برنامه این روالها در مواقع ضروری بار می شوند ، در ادامه چنانچه دیگر نیازی به آنها نباشد سیستم عامل ویندوز می تواند منابع را آزاد کندتا حافظه و وقت CPU صرف روالهای جدید شود.
اما مزیت عمده پیوند دینامیکی این نیست که موجب افزایش راندمان منابع می گردند.چنانچه ویندوز تغییر کند این فایلهای DLL با ویرایشهای جدید DLL باید جایگزین شوند.بنابراین برنامه شما قادر است تا از قابلیتهای جدید ویندوز استفاده کند بدون آنکه مجبور باشید همه برنامه هایی را که از API ویندوز استفاده میکنند مجددا ترجمه کنید.به عنوان مثال در ویندوز 95 ظاهر پنجره ها تغییر کرد.شمایلهای موجود در گوشه بالا و سمت راست یک پنجره نسبت به ویندوز 11.3 تفاوت دارند.اما هر برنامه ویژوال بیسیک که برای نمایش پنجره یک تابع API ویندوز را احضار می کند در همه محیطهای ویندوز اینگونه عمل می کند. یعنی این برنامه وقتی در محیط ویندوز11.3 اجرا میشود شمایلهای قدیمی را نشان میدهد با وجودی که برنامه را تغییر نداده اید. در نتیجه در اکثر مواقع وقتی از ویرایشهای مختلف ویندوز استفاده میکنید، برنامه های شما که به
لینک دانلود و خرید پایین توضیحات
دسته بندی : وورد
نوع فایل : word (..doc) ( قابل ویرایش و آماده پرینت )
تعداد صفحه : 13 صفحه
قسمتی از متن word (..doc) :
مقایسه مختصر بین پردازنده های 32-بیت و 64-بیت
مقدمه
محدودیتی که در دامنه پردازشهای 32 بیتی وجود دارد، همواره باعث کندشدن سرعت انجام عملیات پیچیده و سنگین اطلاعاتی در سیستمهای مختلف میگردد. به همینمنظور بسیاری از شرکتهای سازنده نرمافزار و خصوصاً آنهایی که در زمینه سیستمعامل فعالیت دارند از دیرباز رقابتی را برای تحت پوشش قراردادن تعداد زیادتری CPU و مقدار بیشتری حافظه RAM نسبت به یکدیگر آغاز کردهاند. به عنوان مثال رقابتی که بین ویندوز 2000 سرور با سولاریس یا انواع یونیکس و لینوکس بر سر امکان استفاده از 8 یا 16 تا 32 پردازنده به همراه چند گیگابایت حافظه RAM و امثال آن وجود داشت همواره یکی از جالبترین و پرسروصداترین زمینه رقابت بین چند سیستمعامل بهشمار میرفت. اما تمام این عوامل چندی پیش تحتالشعاع واژه جدیدی به نام پردازش 64 بیتی قرار گرفت. این فناوری جدید که به لطف به بازار آمدن دو محصول جدید از دو شرکت معتبر سازنده پردازنده یعنی اینتل و AMD شکل گرفت، در مدت کوتاهی توانست توجه سازندگان سیستمعامل را به شدت معطوف کارایی بینظیر خود کند .
پردازندههای Xeon و ایتانیوم از سوی اینتل و پردازنده Opteron از طرف AMD طی مدت کوتاهی توجه تمام سازندگان مشهور سرورهای Enterprise و همچنین تولیدکنندگان سیستمعامل را به خود جلب کرد. در این میان مایکروسافت نیز بلافاصله اقدام به طراحی نسخهای از ویندوز 2003 سرور برمبنای انجام پردازشهای 64 بیتی و با استفاده از پردازندههای جدید نمود. این نسخه جدید 64 بیتی از چند نظر بر نسخه پیشین خود برتری داشت. اول اینکه از میزان حافظه فیزیکی و مجازی بیشتری پشتیبانی میکند
.
دوم اینکه در مقایسه با نسخه 32 بیتی از کارایی و سرعت بالاتری در مدیریت حافظه، رجیسترها و عملیات I/O برخوردار است. نکته سوم در مورد امنیت است. نسخه 64 بیتی قابلیت محافظت بیشتری در برابر کدهای مخرب(Malicious Code) از خود نشان میدهد. طبق پیشبینیهای انجام گرفته تا پایان سال 2005 میلادی کلیه کامپیوترهایی که قرار است نقش سرور را در مراکز بزرگ اقتصادی داشته باشند به سمت ریزپردازنده و سیستمعامل 64 بیتی سوق پیدا خواهند کرد. همین پیشبینی حاکی از تمایل شدید کامپیوترهای دسکتاپ به سمت استفاده از تکنولوژی 64 بیتی تا پایان سال 2006 میلادی است .
برایناساس به تدریج نه تنها سازندگان سیستمعامل مثل مایکروسافت سیستمعامل 64 بیتی مختص کامپیوترهای دسکتاپ (Windows XP 46 bit) را به بازار عرضه میکنند، بلکه سایر تولیدکنندگان نرمافزارهای مختلف هم با وارد شدن به دنیای پردازشهای 64بیتی، کارایی و سرعت جدیدی را به کاربران خود ارایه میدهند .
مقایسه
در یک سیستمعامل 32 بیتی مثل نسخههای 32 بیتی ویندوز 2003 از یک حافظه مجازی (Virtual memory) برای انجام پردازشهای مختلف استفاده میشود. این حافظه مجازی که حداکثر 4 گیگابایت میتواند ظرفیت داشته باشد به دو قسمت تقسیم میشود. یک قسمت 2 گیگابایتی آن به وسیله برنامه در حال اجرا اشغال شده و 2 گیگابایت دیگر در اختیار سیستمعامل قرار میگیرد.
تا اینجا همه چیز بسیار عادی به نظر میرسد اما مشکل زمانی پیش میآید که 2 گیگابایت سهم برنامههای در حال اجرا به مرز پرشدن نزدیک میشود. به عنوان مثال یک بانک اطلاعاتی SQL Server را در نظر بگیرید که برای اتصال هر کاربر به سرور و انجام عملیات موردنظر وی 20 مگابایت حافظه مجازی را در نظر میگیرد. با رسیدن تعداد کاربران به مرز یکصد نفر، کل حافظه مجازی 2 گیگابایتی در اختیار SQL Server قرار میگیرد و این به معنای نزدیک شدن سیستم به یک نقطه بحرانی در عملیات سرویسدادن به کاربران است .
در نسخههای 32 بیتی یکی از راههایی که برای این مساله در نظر گرفته میشد، اختصاص 3 گیگابایت از حافظه مجازی به برنامههای درحالاجرا بود. این روش که با استفاده از دستکاری در فایل boot.ini