منو
 صفحه های تصادفی
شکر الله
تار نوری
ابو دجانه انصاری
قطع توپ در فوتبال
صرافی
خوشه سنگ
ناوبر و عکاسی هوایی
تعداد شهدای اهل بیت علیهم السلام در کربلا
طبقه بندی سنگهای رسوبی توسط گرابو
بوفالو
 کاربر Online
590 کاربر online

کامپیوترهای همه منظوره

چاپ
مهندسی و فن‌آوری > مهندسی > مهندسی رایانه
علوم ریاضی > علو م رایانه > نرم افزار




کامپیوترهای همه منظوره

img/daneshnameh_up/1/17/compics00159.jpg

طبق تعریف یک رایانه همه منظوره توانایی حل هر مسئله ای که قابل بیان به صورت یک برنامه کامپیوتری و قابل اجرا تحت محدودیت های عملی مثل ظرفیت ذخیره کامپیوتر، اندازه برنامه، و سرعت اجرا باشد را دارا است. در سال 1934 Alan Turing ثابت کرد که یک رایانه همه منظوره به شرط داشتن برنامه صحیح توانایی شبیه سازی رفتار هر کامپیوتری را دارد. این اثبات ریاضی در آن زمان کاملاً نظری بود چون هیچ رایانه همه منظوره ای وجود نداشت. نتایج این اثبات خیلی عمیق است، برای مثال هر رایانه همه منظوره از لحاظ نظری توانایی شبیه سازی، هرچند به کندی، هر رایانه همه منظوره ای که ممکن است در آینده ساخته شود را داراست.
کامپیوترهای همه کاره Turing-complete نامیده می شوند و این درجه بندی آستانه قابلیت های تعریف کننده کامپیوترهای جدید را معین می کند، به هر حال، این تعریف مشکل ساز است. Turing-complete بودن چندین ماشین محاسبه با طراحی ساده ثابت شده است. Z3 که توسط Konrad Zuse در سال 1941 ساخته شد اولین رایانه Turing-complete است (اثبات در سال 1998 داده شد). در حالی که Z3 و شاید دیگر دستگاه های اولیه از نظر تئوری Turing-complete هستند به عنوان کامپیوترهای همه منظوره بی کاربرد می باشند.
کامپیوترهای جدید فقط از لحاظ نظری همه کاره نیستند بلکه از نظر علمی هم ابزاری همه کاره هستند. رایانه همه کاره، الکترونیکی، دجیتال و مدرن توسط اشخاص زیاد، و طی مدت طولانی از اواسط دهه ی 1930 تا اواخر دهه ی 1940 ساخته شد، طی این مدت ماشین های آزمایشی بسیاری که شاید Turing-complete بودند ساخته شد ( ABC ایناک Harvard Mk I Colossus و غیره. تاریخ سخت افزار محاسبه را ببینید). در زمانی هم این ماشین ها داعیه اولین رایانه بودن را داشته اند اما به عنوان ماشین های همه منظوره کاربرد محدود داشته و طرح شان منسوخ شده است.


کامپیوترهای برنامه دار



اواخر دهه ی 1940 اولین کامپیوترهای برنامه دار The first draft را ببینید) در دانشکده مهندسی برق دانشگاه پنسیلوانیا طراحی شد. قرار بود این طرح مشکلاتی که حین کار با ایناک بوجود آمد را حل کند. این طرح به نام طراح خود معماری Von Neumann نام گرفت هر چند در اصل دیگران آنرا طراحی کرده بودند. این طرح قرار بود در ماشینی بنام EDVAC اجرا شود اما این ماشین تا سال 1953 آماده کار نشد. اولین پنج رایانه برنامه داری که معماری von Neumann را اجرا کردند به ترتیب عبارتند از:


  • Small-Scale Experimental Machine یا Manchester Mk I Prototype Baby دانشگاه منچستر انگلیس. 21 ژوئن 1948
  • EDSAC. دانشگاه کمبریج.انگلیس. 6 می 1949
  • BINAC ایالات متحده آمریکا ،آوریل 1949 یا آگوست 1949.
  • CSIRAC یا CSIR Mk 1 استرالیا نوامبر
  • SEAC امریکا، 9 می1950

