فی بوو

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

فی بوو

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

پاورپوینت آماده بررسی سیستم عامل های کامپیوتر

اختصاصی از فی بوو پاورپوینت آماده بررسی سیستم عامل های کامپیوتر دانلود با لینک مستقیم و پر سرعت .

پاورپوینت آماده بررسی سیستم عامل های کامپیوتر


 پاورپوینت آماده بررسی سیستم عامل های کامپیوتر
مقدمه: سیستم‌عامل یا سامانهٔ عامل: نرم‌افزاری است که مدیریت منابع رایانه را به عهده گرفته و بستری را فراهم می‌سازد که نرم‌افزار کاربردی اجرا شده و از خدمات آن استفاده کنند. سیستم‌عامل جزء ضروری‌ترین نرم‌افزارهای یک سیستم کامپیوتری است. سیستم‌عامل خدماتی به برنامه‌های کاربردی و کاربر ارائه می‌دهد. برنامه‌های کاربردی یا از طریق واسط‌های برنامه نویسی کاربردی و یا از طرق فراخوانی‌های سیستم به این خدمات دسترسی دارند. با فراخوانی این واسط‌ها، برنامه‌های کاربردی می‌توانند سرویسی را از سیستم‌عامل درخواست کنند، پارامترها را انتقال دهند، و پاسخ عملیات را دریافت کنند. ممکن است کاربران با بعضی انواع واسط کاربری نرم‌افزار مثل واسط خط فرمان یا یک واسط گرافیکی کاربر با سیستم‌عامل تعامل کنند...
انواع سیستم عامل: سیستم عامل تک پردازنده: این نوع سیستم عامل ها، سیستم عامل های نسل چهارم(نسل فعلی) هستند که بر روی یک پردازنده اجرا می شوند.
 سیستم عامل شبکه ای: این نوع سیستم عامل ها، از کنترل کننده های واسط شبکه و نرم افزار های سطح پایین به عنوان گرداننده استفاده می کنند و برنامه هایی برای ورود به سیستم های راه دور و دسترسی به فایل از راه دور در آنها به کار گرفته می شود...
نـوع فایـل  PowerPoint
تعداد اسلاید : 34
حجم فایل  1.8 مگابایت

دانلود با لینک مستقیم


پاورپوینت آماده بررسی سیستم عامل های کامپیوتر

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

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

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


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

لینک پرداخت و دانلود *پایین مطلب*
فرمت فایل:Word (قابل ویرایش و آماده پرینت)
تعداد صفحه: 55

 

مقدمه :

تخصیص پردازنده های فیزیکی به فرایندها سبب اجرای فرایندها می شود. این تخصیص معمولاً مسألة پیچیده ای است که توسط سیستم عامل مدیریت می شود. در این فصل درباره چگونگی تعیین زمان تخصیص پردازنده ها و اینکه پردازنده ها به کدام فرایندها باید تخصیص یابد، بحث خواهد شد. این عمل را زمانبندی پردازنده گویند.

سطوح زمانبندی

در شکل زیر سه سطح مهم از زمانبندی مورد توجه قرار گرفته است.

 

شکل 10-1 ) سطوح زمانبندی

  • زمانبندی سطح بالا - این زمانبندی گاهی به عنوان زمانبندی کار نامیده می شود و تعیین می کند که کدام کارها بطور فعال منابع سیستم را در اختیار می گیرد و تکمیل می شود. همچنین بعضی اوقات زمانبندی ورود نامیده می شود، زیرا تعیین می کند که کدام کارها اجازه ورود به سیستم را می یابد. وقتی کاری اجازه ورود پیدا کرد، یکی از فرایندهای شناخته شده سیستم خواهد شد.
  • زمانبندی سطح میانی – این زمانبندی تعیین می کند که کدام فرایندها اجازه خواهد یافت در اختیار cpu قرار بگیرد. زمانبندی سطح میانی با روش تعلیق و فعال کردن فرایندها به نوسانات بار سیستم پاسخ می دهد تا بتواند به عملکرد متعادل و کارآیی کلی سیستم کمک کند. بنابراین زمانبندی میانی در واقع به عنوان بافر بین ورود کارها به سیستم و تخصیص cpu به این کارها عمل می کند.
  • زمانبندی سطح پائین – این زمانبندی تعیین می کند که کدامیک از فرایندهای آماده در اختیار cpu قرار خواهد گرفت (اگر cpu قابل دسترس باشد) و بطور واقعی cpu را در اختیار این فرایند قرار می دهد (فرایند را به cpu می فرستد). زمانبندی سطح پایین به وسیله ارسال کننده انجام می شود که در هر ثانیه چندین بار عمل می کند. بنابراین ارسال کننده می باید در تمامی اوقات در حافظه اصلی مقیم باشد.

