دسته بندی | کامپیوتر و IT |
بازدید ها | 0 |
فرمت فایل | doc |
حجم فایل | 32 کیلو بایت |
تعداد صفحات فایل | 29 |
تحلیل الگوریتم شاخه و قید موازی آسنکرون
تحلیل الگوریتم شاخه و قید موازی آسنکرون
Asynchronous Parallel Branch and Bound Algorithm
1- خلاصه:
در این مقاله توضیحی درباره کامپیوترهای موازی میدهیم و بعد الگوریتمهای موازی را بررسی میکنیم. ویژگیهای الگوریتم branch & bound را بیان میکنیم و الگوریتمهای b&b موازی را ارائه میدهیم و دستهای از الگوریتمهای b&b آسنکرون برای اجرا روی سیستم MIMD را توسعه میدهیم. سپس این الگوریتم را که توسط عناصر پردازشی ناهمگن اجرا شده است بررسی میکنیم.
نمادهای perfect parallel و achieved effiency را که بطور تجربی معیار مناسبی برای موازیسازی است معرفی میکنیم زیرا نمادهای قبلی speed up (تسریع) و efficiency (کارایی) توانایی کامل را برای اجرای واقعی الگوریتم موازی آسنکرون نداشتند. و نیز شرایی را فراهم کردیم که از آنومالیهایی که به جهت موازیسازی و آسنکرون بودن و یا عدم قطعیت باعث کاهش کارایی الگوریتم شده بود، جلوگیری کند.
2- معرفی:
همیشه نیاز به کامپیوترهای قدرتمند وجود داشته است. در مدل سنتی محاسبات، یک عنصر پردازشی منحصر تمام taskها را بصورت خطی (Seqventia) انجام میدهد. به جهت اجرای یک دستورالعمل داده بایستی از محل یک کامپیوتر به محل دیگری منتقل میشد، لذا نیاز هب کامپیوترهای قدرتمند اهمیت روز افزون پیدا کرد. یک مدل جدید از محاسبات توسعه داده شد، که در این مدل جدید چندین عنصر پردازشی در اجرای یک task واحد با هم همکاری میکنند. ایده اصل این مدل بر اساس تقسیم یک task به subtaskهای مستقل از یکدیگر است که میتوانند هر کدام بصورت parallel (موازی) اجرا شوند. این نوع از کامپیوتر را کامپیوتر موازی گویند.
تا زمانیکه این امکان وجود داشته باشد که یک task را به زیر taskهایی تقسیم کنیم که اندازه بزرگترین زیر task همچنان به گونهای باشد که باز هم بتوان آنرا کاهش داد و البته تا زمانیکه عناصر پردازشی کافی برای اجرای این sub task ها بطور موازی وجود داشته باشد، قدرت محاسبه یک کامپیوتر موازی نامحدود است. اما در عمل این دو شرط بطور کامل برقرار نمیشوند:
اولاً: این امکان وجود ندارد که هر taskی را بطور دلخواه به تعدادی زیر taskهای مستقل تقسیم کنیم. چون همواره تعدادی زیر task های وابسته وجود دارد که بایستی بطور خطی اجرا شوند. از اینرو زمان مورد نیاز برای اجرای یک task بطور موازی یک حد پایین دارد.
دوماً: هر کامپیوتر موازی که عملاً ساخته میشود شامل تعداد معینی عناصر پردازشی (Processing element) است. به محض آنکه تعداد taskها فراتر از تعداد عناصر پردازشی برود، بعضی از sub task ها بایستی بصورت خطی اجرا شوند و بعنوان یک فاکتور ثابت در تسریع کامپیوتر موازی تصور میشود.
الگوریتمهای B&B مسائل بهینه سازی گسسته را به روش تقسیم فضای حالت حل میکنند. در تمام این مقاله فرض بر این است که تمام مسائل بهینه سازی مسائل مینیمم کردن هستند و منظور از حل یک مسئله پیدا کردن یک حل ممکن با مقدار مینیمم است. اگر چندین حل وجود داشته باشد، مهم نیست کدامیک از آنها پیدا شده.
الگوریتم B&B یک مسئله را به زیر مسئلههای کوچکتر بوسیله تقسیم فضای حالت به زیر فضاهای (Subspace) کوچکتر، تجزیه میکند. هر زیر مسئله تولید شده یا حل است و یا ثابت میشود که به حل بهینه برای مسئله اصلی (Original) نمیانجامد و حذف میشود. اگر برای یک زیر مسئله هیچ کدام از این دو امکان بلافاصله استنباط نشود، آن زیر مسئله به زیرمسئلههای کوچکتر دوباره تجزیه میشود. این پروسه آنقدر ادامه پیدا میکند تا تمام زیر مسئلههای تولید شده یا حل شوند یا حذف شوند.
در الگوریتمهای B&B کار انجام شده در حین اجرا به شدت تحت تاثیر نمونه مسئله خاص قرار میگیرد. بدون انجام دادن اجرای واقعی الگوریتم این امکان وجود ندارد که تخمین درستی از کار انجام شده بدست آورد. علاوه برآن، روشی که کار باید سازماندهی شود بر روی کار انجام شده تاثیر میگذارد. هر گامی که در اجرای الگوریتم b&b ی موازی بطور موفقیتآمیزی انجام میشود و البته به دانشی است که تاکنون بدست آورده. لذا استفاده از استراتژی جستجوی متفاوت یا انشعاب دادن چندین زیر مسئله بطور موازی باعث بدست آمدن دانشی متفاوت میشود پس میتوان با ترتیب متفاوتی زیر مسئلهها را انشعاب داد.
دقت کنید که در یک بدل محاسبه خطی افزایش قدرت محاسبه فقط بر روی تسریع الگوریتم اثر میکند وگرنه کار انجام شده همچنان یکسان است.
با این حال اگر قدرت محاسبه یک کامپیوتر موازی با اضافه کردن عناصر پردازشی اضافه افزایش پیدا کند. اجرای الگوریتم b&b بطور آشکاری تغییر میکند (به عبارت دیگر ترتیبی که در آن زیر برنامهها انشعاب پیدا میکنند تغییر میکند). بنابراین حل مسائل بهینهسازی گسسته سرسع بوسیله یک کامپیوتر موازی نه تنها باعث افزایش قدرت محاسبه کامپیوتر موازی شده است بلکه باعث گسترش الگوریتمهای موازی نیز گشته است.
جهت دریافت فایل تحلیل الگوریتم شاخه و قید موازی آسنکرون لطفا آن را خریداری نمایید
دسته بندی | کامپیوتر و IT |
بازدید ها | 1 |
فرمت فایل | doc |
حجم فایل | 30 کیلو بایت |
تعداد صفحات فایل | 28 |
حافظه RAM
آنچه در این فصل می آموزید:
/ کنترل میزان مصرف حافظه در سیستم
/ اجرای برنامه های ارزیابی و سنجش حافظه
/نمایش اطلاعات حافظة ویندوز به کمک برنامة Sandra
/ آماده شدن برای ارتقا حافظة سیستم
/ عیب یابی نصب حافظه در سیستم
/ حذف کاربرد حافظة بسط یافته و حافظة توسعه یافته در محیط ویندوز
/ کنترل مقدار فیزیکی مصرف RAM در محیط ویندوز
قبل از اینکه Cpu بتواند برنامهها را اجرا کند، دستورات و اطلاعات آن برنامه باید داخل حافظة Ram کامپیوتر منتقل و مستقر شوند. در این فصل روش نگهداری اطلاعات در حافظة Ram را می آموزید و اینکه چرا اطلاعات داخل حافظة Ram فرار هستند ( یعنی با قطع برق یا خاموش شدن کامپیوتر همة اطلاعات موجود در این حافظه از بین می روند)، و اینکه چرا انواع حافظة Ram عرضه شده اند.
بر روی وب یا داخل مجلات و بروشورها و کتابهای کامپیوتر اغلب توصیه های مطالعه می کنید که مقدار لازم حافظة Ram برای سیستم شما را اعلام می کنند. اغلب اعلام می شود که حداقل 126 تا 512 مگابایت حافظة Ram برای عملکرد مناسب یک سیستم لازم است.
داخل کامپیوترهای شخصی از دیسکها برای نگهداری دایمی و بلند مدت اطلاعات استفاده میکنیم. اطلاعات داخل دیسک سخت از طریق مغناطیس نمودن سطح دیسک انجام میگیرد. به دلیل روش مغناطیسی ذخیرة اطلاعات در دیسک سخت
(در مقابل روش الکترونیکی ) این وسیله قابلیت نگهداری دایمی و بلند مدت اطلاعات را دارد و با قطع برق یا خاموش شدن سیستم اطلاعات مستقردر دیسک از بین نرفته و ماندگار هستند چون دیسک سخت برای نگهداری اطلاعاات نیاز به جریان برق دایمی ندارد. اما حافظة Ram اطلاعات را بطور موقت نگهداری می کند بدیهی است که با قطع برق یا خاموش شدن سیستم این اطلاعات از بین خواهند رفت.
فنآوریهای گوناگون برای ذخیرهسازی اطلعات ابداع شدهاند که اغلب آنها را بر اساس سرعت، هزینه و ظرفیت ذخیره سازی طبقهبندی میکنند. معمولاً دیسکها وسایل مکانیکی هستند و به همین دلیل سرعت عملیات آنها نسبت به انواع حافظههای الکترونیکی بسیار کندتر است. در شکل زیر نمایی از اواع وسایل ذخیرهسازی و در سمت راست کندترین وسیلة ذخیرهسازی را نشان دادهایم.
جریان اطلاعات از حافظة RAM به پردازنده (CPU)
هرگاه Cpu برای اجرای عملیات به اطلاعات یا دستوری نیاز داشته باشد ابتدا آنها را داخل حافظه میانجی L1 جستجو میکند. اگر اطلاعات مورد نیاز را آنجا پیدا نکند به سراغ حافظه میانجی L2 خواهد رفت. اگر اطلاعات مورد نیاز را آنجا هم پیدا نکند پس Cpu باید نشانی آدرس آن اطلاعات را از طریق گذرگاه سیستم به حافظه Ram ارسال نماید. درخواست اطلاعات از Cpu باندا به تراشة کنترل کنندة حافظه میرسد.
کنترل کنندة حافظه از آدرس رسیده استفاده میکند و اطلاعات یا دستور مورد نیاز Cpu را پیدا میکند. پس از اینکه کنترل کنندة حافظه این اطلاعات را پیدا می کند آن را از طریق گذرگاه سیستم به Cpu ارسال میکند.
انجام مراحل فوق نیاز به زمان دارند. در سیستم های جدید به منظور افزایش کارایی سیستم از روشهایی استفاده می کنند تا تاخیر زمانی درخواست و دریافت اطلاعات را کاهش دهند.
سازماندهی حافظة RAM توسط کامپیوترهای شخصی
در حافظة Ram اطلاعات ( Data ) و دستوراتی ( Instructions ) ذخیره می شوند که Cpu برای اجرای عملیات به آنها نیاز دارد. می دانید که هر برنامه شامل دستوراتی است که به زبان صفر و یک ها نوشته شده ( یا ترجمه شده) اند. بنابراین در حافظة Ram نیز اطلاعات به شکل صصفرها و یک ها ذخیره می شوند. می توانید حافظة Ram را به شکل چند ردیف از مکانهای ذخیره سازی تصور نمایید.
برنامه نویسان تصور دیگری از حافظة Ram دارند.
آنها مجموعه بیت ها را در یک « لغت» ( Word) گروه بندی می کنند. به همین دلیل پردازنده هایی که از گذرگاه اطلاعات 32 بیتی استفاده می کنند در واقع از لغات 32 بیتی استفاده می کنند. پردازنده هایی که از گذرگاه اطلاعات 64 بیتی استفاده می کنند از بغات 64 بیتی استفاده می کنند. اما در پشت صحنه واقعیت این است که برنامه ها می توانند به بایت های انفرادی داخل حافظة Ram دسترسی داشته باشند. در شکل زیر نمایی از ساختار حافظة Ram را مشاهده می کنید که مکان هر بایت یک آدرس منحصربه فرد دارد. Cpu برای بازخوانی اطلاعات از حافظه Ram یا ثبت اطلاعات رد حافظة Ram باید آدرس مکانهای ذخیره سازی در این حافظه را بداند.
در فصل 12 جزییات مربوط به تبادل اطلاعات از طریق گذرگاه های کامپیوتر بین تراشه ها را می آموزید. هر گاه سیستم (System bus ) ارتباط بین حافظة Ram و Cpu را برقرار نمودده و شامل سیستم هایی است که اطلاعات بر روی آنها حرکت می کنند. تعداد بیت های موجود در گذرگاه آدرس مشخص کنندة مقدار حافظه ای هستند که کامپیوتر شخصی می تواند به آنها دسترسی داشته باشد. به عنوان مثال اگر در یک سیستم از گذرگاه آدرس 32 بیتی استفاده شود پس 232 یعنی 4 گیگابایت را می توان آدرس دهی نمود.
یا در یک سیستم که از گذرگاه آدرس 64 بیتی استفاده می شود پس 264 9551616، 737، 18446744 خانة حافظه را می توان آدرس دهی نمود.
مفهوم DRAM ( Dynamic ramdom access memory )
در بیشتر کامپیوترهای شخصی از تراشههایی حافظة Dram استفاده می شود که به دلیل سرعت زیاد، ظرفیت زیاد و هزینه پایین این نوع حافظه است. در یک تراشة Dram برای ذخیرة یک بیت اطلاعات از یک ترانزیستور و یک کاپاسیتور استفاده میشود. کاپاسیتور مقدار جاری بیت را ذخیره و نگهداری میکند.
مشکل اصلی مربوط به استفاده از کاپاسیتور آن است که شارژ آنها برای مدت محدودی باقی می ماند و باید هر چند لحظه یکبار شارژ آنها نوسازی شود. کنترل کنندة حافظه به منظور تجدید شارژ کاپاسیتور ابتدا محتوی آن را خوانده و نگهداری می کند. پس از تجدید شارژ کنترل کنند حافظه باید مقدار آن کاپاسیتور را دوباره به آن برگرداند. سرعت تجدید شارژ محتوی بیت توسط کنترل کننده حافظه باید معادل 66 مگاهرتز باشد.
همچنین هنگامی که Cpu محتوی ذخیره شده در حافظة Ram را درخواست می کند، کنترل کنندة حافظه باید محتوی جاری کاپاستیور را بگیرد تا مشخص کند که اطلاعاتی در آن ذخیره شده است.
اگر کاپاسیتور در برگیرندة محتوی 1 باشد، کنترل کنندة حافظه باید محتوی کاپاسیتور را نوسازی ( تجدید) نماید. در زمانی که کنترل کنندة حافظه محتوی کاپاسیتور را میخواند این محتوی از درون کاپاسیتور خارج می شود و این فرایند را « خواندن تخریبی» اطلاعات یا Destructive read می نامند.
چون کنترل کنندة حافظه باید بطور مرتب و دایمی تراشههای حافظة Ram را نوسازی نماید، این نوع تراشه ها از سایر انواع حافظه ها کندتر عمل می کنند. اما مزیت اصلی این تراشه ها ظرفیت زیاد ذخیره سازی اطلاعات در این نوع تراشه فقط از یک ترانزیستور و یک کاپاسیتور استفاده می شود.
مفهوم حافظة SRAM ( Static random access memory )
به دلیل قیمت پایین و ظرفیت زیاد ذخیرهسازی در بیشتر کامپیوترهای شخصی از تراشههای حافظة Dram برای پیاده سازی حافظة اصلی استفاده می کنند. در این کامپیوترها به منظور افزایش کارایی و سرعت سیستم از حافظة پر سرعت میانجی (Cache) نیز استفاده می شود که به دلیل گرانی کمتر استفاده می شوند. در حافظه میانجی از فن آوری Sram استفاده می شود.
در تراشه های حافظه Dram کاپاسیتور برای نگهداری محتوی خود لازم است تا بطور مرتب نوسازی شود، امام در تراشههای Sram نیاز به تجدید یا نوسازی شارژ وجود ندارد.
همچنین کنترل کنندة حافظه می تواند محتوی این حافظه را بدون عملیات خواندن تخریبی اجرا نماید. به همین دلیل سرعت دسترسی اطلاعات در این نوع تراشهها بسیار بیشتر است.
بی نیازی تراشههای Sram به خاطر آن است که در این تراشه ها از کاپاسیتور استفاده نمی شود. اما در عوض از پنج یا شش تزانزیستور برای ذخیره یک بیت اطلاعات استفاده می شود. به همین دلیل ظرفیت ذخیرهسازی اطلاعات درحافظه های Sram نسبت به حافظه های Sram نسبت به حافظه هاس Dram کمتر است
جهت دریافت فایل حافظه RAM لطفا آن را خریداری نمایید
دسته بندی | کامپیوتر و IT |
بازدید ها | 4 |
فرمت فایل | doc |
حجم فایل | 128 کیلو بایت |
تعداد صفحات فایل | 152 |
برنامهسازی شیگرا
مقدمه
C# یکی از زبانهای جدید برنامهسازی شیگرا است که با ارائة رهیافت Component-Based به طراحی و توسعه نرمافزار میپردازد. آنچه ما در حال حاضر از زبانهای برنامهسازی Component-Based در اختیار داریم و آنچه که C# در اختیار ما قرار میدهد، افق جدیدی به سوی تولید و طراحی نرمافزارهای پیشرفته را در روی ما قرار میدهند.
نرمافزار، به عنوان یک سرویس، هدف اصلی نسل بعدی در سیستمهای محاسباتی است. برای مثال، C# زبانی مناسب برای تولید و طراحی صفحات وب، ایجاد اجزایی با قابلیت استفاده مجدد و ایجاد محیطهایی چند رسانهای را به عنوان زبانی که هدفش توسعه ایجاد نرمافزارهای پیشرفته است، در اختیار ما قرار میدهد.
زبان برنامهسازی C#، به همراه تکنولوژی جدید شرکت نرمافزاری مایکروسافت یعنیNET. ارائه گردید، از این رو از تکنولوژیNET. این شرکت بهره میبرد. پس در ابتدا به بیان مطالبی درباره محیطNET. میپردازیم.
فصل اول:تکنولوژیNET.
چراNET.؟
در گذشته زبانهای برنامهسازی، سیستمهای عامل و محیطهای اجرایی نرمافزارها برای دورهای خاص ساخته میشدند. هنگامیکه برنامهها از محیطهای رومیزی(Desktop) به اینترنت منتقل میشدند، ابزارهای موجود نیازمند API هایی اضافی و قابلیتهای دیگری بودند. بیشتر این قابلیتها در کنار زبانهای برنامهسازی بعنوان ابزارهایی جهت رفع این نیازمندیها ارائه میشدند. هرچند این ابزارهای اضافی بصورت قابل توجهی نیازمندیها را حل کرده و باعث رسیدن اینترنت به وضعیت کنونی شدند، اما همچنان مسائل بسیاری وجود داشت که نیاز به حل شدن داشتند.
NET. به منظور پشتیبانی از کاربردهای عصر جدید اینترنت ساخته شد. مواردی همچون گسترش، امنیت و versioning، که از مسایل مهممی بودند، توسط NET. پوشش داده شدند. قسمت مرکزیNET. بخش CLR (Common Language Runtime) است که یک موتور اجرایی مجازی است که از توسعه، امنیت و ارتقای نسخه کد پشتیبانی مینماید. در گذشته چنین امکاناتی برای کدهای کامپایل شده فراهم نبود. بدلیل اینکهNET. توانست بر این مشکلات اساسی فائق آید، راه حل قدرتمندتری جهت ساخت برنامههای تحت اینترنت به شمار میرود.
NET. چیست؟
NET. محیطی جهت ساخت برنامههای توزیع شده است که شامل ابزارهایی نظیر ""کتابخانه کلاسهای پایه"(BCL: Base Class Library)، CLR و زبانهای برنامهنویسی است. این ابزارها امکان ساخت انواع مختلفی از نرمافزارها، از قبیل فرمهای ویندوز، ADONET.، ASPNET. و سرویسهای وب، را فراهم میآورند.
فرمهای ویندوز، مجموعهای از کتابخانهها جهت ساخت رابطهای کاربر گرافیکی برای برنامههای کاربردی است. این کتابخانهها اغلب API های Win32 را در خود دارا میباشند. همچنین امکان استفاده از رهیافت شیگرایی را جهت تولید آسان برنامههای تحت ویندوز، فراهم میآورند.
ADONET. مجموعهای از کلاسهای شیگرایی است که جهت ساخت مولفههای داده و سطوح دسترسی داده در برنامههای n-tiered مورد استفاده قرار میگیرد.
ASPNET. شامل مدل برنامهنویسی فرمهای وب است که بوسیلة آن برنامههای تحت وب ساخته شده و تحت اینترنت قابلیت اجرا پیدا کرده و از طریق مرورگر(Browser) قابل دسترسی میباشند. این روش مدل بهبود یافته برنامهسازی وب است که در آن کدها در سرور کامپایل میشوند ولی همانند صفحات HTML در کامپیوتر مشتری اجرا میشوند.
سرویسهای وب، رهیافتی جدید، مستقل از platform و استاندارد، جهت ایجاد ارتباط و فعالیت بین سیستمهای ناهمگون در اینترنت، میباشند. سرویسهای وبNET.، از زیر ساخت شیگرایی برنامهنویسی ASPNET. استفاده میکنند، اما همچنان از استانداردهای باز و مدلی بر پایة پیغام(Message Based Model) استفاده مینمایند. استفاده از استانداردهای باز از قبیل XML، WSDL و UDDI باعث میشوند تا سرویسهای وب با سایر سرویسهای وب استاندارد که پیادهسازیهایی متفاوت دارند، بدون توجه به محیط و platform آنها، ارتباط برقرار نمایند.
این چند نمونه، اندکی از انواع مختلف نرمافزارهایی بودند که میتوان تحتNET. به پیادهسازی آنها پرداخت.
کتابخانههای کلاسهای پایه(Base Class Library: BCL)
BCL درNET.، شامل هزاران نوع قابل استفاده، جهت افزایش بهرهوری در ساخت برنامههایNET. است. به علت گستردگی BCL یادگیری تمام کلاسهای آن وقتگیر بوده و امکان پذیر نمیباشد، به همین دلیل برای صرفهجویی در زمان بهتر است قبل از ایجاد یک نوع خاص به جستجوی نوعهای موجود در BCL بپردازیم. نگاهی کلی به BCL میتواند بسیار سودمند باشد. جدول زیر Namespace های مهم و توضیح نوعهای مختلف BCL را نمایش میدهد.
جهت دریافت فایل برنامهسازی شیگرا لطفا آن را خریداری نمایید
دسته بندی | کامپیوتر و IT |
بازدید ها | 3 |
فرمت فایل | doc |
حجم فایل | 458 کیلو بایت |
تعداد صفحات فایل | 66 |
بهینهسازی و پردازش پرس و جو
در این تحقیق ما به تکنیکهای بکار رفته توسط DMBS برای پردازش، بهینهسازی و اجرای پرس و جوهای سطح بالا میپردازیم.
پرس و جوی بیان شده در زبان پرسو جوی سطح بالا مثل SQL ابتدا باید پویش و تجزیه . معتبر شود. پویشگر (اسکنر) علامت هر زبان، مثل لغات کلیدی SQL، اساس ویژگی، و اساس رابطه، را در متن پرس و جو شناسایی میکند، در عوض تجربه کننده، ساختار دستوری پرس و جو را برای تعیین اینکه آیا بر طبق قوانین دستوری زبان پرس و جو تدوین میشود یا خیر، چک میکند. پرس و جو باید همچنین معتبر شود، با چک کردن اینکه تمام اسامی رابطه و ویژگی معتبر هستند و اسامی معنیدار در طرح پایگاه اطلاعاتی ویژهای پرس و جو میشوند. نمونه داخلی پرس و جو ایجاد میشود، که تحت عنوان ساختار دادههای درختی بنام درخت پرس و جو میباشد. ارائه پرس و جو با استفاده از ساختار دادههای گراف بنام گراف پرس و جو نیز امکان پذیر است. DOMS باید استراتژی اجرایی برای بازیابی نتیجه پرس و جو از فایلهای پایگاه اطلاعاتی را هدایت کند. پرس و جو استراتژیهای اجرایی بسیاری دارد. و مرحلة انتخاب، مورد مناسبی برای پردازش پرس وجو تحت عنوان بهینهسازی پرس و جو شناخته شده است.
تصویر 1، مراحل مختلف پردازش پرس و جوی سطح بالا را نشان میدهد. قطعه بر نامه بهینهساز پرس وجو، وظیفه ایجاد طرح اجرایی را بعهده دارد و ژنراتور (تولید کننده) که ، کد را برای اجرای آن طرح ایجاد میکند. پردازنده پایگاه اطلاعاتی زمان اجرا وظیفه اجرای که پرس و جو را بعهده دارد، خواه در وضعیت کامپایل شده یا تفسیر شده جهت ایجاد نتیجه پرس و جو. اگر خطای زمان اجرا نتیجه شود، پیام خطا توسط پایگاه اطلاعاتی زمان اجرا ایجاد میشود.
جهت دریافت فایل بهینهسازی و پردازش پرس و جو لطفا آن را خریداری نمایید
دسته بندی | کامپیوتر و IT |
بازدید ها | 0 |
فرمت فایل | doc |
حجم فایل | 113 کیلو بایت |
تعداد صفحات فایل | 29 |
سخت افزار
فصل اول
سخت افزار
1 - 1- سخت افزار
سخت افزار شامل قسمت های زیر می باشد :
1- میکرو کنترولر ATmega8
2- رابط USB
3- LCD جهت ارتباط با کاربر
4- رله و راه انداز آن
1-1-1- میکرو کنترولر :
در این پروژه از ATmega8 به عنوان کنترولر و مدار فرمان رله ها استفاده شده است . در عین حال برای ارتباط با کامپیوتر از طریق پورت USB نیز ، از این میکرو کنترولر استفاده شده است.این میکرو کنترولر از خانواده میکروکنترولر های AVR است .
پروتکل USB به صورت نرم افزاری در برنامه (Firmware) میکرو پیاده سازی شده است و می تواند با استاندارد USB 1.1 Low به تبادل اطلاعات بپردازد.
برنامه این میکرو بر اساس کامپایلر GCC نوشته شده است که برای کامپایل آن می توان از برنامه WinAvr استفاده کرد .
LCD بکار رفته در این پروژه کاراکتری و 16*2 می باشد که بصورت مستقیم توسط نرم افزار کامپیوتری ، متن یا دستوالعمل را گرفته و اجرا می کند .
در برنامه کامپیوتری برای ارتباط با پورت USB از درایور آماده libusb استفاده شده است .
برنامه کامپیوتری توسط زبان C++Builder تهیه شده است. این برنامه مستقیماٌ از میکروفن کامپیوتر صوت را دریافت کرده و پس از ذخیره در بافر داخلی شروع به تجزیه و تحلیل می کند. روال کار به این صورت است که از اطلاعات ورودی که در بازه زمان هستند تبدیل فوریه (FFT) گرفته شده تا به بازه فرکانس بروند . سپس با پردازش روی طیف فرکانسی و کمی کار آماری حدود شباهت صوت دریافتی را با نمونه های ذخیره شده مقایسه می کند .
1-1-2- لخت افزار Firmware :
میکرو میتواند پنج دستورالعمل مختلف را از کامپیوتر دریافت نموده و اجرا نماید .
1- ارسال یک بایت دستورالعمل به LCD : cmdLCD_Command
2- ارسال یک بایت دیتا به LCD : cmdLCD_Data
3- نمایش یک رشته متنی روی LCD : cmdLCD_Str
4- روشن و خاموش کردن BackLight : cmdLCD_BL
5- کنترل رله ها : cmdSWITCH
برای کنترل LCD سه تابع طراحی شده است :
void LCD_Command(uchar command)
void LCD_Data(uchar data)
void LCD_Init(void)
این توابع برای ارسال دستورالعمل ودیتا و همچنین تنظیمات اولیه استفاده می شوند .
یکی از توابعی که در بخش USB آن استفاده می شود usbFunctionSetup است که توسط آن به درخواست رسیده شده از کامپیوتر پاسخ داده می شود .از تابع usbFunctionWrite جهت دریافت اطلاعات از کامپیوتر استفاده می گردد . تابع دیگری که برای ارسال دیتا به کامپیوتر از آن استفاده می شود usbFunctionRead نام دارد که در این پروژه از آن استفاده نگردیده است
جهت دریافت فایل سخت افزار لطفا آن را خریداری نمایید
دسته بندی | کامپیوتر و IT |
بازدید ها | 0 |
فرمت فایل | doc |
حجم فایل | 89 کیلو بایت |
تعداد صفحات فایل | 56 |
مقدمات داده پردازی
مقدمات داده پردازی
تعریف داده(Data)
هر اطلاع مفید ولازم درباره چیز یا امری رایک داده می گویند.به شناسنامه خود نگاه کنید.نام، نام خانوادگی،نام پدر ،سال تولد،محل تولد،شماره شناسنامه وسایر اطلاعات آن ،همه درباره شماست.
اینها داده های مرتبط با شما هستندوشما را از دیگران متمایز ومجزا می کنند؛ به شما سود می رسانند؛
حقوق شما را محفوظ می دارند وبه دولت امکان می دهند که برای شما برنامه ریزی کندو امکانات فراهم سازد.
داده ها در همه امور، نقش بازی می کنند.مثلا در دادوستد، داده ها نقش بسیار بزرگی دارند.اطلاع ازاین که چه مقدارپول دارید؛ بابت چه کالا وخدماتی پول گرفته یا پرداخته اید؛ از چه حسابی پول برداشته وبه کدام حساب واریز کرده اید؛ چقدر طلبکبرید وچقدر بدهکارید؛و…. همه، داده های مالی شما هستند . حسابداران با چنین دا ده های مالی سروکاردارند وآن را مدیریت می کنند وازآن ها نتیجه گیری می کنند.
گفتیم که داده ها باید مفید ولازم باشند.مثالی می زنیم:
اگردر شناسنامه شما وزن یا قد شما را می نوشتند،صحیح بود؟ پاسخ منفی است.ذکر وزن وقد در شناسنامه کاربردی ندارد و وجود آنها لازم نیست، هر چند که مفید است.اما در پرونده پزشکی شما هم لازم هستند وهم مفید،زیرا به شناسایی وضع سلامت شما ونیز، به شناخت ودرمان بیماری شما یاری میرسانند.
داده ها با هم ارتباط دارند.
اگر بدانید شماره شناسنامه شخصی 259 است، آیا می توانیداورا پیدا کنید؟ این کار دشوار است. ممکن است شماره شناسنامه خیلی از مردم259 باشد. حالا اگر بدانید که نام آن شخص مثلا مسعود است یافتن او آسانتر می شود؛ هر چند که هنوز هم شاید اسم خیلیها مسعود وشماره شناسنامه شان 259 باشد.اما اگر در همین حال، نام خانوادگی او را هم بدانید دیگر یافتن اوساده می شود.نتیجه ارتباط داده ها به یکدیگر، شناسایی سریعتر است.داده هایی که به هم ارتباط نداشته باشند یا نتوان ارتباط آنها را نسبت به هم پیدا کرد، کاربرد زیادی ندارد وشاید اصلا به درد نخورد.
داده های نامرتب کاربرد ندارند.
اگر اطلاعات وداده های زیادی را بدون نظم وترتیب در جاهای مختلف پخش کنید، چطور می توانید به هنگام نیاز ازمیان آنها چیز خاصی را پیدا کنید؟داده ها هم مثل اشیای یک خانه یا انبار هستند وفقط از طریق نظم دادن وطبقه بندی وتازه کردن آنهاست که می توان از آنها سود برد .
داده ها چگونه مرتب میشوند؟
راههای مختلفی برای مرتب کردن داده ها وجود دارد.یکی از آسانترین روشها آن است که داده هارا به شکل یک جدول در آوریم. همه شمامی دانید جدول چیست.برنامه دانشگاه شما یک جدول است.دفتر حضور وغیاب کلاس شما یک جدول است صورتحساب بانکی پدر ومادر شما یک جدول است . اصول تمام جدولها یکی است ودرک آن نیز بسیار آسان است.در تمام آنها،برای مرتب کردن اطلاعات صفحه را خط کشی کردند وآن به شکل سطر ها وستونها در آوردند.به این ترتیب ، مجبورید اطلاعات را به شکل مرتب و زیر هم ،در جدول وارد کنید.در بالای هر ستون جدول،نام آنچه را که قرار است در آن ستون وارد کنید،می نویسید.در هر سطر اطلاعات،نام شخص یا چیزی را که آن داده ها به او مرتب است می نویسید.مثالی می زنیم.کتابهایی را که در خانه یا دانشگاه دارید،در نظر بگیرید.می توانید یک جدول درباره ی آنها تشکیل دهید و اطلاعات مرتبط با کتابها را در آن نگهداری کنید.در مورد هر کتاب می توانید داده هایی از قبیل نام کتاب،نام نویسنده،نام مترجم،نام ناشر،تعداد صفحات،تاریخ نشر و… را به صورت زیر،تبدیل به یک جدول کنید.
حال،برای هر کتاب اطلاعات مرتبط با آن را در یک سطر این جدول می نویسید:
نام کتاب |
نام نویسنده |
نام مترجم |
نام ناشر |
تعداد صفحات |
شناسایی وشکار جاسوس |
پیتر رایت |
محسن اشراقی |
مؤسسه اطلاعات |
608 |
ساعت سرمستی |
هیوبرت ریوز |
دکتر سهامی |
نشر قطره |
339 |
… |
… |
… |
… |
… |
البته می توان این جدول را به هر شکل دیگری تهیه کرد و درباره ی هر کتاب اطلاعات دیگری مانند نوبت چاپ،شماره ی شناسایی کتاب و…را نیز در جدول وارد کرد.مهم،اطلاعاتی ست که شما درباره ی هر کتاب مفید و لازم می دانید و داده های شما به شمار می آیند.این جدول،داده های شما را مرتب می کند.به این جدول داده ها(Data Table)می گویند.
جستجو در جدول داده ها
گفتیم که مرتب کردن اطلاعات ، جستجو در آن را آسان می کند فرض کنید که جدولی از کتاب های موجود در خانه یا دانشگاه خود را تهیه کرده اید واینک می خواهید بدانید که مثلا کدامیک در سال 1371چاپ شده است.
در این صورت، به شکل زیر عمل می کنید:
ستون تاریخ نشر را می بینیم وآن را از بالا به پایین مرور می کنید . در هر خانه ای از این ستون که عدد 1371 که دیدید آن سطر جدول را با یک قلم رنگی رنگ می زنید یا بیرون جدول ، کنار نام کتاب ،یک علامت می گذارید. وقتی همه جدول را مرور کردید تمام سطرهایی که علامت دارند یا رنگ شده اند، کتابهای مورد نظر شماهستند به همین شکل، جستجوی نام نویسنده خاص ویا هر مورد دیگر ،آسان می شود.
با ارزان شدن وتوانمندشدن رایانه ها،بزودی برنامه نویسان بر آن شدند تا برنامه های کاربردی قدرتمندی را برای کار با اطلاعات ایجاد کنند.که در عین حال آسان وهمه فهم باشد.یکی از آخرین محصولات نرم افزاری ویژه ی این کار،برنامه های اداری شرکت میکروسافت است،این سلسله از برنا
مه های میکروسافت آفیس(MicrosaftOffice)نام دارد و مجموعه ای از چند برنامه ی ک
اربردی برای ماشینی کردن دفاتر کار است.
یکی از قطعات این مجموعه برنامه ها،برنامه ی کاربردی اکسس است که برای داده پردازی و استفاده از اطلاعات ایجاد شده است.این برنامه می تواند یک پایگاه داده ها را اداره کند.اینک ببینیم که پایگاه داده ها چیست؟
تعریف پایگاه داده ها
گفتیم که یکی از روشهای آسان اداره ی داده ها،ایجاد جدول مرتبی از آنهاست که به آن جدول داده ها (DataTable)می گویند.
برنامه ی اکسس،دو یا چند جدول داده را،پایگاه داده ها (Database)می نامدو می تواند آن رابه خوبی اداره کند.برنامه ای را که می تواند یک پایگاه داده ها را اداره کند،برنامه ی مدیریت پایگاه داده ها(Database Management Program)می گویند.اکسس،یک برنامه ی مدیریت پایگاه داده هاست.به مجموعه ای از جدولهای داده ها،پایگاه داده ها می گویند.
جهت دریافت فایل مقدمات داده پردازی لطفا آن را خریداری نمایید