طرح نگهداری برنامه در رایانه که توسط معاری Von Neumann تعریف شد سرانجام کامپیوترها را قادر ساخت پتانسیل همه کاره بودن خود را به کار بگیرند. با ذخیره برنامه در خود رایانه امکان "جهش" از یک دستور به دستور دیگر بسته به نتیجه ی اجرای یک بخش از برنامه، فراهم شد. این بخش برنامه معمولاً از مقادیر محاسبه شده در برنامه داده هایی را گرفته و برنامه را به شدت پویا می ساخت. این طرح همچنین قابلیت بازنویسی برنامه در حین اجرا را دارا بود – یک ویژگی قدرتمند که باید به دقت مورد استفاده قرار بگیرد. برای سبک کار کامپیوترهای جدید این ویژگی ها حیاتی هستند. به طور دقیق، بیشتر کامپیوترهای جدید، ماشین های محاسبه ی همه کاره، برنامه دار، الکترونیک و باینری هستند.


کامپیوترهای چند منظوره


کامپیوترهای چند کاره که در دهه ی 1930 و اوایل دهه ی 1940 رایج بودند به طور کامل توسط کامپیوترهای همه کاره جایگزین نشده اند. با کاهش قیمت و اندازه ی کامپیوترها و افزایش قابلیت های آنها، استفاده از آنها برای کاربردهای چند منظوره بهینه شده است. بسیاری از دستگاه های خانگی و صنعتی مانند: تلفن های همراه ، ویدئو رکوردرها سیستم احتراق اتومبیل ها و غیره دارای کامپیوترهای چند کاره هستند. بعضی از این کامپیوترها Turing-complete هستند بازی های ویدئویی، PDA اما بسیاری از آنها یک بار در کارخانه برنامه ریزی و بعد از آن به ندرت برنامه ریزی می شوند. برنامه ای که این دستگاه ها اجرا می کنند اغلب در حافظه ی فقط خواندنی (تراشه Rom) قرار دارد که برای تغییر عملکرد ماشین باید تعویض شود. کامپیوترهای تعبیه شده در دیگر دستگاه ها معمولاً ریز کنترل گرها یا کامپیوترهای تعبیه شده نامیده می شود.


کامپیوترهای تک منظوره


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


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



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

کاربردهای رایانه


اولین کامپیوترهای دیجیتال و الکترونیکی اولیه به طور عمده فقط محاسبات علمی را که اغلب برای اهداف نظامی بود انجام می دادند.انیاک در اصل برای ماحسبه جداول مسیر حرکت گلوله های توپ طراحی شداما از آن برای محاسیه غلظت تداخلی نوترون هم استفاده می شد تا ببینند که آیا بمب هیدروژنی درست کار می کند یا نه. این محاسبات که از دسامبر 1945 تا ژانویه 1946 ، با بیش از یک میلیون کارت پانچ اطلاعاتی انجام شد نشان داد که طرح مورد بررسی به شکست خواهد انجامید (جالب است که بیشتر ابر کامپیوترهای قدرتمند امروزی برای شبیه سازی جنگ افزارهای هسته ای مورد استفاده قرار می گیرند)، CSIR Mk I اولین رایانه برنامه دار استرالیایی طرح هایی از میزان بارش در منطقه تحت پوشش Snowy Mountains را بدست آورد، از دیگر کامپیوترها در رمز یابی استفاده می شد. از جمله Colossus ، اولین رایانه دیجیتال، الکترونیک و برنامه پذیر (اما نه همه کاره) جهان که طی جنگ جهانی دوم ساخته شد. با وجود تمرکز علمی اولیه کاربردی، رایانه به سرعت در دیگر زمینه ها نیز به کار گرفته شد.
از همان ابتدا کامپیوترهای برنامه دار برای مشکلات کاری به کار گرفته شد. LEO رایانه برنامه داری که توسط J. Lyons and Co. در انگلیس ساخته شد سه سال قبل از اینکه IBM اولین رایانه تجاری برنامه دار خود را بسازد کاربردی بوده و برای مدیریت اموال و بازرگانی به کار برده می شد.
تداوم کاهش اندازه و قیمت کامپیوترها موجب استقبال موسسه های کوچکتر از آن شد. و با اختراع ریز پردازنده در دهه 1970، امکان تولید کامپیوترهای ارزان قیمت بوجود آمد. در دهه ی 1980 کامپیوترهای شخصی برای بسیاری کارها، از جمله کتابداری ، نوشتن و چاپ کردن مدارک، تخمین و دیگر اعمال ریاضی ازجمله صفحه گسترده ها spreadsheet رایج شد.


اینترنت


