Easy Bug
20th December 2011, 08:41 PM
هنگاميكه يكي از نرمافزارهاي رايانه شخصي شما دچار اشكال شود ميتوان آن را به گونهاي بياثر كرده و كاركرد رايانه را به حالت عادي درآورد. اما اگر نرمافزارهاي يك ماهواره در حال پرتاب يا يك شاتل در حال فرود دچار اشكال شوند آنگاه مسئله به وضعيت وخيميمنجر خواهدشد. "جيمز ني. تومايكو" به عنوان يك مهندس نرمافزار نگاهي به مبارزه بين ناسا و رايانههايش در سه، چهار دهه اخير انداخته و سرانجامِ اين مبارزه را بررسي كرده است
هنگاميكه ناسا در سال 1958 ميلادي متولد شد "يونيواك" نمونهاي از رايانههاي آن عصر محسوب ميشد. يك سيستم رايانهاي در آن دوره عبارت بود از نوارهاي مغناطيسي حافظه، چاپگرهاي پر سر و صدا و جعبههاي زمختي در اندازههاي يك خانه مسكوني. علاوه بر همه اينها، هركدام از اين غولهاي گرانقيمت براي كاركردن به لشكر كوچكي از متخصصان باتجربه نياز داشتند. پس از گذشت 15 سال، ناسا به يكي از بزرگترين مجموعهدارها در زمينه جمعآوري اين هيولاها تبديل شده بود و در هر يك از مراكز و آزمايشگاههايش يك يا چند نمونه از آنها را به كارگرفته بود. كساني كه در آن دوران به فعاليت در حوزه رايانه اشتغال داشتند حتي در خواب هم نميديدند كه روزي ناسا رايانههايش را به فضا بفرستد.
10 سال بعد، رايانههاي بزرگ هيولاوش جاي خود را به تعداد زيادي رايانههاي كوچكتر داده بودند كه در قالب شبكه به يكديگر وصل شده بودند. اين دگرگوني شگفتانگيز بازتابي از توسعه رايانههاي تجاري بود. در جايي كه نياز به محاسبات پيچيده بود، رايانههاي كوچك وظايف رايانههاي بزرگ را برعهده گرفتند و در جايي كه نياز به محاسبات نبود (خودرو، خانه و...) رايانهها به آراميجاي خود را بازكردند. در جايي كه حجم اطلاعات زياد بود، شبكههاي متمركز به ياري آمدند و هر رايانه قسمتي از بار پردازش اطلاعات را بردوش گرفت.
امروزه ناسا به عنوان يكي از بزرگترين كاربران رايانه شناخته ميشود، چرا كه انجام يك پرواز فضايي بدون دخالت رايانه ناممكن است. عقيده مشتركي وجود دارد كه نيازهاي ناسا را يكي از موتورهاي محركه توسعه و رشد شتابان علم رايانه ميداند. اما در واقع، اوضاع به همين سادگي و روشني هم نبوده است. ناسا، در بيشتر موارد، به دليل نياز به ايمني و قابليت اعتماد، فناوريهاي نوين را به بازي نميگرفت و آنها را با احتياط جذب ميكرد. بنابراين، ناسا اغلب خود را در وضعيت متناقضي پيدا ميكرد كه بايد براي يافتن راه حل مشكلات جديد پروازي دست به مبارزه ميزد. به هرحال، در بعضي موارد كه تجهيزات امتحان پس داده مناسبي براي پروژه جديد در دسترس نبود، به كارگيري فناوريهاي جديد كه بيشتر براي استفاده در روي زمين ساخته شده بودند، امكانپذير ميشد. اين رويداد به ويژه در ماهوارهها و فضاپيماهاي بدون سرنشين احتمال بيشتري داشت، چرا كه نبود خلبان، دست طراحان را براي پذيرش خطر استفاده از تجهيزات جديد باز ميگذاشت. البته تمام پيكره سازمان برخورد يكساني با روشهاي جديد محاسبات ماشيني نداشتند و بودند قسمتهايي از ناسا كه در برابر رشد روشهاي رايانهاي مقاومت ميكردند. به هر روي، ناسا در توسعه رايانه و تجهيزات ويژه آن شركت جسته و نقش موثري بازي كرد.
ناسا از رايانههايش بر روي زمين و همچنين پروازهاي سرنشيندار و بدون سرنشين استفاده ميكند. اين سه حوزه مشخصا نيازهايي متفاوت دارند و طبيعت اين نيازها، سختافزار و نرمافزارهاي متفاوتي را طلب ميكند. بنابراين، برخوردهاي متفاوت ناسا با سختافزار و نرمافزارهاي جديد برآمده از نيازهاي گوناگون اين سازمان است.
رايانهها اجزاي جدانشدني پروازهاي فضايي هستند. امروزه اين گونه تجهيزات براي ناوبري، هدايت، اصلاح مسير پرواز، مديريت سيستمهاي داخلي، پردازش اطلاعات، ملاقات فضاپيماها در فضا با يكديگر و كنترل ارتفاع آنها استفاده ميشود. به هرحال، اولين فضاپيماي سرنشيندار ناسابه نام "مركوري"، هيچ رايانهاي در درون خود نداشت. به مدت 15 سال پروازهاي مداري و بدون سرنشين و پرواز به اعماق كهكشان بدون وجود رايانههاي چندكاره در داخل اين فضاپيماها انجام شدند. هنوز اما، پرواز فضاپيماهايي چون شاتل و گاليله بدون رايانه ناممكن است. در حقيقت، در فضاپيماي جديد نه يكي بلكه چندين رايانه به كارگرفته ميشوند. اين تغيير سبب شده تا بتوان از فضاپيماهاي امروزي به عنوان وسايلي چندكاره استفاده كرد. فضاپيماي چند منظوره در اثر افزايش قدرت نرمافزارها، كه سختافزار را به صورت بهينه مورد استفاده قرار ميدهند، به وجود ميآيد. هنگاميكه ماموريت سفينه تغيير ميكند و پيچيدهتر ميشود، تعويض نرمافزارها با نرمافزارهاي جديدتر براي هماهنگ شدن با تغييرات، ارزانتر و سريعتر از تعويض سختافزارهاست.
رايانه يك فضاپيما و رايانه يك پايگاه زميني هر دو اطلاعات را ذخيره و بر روي آنها محاسبه انجام ميدهند، اما هر كدام براي پردازش و ورود و خروج اطلاعات روشهاي متفاوتي را به كار ميبرند. يك رايانه بزرگ متعلق به زماني كه اولين رايانهها در پروازهاي سرنشيندار به كار رفتند، ميتوانست در يك زمان تنها بر روي يك برنامه كار كند و براي اجراي برنامه بعدي بايد منتظر خاتمه اجراي برنامه قبلي ميشد. در اين روش پردازش، ابتدا بايد تماميبرنامه در حافظه رايانه جاي ميگرفت و سپس اطلاعات مورد نياز برنامه توسط كارتهاي پيش سوراخ شده (پانچ شده) به رايانه منتقل ميشد. گذشت زمان، تغييرات سيستمهاي رايانهاي و افزايش كارايي آنها را در پي داشت. در گذشته، هنگامي كه پردازشگر در حال انجام دادن محاسبات بود، تجهيزات ورودي و خروجي رايانه بلااستفاده ميماندند و اگر يكي از اين تجهيزات جانبي به كارگرفته ميشد، به ناچار پردازشگر بايد محاسبات خود را متوقف ميكرد. يكي از راههاي استفاده بهينه از اين سختافزارهاي گران قيمت آن بود كه سيستم عاملي طراحي شود كه به يك برنامه اجازه بدهد تا از منابع و تجهيزاتي نظير (اسكنر، چاپگرو...) كه براي ديگر برنامهها مورد نياز نيستند، استفاده كند. اينگونه بود كه كاربران ميتوانستند از امكانات محاسباتي پردازشگر و ورودي- خروجيها، همزمان استفاده كنند. روش ديگر آن بود كه يك برنامه را به چند قسمت تقسيم ميكردند. هنگاميكه پردازشگر اجراي يك قسمت از برنامه را به پايان ميرساند، به اجراي يك برنامه ديگر ميپرداخت و در انتها به ادامه محاسبات مربوط به برنامه اول بازميگشت. اين چرخه و برشهاي زماني اجازه ميدادند تا چندين كاربر به يك رايانه وصل شده و همزمان چند برنامه متفاوت را بر روي آن اجراكنند؛ در صورتي كه رايانه ظاهرا در هر زمان تنها ميتوانست به اجراي يك برنامه بپردازد. رايانههاي بزرگ آن موقع آنقدر سرعت داشتند كه هيچ كاربري متوجه وقفه كوچكي كه در حين اجراي برنامهاش پديد آمده بود، نميشد. بديهي است كه در هر دو روش بايد اطلاعات مورد نياز برنامهها از قبل آماده و بر روي كارتهاي پانچ شده منتقل ميشد. پس حتي اگر براي رسيدن به سرعت بيشتر، چند برنامه به صورت همزمان در رايانه اجرا ميشدند، نياز به كارتهاي پانچ شده از بين نميرفت. هنگاميكه پردازشگر به اجراي نرمافزارها ميپرداخت، بازهم بايد كاربران منتظر ميماندند تا نتايج به خروجيها فرستاده شود.
رايانههاي نصب شده بر روي ماهوارهها و فضاپيماها در شرايط كاري اساسا متفاوتي كارميكنند. پردازشگرهاي آنها در وضعيت "زمان واقعي" (بلادرنگ) هستند. ماهيت اطلاعات ورودي و خروجي آنها ناهمزمان بوده و پردازش آنها هيچگاه متوقف نميشود. پردازشگر چنين رايانهاي مانند يك تلفنچي است كه نميداند تماس بعدي از كدام خط صورت ميگيرد. اطلاعات بلافاصله پس از دريافت، پردازش و براساس آنها تصميمگيري شود. براي مثال، رايانهاي كه مرحله فرود يك شاتل را هدايت ميكند نميتواند اطلاعات سطوح پروازي شاتل را به صورت كارتهاي پانچ شده دريافت كند. تا خدمه فضاپيما بخواهند اين اطلاعات را جمعآوري كرده و به كارتهاي پانچ شده منتقل كنند، يا شاتل از كنترل خارج شده و يا در مسيري اشتباه قرارگرفته است! پردازش در زمان واقعي به تجهيزاتي نياز دارد كه نميتوان آنها را در رايانههاي بزرگ پايگاههاي زميني پيداكرد.
نرمافزارهاي به كاررفته در فضاپيماها و ماهوارهها هيچگاه نبايد "قفل" شوند يا اينكه به پاياني غيرمعمول و تعريفنشده (مثلا، تقسيم يك عدد بر صفر) برسند. اگر نرمافزاري در اين فضاپيماها قفل شود، آن فضاپيما از دست رفته محسوب ميشود. همچنين سختافزارهاي نصب شده در آنها نيز بايد كاملا قابل اطمينان باشند يا با استفاده از چند سختافزار پشتيبان به سطح كاري قابل اطميناني برسند. البته به كارگيري سختافزار و نرمافزارهاي پشتيبان هزينههاي ساخت سفينه را بالا خواهند برد ضمنا حافظههاي به كار رفته در اين رايانهها بايد غيرفرّار باشند تا اگر منبع تغذيه به هر دليلي قطع شد، اطلاعات ذخيره شده در آنها از بين نرود. بر خلاف رايانههاي شخصي و معمولي كه از حافظههاي نيمههادي فرّار استفاده ميكنند، در رايانه فضاپيماها و ماهوارهها از حافظههاي قديمي"حلقه مغناطيسي" استفاده ميشود. اطلاعات اين گونه حافظهها با قطع منبع تغذيه "پاك" نميشود. وزن، اندازه و انرژي مصرفي از موارد ديگري هستند كه طراحان اين گونه رايانهها بايد آنها را در نظر بگيرند.
حتي اگر فضاپيماهاي سرنشيندار و بدون سرنشين نيازهاي مشابهي هم داشته باشند، تا همين اواخر امكان استفاده از رايانههاي مشابه در هر دوي آنها وجود نداشت. هيچگاه يك رايانه قدرتمند، مانند آنچه كه در شاتلها وجود دارد، برروي يك ماهواره نصب نشده است. رايانههاي يك شاتل بزرگتر و پرمصرفتر از آن هستند كه در سفينهاي مانند پايونير-10 نصب شده و به خارج از منظومه شمسي پرتاب شوند. ريزپردازندههاي قدرتمند جديد نويد حل شدن اين مشكلات را ميدهند، اما رايانههايي كه در اينجا بررسي كردهايم به دوران قبل از ريزپردازندهها تعلق دارند. همچنين، رايانههاي فضاپيماهاي سرنشيندار براي پروازهاي كوتاه مدت، حداكثر چند هفته، ساخته شدهاند، اما اين وضع با گسترش ايستگاههاي فضايي و دورخيز بشر به سوي سياره سرخ تغيير خواهدكرد. رايانهاي كه براي يك ماهواره يا فضاپيماي اعزام شده به خارج از منظومه شمسي طراحي ميشود، بايد بتواند با مصرف اندك انرژي و براي سالها بدون اشكال كاركند. حتي اگر هر دو فضاپيما، بدون سرنشين و سرنشيندار، نياز به قابليت اعتماد بالا داشته باشند، شرايط متفاوت ماموريت آنها ميزان و نوع قابل اعتماد بودن رايانههايشان را تعيين ميكند.
ناسا در دههها 60 و 70 ميلادي براي توسعه رايانههايي تلاش ميكرد كه بتوانند فشارهاي فيزيكي مرحله پرتاب موشك را تحمل كرده و در شرايط محيطي فضا كاركنند. در انتها، ناسا موفق شد كه فضاپيماهاي پيچيدهاي ساخته و ماموريتهاي جاهطلبانهاي را به سرانجام برساند. حال، ناسا فناوريهاي جديد دلگرمكننده و تجهيزات قابل اعتمادي براي پروازهايش يافته بود. در پروازهاي سرنشيندار تمايل بود كه بيشتر از تجهيزات در دسترس، كه امتحانشان را پس داده اند، استفاده شود. در فضاپيماهاي بدون سرنشين و ماهوارهها دست طراحان براي استفاده از تكنولوژيهاي نوظهور و ابتكاري بازتر بود.
در عوض، هر چند رايانههاي بزرگي كه ناسا در پايگاهها و آزمايشگاههايش به كارگرفته بود، مانند شركتهاي تجاري نياز به پردازش حجم عظيمي از اطلاعات را منعكس ميكردند، اما ناسا تا همين اواخر رايانههاي تجاري معمولي را براي پردازش در "زمان واقعي" به كارنگرفته بود. بنابراين، ناسا ميتوانست با استفاده از نرمافزارهاي ابتكاري ويژه "زمان واقعي"، رايانههاي تجاري موجود در بازار را براي رفع نيازهايش به خدمت گيرد. بازرسيهاي پيش از آغاز پرواز، كنترل ماموريت، شبيه سازي و پردازش تصاوير گرفته شده به وسيله ماهوارهها، از تركيب بيشماري از رايانههاي بزرگ و رايانههاي كوچكتر استفاده ميكنند. پس، در حاليكه سختافزارهاي درون ماهوارهها و فضاپيماها بر اساس نيازهاي ناسا سفارش و طراحي ميشدند، برخورد ناسا با رايانههاي زميني بر اساس نيازهاي نرمافزاري مراكز زميني هدايت ميشد. طبيعتا ابتكارات نرمافزاري كه براي حل يك مسئله در رايانههاي بزرگ طراحي شده، بيشتر امكان دارد در جهان تجاري فراگيرشود تا نرمافزاري كه براي يك ماهواره خاص نوشته شده و شايد در تماميمراحل پرواز ماهواره تنها يكبار اجرا شود. ناسا فنون برنامه نويسي پيشرفتهاي را به دنيا هديه داده است. اين فنون، قوانيني را در بردارند كه به برنامهنويسان اجازه ميدهند نرمافزارهاي بزرگتر و قابل اعتمادتري بنويسند.
حتي اگر نيازها و راه حلها براي رايانههاي بزرگ، رايانه فضاپيماهاي بدون سرنشين و فضاپيماهاي سرنشيندار متفاوت باشند، بازهم چند مسئله مشترك هر سه حوزه را به هم نزديك ميكند. تقريبا در همه اين موارد، مديران ناسا اجازه رشد سيستمهاي مورد نياز را ندادند و سبب شدند تا سختافزار و نرمافزارهاي گران قيمتي براي پروژههاي كوچك و پيش پا افتاده به كار روند. مسلما پيشرفتهاي اخير اجازه ميدهند كه طراحان، سيستمها و فنون رايانهاي آزمايش شده را براي چند پرواز يا پشتيباني از چند ماموريت به كاربرند كه ميتواند به كاهش هزينهها و ايجاد راه حلهاي سفارشي منجر شود. همچنين، امروزه نسبت به رايانههاي كوچك جمع شده در يك شبكه اعتماد بيشتري نسبت به يك رايانه بزرگ وجود دارد. اين رايانهها ميتوانند مراحل گوناگون پردازش يك برنامه را در ميان خود تقسيم كنند؛ و براي رسيدن به يك سطح اعتماد قابل قبول، اقتصاديتر از رايانههاي بزرگ هستند.
ناسا از زمان تاسيس تا به امروز، بدون در نظرگرفتن برخوردش با محاسبات ماشيني و رايانه، نمونههاي باارزشي از رشد توان محاسباتي، گوناگوني و موثربودن رايانهها را ارائه كرده است. سالهاي پاياني دهه 50 به عنوان مبدأ دخالت رايانه در توسعه علم و تجارت آمريكا شناخته ميشود. اشتهاي سيريناپذير اين سازمان به جذب آنچه كه صنايع رايانهاي ميتوانستند ارائه دهند، به توليد تعداد زيادي از جالبترين و خلاقانهترين تجهيزات رايانهاي ساخت دست بشر منجر شده است.
هنگاميكه ناسا در سال 1958 ميلادي متولد شد "يونيواك" نمونهاي از رايانههاي آن عصر محسوب ميشد. يك سيستم رايانهاي در آن دوره عبارت بود از نوارهاي مغناطيسي حافظه، چاپگرهاي پر سر و صدا و جعبههاي زمختي در اندازههاي يك خانه مسكوني. علاوه بر همه اينها، هركدام از اين غولهاي گرانقيمت براي كاركردن به لشكر كوچكي از متخصصان باتجربه نياز داشتند. پس از گذشت 15 سال، ناسا به يكي از بزرگترين مجموعهدارها در زمينه جمعآوري اين هيولاها تبديل شده بود و در هر يك از مراكز و آزمايشگاههايش يك يا چند نمونه از آنها را به كارگرفته بود. كساني كه در آن دوران به فعاليت در حوزه رايانه اشتغال داشتند حتي در خواب هم نميديدند كه روزي ناسا رايانههايش را به فضا بفرستد.
10 سال بعد، رايانههاي بزرگ هيولاوش جاي خود را به تعداد زيادي رايانههاي كوچكتر داده بودند كه در قالب شبكه به يكديگر وصل شده بودند. اين دگرگوني شگفتانگيز بازتابي از توسعه رايانههاي تجاري بود. در جايي كه نياز به محاسبات پيچيده بود، رايانههاي كوچك وظايف رايانههاي بزرگ را برعهده گرفتند و در جايي كه نياز به محاسبات نبود (خودرو، خانه و...) رايانهها به آراميجاي خود را بازكردند. در جايي كه حجم اطلاعات زياد بود، شبكههاي متمركز به ياري آمدند و هر رايانه قسمتي از بار پردازش اطلاعات را بردوش گرفت.
امروزه ناسا به عنوان يكي از بزرگترين كاربران رايانه شناخته ميشود، چرا كه انجام يك پرواز فضايي بدون دخالت رايانه ناممكن است. عقيده مشتركي وجود دارد كه نيازهاي ناسا را يكي از موتورهاي محركه توسعه و رشد شتابان علم رايانه ميداند. اما در واقع، اوضاع به همين سادگي و روشني هم نبوده است. ناسا، در بيشتر موارد، به دليل نياز به ايمني و قابليت اعتماد، فناوريهاي نوين را به بازي نميگرفت و آنها را با احتياط جذب ميكرد. بنابراين، ناسا اغلب خود را در وضعيت متناقضي پيدا ميكرد كه بايد براي يافتن راه حل مشكلات جديد پروازي دست به مبارزه ميزد. به هرحال، در بعضي موارد كه تجهيزات امتحان پس داده مناسبي براي پروژه جديد در دسترس نبود، به كارگيري فناوريهاي جديد كه بيشتر براي استفاده در روي زمين ساخته شده بودند، امكانپذير ميشد. اين رويداد به ويژه در ماهوارهها و فضاپيماهاي بدون سرنشين احتمال بيشتري داشت، چرا كه نبود خلبان، دست طراحان را براي پذيرش خطر استفاده از تجهيزات جديد باز ميگذاشت. البته تمام پيكره سازمان برخورد يكساني با روشهاي جديد محاسبات ماشيني نداشتند و بودند قسمتهايي از ناسا كه در برابر رشد روشهاي رايانهاي مقاومت ميكردند. به هر روي، ناسا در توسعه رايانه و تجهيزات ويژه آن شركت جسته و نقش موثري بازي كرد.
ناسا از رايانههايش بر روي زمين و همچنين پروازهاي سرنشيندار و بدون سرنشين استفاده ميكند. اين سه حوزه مشخصا نيازهايي متفاوت دارند و طبيعت اين نيازها، سختافزار و نرمافزارهاي متفاوتي را طلب ميكند. بنابراين، برخوردهاي متفاوت ناسا با سختافزار و نرمافزارهاي جديد برآمده از نيازهاي گوناگون اين سازمان است.
رايانهها اجزاي جدانشدني پروازهاي فضايي هستند. امروزه اين گونه تجهيزات براي ناوبري، هدايت، اصلاح مسير پرواز، مديريت سيستمهاي داخلي، پردازش اطلاعات، ملاقات فضاپيماها در فضا با يكديگر و كنترل ارتفاع آنها استفاده ميشود. به هرحال، اولين فضاپيماي سرنشيندار ناسابه نام "مركوري"، هيچ رايانهاي در درون خود نداشت. به مدت 15 سال پروازهاي مداري و بدون سرنشين و پرواز به اعماق كهكشان بدون وجود رايانههاي چندكاره در داخل اين فضاپيماها انجام شدند. هنوز اما، پرواز فضاپيماهايي چون شاتل و گاليله بدون رايانه ناممكن است. در حقيقت، در فضاپيماي جديد نه يكي بلكه چندين رايانه به كارگرفته ميشوند. اين تغيير سبب شده تا بتوان از فضاپيماهاي امروزي به عنوان وسايلي چندكاره استفاده كرد. فضاپيماي چند منظوره در اثر افزايش قدرت نرمافزارها، كه سختافزار را به صورت بهينه مورد استفاده قرار ميدهند، به وجود ميآيد. هنگاميكه ماموريت سفينه تغيير ميكند و پيچيدهتر ميشود، تعويض نرمافزارها با نرمافزارهاي جديدتر براي هماهنگ شدن با تغييرات، ارزانتر و سريعتر از تعويض سختافزارهاست.
رايانه يك فضاپيما و رايانه يك پايگاه زميني هر دو اطلاعات را ذخيره و بر روي آنها محاسبه انجام ميدهند، اما هر كدام براي پردازش و ورود و خروج اطلاعات روشهاي متفاوتي را به كار ميبرند. يك رايانه بزرگ متعلق به زماني كه اولين رايانهها در پروازهاي سرنشيندار به كار رفتند، ميتوانست در يك زمان تنها بر روي يك برنامه كار كند و براي اجراي برنامه بعدي بايد منتظر خاتمه اجراي برنامه قبلي ميشد. در اين روش پردازش، ابتدا بايد تماميبرنامه در حافظه رايانه جاي ميگرفت و سپس اطلاعات مورد نياز برنامه توسط كارتهاي پيش سوراخ شده (پانچ شده) به رايانه منتقل ميشد. گذشت زمان، تغييرات سيستمهاي رايانهاي و افزايش كارايي آنها را در پي داشت. در گذشته، هنگامي كه پردازشگر در حال انجام دادن محاسبات بود، تجهيزات ورودي و خروجي رايانه بلااستفاده ميماندند و اگر يكي از اين تجهيزات جانبي به كارگرفته ميشد، به ناچار پردازشگر بايد محاسبات خود را متوقف ميكرد. يكي از راههاي استفاده بهينه از اين سختافزارهاي گران قيمت آن بود كه سيستم عاملي طراحي شود كه به يك برنامه اجازه بدهد تا از منابع و تجهيزاتي نظير (اسكنر، چاپگرو...) كه براي ديگر برنامهها مورد نياز نيستند، استفاده كند. اينگونه بود كه كاربران ميتوانستند از امكانات محاسباتي پردازشگر و ورودي- خروجيها، همزمان استفاده كنند. روش ديگر آن بود كه يك برنامه را به چند قسمت تقسيم ميكردند. هنگاميكه پردازشگر اجراي يك قسمت از برنامه را به پايان ميرساند، به اجراي يك برنامه ديگر ميپرداخت و در انتها به ادامه محاسبات مربوط به برنامه اول بازميگشت. اين چرخه و برشهاي زماني اجازه ميدادند تا چندين كاربر به يك رايانه وصل شده و همزمان چند برنامه متفاوت را بر روي آن اجراكنند؛ در صورتي كه رايانه ظاهرا در هر زمان تنها ميتوانست به اجراي يك برنامه بپردازد. رايانههاي بزرگ آن موقع آنقدر سرعت داشتند كه هيچ كاربري متوجه وقفه كوچكي كه در حين اجراي برنامهاش پديد آمده بود، نميشد. بديهي است كه در هر دو روش بايد اطلاعات مورد نياز برنامهها از قبل آماده و بر روي كارتهاي پانچ شده منتقل ميشد. پس حتي اگر براي رسيدن به سرعت بيشتر، چند برنامه به صورت همزمان در رايانه اجرا ميشدند، نياز به كارتهاي پانچ شده از بين نميرفت. هنگاميكه پردازشگر به اجراي نرمافزارها ميپرداخت، بازهم بايد كاربران منتظر ميماندند تا نتايج به خروجيها فرستاده شود.
رايانههاي نصب شده بر روي ماهوارهها و فضاپيماها در شرايط كاري اساسا متفاوتي كارميكنند. پردازشگرهاي آنها در وضعيت "زمان واقعي" (بلادرنگ) هستند. ماهيت اطلاعات ورودي و خروجي آنها ناهمزمان بوده و پردازش آنها هيچگاه متوقف نميشود. پردازشگر چنين رايانهاي مانند يك تلفنچي است كه نميداند تماس بعدي از كدام خط صورت ميگيرد. اطلاعات بلافاصله پس از دريافت، پردازش و براساس آنها تصميمگيري شود. براي مثال، رايانهاي كه مرحله فرود يك شاتل را هدايت ميكند نميتواند اطلاعات سطوح پروازي شاتل را به صورت كارتهاي پانچ شده دريافت كند. تا خدمه فضاپيما بخواهند اين اطلاعات را جمعآوري كرده و به كارتهاي پانچ شده منتقل كنند، يا شاتل از كنترل خارج شده و يا در مسيري اشتباه قرارگرفته است! پردازش در زمان واقعي به تجهيزاتي نياز دارد كه نميتوان آنها را در رايانههاي بزرگ پايگاههاي زميني پيداكرد.
نرمافزارهاي به كاررفته در فضاپيماها و ماهوارهها هيچگاه نبايد "قفل" شوند يا اينكه به پاياني غيرمعمول و تعريفنشده (مثلا، تقسيم يك عدد بر صفر) برسند. اگر نرمافزاري در اين فضاپيماها قفل شود، آن فضاپيما از دست رفته محسوب ميشود. همچنين سختافزارهاي نصب شده در آنها نيز بايد كاملا قابل اطمينان باشند يا با استفاده از چند سختافزار پشتيبان به سطح كاري قابل اطميناني برسند. البته به كارگيري سختافزار و نرمافزارهاي پشتيبان هزينههاي ساخت سفينه را بالا خواهند برد ضمنا حافظههاي به كار رفته در اين رايانهها بايد غيرفرّار باشند تا اگر منبع تغذيه به هر دليلي قطع شد، اطلاعات ذخيره شده در آنها از بين نرود. بر خلاف رايانههاي شخصي و معمولي كه از حافظههاي نيمههادي فرّار استفاده ميكنند، در رايانه فضاپيماها و ماهوارهها از حافظههاي قديمي"حلقه مغناطيسي" استفاده ميشود. اطلاعات اين گونه حافظهها با قطع منبع تغذيه "پاك" نميشود. وزن، اندازه و انرژي مصرفي از موارد ديگري هستند كه طراحان اين گونه رايانهها بايد آنها را در نظر بگيرند.
حتي اگر فضاپيماهاي سرنشيندار و بدون سرنشين نيازهاي مشابهي هم داشته باشند، تا همين اواخر امكان استفاده از رايانههاي مشابه در هر دوي آنها وجود نداشت. هيچگاه يك رايانه قدرتمند، مانند آنچه كه در شاتلها وجود دارد، برروي يك ماهواره نصب نشده است. رايانههاي يك شاتل بزرگتر و پرمصرفتر از آن هستند كه در سفينهاي مانند پايونير-10 نصب شده و به خارج از منظومه شمسي پرتاب شوند. ريزپردازندههاي قدرتمند جديد نويد حل شدن اين مشكلات را ميدهند، اما رايانههايي كه در اينجا بررسي كردهايم به دوران قبل از ريزپردازندهها تعلق دارند. همچنين، رايانههاي فضاپيماهاي سرنشيندار براي پروازهاي كوتاه مدت، حداكثر چند هفته، ساخته شدهاند، اما اين وضع با گسترش ايستگاههاي فضايي و دورخيز بشر به سوي سياره سرخ تغيير خواهدكرد. رايانهاي كه براي يك ماهواره يا فضاپيماي اعزام شده به خارج از منظومه شمسي طراحي ميشود، بايد بتواند با مصرف اندك انرژي و براي سالها بدون اشكال كاركند. حتي اگر هر دو فضاپيما، بدون سرنشين و سرنشيندار، نياز به قابليت اعتماد بالا داشته باشند، شرايط متفاوت ماموريت آنها ميزان و نوع قابل اعتماد بودن رايانههايشان را تعيين ميكند.
ناسا در دههها 60 و 70 ميلادي براي توسعه رايانههايي تلاش ميكرد كه بتوانند فشارهاي فيزيكي مرحله پرتاب موشك را تحمل كرده و در شرايط محيطي فضا كاركنند. در انتها، ناسا موفق شد كه فضاپيماهاي پيچيدهاي ساخته و ماموريتهاي جاهطلبانهاي را به سرانجام برساند. حال، ناسا فناوريهاي جديد دلگرمكننده و تجهيزات قابل اعتمادي براي پروازهايش يافته بود. در پروازهاي سرنشيندار تمايل بود كه بيشتر از تجهيزات در دسترس، كه امتحانشان را پس داده اند، استفاده شود. در فضاپيماهاي بدون سرنشين و ماهوارهها دست طراحان براي استفاده از تكنولوژيهاي نوظهور و ابتكاري بازتر بود.
در عوض، هر چند رايانههاي بزرگي كه ناسا در پايگاهها و آزمايشگاههايش به كارگرفته بود، مانند شركتهاي تجاري نياز به پردازش حجم عظيمي از اطلاعات را منعكس ميكردند، اما ناسا تا همين اواخر رايانههاي تجاري معمولي را براي پردازش در "زمان واقعي" به كارنگرفته بود. بنابراين، ناسا ميتوانست با استفاده از نرمافزارهاي ابتكاري ويژه "زمان واقعي"، رايانههاي تجاري موجود در بازار را براي رفع نيازهايش به خدمت گيرد. بازرسيهاي پيش از آغاز پرواز، كنترل ماموريت، شبيه سازي و پردازش تصاوير گرفته شده به وسيله ماهوارهها، از تركيب بيشماري از رايانههاي بزرگ و رايانههاي كوچكتر استفاده ميكنند. پس، در حاليكه سختافزارهاي درون ماهوارهها و فضاپيماها بر اساس نيازهاي ناسا سفارش و طراحي ميشدند، برخورد ناسا با رايانههاي زميني بر اساس نيازهاي نرمافزاري مراكز زميني هدايت ميشد. طبيعتا ابتكارات نرمافزاري كه براي حل يك مسئله در رايانههاي بزرگ طراحي شده، بيشتر امكان دارد در جهان تجاري فراگيرشود تا نرمافزاري كه براي يك ماهواره خاص نوشته شده و شايد در تماميمراحل پرواز ماهواره تنها يكبار اجرا شود. ناسا فنون برنامه نويسي پيشرفتهاي را به دنيا هديه داده است. اين فنون، قوانيني را در بردارند كه به برنامهنويسان اجازه ميدهند نرمافزارهاي بزرگتر و قابل اعتمادتري بنويسند.
حتي اگر نيازها و راه حلها براي رايانههاي بزرگ، رايانه فضاپيماهاي بدون سرنشين و فضاپيماهاي سرنشيندار متفاوت باشند، بازهم چند مسئله مشترك هر سه حوزه را به هم نزديك ميكند. تقريبا در همه اين موارد، مديران ناسا اجازه رشد سيستمهاي مورد نياز را ندادند و سبب شدند تا سختافزار و نرمافزارهاي گران قيمتي براي پروژههاي كوچك و پيش پا افتاده به كار روند. مسلما پيشرفتهاي اخير اجازه ميدهند كه طراحان، سيستمها و فنون رايانهاي آزمايش شده را براي چند پرواز يا پشتيباني از چند ماموريت به كاربرند كه ميتواند به كاهش هزينهها و ايجاد راه حلهاي سفارشي منجر شود. همچنين، امروزه نسبت به رايانههاي كوچك جمع شده در يك شبكه اعتماد بيشتري نسبت به يك رايانه بزرگ وجود دارد. اين رايانهها ميتوانند مراحل گوناگون پردازش يك برنامه را در ميان خود تقسيم كنند؛ و براي رسيدن به يك سطح اعتماد قابل قبول، اقتصاديتر از رايانههاي بزرگ هستند.
ناسا از زمان تاسيس تا به امروز، بدون در نظرگرفتن برخوردش با محاسبات ماشيني و رايانه، نمونههاي باارزشي از رشد توان محاسباتي، گوناگوني و موثربودن رايانهها را ارائه كرده است. سالهاي پاياني دهه 50 به عنوان مبدأ دخالت رايانه در توسعه علم و تجارت آمريكا شناخته ميشود. اشتهاي سيريناپذير اين سازمان به جذب آنچه كه صنايع رايانهاي ميتوانستند ارائه دهند، به توليد تعداد زيادي از جالبترين و خلاقانهترين تجهيزات رايانهاي ساخت دست بشر منجر شده است.