فرمت : WORD تعداد صفحه :37
فهرست
فایل با ساختار جستجوی دودویی
فایل با ساختار درخت جستجوی دودویی نخ کشی شده
فایل با ساختار درخت صفحه بندی شده
فایل با ساختار درخت متعادل
فایل درختی
فایل با ساختار درختB+
فایل با ساختار درختk-d
فایل با ساختار توالی
بسمه تعالی
امتحان میان ترم درس آمار و احتمال2
دانشگاه پیام نور رضوانشهر
سؤال 1) فرض کنیدX1, X2,…,Xn متغیرهای تصادفی مستقل و هم توزیع از یک توزیع یکنواخت وY1,Y2,…,Yn آماره های ترتیبی مربوط به این نمونهn تایی باشند در این صورت توزیع توام را به دست آورید. (2نمره)
سؤال2) طول عمر قطعات تولیدی یک کارخانه دارای میانگین 5 با واریانس1می باشد. این کارخانه محصولات خود را در بسته های 36 تایی به مشتریان خود عرضه می کند. یکی از مشتریان کارخانه محصولات را در صورتی قبول می کند که حداقل 25 درصد از بسته های ارسالی میانگین طول عمری بیشتر از21/5 داشته باشند. احتمال آن را به دست آورید که یک محموله 12 تایی ارسال شده برای این مشتری پذیرفته شود. (2 نمره)
سؤال3) اگرY,X متغیرهای تصادفی با تابع چگالی توام زیر باشند، توزیعZ=X-Y را به دست آورید. (2 نمره)
استفاده از جدول آماری آزاد است
سربلند و پیروز باشید.
ساختارهای درختی
فایل با ساختار درخت جستجوی دودویی
در فایل با ساختار ترتیبی لازمه استفاده از الگوریتم جستجوی دودویی این است که بلاک های داده ای به طور پیوسته ذخیره شده اند اگر بلاک ها به طور ناپیوسته ذخیره و به هم پیوند شده باشند یافتن آدرس بلاک میانی ناممکن است.
فایل با ساختار درخت جستجوی دودویی باn رکورد و کلید اصلیi=1,2,…,n,ki گونهای از درخت دودویی است که دو خاصیت زیر را دارد.
1- هر گره درخت، بسته به طرز پیاده سازی، حداقل سه یا چهار فیلد در هر دو حالت دو تا از فیلدها حاوی نشانه رو به گره های سمت چپ و سمت راست هستندRPTR, LPTR در حالت وجود سه فیلد، فیلد سوم حاوی خود رکورد است. در غیر این صورت در فیلد سوم کلید رکورد قرار دارد و فیلد چهارم حاوی نشانه روی به بلاک داده ای حاوی رکورد است.
2- اگرki کلید یک رکورد باشد کلید تمام رکوردهای موجود در گره های زیردرخت سمت چپ ازki کوچکتر و کلید تمام رکوردهای موجود در گره های زیر درخت سمت راست، از ki بزرگترند،
عملیات در فایل
واکنش رکورد
الگوریتم واکنشی خیلی ساده است سیستم ابتدا به گره ریشه دستیابی پیدا می کند عمل مقایسه بین کلید رکورد مورد نظر و کلید رکورد موجود در گره ریشه انجام می شود، اگر تساوی برقرار باشد، رکورد پیدا شده است وگرنه، یکی از دو گره سمت راست یا سمت چپ گره ریشه مورد دستیابی قرار می گیرد و عمل مقایسه انجام می شود، این عملیات تا پایان یافتن رکورد مورد نظر یا برخورد به نشانه روی تهی تکرار می شود اگر رکورد مورد نظر در سطحk باشد در حافظه اصلی ذخیره شود برای واکنش رکوردk+1 بار دستیابی مستقیم لازم است.
کارایی این ساختار در واکنشیس رکورد وقتی حداکثر است که ژرفای حداقل باشد و زمانی حداقل است که ژرفای درخت حداکثر باشد.
ژرفای درخت زمانی حداکثر است که در هر سطح تنها یک گره وجود داشته باشد در این حالت ژرفای درختN است و متوسط دستیابی (ANA) مستقیم برای واکنشی رکورد برابر است با:
از طرف دیگر ژرفای درخت زمانی در حداقل است که در هر سطح مثلاً سطحk ام، غیر از سطح ریشه دقیقاًk2 گروه وجود داشته باشد. اگر ژرفای درخت راx فرض کنیم با فرض پربودن تمام درخت داریم:
n=2x-1
و متوسط زمان دستیابی لازم برای واکنشی رکورد برابر است با:
می توان نشان داد که عبارت بالا برابر است با:
عمل درج
اگر درخت خالی باشد، رکورد درج شدنی به آسانی درج می شود. اگر درخت خالی نباشد و کلید رکورد کوچکتر ازکلید رکورد و ریشه باشد، رکورد در سمت چپ ریشه درجه می شود و اگر کلید رکورد از کلید ریشه بزرگتر باشد رکورد در سمت راست ریشه درج می شود. این مقایسه کلیدها در هر سطح دیگر هم تکرار می شود تا نقطه منطقی درج رکورد پیدا شود و عمل جایابی زمانی متوقف می شود که با نشانه روی تهی برخورد شود. بدین ترتیب با درج هر رکورد جدید، یک گره در انتهای یکی از مسیرها ایجاد می شود.
عملیات لازم برای درج رکورد چنین است:
یافتن نقطه منطقی درج
خواندن بلاکی که رکورد باید در آن درج شود (یک بلاک از فضای آزاد)
فرمت : WORD تعداد صفحه :28
بافرهای داده USB
کنترلر USB ، باید بافرهایی برای ذخیره دادههایی که دریافت میکند یا دادههایی که آماده فرستادن روی باس هستند، داشته باشد. بعضی از تراشهها مانند NET2888 محصول NetChip ، از رجیسترهای به عنوان بافر استفاده میشکند. در حالی که برخی دیگر ، از جمله EZ-USB شرکت سیپرس [1] از بخشی از حافظه داده به عنوان بافر بهره میبرند.
رجیسترهایی که دادههای رسیده یا منتقل شده را نگهداری میکنند، عموماً دارای ساختار FIFO (اولین ورودی، اولین خروجی) هستند. در هر خواندن از یک FIFO ، بایتی که بیشتر از همه در حافظه بوده است بازگردانده میشود. با هر نوشتن به روی FIFO ، بایت بعد از همه بایتهایی که در FIFO، محلی را که داده بعدی در ن قرار دارد نشان میدهد.
در تراشههای دیگر، مثل سری enCore شرکت سیپرس، بافرهای USB در حافظه داده جاسازی شدهاند و برنامه تراشه هر موقعیت را برای نوشتن یا خواندن از آن انتخاب میکند و اشارهگری که به طور خودکار افزایش یابد تا محل دادة بعدی را مشخص کند. وجود ندارد. بایتهای درون بافر فرستنده USB از پایینترین آدرس به بالاترین آدرس نوشته میشوند و بایتهای بافر دریافت به ترتیب رسیدن، از پایینترین آدرس به بالاترین آدرس ذخیره میگردند. این بافرها ساختار FIFO ندارند ولی گاهی با این نام خوانده میشوند.
برای ایجاد انتقالهای سریعتر، بعضی از تراشهها دو بافر دارند و قادرند دو مجموعه کامل داده در هر جهت را ذخیره کنند. در حالی که یک بلاک داده انتقال می یابد، برنامه تراشه میتواند بلاک داده بعدی را به بافر دیگر بنویسد. به طوری که این بلاک تا وقتی که بلاک اول فرستاده میشود آماده انتقال میگردد. در جهت دریافت نیز. بافر اضافی ما را قادر میسازد قبل از کامل شدن پردازش داده بر روی ترنزکشن قبلی توسط برنامه تراشه، ترنزکشن بعدی دریافت شود. سختافزار به صورت خودکار بین این دو بافر سئویچ میکند.
CPU
واحد پردازش مرکزی (CPU) یک تراشه کنترلی USB ، با اجرای دستورات کدهایی که در تراشه ذخیره شده است، فعالیتهایی تراشه را کنترل میکند. هر CPU از مجموعه دستوراتی پشتیبانی میکند که شامل دستورات زبان ماشین برای انتقال داده، انجام عملوندهای منطقی، و پرشهای برنامه می باشند. این مجموعه دستورات همچنین CPU را قادر میسازد که با SIE ارتباط برقرار کند. CPU ممکن است ساختاری بر اساس یک میکروکنترلر عمومی مانند 8051 داشته باشد یا اینکه فقط به صورت ویژه برای استفاده در دستگاههای USB طراحی شده باشد.
تراشههایی که cpu ندارند ممکن است مجموعه دستوراتی وابسته به ارتباطهای USB داشته باشند یا فقط از یک سری رجیستر برای ذخیره دادههای USB و اطلاعات پیکربندی استفاده کنند. این تراشهها مسیری را برای اضافه کردن قابلیتهای USB به هر میکروکنترلر خارجی ایجاد می کنند.
حافظه برنامه
حافظه برنامه کدهایی را که CPU اجرا میکند نگهداری میکند. این حافظه ممکن است روی تراشه CPU یا تراشهای مجزا باشد.
حافظه برنامه ممکن است از هر نوع حافظهای استفاده کند: Flash EPRON, EEROM, EPOM, ROM یا RAM. همه این حافظهها بجز RAM (بدون باتری)، همیشگی هستند. آنها داده های نوشته شده را به صورت دائم نگهداری می کنند. مقداری این حافظههای برنامه ممکن است حدود کیکلوبایت یا بیشتر باشد. اما تراشههایی که از حافظههای خارجی استفاده میکنند امکان دارد محدودهای در حد مگا بایت را نیز پشتیبانی کنند.
نام دیگر کدهای ذخیره شده در حافظه برنامه، برنامه تراشه است، که مشخص میکند حافظه از نوع همیشگی بوده و مانند ram نمیتوان به راحتی آنها را ویرایش کرد و دوباره بر روی دیسک ذخیره نمود. در این کتاب، از عبارت برنامة تراشه در مورد کدهای برنامه کنترلر استفاده می شود، با وجود اینکه این کدهای ممکن است بر روی انواع حافظههای همیشگی و یا غیر همیشگی ذخیره شوند
ROM (حافظه فقط خواندنی) باید در کارخانه برنامهنویسی شود و قابل پاک کردن نبست. این حافظه فقط برای تولید انبوه کاربرد دارد.
EPROM ( ROM قابل برنامهریزی و پاک شدن) قابل برنامهریزی توسط کاربر است. بسیاری از تراشهها سختافزار و نرم افزار برنامهنویسی ارزان دارند. برای پاک کردن EPROM، تراشه را در پاک کننده EPROM قرار میدهید، در این دستگاه مدارهای تراشه زیر تابش اشعه ماورای بنفش قرار میگیرند. پاک شدن حدود 10 تا 30 دقیقه طول خواهد کشید. سپس تراشه آماده خواهد بود تا دوباره برنامهریزی شود. در اطلاعات فنی این تراشه ها به ندرت به تعداد دفعات ممکن پاک شده اشاره میشود. اما این مقدار حدوداً 100 میباشد.
OTP PROM ها ارزانتر هستند . ساختار آنها شبیه به EPROM ها میباشد و مانند آنها برنامهریزی میشوند. تفاوتشان این است که این تراشهها پنجرههای کوارتز برای پاک کردن ندارند. این حافظه بیشتر در محصولات نهایی استفاده می شوند. بسیاری از CPU ها هر دو نوع حافظه EPROM و OTP PROM را دارا هستند.
Flash EPROM ها حافظههایی با تکنولوژی جدید هستند که قابل پاک شدن به طریقه الکتریکی می باشند و احتیاج به اشعه ماورای بنفش ندارند و معمولاً به ولتاژ برنامهریزی خاص مورد نیاز برخی از EPROM ها احتیاج ندارند. Flash EPROM های موجود قادرند حدود 000/100 بار پاک شده و دوباره برنامهریزی شوند.
[1] - Serial Interface Engine
فرمت : WORD تعداد صفحه :475
پردازنده
یک کامپیوتر از قسمتهای مختلفی تشکیل شده است ولی هیچ کدام از آنها اهمیت پردازنده، (CPU) را ندارند. این واحد قطعه ای مربع شکل از جنس سیلسکون است که به عنوان روح هر کامپیوتر شناخته می شود. پردازنده نقش زیادی در کارآیی کامپیوتر دارد و تولیدکنندگان، قیمت کامپیوتر خود را باتوجه نوع به سرعت پردازنده آنها تعیین می کنند. اگر در صدد خرید کامپیوتر جدید و یا ارتقای کامپیوتر قدیمی خود هستید، لازم است طرز کار پردازنده را بشناسید تا بر این اساس، تصمیمات صحیح را اتخاذ نمائید.
امروزه برای خرید یا ارتقا یک سیستم کامپیوتری انتخابهای بسیاری وجود دارند. البته این جنبة مثبت قضیه است. جنبه منفی آن این است که تنوع زیاد پردازنده ها، باعث گیج شدن خریداران می شود. شرکت Intel به تنهایی بیش از 30 نوع پردازندة مختلف تولید کرده است. AMD و cyrix هم بیش از این مقدار، پردازنده وارد بازار نموده اند.
تکنوژی پردازنده ها به سرعت در حال پیشرفت است به طوری که حتی عمر مفید سیستمهای دارای پردازنده های سریع، حداکثر 5 سال می باشد. ممکن است این زمان طولانی به نظر برسد، ولی آن روی این قضیه، قانون Moor است که توسط مؤسس اینتل یعنی گوردن مورد مطرح شده است. این قانون می گوید که قدرت پردازنده ها ) که معیاری است از تعداد مداراتی که می توان در داخل یک فضای ثابت جای داد) هر ساله دو برابر می شود. این فصل به شما کمک می کنند تا طرز کار پردازنده های سازگار با X86 را بهتر درک نمائید.
در این قسمت، در مورد پردازنده های اینتل و پردازنده های سازگار با ردة X86 که توسط شرکتهای چون Cyrix, AMD و IBM عرضه شده اند، بحث خواهیم کرد. همچنین پردازنده های تقویت شده مانند پردازنده های OverDrive از شرکت اینتل و محصولات مشابه از شرکتهای Evergreen و Kingstone و دیگران مورد بررسی قرار خواهند گرفت. با وجود این که این پردازنده ها از نظر سرعت و طرز کار با هم تفاوت دارند، ولی همگی از قابلیت اجرای سیستم عاملهای مختلف از جمله DOS، ویندوز 1/3، ویندوز و ویندوز NT و نیز برنامه های کاربردی سازگار با آنها برخوردارند.
کاوش در پردازنده ها
پردازنده ها کارهای خود را به کمک اعمالی ساده ولی با سرعت بالا انجام می دهند. تنوع در طراحی پردازنده ها ثابت می کند که برای انجام یک عمل، بیش از یک راه وجود دارد.
به طور مثال، پردازنده های Power PC که در کامپیوترهای Power Mac مورد استفاده قرار می گیرند، مجموعه ای از دستورالعمل های نسبتاً ساده، کوتاه و سریع را برای انجام محاسبات به کار می برند. برعکس، پردازنده های P5 و P6 اینتل از مجموعة دستورالعمل های پیچیده ای استفاده می کنند که نیاز به ترانزیستورهای بسیار زیادی دارند.
با وجود تمامی این تفاوتها، همه پردازنده ها از ترفندهای دیگری نیز برای انجام سریع عملیات استفاده می کنند و در یک زمان بیش از یک عمل را انجام می دهند. علاوه بر آن، همان عناصری که بر عملکرد دازنده تأثیر می گذارند برروی عملکرد تراشة تقویت شده آن پردازنده نظیر OverDrive شرکت Intel تأثیر می گذارند.
نکته فنی: بهترین مشخصه عملکرد یک پردازنده، سرعت ساعت آن است که نشان می دهد پردازنده عملیات اصلی را چند میلیون بار در ثانیه می تواند انجام دهد. برای سالهای متمادی، یک قاعده کلی وجود داشت و آن این بود که هر چه سرعت ساعت پردازنده بیشتر باشد، پردازنده سریعتر خواهد بود. امروزه این مفاهیم کمی پیچیده تر شده اند.
سرعـت ساعت (Clock speed) تقریباًَ به سرعت انجام عملیات در داخل پردازنده اطلاق می گردد. اغلب پردازنده ها با 2/1 یا 3/1 سرعت داخلی خود با سایر اجزای سیستم ارتباط برقرار می کنند. پردازنده های پنتیوم 100، 133، 166 و 200 مگاهرتز همگی با سرعت 66 مگاهرتز با اجزای خارج از خود در ارتباط هستند و این بدین معنا است که حتی با وجود سرعت بسیار بالاتر در پردازنده های پنتیوم 200 مگاهرتزی، سرعت دستیابی به حافظه و حافظه ثانویه، تغییری نکرده است. مسئله مهمتر این است که بعضی از پردازنده ها می توانند در هر پالس ساعت، کارهای بیشتری را نسبت به سایر پردازنده ها انجام دهند. به همین دلیل است که یک پردازنده Cyrix 6X86 با سرعت 150 مگاهرتز می تواند از لحاظ کارآیی با یک پردازنده پنتیوم 200 مگاهرتز برابری نماید. عجیب تر اینکه کارآیی یک پنتیوم پرو 220 مگاهرتزی از کارآیی یک پنتیوم 200 مگاهرتزی MMX بیشتر است، اما تحت سیستم عامل ویندوز این موضوع برعکس می شود. (پنتیوم پرو یک پردازنده 32 بیتی است که کارآیی آن تحت ویندوز NT بیشتر است. به عبارت دیگر ارتباط عمیقی بین سرعت کامپیوتر و آنچه که کامپیوتر انجام می دهد وجود دارد).
باتوجه به این مسئله، رقبای اینتل، پردازنده های خود را با معیاری به نام Performance Rating P-rating که به اختصار گفته می شود با بازار معرفی می کنند. در این معیار، تولید- کنندگان پردازنده، با استفاده از روشهای متعارف، پردازنده های رده پنتیوم را با پردازنده خود مقایسه می کنند تا خریدار بتواند به سرعت، پردازنده های اینتل را با پردازنده های غیراینتل X86 مقایسه کند.
به طور مثال، شرکت Cyrix،پردازنده 150 مگاهرتزی 6X86 خود را 6X86P200+ نامگذاری کرده است آن هم به این دلیل که P-rating، کارآیی آن را تقریباً مساوی یا بیشتر از کارآیی پنتیوم 200 نشان می دهد. به همین ترتیب، پردازنده K5-PR166 از شرکت AMO با سرعت 117 مگاهرتز کار می کند، ولی آزمایش نشان داده که کارآیی آن نزدیک به کارآیی پنتیوم 166 مگاهرتزی اینتل می باشد.
وظیفة معیارهای Prating تعیین کارآیی پردازنده ها می باشد ولی ممکن است سرعت ساعت واقعی کامپیوتر را نشان بدهید. این موضوع زمانی مصداق می یابد که بخواهید کارآیی پردازنده های مجهز به تکنولوژی MMX[1] را مورد مقایسه قرار می دهد.
چون اینکه در حال حاضر محکی برای ارزیابی کارآیی پردازنده های MMX وجود ندارد، بنابراین در حال حاضر نمی توان گفت که سرعت داخلی ضعیف پردازنده های 6x86 شرکت Cyrix باعث می شود که این پردازنده ها، عملیات MMX را بسیار کندتر از پنتیوم اینتل انجام دهند.
ساختار کلی یک پردازنده
یک پردازندة معمولی شامل میلیونها ترانزیستور کوچک است که در داخل یک مدار به صورت مجتمع قرار گرفته اند. طول ضلع این مدار مربع یا مستطیل شکل کمتر از 2 اینچ است.
آنچه که شما می بینید یک قطعه از جنس سرامیک است که این ترانزیستورهای بسیار ریز را محافظت نموده و یک وسیلة دیگر به نام هیت سینک که برای خروج حرارت از داخل پردازنده بروی آن قرار گرفته است.
روی این جدار سرامیکی ممکن است یک لایة SILK Screen مشاهده کنید که برای مشخص نمودن مدل پردازنده و کارخانة سازنده آن مورد استفاده قرار می گیرد. شرکت اینتل اخیـراً بـرای جلوگیـری از تقلیـد برخی از شرکتها، شماره سریال پردازنده را روی آن حک می کند.
پردازنده های جدید، ساختمانی عجیب و پیچیده دارند که با عملکرد متقابل اجزای درون این ساختمان پیچیده، یک دستگاه کامپیوتر راه اندازی می شود. اجزای اصلی هر پردازنده عبارتند از:
گذرگاه داده ها (Data bus)گذرگاه آدرس (Address bus)حافظه اصلیمجاری ارتباطی دستورالعملها (Instruction pipelines)واحد محاسبات اعشاری (Floating point Linit)دستورالعمل های (MMX Instructions) MMXگذرگاه داده ها (Data Bus)
گذرگاه داده ها مجموعه ای از سیم ها و مدارات است که وظیفة انتقال اطلاعات به داخل و یا خارج از پردازنده را به عهده دارند. همانند یک بزرگراه، هر چه این گذرگاه عریض تر باشد، عبور داده ها روانتر شده و انتقال بیشتری صورت می گیرد. امروزه پردازنده های پنتیوم و پنتیوم پرو دارای گذرگاه های خارجی 64 بیتی برای داده ها هستند که می توانند در یک زمان 8 بایت داده را منتقل کنند، در صورتی که پردازنده های قدیمی تر 486، از گذرگاه باریکتر 32 بیتی استفاده می کردند. با افزایش سرعت ساعت، پهنای گذرگاه به مسئله ای بسیار حساس تبدیل می شود به طوری که پردازنده ها در حالات خوب، قادر خواهند بود در یک زمان چندین کار مختلف را انجام دهند. در مادربردهایی که با سرعت 60 تا 66 مگاهرتز کار می کنند هر چه گذرگاه داده ها عریض تر باشد. مقدار بیشتری از داده ها می توانند از حافظه به پردازنده منتقل شوند. بنابراین پردازنده باتوجه به سرعت ساعت داخلی بسیار بالای خود بهتر می تواند با داده ها و فرامین کار کند. علاوه بر آن، پردازنده های پنتیوم پرو برای نقل و انتقال داده ها از روشی به نام bursting استفاده می کند تا در یک پالس، حجم زیادی از اطلاعات را وارد حافظة پنهان نماید. به طور کلی عرض گذرگاه داده ها، در خارج و داخل پردازنده یکسان است. با این حال، بعضی از پردازنده های قدیمی نظیر Intel 386SX و Cyrix 486 SLX برای کاهش هزینه از گذرگاه خارجی با عرض کمتری استفاده می کردند، به طوری که عرض گذرگاه داخلی آنها 32 و عرض گذرگاه خارجی آنها 16 بیت بود. نتیجة این کار، مانند این است که در یک بزرگراه بعضی از خطوط حرکت را مسدود نماییم که این کار باعث کندی ترافیک خواهد شد. برعکس، در پردازندة پنتیوم از یک جفت گذرگاه داخلی 32 بیتی استفاده می شود که می تواند زوج خوبی برای گذرگاه خارجی 64 بیتی باشد، چون گذرگاه 64 بیتی می تواند در یک عمل، هر دو مجرا را پر کند.
اگر گذرگاههای داده اینقدر اهمیت دارند چرا آنها را به صورت 128 بیتی یا حتی 256 بیتی نمی سازند؟ جواب این سؤال هزینه است. در طراحی پردازنده، لازم است که تعدادی از پین- های آن را به گذرگاه داده ها اختصاص دهند که این عمل باعث افزایش حجم مدار پردازنده و سوکت آن و همچنین افزایش خطوط ارتباطی روی مادربرد می شود. به عنوان مثال، پردازندة 386DX دارای132 پین وپردازنده 386SX با گذرگاه خارجی 16 بیتی دارای 100 پین می باشد. پردازندة پنتیوم 64 بیتی، از 296 پین برای اتصال به مادربرد استفاده می کند. البته تمامی این پین ها برای داده ها به کار نمی رود ولی عریض شدن گذرگاه به معنای بالارفتن کارآیی آن است.
سرعت گذرگاه نیز نقش مهمی دارد. درست مثل بزرگراه هایی که می توانند محدودیت سرعت داشته باشند، گذرگاه داده ها در داخل پردازنده های جدید، معمولاً سریعتر از گذرگاه داده ها در خارج پردازنده می باشد. مدارات داخل پردازنده ها می توانند با سرعت 200 مگاهرتز یا بیشتر کار کنند، اما سیم های طولانی روی مادربرد، قادر به کار با این سرعت نیستند. امروزه اغلب مادربردها با سرعت 60 یا 66 مگاهرتز عمل می کنند. البته بعضی از مادربردهای جدید باسرعتی معادل 75 مگاهرتز کار می کنند. سرعت انتقال اطلاعات و داده ها در داخل پردازنده ها، 2 یا 3 برابر سرعت انتقال اطلاعات در خارج پردازنده است. طراحان سیستـم به این نتیجه رسیده اند که جریان پیوستة داده ها از اتلاف وقت پردازنده جلوگیری می نماید. در حقیقت، مهندسین سخت افزار، یکی از صدها ترفند خود را برای تداوم حرکت پیوسته داده ها به کار بردند و برای برطرف نمودن سرعت کم گذرگاه روی مادربرد نسبت به پردازنده، از حافظة سریع cache استفاده کرده اند.
گذرگاه آدرس (Address Bus)
این گذرگاه همانطور که از اسمش پیداست از یک سری سیم تشکیل شده است که وظیفة آنها حمل بیتهایی است که برای مشخص نمودن محل قرارگرفتن اطلاعات در حافظة سیستم مورد استفاده قرار می گیرند. هر چه این عدد (تعداد بیتها) بزرگتر باشد، پردازنده می تواند به حافظة فیزیکی بیشتری دسترسی یابد. به منظور تعیین ظرفیت حافظة قابل دسترسی، عدد 2 رابه توان تعداد بیتها برسانید. بدین ترتیب یک گذرگاه 32 بیتی (با عرض 32 بیت می تواند به 232 بیت از حافظه یا 296 و 967 و 294 و 4 بیت دسترسی داشته باشد.
شرکت اینتل در کلیة پردازنده های خود، (از پردازندة 386 گرفته تا پنتیوم)، از 32 بیت برای گذرگاه آدرس استفاده کرده است که امکان آدرس دهی تا 4 گیگابایت حافظه سیستم را فراهم می نماید. پنتیوم پرو و پنتیوم II که اغلب در ایستگاه های کاری و سرویس دهنده های پرقدرت مورد استفاده قرار می گیرند از گذرگاه ادرس 36 بیتی برای دستیابی به 64 گیگابایت حافظه سیستم استفاده می کنند. پردازنده P7 که احتمالاً در سال 1999 وارد بازار می شود از 64 بیت برای گذرگاه آدرس استفاده می نماید که در این صورت می تواند یک ترابایت (Tra byte) داده را آدرس دهی نماید.
حافظة پنهان اولیه (L1 Cache)
از چند سال پیش، طراحی حافظة پنهان مورد توجه طراحان پردازنده قرار گرفته است. این حافظة کوچک و سریع می تواند با در دسترس نگه داشتن اطلاعات و دستورالعمل هایی که اغلب مورد استفاده قرار می گیرند، باعث افزایش کارآیی دستگاه گردد.
دو نوع حافظه پنهان وجود دارد. حافظة پنهان اولیه که در داخل پردازنده قرار گرفته است و حافظه پنهان ثانویه که در خارج پردازنده قرار گرفته و بزرگتر از حافظه پنهان اولیه است. حافظه های پنهان، بخش های ساده ای نیستند. حافظه پنهان اولیه مقدار زیادی از فضای مفید پردازنده را مصرف می نماید و با استفاده از الگوریتم های پیچیده خود، پیش بینی می کند که پردازنده، در مراحل بعدی پردازش به چه اطلاعاتی نیاز خواهد داشت. چون این موضوع باعث بالارفتن کارآیی سیستم می شود، اشغال فضای پردازنده توسط حافظه پنهان، نادیده گرفته می شود. درک اینکه چرا از حافظة پنهان استفاده می شود واضح است. پردازنده با سرعت بیشتری می تواند بیتهای اطلاعاتی را از فضای داخل خود بدست آورد تا اینکه آنها را از حافظة اصلی سیستم بیرون بکشد. پس هر چه حافظة پنهان درون پردازنده بزرگتر باشد کارآیی نیز بیشتر است. اگر کد یا اطلاعات مورد نیاز پردازنده در حافظة پنهان وجود نداشته باشد، پردازنده مدتی را برای این جستجو از دست می دهد. به همین دلیل الگوریتم های پیچیده ای برای پیش مرور اطلاعات مورد نیاز پردازنده به کار گرفته می شوند تا بتوانند داده- های مناسب را در دسترس پردازنده قرار دهند.
اولین پردازنده شرکت اینتل که از یک حافظة پنهان داخلی استفاده نموده، 486 بود. در این پردازنده یک حافظة پنهان 8 کیلوبایتی برای دستورالعمل ها و داده ها وجود داشت. در پنتیوم، این مقدار حافظه پنهان دو برابر شده است و برای داده ها و دستورالعملها، یک حافظه 8 کیلوبایتی جداگانه در نظر گرفته شده است.
همین کار در پنتیوم پرو نیز انجام شد. حتی حافظه های پنهان بزرگتری نیز در تراشه های جدید وجود Cyrix AMD وجود دارد. پردازنده های K6 و 6x86Mx، ه ردو از 64 کیلوبایت حافظة پنهان اولیه استفاده می کنند.
واحد محاسبات اعشاری (Floating-Point unit)
واحد محاسبات اعشاری[2] یک پردازنده مسئول محاسبة اعداد و مقادیر اعشاری نظیر 000001/3 می باشد. از آنجا که اکثر نرم افزارها از ریاضیات اعشار (Floating-Point Arithmetic) استفاده نمی کنند، بنابراین واحد محاسبات اعشاری بیکار می ماند، گرچه نرم- افزارهایی مانند ویرایش عکس (Photo Editig)، طراحی سه بعدی (3-D design) و CAD که به عملیات اعشاری نیاز دارند، شدیداً به واحد محاسبات اعشاری وابسته هستند. همچنین بازیهای سه بعدی که به محاسبات اعشاری نیاز دارند باعث شده است که واحد محاسبات اعشاری از سوی اکثر کاربران به کار گرفته شود، ولی وجود آن برای اجرای بعضی از نرم افزارها لازم است. از همان ابتدای تولید پردازنده های رده پنتیوم، تمام پردازنده های اینتل دارای واحد محاسبات اعشاری بوده اند. گرچه پردازنده های رده 486 DX، اولیه پردازنده هایی بودند که امکانات مربوط به محاسبات اعشاری را فراهم کردند، اما در 486 SX که پردازندة ارزانتری بود واحد محاسبات اعشاری به کار گرفته نشد.
رقابت بین cyrix, IBM, AMD در طراحی پردازنده ها باعث شده که آنها نیز امکانات مربوط به محاسبات اعشاری را در نظر داشته باشند.
دستورالعمل های MMX
این مجموعه دستورالعملها که به دستورالعمل های X86 اضافه شده اند، 75 دستورالعمل MMXمی باشند که در داخل پردازنده های پنتیوم MMX، پنتیوم AMD K6, II و Cyrix 6X86MX وجود دارند وبرای تقویت تصاویر گرافیکی، ویدیوئی و سایر عملیات چندرسانه ای در نظر گرفته شده اند. شرکت اینتل ادعا می کند که این دستورالعملها می توانند در بعضی از عملیات، کارآیی را تا 400 درصد افزایش دهند ولی ابتدا باید نرم افزار، برای کار با MMX نوشته شده باشد (شکل 2ـ 6) بسیاری از شرکتها، نرم افزارهایی تولید می کنند که می توانند از دستورالعمل های MMX استفاده کنند مانند بازی کامپیوتری Pod racing از شرکت Ubi Soft. اخیراً میکروسافت نسخه های MMX نرم افزار Active Movie و نسخة API MMX های مربوط به تولید بازیهای کامپیوتری مبتنی بر Direct X را به بازار عرضه نموده است.
[1] - در پردازنده های MMX، دستورالعمل هایی به پردازنده اضافه شده است که باعث می شوند کارآرایی مربوط به انجام وظایف چند رسانه ای افزایش یابد. Multi Media extensions
[2] - FPU
فرمت : WORD تعداد صفحه :40
شامل :
بخش اول : سیستم عامل چیست و چه وظایفی دارد ؟
بخش دوم : نصب Linux
بخش سوم : آشنایی با محیط، تعدادی از دستورات پرکاربرد ونحوه نصب نرم افزار درLinux :
بخش اول
سیستم عامل چیست و چه وظایفی دارد ؟
سیستم عامل برنامه ای است که مدیریت سخت افزار و نرم افزار کامپیوتر را به عهده می گیرد . در ابتدا سیستم عامل ها به منظور انجام یک سری عملیات که باید بوسیله سخت افزار مرتباً تکرار می شد طراحی شدند . این عملیات عمدتاً شامل مدیریت فایلها ، اجرای برنامه ها و دریافت دستورات از کاربر بودند . ارتباط با کامپیوتر و سیستم عامل آن از طریق یک سطح ارتباطی ایجاد شده برای کاربر User
( intet face ) صورت می گیرد این واسط کاربر به سیستم عامل اجازه می دهد تا دستورات را از کاربر دریافت نموده و تغییر کند . در نتیجه تنها کافی است که برای انجام عملیات دستوری به سیستم عامل داده شود مانند خواندن فایل یا تایپ کردن یک سند . سطح ارتباطی که یک سیستم عامل برای کاربر ایجاد می کند ممکن است بسادگی خط فرمان ( command )line ) باشد یا بفرم های پیچیده تر مثل ایجاد منوها (menus ) و icon ها روی desktop .
سیستم عامل همچنین برنامه های نرم افزاری را نیز مدیریت می نماید . برای تایپ یک سند یا اجرای محاسبات ریاضی نیاز به برنامه های نرم افزاری ویژه ای می باشد . یک editor مثالی است از یک برنامه نرم افزاری که امکان تایپ یک سند ، تغییر دادن آن و اضافه کردن متن جدید به آن را فراهم می آورد .
editor خود نیز یک برنامه نرم افزاری است که تشکیل شده از یک سری دستورات که باید بوسیله کامپیوتر اجرا شوند . برای اجرای این برنامه ، ابتدا باید برنامه در حافظه load شود و سپس دستورات آن اجرا شوند . سیستم عامل عملیات lode و اجرای کلیه برنامه ها را کنترل می کند . هنگامیکه می خواهید از یک editor استفاده کنید به سیستم عامل دستور دهید برنامه نرم افزاری editor را در حافظه load کرده و اجرا نماید .
مدیریت فایل ، مدیریت برنامه و ارتباط با کاربر از مشخصات اولیه و قدیمی مشترک بین تمام سیستم عامل ها می باشد . سیستم عامل Linux مانند سایر نسخه های سیستم عامل Unix دو مشخص مهم دیگر نیر به این قابلیت ها می افزاید . Linux توانایی اجرای چند برنامه یا وظیفه مختلف را بطور همزمان داراست ( multi tashing ) و همچنین توانایی ارتباط با چند کاربر را بطور همزمان دارا می باشد ( multiuser ) . بعنوان یک سیستم عامل چند وظیفه ای ،Linux قادر است چندین کار را بطور همزمان انجام دهد . مثلاً می توان یک فایل را ویرایش کرد در حالیکه در همان زمان فایل دیگری در حال چاپ شدن می باشد . شما مجبور نیستید صبر کنید تا چاپ آن فایل تمام شود و سپس فایل مورد نظر خود را ویرایش کنید .
بعنوان یک سیستم عامل چند کاربره (multi user ) ، کاربرهای مختلف می توانند رادار سیستم شوند (fay in ) و از طریق terminal های مجزا با سیستم ارتباط برقرار کنند .
در ابتدا سیستم عالم ها به منظور افزایش راندمان سخت افزار طراحی شدند . هنگامیکه در ابتدا کامیپیوتر ها ساخته شدند ، توانائیهای آنها محدود بود و سیستم عامل ها برای استفاده حداکثر از این توانایی تولید می شدند . در نتیجه کلیه سیستم عامل ها با ایده اصلی مهم بودن سخت افزار و نه کاربر ایجاد می شوند ، لذا بسیار خشک و بی انعطاف بودند و کاربران را مجبور به پیروی از محدودیتهای سخت افزاری می نمودند . ولی سیستم عامل Linux با هدف انعطاف پذیر بودن و به سادگی قابل استفاده بوده برای کاربران طراحی شده است . Linux همان انعطاف پذیری که حین طراحی unix لحاظ شده را دارا می باشد و این به دلیل تحقیقات زیاد و ادامه دار برای طراحی این سیستم عامل می باشد .
سیستم عامل unix بوسیله ( Ken thompso ) در آزمایشگاههای AT&T Bel l در اواخر دهه 60 و اوایل دهه 70 میلادی طراحی و تولید شد . unix بسیاری از دستاوردهای جدید در طراحی سیستم عامل را بطور یکی در خود جمع نمود . در ابتدا این سیستم عامل بعنوان سیستم عاملی برای افرادی که تحقیقات علمی انجام می دادند طراحی شد . یکی از اهداف اصلی ، ایجاد سیستمی بود که بتواند نیازهای در حال تغییر این افراد را تامین کند . برای این منظور تاپسون ناچار به طراحی سیستمی بود که بتواند از عهده وظایف کاملاً متفاوتی برآید . در نتیجه انعطاف پذیری از راندمان سخت افزاری مهمتر جلو نمود . مانند unix ، Linux نیز از این توانایی برخوردار است که بتواند از عهده وظایف متفاوت و وسیعی که هر کاربر از آن انتظار دارد برآید .
فرمت : WORD تعداد صفحه :33
از نظر مجازی . تمام کامپیوتر ها راهکاری را فراهم می کنند تا قطعات دیگر (مثل I/O و حافظه ) ،در کار عادی پردازنده وقفه ایجاد کنند .جدول زیر متداول ترین وقفه ها را نشان می دهد .
جدول : دسته بندی وقفه هابرنامه وقفه هایی که در اثر بعضی از شرایط حاصل از اجرایی یک دستور العمل ،مثل سرریز ، تقسیم بر صفر ، سعی در اجرای دستور العمل نامعتبر ماشین ، و خروج از فضای حافظه مجازی رخ می دهند .
تایمر وقفه ای که توسط تایمر موجود در پردازنده ایجاد می شود . این وقفه موجب می شود سیستم عامل بعضی از اعمال را به طور منظم انجام دهد .
I/O وقفه ای که توسط کنترلگر I/O ایجاد می شود تا کامل شدن یک عملیات یا وجود خطاهایی را در انجام عملیات اعلان کند .
خرابی سخت افزار این وقفه در اثر خرابی های مثل خرابی منبع تغذیه یا خطای توازن در حافظه رخ می دهد .
وقفه ها ابتدا برای بهبود کارایی پردازنده ایجاد شدند . به عنوان مثال ، اغلب دستگاه های I/O خیلی کندتر از پردازند ه اند . فرض کنید پردازنده ای بر اساس الگوی چرخ داده هایی را به چاپگر ارسال می کند پس از هر عملیات نوشتن ، پردازنده باید متوقف شود و منتظر بماند تا چاپگر آمادگی خودش را اعلان کند . مدت این انتظار ممکن است صدها یا هزاران برابر چرخه های دستور العملی باشد که با حافظه کار ندارند . بدیهی است که زمان CPU به هدر می رود .
در این شکل ، برنامه کاربر در بین فراخوانی های دستورالعمل WRIT (جهت عمل نوشتن ) ،پردازش هایی را انجام می دهد . مجموعه دستورات 1 و 2 و 3 فاقد I/O هستند فراخوانی WRITE منجر به اجرای برنامه I/O می شود که یک برنامه سودمند سیستم است وعمل I/O واقعی را انجام می دهد . این برنامه I/O شامل سه بخش است :
دنباله ای از دستور العمل ها که درشکل مشخص شد و عمل I/O واقعی را انجام می دهند این عملیات ممکن است داده های خروجی را در میانگیری ذخیره کند و پارامترهایی را برای فرمان دادن به دستگاه آماده نماید .فرمان I/O واقعی ، بدون استفاده از وقفه ها ، وقتی این فرمان صادر می شود ، برنامه ممکن است منتظر دستگاه I/O بماند تا این دستگاه وظیفه اش را انجام دهد ( یا به طور متناوب ، وضعیت دستگاه I/O را کنترل نماید تا مشخص شود عمل I/O تمام شد یا خیر ).دنباله ای از دستور العمل ها که در شکل با شماره 5 مشخص شد و عملیات را کامل می کند . این عملیات ممکن است برچسبی را مقدار دهد که نشان دهنده موفقیت یا شکست آن باشد .چون کامل شدن عمل I/O ممکن است مدت زیادی طول بکشد ، برنامه I/O منتظر می ماند تا عمل I/O کامل شود . لذا برنامه I/O در نقطه فراخوانی WRITE به مدت زیادی منتظر می ماند .
وقفه ها و چرخه دستور العملبا استفاده از وقفه ها ، وقتی که عمل I/O در حال انجام است ،پردازنده می تواند دستور العمل های دیگری را اجرا کند . جریان کنترل را در شکل در نظر بگیرید . همانند قبل ،برنامه کار به نقطه ای می رسد که WRITE را فراخوانی می کند که یک فراخوان سبستم است . برنامه I/O که به این روش فراخوانی شد . فقط شامل کد آماده سازی و فرمان I/O واقعی است . پس از اجرای این دستور العمل ها ،کنترل به برنامه کاربر بر می گردد . در همین زمان ،دستگاه خارجی مشغول پذیرش داده ها از حافظه کامپیوتر و چاپ کردن آن است . این عملیات I/O به طور همزمان با دستور العمل های برنامه کار در حال اجرا است .
وقتی دستگاه خارجی آماده ارائه خدمات شد ، یعنی آماده شد تا داده های بیشتری را از پردازنده بپذیرد ، قطعه I/O مربوط به آن دستگاه خارجی ، سیگنال درخواست وقفه را به پردازنده می فرستد . پردازنده در پاسخ به این درخواست وقفه ، عمل برنامه فعلی را به تعویق می اندازد ، به برنامه ای می رود تا به آن دستگاه I/O خدمات دهد و پس از ارائه خدمات به آن دستگاه ،اجرای برنامة به تعویق افتاده را از سر می گیرد . برنامه ای که در اثر وقوع وقفه اجرا می شود تا به آن دستگاه I/O خدمات دهد ،اداره کننده وقفه نام دارد