در دهه 1970 مهندسین رایانه موسسات تحقیقاتی مختلف در سراسر آمریکا شروع به اتصال کامپیوترهای خود به هم با استفاده از تکنولوژی ارتباطات کردند. هزینه این کار توسط ARPA تقبل و شبکه کامپیوتری تولید شده ARPANET نامیده شد. تکنولوژی شبکه ARPA به سرعت توسعه یافت. سرانجام این شبکه از مرز موسسات آکادمی گذشت و با نام اینترنت شناخته شد و در دهه 1990 توسعه تکنولوژی شبکه وب جهانی عامه مردم را قادر به استفاده از اینترنت کرد و رشد سریع، آنرا به یک ابزار ارتباطی جهانی بدل ساخت.


کامپیوتر چگونه کار می کند


در حالی که تکنولوژی موجود در کامپیوترها از زمان اولین کامپیوترهای الکترونیک و همه کاره ی دهه 1940 (برای جزئیات بیشتر تاریخ سخت افزار محاسبه را ببینید) تغییرات چشمگیری کرده است، بسیاری هنوز از معماری von Neumann استفاده می کنند.
معماری von Neumann برای یک رایانه چهار بخش اصلی قائل می شود:
واحد محاسبه و منطق (ALU)، واحد کنترل، حافظه کامپیوتر و وسایل ورودی خروجی (که با هم I/O نامیده می شوند). این بخش ها توسط یک مشت سیم ("یک گذرگاه") به هم متصل و توسط یک تایمر (یا ساعت) هدایت می شود (هرچند رویدادهای دیگر هم می توانند مدار کنترلی را هدایت کنند).


حافظه



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


پردازش


واحد محاسبه و منطق یا ALU دستگاهی است که عملیات های ابتدایی مانند عملیات های ریاضی (جمع، تفریق و غیره) منطقی(و، یا، نه) و مقایسه ای (مثل بررسی تساوی محتویات دو بایت از حافظه) را انجام می دهد. "کار واقعی" در این واحد انجام می شود.
واحد کنترل محل آدرس بایتی از حافظه که رایانه در حال اجرای دستورات آن است را نگهداری، کاری که ALU باید انجام دهد را به آن گفته، اطلاعات مورد نیاز را (از حافظه) به آن می رساند و نتایج را به محل مناسب در حافظه برمی گرداند. بعد از هر بار انجام این عمل، واحد کنترل به سراغ دستور بعدی (که در شکاف آدرس حافظه بعدی قرار دارد) می رود( جز این که دستور یک دستور جهش باشد که رایانه را از محل دستور بعدی آگاه می کند). این یکی از بخش های مهم رایانه است که در SDRAM، DDR RAM و RDRAM یافت می شود.


ورودی و خروجی


ورودی و خروجی I/O رایانه را قادر می سازد اطلاعات را از دنیای بیرون گرفته و نتایج کارش را به آنجا بفرستد. دستگاه های I/O دارای تنوع بسیار زیادی هستند از صفحه کلید الفبا- عددی، مانیتور و درایوهای فلاپی گرفته تا نامعمول ترین آنها از جمله وب کم ها.
نقطه مشترک تمام دستگاه های ورودی این است که آنها اطلاعات را از هر نوعی، به داده های قابل پردازش توسط کامپیوترهای دیجیتال تبدیل encode می کنند. در طرف دیگر، دستگاه های خروجی این داده ها را به اطلاعاتی که توسط استفاده کننده از رایانه قابل فهم باشد تبدیل decode می کند.
از این لحاظ سیستم کامپیوترهای دیجیتال نمونه ای از سیستم پردازش داده است.


دستورالعمل ها



دستوراتی که در بالا مورد بحث قرار گرفت دستورات پرتوان زبان انسان نیست. رایانه فقط شمار محدودی از دستورات ساده و واضح را می فهمد. نمونه دستوراتی که توسط بیشتر کامپیوترها اجرا می شود اینها است: "محتویات خانه 123 را در 456 کپی کن" و " محتویات خانه 666 را به خانه 042 اضافه کن" و " اگر محتویات خانه 999 برابر صفر است دستور بعدی را از خانه 345 بگیر".
دستورات در درون رایانه به صورت اعداد نمایش داده می شوند- برای مثال کد "کپی" ممکن است 001 باشد. مجموعه دستورات خاصی که یک رایانه می فهمد با نام زبان ماشین شناخته شده است. در عمل، انسان دستورات را مستقیماً به زبان ماشین نمی نویسد بلکه از یک زبان برنامه نویسی "سطح بالا" که به طور خودکار توسط کامپایلر و مفسر برنامه های کامپیوتری قابل ترجمه به زبان ماشین است، استفاده می کند. بعضی از زبان های برنامه نویسی خیلی به زبان ماشین نزدیکتر، مانند اسمبلی (زبان های برنامه نویسی سطح پایین)؛ در طرف دیگر، زبان هایی مانندProlog بر اصولی که به شدت از جزئیات عملکرد واقعی ماشین دور است پایه گذاری شده است (زبان سطح بالا).


