|
|
|
||||
|
فايل DLL چيست؟
![]() در كامپيوتر، DLL که مخفف dynamic link library است مجموعه اي از برنامه هاي کوچک است، که هر کدام مي تواند توسط يک برنامه بزرگتر که در کامپيوتر در حال اجرا است احضار شود. برنامه کوچکي که به برنامه بزرگتر اجازه برقراري ارتباط با يک وسيله ويژه مثل چاپگر (پرينتر) و يا اسکنر را ميدهد همواره به عنوان يک برنامه DLL بسته بندي مي شود( معمولا به " فايل DLL " اشاره مي شود). مزيت فايل هاي DLL اين است که، از آنجا که آنها در حافظه كامپيوتر (RAM) با هم به همراه برنامه اصلي بارگذاري نــمي شوند، فضا در RAM صرفه جويي مي شود. وقتي که يک فايل DLL نياز است، بعد بارگذاري و اجرا مي شود. به طور مثال تا مادامي که يک کاربر microsoft word ( يک برنامه پردازش کلمه که توسط شرکت microsoft به وجود امده است ) دارد يک سند (Document) را ويرايش مي کند، فايل DLL چاپگر نياز نيست تا در RAM بارگذاري شود. اگر کاربر تصميم به پرينت گرفتن آن سند بگيرد، سپس برنامه کاربردي Word باعث مي شود تا فايل DLL چاپگر بارگذاري و اجرا شود. به يک فايل DLL اغلب پسوند نام فايل ".dll" داده مي شود. فايل هاي DLL به صورت پويايي به برنامه اي که از آنها در طول زمان اجراي برنامه استفاده مي کند متصل هستند تا اينکه با برنامه اصلي گردآوري شوند. مجموعه چنين فايل هاي (يا DLL ) تقريبا قابل مقايسه با کتابخانه روال هايي هستند (library routines) که با زبان هاي برنامه ريزي از قبيل ++C و C فراهم مي شوند. مساعدت توسط Terrence McIntyre تهيه شده بود. آخرين بروزرساني اين مطلب : سيزدهم اکتبر سال 1999 * * * * * * * * * * * * * * * * * *
+
نوشته شده در دوشنبه هجدهم اردیبهشت 1391ساعت 12:1 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
||||
|
شرکت موزیلا با ارائه برنامه افزودنی برای مرورگر فایرفاکس خود به کاربران این امکان را می دهد تا برای مقابله با سیاست جنجالی و جدید حفظ حریم خصوصی گوگل، شرکتهایی که در حال مشاهده فعالیتهای آنلاین آنها هستند را ردیابی کنند.
سیاست جدید گوگل می تواند دریایی از اطلاعات مرتبط با جستجوهای کاربران را به تجارت ۲۸ میلیون دلاری تبلیغات گوگل بیافزاید بدون توجه به این موضوع که ذخیره سازی چنین حجمی از اطلاعات خصوصی می تواند در بسیاری از کشورها غیرقانونی به حساب بیاید. برنامه افزودنی Collusion به معنی “تبانی” به کاربران اجازه می دهد که پرده ها از چهره شرکتهای تبلیغات در اینترنت که حرکات آنلاین آنها را ردیابی می کنند بردارند. فایرفاکس دومین مررگر محبوب جهان پس از اینترنت اکسپلورر است، جایگاهی که به شدت در معرض تهدید مرورگر کروم شرکت گوگل قرار دارد. تجارت گوگل بر مبنای تبلیغات ساخته شده است و این شرکت در سال ۲۰۱۰ توانست از این راه ۲۸ میلیارد دلار درآمد داشته باشد. سیاست جدید حفظ حریم خصوصی گوگل به این شرکت اجازه می دهد اطلاعات گوشی های اندرویدی، وب سایت یوتیوب، سرویس جی میل، و موضوعات جستجو شده در مرورگر کروم را در راستای اهداف تبلیغاتی خود مورد استفاده قرار داده و در مسیر ایجاد تبلیغات شخصی سازی شده برای کاربران قدمی به جلو بردارد. برنامه جدید موزیلا می تواند به کاربر نشان دهد که دقیقا چه شرکتی در حال کنترل موضوعات جستجو شده در مرورگر و موتور جستجوی گوگل است و همچنین می تواند در زمان حقیقی شبکه ای تار عنکبوتی از تعاملات میان شرکتهای تبلیغاتی و دیگر ردیابهای فعالیتهای کاربران را به دقت نمایش دهد. این شرکت همچنین در نظر دارد پایگاه داده هایی از بدترین مزاحمان اینترنتی را فراهم آورده و اطلاعات آن را در اختیار مخالفان سیاست جدید گوگل قرار دهد. به گفته موزیلا زمانی که نسخه نهایی این برنامه ارائه شود کاربر می تواند اطلاعات شرکتهایی که وی را کنترل می کنند بر روی پایگاه داده های جهانی قرار دهد. سپس تمامی این اطلاعات با یکدیگر ترکیب شده و در اختیار محققان، خبرنگاران و دیگر تحلیل گران قرار خواهند گرفت. گوگل بدون کوچکترین توجه به اعتراضات بین المللی که نسبت به سیاست جدید حفظ حریم خصوصی این شرکت به وجود آمده بود، این سیاست را در سرتاسر جهان اجرایی کرد. مقامات اتحادیه اروپا نیز طی ایمیلی به “لری پیج” مدیر اجرایی گوگل، این سیاست را تخلفی آشکار از قوانین اروپایی اعلام کرده اند. از سویی دیگر متخصصان آژانس حریم خصوصی CNIL که وظیفه بررسی عملکرد گوگل را به عهده دارد می گویند توضیح این شرکت درباره چگونگی استفاده این شرکت از اطلاعات خصوصی کاربران به اندازه ای پیچیده و غیر قابل درک است که حرفه ای ترین متخصصان حریم خصوصی نیز در درک آن مشکل دارند. بر اساس گزارش میل آنلاین، چنین استفاده ای از اطلاعات خصوصی کاربران در بسیاری از کشورها، از جمله اتحادیه اروپا، ژاپن و کره غیر قانونی به شمار می رود و این کشورها نیز اعتراضات خود را به گوگل اعلام کرده اند.
+
نوشته شده در دوشنبه بیست و هشتم فروردین 1391ساعت 10:1 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
||||
|
اینترنت تکنولوژی مرزناشناسی است که هر لحظه بر وسعت آن افزوده می شود. هم اکنون میلیاردها سایت بر روی این شبکه وجود دارد و هر ۵ ثانیه نیز یک سایت به آن افزوده می شود. این دنیای مجازی آنقدر بزرگ شده است که دیگر کاربران بدون استفاده از موتورهای جستجو قادر به بهره مندی از آن نیستند، و بدین ترتیب روز به روز اهمیت استفاده از موتورهای جستجو بارزتر می گردد. اما همان اندازه که این موتورها مفید هستند درصورت ناآشنا بودن با نحوه درست کار با آنها می توانند خسته کننده هم باشند.
کلمات اصلی تر را بنویسیدهمانگونه که گفته شد برای بهتر نتیجه گرفتن از جستجو لازم است که کلمات اصلی را در نوار جستجو وارد کنید. برای اینکار هر قدر که می توانید، موضوع جستجو را ریزتر و معین تر نمائید. برای مثال بجای آنکه در نوار جستجو تایپ کنید "نقاش" بهتر است که نام نقاش مورد نظرتان را تایپ کنید، مثلاً بنویسید "پیکاسو". یا اینکه بجای "اتومبیل" بهتر است بنویسید "پژو" و یا... از آوردن حروف اضافه خودداری کنیدگوگل بطور پیش فرض فقط سایتهائی را لیست می نماید که تمام کلمات مورد جستجو در آنها باشند. و نیازی نیست که شما بین کلمات جستجو از کلمة پیوند دهندة "و" استفاده نمائید. به خاطر داشته باشید که وارد نمودن چنین کلماتی و کلماتی نظیر در، به، و... بر نتیجه جستجو تاثیر خواهد گذشت. بطور مثال برای جستجو در مورد تعطیلات در شمال بجای تایپ نمودن "گذراندن تعطیلات در شمال" بهتر است تنها بنویسید: "تعطیلات شمال". حروف بزرگ و کوچک فرق نمی کنندگوگل نسبت به بزرگی و کوچکی حروف حساس نمی باشد. در حقیقت همه حروفی را که به لاتین در نوار جستجو تایپ می نمائید به حروف کوچک تبدیل خواهند شد. برای مثال نتیجة جستجوی "george washington"، "George Washington" و "gEoRgE WaShInGtOn" یکسان خواهد بود. جستجوهای طبقه بندی شدهبا همه این توضیحات اگر مایلید که نتایج جستجوهای شما دقیق تر و علمی تر باشند بهتر است سری هم به directory.google.com بزنید. در این آدرس فهرستی از سایتهای اینترنتی با توجه به موضوعات آنها موجود می باشد. مثلاً اگر دنبال سایتی در مورد سیاره زحل می گردید، می توانید با رفتن به شاخه Science و زیر شاخه Astronomy به زیر شاخه Saturn دست یابید. همچنین اگر در مورد خودروی Saturn جستجو می کنید می توانید سایتهای مرتبط با آنرا در شاخه Automotive بیابید. جستجوی پیشرفتهدر جلوی نوار جستجوی گوگل گزینه ای با عنوان «جستجوی پیشرفته» یا «Advanced Search» وجود دارد. با کلیک کردن روی این گزینه وارد صفحه ای با همین نام خواهید شد. در این صفحه شما می توانید با اعمال تنظیمات و بکار بردن عملگرهای خاصی دقت جستجویتان را افزایش دهید. عملگر +همانگونه که قبلاً گفتیم گوگل از یک سری کلمات معمولی بصورت خودکار چشم پوشی می کند، ولی در صورتی که شما ضروری می دانید که اینگونه کلمات حتماً مورد جستجو قرار گیرند، می توانید با قرار دادن یک علامت "+" در جلوی آنها مطمئن شوید که در نتایج جستجو حتماً وجود خواهند داشت. (دقت کنید که قبل از کاراکتر "+" یک فاصله (space) وجود داشته باشد ولی کلمه بعدی بدون فاصله، فوراً پس از آن بیاید). عملگر –برخی اوقات ممکن است که شما دنبال کلمه ای بگردید که بیش از یک معنا دارد، برای مثال کلمه «bass» در ماهیگیری به معنای «ماهی خالدار» است و در موسیقی به معنای «صدای بم». برای حل اینگونه مشکلات می توانید از عملگر "-" استفاده کنید، تا گوگل به دنبال سایتهایی بگردد که کلمة بعد از این عملگر در آنها نباشند. (دقت کنید که قبل از کاراکتر "-" یک فاصله (space) وجود داشته باشد ولی کلمه بعدی بدون فاصله، فوراً پس از آن بیاید). مثلاً در مثال فوق می توانید بنویسید: bass –music. عملگر ~گاهی ممکن است که شما فقط به دنبال کلمه ای خاص نباشید و بخواهید که به دنبال کلمات مرتبط با آن نیز بگردید. برای این کار از این عملگر استفاده می شود. برای مثال اگر در کادر جستجو تایپ کنید «کیفیت غذا» در نتیجه سایتهایی ظاهر خواهند شد که کلمه «کیفیت» و کلمه «غذا» در آنها وجود داشته باشد. و حتی ممکن است که این دو کلمه اصلاً به هم ربط هم نداشته باشند. اما اگر تایپ کنید «~کیفیت ~غذا» دنبال سایتهایی می گردد که درباره کیفیت غذاها نوشته باشند. عملگر ""همانگونه که قبلاً نیز گفته شد، برای جستجوی عبارتی خاص بصورت کامل (نه بصورت کلمات جدا از هم) بایستی آن عبارت را در داخل کوتیشن (" ") قرار داد. عملگر «یا»گوگل از یای منطقی پشتیبانی میکند. بدین معنا که اگر دنبال کلمه ای خاص «یا» بجای آن کلمه ای دیگر می گردید، می توانید در بین این دو کلمه از «یا» استفاده کنید. برای مثال اگر در کادر جستجو تایپ کنید «تعطیلات در شیراز یا اصفهان» آنگاه گوگل دنبال سایتهایی می گردد که در خصوص تعطیلات در شیراز یا در اصفهان باشند. عملگر SITEاگر می خواهید که عمل جستجو در سایت بخصوصی انجام گیرد، می توانید پس از وارد نمودن کلمه مورد نظر عملگر Site: را آورده و پس از آن آدرس سایت را بیاورید. برای مثال برای جستجوی «پذیرش» در سایت دانشگاه استانفورد می توانید بنویسید: admission site:www.stanford.edu عملگر ..برای اینکه جستجو را محدود به سایتهایی کنید که در آنها اعداد محدودة خاصی وجود داشته باشند، می توانید از این عملگر برای نشان دادن محدودة عددی مورد نظر بهره برید. مثلاً اگر به دنبال DVD Playerهای با قیمت ۲۵۰ تا ۳۵۰ دلار می گردید، بایستی اینگونه خواسته تان را بیان کنید: DVD player $۲۵۰..۳۵۰ (توجه داشته باشید که بین دو نقطة عملگر هیچ فاصله ای نباشد).
+
نوشته شده در سه شنبه شانزدهم اسفند 1390ساعت 17:13 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
||||
|
هوش مصنوعی یا هوش ماشینی را باید عرصهٔ پهناور تلاقی و ملاقات بسیاری از دانشها، علوم، و فنون قدیم و جدید دانست. ریشهها و ایدههای اصلی آن را باید در فلسفه، زبانشناسی، ریاضیات، روانشناسی، نورولوژی، و فیزیولوژی نشان گرفت و شاخهها، فروع، و کاربردهای گوناگون و فراوان آن را در علوم رایانه، علوم مهندسی، علوم زیستشناسی و پزشکی، علوم ارتباطات و زمینههای بسیار دیگر.
هوش مصنوعی به هوشی که یک ماشین از خود نشان میدهد و یا به دانشی در کامپیوتر که سعی در ایجاد آن دارد گفته میشود. بیشتر نوشتهها و مقالههای مربوط به هوش مصنوعی آن را «دانش شناخت و طراحی عاملهای هوشمند. تعریف کردهاند. یک عامل هوشمند سیستمی است که با شناخت محیط اطراف خود، شانس موفقیت خود را بالا میبرد. جان مکارتی که واژه هوش مصنوعی را در سال ۱۹۵۶ استفاده نمود، آن را «دانش و مهندسی ساخت ماشینهای هوشمند» تعریف کردهاست. تحقیقات و جستجوهایی انجام شده برای رسیدن به ساخت چنین ماشینهایی مرتبط با بسیاری از رشتههای علمی دیگر است، مانند علوم رایانه، روانشناسی، فلسفه، عصب شناسی، علوم ادراکی، تئوری کنترل، احتمالات، بهینه سازی و منطق.
+
نوشته شده در چهارشنبه پنجم بهمن 1390ساعت 13:47 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
||||
|
در يک تصمصم گيری شما تعدادی عمل (action) داريد که می تونيد از بين اونا يکی رو انتخاب کنيد. انتخاب بهترين عمل مستلزم دونستن نتايج بعدی اون کار هست و نه فقط نتايج آنی اون. درک نتايج دراز مدت معمولاْ می تونه به تصميم گيری بهتر خيلی کمک کنه. نکته اينجاست که تصميم گيرنده بايد بتونه بين فوايد کوتاه مدت و دراز مدت که لزوماْ باعث تقويت همديگه نمی شن انتخاب کنه. اين مدل به مدل پنهان مارکوف معروفه و هر روز در کارهای روزمره مردم از اون استفاده می کنن. برای مسائلی به اين شکل راه حل های استانداردی وجود داره که اگه بتونيم اجزای مساله رو به خوبی مدل کنيم به راحتی می تونيم از اونا استفاده کنيم. اجزای اصلی يک مدل مارکوف عبارتند از: ۱- من کجام؟ (مجموعه حالت ها) وضعيتی که مساله شما در اون قرار داره حالت اون مساله گفته می شه. در واقع اگه ما تمامی حالت هايی که ممکنه مساله به اون بره رو در نظر بگيريم٬ ميشه مجموعه حالات. مثال: در مساله پيدا کردن يک خونه هدف در يک جدول٬ هر خونه جدول يک حالته ۲- چيکار می تونم بکنم؟ (مجموعه عمل ها) تصميمی که می تونه گرفته بشه يک عمله. تمامی مجموعه تصميمات قابل اتخاذ مجموعه اعمال رو تشکيل می ده. مثال: در مساله قبلی اعمال رفتن به چپ٬ راست٬ بالا و پايين ۳- اين کارا منو به کجا می رسونه؟ (گذر) يک گذر ازيک حالت مشخص کننده اينه که يک عمل در اون حالت به چه نتيجه ای (حالت و پاداشی) منجر می شه. يکی از توسيع (extention) هايی که در مورد مدل مارکوف هست اينه که گذرها احتمالاتی باشن. همچنين توسيع ديگه اينه که از يک حالت با يک عمل ممکنه به حالتهای مختلف بريم. مثال: تغيير مختصات در جهت هر يک از اعمال فوق ۳- چی گيرم مياد؟ (ارزش افزوده فوری هر عمل) برای اينکه بتونيم بين اعمالمون ارزشی برای يکی و ترجيحی برای اون قايل بشيم بايد بتونيم ارزش افزوده ای براش تعيين کنيم. (پاداشی که از هر عمل می گيريم. مثال: برای مساله فوق اگه پاداش هر حرکت ۰.۱- و پاداش خروج از جدول ۰.۵- و پاداش رسيدن به هدف ۱+ گرفته بشه با روش Q-Learning جواب ميده. *آدم بايد سياست داشته باشه (حل مساله مدل مارکوفی) حل يک مساله مارکوف سياست حل اون ناميده می شه که برای هر حالت بهترين حالت بعدی رو تعيين ميکنه. در هر حال سياست بصورت يک تابع ارزش (value-function) نشون داده می شه که در هر حالتی بهترين حالت بعدی رو ميشه از روش حساب کرد. * عوضی نيای بعضی از مسايل هست که يک گذر بسته به چندين حالت قبليه که ديگه اين جزء مارکوف حساب نميشه و بايد برين يه جای ديگه حلش کنين. کلاْ يک مساله رو زمانی مارکوفی به حساب ميارن که رسيدن به يک حالت فقط بستگی به حالت قبلی و عمل انجام شده در اون حالت داشته باشه.
+
نوشته شده در چهارشنبه بیست و یکم دی 1390ساعت 8:58 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
||||
|
احتمالا در خیلی از مقاله ها و در سایتهای مختلف تکنولوژی و فناوری درباره آینده عجیبی که در آن همه وسایل اعم از PC ، PDA گرفته تا تلفن سلولی (موبایل) ، اتومبیل ، یخچال و به طور کل لوازم خانگی که به اینترنت وصل می شوند مطالبی را خوانده اید. برای مثال شما تصور کنید که از خانه خود برای انجام یک سفر به کشوری خارجی اعزام شده اید و شخصی در نبود شما بسته ای را برای شما می آورد و زنگ خانه شما را می زند در حالی که شما کیلومترها از خانه خود دور هستید و ناگهان تلفن همراه شما زنگ می خورد و دوربینی که در جلوی درب منزل خود نصب کرده اید تصویر شخص مورد نظر را بر روی تلفن همراه شما نمایان می سازد و مشاهده می کنید که بسته ای را برای شما آورده اند ، از همان جا درب منزل خود را باز می کنید و با سیستم های صوتی به او می گویید که بسته را داخل منزل بگذارد و درب را بسته و قفل می نمایید و همه این کارها را به صورت از راه دور و به صورت Remote انجام می دهید. خوب برای چند دقیقه رویای جالبی بود اما یک ایراد در این بین وجود دارد : هر دستگاهی که بخواهد به اینترنت متصل شود و معرفی شود بایستی آدرس IP خاص خود را داشته باشد. ولی برای این همه دستگاه الکترونیکی به اندازه کافی IP وجود ندارد. هیچ کس تصور نمی کرد که بیش از چهار میلیارد آدرس IP (که برای شناسایی تمامی کامپیوترها در نظر گرفته شده بود) یک روز تمام شود. اما امروزه خیلی ها پیش بینی می کنند که این آدرس ها حداکثر تا دهه آینده بیشتر دوام نخواهد آورد. اینترنت در دنیای غرب تقریبا همه جا را گرفته و با سرعتی که در آسیا و کشورهای توسعه یافته پیش می رود ، همه آدرس های خالی در آینده پر خواهند شد. این که درصد بالایی از آدرس های IP به خاطر لجبازی و چشم و هم چشمی های دانشگاه ها و سازمان های آمریکایی حیف و میل شدند و IP های متعددی از پیش به آنها اختصاص داده شد فرقی در اصل قضیه نمی کند. مثلا دانشگاه استنفورد بیش از 17 میلیون آدرس IP را برای خود گرفته است و این در حالی است که کشوری همانند هند که بیش از یک میلیارد جمعیت دارد فقط 2 میلیون آدرس IP را به خود اختصاص داده است.
+
نوشته شده در سه شنبه یکم آذر 1390ساعت 8:8 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
||||
![]() در دنیای برنامهنویسی جاوا، چندین IDE معروف و محبوب وجود داردند. یکی از قویترین و در عین حال محبوبترین IDE های جاوایی، IntelliJ IDEA محصول شرکت JetBrains است. این IDE برخلاف اغلب IDE های جاوایی رایگان و کد باز نیست. خرید هر نسخه آن حدود 500 دلار هزینه دارد، با این حال بسیاری از برنامهنویسان در شرکتهای بزرگ حاضرند با هزینه شخصی خود این IDE را خریداری و با آن برنامهنویسی کنند! با این حال این IDE دارای نسخههای ارزیابی (evaluation) سی روزه است. برای این که سرعت و توانایی و دقت برنامهنویسان افزایش یابد، از ابزارهایی به نام IDE که مخفف Integrated Development Environmnet و به معنی «محیط توسعه یکپارچه» است، استفاده میشود. IDE ها امکاناتی را در اختیار برنامهنویسان قرار میدهند که تصور این که بتوان بدون آنها کاری را انجام داد خیلی سخت است. برای مثال برخی از قابلیتهای IDE ها فهرست میکنیم: مرتب کردن کدها: محیطهای توسعه کدهای نوشته را مرتب کرده و باعث خوانایی بهتر کد برنامه میشوند. تکمیل خودکار (Auto completion): با این ویژگی شما لازم نیست نام کامل متغیرها و توابع را حفظ کنید. کافی است شروع به نوشتن نام آنها کنید، پس از آن برنامه محیط توسعه، نام کامل آنرا حدس زده و به شما برای انتخاب معرفی میکند. خطازدایی (دیباگ یا Debug): شما میتوانید برنامه تولید شده را به صورت آزمایشی اجرا کرده و مقادیر هر متغیر را در هر زمان از اجرای برنامه ببینید، یا اینکه فرآیند اجرای برنامه را به صورت کامل مدیریت کنید. همچنین چنانچه برنامه شما در حین اجرا به مشکلی برخورد، آنرا بررسی کرده و راهکار رفع آن را بدست آورید
+
نوشته شده در دوشنبه دوم آبان 1390ساعت 11:48 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
||||
|
در گذشته نه چندان دور داشتن ابزارهاي ذخيره سازي با ظرفيت بالا چيزي شبيه به داشتن يک بويينگ در شرايط کنوني بود، اما امروزه با پيشرفت علم، خريد هارد ديسک هاي يک ترابايتي به امري عادي تبديل شده است و کاربر با وجود اين فضا مي تواند حجم وسيعي از اطلاعات را ذخيره کند. اما آنچه امروزه به عنوان يک مشکل و شايد يک کابوس براي توليدکنندگان محتواي ديجيتالي( Digital Conect Creators) مطرح است، نگه داري و ذخيره سازي حجم بالاي اطلاعات و داده ها در صحت و سلامت است. شايد اين سؤال در ذهن شما هم به وجود آيد که واقعاً راه حل اين مشکل چيست. آيا تنها راه غلبه بر اين مشکل افزايش ظرفيت رسانه هاي ذخيره سازي است؟ واقعاً افزايش ظرفيت هارد ديسک ها، کارت هاي حافظه و ساير رسانه ها تا کجا ادامه مي يابد؟ آنچه به عنوان راه حل منطقي براي غلبه بر اين مشکل معرفي مي شود، نه افزايش ظرفيت ذخيره سازي بلکه انتخاب يک روش مناسب براي بايگاني و آرشيو کردن اطلاعات است که ما در اين مقاله سعي داريم آن را بيان کنيم تا شايد راه حلي بهتر و امن تر براي حفظ آرشيوهاي گران قيمت خود داشته باشيد. به عکاس ها پيشنهاد مي کنيم اين مطلب را بخوانند، شايد با خواندن اين مطلب ديگر نيازي نباشد تا بابت از دست دادن عکس هاي با ارزش خود متحمل استرس فراواني شوند!
ابزارهاي ذخيره سازي اطلاعات 1. روش ذخيره سازي شيميايي( فيلم، ميکروفيلم)؛ 2. روش ذخيره سازي مغناطيسي( هارد ديسک، نوار مغناطيسي)؛ 3. روش ذخيره سازي الکتريکي( فلش ديسک ها، کارت هاي حافظه)؛ 4. روش ذخيره سازي نوري( ديسک هاي نوري فشرده). روش شماره يک به دليل شرايط ويژه نگه داري فيلم ها و ميکروفيلم ها، امروزه کمتر مورد استفاده قرار مي گيرد و تنها در موارد خاصي از آن استفاده مي شود. به همين دليل براي ذخيره اطلاعات ضروري نمي توان چندان به اين روش اطمينان کرد. از ميان ابزارهاي بايگاني مغناطيسي مي توانيم از هارد ديسک ها به عنوان موفق ترين نمونه نام ببريم که امروزه نيز در بيشتر موارد از آن استفاده مي شود. قيمت ارزان، راحتي استفاده و قابليت حمل و نقل قابل قبول( البته نه چندان خوب) از مزاياي هارد ديسک ها به شمار مي رود. اما نکته مهم ضريب اطمينان و ماندگاري اطلاعات در اين رسانه است. ميدان هاي مغناطيسي و ضربه، همچنين نوسانات الکتريکي مي توانند در لحظه اي بسيار کوتاه باعث از بين رفتن اطلاعات ذخيره شده شوند. امکان حذف اطلاعات و بازنويسي سهوي داده ها از ضريب اطمينان هارد ديسک ها مي کاهد. امروزه نوارهاي مغناطيسي نيز به دليل قيمت بالا و هزينه نگه داري زياد جاي خود را به روش هاي سريع تر و دقيق تر داده اند. ديسک هاي نوري نکته مهم در انتخاب ديسک هاي نوري به عنوان ابزار بايگاني و آرشيو، ماندگاري و دوام اطلاعات ذخيره شده است. اين ديسک ها در مقابل عوامل محيطي مانند رطوبت، حرارت و نور ماوراء بنفش آسيب پذير بوده و اطلاعات ذخيره شده روي آن ها در اثر مرور زمان با مشکل رو به رو مي شوند. اگر به ساختار يک ديسک نوري نگاهي بياندازيم، دليل اين آسيب پذيري را بيشتر درک خواهيد کرد( تصوير 1). A: لايه ضبط اطلاعات؛ B: لايه انعکاس دهنده پرتو ليزر؛ C: لايه پلاستيکي براي محافظت از لايه انعکاسي؛ D: لايه چاپ مشخصات؛ E: پرتو ليزر. در حقيقت، اشکال عدم دسترسي به اطلاعات به دو لايه حکاکي A و لايه انعکاسي B مربوط است. در ديسک هاي نوري معمولي به عنوان لايه ضبط اطلاعات از ماده شيميايي Cyanine ( از خانواده پلي کربنات ها) استفاده مي شود. اين لايه به مرور زمان و در اثر عوامل محيطي تغيير حالت داده و موجب مي شود حفره ها و برجستگي هاي ايجاد شده در سطح ديسک نوري تغيير شکل داده و پديده خطاي خواندن اطلاعات ( Read Error) به وجود آيد. در صورتي که تواتر خطاي خواندن را افزايش يابد، اطلاعات ديسک قابل استفاده نخواهد بود. آزمايش هاي لابراتواري ميزان ماندگاري اطلاعات روي ديسک هاي نوري متعارف را يک بازه زماني سه الي پنج سال برآورد کرده اند. براي غلبه بر اين مشکل، فناوري جديدي ابداع شده که باعث ماندگاري اطلاعات به مدت بسيار طولاني مي شود. در اين فناوري که از آن به عنوان انقلابي در صنعت بايگاني نام برده مي شود از فلز طلاي خالص 24 عيار به عنوان لايه انعکاسي و پلي کربنات جديد Phthalocyanine در لايه ضبط اطلاعات استفاده شده است. در نهايت براي جلوگيري از ايجاد خراش و آسيب ديدگي، سطح ديسک نوري با يک لايه ابداعي به نام « زره ضد خش»( Scratch Armor) پوشانده مي شود. اين فناوري به طور انحصاري در اختيار شرکت Delkin Devices است که سري محصولات آرشيو طلايي( Archival Gold) خود را در سه دسته CD-R، DVD-R و BD-R عرضه مي کند. استفاده از فلز طلاي 24 عيار به عنوان باثبات ترين عنصر فلزي، پديده اکسيداسيون را به صفر رسانده است. همچنين پايداري پلي کربنات Phthalocyanine در مقابل عوامل محيطي آن را به ايده آل ترين ماده شيميايي براي حکاکي اطلاعات تبديل کرده است. ترکيب اين دو لايه باعث شده تا ماندگاري اطلاعات در ديسک هاي نوري CD-R به سيصد سال، در ديسک هاي نوري DVD-R به صد سال و در ديسک هاي نوري BD-R اين شرکت به دويست سال برسد! ( کمي باور کردنش سخت است، اما اگر راستش را بخواهيد حقيقت دارد). اين نتايج از آزمايش هاي مؤسسه ملي تحقيقات و استاندارد امريکا( N.I.S.T) و با استفاده از دستگاه شتاب دهنده زمان تأثير عوامل محيطي، به دست آمده اند. با اين تمهيدات، اکنون مي توانيم با خيالي آسوده، اطلاعات ارزشمند خود مانند عکس، فيلم، موسيقي و هرگونه داده را براي حفظ و نگه داري به مدت طولاني روي اين ديسک هاي نوري ذخيره کنيم. مي توان پيش بيني کرد که در آينده نزديک با افزايش حجم اطلاعات، استفاده از رسانه هاي پر ظرفيت و قابل اطمينان مانند ديسک هاي نوري BD-R تنها راه اطمينان بخش براي آرشيو طولاني مدت خواهد بود.
+
نوشته شده در پنجشنبه هفتم مهر 1390ساعت 15:19 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
||||
|
سادگی و تندرستی یا آسیب دیدگی؟
سال های متمادی است که طراحی صنعتی روی چگونگی اثر و فعل و انفعال متقابل ما و رایانه ها هنگام کار تمرکز کرده است. تنها در کشور انگلستان آمار و ارقام گوناگون انتشاریافته مبنی بر آسیب دیدگی کاربران در اثر استفاده مکرر روزمره از صفحه کلیدها و ماوس های رایانه که بر اساس آن ها با 5میلیون ساعت کاری زیان در سال و نیم میلیون کاربر صدمه دیده تخمین زده می شود. همین آمارها نشان می دهند که از هر 30 کاربر، یکی از دردهای ناشی از آسیب های وارده به نواحی مختلف مچ و کف دست و انگشتان که در اثر طراحی غیرصحیح صفحه کلیدها و ماوس های رایانه به وجود آمده، رنج می برد. امروزه استفاده از رایانه تنها محدود به فضای کاری نیست و این به معنای آن است که ما می توانیم همان مقدار زمانی که هنگام کار مقابل رایانه می گذرانیم، در منزل نیز از رایانه شخصی مان استفاده کنیم. آسیب هایی هم که در اثر استفاده ممتد و طولانی مدت و اشکال دارای طراحی صنعتی و طبی نادرست و غلط صفحه کلیدها و ماوس ها برای کاربران رخ می دهند، چندان کم نیستند. ما اینجا قصد داریم آن ها را بررسی کنیم و راه کارهایی برای پیشگیری از این صدمات ارائه کنیم. طراحی صنعتی قطعات رایانه صفحه کلیدها خصوصیتی که مچ ها را از دراز کردن زیادی به طرف خارج از بدن و همچنین خمیدگی و پایین افتادگی بیش از حد به پایین، بی نیاز کرده و در نتیجه از پیش آمدن آسیب دیدگی هایی نظیر کشیدگی پیشگیری می کند. اما صفحه کلید 2قسمتی تنها راه حل این مشکل نیست راه حل های دیگری از قبیل طرح صفحه کلیدهای خمیده5 و مجموعه ای از کلیدها به صورتی مجزا و قرار گرفتن آن ها در زاویه های مختلف که دسترسی و تماس انگشتان را به آن ها به مراتب آسان تر می کند نیز راه کارهای موثر و مفید دیگری برای بهینه سازی طراحی آن ها هستند. طراحی صنعتی ماوس ها گرایش خاصی به توزیع صحیح وزن دست در اطراف وسیله دارد که این امر برای خودداری از گذاشتن فشار اضافی بر یک نقطه از کف دست ضروری است. این موضوع در مورد دکمه ها و چرخ های غلتان6 نیز صدق می کند، زیرا آن ها را طوری طراحی می کنند که تا حد امکان از حرکت اضافی و فاصله گرفتن انگشتان دست از وضعیت راحت و حالت استراحت اجتناب ورزند. البته طراحی های مختص افراد چپ و راست دست نیز با هدف و مقصود ذهنی مشخصی بهینه سازی شده است که حاصل آن هر چه بیشتر سفارشی شدن ابزارها و لوازم بر اساس نیازهای کاربر است. برای فاصله گرفتن از طراحی سنتی، ماوس های افقی، بازوها را در وضعیت دست دادن قرار می دهد و از چرخش خلاف جهت مچ و ساعد جلوگیری می کند؛ وضعیتی که در استفاده از انواع سنتی صاف و مسطح پیش می آید. وضعیت قرارگرفتن دکمه ها هم چنان طراحی شده است که انگشت شست دست در طبیعی ترین وضعیت ممکن خود روی آ ن ها قرار داده شود و بیش از این که از حالت حرکتی را برای فشار دادن فعال کند، از حالت حرکت لمسی آن ها بهره می برد. کلام آخر
+
نوشته شده در چهارشنبه شانزدهم شهریور 1390ساعت 16:35 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
||||
|
مترجم یا همگردان یا کامپایلر برنامه یا مجموعهای از برنامههای کامپیوتری است که متنی از زبان برنامه نویسی سطح بالا (زبان مبدا) را به زبانی سطح پایین (زبان مقصد)، مثل اسمبلی یا زبان سطح ماشین، تبدیل میکند. خروجی این برنامه ممکن است برای پردازش شدن توسط برنامه دیگری مثل پیونددهنده مناسب باشد یا فایل متنی باشد که انسان نیز بتواند آنرا بخواند. مهمترین علت استفاده از ترجمه کد مبدا، ایجاد برنامه اجرایی میباشد. برعکس برنامهای که زبان سطح پایین را به بالاتر تبدیل میکند را decompiler گوییم. ترجمه کامل کد منبع برنامهای از یک زبان سطح بالا به کد شیء، پیش از اجرای برنامه را همگردانی یا کامپایل میگویند. به بیان ساده، کامپایلر برنامهای است که یک برنامه نوشته شده در یک زبان خاص ساختیافته را خوانده و آن را به یک برنامه مقصد (Target Language) تبدیل مینماید. در یکی از مهمترین پروسههای این تبدیل، کامپایلر وجود خطا را در برنامه مبدأ اعلام مینماید. در اولین نگاه، تنوع کامپایلرها ممکن است به چشم نیاید. تعداد بسیار زیادی زبانهای منبع وجود دارند که دامنه آنها از زبانهای شناخته شده مانند فرترن و پاسکال تا زبانهای خاص منظوره گسترده است. زبانهای مقصد نیز گستردگی متناظر با این زبانها دارند. یک زبان مقصد ممکن است زبان برنامهسازی دیگر یا زبان ماشین یا ... باشد. کامپایلرها به انواع تکگذره، چند گذره، باردهی و اجرا، بهینهساز، غلط یاب و ... بسته با عمل انجام شده تقسیم میشوند. علیرغم این تنوع اعمال اساسی که هر کامپایلر بایستی انجام دهد، مشابه هم میباشند. دانستههای ما در مورد سازمانبندی و نوشتن کامپایلر نسبت به زمانی که اولین کامپایلرها در اوایل دهه 1950 ایجاد شدند، بسیار افزایش یافته است. تخمین تاریخ دقیق ساخت اولین کامپایلر عمل آسانی نیست، زیرا گروههای متفاوتی نسبت به ساخت کامپایلرها در آن زمان اقدام نمودهاند. اولین کارهایی که در ساخت کامپایلرها انجام شد، تبدیل فرمولهای ریاضی به زبان ماشین بود. در اواسط دهه ۱۹۵۰ کامپایلرها به عنوان برنامههایی دشوار شناخته شده بودند. اولین کامپایلر فرترن، به عنوان مثال ۱۸ سال زمان برای طراحی صرف نمود. از آن زمان روشهای سیستماتیک برای استفاده از بسیاری اعمال مهم حین عمل کمپایل ابداع شدهاست. همچنین زبانهای پیادهسازی خوب، محیطهای برنامه نویسی و ابزارهای نرمافزاری مناسب ایجاد شدهاند. با کمک این پیشرفتها یک کامپایلر را میتوان حتی به عنوان پروژه درسی در یک ترم تحصیلی دانشجویی طراحی نمود.
رایانههای اولیه از کامپایلر استفاده نمیکردند، چرا که این کامپیوترها حافظه کوچکی و برنامههای کوتاهی داشتند. کاربران مجبور بودند کد باینری یا دسیمال برنامهها را به طور مستقیم و با کمک نوارهای مغناطیسی به سیستم وارد کنند. اما برنامه نویسها زیاد این وضعیت را تحمل نکردند و به فکر تولید برنامهای افتادند که نویسههای الفبایی (واژههای اختصاری) را به تعدادی دستور که قابل اجرا توسط ماشین باشد تبدیل کند. در این وضعیت بود که زبانهای اسمبلی و کامپایلرهای اولیه با نام اسمبلر به وجود آمد. در اواخر دهه ۱۹۵۰ میلادی ماشینهای دارای زبانهای برنامه نویسی رواج یافتند و کامپایلرهای آزمایشی ایجاد شدند. زبان فرترن به سرپرستی جان باکوس در شرکت آیبیام به عنوان اولین کامپایلر کامل در سال ۱۹۵۷ تولید شد. کوبول اولین زبان کامپایلی با معماری چندگانه در سال ۱۹۶۰ تولید شد. در طی دهه ۶۰ کامپایلرهای زیادی تولید شد اما بر روی کیفیت کامپایلرها کمتر فکر میشد. همزمان با تکامل زبانهای برنامه سازی و افزایش قدرت کامپیوترها، کامپایلرها هرچه بیشتر پیچیده میشدند. یک کامپایلر خود برنامهای است که توسط زبان پیاده ساز تولید شدهاست. اولین کامپایلر خود محور که میتوانست کد خود را کامپایل کند برای زبان Lisp و توسط Hart و Levin در سال ۱۹۶۲ و در دانشگاه MIT ایجاد شد. در دهه ۷۰ از زبانهای سطح بالایی مثل پاسکال و سی جهت نوشتن کامپایلرها استفاده شد. ساخت کامپایلرهای خود محور دارای مشکل راه اندازی است، چونکه هر کامپایلری باید توسط کامپایلر نوشته شدهای به زبان دیگر کامپایل شود یا برای این مشکل دست به دامن مفسری بشود. ساختار کامپایلرها و کامپایلر بهینه ساز امروزه بخشی از برنامه درسی دانشجویان کامپیوتر است. برخی کامپایلرها به منظور آموزشی برای زبانهای برنامه نویسی تولید میگردد. مثلاً کامپایلر PL/۰ توسط Niklaus Wirth برای آموزش در دهه ۱۹۷۰ به کار رفت. به علت سادگی و دلایل زیر هنوز برای آموزش مورد استفاده قرار میگیرد:
در تاریخچه کامپایلر سه دوره میتوان در نظر گرفت: از ۱۹۴۵تا۱۹۶۰:تولید کد در این دوره، زبانها به تدریج به وجود آمدند و ماشینها چندان متعارف نبودند. مسئله این بود که چگونه باید کدی را برای یک ماشین تولید کرد. با توجه به اینکه برنامه نویسی به زبان اسمبلی رواج داشت، این مسئله وخیمتر شد. استفاده از کامپایلر، برنامه نویسی خودکار نامیده شد. طرفداران زبانهای سطح بالا میترسیدند که کد تولید شده نسبت به زبان اسمبلی کارایی چندان نداشته باشد. اولین کامپایلر فرترن(شریدان ۱۹۵۹) به خوبی بهینه سازی شد
انواع کامپایلرهاراههای مختلفی جهت دسته بندی کامپایلرها وجود دارد مثلاً میتوان آنها را با توجه به ورودی، خروجی، ساختار داخلی و یا رفتار زمان اجرای آن تقسیم بندی کرد. === کامپایلرهای Native و cross ===********** اکثر کامپایلرها به دو دسته Native و Cross تقسیم میشوند. کامپایلرهایی که به منظور اجرای برنامهها کدهای باینری را تولید میکنند، کامپایلرهایی با کد محلی یا Native گوییم چرا که تنها در کامپیوترهای یک نوع با سیستمعاملهای یکسان قابل به کارگیری است. از طرف دیگر ممکن است کامپایلرها کدهای باینری را تولید کنند که در سیستمهای مختلف قابل اجرا باشد. به این دسته از کامپایلرها که وابستگی به سختافزار ندارند، کامپایلرهای عبوری یا Cross گوییم. برای این نوع کاپایلرها تنها کافی است برای بار اول سختافزار را به آن معرفی نمود. بنابراین میتوان نتیجه گرفت که کامپایلرهای عبوری مفیدتر هستند. این تقسیم بندی برای مفسرها به کار نمیرود جونکه آنها از نمایش دودویی برای اجرای کد خود استفاده نمیکنند. ماشینهای مجازی در هیچ یک از این دسته بندیها نمیگنجد. هر گاه در ماشینهای مجازی یکسان قابل اجرا باشد میتوان آنرا Native و هرگاه کامپایلر قادر به تولید خروجی برای پلت فورمهای مختلف باشد آنرا Cross گوییم. کامپایلرهای تک فاز و چند فازفاز بندی کامپایلرها که در پشت زمینه به محدودیتهای منابع سختافزاری وابستهاست. در نتیجه کامپایلرها به مجموعه برنامههای کوچکتر تقسیم میشوند هر یک بخشی از عمل ترجمه یا آنالیز را برعهده میگیرند. کامپایل تک فازی به نظر مفید میآید، چراکه سریعتر است. زبان پاسکال از این امکان استفاده میکند. اما مشکل اینجا است که اگر اعلان جلوتر از دستور به کارگیری باشد، چه کار باید کرد؟ برای حل این مشکل میتوان در فاز اول اعلانها را مشخص کرد و در فاز بعد عمل ترجمه را انجام داد. عیب دیگر کامپایلر تک فازی دشواری بهینه سازی کدهای زبان سطح بالا میباشد. همگردان یکگذره (One-Pass Compiler) کامپایلری است که برای تولید کد ماشین، تنها یک مرتبه متن برنامه را میخواند. دستور برخی زبانها به گونهای است که تولید همگردان یکگذره برای آنها غیر ممکن است. مجموعه همگردانهای گنو یا Gnu complier colection یا به صورت مخفف GCC مجموعهای از همگردانهای آزاد برای زبانهای برنامه نویسی است. تقسم بندی کامپایلرها به برنامههای کوچکتر تکنیکی است که همچنان مورد بحث محققان است. در این نوع دسته بندی کامپایلرها، انواع دیگری نیز وجود دارد:
زبانهای تفسیری و کامپایلیبسیاری از افراد زبانهای سطح بالا را به دو دسته تفسیری و کامپایلی تقسیم میکنند. کامپایلرها و مفسرها روی زبانها عمل میکنند نه زبانها روی آنها! مثلاً این تصور وجود دارد که الزاما BASIC تفسیر میشود و C کامپایل. اما ممکن است نمونههایی از BASIC یا C ارائه شود که به ترتیب کامپایلری و تفسیری باشد. البته استثناهایی نیز وجود دارد، مثلاً برخی زبانها در خصوصیات خود این تقسیم بندی را مشخص کرده اند(C کامپایلری است یا SNOBOL۴ و اکثر زبانهای اسکریپتی که کد منبع زمان اجرا دارند تفسیری میباشد). طراحی کامپایلرهاتقسیم بندی پروسههای کامپایل به مجموعهای از فازها مورد حمایت پروژه کامپایلری ((تولید کامپایلرهای باکیفیت))(PQCC) از دانشگاه Carnegie Mellon قرار گرفت. در این پروژه اصطلاحات جلو بندی، میان بندی(امروزه به ندرت به کار میرود) و عقب بندی معرفی شد. اکثر کامپایلرهای امروزی بیش از دو فاز دارند. جلوبندی معمولاً با پردازش املایی و معنایی شرح داده میشود. عقب بندی شامل تبدیل نوع و بهینه سازیهای مختلف میباشد. سپس کد برای آن کامپیوتر خاص تولید میشود. استفاده از جلوبندی و عقب بندی این را ممکن میکند که جلوبندیهای مختلفی برای زبانهای مختلف وجود داشته باشد و عقب بندیهای مختلفی نیز برای CPUهای مختلف. جلو بندیجلوبندی به منظور تولید کد میانی یا IR از کد مبدا استفاده میشود. جلوبندی معمولاً جدول نمادها را مدیریت نموده و یک نگاشتگر ساختمان دادهای، هر نماد را از درون کد مبدا به اطلاعات مربوط به آن مثل نوع و دامنه تعریف آن نگاشت میشود. این امر در چند فاز انجام میگردد:
عقب بندیگاهی مرحله عقب بندی با مرحله تولید کد اشتباه گرفته میشود. اما میتوان گفت که عقب بندی به مراحل چند گانه زیر تقسیم میشود:
همگردانهای نمونهمجموعه همگردان گنوGCC از ابتدا مخفف Gnu C Compiler بود ولی از زمانی که توانست زبانهای دیگری غیر از C از قبیل C++,Ada,Java,Objective C و Fortran را کامپایل کند به Gnu Compiler Collection تغییر نام داد. پدید آورنده اصلی GCC ریچارد استالمن است کسی که بنیانگذار پروژه Gnu محسوب میشود. نخستین نسخه GCC در سال ۱۹۸۷ انتشار یافت که یک پیشرفت مهم محسوب میشد زیرا محصول جدید اولین کامپایلر بهینه سازی شده قابل حمل ANSI C به عنوان یک نرمافزار آزاد محسوب میشد. در سال ۱۹۹۲ نسخه ۲٫۰ کامپایلر GCC عرضه شد. نسخه جدید قابلیت کامپایل کدهای ++C را نیز داشت. در سال ۱۹۹۷ یک انشعاب آزمایشی در GCC به نام EGCC به منظور بهینه سازی کامپیایلر و پشتیبانی کامل تر از ++C ایجاد شد. در ادامه EGCC به عنوان نسل بعدی کامپایلر GCC پذیرفته شد و تکامل آن باعث انتشار نسخه سوم GCC در سال ۲۰۰۴ گردید. چهارمین نسخه از کامپایلر GCC در سال ۲۰۰۵ عرضه شد.
+
نوشته شده در پنجشنبه دوم تیر 1390ساعت 21:58 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
||||
|
اگر تعداد بسیارزیادی ترانزیستور را درون یک پردازنده بزرگ قرار دهید، به احتمال سرعت پردازش آن بیش از یک تراشه امروزی نخواهد بود. این واقعیت، رویکرد جدید را که در آن ترانزیستورهای مذکور را بهجای یک پردازنده در چندین هسته پردازشی نصب میکنند، بهخوبی توجیه میکند.
+
نوشته شده در یکشنبه پانزدهم خرداد 1390ساعت 0:0 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
||||
|
اگر شما هم از دست شارژرهای مختلف دستگاه هایتان و سیم های دست و پاگیر آنها به تنگ آمده اید یک خبر خوب برای شما داریم.
متخصصان دانشگاه MIT که حدود یک سال است روی انتقال نیروی الکتریسیته به صورت بی سیم کار می کنند به نتایج درخشانی دست پیدا کرده اند. این متخصصان توانسته اند در آخرین آزمایش خود یک لامپ 60 وات را از فاصله دو متری بدون اتصال فیزیکی به منبع برق روشن کنند. با چنین پیشرفتی متخصصان پیش بینی می کنند در اینده نزدیک دستگاه های موبایل، پخش موسیقی، دوربین و دهها وسیله دیجیتالی دیگر که شارژ آنان بزرگترین مشکل استفاده از آنهاست به راحتی و بدون اتصال به سیم شارژ شوند. به این ترتیب انتظار می رود که در آینده وقتی وارد خانه، محل کار یا خودروی خود می شوید عملا تمامی وسایل دیجیتالی و شارژی شما به طور خودکار شارژ شوند. تیمی متشکل از دپارتمان فیزیک، دپارتمان مهندسی برق و کامپیوتر، انستیتو نانوتکنولوژی و برخی مهندسان و دانشمندان دیگر دانشگاه MIT در این ابداع با هم همکاری داشته اند. این گروه نام ابداع خود را WiTricity مخفف شده وایرلس و الکتریسیته گذاشته اند. ایده این طرح توسط یکی از مهندسان این طرح به نام Soljacic شکل گرفت. وی می گوید یک شب که صدای هشدار زنگ تلفن همراه را شنیدم و به دستگاه شارژر هم دسترسی نداشتم به این فکر کردم ای کاش راهی بود تا بتوان موبایلم را بدون ارتباط سیمی شارژ کنم. متخصصان این طرح راهه های مختلفی را برای انتقال الکتریسیته بدون اتصال فیزیکی ازموده اند این گروه روش پرتوافشانی الکترومغناطیس را به عنوان روش اصلی مد نظر قرارداند که چیزی شبیه انتشار امواج رادیویی است. با این حال این روش هر چند برای انتشار اطلاعات و دیتا مناسب می نماید اما برای انتشار الکترومغناطیس دشواری های فراوانی به همراه داشت. متخصصان MIT می گویند که با استفاده از قوانین فیزیک به چنین نوآوری دست پیدا کرده اند این موضوع خصوصا از آن جهت جالب است که بسیاری می پنداشتند قوانین فیزیک قدیمی شده و برای نوآوری های جدید به کار نمی آید.
+
نوشته شده در چهارشنبه چهاردهم اردیبهشت 1390ساعت 17:27 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
||||
|
موسسه گارتنر از شرکتهای بزرگ فناوری خواسته است تا 7 فناوری نوآورانه بزرگی را که اگر به واقعیت تبدیل شوند میتوانند زندگی را آینده را تغییر دهند معرفی کنند که از جمله این نوآوریها میتوان به دنیایی کاملا بیسیم و رایانه شخصی که توانایی تشخیص افراد را دارد اشاره کرد. به گزارش مهر، گارتنر که یکی از بزرگترین آژانسهای تحقیقاتی و اطلاعاتی درباره فناوریهای برتر است از مسئولان ارشد شرکتهای فناوری دنیا خواسته است که 7 نوآوری بزرگی را که اگر به واقعیت به تیدیل شوند زندگی را تغییر میدهند، معرفی کنند.
به نوشته مجله آمریکایی «دنیای کامپیوتر» تمام این نوآوریها باید بتوانند در مدت 5 تا 20 سال آینده دنیا و زندگی بشری را دستخوش تحول کنند. موسسه گارتنر برای این 7 نوآوری، عنوان «تغییرات بزرگ IT» را برگزیده است. در این خصوص «کن مک گی» معاون رئیس این موسسه تحقیقاتی توضیح داد: این 7 نوآوری را همچنین میتوان با عنوان فرصتهای بزرگ برای فناوری اطلاعات نامگذاری کرد. اینها تغییراتی هستند که به شدت دنیای تجارت را تحت تاثیر قرار میدهند، اما همچنین میتوانند تغییرات بنیادی را در زندگی روزمره تمام انسانها ایجاد کنند. این فرصتها دامنه وسیعی از مراکز عمومی، مراکز تحقیقاتی خصوصی و دولتی تمام دنیا را پوشش میدهند. برق بیسیم اولین چالش بزرگ، مربوط به حذف سیم و جایگزینی ابزارهای قابل حمل با رایانهها و سایر ابزارهای شخصی متصل به کابل است. در حقیقت، با استفاده از این فناوری بیسیم، همانند روشی که اتصال به اینترنت با شبکه بیسیم میسر است، امکان گسترش و انتقال انرژی الکتریکی از طریق سیستمهای بیسیم فراهم میشود. در این خصوص گارتنر توضیح داد: «این فناوری است که مردم آرزویش را دارند. با کمک این نوآوری میتوان باتریهای دستگاههای قابل حمل را بدون نیاز به یک منبع انرژی ثابت و متصل به سیم شارژ کرد. اولین نتایج این فناوری با کمک پیلهای فتوولتائیک و انرژی خورشیدی به دست آمده است، اما در حال حاضر هنوز دستگاههای جدیدی که با پانلهای خورشیدی قابل حمل عمل کنند، ارائه نشده است. در جولای گذشته، موسسه تکنولوژی ماساچوست (ام آی تی) اولین سیستم انتقال غیر رادیواکتیو انرژی الکتریکی به طریق بیسیم را آزمایش کرد. باوجود این هنوز سالهای زیادی تا عرضه تجاری «برق بیسیم» باقی مانده است. پردازش موازی دومین تغییر بزرگی که گارتنر به تشریح آن پرداخته است، استفاده موازی از توانایی پردازش پردازشگرها است. به این نوآوری، پردازشگرهای «چند هستهای» گفته میشود. در حال حاضر احتمال زیادی در این عرصه وجود دارد اما هنوز راه زیادی تا عملی شدن آن باقی است. در این عرصه به خصوص مسئله استفاده از اطلاعات در کوتاهترین زمان ممکن به وسیله این پردازشگرهای چندگانه به صورت شبیهسازی شده حل شده است. باوجود این هنوز مسئله طراحی سختافزاری که کاملا امکان «پردازش موازی» را اجرا کند، در دست تحقیق است. فعل و انفعال با رایانهها مهمترین مسئلهای که در حال حاضر ذهن جمعیت تکنولوژیکی دنیا را به خود مشغول کرده، فعل و انفعال با ابزارهای مورد استفاده است. ایده برقراری ارتباط با رایانهها بدون نیاز به هیچ تداخل مکانیکی، مثل صفحه کلید و ... چیزی است که دیگر به واقعیت تبدیل شدهاند اما هدف آینده این ایده تنها به فعل و انفال با صفحات حساس به لمس محدود نمیشود بلکه این رایانه به دلیل برخورداری از یک نوع «دیکشنری علائم اشارهای»، قابلیت شناسایی و تشخیص اشارات ساده را دارد. این دیکشنری در کمترین زمان ممکن به وسیله دستگاه رایانه پردازش میشوند. به علاوه این دستگاه توانایی تشخیص و پردازش مستقیم زبان طبیعی را هم دارد. رایانه مترجم از سومین تغییر بزرگ، تغییر چهارم که امکان استفاده از یک دستگاه ترجمه خودکار و طبیعی به زبانهای مختلف نوشتاری و کلامی را فراهم میکند، مشتق میشود. یکی از مشکلات اصلی در این عرصه مسئله تشخیص دادن زبان طبیعی و ترجمه آن به یک زبان دیگر با حفظ ماهیت زبان اصلی از طرف رایانه است. برای مثال با کمک این فناوری میتوان به طور تلفنی به زبان خود صحبت کرد و به این ترتیب کسی که این زبان را نمیشناسد با استفاده از این رایانه، زبان مبدا را در کوتاهترین زمان ممکن متوجه میشود. نگهداری اطلاعات به مدت 100 سال پنجمین نوآوری که گارتنر به بررسی آن پرداخته است، فناوری ذخیره اطلاعات و دادهها در انبارهای الکترونیکی تمام دنیا در حجم بسیار وسیع و به مدت بسیار طولانی است. در حقیقت این فناوری، ذخیره اطلاعات را به مدت 100 سال تضمین خواهد کرد. درحال حاضر ذخیره اطلاعات تنها به مدت 20 سال وجود دارد. افزایش توانایی برنامهنویسی ششمین چالش بزرگی که گارتنر معرفی کرده است، افزایش تشریحی توانایی بهرهوری از برنامهنویسی است. این نوآوری تنها با همکاری جهانی و آزاد تمام برنامهنویسان امکانپذیر است به شیوهای که برنامهنویسان بتوانند تمام آگاهیها و اطلاعات لازم را برای بهبود کیفیت نرمافزار و یا برنامههای کاربردی تکنولوژیکی به صورت آزاد در اختیار یکدیگر قرار دهند. اندازهگیری بازگشت اقتصادی سرمایهگذاری در بخش فناوری هفتمین و آخرین چالش بزرگ از دیدگاه گارتنر، روشی برای حصول اطمینان از نتایج دقیق مالی سرمایهگذاریهای تکنولوژیکی است. در حال حاضر تنها میتوان بازگشت اقتصادی برنامههای کوتاه و یا میان مدت را اندازهگیری کرد. به اعتقاد این آژانس تحقیقات IT، این تغییر بزرگ میتواند اندازهگیری دقیقی از هزینههای مالی و بازگشت اقتصادی سرمایهگذاریهای تکنولوژیکی را ارائه کند.
+
نوشته شده در پنجشنبه یازدهم فروردین 1390ساعت 13:38 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
||||
|
از زمان رایانههای اولیه که در سال ۱۹۴۱ ساخته شده بودند تا کنون فناوریهای دیجیتالی رشد نمودهاست، معماری فون نوِیمن یک رایانه را به چهار بخش اصلی توصیف میکند: واحد محاسبه و منطق (Arithmetic and Logic Unit یا ALU)، واحد کنترل یا حافظه، و ابزارهای ورودی و خروجی ( که جمعا I/O نامیده میشود). این بخشها توسط اتصالات داخلی سیمی به نام گذرگاه (bus) با یکدیگر در پیوند هستند.
حافظهدر این سامانه، حافظه بصورت متوالی شماره گذاری شده در خانهها است، هرکدام محتوی بخش کوچکی از دادهها میباشند. دادهها ممکن است دستورالعملهایی باشند که به رایانه میگویند که چه کاری را انجام دهد باشد. خانه ممکن است حاوی اطلاعات مورد نیاز یک دستورالعمل باشد. اندازه هر خانه، وتعداد خانهها، در رایانهٔ مختلف متفاوت است، همچنین فناوریهای بکاررفته برای اجرای حافظه نیز از رایانهای به رایانه دیگر در تغییر است(از بازپخشکنندههای الکترومکانیکی تا تیوپها و فنرهای پر شده از جیوه و یا ماتریسهای ثابت مغناطیسی و در آخر ترانزیستورهای واقعی و مدار مجتمعها با میلیونها فیوز نیمه هادی یا MOSFET هایی با عملکردی شبیه ظرفیت خازنی روی یک تراشه تنها). پردازشواحد محاسبه و منطق یا ALU دستگاهی است که عملیات پایه مانند چهار عمل اصلی حساب (جمع و تفریق و ضرب و تقسیم)، عملیات منطقی (و، یا، نقیض)، عملیات قیاسی (برای مثال مقایسه دو بایت برای شرط برابری) و دستورات انتصابی برای مقدار دادن به یک متغیر را انجام میدهد. این واحد جائیست که «کار واقعی» در آن صورت میپذیرد. البته CPUها به دو دسته کلی RISC و CISC تقسیم بندی میشوند. نوع اول پردازشگرهای مبتنی بر اعمال ساده هستند و نوع دوم پردازشگرهای مبتنی بر اعمال پیچیده میباشند. پردازشگرهای مبتنی بر اعمال پیچیده در واحد محاسبه و منطق خود دارای اعمال و دستوراتی بسیار فراتر از چهار عمل اصلی یا منطقی میباشند. تنوع دستورات این دسته از پردازندهها تا حدی است که توضیحات آنها خود میتواند یک کتاب با قطر متوسط ایجاد کند. پردازندههای مبتنی بر اعمال ساده اعمال بسیار کمی را پوشش میدهند و در حقیقت برای برنامهنویسی برای این پردازندهها بار نسبتاً سنگینی بر دوش برنامهنویس است. این پردازندهها تنها حاوی ۴ عمل اصلی و اعمال منطقی ریاضی و مقایسهای به علاوه چند دستور بیاهمیت دیگر میباشند.هرچند ذکر این نکته ضروری است که دستورات پیچیده نیز از ترکیب تعدادی دستور ساده تشکیل شدهاند و برای پیادهسازی این دستورات در معماریهای مختلف از پیادهسازی سختافزاری(معماری CISC) و پیادهسازی نرمافزاری(معماری RISC) استفاده میشود. (قابل ذکر است پردازندههای اینتل از نوع پردازنده مبتنی بر اعمال پیچیده میباشند.) واحد کنترل همچنین این مطلب را که کدامین بایت از حافظه حاوی دستورالعمل فعلی اجرا شوندهاست را تعقیب میکند، سپس به واحد محاسبه و منطق اعلام میکند که کدام عمل اجرا و از حافظه دریافت شود و نتایج به بخش اختصاص داده شده از حافظه ارسال گردد. بعد از یک بار عمل، واحد کنترل به دستورالعمل بعدی ارجاع میکند(که معمولاً در خانه حافظه بعدی قرار دارد، مگر اینکه دستورالعمل جهش دستورالعمل بعدی باشد که به رایانه اعلام میکند دستورالعمل بعدی در خانه دیگر قرار گرفتهاست). ورودی/خروجیبخش ورودی/خروجی (I/O) این امکان را به رایانه میدهد تا اطلاعات را از جهان بیرون تهیه و نتایج آنها را به همان جا برگرداند. محدوده فوق العاده وسیعی از دستگاههای ورودی/خروجی وجود دارد، از خانواده آشنای صفحهکلیدها، نمایشگرها، نَرمدیسک گرفته تا دستگاههای کمی غریب مانند رایابینها (webcams). (از سایر ورودی/خروجیها میتوان موشواره mouse، قلم نوری، چاپگرها (printer)، اسکنرها، انواع لوحهای فشرده(CD, DVD) را نام برد ). چیزی که تمامی دستگاههای عمومی در آن اشتراک دارند این است که آنها رمزکننده اطلاعات از نوعی به نوع دیگر که بتواند مورد استفاده سیستمهای رایانه دیجیتالی قرار گیرد، هستند. از سوی دیگر، دستگاههای خروجی آن اطلاعات به رمز شده را رمزگشایی میکنند تا کاربران آنها را دریافت نمایند. از این رو یک سیستم رایانه دیجیتالی یک نمونه از یک سامانه دادهپردازی میباشد. دستورالعملهاهر رایانه تنها دارای یک مجموعه کم تعداد از دستورالعملهای ساده و تعریف شده میباشد. از انواع پرکاربردشان میتوان به دستورالعمل «محتوای خانه ۱۲۳ را در خانه ۴۵۶ کپی کن!»، «محتوای خانه ۶۶۶ را با محتوای خانه ۰۴۲ جمع کن، نتایج را در خانه ۰۱۳ کن!»، «اگر محتوای خانه ۹۹۹ برابر با صفر است، به دستورالعمل واقع در خانه ۳۴۵ رجوع کن!». دستورالعملها در داخل رایانه بصورت اعداد مشخص شدهاند - مثلاً کد دستور العمل (copy instruction) برابر ۰۰۱ میتواند باشد. مجموعه معین دستورالعملهای تعریف شده که توسط یک رایانه ویژه پشتیبانی میشود را زبان ماشین مینامند. در واقعیت، اشخاص معمولاً به زبان ماشین دستورالعمل نمینویسند بلکه بیشتر به نوعی از انواع سطح بالای زبانهای برنامهنویسی، برنامهنویسی میکنند تا سپس توسط برنامه ویژهای (تفسیرگرها (interpreters) یا همگردانها (compilers) به دستورالعمل ویژه ماشین تبدیل گردد. برخی زبانهای برنامهنویسی از نوع بسیار شبیه و نزدیک به زبان ماشین که اسمبلر (یک زبان سطح پایین) نامیده میشود، استفاده میکنند؛ همچنین زبانهای سطح بالای دیگری نیز مانند پرولوگ نیز از یک زبان انتزاعی و چکیده که با زبان ماشین تفاوت دارد بجای دستورالعملهای ویژه ماشین استفاده میکنند. معماریهادر رایانههای معاصر واحد محاسبه و منطق را به همراه واحد کنترل در یک مدار مجتمع که واحد پردازشی مرکزی (CPU) نامیده میشود، جمع نمودهاند. عموما، حافظه رایانه روی یک مدار مجتمع کوچک نزدیک CPU قرار گرفته. اکثریت قاطع بخشهای رایانه تشکیل شدهاند از سامانههای فرعی (به عنوان نمونه، منبع تغذیه) و یا دستگاههای ورودی/خروجی. برخی رایانههای بزرگتر چندین CPU و واحد کنترل دارند که بصورت همزمان با یکدیگر درحال کارند. اینگونه رایانهها بیشتر برای کاربردهای پژوهشی و محاسبات علمی بکار میروند. کارایی رایانهها بنا به تئوری کاملاً درست است. رایانه دادهها و دستورالعملها را از حافظهاش واکشی (fetch) میکند. دستورالعملها اجرا میشوند، نتایج ذخیره میشوند، دستورالعمل بعدی واکشی میشود. این رویه تا زمانی که رایانه خاموش شود ادامه پیدا میکند. واحد پردازنده مرکزی در رایانههای شخصی امروزی مانند پردازندههای شرکت ای-ام-دی و شرکت اینتل از معماری موسوم به Pipeline استفاده میشود و در زمانی که پردازنده در حال ذخیره نتیجه یک دستور است مرحله اجرای دستور قبلی و مرحله واکشی دستور قبل از آن را آغاز میکند. همچنین این رایانهها از سطوح مختلف حافظه نهانگاهی استفاده میکنند که در زمان دسترسی به حافظه اصلی صرفهجویی کنند. برنامههابرنامه رایانهای فهرستهای بزرگی از دستورالعملها (احتمالاً به همراه جدولهائی از داده) برای اجرا روی رایانه هستند. خیلی از رایانهها حاوی میلیونها دستورالعمل هستند، و بسیاری از این دستورات به تکرار اجرا میشوند. یک رایانه شخصی نوین نوعی (درسال ۲۰۰۳) میتواند در ثانیه میان ۲ تا ۳ میلیارد دستورالعمل را پیاده نماید. رایانهها این مقدار محاسبه را صرف انجام دستورالعملهای پیچیده نمیکنند. بیشتر میلیونها دستورالعمل ساده را که توسط اشخاص باهوشی «برنامه نویسان» در کنار یکدیگر چیده شدهاند را اجرا میکنند. برنامهنویسان خوب مجموعههایی از دستورالعملها را توسعه میدهند تا یکسری از وظایف عمومی را انجام دهند(برای نمونه، رسم یک نقطه روی صفحه) و سپس آن مجموعه دستورالعملها را برای دیگر برنامهنویسان در دسترس قرار میدهند. (اگر مایلید «یک برنامهنویس خوب» باشید به این مطل رایانههای امروزه، قادرند چندین برنامه را در آن واحد اجرا نمایند. از این قابلیت به عنوان چندکارگی (multitasking) نام برده میشود. در واقع، CPU یک رشته دستورالعملها را از یک برنامه اجرا میکند، سپس پس از یک مقطع ویژه زمانی دستورالعملهایی از یک برنامه دیگر را اجرا میکند. این فاصله زمانی اکثرا بهعنوان یک برش زمانی (time slice) نام برده میشود. این ویژگی که CPU زمان اجرا را بین برنامهها تقسیم میکند، این توهم را بوجود میآورد که رایانه همزمان مشغول اجرای چند برنامهاست. این شبیه به چگونگی نمایش فریمهای یک فیلم است، که فریمها با سرعت بالا در حال حرکت هستند و به نظر میرسد که صفحه ثابتی تصاویر را نمایش میدهد. سیستمعامل همان برنامهای است که این اشتراک زمانی را بین برنامههای دیگر تعیین میکند.
+
نوشته شده در چهارشنبه سوم فروردین 1390ساعت 20:16 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
||||
|
در زبان انگلیسی «کامپیوتر» به کسی میگفتند که محاسبات ریاضی را (بدون ابزارهای کمکی مکانیکی) انجام میداد. بر اساس «واژهنامه ریشهیابی Barnhart Concise» واژه کامپیوتر در سال ۱۶۴۶ به زبان انگلیسی وارد گردید که به معنی «شخصی که محاسبه میکند» بودهاست و سپس از سال ۱۸۹۷ به ماشینهای محاسبه مکانیکی گفته میشد. در هنگام جنگ جهانی دوم «کامپیوتر» به زنان نظامی انگلیسی و آمریکایی که کارشان محاسبه مسیرهای شلیک توپهای بزرگ جنگی توسط ابزار مشابهی بود، اشاره میکرد[نیازمند منبع].
در اوایل دهه ۵۰ میلادی هنوز اصطلاح ماشین حساب (computing machines) برای معرفی این ماشینها بهکار میرفت. پس از آن عبارت کوتاهتر کامپیوتر (computer) بهجای آن بهکار گرفته شد. ورود این ماشین به ایران در اوائل دهه ۱۳۴۰ بود و در فارسی از آن زمان به آن «کامپیوتر» میگفتند. واژه رایانه در دو دهه اخیر در فارسی رایج شده و بهتدریج جای «کامپیوتر» را گرفت[نیازمند منبع].
معنای واژهٔ فارسی رایانه [ویرایش]واژهٔ رایانه از مصدر رایانیدن ساخته شده که در فارسی میانه به شکلِ rāyēnīdan و به معنای «سنجیدن، سبک و سنگین کردن، مقایسه کردن» یا «مرتّب کردن، نظم بخشیدن و سامان دادن» بوده است. این مصدر در زبان فارسی میانه یا همان پهلوی کاربرد فراوانی داشته و مشتقهای زیادی نیز از آن گرفته شده بوده. در زبان فارسی نو یا همان فارسی (دری) این فعل و مشتقهایش به کار نرفتهاند.[نیازمند منبع] برایِ مصدر رایانیدن/ رایاندن در لغتنامهٔ دهخدا چنین آمده:
و گویا تنها در فرهنگ ناظم الاطبا آمده است. شکلِ فارسی میانهٔ این واژه rāyēnīdan بوده و اگر میخواسته به فارسی نو برسد به شکل رایانیدن/ رایاندن درمیآمده. (بسنجید با واژهیِ فارسیِ میانهیِ āgāhēnīdan که در فارسیِ نو آگاهانیدن/ آگاهاندن شده است). این واژه از ریشهیِ فرضیِ ایرانیِ باستانِ –radz* است که به معنایِ «مرتّب کردن» بوده. این ریشه بهصورتِ –rad به فارسیِ باستان رسیده و به شکلِ rāy در فارسیِ میانه (پهلوی) بهکار رفته. از این ریشه ستاکهایِ حالِ و واژههایِ زیر در فارسیِ میانه و نو بهکار رفتهاند:
این ریشهیِ ایرانی از ریشهیِ هندواروپاییِ -reĝ* به معنایِ «مرتّب کردن و نظم دادن» آمده است. از این ریشه در
برجای مانده است.
حاصل میگردد. در فارسیِ نو پسوندِ -ـه (= e- یا همان a-) را به ستاکِ حالِ "رایانیدن" یعنی رایانـ- چسباندهاند تا نامِ ابزارِ این فعل ساخته شود؛ یعنی "رایانه" به معنایِ «ابزارِ نظم بخشیدن و سازماندهی ( ِ دادهها)» است. احتمال میرود که سازندگان این واژه به واژهیِ فرانسویِ این مفهوم، یعنی ordinateurتوجّه داشتهاند که در فرانسه از مصدرِ ordre «ترتیب و نظم دادن و سازمان بخشیدن» ساخته شده. به هرحال، معنادهیِ واژهیِ رایانه برایِ این دستگاه جامعتر و رساتر از کامپیوتر است. یادآور میشود که computerبه معنایِ «حسابگر» یا «مقایسه گر» است، حال آنکه کارِ این دستگاه براستی فراتر از "حساب کردن" است. تاریخچه [ویرایش]نوشتار اصلی: تاریخچه رایانه
در گذشته دستگاههای مختلف مکانیکی سادهای مثل خطکش محاسبه و چرتکه نیز رایانه خوانده میشدند. در برخی موارد از آنها بهعنوان رایانه آنالوگ نام برده میشود. البته لازم به ذکر است که کاربرد واژه رايانه آنالوگ در علوم مختلف بيش از اين است که به چرتکه و خطکش محاسبه محدود شود. به طور مثال در علوم الکترونيک، مخابرات و کنترل روشی برای محاسبه مشتق و انتگرال توابع رياضی و معادلات ديفرانسيل توسط تقويت کننده های عملياتی، مقاومت، سلف و خازن متداول است که به مجموعه سيستم مداری Analog Computer گفته می شود [۱]. چرا که برخلاف رایانههای رقمی، اعداد را نه بهصورت اعداد در پایه دو بلکه بهصورت کمیتهای فیزیکی متناظر با آن اعداد نمایش میدهند. چیزی که امروزه از آن بهعنوان «رایانه» یاد میشود در گذشته به عنوان «رایانه رقمی (دیجیتال)» یاد میشد تا آنها را از انواع «رایانه آنالوگ» جدا سازند. به تصریح دانشنامه انگلیسی ویکیپدیا، بدیعالزمان ابوالعز بن اسماعیل بن رزاز جَزَری (درگذشتهٔ ۶۰۲ ق.) یکی از نخستین ماشینهای اتوماتا را که جد رایانههای امروزین است، ساخته بوده است. این مهندس مکانیک مسلمان از دیاربکر در شرق آناتولی بوده است. رایانه یکی از دو چیز برجستهای است که بشر در سدهٔ بیستم اختراع کرد. دستگاهی که بلز پاسکال در سال ۱۶۴۲ ساخت اولین تلاش در راه ساخت دستگاههای محاسب خودکار بود. پاسکال آن دستگاه را که پس از چرتکه دومیت ابزار ساخت بشر بود، برای یاری رساندن به پدرش ساخت. پدر وی حسابدار دولتی بود و با کمک این دستگاه میتوانست همه اعدادشش رقمی را با هم جمع و تفریق کند.[۲] لایبنیتز ریاضیدان آلمانی نیز از نخستین کسانی بود که در راه ساختن یک دستگاه خودکار محاسبه کوشش کرد. او در سال ۱۶۷۱ دستگاهی برای محاسبه ساخت که کامل شدن آن تا ۱۹۶۴ به درازا کشید. همزمان در انگلستان ساموئل مورلند در سال ۱۶۷۳ دستگاهی ساخت که جمع و تفریق و ضرب میکرد.[۲] در سده هجدهم میلادی هم تلاشهای فراوانی برای ساخت دستگاههای محاسب خودکار انجام شد که بیشترشان نافرجام بود. سرانجام در سال ۱۸۷۵ میلادی استیفن بالدوین نخستین دستگاه محاسب را که هر چهار عمل اصلی را انجام میداد، به نام خود ثبت کرد.[۲] از جمله تلاشهای نافرجامی که در این سده صورت گرفت، مربوط به چارلز ببیج ریاضیدان انگلیسی است. وی در آغاز این سده در سال ۱۸۱۰ در اندیشهٔ ساخت دستگاهی بود که بتواند بر روی اعداد بیست و شش رقمی محاسبه انجام دهد. او بیست سال از عمرش را در راه ساخت آن صرف کرد اما در پایان آن را نیمهکاره رها کرد تا ساخت دستگاهی دیگر که خود آن را دستگاه تحلیلی مینامید آغاز کند. او میخواست دستگاهی برنامهپذیر بسازد که همه عملیاتی را که میخواستند دستگاه برروی عددها انجام دهد، قبلا برنامهشان به دستگاه داده شده باشد. قرار بود عددها و درخواست عملیات برروی آنها به یاری کارتهای سوراخدار وارد شوند. بابیچ در سال ۱۸۷۱ مرد و ساخت این دستگاه هم به پایان نرسید.[۲] کارهای بابیچ به فراموشی سپرده شد تا این که در سال ۱۹۴۳ و در بحبوحه جنگ جهانی دوم دولت آمریکا طرحی سری برای ساخت دستگاهی را آغاز کرد که بتواند مکالمات رمزنگاریشدهٔ آلمانیها را رمزبرداری کند. این مسئولیت را شرکت IBM و دانشگاه هاروارد به عهده گرفتند که سرانجام به ساخت دستگاهی به نام ASCC در سال ۱۹۴۴ انجامید. این دستگاه پنج تنی که ۱۵ متر درازا و ۲٫۵ متر بلندی داشت، میتوانست تا ۷۲ عدد ۲۴ رقمی را در خود نگاه دارد و با آنها کار کند. دستگاه با نوارهای سوراخدار برنامهریزی میشد و همهٔ بخشهای آن مکانیکی یا الکترومکانیکی بود.[۲] تعریف داده و اطلاعات [ویرایش]داده به آن دسنه از ورودیهایی خام گفته میشود که برای پردازش به رایانه ارسال میشوند. اطلاعات به دادههای پردازش شده میگویند. رایانهها چگونه کار میکنند؟ [ویرایش]از زمان رایانههای اولیه که در سال ۱۹۴۱ ساخته شده بودند تا کنون فناوریهای دیجیتالی رشد نمودهاست، معماری فون نوِیمن یک رایانه را به چهار بخش اصلی توصیف میکند: واحد محاسبه و منطق (Arithmetic and Logic Unit یا ALU)، واحد کنترل یا حافظه، و ابزارهای ورودی و خروجی ( که جمعا I/O نامیده میشود). این بخشها توسط اتصالات داخلی سیمی به نام گذرگاه (bus) با یکدیگر در پیوند هستند. حافظه [ویرایش]در این سامانه، حافظه بصورت متوالی شماره گذاری شده در خانهها است، هرکدام محتوی بخش کوچکی از دادهها میباشند. دادهها ممکن است دستورالعملهایی باشند که به رایانه میگویند که چه کاری را انجام دهد باشد. خانه ممکن است حاوی اطلاعات مورد نیاز یک دستورالعمل باشد. اندازه هر خانه، وتعداد خانهها، در رایانهٔ مختلف متفاوت است، همچنین فناوریهای بکاررفته برای اجرای حافظه نیز از رایانهای به رایانه دیگر در تغییر است(از بازپخشکنندههای الکترومکانیکی تا تیوپها و فنرهای پر شده از جیوه و یا ماتریسهای ثابت مغناطیسی و در آخر ترانزیستورهای واقعی و مدار مجتمعها با میلیونها فیوز نیمه هادی یا MOSFET هایی با عملکردی شبیه ظرفیت خازنی روی یک تراشه تنها). پردازش [ویرایش]واحد محاسبه و منطق یا ALU دستگاهی است که عملیات پایه مانند چهار عمل اصلی حساب (جمع و تفریق و ضرب و تقسیم)، عملیات منطقی (و، یا، نقیض)، عملیات قیاسی (برای مثال مقایسه دو بایت برای شرط برابری) و دستورات انتصابی برای مقدار دادن به یک متغیر را انجام میدهد. این واحد جائیست که «کار واقعی» در آن صورت میپذیرد. البته CPUها به دو دسته کلی RISC و CISC تقسیم بندی میشوند. نوع اول پردازشگرهای مبتنی بر اعمال ساده هستند و نوع دوم پردازشگرهای مبتنی بر اعمال پیچیده میباشند. پردازشگرهای مبتنی بر اعمال پیچیده در واحد محاسبه و منطق خود دارای اعمال و دستوراتی بسیار فراتر از چهار عمل اصلی یا منطقی میباشند. تنوع دستورات این دسته از پردازندهها تا حدی است که توضیحات آنها خود میتواند یک کتاب با قطر متوسط ایجاد کند. پردازندههای مبتنی بر اعمال ساده اعمال بسیار کمی را پوشش میدهند و در حقیقت برای برنامهنویسی برای این پردازندهها بار نسبتاً سنگینی بر دوش برنامهنویس است. این پردازندهها تنها حاوی ۴ عمل اصلی و اعمال منطقی ریاضی و مقایسهای به علاوه چند دستور بیاهمیت دیگر میباشند.هرچند ذکر این نکته ضروری است که دستورات پیچیده نیز از ترکیب تعدادی دستور ساده تشکیل شدهاند و برای پیادهسازی این دستورات در معماریهای مختلف از پیادهسازی سختافزاری(معماری CISC) و پیادهسازی نرمافزاری(معماری RISC) استفاده میشود. (قابل ذکر است پردازندههای اینتل از نوع پردازنده مبتنی بر اعمال پیچیده میباشند.) واحد کنترل همچنین این مطلب را که کدامین بایت از حافظه حاوی دستورالعمل فعلی اجرا شوندهاست را تعقیب میکند، سپس به واحد محاسبه و منطق اعلام میکند که کدام عمل اجرا و از حافظه دریافت شود و نتایج به بخش اختصاص داده شده از حافظه ارسال گردد. بعد از یک بار عمل، واحد کنترل به دستورالعمل بعدی ارجاع میکند(که معمولاً در خانه حافظه بعدی قرار دارد، مگر اینکه دستورالعمل جهش دستورالعمل بعدی باشد که به رایانه اعلام میکند دستورالعمل بعدی در خانه دیگر قرار گرفتهاست). ورودی/خروجی [ویرایش]بخش ورودی/خروجی (I/O) این امکان را به رایانه میدهد تا اطلاعات را از جهان بیرون تهیه و نتایج آنها را به همان جا برگرداند. محدوده فوق العاده وسیعی از دستگاههای ورودی/خروجی وجود دارد، از خانواده آشنای صفحهکلیدها، نمایشگرها، نَرمدیسک گرفته تا دستگاههای کمی غریب مانند رایابینها (webcams). (از سایر ورودی/خروجیها میتوان موشواره mouse، قلم نوری، چاپگرها (printer)، اسکنرها، انواع لوحهای فشرده(CD, DVD) را نام برد ). چیزی که تمامی دستگاههای عمومی در آن اشتراک دارند این است که آنها رمزکننده اطلاعات از نوعی به نوع دیگر که بتواند مورد استفاده سیستمهای رایانه دیجیتالی قرار گیرد، هستند. از سوی دیگر، دستگاههای خروجی آن اطلاعات به رمز شده را رمزگشایی میکنند تا کاربران آنها را دریافت نمایند. از این رو یک سیستم رایانه دیجیتالی یک نمونه از یک سامانه دادهپردازی میباشد. دستورالعملها [ویرایش]هر رایانه تنها دارای یک مجموعه کم تعداد از دستورالعملهای ساده و تعریف شده میباشد. از انواع پرکاربردشان میتوان به دستورالعمل «محتوای خانه ۱۲۳ را در خانه ۴۵۶ کپی کن!»، «محتوای خانه ۶۶۶ را با محتوای خانه ۰۴۲ جمع کن، نتایج را در خانه ۰۱۳ کن!»، «اگر محتوای خانه ۹۹۹ برابر با صفر است، به دستورالعمل واقع در خانه ۳۴۵ رجوع کن!». دستورالعملها در داخل رایانه بصورت اعداد مشخص شدهاند - مثلاً کد دستور العمل (copy instruction) برابر ۰۰۱ میتواند باشد. مجموعه معین دستورالعملهای تعریف شده که توسط یک رایانه ویژه پشتیبانی میشود را زبان ماشین مینامند. در واقعیت، اشخاص معمولاً به زبان ماشین دستورالعمل نمینویسند بلکه بیشتر به نوعی از انواع سطح بالای زبانهای برنامهنویسی، برنامهنویسی میکنند تا سپس توسط برنامه ویژهای (تفسیرگرها (interpreters) یا همگردانها (compilers) به دستورالعمل ویژه ماشین تبدیل گردد. برخی زبانهای برنامهنویسی از نوع بسیار شبیه و نزدیک به زبان ماشین که اسمبلر (یک زبان سطح پایین) نامیده میشود، استفاده میکنند؛ همچنین زبانهای سطح بالای دیگری نیز مانند پرولوگ نیز از یک زبان انتزاعی و چکیده که با زبان ماشین تفاوت دارد بجای دستورالعملهای ویژه ماشین استفاده میکنند. معماریها [ویرایش]در رایانههای معاصر واحد محاسبه و منطق را به همراه واحد کنترل در یک مدار مجتمع که واحد پردازشی مرکزی (CPU) نامیده میشود، جمع نمودهاند. عموما، حافظه رایانه روی یک مدار مجتمع کوچک نزدیک CPU قرار گرفته. اکثریت قاطع بخشهای رایانه تشکیل شدهاند از سامانههای فرعی (به عنوان نمونه، منبع تغذیه) و یا دستگاههای ورودی/خروجی. برخی رایانههای بزرگتر چندین CPU و واحد کنترل دارند که بصورت همزمان با یکدیگر درحال کارند. اینگونه رایانهها بیشتر برای کاربردهای پژوهشی و محاسبات علمی بکار میروند. کارایی رایانهها بنا به تئوری کاملاً درست است. رایانه دادهها و دستورالعملها را از حافظهاش واکشی (fetch) میکند. دستورالعملها اجرا میشوند، نتایج ذخیره میشوند، دستورالعمل بعدی واکشی میشود. این رویه تا زمانی که رایانه خاموش شود ادامه پیدا میکند. واحد پردازنده مرکزی در رایانههای شخصی امروزی مانند پردازندههای شرکت ای-ام-دی و شرکت اینتل از معماری موسوم به Pipeline استفاده میشود و در زمانی که پردازنده در حال ذخیره نتیجه یک دستور است مرحله اجرای دستور قبلی و مرحله واکشی دستور قبل از آن را آغاز میکند. همچنین این رایانهها از سطوح مختلف حافظه نهانگاهی استفاده میکنند که در زمان دسترسی به حافظه اصلی صرفهجویی کنند. برنامهها [ویرایش]برنامه رایانهای فهرستهای بزرگی از دستورالعملها (احتمالاً به همراه جدولهائی از داده) برای اجرا روی رایانه هستند. خیلی از رایانهها حاوی میلیونها دستورالعمل هستند، و بسیاری از این دستورات به تکرار اجرا میشوند. یک رایانه شخصی نوین نوعی (درسال ۲۰۰۳) میتواند در ثانیه میان ۲ تا ۳ میلیارد دستورالعمل را پیاده نماید. رایانهها این مقدار محاسبه را صرف انجام دستورالعملهای پیچیده نمیکنند. بیشتر میلیونها دستورالعمل ساده را که توسط اشخاص باهوشی «برنامه نویسان» در کنار یکدیگر چیده شدهاند را اجرا میکنند. برنامهنویسان خوب مجموعههایی از دستورالعملها را توسعه میدهند تا یکسری از وظایف عمومی را انجام دهند(برای نمونه، رسم یک نقطه روی صفحه) و سپس آن مجموعه دستورالعملها را برای دیگر برنامهنویسان در دسترس قرار میدهند. (اگر مایلید «یک برنامهنویس خوب» باشید به این مطلب مراجعه نمایید.) رایانههای امروزه، قادرند چندین برنامه را در آن واحد اجرا نمایند. از این قابلیت به عنوان چندکارگی (multitasking) نام برده میشود. در واقع، CPU یک رشته دستورالعملها را از یک برنامه اجرا میکند، سپس پس از یک مقطع ویژه زمانی دستورالعملهایی از یک برنامه دیگر را اجرا میکند. این فاصله زمانی اکثرا بهعنوان یک برش زمانی (time slice) نام برده میشود. این ویژگی که CPU زمان اجرا را بین برنامهها تقسیم میکند، این توهم را بوجود میآورد که رایانه همزمان مشغول اجرای چند برنامهاست. این شبیه به چگونگی نمایش فریمهای یک فیلم است، که فریمها با سرعت بالا در حال حرکت هستند و به نظر میرسد که صفحه ثابتی تصاویر را نمایش میدهد. سیستمعامل همان برنامهای است که این اشتراک زمانی را بین برنامههای دیگر تعیین میکند. سیستمعامل [ویرایش]رایانه همیشه نیاز دارد تا برای بکار انداختنش حداقل یک برنامه روی آن در حال اجرا باشد. تحت عملکردهای عادی این برنامه همان سیستمعامل یا OS که مخفف واژههای Operating System است. سیستم یا سامانه عامل بر اساس پیشفرضها تصمیم میگیرد که کدام برنامه برای انجام چه وظیفه ای اجرا شود، چه زمان، از کدام منابع (مثل حافظه، ورودی/خروجی و ...) استفاده شود. همچنین سیستمعامل یک لایه انتزاعی بین سختافزار و برنامههای دیگر که میخواهند از سختافزار استفاده کنند، میباشد، که این امکان را به برنامه نویسان میدهد تا بدون اینکه جزئیات ریز هر قطعه الکترونیکی از سختافزار را بدانند بتوانند برای آن قطعه برنامهنویسی نمایند. در گذشته یک اصطلاح متداول بود که گفته می شد با تمام این وجود کامپیوترها نمیتوانند برخی از مسائل را حل کنند که به این مسائل حل نشدنی گفته میشود مانند مسائلی که در مسیر حلشان در حلقه بی نهایت می افتند. به همین دلیل نیاز است که با کمک روشهای خاص بطور مثال به چند بخش تقسیم نمودن مساله یا روشهای متداول دیگر از رخ دادن این خطا تا حد امکان جلوگیری نمود. کاربردهای رایانه [ویرایش]نخستین رایانههای رقمی، با قیمتهای زیاد و حجم بزرگشان، در اصل محاسبات علمی را انجام میدادند، انیاک یک رایانه قدیمی ایالات متحده اصولا طراحی شده تا محاسبات پرتابهای توپخانه و محاسبات مربوط به جدول چگالی نوترونی را انجام دهد. (این محاسبات بین دسامبر ۱۹۴۱ تا ژانویه ۱۹۴۶ روی حجمی بالغ بر یک میلیون کارت پانچ انجام پذیرفت! که این خود طراحی و سپس تصمیم نادرست بکارگرفته شده را نشان میدهد) بسیاری از ابررایانههای امروزی صرفاً برای کارهای ویژه محاسبات جنگ افزار هستهای استفاده میگردد[نیازمند منبع]. CSIR Mk I نیز که نخستین رایانه استرالیایی بود برای ارزیابی میزان بارندگی در کوههای اسنوئی (Snowy)این کشور بکاررفت، این محاسبات در چارچوب یک پروژه عظیم تولید برقابی انجام گرفت. برخی رایانهها نیز برای انجام رمزگشایی بکارگرفته میشد، برای مثال Colossus که در جریان جنگ جهانی دوم ساخته شد، جزو اولین کامپیوترهای برنامهپذیر بود(البته ماشین تورینگ کامل نبود). هرچند رایانههای بعدی میتوانستند برنامهریزی شوند تا شطرنج بازی کنند یا تصویر نمایش دهند و سایر کاربردها را نشان دهد. سیاستمداران و شرکتهای بزرگ نیز رایانههای اولیه را برای خودکارسازی بسیاری از مجموعههای داده و پردازش کارهایی که قبلا توسط انسانها انجام میگرفت، بکار بستند - برای مثال، نگهداری و بروزرسانی حسابها و داراییها. در موسسات پژوهشی نیز دانشمندان رشتههای مختلف شروع به استفاده از رایانه برای مقاصدشان نمودند. کاهش پیوسته قیمتهای رایانه باعث شد تا سازمانهای کوچکتر نیز بتوانند آنها را در اختیار بگیرند. بازرگانان، سازمانها، و سیاستمداران اغلب تعداد زیادی از کامپیوترهای کوچک را برای تکمیل وظایفی که قبلا برای تکمیلشان نیاز به رایانه بزرگ (mainframe) گران قیمت و بزرگ بود، به کار بگیرند. مجموعههایی از رایانههای کوچکتر در یک محل اغلب بهعنوان خادم سرا[نیازمند منبع] (server farm) نام برده میشود. با اختراع ریزپردازندهها در دهه ۱۹۷۰ این امکان که بتوان رایانههایی بسیار ارزان قیمت را تولید نمود بوجود آمد. رایانههای شخصی برای انجام وظایف بسیاری محبوب گشتند، از جمله کتابداری، نوشتن و چاپ مستندات. محاسبات پیش بینیها و کارهای تکراری ریاضی توسط صفحات گسترده (spreadsheet)، ارتباطات توسط پست الکترونیک، و اینترنت. حضور گسترده رایانهها و سفارشی کردن آسانشان باعث شد تا در امورات بسیار دیگری بکارگرفته شوند. در همان زمان، رایانههای کوچک، که معمولاً با یک برنامه ثابت ارائه میشدند، راهشان را بسوی کاربردهای دیگری باز مینمودند، کاربردهایی چون لوازم خانگی، خودروها، هواپیماها، و ابزار صنعتی. این پردازشگرهای جاسازی شده کنترل رفتارهای آن لوازم را سادهتر کردند، همچنین امکان انجام رفتارهای پیچیده را نیز فراهم نمودند (برای نمونه، ترمزهای ضدقفل در خودروها[۳]). با شروع قرن بیست و یکم، اغلب دستگاههای الکتریکی، اغلب حالتهای انتقال نیرو، اغلب خطوط تولید کارخانهها توسط رایانهها کنترل میشوند. اکثر مهندسان پیش بینی میکنند که این روند همچنان به پیش برود. یکی از کارهایی که میتوان بهوسیله رایانه انجام داد پروگرام گیرنده ماهوارهاست. انواع رایانه [ویرایش]رایانههای توکار [ویرایش]رایانه هایی هم وجود دارند که تنها برای کاربردهای خاص طراحی می شوند. در ۲۰ سال گذشته، هرچند برخی ابزارهای خانگی که از نمونههای قابل ذکر آن میتوان جعبههای بازیهای ویدئویی را که بعدها در دستگاههای دیگری از جمله تلفن همراه، دوربینهای ضبط ویدئویی، و PDAها و دهها هزار وسیله خانگی، صنعتی، خودروسازی و تمام ابزاری که در درون آنها مدارهایی که نیازهای ماشین تورینگ را مهیا ساختهاند، گسترش یافت، را نام برد(اغلب این لوازم برنامههایی را در خود دارند که بصورت ثابت روی ROM تراشههایی که برای تغییر نیاز به تعویض دارند، نگاشته شدهاند). این رایانهها که در درون ابزارهای با کاربرد ویژه گنجانیده شدهاند «ریزکنترلگرها» یا رایانههای توکار" (Embedded Computers) نامیده میشوند. بنابراین تعریف این رایانهها بهعنوان ابزاری که با هدف پردازش اطلاعات طراحی گردیده محدودیتهایی دارد. بیشتر میتوان آنها را به ماشینهایی تشبیه کرد که در یک مجموعه بزرگتر بهعنوان یک بخش حضور دارند مانند دستگاههای تلفن، ماکروفرها و یا هواپیما که این رایانهها بدون تغییر فیزیکی توسط کاربر میتوانند برای مقاصد مختلفی بکارگرفته شوند. رایانههای شخصی [ویرایش]اشخاصی که با انواع دیگری از رایانهها ناآشنا هستند از عبارت رایانه برای رجوع به نوع خاصی که رایانه شخصی (PC) نامیده میشوند استفاده میکنند. رایانه ای است که از اجزای الکترونیکی میکرو (ریز)تشکیل شده که جزو کوچکترین و ارزان ترین کامپیوتر ها محسوب می شود و کابرد های خانگی و اداری دارد شرکت IBM رایانه شخصی در سال 1981 میلادی به جهان معرفی کرد.
+
نوشته شده در دوشنبه یکم فروردین 1390ساعت 19:24 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
||||
|
تمامی رباتهای جهان در مسیری یکسان تکامل پیدا نمیکنند. در واقع همه رباتها به تدریج به اندازهای هوشمند نخواهند شد که توانایی ساخت یکی مثل خود را به دست آورده و به دلیل بروز خطاهای انسانی، تصمیم به از بین بردن نسل بشر بگیرند!
در جهان رباتهای زیبا و مفیدی وجود دارند که با هدف بهبود حالات روحی انسانها طراحی شدهاند. برای مثال کیپان رباتی زرد رنگ و کوچک است که با هدف برقراری تعامل با کودکان طراحی شده و ربات ویولن نواز تویوتا نیز با هوش موسیقیایی خود برای آرام کردن بیماران طراحی و ساخته شده است.
ربات PaPeRo رباتی دوست داشتنی است که توسط شرکت ژاپنی NEC ساخته شده است. این ربات با هدف بهبود تعامل انسانها با اینترنت ساخته شده و از توانایی شناسایی سه هزار واژه و استفاده از آنها برای سخن گفتن، اعلام کردن دریافت پیام، ارائه اطلاعات جدید، شناسایی چهرهها، ارسال پیامهای ویدئویی، بازی و کنترل کردن دیگر تجهیزات الکترونیک برخوردار است.
این ربات از دو دوربین به عنوان چشم، چهار میکروفن به عنوان گوش، ردیابی ماورا صوت برای ردیابی اجسام برخوردار بوده و میتواند محیط اطرافش را شناسایی کند. شخصیتهای مختلفی برای ربات تعریف شده و کاربر می تواند آن را متناسب با روحیات خود تغییر دهد.
ربات Yume Neko، نام این ربات به مفهوم گربه رویایی است و از توانایی حرکت کردن، دراز کشیدن و واکنش نشان دادن نسبت به نوازش برخوردار است. این گربه رباتیک که به شکلنژاد گربههای جنگلی نروژی ساخته شده از حسگرهای متعددی در سرتاسر بدن برخوردار بوده و با کمک میکروفونی کوچک نسبت به صداها واکنش نشان میدهد.
ربات E.M.A، این ربات احساساتی ارتفاعی برابر 38 سانتیمتر داشته و با برخورداری از اتصالات قوی در پاهایش از تواناییهای حرکتی بالایی برخوردار است. این ربات میتواند آواز بخواند، با کاربر خوش و بش کند و اجسام را جا به جا کند.
ربات AIBO، شرکت سونی این سگ رباتی را با توانایی یادگیری از محیط اطرافش ابداع کرده است. این سگ که بیشتر به سگهای فضایی شباهت دارد علاوه بر حیوان خانگی مجازی میتواند در مطالعات برنامه نویسی رایانه ای شرکت کرده تا برنامههای مختلف بر روی آن آزمایش شود.
ربات Tweenbots، این ربات کوچک و معصوم به منظور انجام مطالعهای درباره تعامل انسانها با رباتها ابداع شده بود و برای نمایش دادن چهرهای دوستانه بر روی صورت آن لبخندی کشیده شده و ربات پرچمی کوچک را با پیام کمک کنید حمل میکرد.
ربات کیپان، این ربات کوچک و دوست داشتنی که به یک آدم برفی زرد رنگ شباهت دارد به منظور کمک به کودکان اوتیسمی ابداع شده و از دو دوربین به عنوان چشم، چهار موتور و یک میکروفن به عنوان بینی استفاده میکند و دانشمندان آن را برای مطالعه بر روی رشد اجتماعی و تعامل میان انسان و روباتها به کار میگیرند.
ربات TRIO، این ربات که با همکاری چند شرکت و دانشگاه مختلف ساخته شده و تا کنون در مراسم مختلف به عنوان راهنمای میهمانان و یا معرفی کنده میهمانان مورد استفاده قرار گرفته است. Trio قادر است به زبان انگلیسی صحبت کرده و با انسانها گفتگو کند.
ربات HOAP-3، محصولی از شرکت فوجیتسو که از توانایی آموختن و تعامل با محیط اطراف، نگاه کردن به حرکات انسانها و شبیهسازی حرکات آنها به واسطه 28 مفصل حرکتی و یا به خاطر سپردن شیوه حرکت ماهیچههای بدن برخوردار است. از این ربات برای تحلیل میزان انطباق پذیری رباتها با محیطهای انسانی استفاده میشود. همچنین ربات HOAP-3 از توانایی تشخیص و تحلیل کلمات برخوردار است.
منبع: نشریه ان بی سی برگرفته از مهر
+
نوشته شده در چهارشنبه یازدهم اسفند 1389ساعت 20:12 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
||||
|
Torrent چه برنامه ای مورد نیاز
است؟ فایل
با پسوند .torrent چیست؟
حالا در جدولی که براتون میاره، نشون میده که این فایل چند بار روی شبکه تورنت به اشتراک گذاشته شده و یکسری اطلاعات دیگه هم در موردش میده. به اولین لینک اصلی - طبق تصویر بالا - دقت کنید. جلوش نوشته 6 روز پیش . یعنی این فایل 6 روز پیش به شبکه تورنت اضافه شده و در سمت راست تر حجم این فایل ذکر شده. اون عدد سبز هم که در ستون سمت راستش میبینید تعداد seed ها هستند، کسانی که این فایل رو به اشتراک گذاشته اند .توجه کنید که اگر این تعداد کم باشه ، ممکنه نتونید فایل اصلی رو دانلود کنید. اما اگر بالای 20 باشه دیگه خوبه. حالا روی اولین لینک اصلی کلیک کنید. تا وارد صفحه دوم بشین: ![]() در اینجا یکسری سایت
رو به شما معرفی میکند. این سایت ها، لینک تورنتی رو که در صفحه قبل روش
کلیک کردین، دارن. فرقی نمی کنه که فایل تورنت رو از کدامیک از سایت های
ارائه شده بگیرید. چون همون یک چیز هستند. پس کافیه روی یکی از این لینک ها
کلیک کنید. مثلا روی alivetorrents.com کلیک کنید. حالا شما وارد این سایت
میشین و باید دنبال لینکی تورنت بگردید که عنوانش هم معمولا هست Download
This Torrent . خوب حالا فایل کوچولویی به شما داده میشه . فایل رو باید با
برنامه ی میکروتورنت که نصب کردید باز کنید. به محض بازکردن فایل با
برنامه ی میکروتورنت، محتویات فایل اصلی به شما نشون داده میشه و میتونید
دانلود فایل اصلی رو شروع کنید. مزایای تورنت: - این شبکه معمولا برای اشتراک گذاری و دانلود فایل های خیلی بزرگ مانند فیلم ، موزیک ، ویدئوکلیپ و مانند اینها استفاده میشه و با یک اینترنت 128k میتونید تا روزی 1 گیگ دانلود کنید. توجه کنید که معمولا این برنامه حالت آپلودش هم باز هست و چیزی حدود نصف همین قدر هم از روی کامپیوتر شما برای دیگران آپلود میکنه . البته فقط فایل هایی رو دانلود میکنه که شما در برنامه میکروتورنت دارید. با این حال میتونید سرعت آپلود رو از منوی برنامه کم کنید تا پهنای باندتون کمتر مصرف شه. - در شبکه تورنت
سرعت دانلود خیلی بهتر از شبکه های اشتراک گذاری دیگری مانند e-mule است و
شما کمتر در صف انتظار دانلود قرار میگیرد. در شبکه ای-میول معمولا شما برای دانلود هر فایل
چند دقیقه و یا چند ساعت در صف انتظار قرار میگیرید و دانلود پس از اینکه
نوبت شما رسید شروع میشه. اما در شبکه تورنت این اتفاق به ندرت می افتد.
+
نوشته شده در یکشنبه سوم بهمن 1389ساعت 8:39 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
||||
|
سیستمهای طبیعی مختلفی به ما یاد میدهند که ارگانیسمهای خارجی بسیار ساده
ایی توان تولید سیستمهایی با قابلیت انجام کارهایی بسیار پیچیده به کمک
برهم کنشهای پویا با هم را دارند.
متاهیوریستیک (ابرکشف) کلونی زنبورها (BCO) در این مقاله آورده شده است.کلونی مصنوعی زنبورها در پاره ایی نزدیک به هم و در مقایسه با کلونی زنبورهای طبیعی , متفاوت عمل میکنند. BCO به همان میزان که قابلیت حل مسائل ترکیبی قطعی را دارد , قادر به حل مسائل ترکیبی ایی است که دارای عدم قطعیت نیز میباشند. توسعه ی الگوریتم کشف کننده ی جدید برای حل مسئله ی Ride-Matching به کمک راه پیشنهاد شده (استفاده از کلونی زنبورها) راهی روشنگر برای نشان دادن قابلیتهای این روش محسوب میشود. 1.معرفی شمار زیادی از مدلهای مهندسی و الگوریتمهایی که برای حل مسائل پیچیده به کار میرود بر اساس کنترل و مرکزگرایی بنا شده اند.برخی از سیستمهای طبیعی (کلونی های حشرات اجتماعی) به ما یاد میدهند که یک سری ارگانیسمهای ساده ی خارجی قابلیت تولید سیستمهایی را دارند که به کمک بر هم کنشهای پویا قابلیت انجام اعمال بسیار پیچیده را دارند. گروه زنبورها به خاطر استقلال داخلی کلونی و عملکردهای توزیع شده و سیستم درون سازمانی یکی از بهترین کلونی ها برای توضیح این مسئله شناحته شده است. در سالهای اخیر محققان برای تولید سیستمهای جدید مصنوعی (در حیطه ی هوش مصنوعی) شروع به تحقیق درباره ی طرز رفتار حشرات اجتماعی کرده اند. BCO ( Bee Colony Optimization) که مسیر جدیدی را در هوش جمعی بررسی میکند در این مقاله بررسی شده است.هدف اصلی این مقاله بررسی این امکان است که به کمک سیستم مصنوعی زنبورها بتوان قدمی را در پیدا کردن راه حلهایی جامع برای حل مسائلی که با عدم قطعیت مواجه هستند برداشت. ادامه ی مقاله در قسمتهای دوم و سوم آمده است.قسمت دوم به توضیح BCO میپردازد در حالیکه قسمت سوم به مطالعه ی موضوعی مربوط به مسئله Ride-Matching میپردازد. .The Bee Colony Optimization : The New Computational Paradigm2 حشرات اجتماعی (زنبورعسل , زنبور معمولی , مورچه ها , موریانه ها) برای میلیونها سال بر روی کره زمین زندگی کرده اند , آشیانه های مختلف و بسیاری از ساخته های پیچیده تر ساخته اند و آذوقه شان را سازماندهی کرده اند.کلونی حشرات اجتماعی بسیار انعطاف پذیر محسوب میشود و به خوبی قابلیت همساز شدن با محیط جدید را دارند.این انعطاف پذیری این امکان را به کلونی میدهد تا بتواند حتی با مواجه شدن با شرایط سخت و مشکلات , به زندگی خود ادامه دهد. پویاگرایی جمعیت حشرات نتیجه ایی از عملکردها و تعاملات بین حشرات با یکدیگر و با محیط اطراف است.تعاملات بین حشرات بر اساس یک سری عوامل فیزیکی و شیمیایی امکان پذیر شده است.محصول نهایی این تعاملات و عملکردها , رفتار اجتماعی این گونه حشرات محسوب میشود. مثالی برای چنین رفتارهایی , رقص مورچه ها در هنگام جمع آوری محصول است.مثال دیگری برای این حالت ترشح فنومون (هورمون جنسی) در مورچه هاست که موجب راه گذاری برای مورچه های دیگر خواهد شد.این سیستمهای ارتباطی بین حشرات مختلف موجب به وجود آمدن مقوله ایی به نام "هوش اشتراکی" میشود.به این معنی که حشرات فوق به هنگام قرار گرفتن در کنار یکدیگر دارای فاکتوری هوشمند میشوند که در غیاب یکدیگر قادر به انجام چنین کاری نیستند. 2.1 : Bees In Nature سیستم سازمانی زنبورها بر اساس یک سری قوائد ساده ی خارجی حشرات بنا شده است.با اینکه نژادهای بسیاری از حشرات مختلف بر روی کره ی زمین موجود هستند و همین باعث تفاوتهایی در الگوی رفتاری آنها میشود , ولی با اینحال این سری حشرات اجتماعی را میتوان دارای قابلیت حل مسائل پیچیده دانست.بهترین مثال برای این حالت روند تولید نکتار (شهد) محسوب میشود که در نوع خود یک فرایند ساماندهی شده ی پیشرفته محسوب میشود.هر زنبور ترجیح میدهد که راه قبلی زنبور هم کندوی خود را دنبال کند تا اینکه خود به دنبال گل جدید بگردد. هر کندوی زنبور عسل دارای مکانی معروف به سالن رقص است که در آنجا زنبورها با انجام حرکتی خاص , هم کندوییهای خود را راضی میکنند تا راه آنها را برای رسیدن به گلها برگزینند.اگر یک زنبور تصمیم بگیرد که به دنبال نکتار برود , با انتخاب زنبور هم کندوی رقاص خود , راه قبلی را دنبال میکند تا به گل برسد.با رسیدن زنبور به گلها و جمع آوری شهد قادر به انجام کارهای زیر است : الف : منبع غذا را رها کند و دوباره به دنبال زنبور رقصانی بگردد تا بتواند منبعی جدید پیدا کند. ب : خود به دنبال منابع غذایی جدید بگردد. ج : در کندو اقدام به رقصیدن کرده و زنبورهای جدیدی را به دنبال خود بکشاند. بر اساس احتمالات اندازه گیری شده , زنبور اقدام به انجام یکی از حالات بالا میکند .در مکان رقص , زنبورها اقدام به پیشنهاد مکانهای مربوط به جمع آوری نکتار به دیگران میکنند.مکانیزم انتخاب یک زنبور توسط زنبوری دیگر هنوز شناخته شده نیست ولی تا به امروز روشن شده است که این امر بیشتر مربوط به کیفیت نکتار پیدا شده توسط زنبور رقاص است. لوسیچ و تدوروویچ اولین کسانی بودند که از رویه های پایه و ساده ی زنبوری برای حل کردن مسائل ترکیبی بهینه سازی استفاده کردند.آنها سیستم زنبوری (BS) را معرفی کردند و از آن برای حل مساله ی معروف Travelling Salesman استفاده کردند.در ادامه به استفاده های BCO در حل مسائل پیشرفته اشاره خواهیم کرد. در کلونی مصنوعی طراحی شده توسط ما شباهتها و تفاوتهایی با کلونهای واقعی زنبورها در طبیعت وجود دارد.در ادامه به معرفی FBS (Fuzzy Bee System) میپردازیم که قادر به حل مسائل ترکیبی *طرح شده توسط انسانها* است.به کمک FBS , Agent ها در ارتباطات با همدیگر از قوانین تقریبی دلیلگرایی و منطق Fuzzy استفاده میکنند. 2.2 : The Bee Colony Optimization Metaheuristic در BCO , مامورهایی که ما به آنها "زنبور مصنوعی" میگوییم با همدیگر اجتماع میکنند تا بتوانند قادر به حل مسائل مشکلتر باشند.تمامی زنبورهای مصنوعی در ابتدای فرایند جستجو , در کندوی اصلی قرار دارند.در فرایند جستجو نیز , زنبورهای مصنوعی به طور کاملا مستقیم با یکدیگر ارتباط برقرار میکنند.هر زنبور مصنعوی یک سری حرکات محلی خاص انجام داده و به کمک آنها قادر خواهد بود تا راه حلی را بری مشکل فعلی خود پیدا کند. این زنبورها تک تک راه حلهای کمکی و زیرپایه ایی را ارائه میدهند تا در آخر با ادغام این راه حلها , راه حل اصلی برای حل مسئله ی ترکیبی به دست بیاید. روند جستجو از تکرارهای پشت سر هم تشکیل شده است.اولین تکرار زمانی پایان میابد که اولین زنبور راه حل زیر پایه ی خود را برای حل مسئله ی اصلی ارائه دهد. بهترین راه حل زیرپایه در خلال اولین تکرار انتخاب شده و پس از آن , تکرار دوم شروع خواهد شد.در تکرار دوم , زنبورهای مصنوعی شروع به پیدا کردن راه حلی جدید برای مسئله ی زیر پایه میکنند و... در پایان هر تکرار حداقل یک و یا چند راه حل ارائه شده وحود دارد , که آنالیست مقدار همگی آنها را مشخصی میکند. به هنگام حرکت در فضا , زنبورهای مصنوعی ما یکی از دو حرکت "حرکت به سمت جلو" و یا "حرکت به سمت عقب" را انجام میدهند. به هنگام "حرکت به سمت جلو" زنبورها راه و روشهای جدیدی را برای حل مسئله پیدا میکنند.آنها اینکار را به کمک یک سری جستجوهای شخصی و اطلاعات بدست آمده ی گذشته انجام میدهند. بعد از آن , زنبورها عمل "حرکت به سمت عقب" را انجام میدهند که همان برگشتن به کندوی اصلی است.در کندو همگی زنبورها در یک فرایند "تصمیم گیری" شرکت میکنند.ما در نظر میگیریم که هر زنبوری قابلیت درک و دریافت اطلاعات زنبورهای دیگر را بر اساس کیفیت دارد.به کمک این روش , زنبورها این قابلیت را دارند که با استفاده از اطلاعات دیگران , راههای بهتر حل مسئله را پیدا کنند. براساس اطلاعات جدیدی که در مورد کیفیت راه حل به دست می آید , زنبور میتواند تصمیم بگیرد که : الف) منبع راه حل خود را رها کرده و در سالن رقص به دنبال کسی بگردد که منبعی با کیفیت بیشتر در اختیار دارد. ب) بدون اینکه کسی را جذب کند , دوباره به سراغ منبع راه حل خود برود. ج)در سالن رقص با انجام حرکاتی خاص (رقصیدن) سعی در جمع کردن زنبورهای دیگر به دور خود داشته باشد. بر اساس میزان کیفیتی که زنبور از منبع خود به دست می آورد , فاکتوری به نام "وفاداری" در وی بوجود می آید که در واقع همان وفاداری به راهی است که خود زنبور انتخاب کرده است.بار دومی که زنبورهای مصنوعی برای پیدا کدن راه حل مسئله به حرکت در می آیند , اینبار سعی در پیدا کردن راههای جدیدی برای حل مسوله دارند و بعد از اینکار دوباره عمل "حرکت به سمت عقب" را انجام داده و به کندو برمیگردند و دوباره در کندو در بحثی که در مورد پیدا کردن بهترین راه شکل گرفته , شرکت میکنند. این روند زمانی پایان میابد که یک راه حل تقریبا کامل برای مسئله پیدا شود. مثل برنامه نویسی پویا , BCO نیز میتواند مسائل ترکیبی بهینه سازی را در هر مرحله (تکرار) به میزانی حل کند.هر کدام از مراحل مشخص شده دارای یک مقدار بهینه سازی خاص است.بگذارین اشاره کنیم که : ST={st1 + st2 + … + stm} همانطور که میبینید هر Stage (مرحله) شامل یک سری مراحل از قبل انتخاب شده است.در ادامه میبینید که به کمک کمیت B ما تعدا زنبورهایی را که در این فرایند شرکت میکنند را مشخص میکنیم و به کمک I , تعداد کل مراحل (تکرار) هایی را که انجام میپذیرند را نشان میدهیم.مجموعه ی تمامی راه حلهای زیرپایه را نیز به کمک Sj نشان میدهیم که در آن j دارای مقادیر 1 تا m میباشد. در زیر کد پیش ساخت BCO را مشاهده میکنید : **************************** الف) شروع : مشخص کردن تعداد زنبورها (B) و تعداد تکرارها (I). مشخص نمودن تعداد مراحل (ST).پیدا کردن هر گونه راه حل قابل حل x از مسئله. این راه حل در واقع بهترین و اولین راه حل انتخاب توسط ما خواهد بود. ب) Set i:=1 , Until i=I و تکرار کن مراحل بعدی را ج) Set j:=m , Until j=m و تکرار کن مراحل بعدی را حرکت به سمت جلو : رفت : به زنبورها این امکان را میدهد که از کندو بیرون آمده و قابلیت انتخاب B راه حل را از مجموعه ی راه حلهای زیرپایه Sj در STj داشته باشند. حرکت به سمت عقب : برگشت : تمامی زنبورها را به کندو برمیگرداند.به زنبورها این اجازه را میدهد که اطلاعات خود را در مورد کیفیت راه حلهای دیگران و خود به اشتراک بگذارند و بدین طریق تصمیم بگیرند که منبع خود را رها کرده یا بدنبال کسی دیگر بیفتند یا به تنهایی به منبع خود برگردند و یا با رقصیدن دیگران را مشتاق دنبال کردن منبع خود کنند. Set j:=j+1 د)اگر بهترین راه حلی (Xi) که در I امین تکرار بدست آمد , بهتر از بهترین راه اخیر بدست آمده بود , آنگاه فاکتور بهترین راه حل را به روز میکنیم : X:=xi ه) 1Set i:=i+ **************************** بطور کل حرکتهای جلویی و عقبی در BCO میتوانند نقش فرعی را بگیرند به این معنی که تا زمانیکه یکی از فاکتورهای مهم کامل نشده است , این دو به کار خود ادامه دهند.این فاکتور مهم به عنوان مثال میتواند "بیشترین مقدار رفت و برگشت ها" و یا برخی دیگر از موارد مورد نظر توسط خود اپراتور باشد. در BCO , زیر مدلهای مختلفی که به توصیق چگونگی حالات زنبورها میپردازد و یا منطق گرایی آنها را مشخص میکند به راحتی قابلیت توسعه و تست شدن را دارند.به این معنی که الگوریتمهای متفاوتی از BCO را میتوان طراحی کرد. این مدلها میتوانند به توصیف چگونگی ترک کردن منبع اولیه توسط زنبورها , ادامه دادن رفت و برگشت بین کندو و منبع توسط زنبور و یا چگونگی رقصیدن زنبور برای جمع کردن دیگر زنبورها به دود خود را توضیح دهند. 2.3 : The Fuzzy Bee System زنبورها در فرایند پیدا کردن بهترین راه حل با مشکلات تصمیم گیری مختلفی مواجه میشوند.مشکلات زیر برخی از مشکلات رایج بین آنهاست : الف) راه حل زیرپایه ی بعدی که باید به راه حل اصلی اضافه شود چیست ؟ ب) آیا باید راه حل زیرپایه ی فعلی را رها کرد و به دنبال راه حل زیرپایه ی جدیدی رفت ؟ ج)آیا باید به گسترش راه حل زیرپایه ی فعلی ادامه داد ولی فعلا بدنبال دیگر زنبورها نرفت ؟ بسیاری از مدلهای تصمیم گیری بر اساس ابزارهای مدلینگ مختلفی به وجود آمده اند.این حالات کاملا منطقی و عقلی هستند و بر اساس این اطلاعات بوجود آمده اند که ماموران تصمیم گیر (Decision Maker Agents) مامورانی با داشتن بیشترین اطلاعات هستند و همیشه بهترین راه حل را برای پایان دادن به حل مسئله در نظر میگیرند.برای اینکه بتوان مدلهای حل مسئله ی مختلفی را بوجود آورد محققان شروع به استفاده از راههای بی قاعده تری کردند. مفهوم ساده ی منطق فازی (Fuzzy) که توسط "زاده" معرفی شد قابلیت بهتری در توضیح مسائلی که با عدم قطعیت ادغام شده اند را دارد.با توجه به اطلاعات فوق , ما در انتخاب اینکه منطق زنبورها بر چه اساسی صورت میگیرد , از منطق فازی استفاده میکنیم.زنبورهای مصنوعی ما از منطق گرایی تقریبی و منطق فازی برای انجام اعمال خود استفاده میکنند. به هنگام دادن راه حلهای زیرپایه ی جدید به زنبور مصنوعی , زنبور حالتهای زیر را برای برقراری ارتباط با راه حل زیرپایه ی فوق در نظر میگیرد : کم جاذبه , جذاب , خیلی جذاب همچنین ما در نظر میگیریم که یک زنبور مصنوعی میتواند مقادیر خاصی را مانند "کوتاه" , "متوسط" و "بلند" و یا "ارزان" , "متوسط" و "گران" در نظر بگیرد. 2.3.1 : Calculating The Solution Component Attractiveness and Choice Of The Next Solution Component To Be Added To The Partial Solution الگوریتم منطق تقریبی برای حل کردن مسئله ی جذابیت , از قوانین زیر تشکیل شده است : اگر مقادیر بدست آمده از راه حل زیر پایه خیلی خوب باشد آنگاه راه حل بدست آمده خیلی جذاب است. هدف و امتیاز اصلی استفاده از از این الگوریتم این است که حتی با وجود اینکه اطلاعات به دست آمده ممکن است فقط اطلاعات تقریبی باشند (و نه قطعی) , میتوان میزان جذابیت راه حل زیرپایه را به راحتی مشخص کرد.بگذارید با در نظر گرفتن به عنوان میزان جذابیت راه حل زیرپایه ی i به توضیح میزان احتمال وقوع بپردازیم : احتمال برای راه حل زیر پایه ی i که به راه حل اصلی الحاق میشود برابر است با نسبت میزان جذابیت تقسیم بر تمامی جذابیتهای راه حلهای زیر پایه ی دیگر : برای اضافه کردن راه حلهای جدید به راه حل اصلی , زنبورها از نوعی انتخاب به نام Roulette Wheel Selection استفاده میکنند. Bee's Partial Solutions Coparison Mechanism در توصیف مکانیزم مقایسه ی راه حلهای زیر پایه ی زنبور , ما موضوع "بدی راه حل زیرپایه" را معرفی میکنیم که برابر است با : کمیتهای بالا به صورت زیر تعریف میشوند : : بدی راه حل زیرپایه به وسیله ی k امین زنبور : مقادیر تابع مفعولی از راه حل زیرپایه ایی که به وسیله ی ن امین زنبور کشف شده : مقادیر تابع مفعولی از بهترین راه حل زیرپایه ی کشف شده از ابتدای روند جستجو تاکنون : مقادیر تابع مفعولی از بدترین راه حل زیرپایه ی کشف شده از ابتدای روند جستجو تاکنون الگوریتم منطق تقریبی برای تعیین بدی راه حل زیرپایه از قوانینی به شکل زیر تشکیل شده است : اگر راه حل کشف شده بد بود آنگاه وفاداری کم خواهد شد. زنبورها از منطق تقریبی و مقایسه ی راه حلهای زیرپایه ی کشف شده شان با بهترین راه حل زیرپایه , و مقایسه ی راه حلهای زیرپایه کشف شده با بدترین راه حلها از آغاز روند جستجو استفاده میکند. در این روش حقایق تاریخی که بوسیله ی تمامی اعضای کلونی زنبور بوجود آمده اند تاثیر قابل توجهی بر راههای آینده ی جستجو دارند. 2.3.3 : Bee's Decision About Recruiting The Nestmates از زمان شروع زندگی زنبورها و یا بهتر از بگوییم از زمان شروع زندگی حشرات اجتماعی , احتمال رخدادی است که در آن زنبور به پرواز در طول همان مسیر بدون گرفتن همراه ادامه دهد. احتمال بسیار کمی است ( <<1). زنبورها تا محل رقص پواز میکنند و با احتمالی برابر با میرقصند.این نوع ارتباط بین زنبورها منجر به ساخته شدن فاکتوری به نام "هوش جمعی" میکند. در اینحالت هنگامی که زنبور تصمیم میگیرد که همان مسیر را پرواز نکند , آن زنبور به سالن رقص رفته و از دیگر زنبورها پیروی خواهد کرد. 2.3.4 : Calculating The Number Of Bees Changing The Path هر راه حل زیرپایه که در ناحیه ی رقص اعلان شده , دو ویژگی اصلی داشته است : الف) مقادیر تابع مفعولی ب) تعداد زنبورهایی که آن راه حل زیرپایه را اعلان کرده اند این تعداد یک تعیین کننده ی خوب برای دانش دسته جمعی زنبورهاست.این فرایند نشان میدهد که چگونه کلونی زنبوری راه حل زیرپایه ی خاصی را در نظر میگیرد. الگوریتم منطق تقریبی برای معین کردن جذابیت راه حل زیرپایه ی اعلان شده از قوانین زیر تشکیل شده است : اگر طول راه اعلان شده کوتاه باشد و تعداد زنبورهای اعلان کننده کم باشد آنگاه جذابیت راه حل زیرپایه متوسط است. جذابیت محاسبه شده ی راه در این روش میتواند مقادیری بین 0 و 1 را اختیار کند.هر چقدر مقدار محاسبه زیادتر باشد , راه حل اعلان شده جذابیت بیشتری دارد.زنبورها کم و بیش به راه اولیه و قدیمی خود وفادارند , همزمان راه های اعلان شده ی جدید جذابیت کم و بیشی برای آنها خواهد داشت. بعنوان مثال بیایید دو راه فرضی را و بنامیم.ما با تعداد زنبورهایی را که راه را ترک کرده اند و به جفتهایی ملحق شده اند که در طول راه پرواز میکنند , را مشخص میکنیم. الگوریتم منطق تقریبی برای محاسبه ی تعداد زنبورهای جابجا شده شامل قوانینی به فرم زیر است : اگر وفاداری زنبورها به راه پایین باشد و جذابیت راه بالا باشد آنگاه تعداد زنبورهای جابجا شده از راه به راه بعدی بالا است. در این روش تعداد زنبورهایی که در طول یک مسیر خاص پرواز میکنند , قبل از رفت بعدی تغییر داده شده.با استفاده از دانش اجتماعی و به اشتراک گذاری اطلاعات , زنبورها بر مسیرهای تضمین شده ی جستجو تمرکز میکنند , و مسیرهای کمتر تضمین شده را کم کم ترک میکنند. 4 : Case Study : The Ride-Matching Problem شبکه های راه شهری در بیشتر کشورها به طرز شدیدی متراکم شده و در نتیجه زمان سفر درون شهری زیاد شده , تعداد توقفها افزایش یافته , وقفه های پیش بینی نشده , هزینه ی سفر درون شهری , مزاحمت برای رانندگان و مسافران و نیز آلودگی هوا , سطح صدای ناهنجار و تعداد تصادفات ناشی از ترافیک افزایش یافته است. افزایش ظرفیت شبکه ی ترافیکی به وسیله ی ساختمانها و جاده های بیشتر در حالیمه هزینه های زیادی دارد , آسیبهای محیطی زیادی نیز دارد.استفاده ی موثرتر از منابع موجود برای حمایت از رشد تقاضای سفر ضروری است. RideSharing یکی از تکنیکهای شناخته شده ی مدیریت رشد سفر (TDM) است که توصیه به شریک شدن دو یا چند نفر (با دو یا چند مبدا و مقصد) در یک وسیله ی نقلیه میکند.تمام رانندگانی که در RideSharing شرکت کردند به اپراتور اطلاعات زیر را در مورد تکنیک سفر اشاره شده , ارائه دادند : الف) ظرفیت وسیله ی نقلیه (دو , سه و یا چهار نفر). ب) روزهایی از هفته که هر فرد برای شرکت در RS حاضر است. ج) مبدا سفر برای هر روز هفته. د) مسافت سفر برای هر روز هفته. ه)مقصد مورد نظر و/یا زمان رسیدن برای هر روز هفته مسئله ی RS که در این مقاله به آن اشاره شده میتواند به روش زیر تعریف شود : مسیریابی و زمان بندی وسایل نقلیه و مسافران برای تمامی هفته در "بهترین روش ممکن". موارد زیر توابع پتانسیل مفعولی هستند : الف) کمینه کردن کل مسافتی که توسط تمامی اعضای شرکت کننده پیموده میشود ب) کمینه کردن وقفه ی کل ج) برابر کردن نسبی بهره برداری از وسایل نقلیه ما وقتی از مسئله ی بهینه سازی ترکیبی معین استفاده میکنیم که مقصد در نظر گرفته شده یا زمان رسیدن هر دو ثابت هستند (برای مثال "من میخواهم راس ساعت 8 صبح سوار شوم") , به بیان دیگر در بسیاری از حالتهای زندگی واقعی مقصد در نظر گرفته شده و/یا زمان رسیدن , از منطق فازی طبعیت میکند (برای مثال "من میخواهم حدود ساعت 8 صبح سوار شوم") , در اینحالت با مسئله ی RS باید به عنوان مسئله ی بهینه سازی ترکیبی *دارای عدم قطعیت* رفتار کرد. 3.1 : Solving The Ride-Matching Problem By The Fuzzy Bee System بیایید هر مسافری که در RS شرکت کرده است را بعنوان یک گره در نظر بگیریم (شکل 2).ما مسئله مان را به مراحلی تجزیه میکنیم.اولین سرنشین ماشین (راننده) مرحله ی اول معرفی میشود , دومین مسافری که به RS ملحق میشود (مرحله ی دوم) و... در طی رفت زنبور تعداد معینی از گره ها را بازدید خواهد کرد , یک راه حل زیر پایه ایجاد میکند و پس از آن به کندو (یعنی گره ی O) برمیگردد. در کندو زنبور در روند تصمیم گیری شرکت خواهد کرد.زنبورها تمام راه حلهای زیر پایه ی تولید شده را مقایسه میکنند.بر مبنای کیفیت راه حلهای زیرپایه ی تولید شده , هر زنبور تصمیم میگیرد که آیا مسیر تولید شده را ترک ند و زنبور سرگردان شود , یا به پرواز در طول مسیر کشف شده بدون گرفتن همراه ادامه دهد , یا برقصد و بدینگونه همراهی بگیرد قبل از آنکه به مسیر کشف شده بازگردد. بسته به کیفیت راه حل زیر پایه ی تولید شده , هر زنبور سطح معینی از وفاداری را به راه قبلی کشف شده دارد.بعنوان مثال زنبورهای B1 و B2 و B3 در فرایند تصمیم گیری شرکت میکنند.پس از مقایسه ی تمام راه حلهای زیرپایه ی تولید شده , زنبور B1 تصمیم میگیرد راه فعلی را ترک کرده و به زنبور B2 ملحق شود. زنبورهای B1 و B2 با هم در طول مسیری که به وسیله ی زنبور B2 تولید شده , پرواز میکنند. هنگامی که به انتهای مسیر رسیدند آنها آزاد هستند تا تصمیمی فردی درباره ی گره ی بعدی که باید بازدید شود بگیرند. زنبور B3 به پرواز در طول مسیر بدون گرفتن همراه ادامه میدهد(شکل 3).در این روش زنبورها دوباره عمل رفت را انجام میدهند.در طی دومین رفت زنبورها تعداد کمی گره ی بیشتر (نسبت به اولین بار) را ملاقات میکنند , راه حلهای زیرپایه ی تولید شده ی قبلی را توسعه میدهند و پس از آن دوباره عمل برگشت را اجرا میکنند و به کندو (گره ی O) بازمیگردند. در کندو دوباره زنبورها در فرایند تصمیم گیری شرکت میکنند , تصمیم میگیرند , سومین رفت را اجرا میکنند و ... تکرار هنگامی تمام میشود که زنبورها تمامی گره ها را بازدید کرده باشند.هنگام انتخاب گره ی بعدی که باید در رفت بعدی بازدید شود , زنبور گره ی خاصی را بعنوان "کمتر جذاب" , "جذاب" و "خیلی جذاب" در نظر میگیرد که وابسته به نزدیکی مکانی یا زمانی بین دو درخواست از دو مسافر است. ما این نزدیکی ها را "فاصله ی مکانی در مبدا" , "فاصله ی مکانی در مسافت" و "فاصله ی زمانی در ورود به مقصد" مینامیم. ما در نظر میگیریم که زنبور مصنوعی میتواند فاصله ی خاصی بین دو گره را با عنوانهای "کوتاه" , "متوسط" و "طولانی" شناسانی کند. الگوریتم منطق تقریبی جذابیت گره را با قوانین زیر تعیین میکند : اگر فاصله ی مکانی در مبدا کوتاه باشد و فاصله ی مکانی در مسافت کوتاه باشد و فاصله ی زمانی ورود کوتاه باشد آنگاه جذابیت گره بالا است. بدی راه (که در دومین معادله تعریف شد) در ارتباط با الگوریتم منطق تقریبی برای تعیین وفاداری زنبور به راه کشف شده استفاده میشود.الگوریتم منطق تقریبی برای تعیین جذابیت مسیر پیشنهاد شده از قوانین زیر تبعیت میکند : اگر طول مسیر پیشنهادی کوتاه باشد و تعداد زنبورهایی که آن راه را پیشنهاد داده اند کم باشد آنگاه جذابیت آن راه متوسط است. 3.2 : Numerical Experiment ما مدل پیشنهادی را برای RS شهر Trani (شهر کوچک و زیبایی در جنوب ایتالیا) تا شهر Bari (مرکز منطقه ی Puglia) امتحان کردیم.ما اطلاعات مربوط به 97 مسافر که خواستار شرکت در پروژه ی RideSharing بودند را جمع آوری کرده و برای سادگی مسئله ظرفیت هر اتومبیل را چهار نفر در نظر گرفیم.در اینحالت الگوریتم 24*4 = 96 نفر از 97 نفر را برای ساختن بهترین راه کنار میگذارد.ما از کندویی با 15 زنبور , که سریعا (و یکبار) کندو را ترک میکنند استفاده کردیم.زنبورها فقط 6 مسیر غذایابی را پیدا کردند , و دیگر مسیرها رها شدند.
+
نوشته شده در چهارشنبه هشتم دی 1389ساعت 13:48 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
||||
|
هوش دسته جمعی، زیر شاخه ای از هوش مصنوعی است که بر پایه رفتار جمعی سیستم
های غیر متمرکز و خود سازمان ده بنا شده است. این اصطلاح را برای اولین
بار Gerardo Beni و Joing Wang در سال 1989 در زمینه ی سیستم های رباتی
سلولی به کار بردند.
سیستم های SI)Swarm Intelligence) به طور نمونه از یک گروه از عوامل ساده ساخته شده که به طور محلی با یکدیگر و نیز با محیط پیرامونشان بر هم کنش دارند. بنا برا ین در آنها ساختار کنترلی متمرکزی وجود ندارد که به هر عامل منفرد دستور دهد که چگونه رفتار کند.بر هم کنش محلی بین عواملی با ای مشخصات ، منجر به حتمی بودن رفتار سراسری می شود. نمونه های طبیعی SIشامل کلونی مورچه ها ، دسته های پرندگان، گله های حیوانات ، رشد باکتریایی و دسته های ماهی ها می باشد. هوش جمعی نوعی روش هوش مصنوعی است که مبتنی بر رفتارهای جمعی در سامانههای نامتمرکز و خودسامانده بنیان شده است. این سامانهها معمولاً از جمعیتی از کنشگران ساده تشکیل شده است که بطور محلی با یکدیگر و با محیط خود در تعامل هستند. با وجود اینکه معمولاً هیچ کنترل تمرکزیافتهای، چگونگی رفتار کنشگران را به آنها تحمیل نمیکند، تعاملات محلی آنها به پیدایش رفتاری عمومی میانجامد. مثالهایی از چنین سیستمهای را میتوان در طبیعت مشاهده کرد؛ گروههای مورچهها، دستهٔ پرندگان، گلههای حیوانات، تجمعات باکتریها و دستههای ماهیها. روباتیک ازدحامی، کاربردی از اصول هوش مصنوعی ازدحامی در تعداد زیادی از روباتهای ارزان قیمت است. روشهای هوش ازدحامی از موارد روشهای فرااکتشافی میتوان به موارد زیر اشاره کرد روش بهینهسازی گروه مورچهها یا ACO الگوریتم کوچ پرستوها یا روش بهینهسازی ازدحام ذرات PSO روش شبیهسازی کورهای روش جستجوی مبتنی بر منع روش محاسبات تکاملی الگوریتم مورچه ها روش ACO، نوعی روش فرااکتشافی است که برای یافتن راهحلهای تقریبی برای مسائل بهینهسازی ترکیبیاتی مناسب است. روش ACO، مورچههای مصنوعی بهوسیلهٔ حرکت بر روی گرافِ مساله و با باقی گذاشتن نشانههایی بر روی گراف، همچون مورچههای واقعی که در مسیر حرکت خود نشانههای باقی میگذارند، باعث میشوند که مورچههای مصنوعی بعدی بتوانند راهحلهای بهتری را برای مساله فراهم نمایند. الگوریتم کوچ پرستوها روش PSO یک روش سراسری کمینهسازی است که با استفاده از آن میتوان با مسائلی که جواب آنها یک نقطه یا سطح در فضای n بعدی میباشد، برخورد نمود. در اینچنین فضایی، فرضیاتی مطرح میشود و یک سرعت ابتدایی به آنها اختصاص داده میشود، همچنین کانالهای ارتباطی بین ذرات درنظر گرفته میشود. سپس این ذرات در فضای پاسخ حرکت میکنند، و نتایج حاصله بر مبنای یک «ملاک شایستگی» پس از هر بازهٔ زمانی محاسبه میشود. با گذشت زمان، ذرات به سمت ذراتی که دارای ملاک شایستگی بالاتری هستند و در گروه ارتباطی یکسانی قرار دارند، شتاب میگیرند. مزیت اصلی این روش بر استراتژیهای کمینهسازی دیگر این است که، تعداد فراوان ذرات ازدحام کننده، باعث انعطاف روش در برابر مشکل پاسخ کمینهٔ محلی میگردد. جذابیت هوش ازدحامی در فناوری اطلاعات همگونیهایی بین مسائل متفاوت در حوزهٔ فناوری اطلاعات و رفتارهای حشرات اجتماعی وجود دارد : سامانهای توزیع شده از کنشگرهای مستقل و تعامل کننده. اهداف: بهینه سازی کارآیی و توان. خود تنظیم بودن در روشهای کنترل و همکاری به شکل نامتمرکز. توزیع کار و اختصاص وظایف به شکل توزیع شده. تعاملات غیر مستقیم. مراحل طراحی یک سامانه مراحل طراحی یک سامانه با کاربردهای فناوری اطلاعات بر مبنای هوش مصنوعی ازدحامی فرآیندی سه مرحلهای است : شناسایی همسانیها: در سامانههای IT و طبیعت. فهم: مدلسازی رایانهای روش ازدحامی طبیعی به شکل واقعگرا. مهندسی: سادهسازی مدل و تنظیم آن برای کاربردهای IT. کاربردهای فعلی و آتی مسیریابی در شبکه. سامانههای توزیعشدهٔ رایانامهای. اختصاص منابع به شکل بهینه. زمانبندی وظایف. بهینهسازی ترکیبیاتی. روباتیک: بررسی سیستمهای لولهکشی. تعمیرات و نگهداری ماهوارهها و کشتیها. روبوتهای خود-مونتاژ.
+
نوشته شده در یکشنبه بیست و یکم آذر 1389ساعت 11:43 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
||||
|
سازمان سنجش آموزش کشور دفترچه راهنمای ثبت نام در آزمون کارشناسی ارشد سال 1389 را منتشر کرد. به گزارش خبرنگار مهر، داوطلبان شرکت در آزمون ورودی تحصیلات تکمیلی سال 89 می توانند با مراجعه به سایت سازمان سنجش آموزش کشور به نشانی www.sanjesh.org به دفترچه راهنمای این آزمون دسترسی یابند. شرایط عمومی و اختصاصی ثبت نام و شرکت در آزمون، شرایط و ضوابط ثبت نام اتباع خارجی در آزمون، سهمیه ها و تسهیلات و امتیاز فارغ التحصیلان رتبه اول کارشناسی دانشگاهها از جمله مواردی است که در دفترچه راهنما برای داوطلبان شرکت در کنکور کارشناسی ارشد 89 درج شده است. منبع:خبرگزاري مهر
+
نوشته شده در یکشنبه نهم آبان 1389ساعت 9:32 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
||||
|
) پردازنده
2) حافظه 3) دستگاه های ورودی و خروجی 4) داده : مستقل از فیزیک و جرم است.قائم به ذات نیست.داده روی کابل IDE حتی روی شبکه نگهداری شود مهم نیست.مهم این است که سیستم عامل از مکانی که خودش اطلاع دارد ،داده را بردارد و مورد استفاده قرار دهد. سیستم چند پردازشی:یعنی اینکه چندین پردازنده در اختیار داریم و هر پردازنده پردازش خاصی را انجام می دهد.معمولا در سیستم های چند پردازشی یک پردازشگر به عنوان Master و بقیه ی پردازشگرها به عنوان Slave عمل می کنند. چند وظیفه ای:در یک بازه ی زمانی چند پروسه انجام شود.اگر چندین پردازنده داشته باشیم ،می توانیم چندین Task را مدیریت کنیم. در صورتی که یک پردازنده داشته باشیم از Time Sharing استفاده می کنیم. اشتراک زمانی یا تسهیم زمانی:یعنی ارائه یک منبع در زمان های متفاوت به متقاضیان متقابل. اشتراک زمانی برای استفاده CPU یا پردازشگر بسیار مهم است.(در شرایط مطلوب با الگوریتم مطلوب) اما اینکار برای به اشتراک گذاشتن منبعی مثل Printer بین چندین کاربر یا چندین پروسه غیر معقول می باشد. نکته:به کارگیری چند کاره بسیار مهم است . چون امکان دارد یک پروسه یا یک برنامه خاص دارای چندین Task باشد و این Task ها نتوانند به صورت همزمان یا با اشتراک زمانی خدمات را بگیرند. پردازش:به برنامه های در حال اجرا که قسمتی از ان در حافظه ی اصلی قرار گرفته باشد ،پردازش می گویند. حالت هایی که یک پردازشگر می تواند به خود بگیرد:
حالت Running : مهم ترین و ایده ال ترین وظیفه ای که یک پروسه می تواند داشته باشد.پروسه ای که در حال اجرا است ،حداقل یک دستورالعمل ان در Register قرار گرفته باشد.حداکثر به تعداد پردازنده ها پروسه های در حال اجرا داریم و حداقل پروسه های در حال اجرا در هر لحظه صفر می باشد.حالت Ready : هیچ پروسه ای اجازه ی ورود به وضعیت Running را ندارد ، مگر اینکه قبلا به حالت Ready رفته باشد.البته صف Ready کاملا معنی صف را ندارد. چون الگوریتم های متفاوتی برای انتخاب پروسه ها از حالت Ready به Running وجود دارد.پروسه ای به حالت Running می رود که هیچ مشکلی برای اجرا نداشته باشد. حالت Despatch : یعنی انتخاب پروسه از حالت Ready به Running . این عمل توسط سخت افزاری به نام Despatcher انجام می شود.این پروسه براساس الگوریتم هایی که کار می کند پروسه را از حالت Ready به Running می برد.Time Run Out : اگر پروسه ای در وضعیت اجرا قرار گرفت ، باید در طی مدتی که مشخص شده است، اجرایش تمام شود.اگر اجرای پروسه در این زمان به اتمام نرسید ،پروسه از حالت Running به Ready می رود تا یک قاچ زمانی دیگر به ان اختصاص داده شود.حالت Blocked : ممکن است پروسه ای در حال اجرا باشد و مشکل زمانی هم نداشته باشد ،فقط نیاز به منبع داشته باشد و این منبع در اختیار پروسه های دیگر باشد.در این حالت پروسه از حالت Running به Blocked می رود.این پروسه در حالت Blocked می ماند تا زمانی که مشکل ان برطرف شود..وقتی مشکل پروسه برطرف شد ،پروسه از حالت Blocked به Ready می رود.حالت Suspend Ready : زمانی وجود دارد که پروسه ی در حال اجرا هیچ مشکلی اعم از مشکل زمانی و منبع نداشته باشد و اینکه سیستم عامل نیاز بداند که پروسه را تعلیق کند.این عمل زمانی انجام می شود که پروسه ای در حالت Running باشد که این پروسه براساس الگوریتم خاصی اجرا می شود و تمام منابع سیستم در اختیار این پروسه قرار دارد و پروسه های خیلی کوچکتر از این پروسه در صف Ready باشند و نیاز به منبع های در اختیار پروسه ی در حالت Running داشته باشد. اگر پروسه به Loop افتاده باشد سیستم عامل پروسه را به Suspend می فرستد.حالت Suspend Blocked : ممکن است پروسه هایی که در حالت Blocked قرار دارند و نیاز به منبع دارند ،سیستم عامل تشخیص دهد که این پروسه ها به حالت تعلیق روند تا اگر مشکل منبع برطرف شد باز هم مشکل تعلیق داشته باشد.یعنی اینکه سیستم عامل اجازه ی اجرا را به انها ندهد.جلسه دوم: پروسه ها به دو گونه هستند:1) پروسه هایی که مقید به ورودی و خروجی هستند. 2) پروسه هایی که مقید به CPU هستند. پروسه هایی که مقید به CPU هستند؛به این پروسه ها، پروسه های Comfort یا مطلوب می گویند. به علت اینکه این پروسه ها با پردازنده در ارتباط هستند و سرعت انها بالا است و جهت گیری که سیستم عامل ها در مورد این پروسه ها دارند، این است که کار این پروسه ها را سریعتر انجام می دهند.به این معنی که منابع کلیدی را سریع تر ازاد می کنند و در اختیار این پروسه ها قرار می دهند و این به این علت است که CPU بتواند سریع تر در اختیار پروسه های دیگر قرار گیرد. وظایف سیستم عامل: 1) رابط کاربر: در سیستم عامل های قدیمی رابط کاربر به صورت Command بود.مثلا در سیستم عامل DOS ، ما برای ارتباط با کامپیوتر از Prompt استفاده می کردیم . در سیستم عامل های جدید این ارتقا پیدا کرد و تبدیل شد به GUI .2) به اشتراک گذاشتن سخت افزار: این خصوصیت به صورت اجباری است.چون نمی توان سخت افزاری مانند CPU را به یک کاربر اختصاص داد و به کاربر دیگر اختصاص نداد.3) اجازه به اشتراک گذاشتن داده ها بین کاربران: منظور این است که به کاربر اجازه دهد که داده ها را به اشتراک بگذارد یا نه؟این عمل صرفنظر از سخت افزار است. User ها تنها به کاربران انسانی محدود نمی شوند . در این میان پروسه ها نیز اجازه استفاده از داده ها را دارند.4) زمان بندی منابع برای تخصیص به کاربران: یک سری محدودیت ها را اعمال می کند.وقتی داده ای بین چندین پروسه و برنامه به صورت اشتراکی استفاده می شود،برای عملیاتی که قرار است روی داده انجام دهند ،بین پروسه ها یک زمان بندی مشخص می کند که کدام پروسه در کدام زمان به داده دسترسی داشته باشد.کدام کاربر در چه زمانی با کدام منبع ارتباط داشته باشد.5) تسهیل در ورودی و خروجی: یعنی اینکه سیستم عامل این توانایی را داشته باشد که به طور خودکار سخت افزار ما را بشناسد یا توانایی ارتقا داشته باشد. این به این منظور است که بتوان Driver مخصوص به هر سخت افزار را به راحتی در ان نصب کرد.6) توانایی شناخت خطاها در سیستم عامل باید وجود داشته باشد: سیستم عامل بتواند خطاهایی را که در برنامه ها یا در ورودی و خروجی رخ می دهد را بشناسد و به کاربر اعلام کند و کاربر هم بتواند این نواقص را رفع کند.7) سیستم عامل باید حسابدار باشد: سیستم عامل بتواند منابع در دسترس پروسه ها را حسابرسی کند و مشخص کند که کدام پروسه از کدام منبع چند بار استفاده کرده است.ساختار PCB : ( Process Control Block) : سیستم عامل اطلاعات مربوط به پروسه ها را در یک ساختار به نام PCB نگهداری می کند.این اطلاعات مربوط به پروسه ها در سیستم عامل ها متفاوت است و در طول حیات پروسه ها این اطلاعات تغییر می کند.اطلاعاتی که در مورد پروسه ها باید داشته باشیم: 1) نام پروسه : نام پروسه منحصر به فرد است.این نام مشخص کننده ی صاحب پروسه است و مشخص می کند که این پروسه مربوط به کدام گروه است.وقتی که گروه پروسه مشخص شد این گروه مشخص می کند که پروسه به چه چیزهایی دسترسی داشته باشد و به چه چیزهایی دسترسی نداشته باشد.چه عملیاتی را انجام دهد و چه عملیاتی را انجام ندهد.2) اولویت پروسه( Priority ) : مفهوم ان به غیر از حق تقدم است.3) وضعیت پروسه (وضعیت سخت افزاری) : وقتی که پروسه ای در حال اجرا است و سیستم عامل یا کاربر بنا به دلایلی این پروسه را تعلیق می کند،به هنگامی که مشکل تعلیق برطرف شد و خواست با CPU کار کند باید بتواند به وضعیت قبلی برگردد.مثلا باید مشخص شود که این پروسه از کدام Register استفاده می کرده است.4) امار و اطلاعات و زمانبندی برای استفاده منابع : این مشخص می کند از کدام منبع چند بار استفاده شده است یا CPU چند بار به پروسه اختصاص داده شده است و پروسه چقدر برای به دست اوردن منابع انتظار کشیده است.5) مدیریت و وضعیت حافظه : مشخص می کند با استفاده از ساختار مدیریت حافظه این پروسه در کجای حافظه قرار دارد.ادرس دستیابی به پروسه در اینجا مشخص می شود.6) وضعیت ورودی و خروجی : کدام دستگاه مورد استفاده پروسه قرار گرفته است .پروسه از کدام پورت ورودی و خروجی استفاده کرده است.7) اطلاعات مربوط به مدیریت حافظه و فایل: پروسه ای که در حالت اجرا قرار گرفته است،به کدام فایل دسترسی دارد و چند بار از این فایل در پردازش خود استفاده کرده است.8) اطلاعات مربوط به حسابداری و حسابرسی : مشخص می کند پروسه از کدام منبع به چه میزان استفاده کرده است وچه میزان نیاز به منابع برای اجرا دارد.جلسه سوم: زمانبندی : زمانبندی به مجموعه ای از مکانیزم ها و سیاست ها گفته می شود که یک سیستم عامل برای اجرای فرایندها به کار می برد.زمانبند ماجولی از سیستم عامل است که انتخاب می کند کدام فرایند اجرا شود. سه نوع زمانبند داریم: 1) Long Term Schduling 2) Medium Term Schduling 3) Short Term Schduling پروسه های Bach به پروسه هایی گفته می شود که با کنترل و Data همراه هستند . این پروسه ها عموما منابع سیستم را اشغال می کنند.
زمانبند بلند مدت: برای انتخاب پروسه های Bach از صف پروسه های Bach به حالت Ready توسط سیستم عامل استفاده می شود.زمانبند میان مدت: برای انتخاب پروسه هایی که Suspend شده اند و هم چنین از حافظه هم خارج شده اند . برای برگشت این پروسه هایی که تعلیق شده اند به حالت Ready باید تمهیداتی توسط سیستم عامل انجام گیرد.زمانبند کوتاه مدت: زمانبندی است که پروسه هایی که در صف Ready هستند را برای اجرا انتخاب می کند.این پروسه ها شامل پروسه های Bach ،پروسه های تعاملی و پروسه هایی که از سطح Suspend وارد Ready شده اند هستند.Suspend Queue :پروسه هایی که در صف Suspend Queue هستند پروسه هایی هستند که سیستم عامل برای انجام رویدادی خاص انها را تعلیق کرده است و این پروسه ها منتظر اجازه ی سیستم عامل برای اینکه از حالت تعلیق بیرون بیایند هستند.این پروسه ها از حافظه خارج نمی شوند. پروسه های Interactive همان پروسه هایی هستند که ما انتظار داریم بعد از دادن Comment به سیستم، بلافاصله پاسخ ان را در Terminal مشاهده کنیم. معیار های کمی زمانبندی: 1) میزان بکارگیری پردازنده( Processor Utilization )2) توان عملیاتی( Trough put ) 3) زمان انتظار( Waiting Time ) 4) زمان پاسخگویی( Response Time ) 5) Turn Over Time میزان بکارگیری پردازنده: یعنی به چه اندازه از پردازنده استفاده شود.هر چقدر این استفاده بیشتر باشد بهتر است . به شرطی که در این زمانی که CPU در حال اجرا کردن است فقط سرویس دهی کند . نباید محاسبات اماری را انجام داد،یعنی فقط پردازش کند.Trough put : تعداد Job های تکمیل شده در واحد زمان را توان عملیاتی می گویند.در این عمل اگر Job کوچکتر باشد ،توان عملیاتی بالا می رود.در Trough put نتیجه این است که به پروسه های کوچکتر زودتر سرویس دهی شود.این معیار باید در یک بازه ی زمانی مناسب اندازه گیری شود.این بازه ی زمانی اگر بیشتر باشد، توان عملیاتی به دست امده دقیقتر است.Turn Over Time : از لحظه ای که یک پروسه به سیستم می پیوندد و خلق می شود تا زمانی که این پروسه تکمیل می شود یا به انجام می رسد و از حافظه خارج می شود می گویند.بهترین زمان این است که پروسه به حالت اجرا نزدیک باشد.Waiting Time : زمانی است که پروسه می خواهد خدماتی بگیرد ،هنوز خدماتی به ان تعلق نگرفته است.Response Time : زمانی است که اخرین کلید را در صفحه کلید فشار می دهیم تا نتیجه را در صفحه نمایش مشاهده کنیم یا اینکه از لحظه ای که یک پروسه یا فرایند درخواستی را برای اجرا می دهد تا لحظه ای که به درخواست پروسه توسط سیستم عامل توجه می شود.معیارهای کیفی زمانبندی: 1) Fairness (منصفانه) : ایا الگوریتم ما منصفانه است یا خیر ؟پروسه توسط الگوریتم به صورت منصفانه انتخاب می شود ؟ 2) قابلیت پیش بینی : وقتی پروسه ای یک زمانی به ان داده و اجرا شد، دفعه ی بعدی اجرا ایا ان زمان به پروسه اختصاص داده می شود یا نه.مثلا یک پروسه 5 نانو ثانیه طول می کشد تا در بار اول اجرا شود.دفعه ی بعدی که قرار است این پروسه اجرا شود ایا این زمان به پروسه اختصاص داده می شود یا خیر.ایا این زمان قابلیت تکرار دارد یا نه و ترافیک سیستم باعث می شود این زمان بیشتر شود یا کمتر.3) قابلیت تکرار : وقتی پروسه ای در حال اجرا است ایا دفعه ی بعدی قابلیت اجرا دارد یا نه؟تعیین می کند که اگر پروسه ای در حال اجرا باشد و اجرایش تمام شود ،ایا این امکان وجود دارد که این پروسه برای بار بعد فراخوانی شود.در شرایطی مانند اینکه جدول PCB اماده نباشد ،نمی تواند دوباره فراخوانی شود.الگوریتم های زمانبندی : 1) First Come First Serviced : یعنی پروسه ای که اول وارد صف می شود تا انتها اجرا شود و وقتی که اجرایش تمام شد پروسه ی بعدی اجرا شود. یک الگوریتم انحصاری است.یعنی پروسه ای که وارد CPU می شود باید اجرا شود.( Non Primitive )زمان پاسخگویی این الگوریتم مناسب نیست.البته برای اولین پروسه خوب است و برای پروسه های بعدی خوب نیست.زمان انتظار زیاد است.الگوریتم FCFS برای پروسه های Bach بهتر است. 2) الگوریتم Priority : الگوریتمی که مبتنی بر اولویت است.این الگوریتم انحصاری نیست.یعنی Primitive است.اولویت بالاتر باشد اجرا می شود.3) Shortest Remaining Time Next : وقتی پروسه ای وارد صف می شود ،اگر این پروسه از باقی مانده ی زمان پروسه ای که در حال اجرا است کمتر باشد این الگوریتم به این پروسه خدمات می دهد.4) Shortest Job First : هر پروسه ای کوچکتر باشد خدمات بگیرد . در این حالت Trough put بالا می رود . چون همه پروسه های کوچک اجرا می شود.هم چنین ممکن است پروسه های بزرگتر اصلا اجرا نشوند،زیرا پروسه های کوچکتر همواره اجرا می شوند. ادامه دارد ......
+
نوشته شده در شنبه یکم آبان 1389ساعت 10:47 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
||||
|
) پردازنده
2) حافظه 3) دستگاه های ورودی و خروجی 4) داده : مستقل از فیزیک و جرم است.قائم به ذات نیست.داده روی کابل IDE حتی روی شبکه نگهداری شود مهم نیست.مهم این است که سیستم عامل از مکانی که خودش اطلاع دارد ،داده را بردارد و مورد استفاده قرار دهد. سیستم چند پردازشی:یعنی اینکه چندین پردازنده در اختیار داریم و هر پردازنده پردازش خاصی را انجام می دهد.معمولا در سیستم های چند پردازشی یک پردازشگر به عنوان Master و بقیه ی پردازشگرها به عنوان Slave عمل می کنند. چند وظیفه ای:در یک بازه ی زمانی چند پروسه انجام شود.اگر چندین پردازنده داشته باشیم ،می توانیم چندین Task را مدیریت کنیم. در صورتی که یک پردازنده داشته باشیم از Time Sharing استفاده می کنیم. اشتراک زمانی یا تسهیم زمانی:یعنی ارائه یک منبع در زمان های متفاوت به متقاضیان متقابل. اشتراک زمانی برای استفاده CPU یا پردازشگر بسیار مهم است.(در شرایط مطلوب با الگوریتم مطلوب) اما اینکار برای به اشتراک گذاشتن منبعی مثل Printer بین چندین کاربر یا چندین پروسه غیر معقول می باشد. نکته:به کارگیری چند کاره بسیار مهم است . چون امکان دارد یک پروسه یا یک برنامه خاص دارای چندین Task باشد و این Task ها نتوانند به صورت همزمان یا با اشتراک زمانی خدمات را بگیرند. پردازش:به برنامه های در حال اجرا که قسمتی از ان در حافظه ی اصلی قرار گرفته باشد ،پردازش می گویند. حالت هایی که یک پردازشگر می تواند به خود بگیرد:
حالت Running : مهم ترین و ایده ال ترین وظیفه ای که یک پروسه می تواند داشته باشد.پروسه ای که در حال اجرا است ،حداقل یک دستورالعمل ان در Register قرار گرفته باشد.حداکثر به تعداد پردازنده ها پروسه های در حال اجرا داریم و حداقل پروسه های در حال اجرا در هر لحظه صفر می باشد.حالت Ready : هیچ پروسه ای اجازه ی ورود به وضعیت Running را ندارد ، مگر اینکه قبلا به حالت Ready رفته باشد.البته صف Ready کاملا معنی صف را ندارد. چون الگوریتم های متفاوتی برای انتخاب پروسه ها از حالت Ready به Running وجود دارد.پروسه ای به حالت Running می رود که هیچ مشکلی برای اجرا نداشته باشد. حالت Despatch : یعنی انتخاب پروسه از حالت Ready به Running . این عمل توسط سخت افزاری به نام Despatcher انجام می شود.این پروسه براساس الگوریتم هایی که کار می کند پروسه را از حالت Ready به Running می برد.Time Run Out : اگر پروسه ای در وضعیت اجرا قرار گرفت ، باید در طی مدتی که مشخص شده است، اجرایش تمام شود.اگر اجرای پروسه در این زمان به اتمام نرسید ،پروسه از حالت Running به Ready می رود تا یک قاچ زمانی دیگر به ان اختصاص داده شود.حالت Blocked : ممکن است پروسه ای در حال اجرا باشد و مشکل زمانی هم نداشته باشد ،فقط نیاز به منبع داشته باشد و این منبع در اختیار پروسه های دیگر باشد.در این حالت پروسه از حالت Running به Blocked می رود.این پروسه در حالت Blocked می ماند تا زمانی که مشکل ان برطرف شود..وقتی مشکل پروسه برطرف شد ،پروسه از حالت Blocked به Ready می رود.حالت Suspend Ready : زمانی وجود دارد که پروسه ی در حال اجرا هیچ مشکلی اعم از مشکل زمانی و منبع نداشته باشد و اینکه سیستم عامل نیاز بداند که پروسه را تعلیق کند.این عمل زمانی انجام می شود که پروسه ای در حالت Running باشد که این پروسه براساس الگوریتم خاصی اجرا می شود و تمام منابع سیستم در اختیار این پروسه قرار دارد و پروسه های خیلی کوچکتر از این پروسه در صف Ready باشند و نیاز به منبع های در اختیار پروسه ی در حالت Running داشته باشد. اگر پروسه به Loop افتاده باشد سیستم عامل پروسه را به Suspend می فرستد.حالت Suspend Blocked : ممکن است پروسه هایی که در حالت Blocked قرار دارند و نیاز به منبع دارند ،سیستم عامل تشخیص دهد که این پروسه ها به حالت تعلیق روند تا اگر مشکل منبع برطرف شد باز هم مشکل تعلیق داشته باشد.یعنی اینکه سیستم عامل اجازه ی اجرا را به انها ندهد.جلسه دوم: پروسه ها به دو گونه هستند:1) پروسه هایی که مقید به ورودی و خروجی هستند. 2) پروسه هایی که مقید به CPU هستند. پروسه هایی که مقید به CPU هستند؛به این پروسه ها، پروسه های Comfort یا مطلوب می گویند. به علت اینکه این پروسه ها با پردازنده در ارتباط هستند و سرعت انها بالا است و جهت گیری که سیستم عامل ها در مورد این پروسه ها دارند، این است که کار این پروسه ها را سریعتر انجام می دهند.به این معنی که منابع کلیدی را سریع تر ازاد می کنند و در اختیار این پروسه ها قرار می دهند و این به این علت است که CPU بتواند سریع تر در اختیار پروسه های دیگر قرار گیرد. وظایف سیستم عامل: 1) رابط کاربر: در سیستم عامل های قدیمی رابط کاربر به صورت Command بود.مثلا در سیستم عامل DOS ، ما برای ارتباط با کامپیوتر از Prompt استفاده می کردیم . در سیستم عامل های جدید این ارتقا پیدا کرد و تبدیل شد به GUI .2) به اشتراک گذاشتن سخت افزار: این خصوصیت به صورت اجباری است.چون نمی توان سخت افزاری مانند CPU را به یک کاربر اختصاص داد و به کاربر دیگر اختصاص نداد.3) اجازه به اشتراک گذاشتن داده ها بین کاربران: منظور این است که به کاربر اجازه دهد که داده ها را به اشتراک بگذارد یا نه؟این عمل صرفنظر از سخت افزار است. User ها تنها به کاربران انسانی محدود نمی شوند . در این میان پروسه ها نیز اجازه استفاده از داده ها را دارند.4) زمان بندی منابع برای تخصیص به کاربران: یک سری محدودیت ها را اعمال می کند.وقتی داده ای بین چندین پروسه و برنامه به صورت اشتراکی استفاده می شود،برای عملیاتی که قرار است روی داده انجام دهند ،بین پروسه ها یک زمان بندی مشخص می کند که کدام پروسه در کدام زمان به داده دسترسی داشته باشد.کدام کاربر در چه زمانی با کدام منبع ارتباط داشته باشد.5) تسهیل در ورودی و خروجی: یعنی اینکه سیستم عامل این توانایی را داشته باشد که به طور خودکار سخت افزار ما را بشناسد یا توانایی ارتقا داشته باشد. این به این منظور است که بتوان Driver مخصوص به هر سخت افزار را به راحتی در ان نصب کرد.6) توانایی شناخت خطاها در سیستم عامل باید وجود داشته باشد: سیستم عامل بتواند خطاهایی را که در برنامه ها یا در ورودی و خروجی رخ می دهد را بشناسد و به کاربر اعلام کند و کاربر هم بتواند این نواقص را رفع کند.7) سیستم عامل باید حسابدار باشد: سیستم عامل بتواند منابع در دسترس پروسه ها را حسابرسی کند و مشخص کند که کدام پروسه از کدام منبع چند بار استفاده کرده است.ساختار PCB : ( Process Control Block) : سیستم عامل اطلاعات مربوط به پروسه ها را در یک ساختار به نام PCB نگهداری می کند.این اطلاعات مربوط به پروسه ها در سیستم عامل ها متفاوت است و در طول حیات پروسه ها این اطلاعات تغییر می کند.اطلاعاتی که در مورد پروسه ها باید داشته باشیم: 1) نام پروسه : نام پروسه منحصر به فرد است.این نام مشخص کننده ی صاحب پروسه است و مشخص می کند که این پروسه مربوط به کدام گروه است.وقتی که گروه پروسه مشخص شد این گروه مشخص می کند که پروسه به چه چیزهایی دسترسی داشته باشد و به چه چیزهایی دسترسی نداشته باشد.چه عملیاتی را انجام دهد و چه عملیاتی را انجام ندهد.2) اولویت پروسه( Priority ) : مفهوم ان به غیر از حق تقدم است.3) وضعیت پروسه (وضعیت سخت افزاری) : وقتی که پروسه ای در حال اجرا است و سیستم عامل یا کاربر بنا به دلایلی این پروسه را تعلیق می کند،به هنگامی که مشکل تعلیق برطرف شد و خواست با CPU کار کند باید بتواند به وضعیت قبلی برگردد.مثلا باید مشخص شود که این پروسه از کدام Register استفاده می کرده است.4) امار و اطلاعات و زمانبندی برای استفاده منابع : این مشخص می کند از کدام منبع چند بار استفاده شده است یا CPU چند بار به پروسه اختصاص داده شده است و پروسه چقدر برای به دست اوردن منابع انتظار کشیده است.5) مدیریت و وضعیت حافظه : مشخص می کند با استفاده از ساختار مدیریت حافظه این پروسه در کجای حافظه قرار دارد.ادرس دستیابی به پروسه در اینجا مشخص می شود.6) وضعیت ورودی و خروجی : کدام دستگاه مورد استفاده پروسه قرار گرفته است .پروسه از کدام پورت ورودی و خروجی استفاده کرده است.7) اطلاعات مربوط به مدیریت حافظه و فایل: پروسه ای که در حالت اجرا قرار گرفته است،به کدام فایل دسترسی دارد و چند بار از این فایل در پردازش خود استفاده کرده است.8) اطلاعات مربوط به حسابداری و حسابرسی : مشخص می کند پروسه از کدام منبع به چه میزان استفاده کرده است وچه میزان نیاز به منابع برای اجرا دارد.جلسه سوم: زمانبندی : زمانبندی به مجموعه ای از مکانیزم ها و سیاست ها گفته می شود که یک سیستم عامل برای اجرای فرایندها به کار می برد.زمانبند ماجولی از سیستم عامل است که انتخاب می کند کدام فرایند اجرا شود. سه نوع زمانبند داریم: 1) Long Term Schduling 2) Medium Term Schduling 3) Short Term Schduling پروسه های Bach به پروسه هایی گفته می شود که با کنترل و Data همراه هستند . این پروسه ها عموما منابع سیستم را اشغال می کنند.
زمانبند بلند مدت: برای انتخاب پروسه های Bach از صف پروسه های Bach به حالت Ready توسط سیستم عامل استفاده می شود.زمانبند میان مدت: برای انتخاب پروسه هایی که Suspend شده اند و هم چنین از حافظه هم خارج شده اند . برای برگشت این پروسه هایی که تعلیق شده اند به حالت Ready باید تمهیداتی توسط سیستم عامل انجام گیرد.زمانبند کوتاه مدت: زمانبندی است که پروسه هایی که در صف Ready هستند را برای اجرا انتخاب می کند.این پروسه ها شامل پروسه های Bach ،پروسه های تعاملی و پروسه هایی که از سطح Suspend وارد Ready شده اند هستند.Suspend Queue :پروسه هایی که در صف Suspend Queue هستند پروسه هایی هستند که سیستم عامل برای انجام رویدادی خاص انها را تعلیق کرده است و این پروسه ها منتظر اجازه ی سیستم عامل برای اینکه از حالت تعلیق بیرون بیایند هستند.این پروسه ها از حافظه خارج نمی شوند. پروسه های Interactive همان پروسه هایی هستند که ما انتظار داریم بعد از دادن Comment به سیستم، بلافاصله پاسخ ان را در Terminal مشاهده کنیم. معیار های کمی زمانبندی: 1) میزان بکارگیری پردازنده( Processor Utilization )2) توان عملیاتی( Trough put ) 3) زمان انتظار( Waiting Time ) 4) زمان پاسخگویی( Response Time ) 5) Turn Over Time میزان بکارگیری پردازنده: یعنی به چه اندازه از پردازنده استفاده شود.هر چقدر این استفاده بیشتر باشد بهتر است . به شرطی که در این زمانی که CPU در حال اجرا کردن است فقط سرویس دهی کند . نباید محاسبات اماری را انجام داد،یعنی فقط پردازش کند.Trough put : تعداد Job های تکمیل شده در واحد زمان را توان عملیاتی می گویند.در این عمل اگر Job کوچکتر باشد ،توان عملیاتی بالا می رود.در Trough put نتیجه این است که به پروسه های کوچکتر زودتر سرویس دهی شود.این معیار باید در یک بازه ی زمانی مناسب اندازه گیری شود.این بازه ی زمانی اگر بیشتر باشد، توان عملیاتی به دست امده دقیقتر است.Turn Over Time : از لحظه ای که یک پروسه به سیستم می پیوندد و خلق می شود تا زمانی که این پروسه تکمیل می شود یا به انجام می رسد و از حافظه خارج می شود می گویند.بهترین زمان این است که پروسه به حالت اجرا نزدیک باشد.Waiting Time : زمانی است که پروسه می خواهد خدماتی بگیرد ،هنوز خدماتی به ان تعلق نگرفته است.Response Time : زمانی است که اخرین کلید را در صفحه کلید فشار می دهیم تا نتیجه را در صفحه نمایش مشاهده کنیم یا اینکه از لحظه ای که یک پروسه یا فرایند درخواستی را برای اجرا می دهد تا لحظه ای که به درخواست پروسه توسط سیستم عامل توجه می شود.معیارهای کیفی زمانبندی: 1) Fairness (منصفانه) : ایا الگوریتم ما منصفانه است یا خیر ؟پروسه توسط الگوریتم به صورت منصفانه انتخاب می شود ؟ 2) قابلیت پیش بینی : وقتی پروسه ای یک زمانی به ان داده و اجرا شد، دفعه ی بعدی اجرا ایا ان زمان به پروسه اختصاص داده می شود یا نه.مثلا یک پروسه 5 نانو ثانیه طول می کشد تا در بار اول اجرا شود.دفعه ی بعدی که قرار است این پروسه اجرا شود ایا این زمان به پروسه اختصاص داده می شود یا خیر.ایا این زمان قابلیت تکرار دارد یا نه و ترافیک سیستم باعث می شود این زمان بیشتر شود یا کمتر.3) قابلیت تکرار : وقتی پروسه ای در حال اجرا است ایا دفعه ی بعدی قابلیت اجرا دارد یا نه؟تعیین می کند که اگر پروسه ای در حال اجرا باشد و اجرایش تمام شود ،ایا این امکان وجود دارد که این پروسه برای بار بعد فراخوانی شود.در شرایطی مانند اینکه جدول PCB اماده نباشد ،نمی تواند دوباره فراخوانی شود.الگوریتم های زمانبندی : 1) First Come First Serviced : یعنی پروسه ای که اول وارد صف می شود تا انتها اجرا شود و وقتی که اجرایش تمام شد پروسه ی بعدی اجرا شود. یک الگوریتم انحصاری است.یعنی پروسه ای که وارد CPU می شود باید اجرا شود.( Non Primitive )زمان پاسخگویی این الگوریتم مناسب نیست.البته برای اولین پروسه خوب است و برای پروسه های بعدی خوب نیست.زمان انتظار زیاد است.الگوریتم FCFS برای پروسه های Bach بهتر است. 2) الگوریتم Priority : الگوریتمی که مبتنی بر اولویت است.این الگوریتم انحصاری نیست.یعنی Primitive است.اولویت بالاتر باشد اجرا می شود.3) Shortest Remaining Time Next : وقتی پروسه ای وارد صف می شود ،اگر این پروسه از باقی مانده ی زمان پروسه ای که در حال اجرا است کمتر باشد این الگوریتم به این پروسه خدمات می دهد.4) Shortest Job First : هر پروسه ای کوچکتر باشد خدمات بگیرد . در این حالت Trough put بالا می رود . چون همه پروسه های کوچک اجرا می شود.هم چنین ممکن است پروسه های بزرگتر اصلا اجرا نشوند،زیرا پروسه های کوچکتر همواره اجرا می شوند.
+
نوشته شده در شنبه یکم آبان 1389ساعت 10:46 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
||||||||
+
نوشته شده در یکشنبه یازدهم مهر 1389ساعت 9:21 توسط فرزاد
|
|
|||||||||
|
|||||||||
|
|
|
||||
|
فريمورک دات نت يک
محيط اجراء
با
نام CLR)Common Language Runtime)
را ارائه که مسئوليت مديريت اجرای کد و
تامين سرويس های لازم بمنظور پياده سازی نرم افزار را برعهده دارد . CLR ،
زيرساخت مستحکمی را بمنظورايجاد انواع نرم افزار
در اختيار پياده کنندگان قرار می دهد . يک برنامه
ASP.NET ، يک برنامه فرم های ويندوز ، يک سرويس وب ، يک
برنامه مختص موبايل ، يک برنامه توزيعی و يا يک برنامه که چندين مدل از
برنامه های
فوق را با يکديگر ترکيب می نمايد ،
نمونه هائی از برنامه هائی می باشند که می توان آنها را بر اساس زيرساخت
ارائه شده
، پياده سازی نمود. CLR ، دارای مزايای متعددی
بمنظور
پياده سازی سريع و آسان نرم افزار با قابليت مهم ارتباط و يکپارچگی بين
کدهای
نوشته توسط زبانهای متفاوت برنامه نويسی
است . CLR ، ابزاری ( Engine)
است که دستورالعمل های IL)Intermediate
Language) را بعنوان ورودی اخذ و در ادامه آنها را به
دستورالعمل
های زبان ماشين ترجمه و در نهايت آنان را اجراء می نمايد. موضوع
فوق ، بدين معنی نيست که
CLR ، دستورالعمل ها را تفسير
می نمايد. عبارت فوق ، بدين دليل بيان شده است که بنوعی به اين موضوع اشاره
گردد
که CLR ، محيط لازم
بمنظور
اجرای کد IL را فراهم می
نمايد. بمنظور نيل به
اهداف مورد نظر خصوصا" : کارآمدی کدها و قابليت حمل آنان ، هسته اجرائی می
بايست،
شرايط ومحيط لازم بمنظور ايجاد کد با
لحاظ نمودن اهداف موردنظر ( کارآمد ،
قابليت حمل) را ارائه نمايد. کارآمدی
کدها ، يکی از مسائل کليدی در رابطه با محيط اجراء خواهد بود. اگر کد، با
سرعت قابل
قبول اجراء نگردد ، تمام ويژگی های ديگر موجود در سيستم ، تحت الشعاع قرار
خواهند گرفت . مروری
بر
Runtime در دات نت ، واحد
اجراء و بکارگيری ، اسمبلی (Assembly ) است .
فرآيند اجراء، همواره
با يک اسمبلی که
دارای انشعاب exe .
می باشد ، آغاز می گردد
. برنامه می تواند
از کد اشتراکی بکمک Importing اسمبلی که شامل کد
مشترک بهمراه يک مرجع صريح است ، استفاده نمايد ( برای اضافه نمودن مرجع ،
می توان
از AddReference در ويژوال استوديو دات نت استفاده
کرد ) برنامه
ها همچنين می توانند با استفاده از Assembly.Load و
يا Assembly.loadForm
، اقدام به استقرار يک اسمبلی در حافظه نمايند .
پس ازاستقرار کد در حافظه ( Loading ) ، امکان اجرای آنان فراهم می گردد . از اين مرحله به بعد ( آغاز عمليات اجراء کد ) ، تفاوت محسوسی را بين برنامه های قديمی ( قبل از دات نت ) و برنامه های جديد ( دات نت ) ، شاهد خواهيم بود . در حالت کد غيرمديريت يافته ( Unmanaged) ، کمپايلر و linker بر روی کدهای مربوطه عمليات خود را آغاز و آنها را به native code تبديل می نمايند . بدين ترتيب ،دستورالعمل ها می توانند بلافاصله اجراء گردند. لازم است به اين نکته مهم اشاره گردد که در صورتيکه قصد استفاده از برنامه نوشته شده بر روی محيط های متفاوت ( ساير پلات فرم ها ) وجود داشته باشد ، می بايست برای هر يک نسخه ای جداگانه را کمپايل کرد. در برخی حالات ، امکان ايجاد و ترجمه نسخه های متعدد بمنظور اجراء بر روی محيط های متفاوت ، امری مطلوب بنظر نمی رسد ، در چنين مواردی سعی می گردد ، صرفا" يک نسخه ارائه گردد. نسخه فوق ، بگونه ای طراحی و پياده سازی می گردد که بتواند با محيط های متفاوت سازگار باشد . بدين ترتيب ، امکان اجراء نرم افزارهای توليدی در محيط های متفاوت ، فراهم خواهد شد . وجود پتانسيل در بطن يک دستگاه سخت افزاری يک موضوع است و ارائه برنامه ای که زمينه بهره برداری از پتانسيل های مربوطه را فراهم و برنامه ای که از پتانسيل های دستگاه فوق ، در نهايت استفاده می نمايد ، موضوعات ديگری است . مثلا" امروز ما کمتر شاهد ارائه نرم افزار از طرف شرکت های توليد کننده ای می باشيم که تاکيد و اصرار بر استفاده از يک محيط سخت افزاری نظير وجود يک " شتاب دهنده گرافيک " ، داشته باشند . در چنين موارد علاوه بر اينکه توليد کننده " شتاب دهنده گرافيک " ، می بايست برای هر " کارت شتاب دهنده گرافيک " ، برنامه ای خاص را ارائه نمايد ، بلکه همچنين پياده کنندگان می بايست از برناهه های مجزائی برای هر يک از کارت ها ی عرضه شده ، استفاده نمايند . " شتاب دهنده گرافيک " ، صرفا" يک نمونه در اين رابطه بوده و می توان به مواردی ديگر نظير : disk cache,memory cache ، شبکه های با سرعت بالا ، سيستم های مبتنی بر چندين پردازنده و سخت افزارهای خاص بمنظور پردازش تصاوير، اشاره کرد . يکی از اولين مراحلی که CLR در ارتباط با اجراء يک برنامه انجام می دهد ، بررسی متدی است که می بايست اجراء گردد ( آيا به native code ،تبديل شده است ؟) . در صورتيکه متد به native code ، تبديل نشده باشد ، کد موجود در متد بصورت JITd) Just - In - time compild) خواهد بود . تاخير در ترجمه يک متد ، دارای دو مزيت است :
فرآيند استقرار يک متد در حافطه ( Loading ) و ترجمه آن ، در صورت نياز تکرار تا زمانيکه تمام متدها ی موجود در برنامه ترجمه و يا برنامه متوقف گردد . شروع يک متد
با استفاده از اطلاعات فوق ،
CLR
، قادر به ايجاد يک abstraction از
چيزی خواهد بود که native stack frame است. عموما"
هر
پردازنده و يا ماشين يک stack frame را شکل که شامل
آرگومانها ( پارامترها ) و يا مرجع به
آرگومانها ی مربوط به متد است
. در وضعيتی مشابه ،
متغيرهای برگردانده شده در stack frame بر اساس
فراخوانی که وابسته به يک پردازنده و يا ماشين خاص است ، ذخيره می گردند.
اولويت پارامترهای ورودی و خروجی
در رابطه با يک ماشين خاص ، مشخص می گردد . با توجه به اينکه تمام اطلاعات
مورد نياز برای هر
متد در دسترس است ، CLR
، قادر به تشخيص وضعيت
مورد نظر
stack frame ، در زمان اجراء است .
+
نوشته شده در چهارشنبه سوم شهریور 1389ساعت 10:1 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
||||
|
در چندین ماه گذشته پیشرفت های جدیدی در طراحی پروسسورها، بویژه از طرف
شرکت AMD حاصل شد. این شرکت علاوه بر اینکه یک cpu با طراحی کاملا ْ۶۴
بیتی عرضه کرد که باعث برتری یافتن این شرکت در بازار کامپیوترهای رومیزی
پیشرفته گردید، همچنین در حذف کنترل کنندههای حافظه (MCH) پیشقدم شد که
در عملکرد Athlon ۶۴ و چیپهای optron یک پیشرفت قابل ملاحظه نسبت به
پروسسورهای intel به حساب میآید. اینتل به طور متقابل پروسسور سازگار ۶۴
بیتی را عرضه نمود. به تازگی نیز هر دو شرکت پردازشگرهای دوهسته ای را
عرضه نمودهاند، این پروسسورها بهتر از آن چیزی که شما انتظار دارید کار
میکنند. پروسسورهای اینتل و AMD هر دو دارای دو هسته پروسسور، در حال کار
در یک قالب میباشند که هر یک از هستهها بصورت مستقل توابع و پردازشهای
داده را انجام میدهند (در مورد اینتل این مورد کامل تر است) و هر دو این
هستهها توسط نرم افزار سیستم عامل هم آهنگ می گردند.
در این مقاله سعی شده تا تکنولوژی که در این دو محصول استفاده شده و مقدار افزایش کارایی که شما می توانید از آنها انتظار داشته باشید بررسی گردد. در حال حاضر AMD فقط پروسورهای کلاس سرور opteron با دو هسته را بطور کامل به بازار عرضه کرده و بزودی Athlon ۶۴*۲ برای کامپیوترهای رومیزی را نیز به بازار عرضه میکند. در طرف مقابل اینتل در حال حاضر پنتیوم Extreme Edition ۸۴۰ رومیزی با دو هسته را به بازار عرضه نموده در حالی که خطهای تولید Pentium D و dual xeons هنوز متوقف نشده اند. با توجه به اینکه پروسسورهای دو هستهای در اصل یک سیستم چند پروسسوره که در یک قالب قرار گرفته اند، می باشد. اجازه بدهید اینک چندین تکنولوژی که در سیستم های چند پردازشگر استفاده می شود را مورد بررسی قرار دهیم. چند پردازشگرهای متقارن ( SMP (symmetric Multi processing Hyperthreading دو چیپ در یک قالب … چرا؟ دسترسی AMD به تکنولوژی دو هسته ای فرم فاکتور فعلی پردازشگر ۶۴ اتلن به طراحی دو هسته ای خیلی نزدیک
میباشد. وجود کنترل کنندههای Hypertransport و کنترل کننده حافظه درقالب
چیپهای فعلی ۶۴ اتلن به معنی آنست که اضافه نمودن دومین هسته در داخل چیپ
چندان مشکل نمیباشد. تعداد ترانزیستورهای پردازشگرهای اتلن ۶۴*۲ بیش از دو برابر
پردازشگرهای اتلن ۶۴ میباشد. با توجه به اینکه در ساختن CPU های جدید از
روش ۹۰nm استفاده می شود سایز کل چیپ کمی افزایش پیدا کرده و ولتاژ عملکرد
۱.۳۵ تا ۱.۴ میباشد و گرمای خروجی به بیش از ۱۱۰w کمی افزایش مییابد. دسترسی اینتل به پردازشگر دو هسته ای یکی از بزرگترین معایب طراحی اینتل نسبت به AMD که سوکتهای ۹۳۹ را برای طراحی پردازشگرهای دو هستهای خود حفظ نمود آن است که راه حل دو هستهای اینتل نیاز به یک جفت چیپ ست جدید بنامهای ۹۵۵X و ۹۴۵P دارد. شرکت nvidia اخیراً ویرایش اینتل SLI که پروسسورهای دو هستهای را پشتیبانی میکند را به بازار عرضه کرده است که این مورد هم زمان بیشتری را مصرف و هم هزینهای اضافی برای مصرف کننده در پی دارد.
+
نوشته شده در شنبه دوم مرداد 1389ساعت 10:29 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
|||||
|
فایل dll یک کتابخونه ازData و Code هست که می تونه در یک زمان توسط چندینApplication مورد استفاده قرار بگیره . برای مثال در سیستم عامل Windows فایل Comdlg32.dll عملکرد های مربوط به Dialog Box ها رو انجام میده در نتیجه هر Application ی در ویندوز می تونه از توابعی که توی این dll هستند موقع باز کردن Dialog Box استفاده کنه . مزیت اصلی فایل های dll در استفاده مجدد و همینطور استفاده بهتر از حافظه سیستم هست .
در كامپيوتر، DLL که مخفف dynamic link library است مجموعه اي از برنامه هاي کوچک است، که هر کدام مي تواند توسط يک برنامه بزرگتر که در کامپيوتر در حال اجرا است احضار شود. برنامه کوچکي که به برنامه بزرگتر اجازه برقراري ارتباط با يک وسيله ويژه مثل چاپگر (پرينتر) و يا اسکنر را ميدهد همواره به عنوان يک برنامه DLL بسته بندي مي شود( معمولا به " فايل DLL " اشاره مي شود). مزيت فايل هاي DLL اين است که، از آنجا که آنها در حافظه كامپيوتر (RAM) با هم به همراه برنامه اصلي بارگذاري نــمي شوند، فضا در RAM صرفه جويي مي شود. وقتي که يک فايل DLL نياز است، بعد بارگذاري و اجرا مي شود. به طور مثال تا مادامي که يک کاربر microsoft word ( يک برنامه پردازش کلمه که توسط شرکت microsoft به وجود امده است ) دارد يک سند (Document) را ويرايش مي کند، فايل DLL چاپگر نياز نيست تا در RAM بارگذاري شود. اگر کاربر تصميم به پرينت گرفتن آن سند بگيرد، سپس برنامه کاربردي Word باعث مي شود تا فايل DLL چاپگر بارگذاري و اجرا شود. اين ويژگي چندين مزيت دارد : اول اينكه چون فايل هاي DLL فقط در هنگام نياز بارگذاري مي شوند ، وقتي مورد استفاده نباشند ، حافظه اي رو مورد مصرف قرار نمي دهند . دوم اينكه چون فايل DLL فايلي جداگانه هست ، برنامه نويسان مي توانند بدون تاثير روي برنامه فراخوان يا فايلهاي DLL ديگر ، اصلاحات يا تغييراتي را در يك واحد ( فايل DLL ) انجام دهند . به يک فايل DLL اغلب پسوند نام فايل ".dll" داده مي شود. فايل هاي DLL به صورت پويايي به برنامه اي که از آنها در طول زمان اجراي برنامه استفاده مي کند متصل هستند تا اينکه با برنامه اصلي گردآوري شوند. مجموعه چنين فايل هاي (يا DLL ) تقريبا قابل مقايسه با کتابخانه روال هايي هستند (library routines) که با زبان هاي برنامه ريزي از قبيل ++C و C فراهم مي شوند. ويژگي خاصي در مايكروسافت ويندوز و سيستم عامل os/2 مي باشد واين امكان را فراهم مي سازد تا روالهاي اجرايي به عنوان فايل هاي جداگانه اي با پسوند dll ذخيره شوند. و فقط هنگام نياز برنامه اي فراخواننده آنها، بارگذاري شوند. اين ويژگي چندين مزيت دارد: اول اينكه چون فايل هاي dll فقط در هنگام نياز بارگذاري مي شوند، وقتي مورد استفاده نباشند، حافظه اي رو مورد مصرف قرار نمي دهند. دوم اينكه چون فايل dll فايلي جداگانه هست، برنامه نويسان مي توانند بدون تاثير روي برنامه فراخوان يا فايلهاي dll ديگر، اصلاحات يا تغييراتي را در يک واحد (فايل dll) انجام دهند.
قبلا به این موضوع اشاره شد که فایهای DLL آن دست از برنامههایی هستند که یکبار نوشته میشوند و در پروژههای بعدی بکرات میتواند از آنها استفاده برد. چیزی که هسته ویندور را تشکیل میدهد اینگونه فایلها هستند. علاوه بر آن تکنیکهایی وجود دارد که شما را قادر میسازد تا برنامههایی بنویسید که قادرند خود را بروز برسانند و یا خود ترمیم باشند. بهتر از آن اینکه برنامهای بنویسید که با الحاق اینگونه فایلها بدان قدرت و امکانات جدید بدان افزود. همانند نرمافزارهای رایج از جمله Winamp. کتابخانههای پویای قابل اتصال (DLL) چه هستند؟یک DLL مجموعهای از توابع و پروسههایی است که میتواند از برنامه یا DLLهای نظیر خود فراخوانده شود. استفاده از اینگونه کتابخانههای دو مزیت اصلی دارد: 1- امکان به اشتراک گذاری از کد را فراهم میسازند. یک DLL میتواند مورد استفاده خیلی از برنامههای قرار گیرد. بعنوان مثال کتابخانه Win32 API نمونهای از این سری فایلها است. بعلاوه از زمانی که پروسههای گوناگون قادر به فراخوانی یک DLL واحد هستند امکان به اشتراک گذاری کدها و روتینها فراهم آمده است. یک فایل DLL تنها یکبار به درون حافظه لود میشود و بارها توسط پروسههای گوناگونی مورد استفاده قرار میگیرد و این یعنی مدیریت حافظه بهتر. 2- مزیت دیگر امکان نوشتن برنامهها بصورت اجزای منفصل است که این اجزا خود قابل تعویض با نگارشهای جدیدتر جهت توسعه نرمافزار خواهند بود بدون اینکه خطی از کد برنامه اصلی دگرگون شود.
و اما ساختار DLL فایلهای DLL حاوی یک مدخل شروع انتخابی (optional entry point) و پایانی هستند که در زمانی که توسط برنامههای دیگر به درون حافظه لود یا آنلود میشوند قابل اجرا است. ویندوز این پروسه را در زمانی که یک برنامه DLLها را بدرون حافظه لود یا آنلود میکند اجرا میکند. این دو نوع پروسه به DLL این امکان را میدهد که یک سری از مقدمات را پیش از استفاده مهیا کند یا بعد از استفاده پاکسازی نماید کاربرد dll در برنامه نویسی : با استفاده از این فایل های dll میشه برنامه هارو به صورت کاملا Modular و با مولفه های قابل مدیریت نوشت دلیلشم اینه که Module ها به صورت جدا از هم کار می کنند و هر Moduleی که نصب شده باشه در زمان اجرا توی حافظه Load میشه و از یه Module فقط زمانی استفاده میشه که به اون Module احتیاج باشه . مزیت دیگه استفاده از Module اینه کهUpdate برنامه خیلی راحت تر انجام میشه و فقط Module مورد نظر Update میشه بدون اثر گذاشتن روی سایر Module ها .
فایل های زیر در سیستم عامل Windows به عنوان DLL مورد استفاده قرار می گیرند . ActiveX Controls (.ocx) files مثه کنترل Calendar در ویندوز . Control Panel (.cpl) files مثه همه Item های موجود در کنترل پنل Windows Device Driver Controls (.drv) files مثه یک فایل Driver برای یک Printe
برنامه نویسی DLL توی VStudio.Net خداییش کار خیلی سختیه ... خوشبختانه خودWindows مجموعه کاملی از DLL ها رو در اختیار برنامه نویس قرار میده .در نتیجه خیلی به ندرت پیش میاد که بخوایم DLL های مورد نیازمون رو خودمون بنویسیم ... این کار بیشتر توی پروژه های Game Programing انجام میشه
+
نوشته شده در سه شنبه پانزدهم تیر 1389ساعت 22:21 توسط فرزاد
|
|
||||||
|
||||||
|
|
|
||||
|
پروتكل RIP RIP از سه نوع تايمر مختلف برای تنظيم كارآئی خود استفاده می نمايد .
پروتكل IGRP
برای كنترل كارآئی ، پروتكل IGRP از تايمرهای مختلف زير با مقادير پيش فرض استفاده می نمايد :
پروتكل های روتينگ تركيبی و يا EIGRP
+
نوشته شده در یکشنبه نهم خرداد 1389ساعت 15:49 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
||||
|
حدود 33 سال از به وجود
آمدن اينترنت ميگذرد و از سال 1989 كه وب پديد آمد، بيشتر مردم از آن استفاده ميكنند
و بهصورت بخشي از زندگي ايشان در آمده است. شايد علت اين استفاده زياد از
اينترنت، استاندارد باز آن بوده است كه امكان ارتباط كامپيوترهاي مختلف را با
يكديگر مهيا ميسازد. با استفاده از اينترنت ميتوانيد از هر كامپيوتري كه بهآن
متصل است، ايميل بفرستيد و شخصي در آن طرف دنيا با كامپيوتري كاملاً متفاوت با
كامپيوتر شما، آن ايميل را به راحتي بخواند و به شما ايميل ديگري بفرستد.
امروزه تقريباً تمامي شركتها و سازمانهاي بزرگ، براي تبادل اطلاعات و فرستادن ايميل بهمشتريان خود از اينترنت استفاده ميكنند. پرسش اين است كه آيا بهراستي امكاناتي كه اينترنت در اختيار ما قرار ميدهد، فقط در فرستادن ايميل و داشتن وبسايت خلاصه ميشود؟ آيا اينترنت امكان استفاده از منابع سختافزاري سيستمهاي ديگر را نيز به ما ميدهد؟ پس از اينترنت چه ابزار يا بستري خواهد آمد؟ امروزه فناوري جديدي به نام Grid به عرصه ارتباطات قدم نهاده است كه براساس آن با دانلودكردن يك محافظ نمايشگر مخصوص ميتوانيم بهكامپيوترهاي شخصي خود اجازه دهيم كه وقتي از آن استفاده نميكنيم، به شبكه جهاني متصل شوند و به سيستمهاي بزرگ تحقيقاتي اجازه دهند از منابع آزاد و بلااستفاده سيستم ما استفاده نمايد. كامپيوترهاي امروزي مانند مغز انسان معمولا از بخش كوچكي از تواناييهاي خود استفاده ميكنند و اغلب به صورت غيرفعالند و منتظر اطلاعات ورودي ميمانند. تصور كنيد كه اگر از منابع سختافزاري اين همه كامپيوتر غيرفعال استفاده شود و همه در يك كامپيوتر جمع شود، چه دستگاه پرقدرتي خواهيم داشت. Grid Computing با كمك به اينترنت زمينهاي را فراهم آورده است كه بتوان با استفاده از آن، از منابع سختافزاري سيستمهاي ديگر نيز استفاده نماييم. ممكن است Grid براي افراد مختلف معاني متفاوتي داشته باشد، اما اگر بخواهيم تعريف سادهاي از آن داشته باشيم، ميتوانيم بگوييم Grid Computing در واقع بهشما اجازه ميدهد با استفاده از منابع سيستمهاي متصل به شبكه و ايجاد يك منبع بزرگ از سرويسها و امكانات اين سيستمها، مركزي بزرگ و قدرتمند به وجود آوريم كه توانايي انجامدادن عمليات بسيار پيچيدهاي را داشته باشد كه يك سيستم بهتنهايي نميتواند انجام دهد. بهنحوي كه از ديد استفادهكنندگان اين سيستمهاي بزرگ، اين عمليات تنها از طريق يك سيستم انجام ميشود. Grid Computing در حقيقت نسل جديدي از شبكههاي توزيع يافته است و همانند اينترنت به كاربران خود اجازه ميدهد فايلها را به اشتراك بگذارند. بهعلاوه، منابع مشتركي از اطلاعات را براي استفادهكنندگان فراهم ميكند. با استفاده از اين سيستمها ميتوان منابع كامپيوترهاي ناهمگون را بهاشتراك گذاشت. هدف اصلي Grid استفاده از اين منابع مشترك مانند قدرت پردازنده، پهناي باند، پايگاه اطلاعاتي و در اختيار گذاردن آن براي كامپيوتر مركزي است. انواع Grid سيستمهاي Grid با توجه به نيازهاي كاربران ميتوانند در انواع مختلف مورداستفاده قرار گيرند. اغلب اين سيستمها بر اساس نوع كاري كه انجام ميدهند، طبقه بندي ميشوند. از سه نوع اصلي اين سيستم ميتوان از Gridهاي اطلاعاتي، Gridهاي جوينده منابع و Gridهاي محاسباتي نام برد. Gridهاي اطلاعاتي يا Data Grid موظفند اطلاعات را ذخيره كنند و آنها را در اختيار كاربران قرار دهند. كاربران اين سيستمها بدون آنكه از موقعيت جغرافيايي و مكاني اين اطلاعات آگاه باشند، به اطلاعات دسترسي دارند. مثلاً تصور كنيد كه دو دانشگاه در دو سوي دنيا يكي در ايران و ديگري در انگلستان روي يك مطلب علميمشترك تحقيق ميكنند و هر يك از آنها اطلاعات خاص خود را ذخيره ميكند و ميخواهد دانشگاه ديگر نيز به برخي از اين اطلاعات (نه تماميآن) دسترسي داشته باشد. اين دانشگاهها ميتوانند از يك Data Grid استفاده كنند و اطلاعات خود را با ضريب امنيتي بالايي با هم بهاشتراك بگذارند. در اين نوع Grid دستگاههاي متصل بهسيستم نياز بهقدرت زياد ندارند و فقط مسئول به اشتراك گذاشتن اطلاعات هستند. از طرف ديگر Grid هاي محاسباتي يا Computational Grid از آن جا كه نياز زيادي به قدرت پردازندهها دارند، بايد از ماشينهايي با قدرت بسيار بالا استفاده نمايند. يكي ديگر از انواع Gridها، سيستمهاي جوينده منابع يا Scavenging Grid است. اين سيستمها از تعداد زيادي كامپيوتر شخصي استفاده ميكنند و بهصورت مداوم بهدنبال ظرفيتها، منابع آزاد و چرخه پردازنده (CPU cycle) كامپيوترهاي متصل به Grid هستند و از اين منابع استفاده مينمايند. البته صاحبان اين كامپيوترهاي شخصي بايد قبلاً اجازه استفاده از منابع بدون استفاده خود را بدهند. اهميت Grid Computing تقريبا در همه سازمانها و شركتهاي بزرگ تعدادي كامپيوتر بدون استفاده وجود دارد. مثلاً سرورهاي يونيكس از تقريباً ده تا بيست درصد از ظرفيت حقيقي خود استفاده ميكنند و كامپيوترهاي شخصي حدوداً از 95 درصد از ظرفيت خود اصلاً استفاده نميكنند. با استفاده از Grid Computing در يك سازمان يا شركت بزرگ ميتوان از منابع بلااستفاده كامپيوترهاي سازمان كمال استفاده را برد و سرعت پردازش اطلاعات در سيستمهايي كه با كمبود حافظه مواجهند را جبران نمود. از طرف ديگر، سرعت نرمافزارهايي كه از اين منبع بزرگ سختافزاري استفاده ميكنند، بسيار بالاتر خواهد بود و در نتيجه ميتوانيم به فكر درست كردن نرمافزارهايي با قابليتهاي بالاتر باشيم و منابع بيشتري را در اختيار استفادهكنندگان قرار دهيم. Grid Computing ميتواند مزاياي زيادي براي مديران و برنامهنويسان داشته باشد. مثلاً با آن ميتوان برنامههايي كه نياز بهحافظه زيادي دارند را اجرا نمود و به اطلاعات، دسترسي آسانتري پيدا كرد. اصولا ًGrid Computingميتواند بهسازمانها و شركتهاي بزرگي كه سرمايه هنگفتي را در IT هزينه كردهاند، كمك كند از سيستمهاي خود حداكثر استفاده را ببرند. فناوريهاي Grid در واقع ميتوانند از منابع و سيستمهاي غيرمتمركز پشتيباني كنند و امكان ارتباط سيستمها را با هم فراهم سازند. وقتي براي اولين بار فناوري Grid ابداع شد، هدف آن تنها بهاشتراك گذاشتن منابع سيستم و در اختيارداشتن سيستميقدرتمند بود و بهطور كلي بيشتر در اختيار مؤسسات تحقيقاتي قرار داشت. اما امروزه از Grid توقع بيشتري ميرود و اهميت بيشتري پيدا كرده است؛ بهويژه در تجارت الكترونيك و سيستمهاي تجاري غيرمتمركز و توزيعيافته. به عنوان نمونه، مدل تجارت الكترونيك B2B را در نظر بگيريد كه دو مؤسسه تجاري اطلاعات خود را از طريق اينترنت با هم مبادله ميكنند. Grid نيز ميتواند كاري مشابه را انجام دهد و دو يا چند سيستم تجاري را بههم مرتبط سازد. بهطوري كه بتوانند اطلاعات خود را بهاشتراك بگذارند. فناوري Grid همچنين ميتواند راهحل مناسبي براي افزايش دسترسي، قابليت اطمينان و امنيت سيستمهاي غيرمتمركز نيز باشد.
+
نوشته شده در پنجشنبه ششم خرداد 1389ساعت 17:52 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
||||
|
کسب رتبه های همزمان 2 - 3 - 6 - 20 - 20 - 39 - 50 به ترتیب در گرایش های نفت - رسوب - چینه شناسی - تکتونیک - و رتبه 44 درمهندسی نفت گرایش اکتشاف در آزمون سراسری کارشناسی ارشد توسط ابراهیم سفیداری (سپی داری) را به ایشان ، خانواده محترم ، آشنایان ، دوستان و به اهالی محترم شهرستان مریوان تبریک می گوییم.
+
نوشته شده در شنبه یکم خرداد 1389ساعت 10:22 توسط فرزاد
|
|
|||||
|
|||||
|
|
|
||||
|
در پروتكل هاي روتينگ Distance vector ، بهترين مسير به يك شبكه راه دور بر اساس مسافت تعيين مي شود . هر مرتبه كه يك بسته اطلاعاتي از يك روتر عبور مي يابد به آن hop گفته مي شود. مسيري كه داراي تعداد hop كمتري به شبكه مورد نظر باشد به عنوان بهترين مسير انتخاب خواهد شد . در واقع vector ، نشاندهنده مسير و يا جهت رسيدن به شبكه راه دور را مشخص مي نمايد . پروتكل هاي RIP ( برگرفته شده از Routing Information Protocol ) و IGRP ( برگرفته شده از Interior Gateway Routing Protocol ) دو نمونه متداول از پروتكل هاي روتينگ Distance-vector مي باشند . الگوريتم
هاي روتينگ Distance-Vector ، اطلاعات جداول روتينگ را بطور كامل براي
روترهاي همسايه ارسال تا آنها در ادامه اطلاعات دريافتي را با اطلاعات
موجود در جداول روتينگ خود تركيب و دانش خود را در خصوص ارتباطات بين شبكه
اي كامل نمايند .به روش فوق ، روتينگ مبتني بر شايعه ( rumor )
گفته مي شود چراكه روتر ، بهنگام سازي جدول روتينگ خود را بر اساس اطلاعات
دريافتي از روتر همسايه انجام مي دهد. در اين روش روتر به اطلاعات
دريافتي در خصوص شبكه هاي راه دور اعتماد مي نمايد بدون اين كه خود
مستقيما" به اين نتايج رسيده باشد .
همانگونه كه اشاره گرديد ، RIP يك نمونه از پروتكل هاي روتينگ Distance-vector است كه براي تشخيص بهترين مسير به يك شبكه صرفا" از تعداد hop استفاده مي نمايد . در صورتي كه RIP بيش از يك لينك را به يك شبكه مشابه و با تعداد hop برابر پيدا نمايد ، بطور اتوماتيك از load balancing گردشي بر روي هر يك از لينك ها استفاده مي نمايد . پروتكل RIP قادر به انجام load balancing بر روي حداكثر شش خط با cost يكسان است . نحوه آغاز به كار يك پروتكل Distance-vector براي آشنائي با پروتكل هاي روتينگ Distance-vector
لازم است در ابتدا با نحوه عملكرد آنها پس از آغاز فعاليت آشنا شويم .
در شكل 1 ، وضعيت جدول روتينگ چهار روتر پس از راه اندازي نشان داده شده
است . در جداول فوق صرفا" اطلاعات مربوط به شبكه هائي كه مستقيما" به هر
يك از روترها متصل شده اند ، ذخيره شده است .
بديهي است مدت
زماني كه يك شبكه به همگرائي مي رسد بسيار حائز اهميت بوده و كند بودن اين
فرآيند مي تواند پيامدهاي نامطلوبي را براي شبكه به دنبال داشته باشد .
يكي از مسائل در ارتباط با پروتكل RIP ، كند بودن زمان همگرائي آن است . حلقه هاي روتينگ ( Routing loops ) پروتكل
هاي روتينگ Distance-Vector تغييرات ايجاد شده در ارتباطات بين شبكه اي
را با انتشار مستمر اطلاعات بهنگام شده روتينگ به تمامي اينترفيس هاي فعال
انجام مي دهند .
زماني كه شبكه شماره 5 دچار مشكل گردد ، روتر E اين موضوع را به اطلاع روتر C مي رساند . اين كار باعث مي شود كه روتر C عمليات روتينگ به شبكه شماره 5 از طريق روتر E را متوقف نمايد . روترهاي B، A و D نسبت به بروز مشكل براي شبكه شماره 5 آگاهي نداشته و همچنان اقدام به ارسال اطلاعات بهنگام مي نمايند .سرانجام روتر C اطلاعات بهنگام شده خود را ارسال و باعث مي گردد كه روتر B روتينگ به شبكه شماره 5 را متوقف نمايد . علي رغم اطلاع به روتر B ، روترهاي A و D هنوز به دليل عدم دريافت اطلاعات بهنگام شده از اين موضوع آگاهي نداشته و از نظر آنها شبكه شماره 5 همچنان از طريق روتر B با متريك شماره 3 دردسترس است . شمارش نامحدود به
"حلقه هاي روتينگ " كه در بخش قبل تشريح گرديد ، " شمارش نامحدود " نيز
گفته مي شود و علت اصلي بروز اينچنين مسائلي ، شايعات بياساس و اطلاعات
نادرستي است كه در شبكه توزيع شده است . بدون وجود يك سيستم كنترلي ،
تعداد hop هر مرتبه كه يك بسته اطلاعاتي از يك
روتر عبور مي يابد ، افزايش خواهد يافت . سرعت كند همگرائي شبكه در
الگوريتم هاي روتينگ يكي از دلايل اصلي بروز اينچنين مشكلاتي در شبكه است
. حداكثر تعداد hop يكي از روش هاي حل مشكل "شمارش نامحدود " ، تعريف يك حداكثر براي تعداد hop است . پروتكل هاي روتينگ Distance-Vector نظير RIP صرفا" امكان افزايش تعداد hop را تا 15 فراهم مي نمايند . بنابراين هر چيزي كه نيازمند 16 hop
باشد به منزله غيرقابل دسترس بودن تلقي مي گردد . به عبارت ديگر ، در
مثال ارائه شده در بخش قبل ( شكل شماره 3 ) ، پس از ايجاد يك حلقه با
پانزده hop ، اين موضوع به اثبات مي رسد كه شبكه شماره 5 غيرفعال است . Split Horizonيكي
ديگر از راه حل هاي برخورد با مشكل حلقه هاي روتينگ ، Split Horizon است .
در اين روش كه كاهش اطلاعات نادرست و حجم عملياتي اضافه روتينگ در يك شبكه
Distance-Vector را به دنبال دارد از اين اصل تبعيت مي شود كه اطلاعات نمي
توانند در مسيري كه از طريق آن دريافت شده اند مجددا" ارسال گردند . به
عبارت ديگر ، پروتكل روتينگ ، اينترفيسي را كه از طريق آن بسته اطلاعاتي
را دريافت كرده است بخاطر سپرده و هرگز از اينترفيس فوق براي ارسال مجدد
آن استفاده نخواهد كرد . route poisoning
+
نوشته شده در دوشنبه بیستم اردیبهشت 1389ساعت 20:3 توسط فرزاد
|
|
|||||
|
|||||