در این فصل ما دربارة سیاستهای مختلف زمانبندی که در سیستمهای عامل به کارگیری می شود و نیز روشهای پیاده سازی این سیاستها بحث می کنیم. بسیاری از سیاستها هم برای زمانبندی کار و هم برای زمانبندی فرایند مفید است.

اهداف زمانبندی

هر زمانبندی می باید دارای شرایط زیر باشد:

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

بسیاری از این اهداف با یکدیگر در تضاد هستند و به همین دلیل طراحی زمانبندی عملی مسأله پیچیده ای است.

معیارهای زمانبندی

برای تحقق اهداف زمانبندی می باید معیارهای زیر را در نظر گرفت:

  • ورودی / خروجی گرا بودن فرایند – وقتی فرایندی cpu را در اختیار می گیرد، آیا قبل از اعلام درخواست برای هر عمل cpu , I/O را به مدت محدود استفاده می کند؟
  • cpu گرا بودن فرایند – وقتی فرایندی cpu را در اختیار می گیرد، آیا تمایل دارد قبل از پایان زمان کوانتوم (برهه زمانی مشخص برای اجرای فرایند) آن را در اختیار داشته باشد؟
  • دسته ای یا محاوره ای بودن فرایند – کاربران محاوره ای عموماً سؤالات کوچک به سیستم می فرستند و انتظار دارند سرویس فوری از سیستم دریافت کنند. تضمین زمان پاسخ خوب توسط سیستم از اهمیت بسیاری برخوردار است. کاربران دسته ای معمولاً هنگام پردازش حضور ندارند و پاسخ را می توانند با تأخیر قابل قبول از سیستم دریافت کنند.
  • اضطراری بودن زمان پاسخ – فرایندهایی که به صورت دسته ای اجرا می شود به زمان پاسخ سریع نیازی ندارد. یک فرایند بلادرنگ که کنترل پالایشگاه را به عهده دارد برای جلوگیری از انفجار به زمان پاسخ سریع (فوری) احتیاج دارد.
  • اولویت فرایندها – فرایندهایی که اولویت بسیار دارد نسبت به فرایندهای با اولویت کم باید از سرویس بهتری برخوردار باشد.
  • میزان تولید خطای صفحه (page fault) توسط فرایند – عموماً ، فرایندهایی که خطای صفحه کمتری تولید می کند مجموعه کاری (working set) خود را در حافظه اصلی زودتر تشکیل می دهد. روش متعارف این است که چنین فرایندهایی از سرویس بهتر برخوردار باشد. دیدگاه دیگر می گوید به فرایندهایی که خطای صفحه بیشتری تولید می کند باید اولویت داده شود تا از زمان cpu بیشتری برای تشکیل مجموعه کاری خود بهره مند شود.
  • پردازندة هر فرایند چند بار توسط فرایند با اولویت بالا گرفته شده است – اینگونه فرایندها می باید از مساعدت کمتری برخوردار باشد.
  • هر فرایند تاکنون چقدر زمان واقعی اجرا دریافت کرده است. برخی از طراحان معتقدند فرایندی که از زمان اجرای کمتری برخوردار بوده است می باید بیشتر مساعدت شود. برخی دیگر اعتقاد دارند فرایندی که زمان اجرای بیشتری دریافت کرده، احتمالاً به زمان تکمیل خود نزدیک شده و لذا بهتر است از مساعدت بیشتری برخوردار شود تا بطور کامل تکمیل گردد و هر چه زودتر سیستم را ترک کند.
  • چقدر زمان برای تکمیل فرایند لازم است – زمان متوسط انتظار را می توان با اجرای فرایندهایی که برای تکمیل آنها زمان کمتری لازم است، کاهش داد. متأسفانه کمتر می توان تشخیص داد که زمان باقیمانده برای تکمیل هر یک از فرایندها چقدر است.

زمانبندی انحصاری در مقابل غیرانحصاری