معماری


در کامپیوترهای امروزی ALU و واحد کنترل را در یک مدار مجتمع به نام واحد پردازش مرکزی یا CPU قرار داده اند. حافظه رایانه روی چند مدار مجتمع در نزدیکی CPU قرار دارد. جرم و حجم زیاد رایانه را دستگاه های جانبی و فرعی (مثل، منبع نیروی الکتریکی) و یا دستگاه های I/O تشکیل می دهد.
بعضی از کامپیوترهای بزرگ تر از یک جهت با مدل بالا متفاوت است – این کامپیوترها چند CPU و واحد کنترل دارند که همزمان کار می کنند. تعداد محدودی کامپیوتر، که به طور عمده برای اهداف پژوهشی و محاسبات علمی به کار برده می شوند، خیلی با مدل بالا تفاوت پیدا کرده اند، اما این کامپیوترها چون مدل برنامه ریزشان هنوز استاندارد نشده کاربرد اقتصادی کمی داشته اند.
در اصل کار یک رایانه خیلی سر راست است. با هر چرخش ساعت، رایانه دستورات وداده هایی را از حافظه می گیرد. دستورات اجرا، نتیجه ذخیره و دستور بعدی گرفته می شود. این روند تا رسیدن به دستور "توقف" تکرار می شود.


برنامه های کامپیوتری


به طور ساده، برنامه های کامپیوتری لیست درازی از دستورات و شاید جداول داده ها است که رایانه قرار است اجرا کند. بسیاری از برنامه های کامپیوتری حاوی میلیون ها دستورند که بسیاری از آنها چندین بار اجرا می شود. یک کامپیوتر شخصی جدید (در سال 2003 ) می تواند نزدیک به 2-3 بیلیون دستور در ثانیه را انجام دهد. کامپیوترها قابلیت های ویژه خود را از توانایی اجرای دستورات پیچیده، بدست نمی آورند، برعکس، آنها میلیون ها دستور ساده که توسط افراد باهوش، "برنامه نویس ها"، تنظیم شده را اجرا می کنند. برنامه نویسان خوب مجموعه دستوراتی برای انجام کارهای عادی (مثل کشیدن یک نقطه روی صفحه) را طراحی و سپس آنرا در اختیار دیگر برنامه نویس ها قرار می دهد.
امروزه کامپیوترها در یک زمان چندین برنامه را اجرا می کنند. معمولاً به این عمل چند وظیفه ای می گویند. در واقعیت، CPU دستوراتی از یک برنامه را اجرا می کند سپس پس از زمان کوتاهی به سراغ برنامه بعدی رفته و تعدادی از دستورات آنرا اجرا می کند. این فاصله زمانی کوچک را معمولاً شکاف زمانی می گویند. این باعث خلق این تصور می شود که چندین برنامه به طور همزمان با تقسیم زمان CPU بین خود در حال اجرا هستند. همانند یک فیلم سینمایی که حرکت سریع صفحات ثابت است. این تقسیم زمان را سیستم عامل کنترل می کند.


سیستم عامل


رایانه برای کار در هر زمان دسته کم به یک برنامه ی همیشه در حال اجرا نیاز دارد. تحت شرایط عادی این برنامه سیستم عامل (OS) می باشد. سیستم عامل معین می کند کدام برنامه ها اجرا شود، چه زمان و چه منابعی (مثل حافظه یا I/O) مورد استفاده قرار گیرند. سیستم عامل همچنین لایه ای از انتزاع و تجدید را بر سخت افزار قرار می دهد و با قراردادن خدماتی برای دیگر برنامه ها، آنها را در دسترس قرار می دهد از جمله کدها ("drivers") که برنامه نویس ها را قادر می سازد بدون اطلاع دقیق از جزئیات دستگاه های الکترونیکی متصل به رایانه برنامه ای برای آن بنویسند.


پیوندهای خارجی


همچنین ببینید




تعداد بازدید ها: 14970


ارسال توضیح جدید
الزامی
big grin confused جالب cry eek evil فریاد اخم خبر lol عصبانی mr green خنثی سوال razz redface rolleyes غمگین smile surprised twisted چشمک arrow



از پیوند [http://www.foo.com] یا [http://www.foo.com|شرح] برای پیوندها.
برچسب های HTML در داخل توضیحات مجاز نیستند و تمام نوشته ها ی بین علامت های > و < حذف خواهند شد..