تارا فایل

تحقیق در مورد چند برنامگی


چند برنامگی
مقدمه ای به سیستم های عامل
در پروژه بعدی شما پشتیبانی مناسب برای چند برنامه نویسی را طراحی و اجرا خواهید کرد. شما فرمان های سیستم را طوری توسعه خواهید داد که اصول ارتباط درون فرایندی و مدیریت فرایند را انجام دهد. شما این را به پروژه اول دارای کد می افزایید. اطمینان حاصل که قبل از شروع پروژه دوم تمام نواقص در پروژه اول را اصلاح کرده اید. این راه حل برای پروژه یک به عنوان بخشی از جلسه هفته بعد مورد بررسی قرار خواهد گرفت.
ناکوس در حال حاضر یک محیط تک برنامه نویسی است. ما مجبوریم ناکوس را تغییر دهیم به طوری که هر فرایند در مسیر سیستم خود حفظ شوند. ما باید تخصیص حافظه و واپس گیری آن توجه داشته باشیم. هم چنین تمام داده ها و وابستگی های همزمان سازی بین رشته ها را مد نظر قرار می دهیم. شما ابتدا قبل از کد گذاری راه حل را طراحی می کنید جزئیات در زیر آورد است:
1- استثنائات کلی (استثنائات تماس غیر سیستمی) برای به اتمام رساندن رشته به جای متوقف کردن سیستم را تغییر دهید. این کار مهم خواهد بود زیرا یک استثنای زمان اجرا نباید باعث شود که سیستم عامل خاموش شود. قبل از تکمیل پروژه احتمالاً مجبور خواهید بود که چندین بار به این کد سر بزنید. چند موضوع مربوط به همزمان سازی وجود دارد که باید در طی خروج از رشته به آن ها بپردازید.
2- چند برنامه نویسی را اجرا کنید. کدی که به شما داده ایم محدود به اجرای یک برنامه کاربرد در هر بار می باشد. برای تغییر سیستم از تک برنامه نویسی به چند برنامه نویسی باید چند تغییر در addrspace.h و addrspace.cc انجام دهید. باید کارهای زیر را انجام دهید: الف) به شیوه ای برای تخصیص فریم های حافظه فیزیکی برسید به طوری که چندین برنامه را بتوان به یکباره در حافظه بارگذاری کرد.
ب) شیوه ای برای کپی کردن داده ها به هسته یا از هسته و از فضای آدرس مجازی کاربر یا به آن فراهم کنید.
ج) وقتی یک برنامه کاربر پایان می یابد به طور مناسب آزادسازی فضای آدرس انجام شود.
د) تغییر الگوریتم بارگذار برنامه کاربر به طوری که فریم های اطلاعاتی را جابجا کند بسیار مهم است. در حال حاضر تخصیص فضای حافظه با این فرض است که یک فرایند در یک بخش مجاور حافظه بارگذاری شده است. وقتی چند برنامه نویسی فعال شد، حافظه دیگر ماهیتاً مجاور محسوب نمی شود اگر برنامه را اصلاح نکنید احتمال دارد که بارگذاری دیگر برنامه کاربر سیستم عامل را خراب کند.
3- فرمان سیستم space id exec (char*name) را اجرا کنید. Exec یک برنامه کاربر جدید مشخص شده در نام پارامتر، اجرا شده در درون یک رشته سیستم جدید را شروع می کند. شما باید کارکرد start process در progtest.cc را بررسی کنید تا دریابید که چگونه فضای کاربر در درون یک رشته سیستم را ایجاد کنید. Exec باید در هنگام خطا 1- را برگرداند در غیر این صورت باید "process space id" برنامه سطح کاربری که ایجاد کرده است را برگرداند (نکته: space id ها می تواند به شیوه ای مشابه با open file id های پروژه 1 شما پیگیری شود با این استثنا که ممکن است بخواهید در خارج از رشته ان ها را دنبال کنید).
4- فرمان های سیستم int join (space ID id) و void exit (int exit code) را اجرا کنید. Join آن طور که در پارامتر آن ذکر شده است منتظر مانده و یک process space id را مسدود می کند. exit یک خروج را بر هر کسی که کار اتصال انجام می دهد بر می گرداند اگر یک برنامه به طور موفقیت آمیزی تکمیل شود کد خروج صفر است و اگر خطا وجود داشته باشد مقدار دیگری می شود. پارامتر کد خروج از طریق پارامتر exit code تعیین می شود. اگر اتصال با خطا مواجه شود join کد خروج برای فرایندی که مسدود می کند را 1- تعیین می کند. یک برنامه کاربر فقط می تواند به فرایندهایی بپیوندند که به طور مستقیم به وسیله فرمان سیستم exec ایجاد شده باشد. می توانید به فرایندهای دیگر یا به خودتان متصل شوید. شما مجبور خواهید بود تا از راهنماهای درون فرمان های سیستم خود برای هماهنگ کردن فرایندهای کاربر joining و exiting استفاده کنید. مشاهده خواهید کرد که این را می توان به عنوان ویرایشگر ساکنipc (ارتباط درون فرایندی) الگوسازی کرد.
5- فرمان سیستم int creates semaphore (char*name, int semval) را اجرا کنید. از فرمان سیستم حذف که در پروژه اجرا کرده اید درخواهید یافت که ما مجبور خواهیم بود تا start.c و syscall.h را روزامد کنیم تا امضاهای فرمان سیستم جدید بیفزاییم. شما یک ظرف در سطح سیستم ایجاد خواهید کرد که می تواند تا 10 راهنمای نام گذاری شده را در خود جای بدهد. در هنگام موفقیت سیستم create semaphore عدد صفر و در هنگام خطا عدد 1- را بر می گرداند. اگر نقاط آزاد کافی در ظرف وجود نداشته باشد فرمان سیستم create semaphore خطا خواهد شد، نام تهی بوده و یا مقدار اولیه راهنما کمتر از صفر می باشد.
6- فرمان های سیستم int wait (char *name) و int signal (char *name) را اجرا کنید. پارامتر اسم نام راهنما می باشد. هردو فرمان سیستم در هنگام موفقیت صفر و در هنگام خطا 1- را بر می گرداند. اگر کاربر یک نام راهنما غیر قانونی (نامی که ایجاد نشده است) را بدهد خطا می تواند اتفاق بیفتد.
7- یک برنامه واسطه ساده برای امتحان فرمان های سیستم جدید اجرا شده به صورت بالا را اجرا کنید. برنامه واسطه باید در هر بار یک دستور بگیرد و برنامه کاربرمناسب را اجرا کند. برنامه واسطه باید در هر برنامه "exec"ed را متصل کند و منتظر خروج برنامه بماند. در هنگام برگشت از join ، کد خروج را در صورتی که غیر صفر باشد (اجرای طبیعی) چاپ کنید. هم چنین برنامه واسطه را طوری طراحی کنید که بتواند در پس زمینه برنامه اجرا کند. هر دستور شروع شده با کاراکتر (&) باید در پس زمینه اجرا شود.
8- یک راه حل سطح کاربر برای مشکل تولید کننده / مصرف کننده ایجاد کنید. راه حل باید از سه برنامه تشکیل شده باشد: یک برنامه شروع سطح اصلی، تولید کنندگان و مصرف کنندگان. برنامه شروع سطح اصلی باید به صورت حداقل کاربر برای تعداد تولید کنندگان برای "exec" و تعداد مصرف کنندگان "exec" و هم چنین یک شمارش تکرار برای تولید کنندگان و مصرف کنندگان و اندازه بافر محدود را ترغیب کند. برنامه شروع اصلی سپس تولید کنندگان ومصف کنندگان را exec می کند و منتظر می ماند تا زمانی که تمام فرایندها تکمیل شود. هر تولید کننده باید یک بار مفید کاراکتر منحصر به فرد ایجاد کند (مثال: تولید کننده یک a را تولید می کند و تولید کننده دو b را تولید می کند). تولید کنندگان و مصرف کنندگان باید تکرارها را در یک فرمت خلاصه وشفاف چاپ کنند. توجه داشته باشید که exec اجازه مباحث خط فرمان را نمی دهد. شما می توانید از فایل از پروژه یک به عنوان بافر مشترک برای توجه به این مشکل استفاده کنید.
9- دو برنامه کاربر به جز اقلام هفت و هشت طراحی کنید که بالاتر ازآن بتواند در داخل برنامه واسطه اجرا شود تا قوی بودن راه حل کلی پروژه شما را نشان دهد.
10- مستندسازی (10 درصد) شامل مستند سازی داخلی و مستند سازی خارجی طبق آن چه که در پروژه یک توصیف شده است می باشد. یک فایل reade ایجاد کنید و آن را در دایرکتوری کد قرار دهید. کد خود را tar کنیدو آن را به عنوان یک فایل ارایه کنید. راهنمایی های ارایه شده در پروژه یک را دنبال کنید. ما در نظر داریم نرم افزار آشکار ساز سرقت اتوماتیک را برای اشکار کردن هر گونه پروژه کپی شده اجرا کنیم. پیامدها معمولا برای کسانی که در صداقت اکادمیک ندارند نامطلوب می باشد بنابراین به تنهایی کار کنید و نه به صورت گروه. این پروژه گروهی نیست پروژه های دیرتر از موعد پذیرفته نمی شود. مستند سازی خارجی حاوی طرح نشان داده شده به وسیله یک نمودار کلاسی آنلاین را در تاریخ مقرر ارایه کنید وقتی نمونه نمایشی خود را انجام دادید یک کپی سخت به همراه خود به TA بیاورید.