زمانبندی را انحصاری گویند اگر نتوان cpu را از دست فرایند پس گرفت. زمانبندی را غیر انحصاری گویند اگر بتوان cpu را از دست فرایند آزاد کرد.

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

انتخاب زمانبندی غیرانحصاری بدون هزینه نیست و بدیهی است که تعویض متن سرباری دارد. برای اینکه زمانبندی غیرانحصاری بطور مؤثر اجرا شود فرایندهای بیشتری می باید در حافظه اصلی نگهداری شود تا عملیات تعویض متن با سرعت بیشتری انجام شود.

در سیستمهای انحصاری، فرایندهای کوچک توسط فرایندهای بزرگ در حالت انتظار نگهداشته می شود، لکن رفتار تمامی فرایندها عادلانه تر است. در این سیستمها، زمان پاسخ قابل پیش بینی تر است زیرا آمدن فرایندهای با اولویت بالا نمی تواند فرایندهای منتظر را عقب بیندازد.

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

زمانسنج میانی یا ساعت وقفه

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

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

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

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

اولویتها

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

اولویتهای ایستا در مقابل پویا

اولویتهای ایستا معمولاً عوض نمی شود. پیاده سازی آنها راحت است و نسبتاً سرباری کمتری دارد.

روشهای اولویت پویا معمولاً تغییرپذیر است. اولویت اولیه به هر فرایند اختصاص می یابد و پس از مدت کوتاهی ممکن است به مقدار بهتر تغییر کند. پیاده سازی الگوهای اولویت پویا پیچیده تر و سرباری آنها بیشتر است. البته سرباری به وجود آمده در این روش با افزایش قابلیت پاسخگویی سیستم قابل توجیه می شود.

اولویتهای قابل خریداری

سیستم عامل باید بتواند سرویس معقولی را برای گروه وسیعی از کاربران فراهم کند و همچنین بتواند انتظارات کاربران محیطهای خاص را تأمین نماید.

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

زمانبندی ضرب الاجل

در زمانبندی ضرب الاجل، برنامه های زمانبندی شده باید در زمان مشخص به پایان برسد. اینگونه برنامه ها اگر بموقع تکمیل شود ارزش بسیاری دارد و اگر با تأخیر تکمیل شود بدون ارزش خواهد بود. کاربر معمولاً تمایل دارد مبلغی را پرداخت کند تا مطمئن شود که سیستم، کارش را بموقع تکمیل می کند. زمانبندی ضرب الاجل بنا به دلایل زیر پیچیده است:

  • کاربر می باید نیازمندیهای دقیق برنامه را به منابع مورد نظر معین کند. چنین اطلاعاتی البته کمتر در دسترس است.
  • سیستم باید بتواند برنامة ضرب الاجل را اجرا کند، بدون اینکه سرویس دهی به دیگران را مختل کند.
  • سیستم باید در طول زمان ضرب الاجل بدقت طراحی کند که به چه منابعی نیاز خواهد داشت. این کار ممکن است مشکل باشد، زیرا ممکن است برنامه های جدید وارد سیستم شود و درخواستهای غیرقابل پیش بینی را روی سیستم قرار دهد.
  • اگر در یک لحظه چندین برنامة ضرب الاجل با هم فعال شود، پیچیدگی بیشتر می شود.
  • مدیریت منابع در زمانبندی ضرب الاجل پیچیده است و ممکن است سرباری بیشتری ایجاد کند. حتی اگر کاربران ضرب الاجل بخواهند مبلغ کافی برای دریافت سرویسهای بهتر پرداخت کنند، مصرف زیاد منابع سیستم ممکن است باعث کاهش سطح سرویس برای بقیه کاربران شود. چنین تضادهایی می باید بطور دقیق توسط طراحان سیستمهای عامل مورد توجه قرار بگیرد.

زمانبندی FIFO

این زمانبندی شاید یکی از ساده ترین روشهای زمانبندی باشد (شکل 10-2). فرایندها براساس زمان ورودشان به سیستم در صف آماده (ready list) قرار می گیرد. وقتی هر فرایند پردازنده را در اختیار می گیرد، اجرا می شود تا به پایان برسد. بنابراین روشی انحصاری برای زمانبندی است. این روش در حالت عادی به عدالت عمل می کند، لکن در برخی موارد که برنامه های بزرگ معمولاً باعث انتظار برنامه های کوچک می شود غیرعادلانه عمل می کند. زمانبندی FIFO برای سیستمهای محاوره ای مناسب نیست زیرا نمی تواند زمان پاسخ خوبی را تضمین کند.

