مفاهیم کلی
به طور کلی نرم افزارهای کامپیوتر به دو گروه تقسیم میشوند:
یکی برنامههای سیستمی که عملیات کامپیوتر را مدیریت میکنند و دیگری برنامههای کاربردی .سیستم عامل (operating system=os) اصلی ترین برنامه سیستمی است که به عنوان رابط بین کاربر و سخت افزار کامپیوتر عمل میکند .
سیستم عامل دو وظیفه (یا هدف) اصلی دارد:
• سیستم عامل استفاده از کامپیوتر را ساده میسازد.
این بدان معناست که مثلاًکاربر یا برنامه نویس بدون درگیر شدن با مسائل سخت افزاری دیسکها به راحتی فایلی را بر روی دیسک ذخیره و حذف کند .
این کار در واقع با به کاربردن دستورات سادهای که فراخوان های سیستمی (System Calls) را صدا میزنند انجام پذیرد .
در صورت عدم وجود سیستم عامل کاربرو یا برنامه نویس میبایست آشنایی کاملی با سخت افزارهای مختلف کامپیوتر (مثل مونیتور ,فلاپی , کی بورد و غیره) داشته باشدو روتینهایی برای خواندن و یا نوشتن آنها به زبانهای سطح پائین بنویسد.
از این جنبه به سیستم عامل با عنوان ماشین توسعه یافته(Extended machine) یا ماشین مجازی (Virtual machine) یاد میشود که واقعیت سخت افزار را از دید برنامه نویسان مخفی میسازد.
• وظیفه دوم سیستم عامل مدیریت منابع(Resource Management) میباشد, یعنی سیستم عامل باعث استفاده بهینه و سودمند (اقتصادی) از منابع سیستم میگردد.
منظور از منابع پردازندهها ,حافظهها ,دیسکها,ماوس ها , چاپگرها , فایلها , پورتها و غیره هستند.
یک سیستم کامپیوتری منابع نرم افزاری و سخت افزاری بسیار دارد که ممکن است در حین اجراء برنامه لازم باشند , سیستم عامل همانند مدیر منابع عمل کرده و آنها را بر حسب نیاز به برنامههای مشخصی تخصیص میدهد.
سیستم عامل معمولا اولین برنامههای است که پس از بوت شدن در حافظه بار میشود.
پس از بار شدن قسمتی از سیستم عامل بطور دائم در حافظه باقی (Resident)میماند.
قسمتهای دیگر با توجه به کاربرد کامپیوتر توسط کاربر از دیسک به حافظه آورده میشود.
به قسمت اصلی سیستم عامل که وظایف مهم آن را انجام میدهد هسته یا Kernel گفته میشود.
هسته سیستم عامل برنامهای است که در تمامی اوقات بر روی کامپیوتر در حال اجراست.
سیستم عامل و معماری کامپیوتر اثر زیادی بر روی یکدیگر داشتهاند.
یعنی جهت سهولت کار با سخت افزارهای جدید, سیستم عاملها توسعه یافتندو همچنین در اثنای طراحی سیستم عاملها , مشخص شد که تغییراتی در طراحی سخت افزار میتواند سیستم عاملها را ساده تر و کارآمدتر سازد .
هر چند که تطبیق نسلهای کامپیوتر با نسلهای سیستم عامل کار درستی نیست ولی این تطبیق که در ادامه انجام میدهیم علت ایجاد سیستم عاملهای جدید را مشخص میسازد.
تطابق تکنیکهای سیستم عامل با نسل های کامپیوتر:
در نسل اول کامپیوترها (55-1945) که از لامپ خلأ برای ساخت آنها استفاده میشد,زبانهای برنامه نویسی (حتی اسمبلی)ابداع نشده بودند و سیستم عامل نیز اصلاً وجود نداشت .
روند کار به این صورت بود که برنامه نویسان تنها در یک فاصله زمانی مشخص حق استفاده از کامپیوتر بزرگ و گران قیمت را داشتند.
آنها برنامههای خود را توسط تخته مدار سوراخدار (و بعدها توسط کارتهای پانچ) و به زبان ماشین به کامپیوتر میدادند.
اکثر برنامههای محاسبات عددی معمولی مانند جداول سینوس و کسینوس بود.
• سیستم های دسته ایBatch system
• سیستم های چند برنامه ایMulti programming
• سیستم spooling
• سیستم اشتراک زمانیTime sharing
• سیستم عاملهای کامپیوتر های شخصی و شبکه
• سیستم های توزیع شدهDistributed system
• سیستم ها ی چند وظیفه ایMulti tasking
• سیستم های چند پردازندهای Multi processing
• سیستم های بی درنگReal Time
ساختار سیستم عامل:
• خدمات و مولفه های سیستم عامل:
o مدیریت پردازش در سیستم عامل در سیستم عامل
o مدیریت حافظه در سیستم عامل
o مدیریت فایل در سیستم عامل
o مدیریت ورودی- خروجی در سیستم عامل
• مفسر فرمان
• وقفه در سیستم عامل
• فراخوانی سیستمی
• انوع سیستم عامل از نظر ساختار:
o تکنیک سیستم یکپارچه
o تکنیک سیستم لایه ای
o سیستم مجازی در سیستم عامل
o سیستم مشتری –خدمتگزار
• زبان های پیاده سازی سیستم عامل
پردازش و زمابندی:
• پردازش در سیستم عامل
• حالات یک پردازش
• بلوک کنترلی پردازش
• نخ”بند-رشته”
• زمان بندی در سیستم عامل
• انواع زمانبند ها در سیستم عامل
• معیار های زمانبندی در سیستم عامل
انواع زمانبندی ها:
اولویتها میتوانند بصورت اتوماتیک توسط سیستم نسبت داده شوند و یا از خارج سیستم تعیین گردند, مثلاً ممکن است یک کاربر کار فوری داشته باشدو حاضر باشد به خاطر بدست آوردن سرویس بالاتر هزینه بیشتری بپردازد , یعنی اولویت را بخرد .
یک اولویت ممکن است استاتیک باشد یا دینامیک .
اولویت استاتیک تغییر نمیکندو بنابراین پیاده سازی آن ساده است .
ولی این نوع اولویت در مقابل تغییرات محیطی عکس العملی نشان نمیدهد .
برعکس اولویت دینامیک بر اثر تغییرات محیطی تغییر میکند مثلا ً ممکن است در آغاز یک برنامه اولویت پائینی داشته باشد ولی به تدریج اولویت آن بهبود یابد.
اول آمده-اول سرویس شده زمانبندی نوبت گردشی اول کوتاه ترین زمان کوتاه ترین زمان باقی مانده بالا ترین نسبت پاسخ دادن اولویت به پردازش صفهای چند گانه MQ صفهای چند گانه با فید بک بلا درنگReal time تضمین شده«در زمان مقرر زمان بندی شانسی LPT سیستم اشتراک زمانیTime sharing این سیستمها از اوایل سالهای 1970 در نسل سوم کامپیوترها معمول شدند.
سیستم اشتراک زمانی در واقع تعمیم سیستم چند برنامگی است .
در سیستمهای چند برنامگی کاربر ارتباطی با کامپیوتر نداشت و خطایابی برنامهها مشکل بود چرا که زمان برگشت نسبتاً طولانی اجازه آزمایش کردنهای متعدد را نمیداد.
در سیستم اشتراک زمانی کاربر به کمک دو ترمینال (Terminal) که شامل کی بورد(برای ورودی) و مونیتور (برای خروجی ) است با کامپیوتر به صورت محاورهای (interactive) رابطه بر قرار میسازد.
کاربر مستقیماً دستوراتی را وارد کرده و پاسخ سریع آن را روی مونیتور دریافت میکند.
در این سیستمها چندین کاربر به کمک ترمینالهایی که به کامپیوتر وصل است همزمان میتوانند از آن استفاده کنند.
در سیستم اشتراک زمانی فقط یک پردازنده وجود دارد که توسط مکانیزمهای زمانبندی بین برنامههای مختلف کاربرها با سرعت زیاد (مثلاً در حد میلی ثانیه(سوئیچ میشودو بنابراین هر کاربر تصور میکند کل کامپیوتر در اختیار اوست .در اینجا تأکید بر روی میزان عملکرد کاربر است یعنی هدف فراهم کردن وسایل مناسب برای تولید ساده نرم افزار و راحتی کاربرد میباشد و نه بالا بردن میزان کاربرد منابع ماشین .
کاربر میتواند در هر زمان دلخواه برنامه خود را آغاز یا متوقف سازد و یا برنامه را به صورت قدم به قدم اجراء و اشکال زدایی (debug) کند .
سیستمهای دستهای برای اجرای برنامههای بزرگ که نیاز محاورهای کمی دارند مناسب است ولی سیستمهای اشتراک زمانی برای مواردی که زمان پاسخ کوتاه لازم است , استفاده میشوند.
در زمانی که کاربری در حال تایپ برنامهاش یا فکر کردن روی خطاهای برنامه اش میباشدCPU به برنامه کاربر دیگری اختصاص یافته تا آن را اجراء کند .
سیستم عاملهای کامپیوتر های شخصی و شبکه سال 1980 تاکنون که مدارات مجتمع با مقیاس بزرگ (Large Scale Integrated Circuit) ابداع شدند, به عنوان نسل چهارم کامپیوترها شناخته میشود.
در این سالها کامپیوترهای شخصی با قیمتی ارزان و کارآیی بالا و محیط گرافیکی و محاورهای بسیار خوب به سرعت گسترش یافتند.
سیستم عاملهای اولیه بر روی pcهامانند DOSفقط تک کاربره و تک برنامهای بودند.
ولی سیستم عاملهای امروزی آن مانند Windows NT خاصیتهای چند برنامگی ,چند کاربرته(multiuser) و شبکهای را دارا هستند.
با توجه به هزینه اندک سخت افزار اهداف سیستم عامل در طول زمان تغییر کرده است وبرای PC ها به جای ماکزیمم کردن درصد استفاده CPU و وسایل جانبی , سیستم به سمت راحتی کاربر پیش میرود.
به تدریج ویژگیهای مهم سیستم عاملهای قدیمی در کامپیوترهای بزرگ (مانند حافظت حافظه , حافظه مجازی, محافظت فایلها ، همزمانی پردازشهاو...) بر روی سیستم های PC نیز پیاده سازی شده است.
هنگامی که کامپیوترها از طریق شبکه به هم وصل شوند.
به آنها ایستگاههای کاری (Work stations) میگویند .
در یک سیستم عامل شبکه , کاربران از وجود ماشین های مختلف در شبکه با خبرند.
آنها میتوانند از دور وارد یک ماشین شوند و همچنین فایلهای یک ماشین را روی ماشین دیگر کپی کنند.
هر کامپیوتر سیستم عامل محلی خودش را اجراء میکندو کاربر یا کاربران محلی مخصوص به خود را دارد.
هوش مصنوعی هوش مصنوعی (artificial intelligence) را باید عرصهٔ پهناور تلاقی و ملاقات بسیاری از دانشها، علوم، و فنون قدیم و جدید دانست.
ریشهها و ایدههای اصلی آن را باید در فلسفه، زبانشناسی، ریاضیات، روانشناسی، نورولوژی، و فیزیولوژی نشان گرفت و شاخهها، فروع، و کاربردهای گونهگونه و فراوان آن را در علوم رایانه، علوم مهندسی، علوم زیستشناسی و پزشکی، علوم ارتباطات و زمینههای بسیار دیگر.
این شاخه از علوم بسیار گسترده و متنوع است و از موضوعات و رشتههای مختلف علوم و فناوری، مانند سازوکارهای ساده در ماشینها شروع شده، و به سیستمای خبره ختم میشود.
هدف هوش مصنوعی بطور کلی ساخت ماشینی است که بتواند «فکر» کند.
اما برای دسته بندی و تعریف ماشینهای متفکر، میبایست به تعریف «هوش» پرداخت.
همچنین به تعاریفی برای «آگاهی» و «درک» نیز نیازمندیم و در نهایت به معیاری برای سنجش هوش یک ماشین نیازمندیم.
فلسفه هوش مصنوعی: بطور کلی ماهیت وجودی هوش به مفهوم جمع آوری اطلاعات, استقرا و تحلیل تجربیات به منظور رسیدن به دانش و یا ارایه تصمیم میباشد .
در واقع هوش به مفهوم به کارگیری تجربه به منظور حل مسایل دریافت شده تلقی میشود.
هوش مصنویی علم و مهندسی ایجادماشینهایی با هوش با به کارگیری از کامپیوتر و الگوگیری از درک هوش انسانی و نهایتا دستیابی به مکانیزم هوش مصنوعی در سطح هوش انسانی میباشد.
در مقایسه هوش مصنوعی با هوش انسانی می توان گفت که انسان قادر به مشاهده و تجزیه و تحلیل مسایل در جهت قضاوت و اخذ تصمیم میباشد در حالی که هوش مصنوعی مبتنی بر قوانین و رویه هایی از قبل تعبیه شده بر روی کامپیوتر میباشد.
در نتیجه علی رغم وجود کامپیوترهای بسیار کارا و قوی در عصر حاضر ما هنوز قادر به پیاده کردن هوشی نزدیک به هوش انسان در ایجاد هوشهای مصنوعی نبوده ایم.
بطور کلی می توانیم هوش مصنوعی را از زوایای متفاوتی مورد بررسی قرار دهیم مانند هوش مصنوعی به عنوان یک هدف, هوش مصنوعی به عنوان یک رشته تحصیلی دانشگاهی و یا هوش مصنوعی به عنوان یک مرجع از فن و تکنولوژی که توسط مراکز علمی ایجاد و توسعه یافته است.
تاریخچه نام هوش مصنوعی در سال ۱۹۶۵ میلادی به عنوان یک دانش جدید ابداع گردید.
البته فعالیت درزمینه این علم از سال ۱۹۶۰ میلادی شروع شده بود.(مرجع۱) تعریف و طبیعت هوش مصنوعی هنوز تعریف دقیقی که مورد قبول همهٔ دانشمندان این علم باشد برای هوش مصنوعی ارائه نشدهاست، و این امر، به هیچ وجه مایهٔ تعجّب نیست.
چرا که مقولهٔ مادر و اساسیتر از آن، یعنی خود هوش هم هنوز بطور همهجانبه و فراگیر تن به تعریف ندادهاست.
در واقع، میتوان نسلهایی از دانشمندان را سراغ گرفت که تمام دوران زندگی خود را صرف مطالعه و تلاش در راه یافتن جوابی به این سؤال عمده نمودهاند که: هوش چیست؟
اما اکثر تعریفهایی که در این زمینه ارایه شدهاند بر پایه یکی از ۴ باور زیر قرار میگیرند: سیستمهایی که به طور منطقی فکر میکنند سیستمهایی که به طور منطقی عمل میکنند سیستمهایی که مانند انسان فکر میکنند سیستمهایی که مانند انسان عمل میکنند(مرجع۱) شاید بتوان هوش مصنوعی را این گونه توصیف کرد:«هوش مصنوعی عبارت است از مطالعه این که چگونه کامپیوترها را میتوان وادار به کارهایی کرد که در حال حاضر انسانها آنها رابهتر انجام میدهند»(مرجع۲).
مدیریّت پیچیدگی ایجاد و ابداع فنون و تکنیکهای لازم برای مدیریّت پیچیدگی را باید به عنوان هستۀ بنیادین تلاشهای علمی و پژوهشی گذشته، حال، و آینده، در تمامی زمینههای علوم رایانه، و به ویژه، در هوش مصنوعی معرّفی کرد.
شیوهها و تکنیکهای هوش مصنوعی، در واقع، برای حلّ آن دسته از مسائل به وجود آمده است که به طور سهل و آسان توسط برنامهنویسی تابعی (Functional programming)، یا شیوههای ریاضی قابل حلّ نبودهاند.
در بسیاری از موارد، با پوشانیدن و پنهان ساختن جزئیّات فاقد اهمّیّت است که بر پیچیدگی فائق میآییم، و میتوانیم بر روی بخشهایی از مسئله متمرکز شویم که مهمتر است.
تلاش اصلی، در واقع، ایجاد و دستیابی به لایهها و ترازهای بالاتر و بالاتر تجرید را نشانه میرود، تا آنجا که، سرانجام برنامههای کامپوتری درست در همان سطحی کار خواهند کرد که خود انسانها به کار مشغولند.
به یاری پژوهشهای گسترده دانشمندان علوم مرتبط، هوش مصنوعی از آغاز پیدایش تاکنون راه بسیاری پیمودهاست.
در این راستا، تحقیقاتی که بر روی توانایی آموختن زبانها انجام گرفت و همچنین درک عمیق از احساسات، دانشمندان را در پیشبرد این علم، یاری کردهاست.
یکی از اهداف متخصصین، تولید ماشینهایی است که دارای احساسات بوده و دست کم نسبت به وجود خود و احساسات خود آگاه باشند.
این ماشین باید توانایی تعمیم تجربیات قدیمی خود در شرایط مشابه جدید را داشته و به این ترتیب اقدام به گسترش دامنه دانش و تجربیاتش کند.
برای نمونه به رباتی هوشمند بیاندیشید که بتواند اعضای بدن خود را به حرکت درآورد، او نسبت به این حرکت خود آگاه بوده و با سعی و خطا، دامنه حرکت خود را گسترش میدهد، و با هر حرکت موفقیت آمیز یا اشتباه، دامنه تجربیات خود را وسعت بخشیده و سر انجام راه رفته و یا حتی میدود و یا به روشی برای جابجا شدن، دست مییابد، که سازندگانش، برای او، متصور نبودهاند.
هر چند مثال ما در تولید ماشینهای هوشمند، کمی آرمانی است، ولی به هیچ عنوان دور از دسترس نیست.
دانشمندان، عموماً برای تولید چنین ماشینهایی، از تنها مدلی که در طبیعت وجود دارد، یعنی توانایی یادگیری در موجودات زنده بخصوص انسان، بهره میبرند.
آنها بدنبال ساخت ماشینی مقلد هستند، که بتواند با شبیهسازی رفتارهای میلیونها یاخته مغز انسان، همچون یک موجود متفکر به اندیشیدن بپردازد.
مباحث هوش مصنوعی پیش از بوجود آمدن علوم الکترونیک، توسط فلاسفه و ریاضی دانانی نظیر بول (Boole) که اقدام به ارائه قوانین و نظریههایی در باب منطق نمودند، مطرح شده بود.
در سال ۱۹۴۳، با اختراع رایانههای الکترونیکی، هوش مصنوعی، دانشمندان را به چالشی بزرگ فراخواند.
بنظر میرسید، فناوری در نهایت قادر به شبیه سازی رفتارهای هوشمندانه خواهد بود.
با وجود مخالفت گروهی از متفکرین با هوش مصنوعی که با دیده تردید به کارآمدی آن مینگریستند تنها پس از چهار دهه، شاهد تولد ماشینهای شطرنج باز و دیگر سامانههای هوشمند در صنایع گوناگون هستیم.
هوش مصنوعی که همواره هدف نهایی دانش رایانه بودهاست، اکنون در خدمت توسعه علوم رایانه نیز است.
زبانهای برنامه نویسی پیشرفته، که توسعه ابزارهای هوشمند را ممکن میسازند، پایگاههای دادهای پیشرفته، موتورهای جستجو، و بسیاری نرمافزارها و ماشینها از نتایج پژوهشهای هوش مصنوعی بهره میبرند.
در سال ۱۹۵۰ آلن تورینگ (َAlain Turing)، ریاضی دان انگلیسی، معیار سنجش رفتار یک ماشین هوشمند را چنین بیان داشت: «سزاوارترین معیار برای هوشمند شمردن یک ماشین، اینست که آن ماشین بتواند انسانی را(و حتی یک محقق) توسط یک پایانه (تله تایپ) به گونهای بفریبد که آن فرد (و حتی یک محقق) متقاعد گردد با یک انسان روبروست.» در این آزمایش شخصی از طریق ۲ عدد پایانه (رایانه یا تله تایپ) که امکان برقراری ارتباط و گپزنی را برای وی فراهم میکنند با یک انسان و یک ماشین هوشمند، بطور همزمان به پرسش و پاسخ میپردازد.
در صورتی که وی نتواند ماشین را از انسان تشخیص دهد، آن ماشین، هوشمند است.
خلاصه ابنکه مورد تحقیق قرار گیرد و محقق نتواند دریابد در آن طرف انسان قرار دارد یا کامپیوتر.
آزمایش تورینگ از قرار دادن انسان و ماشینید، از تفکری انسانی برخوردار است.
آزمایش تورینگ مدل سازی نحوه تفکر انسان، تنها راه تولید ماشینهای هوشمند نیست.
هم اکنون دو هدف برای تولید ماشینهای هوشمند، متصور است، که تنها یکی از آن دو از الگوی انسانی جهت فکر کردن بهره میبرد: سیستمی که مانند انسان فکر کند.
این سیستم با مدل کردن مغز انسان و نحوه اندیشیدن انسان تولید خواهد شد و لذا از آزمون تورینگ سر بلند بیرون میآید.
از این سیستم ممکن است اعمال انسانی سر بزند.
سیستمی که عاقلانه فکر کند.
سامانهای عاقل است که بتواند کارها را درست انجام دهد.
در تولید این سیستمها نحوه اندیشیدن انسان مد نظر نیست.
این سیستمها متکی به قوانین و منطقی هستند که پایه تفکر آنها را تشکیل داده و آنها را قادر به استنتاج و تصمیم گیری مینماید.
آنها با وجودی که مانند انسان نمیاندیشند، تصمیماتی عاقلانه گرفته و اشتباه نمیکنند.
این ماشینها لزوما درکی از احساسات ندارند.
هم اکنون از این سیستمها در تولید عاملها در نرم افزارهای رایانهای، بهره گیری میشود.
عامل تنها مشاهده کرده و سپس عمل میکند.
Agent قادر به شناسایی الگوها، و تصمیم گیری بر اساس قوانین فکر کردن خود است.
قوانین و چگونگی فکر کردن هر Agent در راستای دستیابی به هدفش، تعریف میشود.
این سیستمها بر اساس قوانین خاص خود فکر کرده و کار خودرا به درستی انجام میدهند.
پس عاقلانه رفتار میکنند، هر چند الزاما مانند انسان فکر نمیکنند.
با وجودی که برآورده سازی نیازهای صنایع نظامی، مهمترین عامل توسعه و رشد هوش مصنوعی بودهاست، هم اکنون از فراوردههای این شاخه از علوم در صنایع پزشکی، رباتیک، پیش بینی وضع هوا، نقشهبرداری و شناسایی عوارض، تشخیص صدا، تشخیص گفتار و دست خط و بازیها و نرم افزارهای رایانهای استفاده میشود.
مراجع Stuart J.
Russell, Peter Norvig:«Artificial Intelligence: A Modern Approach»: feb ۲۰۰۳ ایلین ریچ، هوش مصنوعی(وتکنیکها)، ترجمه آزاد از دکتر مهرداد فهیمی، نشر جلوه، ۱۳۷۵، وبگاه سیمرغ هوش مصنوعی: به شیوهای مدرن هوش مصنوعی: راهنمائی برای سامانههای هوشمند این کتاب به صورتی ساده و روان نوشته شدهاست.
Artificial Intelligence Handbook: Principles by Instrument Society of , 1989, ISBN: 1 - 55617 - 133 - 1