چند وظیفه ای
توانایی اجرای بیش از یک وظیفه به صورت همزمان را گویند که این وظیفه یک برنامه است. عبارت های چند وظیفه ای و چند پردازی اغلب به جای هم استفاده می وشند اگر چه چند پردازی حاکی از ان است که بیش از یک سی پی یو نقش دارد. در چند وظیفه ای، تنها یک سی پی یو نقش دارد اما با چنان سرعتی از یک برنامه به برنامه دیگر تغییر می کند که این گونه به نظر می رسد که تمام برنامه ها به طور همزمان اجرا می شوند.
دو نوع اصلی چندوظیفه ای وجود دارد: انحصاری و مشارکتی. در چند وظیفه ای انحصاری، سیستم عامل برش های زمانی سی پی یو را به هر برنامه را به صورت بسته ای ارسال می کند. در چند وظیفه ای مشارکتی هر برنامه می تواند سی پی یو را تا زمانی که نیاز دارد کنترل کند. با این حال اگر یک برنامه از سی پی یو استفاده نمی کند می تواند به برنامه دیگری اجازه دهد به طورموقت ازآن استفاده کند. OS/2 ، ویندوز 95 ، ویندوز NT و سیستم عامل امیگا و یونیکس از چند وظیفه ای انحصاری استفاده می کنند در حالی که میکروسافت ویندوز و مولتی فایندر (برای کامپیوترهای مکین تاش) از چندوظیفه ای مشارکتی استفاده می کنند.
سیستم های عامل چند برنامه ای / چند وظیفه ای
در ابتدا کاربران از این تسهیلات برنامه واحد راضی بودند اما با ایجاد سی پی یوها قوی تر، حافظه بیشتر و دیسک درایورها بزرگ و ارزان سیستم های عاملی ایجاد شده اند که اجازه می دهند که بیشتر از یک برنامه یا وظیفه به طور همزمان اجرا شود. این را چند وظیفه ای یا چند برنامه ای گویند. یک پردازشگر واحد نمی تواند بیش از یک وظیفه را به طور همزمان پردازش کند. فقط ظاهراَ این گونه است. گاهی اوقات این را پردازش همزمان یا متقارن گویند. سیستم عامل ویندوز این کار را با دادن بخش انحصاری حافظه به هر برنامه و حافظه مشترک برای کات کردن و پیست کردن بین برنامه های کاربردی انجام می دهد. به هر وظیفه می شود بخش خاصی از زمان سی پی یو را اختصاص داد (که به آن تقسیم زمان گفته می شود) و معمولا هر وظیفه به عنوان یک وظیفه با گردش نوبت اجرا خواهد شد که در آن هر وظیفه به نوبت خدمات رسانی می شود. در این جا یک مقایسه با معلمی وجود دارد که تلاش می کند به چندین سوال دانش اموزان با دادن یک برش زمانی به هر سوال و سپس رفتن به سوال بعد پاسخ دهد. اگر تعدادی از سوالات در مقدار زمان موجود پاسخ نداده شود به صورت تعلیق درآمده و سپس وقتی که مجددا نوبت به دانش آموز رسید به آن ها پاسخ داده می شود. در موقعیت کامپیوتر هر وظیفه به نوبت انجام می شود تا زمانی که وظیفه آخر پردازش شده و سپس کل فرایند شروع شود.
در مثال بالا یک وظیفه در صف پردازشگر وارد می شود و اگر قابل اجرا باشد در زمانی که برش زمانی آن ظاهر می شود به پردازشگر داده می شود. در این مرحله سه پیامد ممکن وجود دارد:
می تواند پایان یابد
زمان پردازشگر به پایان می رسد و به صف بر می گردد تا منتظر نوبت خود شود.
به زبان I/O نیاز دارد وقتی این اتفاق می افتد به صف I/O که در ان منتظر ابزار می ماند تا آزاد شود.
مشکلات عمده مربوط به سیستم های چند وظیفه ای به شرح زیر می باشد:
اگر یک وظیفه قرار باشد که هر بار به آن نیاز باشد مجددا بارگذاری شود احتمالا برش زمانی آن به پایان می رسد. با قرار دادن هسته برنامه در حافظه مقداری پردازش می توان اتفاق بیفتد. کارامدترین سیستم های چند وظیفه ای نیاز به حافظه زیادی برای کار موثر دارند. اگر وظایف زیادی شروع شود سیستم تا حد یک سرعت قابل قبول کند می شود.
در ساده ترین شکل به دو وظیفه پنجاه درصد زمان سی پی یو داده می شود. متاسفانه سیستم عامل نیز به مقدار زمان سی پی یو نیاز دارد و با افزایش لیست وظیفه این زمان افزایش می یابد. به تدریج سیستم به حالت توقف می رسد.
برنامه های بزرگ باید مقداری اطلاعات ذخیره شده در دیسک داشته باشند و بازیابی زمان بر است.
تکنیک معمول برای پرداختن به این مشکل تجزیه برنامه ها به صفحات داده است. مکررترین صفحه استفاده شده در حافظه به جا می ماند و فقط وقتی برنامه تلاش می کند تا به صفحه ای دست پیدا کند که در حافظه وجود ندارد، سیستم عامل صفحه مناسب را خواهد آورد. در برنامه های بزرگ یا نامناسب هنوز می تواند زمان افزایش پیدا کند و منجر به شکل گیری ایده ای به نام فعالیت های زیادی دیسک می شود که در آن صفحات از حافظه به دیسک و از دیسک به حافظه آورده می شوند پردازش بسیار کمی اتفاق می افتد اگر سیستم به خوبی کار کند ما یک سیستم حافظه مجازی خواهیم داد. موقعیت زیر را تصور کنید:
یک کامپیوتر دارای 10 مگابیت حافظه می باشد که به صفحات 10 * 1 مگابیت صفحه بندی شده است هر صفحه دارای یک ادرس فیزیکی (واقعی) و صفحه آدرس می باشد. یک برنامه 20 مگابیت فضا می گیرد و مجددا صفحه بندی می شود. وقتی برنامه شروع می شود 10 مگابیت اول در برنامه بارگذاری می شود. پردازش شروع شده و تا زمانی که به یک آدرس در خارج از ده مگابیت نیاز است ادامه پیدا می کند. در این نقطه سیستم عامل یک اختلال ایجاد می کند که پردازش شده و به آن پاسخ داده می شود در این حالت سیستم یک صفحه حافظه را با یک صفحه ذخیره شده در دیسک جایگزین می کند. در اصل حافظه برای کاربر این گونه به نظر می رسد که حافظه واقعی (RAM) به اضافه ظرفیت درایو هارد می باشد.
تکنیک های پیچیده مدیریت حافظه باید برای متوقف کردن یک برنامه از همپوشانی حوزه حافظه دیگری مورد استفاده قرار گیرند.
به هر برنامه باید حوزه حافظه مخصوص به خود داده شود و تحت شرایط طبیعی هیچ برنامه دیگری به ان دسترسی نخواهد داشت. درموقعیتی که در آن دو برنامه حافظه را به طور همزمان اشغال می کند اگر برنامه A داده ها در حوزه برنامه B را تغییردهد آن گاه برنامه B احتمالاً متوقف خواهد شد. در نسخه های اولیه ویندوز این کار سیستم عامل را نیز متوقف می کرد. شرایطی وجود دارد که در ان این قانون شکسته شده است. در برنامه های ویندوز این امکان وجود دارد که تا از یک برنامه به برنامه دیگر کات و پیست کرد. داده ها در یک حوزه همپوشانی کات شده و سپس از این حوزه پیست می شود.
یک رابط گرافیکی به مسائل برنامه نویسی چند وظیفه ای
مقدمه
مبنای این پروژه بر اساس محیط چندوظیفه ای در سطح سیستم عامل است. یک موضوع مهم مد نظر توانایی برای اجرای برنامه های مستقل از سکو با استفاده از یک رابط کاربر گرافیکی مشترک است. برنامه کاربردی با استفاده از بیسیک ویژوال میکروسافت ایجاد شده است. این برنامه بر مبنای مفهوم برنامه نویسی خطی در یک محیط چند توسعه ای می باشد. در حال حاضر این برنامه محیط برنامه نویسی ویژوال بیسیک و ویژوال C++ را با ارایه قابلیت های ویرایش، گرداوری و اجرا تلفیق می کند. RUNAPP دارای قابلیت جستجوی منابع اینترنتی است که به ایجاد کنندگان کمک می کند تا اطلاعاتی در مورد محیط های متفاوت از طریق اینترنت پیدا کند. این ابزار هم چنین به ایجاد کنندگان در دانلود و آپ دیت جدیدترین کنترل ها، الگوها و DLL ها به طورمستقیم در محیط مربوط به همچون ویژوال بیسیک یا ویژوال C++ کمک می کند. این برنامه کاربردی تمام ویژگی های ویرایشی هر پردازشگر ورد پایه را فراهم می کند. RUN APP شخصیت یک محیط توسعه، ابزار اشکال زدایی، دسترسی به اطلاعات و الگوی اجرای کاربرد را دارا می باشند. این یک مستقل است که محیط های برنامه نویسی متعدد را دریک واحد دارای قابلیت چند وظیفه ای همراه می کند.
کلمات کلیدی: چند وظیفه ای، حافظه مشترک، آشکار سازی خطا، تولرانس عیب، کتابخانه لینک پویا.
1- مقدمه
میکروکامپیوترهای ظرف یک دوره زمانی کوتاه به طور قابل ملاحظه ای سریع تر شده اند و شبکه های بزرگ میکروکامپیوترها از کامپیوترهای مین فریم ارزان ترند. سیستم های کامپیوتری امروز زمانی که تمام جزئیات آن ها بررسی می شود بسیار پیچیده هستند. افزایش در تعداد کامپیوترها به همراه افزایش در تعداد کاربران منجر به نیاز به داشتن رابط های کاربر ساده و استاندارد شده است. نمایش گرافیکی و بصری یک محیط بازدهی را افزایش می دهد و زمان توسعه را سرعت می بخشد. به علاوه بسیاری از وظایف اجرایی با استفاده از گرافیک به جای متن ساده برای نشان دادن اطلاعات ساده تر شده اند. یک محیط احساس واقعی (منابع موجود، مقادیر متغیر حافظه، مقادیر داده ها و غیره) موقعیتی است که یک فرایند خاص در هر نقطه زمانی معین را توصیف می کند. یک محیط ابزارها، پایگاه داده ها یا فایل ها، افراد، سخت افزار، یک شبکه، سیستم های عامل، استانداردها و بسیاری از مولفه های دیگر را شامل می شود. همزمانی، اجرای هماهنگ چند فرایند در درون یک سیستم است. در یک سیستم متمرکز شاخه شاخه ساختن اجرای هر فرایند شبیه همزمانی است. ساختار حافظه مشترک یک ابزار بسیار کارآمد برای فرایندها برای مبادله داده ها فراهم میکند.
بسیاری از رابط های کاربر فیزیکی به سیستم های الکترونیک برای بزرگترین مخرج مشترک تجربه انسانی طراحی شده اند به جای ان که با تکثر تجربه انسانی ارتباط داشته باشند. از طرف دیگر تعدادی از رابط ها به صورت پویا بر اساس نیازهای فردی تغییر یافته اند. بخش اعظم محیط های توسعه معمول در یک حالت تک وظیفه ای محدود کننده کاربران به یک زبان برنامه نویسی کار می کنند.
رابط های کاربر گرافیکی هوشمند می توانند بسیاری از فرایندهای پیچیده را ساده کرده و اقداماتی فرد برای اجرای وظایف خسته کننده نیاز به انجام دارد را کاهش می دهند. هدف این پروژه ایجاد یک رابط کاربر گرافیکی (JUI) می باشد که به مسائل چند وظیفه ای بپردازد. دربسیاری از موارد غلبه بر موانع مستلزم تعیین فرایندهای متعارض بین رویدادها در سیستم می باشد. از آن جا که اجرا و عاملیت کامل غیر ممکن است، چند گزینه اشکال زدایی باید گنجانده شود.
روش
با اجرای یک سیستم توسعه دهنده برنامه کاربرد چالش های زیای است که باید رفع شود. اولین چالش انتخاب یک سیستم عامل است که به کاربر اجازه می دهد تا به منابع متعدد موجود توجه نداشته باشد. برنامه کاربردی که به آن RUNAPP گویند باید قادر به انجام مدیریت منبع هوشمند و چندوظیفه ای باشد که بوسیله سیستم های عامل میکروسافت ویندوز پشتیبانی می شود. برخی دیگر از موانع شامل اجرای موارد زیر می باشند:
* آشکار سازی و رفع خطا.
* تخصیص منابع مناسب
* حصول اطیمنان از همخوانی داده ها
* ارایه یک سیستم تحمل کننده عیب.
یکی از ویژگی ها و چالش های کلیدی در طراحی این سیستم، سیستم عامل چند وظیفه ای است. سیستم RUNAPP لایه نرم افزاری در سیستم عامل است که وظیفه برنامه نویسی را ساده می کند. این سیستم به عنوان یک برنامه کاربردی استاندارد ظاهر می شود اما در سطح هسته پشتیبان محیط های متعدد اجرا می شود.
دو نگرانی عمده دیگر در طراحی سیستم جاری آشکارسازی خطا و رفعخطا می باشد. در سیستم چند محیطی وقتی یک یا چندمولفه (همانند حافظه، مراجعه کننده، فرایندها، هسته و غیره) با نقص مواجه شوند این خطا حیاتی است. معمولا این خطا فورا شناسایی شده و می تواند به طور مناسب رفع شود. در سیستم تک محیطی همانند سیستم جاری آشکارسازی خطا و رفع آن بسیار پیچیده تر است.
صفحه نمایش ابتدایی که در شکل 1 نمایش داده شده است اولین صفحه ای است که برنامه را معرفی کرده و اطلاعات نسخه را ارایه می کند. این صفحه تا زمانی که کل برنامه در پس زمینه بارگذاری می شود باقی می ماند. وقتی RUNAPP درحافظه بارگذاری شد، صفحه نمایش ابتدایی از صفحه ناپدید می شود و از حافظه خارج می شود. صفحه بعدی که بارگذاری می شود منوی کاربر در واحد برنامه کاربردی می باشد. همان طور که در شکل 2 می توان دید این چیزی بیشتر از یک صفحه شروع است که کاربر را قادر می سازد تا وظیفه یا گزینه ای که می خواهد اجرا کند را انتخاب کند. یک مزیت RUNAPP این است که وقتی کاربر یک وظیفه را انتخاب می کند به طور مستقیم آن وظیفه را بدون این که مجبور باشد در تمام منوها و گزینه های دیگر جستجو کند، انجام می دهد. دکمه EXIT در این صفحه فقط منو را خارج می کند و نه برنامه کاربردی را . اگر کاربر خارج شود طبق آنچه که در شکل 3 نشان داده شده است به صفحه اصلی آورده می شود. اگر کاربر آن گزینه را بخواهد و برنامه متناظر قبلا در کامپیوتر بارگذاری شده باشد این کار ویژوال بیسیک یا ویژوال C++ را به طور مستقیم بارگذاری می کند. گزینه "RUN A PROGRAM" به کاربر اجازه می دهد تا به طور مستقیم یک فایل قابل اجرای قبلا کامپای شده را که به وسیله خود او ایجاد شده است اجرا کند. گزینه فایل "NEW" یک فایل منبع جدید را باز می کند که در آن کاربر می تواند برای C ، C++ یا ویژال بیسیک کد بنویسید.
شکل 3 صفحه اصلی برنامه کاربردی را نشان می دهد. کل محیط / برنامه کاربردی RUNAPP در یک فرایند واحد گنجانده شده است. یک فرایند ، یک برنامه ای در حال اجرا است. تمام فرایند در محیط توسعه تعلق به فرایند اصلی دارند که RUNAPP است. هر فرایند فرعی (رشته) به عنوان یک وظیفه استاندارد در محیط ویندوز (تحت مدیر وظیفه ویندوز) نشان داده می شود و به وسیله سیستم عامل یک وظیفه منحصر به آن داده می شود زیرا یک فرایند اصلی شروع به وسیله RUNAPP است. یک فرایند وضعیت جاری فعالیت تحت عنوان حالت فرایند را در بر می گیرد. فرایندهای متعدد RUNAPP را می توان در سطح سیستم عامل شروع کرد (زیرا ویندوز 95 چند وظیفه ای را پشتیبانی می کند) و هر فرایند محیط مخصوص به خود، حافظه تخصیص یافته را خواهد داشت و مستقل از هر وظیفه دیگری کامل می شود. این کار به وسیله شیوه توسعه RUNAPP تحت یک محیط رابط سند واحد (SDI) انجام شده است.
صفحه اصلی دارای نوار منو، نوار ابزار و نوار وضعیت است که تمام قوانین و جنبه های برنامه ویندوز استاندارد را رعایت می کند. تمام ویژگی های ویرایش متن غنی طراحی شده در این برنامه کاربردی در نوار ابزار به همراه دیگر کارکردهای فایل و پرینت گنجانده شده اند. تمام اسناد باز شده برای ویرایش در درون این پنجره اصلی نمایش داده می شوند. گزینه دیدن و ویرایش آن ها در فرمت متن غنی، به عهده کاربر گذاشته شده است اما فایل های منبع در فرمت متن ذخیره می شوند. هر برنامه یا محیط توسعه جدید به عنوان یک وظیفه / فرایند جدید در سطح سیستم عامل تکثیر می شوند و در صورت می تواند ادامه پیدا کند تا مستقل از RUNAPP اجرا شود.
RUNAPP به کاربر اجازه می دهد تا هر فایل منبع را از یک درایور محلی یا شبکه باز کرده و آن را در یک محیط ویرایش متن غنی بارگذاری کند. این کارها را می توان از داخل RUNAPP انجام داد. فایل های متعددی را می توان به طور همزمان ویرایش و گردآوری کرد. نسخه های فایل فعلی پشتیبانی شده عبارتند از: فایل های منبع C ، C++ ، واحدهای ویژوال بیسیک، پروژه های ویژوال بیسیک و فایل های ویژوال C++ . با استفاده از یک اشاره گر فایل که به یک ساختار که حاوی اطلاعات در مورد آن فایل می باشد اشاره می باشد، به فایل های C دسترسی پیدا می شود. روش مشابهی برای دسترسی به انواع فایل های دیگر در پیش گرفته می شود. دیگر فرمت های فایل را می توان به صورت پویا یا با افزودن فیلتر به کد ویژوال بیسیک این واحد به این بنرامه کاربردی افزود. هم چنین می توان متن و داده ها را از یک فایل به فایل دیگر به شیوه مشابه انجام شده در هر پردازشگر ورد دیگر کات و پیست کرد. برای ذخیره اطلاعات، تنظیم فونت، دیدن موضوعات کمکی و هم چنین چاپ کد منبع یا خروجی برنامه کاربردهای مشابهی ایجاد شده است. تمام واحدها با استفاده از رابط برنامه نویس برنامه کاربردی میکروسافت ویندوز (ویندوز API) ایجاد شده اند و با افزودن و تغییر ویژگی های آن برای همخوانی با فرمت های فایل برای RUNAPP طوری تغییر یافته اند که با این برنامه کاربردی تناسب داشته باشند.
منوی EDIT عاملیت کپی، کات و پیست متن بین فایل های منبع یا تخت رسم ویندوز را فراهم می کند. کاربران هم چنین می توانند متن را بین محیط های همچون ویژال بیسیک و ویژوال C++ کات و پیست کنند. این منو هم چنین دارای گزینه فونت می باشد که قبلا توصیف شده است. تمام کارکردهای گنجانده شده در این منو با کارکردهای موجود در هر برنامه کاربردی ویندوز دیگر یکسان می باشند. از این رو با اجتناب از پیچیدگی رابط را می توان برای کاربر ساده نگه داشت. محیط های موجود در منوی تولز نشان داده شده اند (در حال حاضر ویژوال بیسیک و ویژوال C++).منو وقتی فعال شود محیط توسعه مناسب را اگر و تنها اگر قبلاً در ماشین استفاده شده بارگذاری شده باشد، بارگذاری می کند. محیط های توسعه نصب شده (یعنی ویژال بیسیک و یا ویژال C++) را می توان برای گردآوری و ایجاد فایل های قابل اجرای هر کد منبع نوشته شده از طریق RUNAPP مورد استفاده قرار داد. تمام کار مدیریت حافظه، تغییر زمینه و متغیرهای محیطی در پس زمینه بارگذاری شده اند. گزینه بارگذاری مستقیم فایل منبع در محیط انتخاب شده در انتخاب کاربر قرار خواهد گرفت. فایل قابل اجرا را می توان با انتخاب منوی " RUNPROGRAM" اجرا کرد. این منو هم چنین حاوی کلیدهای میانبر استفاده شده برای شروع مستقیم محیط ها بدون جستجو می باشد. منو لیستی از تمام برنامه های که موجود و قابل اجرا هستند در اختیار کاربر قرار می دهد. فایل قابل اجرای ایجاده شده به وسیله کاربر باید دارای یک پسوند نشان دهنده اجرای یک فایل قابل اجرا از طریق RUNAPP باشد. تقسیم زمان استفاده شده در یک سیستم چند کاربری چند وظیفه ای نامیده می شود که این در اشاره به تصور اجرای همزمان چند وظیفه می باشد. این هر برنامه را در یک محیط چند وظیفه ای مستقل اجرا خواهد کرد و برنامه های متعددی را به طور همزمان اجرا کرد. هر برنامه دارای مثال های خود خواهد بود و بنابراین کپی های متعددی از برنامه مشابهی را می توان همزمان اجرا کرد و برای خروجی ها مقایسه کرد. می توان با برگشتن به محیط مناسب فایل های منبع را اشکال زدایی و مجددا گردآوری کرد. بعدا در این فصل مثالی برای اجرای همزمان ویژوال بیسیک و ویژوال C++ توصیف شده است.
وقتی انتخاب متناظر از منوی TOOLS انجام شود RUNAPP محیط ویژوال بیسیک یا ویژوال C++ را فعال می کند. ویژوال بیسیک کاربر را قادر می سازد تا هر نوع جدید از پروژه برنامه کاربردی را طبق تمایل خود راه اندازی کند. اگر کاربر محیط VB را بدون ارایه یک فایل منبع موجود، فرم VB یا واحد شروع کند این گزینه ارایه خواهد شد. اگر محیط ویژوال C++ فعال شود فرایند نوع مشابهی دنبال می شود. شکل 5-1 مثالی را نشان می دهد که در آن RUNAPP یک اجرای میان محیطی را پشتیبانی می کند. در این جا رابط نشان می دهد که چگونه کاربر می تواند دو فایل منبع را به طور همزمان در محیط های متفاوت ایجاد و اجرا کند. این برنامه کاربردی به کاربر اجازه می دهد تا بدون این که مجبور باشد وارد ویژوال بیسیک یا ویژوال C++ شود فایل های برنامه را ویرایش کند. ویرایشگر سمت راست دارای بخشی از یک کد منبع برنامه C++ بارگذاری در آن می باشد در حالی که ویرایشگر سمت چپ دارای یک برنامه ویژوال بیسیک است.
RUNAPP هم چنین می تواند برای فعال کردن جستجوگر وب داخلی از منوی VIEW مورد استفاده قرار گیرد. از جستجوگر می توان برای اشاره به اطلاعات در اینترنت یا استفاده از ویژگی های کمک به شبکه آنلاین استفاده کرد. مجبور نیست که یک جستجوگر وب را روی کامپیوتر نصب کند زیرا کنترل جستجوگر اینترنت اکسپلور در خود برنامه گنجانده شده است. برنامه نصب RUNAPP تمام کتابخانه های پویای مورد نیاز و فایل های ارجاع را نصب می کند. جستجوگر فقط ویژگی های پایه برای جستجو را دارا می باشد. بخش کمک را می توان از نوار منوی Help از صفحه اصلی فعال کرداین کار فایل Help را در بخش help ویندوز استاندارد با استفاده از فرمان های کارکرد رابط برنامه نویس برنامه کاربردی ویندوز (API) به سیستم عامل بارگذاری می کند. در این جا کاربر می تواند از گزینه های INDEX ، SEARCH و FIND برای پیدا کردن موضوع کمکی که می خواهد استفاده کند. هم چنین گزینه ای وجود دارد که فایل HELP را به طورمستقیم در حالت FIND بارگذاری می کند. فرایند کمک مستقل از برنامه کاربردی به عنوان یک فرایند مجزا اجرا می شود. این برنامه باید به طور روشن خاتمه یابد.
شکل 6 ابزار اطلاعات سیستم را نشان می دهد. اطلاعات سیستم میکروسافت با فرمان دادن به یک کارکرد API فعال می شود. این ابزار اطلاعات را از هسته، مخزن سیستم و ریجستری ویندوز می خواند. این یک ابزار اطلاعاتی است که اطلاعات در منابع سیستم، وظایف، رشته ها، DLL ها، موقعیت های رجیستری، حالت های فعال، موقعیت های INI و غیره را در اختیار کاربر می گذارد. این اطلاعات می تواند برای برنامه نویس برای نظارت بر کاربرد حافظه وتوزیع فرایند / وظیفه مفید باشد. این ابزارا به عنوان یک فرایند مستقل اجرا می شود بنابراین با محیط برنامه کاربردی RUNAPP تعارض ندارد. به این شیوه می تواند اطلاعات در مورد RUNAPP را نیز نمایش دهد. اطلاعات سیستم بخشی از سیستم عامل ویندوز است. RUNAPP فقط به این ابزار متصل می شود و به نمایش اطلاعات کمک می کند.
برنامه نصب آن طور که در شکل 7 نشان داده شده است به همراه این پروژه برای نصبت به کارگیری برناه کاربردی بر روی کامپیوتر ایجاد شده است. این برنامه نصب با استفاده از کیت کاربرد ویژال بیسیک ایجاد شده است و DLL ها، فایل ها و برنامه های و داده های مورد نیاز برای اجرای RUNAPP را نصب خواهد کرد. این وضعیت هم چنین دارای یک برنامه حذف می باشد که می تواند کل برنامه را از کامپوتر پاک کند. تمام فایل های نصب شده به وسیله برنامه نصب متصل شده اند و با ارجاع به این فایل اتصال حذف می شوند. برنامه نصب گزینه محل نصب فایل ها و آیکون ها را در اختیار کاربر قرار می دهد.
3- نتیجه گیری. این برنامه با استفاده از کارکردهای ویندوز API و کنترل های ویندزو و اشیاء پویای و پیچیده وییژوال بیسیک طراحی و ایجاد شده است. ویژگی های اصلی این سیستم شفافیتی است که در مورد وجود پردازشگرها و محیط های متعدد در اختیار کاربر می گذارد. این برنامه را می توان با استفاده از یک برنامه نصب ایجاد و ارایه شده به همراه پروژه توزیع کرد. این برنامه نصب تمام مولفه های ضروری مورد نیاز برای اجرای RUNAPP همچون فایل های پشتیبانی، فایل کمک و کتابخانه های لینک پویا را نصب خواهد کرد و برنامه در یک دایرکتوری مورد نظر کاربر در هر کامپیوتر شخصی سازمان با IBM قابل اجرا است. به علاوه متغیرهای رجستیری ویندوز، آیکون های گروه برنامه و فایل های شروع سیستم نیز در کامپیوتر اضافه و تغییر می یابند. برنامه کاربردی به عنوان یک 32 بیت قابل اجرا گردآوری شده است و برای اجرا نیاز به ویندوهای 95 /98 / Nt یا سیستم های عامل جدیدتر دارد. یک برنامه حذف به همراه برنامه وجود دارد که تمام مولفه ها نصب شده، فایل ها، موقعیت های رجستری و غیره را حذف می کند. برنامه حذف برنامه های قابل اجرای جمع آوری شده یا فایل منبع برنامه که به وسیله کاربر ایجاد شده اند را حذف نمی کند .این اطلاعات دست نخورده باقی مانده و حفظ می شوند. مزیت های زیر بعد از ایجاد برنامه کاربردی RUNAPP شناسایی شده اند.
1- RUNAPP یک تحمل عیب ایجاد می کند و محیط توسعه برنامه کاربردی را محافظت می کند.
2- RUNAPP منعطف است و می تواند برای نیازهای خاص کاربر تغییر یابد.
3- از این برنامه کاربردی می توان به عنوان یک ابزار پیچیده توسعه استفاده کرد.
4- سیستم همزمانی بالا در اختیار کاربر قرار می دهد.
این پروژه دارای میزان حیطه و فرصت قابل ملاحظه ای برای توسعه و ارتقا آتی می باشد. ارتقا اصلی که می توان در این سیتسم انجام داد گنجاندن محیط های برنامه نویسی بیشتر همچون پاور بیلدر، دلفی، فاکس پرو و غیره می باشد. به علاوه زبان های نسل چهارم همچون sql ، proc و غیره را می توان در آن گنجاند. رابط کاربر گرافیکی را می توان ارتقا داد تا پردازش فایل و ویرایش هوشمند را پشتیبانی کند. سیستم کمک آنلاین خلاصه و مشروح و مستند سازی میتواند به RUNAPP اضافه شود. گزنیه های پیشرفته ای همچون موقعیت کاربر تخصصی، ورود به سیستم و گزینه های حسابرسی و کنترل نسخه را می توان اضافه کرد تا این برنامه کاربردی مطمئن شود. این برنامه کاربردی را می توان با افزودن روش های توضیح و همزمانی برای ارتقا سرعت و تقسیم منابع به شبکه وصل کرد.

20


تعداد صفحات : 20 | فرمت فایل : WORD

بلافاصله بعد از پرداخت لینک دانلود فعال می شود