شکل 10-2) زمانبندی FIFO

روش FIFO در سیستمهای امروزی کمتر به عنوان الگوی اصلی برای زمانبندی به کار گرفته می شود، بلکه این روش معمولاً با الگوهای دیگر ادغام می شود؛ برای مثال، بسیاری از الگوهای زمانبندی فرایندها را بر مبنای اولویت برای پردازنده می فرستند، اما فرایندهای با اولویت یکسان براساس FIFO در اختیار پردازنده قرار می گیرد.

زمانبندی نوبت دوره ای

در روش زمانبندی نوبت دوره ای (شکل 10-3) ، فرایندها به صورت FIFO برای پردازنده فرستاده می شود لکن برای هر فرایند مقدار محدودی از زمان پردازنده به نام برش زمانی اختصاص می یابد. اگر فرایندی قبل از انقضای برش زمانی خودش تکمیل نشود، پردازنده از دست آن فرایند پس گرفته شده و به فرایند منتظر بعدی داده می شود. در این حالت فرایند آزاد شده مجدداً به انتهای صف برگردانده می شود.

شکل 10-3) زمانبندی نوبت دوره ای

روش زمانبندی نوبت دوره ای در محیطهای اشتراک زمانی مؤثر عمل می کند به گونه ای که می تواند برای کاربران محاوره ای زمان پاسخ قابل قبولی را ضمانت کند. سرباری روش غیر انحصاری توسط روش تعویض متن کارآ، و فراهم کردن حافظه اصلی کافی برای مقیم شدن فرایندها، پائین نگهداشته می شود.

این فقط قسمتی از متن مقاله است . جهت دریافت کل متن مقاله ، لطفا آن را خریداری نمایید


دانلود با لینک مستقیم


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

مقاله بررسی تفاوتهای لینوکس با ویندوز

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

مقاله بررسی تفاوتهای لینوکس با ویندوز


مقاله بررسی تفاوتهای لینوکس با ویندوز

فرمت فایل : word (قابل ویرایش) تعداد صفحات : 5 صفحه

 

 

 

 

 

 

 

 

 

 

 

مقدمه :

یکی از نخستین سوالاتی که در ذهن هر کاربری که به تازگی نام لینوکس به گوشش خورده است، مطرح می‌شود، این است که خوب لینوکس چه تفاوتی با ویندوز دارد؟ من در این مقاله قصد دارم بدون اینکه وارد مسائل خیلی فنی شوم، این موضوع را تشریح کنم.

یکی از نخستین سوالاتی که در ذهن هر کاربری که به تازگی نام لینوکس به گوشش خورده است، مطرح می‌شود، این است که خوب لینوکس چه تفاوتی با ویندوز دارد؟ من در این مقاله قصد دارم بدون اینکه وارد مسائل خیلی فنی شوم، این موضوع را تشریح کنم.لینوکس چیست؟ لینوکس به خودی خود، یک هسته (Kernel) است. هسته، بخش اصلی سیستم‌عامل را تشکیل می‌دهد که کار آن کنترل داده‌ها، مدیریت حافظه، سخت‌افزار، ورود و خروج داده‌ها و تمامی موارد اصلی سیستم‌عامل می‌باشد. لینوکس به خودی خود سیستم‌عامل به شمار نمی‌رود، بلکه با استفاده از ابزارهایی که پروژه بازمتن (OpenSource) گنو (GNU) برای آن تولید کرده است، تبدیل به یک سیستم‌عامل کامل می‌شود (به همین دلیل است که لینوکس را معمولا گنو/لینوکس یا GNU/Linux می‌نامند) و با اضافه کردن سایر نرم‌افزارهای بازمتن به آن، می‌توان از آن در موارد متعددی مانند سرویس‌دهنده‌ها، ایستگاه‌های کاری، کامپیوترهای روی‌میزی، ابر رایانه‌ها، ابزارهای صنعتی و پزشکی که دارای سیستم‌های درونه‌ای (Embedded) می‌باشند و... استفاده کرد. از نظر فنی، لینوکس را می‌توان نمونه بازمتن سیستم‌عامل یونیکس نامید. زیرا بر اساس استاندارد POSIX پیاده سازی شده و کاملا با آن سازگار است. بنابراین لینوکس را می‌توان نواده سیستم‌عامل پرسابقه و مستحکم یونیکس دانست که البته خواص خوب آنرا نیز به ارث برده است. اکنون تفاوت‌های اصلی لینوکس و ویندوز را با هم می‌شماریم:


دانلود با لینک مستقیم


مقاله بررسی تفاوتهای لینوکس با ویندوز

مقاله کامل در مورد جاوا

اختصاصی از فی بوو مقاله کامل در مورد جاوا دانلود با لینک مستقیم و پر سرعت .

مقاله کامل در مورد جاوا


مقاله کامل در مورد جاوا

لینک پرداخت و دانلود *پایین مطلب*
فرمت فایل:Word (قابل ویرایش و آماده پرینت)
تعداد صفحه: 59

 

مقدمه :

جاوا شباهت‌هایی به سی‌پلاس‌پلاس دارد، ولی قابلیت انتقال آن بهتر است و استفاده از آن ساده تر از ++C است. همچنین مدیریت حافظه نیز توسط خود ماشین مجازی جاوا انجام می‌شود. طراحی این زبان به گونه ایست که دارای اطمینان بسیاری بوده و وابسته به سیستم عامل خاصی نیست. و دلیل این موضوع این است که جاوا یک ماشین مجازی در سیستم شما راه می‌اندازد و برنامه‌ها را در آن ماشین مجازی اجرا می‌کند. این ماشین مجازی «ماشین مجازی جاوا» یا به اختصار JVM نامیده می‌شود. البته راه انداختن یک ماشین مجازی باعث دو مشکل می‌شود. هنگامی که نرم‌افزار شما در یک ماشین مجازی اجرا می‌شود سرعت کمتری خواهد داشت، همچنین شما نیاز دارید قبل از اجرای برنامه‌های جاوا یکبار سیستم مجازی جاوا را که حجم نسبتاً بالایی دارد، از اینترنت بارگذاری و یا از جای دیگری تهیه و نصب کنید ولی مزیت آن عدم وابستگی به سیستم عامل مقصد است.

تاریخچه زبان جاوا

زبان جاوا در سال ۱۹۹۱ ایجاد شد و در ابتدا Oak نام گرفت. پیدایش آن از پروژه ای به نام Green منشا گرفت که زیر نظرJames Gosling و با هدف اتوماسیون وسایل خانگی دنبال می شد. و Oak را در برنامه ریزی این دستگاه ها به عنوان زبانی قدرتمند به کار گرفتند. ولی تا سال ۱۹۹۴ این پروژه در ناامیدی دنبال می شد، تا اینکه این تیم توسعه پس از تغییر رویه اینترنت را در اهداف کار خود گنجاند.

Oak به Java تغییر نام داده شد تا بتواند به عنوان نشان تجاری ثبت شود. Netscape Navigator ۲.۰ در سپتامبر سال ۱۹۹۵ از این زبان، که به صورت Applet بکار می رفت، پشتیبانی کرد و Microsoft در اواخر سال ۱۹۹۵ آن را بکار گرفت.

از آن زمان به بعد توانایی های این زبان رو به فزونی گذاشت. در سال ۱۹۹۶ شرکت Sun Microsystems نگارش ۱.۰ از Java Development Kit را توسعه داد. و سال بعد نگارش ۱.۱ از JavaBeans پشتیبانی کرد. در سال ۱۹۹۷ شرکت Sun بر علیه Microsoft شکایت کرد و این شرکت را متهم به نقض توافقنامه مربوط به استفاده از Java در Internet Explorer کرد. بعد از این سان JDK ۱.۲ و Swing را، که ابزار پیشرفته تری نسبت به (AWT (Abstract Windowing Toolkit برای ایجاد رابط گرافیکی کاربر(GUI) فراهم می کرد، ارایه کرد. در حال حاضر JDK در نگارش ۵.۰ وبا ویژگی های جدیدی در دسترس است. و با نام J۲SE) Java ۲ Standard Edition) نیز شناخته می شود. در کنار آن J۲EE Java ۲ Enterprise Edition (که درحال حاضر در نگارش ۱.۴ است) برای کاربردهای تجاری ارایه شد. J۲EE تکنولوژی هایی از قبیل Enterprise JavaBeans EJB), Servlets, JavaServer Pages) و … را در بر می گیرد.

Java زبانی برای برنامه های توزیع شده است و زبانی شناخته شده در سطح جهانی است که به کاربر امکان تعامل (interaction) با یک صفحه وب را می دهد و برخلاف صفحات ایستای HTML فراتر از خواندن ویا فقط پر کردن یک فرم، برای کاربر امکان بازی، چت، انجام محاسبات درصفحات گسترده، و حتی دریافت اخباری که به صورت همزمان به روز رسانی می شوند و خیلی چیزهای دیگر را فراهم می کند. Java همچنین مستقل از سیستم عامل است. به این معنی که شما یک برنامه را یکبار می نویسید و این برنامه بر روی هر سیستم عاملی که ماشین مجازی جاوا (Java Virtual Machine) یا به اختصار JVM بر روی آن نصب باشد به همان شکل و بدون نیاز به هیچگونه تغییری قابل اجرا خواهد بود. Java زبانی ساده، کاملا شی گرا، با امنیت بالا و دارای امکانات چندبندی (Multi-threading) است. از نگارش ۱.۲ به بعد ابزارهای Swing، جاوا را به زبانی آسان و جذاب برای ایجاد یک GUI کاربر پسند تبدیل کرده اند.

از نقطه نظر دیگر می توان گفت: که جاوا یک زبان مستقل از سیستم عامل نیست بلکه همانند یک سیستم عامل مستقل و کوچک عمل می کند. همان طور که درWindows زبان های برنامه نویسی امکان اجرا در بستر (Platform) مربوط به Windows/Intel را دارند، برنامه های جاوا امکان اجرا در Java/JVM را دارند. و همانند Windows، جاوا هم یک بستر نرم افزاری، تجاری و منحصر به یک شرکت است.

کپی

جاوا در مقایسه با سایر زبان‌ها همچون سی‌پلاس‌پلاس یا Basic یا Fortran زبان نسبتاً جدیدی است. شرکت سان میکروسیستمز (یا به اختصار سان) در سال 1991 یک پروژه تحقیقاتی به نام Green را آغاز کرد. هدف این پروژه ایجاد یک زبان جدید شبیه به C++ بود که نویسنده اصلی آن، جیمز گاسلینگ، آن را بلوط Oak می نامید. اما بعدها به دلایل مشکلات حقوقی نام آن به جاوا تغییر کرد. پروژه گرین به دلیل مشکلات بازاریابی در شرف لغو شدن بود تا اینکه گسترش وب در سال 1993 باعث نمایش توانایی‌های وافر جاوا در این عرصه گشت. و به اینگونه بود که سان در می 1995 جاوا را رسما افتتاح کرد.

برنامه‌های جاوا و اپلت‌ها

جاوا برای نوشتن انواع برنامه‌های کاربردی مناسب است. با جاوا می‌توان انواع برنامه‌های زیر را نوشت:

  • برنامه‌های تحت وب؛
  • برنامه‌نویسی سیستم‌های کوچک مانند موبایل، پاکت پی‌سی و ...؛
  • برنامه‌های کاربردی بزرگ (Enterprise)؛
  • برنامه‌های رومیزی (Desktop)؛
  • و غیره.

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

از برتری‌های جاوا نسبت به زبانهای مایکروسافتی مثل سی‌شارپ که بسیار شبیه این زبان هست می‌توان موارد زیر را نام برد:[نیاز به ذکر منبع]

1 - سیستم عامل: هر چقدر زبانهای .net قوی باشند تنها بر روی پلت فرم ویندوز اجرا می‌شوند و برخی ویندوز را سیستم عامل غیر قابل اعتمادی در برنامه نویسی Enterprise می دانند.[نیاز به ذکر منبع] ولی جاوا از این نظر انتخابی خوب است. (هنوز پروژه mono به نتایج پایانی خود نرسیده)

2- قابلیت حمل: جاوا بر روی پلتفرم‌های گوناگونی قابل اجرا است، از ATM و ماشین رختشویی گرفته تا سرورهای سولاریس با قابلیت پشتیبانی از 1024 cpu برای پردازش.

3- جاوا بیشتر از یک زبان است: جاوا فقط یک زبان نیست و انجمن‌هایی متشکل از بزرگان صنایع و برنامه‌نویسان زیادی مشغول به توسعه و ایجاد استانداردهای جدید و به روز هستند.

تکنولوژی‌های اصلی جاوا در حال حاضر

  • برنامه‌نویسی برای سیستم‌های رومیزی (J2SE)
  • برنامه‌نویسی سمت سرور (J2EE) که به تازگی به JAVA EE 5 تغییر نام داده است.
  • برنامه‌نویسی برای سیستم‌های موبایل و رایانه‌های کوچک (J2ME)

توزیع‌های جاوا

در حال حاضر چهار توزیع کننده عمده جاوا وجود دارند:

سان میکروسیستمز: توزیع کننده اصلی جاوا و مبدع آن می باشد. در اکثر موارد هنگامی که گفته می‌شود جاوا منظور توزیع سان می باشد. تاکنون 7 توزیع از این شرکت ارائه شده اند. جاوا 1.0 - 1.1 - که به جاوا 1 مشهورند. جاوا 1.2 – 1.3. 1.4 و 1.5 که به جاوا 2 مشهورند اخیرا نیز توزیع 1.6 از جاوا با کدرمز ماستانگ به صورت آزمایشی منتشر شده است. قابل ذکر است توزیع‌های جاوا بر روی اکثر سیستم عامل‌ها مانند ویندوز، یونیکس و سولاریس، لینوکس و موارد مشابه عرضه شده است.

GNU Java یا gcj کمپایلر کدباز جاوا می باشد. این توزیع از سوی موسسه نرم افزارهای آزاد منتشر شده و فعلا تنها در سیستم عامل‌های لینوکس قابل استفاده است. این کمپایلر توانایی ایجاد کد اجرایی (در مقابل بایت کد توزیع سان) را داراست.

مایکروسافت J# این در حقیقت یک توزیع جاوا نیست. بلکه زبانی مشابه می باشد که توسط مایکروسافت و در چارچوب .net ارائه شده است. انتظار اینکه در سیستم عاملی غیر از ویندوز هم اجرا شود را نداشته باشید.

AspectJ این نیز یک زبان مجزا نیست. بلکه یک برنامه الحاقی می باشد که امکان برنامه نویسی Aspect Oriented را به جاوا می افزاید. این برنامه توسط بنیاد برنامه نویسی جلوه گرا و به صورت کد باز ارائه شده است.

 نقاط ضعف

مهم‌ترین ایرادی که برنامه نویسان سایر زبان‌ها به زبان جاوا می گیرند سرعت اجرایی بسیار پایین جاوا است. یک برنامه جاوا به صورت بایتکد می باشد و باید در ماشین مجازی جاوا اجرا گردد. به همین دلیل سرعت اجرای پایینی را در مقابل زبان‌های قدرتمندی همچون ++C دارد. به صورت دیگر یک برنامه C به طور متوسط تا 10 برابر سریعتر از برنامه مشابه جاوا اجرا می‌گردد. جاوا علی رقم شیء گرا بودن در بخشی از قسمت‌ها برای ایجاد انعطاف بیشتر یا بازاریابی بهتر برخی اصول شی گرایی را نادیده گرفته است. از جمله این قسمت‌ها قابلیت بازتابش Reflection می باشد. هدف اصلی بازتابش این است که استفاده مجدد از کدها و گسترش کدهای موجود و مهم‌تر از همه نوشتن برنامه‌های الحاقی آسان گردد ولی این مهم با زیر پا گذاشتن بعضی اصول ممکن شده است. برای نمونه با کمک بازتابش به راحتی می‌توان متدهای خصوصی دیگر کلاس‌ها را فراخوانی کرد! زبان جاوا در مقابل زبانی مثل ++C ساده تر و یادگیری ان آسانتر است. این آسانتر بودن به سادگی به دست نیامده است بلکه با حذف بسیاری از موارد که باعث قدرتمند تر بودن زبان ++C بوده‌اند ایجاد شده است. مهم‌ترین این موارد اشاره گرها و وراثت چندگانه بوده‌اند که در زبان جاوا یافت نمی شوند. از آنجایی که جاوا زبانی با عدم وابستگی به بستر می باشد پس استفاده از توابع سیستم عامل را در برنامه نمی پذیرد. به همین صورت نمی‌توان از واسط‌های برنامه نویسی غیر از جاوا در آن استفاده نمود.

این فقط قسمتی از متن مقاله است . جهت دریافت کل متن مقاله ، لطفا آن را خریداری نمایید

 


دانلود با لینک مستقیم


مقاله کامل در مورد جاوا

تحقیق درباره اهداف و وظایف سیستم عامل

اختصاصی از فی بوو تحقیق درباره اهداف و وظایف سیستم عامل دانلود با لینک مستقیم و پر سرعت .

تحقیق درباره اهداف و وظایف سیستم عامل


تحقیق درباره اهداف و وظایف سیستم عامل

لینک پرداخت و دانلود *پایین مطلب*
فرمت فایل:Word (قابل ویرایش و آماده پرینت)
تعداد صفحه:20
فهرست و توضیحات:

مقدمه

اهداف سیستم عامل

وظایف سیستم عامل

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

سیستم عامل با سازماندهی ، مدیریت و کنترل منابع سخت افزاری امکان استفاده بهینه و هدفمند آنها را فراهم می آورد. سیتم عامل فلسفه بودن سخت افزار را بدرستی تفسیر و در این راستا امکانات متعدد و ضروری جهت حیات سایر برنامه های کامپیوتری را فراهم می آورد

تمام کامپیوترها از سیستم عامل استفاده نمی نمایند. مثلا" اجاق های مایکرویو که در آشپزخانه استفاده شده دارای نوع خاصی از کامپیوتر بوده که از سیستم عامل استفاده نمی نمایند. در این نوع سیستم ها بدلیل انجام عملیات محدود و ساده، نیازی به وجود سیستم عامل نخواهد بود. اطلاعات ورودی و خروجی با استفاده از دستگاههائی نظیر صفحه کلید و نمایشگرها در اختیار سیستم گذاشته می گردند. ماهیت عملیات انجام شده در یک اجاق گاز مایکروویو بسیار محدود و مختصر است، بنابراین همواره یک برنامه درتمام حالات و اوقات اجرا خواهد شد

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

به طور کلی نرم افزارهای کامپیوتر به دو گروه تقسیم می‌شوند

یکی برنامه های سیستمی که عملیات کامپیوتر را مدیریت می‌کنند و دیگری برنامه‌های کاربردی

سیستم عامل (operatino system = os) اصلی ترین برنامه سیستمی است که به عنوان رابط بین کاربر و سخت افزار کامپیوتر عمل می‌کند

سیستم عامل معمولا اولین برنامه ای است که پس از بوت شدن در حافظه بار می‌شود. پس از بار شدن قسمتی از سیستم عامل بطور دائم در حافظه (Resident) باقی می‌ماند. قسمتهای دیگر با توجه به کاربرد از دیسک به حافظه آورده می‌شود

به قسمت اصلی سیستم عامل که وظایف مهم آن را انجام می‌دهد هسته یا Kernelگفته می‌شود. هسته سیستم عامل برنامه‌ای است که در تمامی اوقات بر روی کامپیوتر در حال اجراست

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

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

در صورت عدم وجود سیستم عامل کاربر و یا برنامه نویس می‌بایست آشنایی کاملی با سخت افزارهای مختلف کامپیوتر (مثل مانیتور فلاپی - کی بورد و غیره) داشته باشد و روتین هایی برای خواندن و نوشتن آنها به زبان سطح پایین بنویسد. از این جنبه به سیستم عامل به عنوان ماشین توسعه یافته (Extended machine) یا ماشین مجازی (Virtual machine) اطلاق می‌شود که واقعیت سخت افزار را از دید برنامه نویسان مخفی می‌سازد
- کارآمدی

هدف دوم سیستم عامل مدیریت منابع (Resource Management) می‌باشد, یعنی سیستم عامل باعث استفاده بهینه و سودمند از منابع سیستم می‌گردد. منظور از منابع: پردازنده‌ها ,حافظه‌ها ,دیسکها, ماوس ها چاپگر ها , فایلها , پورتها و غیره هستند. یک سیستم کامپیوتری منابع نرم افزاری و سخت افزاری بسیار دارد که ممکن است در حین اجراء برنامه لازم باشند , سیستم عامل همانند مدیر منابع عمل کرده و آنها را بر حسب نیاز به برنامه‌های مشخصی تخصیص می‌دهد

  • قابلیت رشد

سیستم عامل باید به نحوی ساخته شده باشد که به طور موثر توسعه, آزمایش و معرفی قابلیتهای جدید سیستمی را بدون ایجاد مزاحمت در خدمات جاری , میسر سازد

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


دانلود با لینک مستقیم


تحقیق درباره اهداف و وظایف سیستم عامل