حافظه با هدف ذخیره سازی اطلاعات دائم ، موقت در کامپیوتر استفاده می گردد. از نمونه حافظه ها می توان نمونه های زیر را معرفی کرد .
RAM ، ROM ، Cache ، Dynamic RAM ، Static RAM ، Flash Memory ، Virtual Memory ، Video Memory ، BIOS
استفاده از حافظه صرفا" محدود به کامپیوترهای شخصی نبوده و در دستگاههای متفاوتی نظیر : تلفن های
سلولی، PDA ، رادیوهای اتومبیل ، VCR ، تلویزیون و ... نیز در ابعاد وسیعی از آنها استفاده بعمل می
آید.هر یک از دستگاههای فوق مدل های متفاوتی از حافظه را استفاده می نمایند.
مبانی اولیه حافظه با اینکه می توان واژه " حافظه " را بر هر نوع وسیله ذخیره سازی الکترونیکی اطلاق کرد، ولی اغلب از واژه فوق برای مشخص نمودن حافظه های سریع با قابلیت ذخیره سازی موقت استفاده بعمل می آید. در صورتیکه پردازنده مجبور باشد برای بازیابی اطلاعات مورد نیاز خود بصورت دائم از هارد دیسک استفاده نمائد، قطعا" سرعت عملیات پردازنده ( با آن سرعت بالاکند خواهد گردید. زمانیکه اطلاعات مورد نیازپردازنده در حافظه ذخیره گردند، سرعت عملیات پردازنده از بعد دستیابی به داده های مورد نیاز بیشتر خواهدگردید. از حافظه های متعددی بمنظور نگهداری موقت اطلاعات استفاده می گردد.مجموعه متنوعی ازانواع حافظه ها وجود دارد . پردازنده باتوجه به ساختار سلسله مراتبی فوق به آنها دستیابی پیدا خواهد کرد. زمانیکه در سطح حافظه های دائمی نظیرهاردو یا حافظه دستگاههائی نظیر صفحه کلید،اطلاعاتی موجود باشد که پردازنده قصد استفاده از آنان راداشته باشد ، می بایست اطلاعات فوق از طریق حافظه RAM در اختیار پردازنده قرار گیرند. در ادامه پردازنده اطلاعات و داده های مورد نیاز خود را در حافظه Cache و دستورالعمل های خاص عملیاتی خود رادر ریجسترها ذخیره می نماید.تمام عناصر سخت افزاری پردازنده، هارد دیسک ، حافظه و و عناصر نرم افزاری ( سیستم عامل و...)بصورت یک گروه عملیاتی بکمک یکدیگر وظایف محوله را انجام می دهند . بدون شک در این گروه " حافظه" دارای جایگاهی خاص است . از زمانیکه کامپیوتر روشن تا زمانیکه خاموش می گردد ، پردازنده بصورت پیوسته و دائم از حافظه استفاده می نماید. بلافاصله پس از روشن نمودن کامپیوتر اطلاعات اولیه برنامه
POST از حافظه ROM فعال شده و در ادامه وضعیت حافظه از نظر سالم بودن بررسی می گردد عملیات
سریع خواندن ، نوشتن .در مرحله بعد کامپیوتر BIOS را ازطریق ROM فعال خواهد کرد. BIOS اطلاعات
اولیه و ضروری در رابطه با دستگاههای ذخیره سازی، وضعیت درایوی که می بایست فرآیند بوت از آنجا
آغاز گردد، امنیت و ... را مشخص می نماید. در مرحله بعد سیستم عامل از هارد به درون حافظه
RAM استفرار خواهد یافت . بخش های مهم و حیاتی سیستم عامل تا زمانیکه سیستم روشن است در حافظه
ماندگار خواهند بود. در ادامه و زمانیکه یک برنامه توسط کاربر فعال می گردد، برنامه فوق در حافظه
RAM مستقر خواهد شد. پس از استقرار یک برنامه در حافظه و آغاز سرویس دهی توسط برنامه مورد نظر
در صورت ضرورت فایل های مورد نیاز برنامه فوق، در حافظه مستفر خواهند شد.و در نهایت زمانیکه به
حیات یک برنامه خاتمه داده می شود (Close) و یا یک فایل ذخیره می گردد ، اطلاعات بر روی یک رسانه
ذخیره سازی دائم ذخیره و نهایتا" حافظه از وجود برنامه و فایل های مرتبط ، پاکسازی ! می گردد.
همانگونه که اشاره گردید در هر زمان که اطلاعاتی ، مورد نیاز پردازنده باشد، می بایست اطلاعات درخواستی
در حافظه RAM مستقر تا زمینه استفاده از آنان توسط پردازنده فراهم گردد. چرخه درخواست اطلاعات
موجود درRAM توسط پردازنده ، پردازش اطلاعات توسط پردازنده و نوشتن اطلاعات جدید در حافظه یک
سیکل کاملا" پیوسته بوده و در اکثر کامپیوترها سیکل فوق ممکن است در هر ثانیه میلیون ها مرتبه تکرارگردد
نیاز به سرعت دلیلی بر وجود حافظه های متنوع چرا حافظه در کامپیوتر تا بدین میزان متنوع و متفاوت است ؟ در پاسخ میتوان به موارد ذیل اشاره نمودپردازنده های با سرعت بالا نیازمند دستیابی سریع و آسان به حجم بالائی از داده ها بمنظور افزایش بهره وریو کارآئی خود می باشند.. در صورتیکه پردازنده قادر به تامین و دستیابی به داده های مورد نیاز در زمان
مورد نظر نباشد، می بایست عملیات خود را متوقف و در انتظار تامین داده های مورد نیاز باشد. پردازند ه
های جدید وبا سرعت یک گیگا هرتز به حجم بالائی از داده ها ( میلیارد بایت در هر ثانیه ) نیاز خواهند داشت .پردازنده هائی با سرعت اشاره شده گران قیمت بوده و قطعا" اتلاف زمان مفید آنان مطلوب و قابل قبول
نخواهد بود. طراحان کامپیوتر بمنظور حل مشکل فوق ایده " لایه بندی حافظه " را مطرح نموده اند. در این
راستا از حافظه های گران قیمت با میزان اندک استفاده و از حافظه های ارزان تر در حجم بیشتری استفاده
بعمل می آید. ارزانترین حافظه متدواول ، هارد دیسک است . هارد دیسک یک رسانه ذخیره سازی ارزان
قیمت با توان ذخیره سازی حجم بالائی از اطلاعات است . با توجه به ارزان بودن فضای ذخیره سازی اطلاعات
بر روی هارد، اطلاعات مورد نظر بر روی آنها ذخیره و با استفاده از روش های متفاوتی نظیر : حافظه
مجازی می توان بسادگی و بسرعت بدون نگرانی از فضای فیزیکی حافظه RAM ، از آنها استفاده نمود.
حافظه RAM سطح دستیابی بعدی در ساختار سلسله مراتبی حافظه است . اندازه بیت یک پردازنده نشاندهنده
تعداد بایت هائی از حافظه است که در یک لحظه می توان به آنها دستیابی داشت. مثلا" یک پردازنده شانزده
بیتی ، قادر به پردازش دو بایت در هر لحظه است . مگاهرتز واحد سنجش سرعت پردازش در پردازنده ها
است و معادل "میلیون در هر ثانیه" است . مثلا" یک کامپیوتر 32 بیتی پنتیوم iii با سرعت 800-MHz ،
قادر به پردازش چهار بایت بصورت همزمان و 800 میلیون بار در ثانیه است . حافظه RAM بتنهائی دارای
سرعت مناسب برای همسنگ شدن با سرعت پردازنده نیست . بهمین دلیل است که از حافظه های
Cache استفاده می گردد. بدیهی است هر اندازه که سرعت حافظه RAM بالا باشد مطلوب تر خواهد
بود.اغلب تراشه های مربوطه امروزه دارای سرعتی بین 50 تا 70 Nanoseconds می باشند. سرعت خواندن
و یا نوشتن در حافظه ارتباط مستقیم با نوع حافظه استفاده شده دارد .در این راستا ممکن است از حافظه های
DRAM,SDRAM,RAMBUS استفاده گردد. سرعت RAM توسط پهنا و سرعت Bus ، کنترل می
گردد. پهنای Bus ، تعداد بایتی که می تواند بطور همزمان برای پردازنده ارسال گردد را مشخص و سرعت
BUS به تعداد دفعاتی که می توان یک گروه از بیت ها را در هر ثانیه ارسال کرد اطلاق می گردد. سیکل منظم
حرکت داده ها از حافظه بسمت پردازنده را Bus Cycle می گویند مثلا" یک Bus با وضعیت : 100MHz و
32 بیت، بصورت تئوری قادر به ارسال چهار بایت به پردازنده و یکصد میلیون مرتبه در هر ثانیه است . در
حالیکه یک BUS شانرده بیتی 66MHZ بصورت تئوری قادر به ارسال دو بایت و 66 میلیون مرتبه در هر
ثانیه است . با توجه به مثال فوق مشاهده می گردد که با تغییر پهنای BUS از شانزده به سی و دو و سرعت
از 66MHz به 100MHz سرعت ارسال داده برای پردازنده سه برابر گردید.
ریجستر و Cacheبا توجه به سرعت بسیار بالای پردازنده حتی در صورت استفاده از Bus عریض وسریع همچنان مدت زمانیطول خواهد کشید تا داده ها از حافظه RAM برای پردازنده ارسال گردند. Cache با این هدف طراحی شده
است که داده های مورد نیاز پردازنده را که احتمال استفاده از آنان بیشتر است ، در دسترس تر قرار دهد. عملیات فوق ازطریق بکارگیری مقدار اندکی از حافظه Cache که Primary و یا Level 1 نامیده شود صورت می پذیرد. ظرفیت حافظه های فوق بسیار اندک بوده و از دو کیلو بایت تا شصت و چهار کیلو بایت را، شامل می گردد. نوع دوم Cache که Secodray و یا level 2 نامیده می شود بر روی یک کارت حافظه و در مجاورت پردازنده قرار می گیرد. این نوع Cache دارای یک ارتباط مستقیم با پردازنده است. یک مدارکنترل کننده اختصاصی بر روی برد اصلی که " کنترل کننده L2 " نامیده می شود مسئولیت عملیات مربوطه را برعهده خواهد گرفت .
با توجه به نوع پردازنده ، اندازه حافظه فوق متغیر بوده و دارای دامنه ای بین256Kb تا 2MB است. برخی از پردازنده های با کارائی بالا اخیرا" این نوع Cache را بعنوان جزئی جداناپذیر در کنار خوددارند. ( بخشی از تراشه پردازنده ) در این نوع پردازنده ها با توجه به اینکه Cache بخشی از پردازنده محسوب می گردد، اندازه آن متغیر بوده و بعنوان یکی از مهمترین شاخص ها درکارائی پردازنده مطرح است.نوع دیگری از RAM با نام SRAM حافظ های با دستیابی تصادفی ایستا نیز وجود داشته که در آغازبرای Cache استفاده می گردید.
این نوع حافظه ها از چندین ترانزیستور ( معمولا" چهار تا شش ) برای هریک از سلول های حافظه خود استفاده می نمایند. حافظه های فوق دارای مجموعه ای از فلیپ فلاپ ها با دووضعیت خواهند بود.
بنابراین حافظه های فوق قادر به بازخوانی اطلاعات بصورت پیوسته نظیر حافظه های DRAM نخواهند بود. هر یک از سلول های حافظه مادامیکه منبع تامین انرژی آنها فعال (On) باشد دادههای خود را ذخیره نگاه خواهند داشت . در این حالت ضرورتی به بازخوانی اطلاعات بصورت پریودیک نخواهد بود .
سرعت حافظه های فوق بسیار بالا است ، ولی بدلیل قیمت بالا ، در حال حاضر بعنوان جایگزینی استاندارد برای حافظه های RAM مطرح نمی باشند.
انواع حافظه حافظه ها را می توان بر اساس شاخص های متفاوتی تقسیم بندی کرد . از این تقسیم بندی ها است . حافظه های volatile بلافاصله پس از خاموش شدن سیستم اطلاعات خود را ازدست می دهند. و همواره برای نگهداری اطلاعات خود به منبع تامین انرژی نیاز خواهند داشت .
اغلب حافظه های RAM در این گروه قرار می گیرند. حافظه های Nonvolatile داده های خود را همچنان پس از خاموش شدن سیستم حفظ خواهندکرد.حافظه ROMنمونه ای ازاین نوع حافظه هااست .
.Caching اگر تا کنون برای خود کامپیوتری تهیه کرده باشید ، واژه " Cache" برای شما آشنا خواهد بود.کامپیوترهای جدید دارای Cache از نوع L1 و L2 می باشند. شاید در هنگام خرید یک کامپیوتر از طرف دوستانتان توصیه هائی به شما شده باشد مثلا" : " سعی کن از تراشه های Celeron استفاده نکنی چون دارای Cache نمی باشند! " Cache یک مفهوم کامپیوتری است که بر روی هر نوع کامپیوتر با یک شکل خاص وجود دارد. حافظه های Cache ، نرم افزارهای با قابلیت Cache هارد دیسک و صفحات Cache همه بنوعی از مفهوم Cachingاستفاده می نمایند. حافظه مجازی که توسط سیستم های عامل ارائه می گردد نیز از مفهوم فوق استفاده می نماید.مبانیCaching یک تکنولوژی استفاده شده برای زیر سیستم های حافظه ، در کامپیوتر است . مهمترین هدف یک Cache افزایش سرعت و عملکرد کامپیوتر بدون تحمیل هزینه های اضافی برای تهیه سیستم است . با استفاده از Cacheعملیات کاربران با سرعت بیشتری انجام خواهد شد.کتابداری را در نظر بگیرید که در یک کتابخانه مسئول تحویل کتاب به متقاضیان است . فرض کنید در سیستم فوق ( درخواست و تحویل کتاب ) از مفهوم Cache استفاده نمی گردد. اولین متقاصی کتابی را درخواست می نماید( فرض شده است که متقاضی خود نمی تواند مستقیما" کتاب مورد نظر را از قفسه مربوطه ،بردارد) ،کتابدار، کتاب مورد نظر را از قفسه مربوطه پیدا و در ادامه آن را تحویل متقاضی می نماید. متقاضی پس ازساعاتی مراجعه و کتاب را تحویل می دهد. کتابدار، کتاب تحویلی را مجددا" در قفسه مربوطه قرار می دهد.پس از لحظاتی یک متقاضی دیگر مراجعه و همان کتاب قبلی را درخواست می نماید ، کتابدار مجددا" می بایست به بخش مربوطه در کتابخانه مراجعه و پس از بازیابی کتاب ، آن را در اختیار متقاضی دوم قرار
Volatile و Non دهد.همانگونه که ملاحظه می گردد ، کتابدار مکلف است برای تحویل هر کتاب ( ولو کتاب هائی که استفاده ازآنان توسط متقاضیان زیادباشد ) به بخش مربوطه مراجعه و پس از یافتن کتاب آن را در اختیار متقاضیان قرار دهد. آیا روشی وجود دارد که با استناد به آن بتوان عملکرد و کارآئی کتابدار را بهبود بخشید ؟
در پاسخ به سوال فوق می توان با ایجاد یک سیستم Cache برای کتابدار ، کارآئی آن را افزایش داد. فرض
کنید بخشی را با ظرفیت حداکثر ده کتاب در مجاورت ( نزدیکی ) کتابدار آماده نمائیم . کتاب هائی که توسط
متقاضیان برگردانده می شود، در بخش فوق ذخیره خواهند شد. مثال فوق را با در نظر گرفتن سیستم Cache
ایجاد شده برای کتابدار مجددا" دنبال می نمائیم . در ابتدای فعالیت روزانه ، بخش Cache خالی بوده و هنوز
در آن کتابی قرار نگرفته است . اولین متفقاصی مراجعه و کتابی را درخواست می نماید . کتابدار می بایست به
بخش مربوطه مراجعه و کتاب را از قفسه مربوطه براشته و در اختیار متقاضی قرار دهد. متقاضی پس از
تحویل کتاب ، چند ساعت بعد مراجعه و کتاب را تجویل کتابدار خواهد داد. کتابدار، کتاب تحویلی را در بخش
پیش بینی شده برای Cache قرار می دهد. لحظاتی بعد متقاضی دیگر مراجعه و درخواست همان کتاب را می
نماید .کتابدار در ابتدا بخش مربوط به Cache را جستجو و در صورت یافتن کتاب ، آن را به متقاضی تحویل
خواهد داد. در این حالت ضرورتی به مراجعه کتابدار به بخش و قفسه های مربوطه نخواهد بود. در روش فوق
زمان تحویل کتاب به متقاضی بهبود چشمگیری پیدا خواهد کرد. در صورتیکه کتاب درخواستی توسط متقاضی
در بخش Cache کتابخانه نباشد ، چه اتفاقی خواهد افتاد؟ در ابتدا مدت زمانی صرف خواهد شد که کتابدار به
این اطمینان برسد که کتاب درخواستی در بخش Cache موجود نمی باشد ( جستجو) یکی از چالش های اصلی
در رابطه با طراحی Cache به حداقل رساندن زمان جستجو در Cache است .سخت افزارهای جدید ، زمان
فوق را به صفر نزدیک کرده اند. پس از حصول اطمینان از عدم وجود کتاب در بخش Cache ، کتابدار می
بایست با مراجعه به بخش مربوطه آن را انتخاب و در ادامه در اختیار متقاضی قرار دهد.
با توجه به مثال فوق ، چندین نکته مهم در رابطه با Cache استنباط می گردد:
- تکنولوژی Cache ، استفاده از حافظه های سریع ولی کوچک ، بمنظور افزایش سرعت یک حافظه کند ولی
با حجم بالا است
- زمانیکه از Cache استفاده می گردد ، در ابتدا می بایست محتویات آن بمنظور یافتن اطلاعات مورد نظر
بررسی گردد. فرآیند فوق را Cache hit می گویند. در صورتیکه اطلاعات مورد نظر در Cache موجود
نباشند (Cache miss) ، کامپیوتر می بایست در انتظار تامین داده های خود از حافظه اصلی سیستم باشد
volatile نمونه ای حافظه ای کند ولی با حجم بالا
- اندازه Cache محدود بوده وسعی می گردد که ظرفیت فوق حتی المقدور زیاد باشد ، ولی بهرحال اندازه آن نسبت به رسانه های ذخیره سازی دیگر بسیار کم است .
- این امکان وجود خواهد داشت که از چندین لایه Cache استفاده گردد. CACHE درکامپیوتر
کامپیوتر، ماشینی است که زمان انجام کارها توسط آن با واحدهای خیلی کوچک اندازه گیری می گردد.زمانیکه
ریزپردازنده قصد دستیابی به حافظه اصلی را داشته باشد، می بایست مدت زمانی معادل 60 نانوثانیه را برای
این کار در نظر بگیرد. سرعت فوق بسیار بالا است ولی سرعت ریزپردازنده بمراتب بیشتر است . ریزپردازنده
قادر به داشتن سیکل هائی به اندازه دو نانوثانیه است . تفاوت سرعت بین پردازنده و حافظه کاملا" مشهود
بوده و قطعا" رضایت پردازنده در این خصوص کسب نخواهد شد. پردازنده می بایست تاوان کند بودن حافظه را
خود بپردازد . انتظار پردازنده و هرز رفتن زمان مفید وی کوچکترین تاوانی است که می بایست پردازنده
پذیرای آن باشد.بمنظور حل مشکل فوق ، فرض کنید از یک نوع حاص حافظه، با ظرفیت کم ولی با سرعت بالا 30 نانوثانیه
، استفاده گردد . سرعت دستیابی به حافظه فوق دو مرتبه سریعتر نسبت به حافظه اصلی است .این نوع
حافظه راL2 Cache می نامند. فرض کنید از یک حافظه بمراتب سریعتر ولی با حجم کمتر استفاده و آن را
مستقیما" با پردازنده اصلی درگیر نمود. سرعت دستیابی به حافظه فوق می بایست در حد و اندازه سرعت
پردازنده باشد .این نوع حافظه ها را L1 Cache می گویند.در کامپیوتر از زیرسیستمهای متفاوتی استفاده می گردد.از Cache می توان در رابطه با اکثر زیر سیستمهای فوق استفاده تا کارآئی آنان افزایش یابد.
تکنولوژی Cacheیکی از سوالاتی که ممکن است در ذهن خواننده این بخش خطور پیدا کند این است که " چرا تمام حافظه
کامپیوترها از نوع L1 Cache نمی باشند تا دیگر ضرورتی به استفاده از Cache وجود نداشته باشد؟" در
پاسخ می بایست گفت که اشکالی ندارد وهمه چیز هم بخوبی کار خواهد کرد ولی قیمت کامپیوتر بطرز قابل
ملاحظه ای افزایش خواهد یافت . ایده Cache ، استفاده از یک مقدار کم حافظه ولی با سرعت بالا( قیمت بالا)
برای افزایش سرعت و کارآئی میزان زیادی حافظه ولی با سرعت پایین ( قیمت ارزان ) است .
در طراحی یک کامپیوتر هدف فراهم کردن شرایط لازم برای فعالیت پردازنده با حداکثر توان و در سریعترین
زمان است . یک تراشه 500 مگاهرتزی ، در یک ثانیه پانصد میلیون مرتبه سیکل خود را خواهد داشت ( هر
سیکل در دونانوثانیه ) . بدون استفاده از L1 و L2 Cache ، دستیابی به حافظه حدودا" 60 نانوثانیه طول
خواهد کشید. بهرحال استفاده از Cache اثرات مثبت خود را بدنبال داشته و باعث بهبود کارآئی پردازنده می
گردد.اگر مقدار L2 Cache معادل 256 کیلو بایت و ظرفیت حافظه اصلی معادل 64 مگابایت باشد ، 256000
بایت مربوط به Cache با استفاده از روش های موجود قادر به Cache نمودن 64000000 بایت حافظه اصلی خواهند بود.حافظه ی مجازی حافظه مجازی یکی ازبخش های متداول در اکثر سیستم های عامل کامپیوترهای شخصی است . سیستم فوق باتوجه به مزایای عمده، بسرعت متداول و با استقبال کاربران کامپیوتر مواجه شده است .
در تکنولوژی حافظه مجازی از حافظه های جانبی ارزان قیمت نظیر هارد دیسک استفاده می گردد. در چنین
حالتی اطلاعات موجود در حافظه اصلی که کمتر مورد استفاده قرار گرفته اند ، از حافظه خارج و در محلی
خاص بر روی هارد دیسک ذخیره می گردند. بدین ترتیب بخش ی از حافظه اصلی آزاد و زمینه استقرار یک
برنامه جدید در حافظه فراهم خواهد شد. عملیات ارسال اطلاعات از حافظه اصلی بر روی هارد دیسک بصورت
خودکار انجام می گیرد.
در یک شبکه ، یک کامپیوتر می تواند هم سرویس دهنده وهم سرویس گیرنده باشد. یک سرویس دهنده (Server) کامپیوتری است که فایل های اشتراکی وهمچنین سیستم عامل شبکه که مدیریت عملیات شبکه را بعهده دارد - را نگهداری می کند.
برای آنکه سرویس گیرنده " Client" بتواند به سرویس دهنده دسترسی پیدا کند ، ابتدا سرویس گیرنده باید اطلاعات مورد نیازش را از سرویس دهنده تقاضا کند. سپس سرویس دهنده اطلاعات در خواست شده را به سرویس گیرنده ارسال خواهد کرد.
سه مدل از شبکه هایی که مورد استفاده قرار می گیرند ، عبارتند از :
1 - شبکه نظیر به نظیر " Peer- to- Peer "
2 - شبکه مبتنی بر سرویس دهنده " Server- Based "
3 - شبکه سرویس دهنده / سرویس گیرنده " Client Server"
مدل شبکه نظیر به نظیریا" Peer- to- Peer ":
در این شبکه ایستگاه ویژه ای جهت نگهداری فایل های اشتراکی وسیستم عامل شبکه وجود ندارد. هر ایستگاه می تواند به منابع سایر ایستگاه ها در شبکه دسترسی پیدا کند. هر ایستگاه خاص می تواند هم بعنوان Server وهم بعنوان Client عمل کند. در این مدل هر کاربر خود مسئولیت مدیریت وارتقاء دادن نرم افزارهای ایستگاه خود را بعهده دارد. از آنجایی که یک ایستگاه مرکزی برای مدیریت عملیات شبکه وجود ندارد ، این مدل برای شبکه ای با کمتر از 10 ایستگاه بکار می رود .
مدل شبکه مبتنی بر سرویس دهنده یا " Server- Based ":
در این مدل شبکه ، یک کامپیوتر بعنوان سرویس دهنده کلیه فایل ها ونرم افزارهای اشتراکی نظیر واژه پرداز ها، کامپایلرها ، بانک های اطلاعاتی وسیستم عامل شبکه را در خود نگهداری می کند. یک کاربر می تواند به سرویس دهنده دسترسی پیدا کرده وفایل های اشتراکی را از روی آن به ایستگاه خود منتقل کند.
مدل سرویس دهنده / سرویس گیرنده یا" Client Server" :
در این مدل یک ایستگاه در خواست انجام کارش را به سرویس دهنده ارائه می دهد وسرویس دهنده پس از اجرای وظیفه محوله ، نتایج حاصل را به ایستگاه در خواست کننده عودت می دهد. در این مدل حجم اطلاعات مبادله شده شبکه ،در مقایسه با مدل مبتنی بر سرویس دهنده کمتر است واین مدل دارای کارایی بالاتری میباشد.
هر شبکه اساسا از سه بخش ذیل تشکیل می شود.
ابزارهایی که به پیکربندی اصلی شبکه متصل می شوند بعنوان مثال : کامپیوتر ها ، چاپگرها، هاب ها " Hubs " سیم ها ، کابل ها وسایر رسانه هایی که برای اتصال ابزارهای شبکه استفاده می شوند.سازگار کننده ها Adaptor]] : که بعنوان اتصال کابل ها به کامپیوتر هستند . اهمیت آنها در این است که بدون وجود آنها شبکه تنها شامل چند کامپیوتر بدون ارتباط موازی است که قادر به سهیم شدن منابع یکدیگر نیستند . عملکرد سازگارکننده در این است که به دریافت وترجمه سیگنال ها ی درون داد از شبکه از جانب یک ایستگاه کاری وترجمه وارسال برون داد به کل شبکه می پردازد.
استفاده از شبکه های کامپیوتری در چندین سال اخیر رشد فراوانی کرده وسازمانها وموسسات اقدام به برپایی شبکه نموده اند . هر شبکه کامپیوتری باید با توجه به شرایط وسیاست های هر سازمان ، طراحی وپیاده سازی گردد. در واقع شبکه های کامپیوتری زیر ساخت های لازم را برای به اشتراک گذاشتن منابع در سازمان فراهم می آورند؛در صورتیکه این زیر ساختها به درستی طراحی نشوند، در زمان استفاده از شبکه مشکلات متفاوتی پیش آمده و باید هزینه های زیادی به منظور نگهداری شبکه وتطبیق آن با خواسته های مورد نظر صرف شود.
در زمان طراحی یک شبکه سوالات متعددی مطرح می شود:
-برای طراحی یک شبکه باید از کجا شروع کرد؟
-چه پارامترهایی را باید در نظر گرفت ؟
-هدف از برپاسازی شبکه چیست ؟
- انتظار کاربران از شبکه چیست ؟
- آیا شبکه موجود ارتقاء می باید ویا یک شبکه از ابتدا طراحی می شود؟
-چه سرویس ها و خدماتی برروی شبکه ارائه خواهد شد؟
بطور کلی قبل از طراحی فیزیکی یک شبکه کامپیوتری ، ابتدا باید خواسته ها شناسایی وتحلیل شوند، مثلا در یک کتابخانه چرا قصد ایجاد یک شبکه را داریم واین شبکه باید چه سرویس ها وخدماتی را ارائه نماید؛ برای تامین سرویس ها وخدمات مورد نظر اکثریت کاربران ، چه اقداماتی باید انجام داد ؛ مسائلی چون پروتکل مورد نظر برای استفاده از شبکه ، سرعت شبکه واز همه مهمتر مسائل امنیتی شبکه ، هریک از اینها باید به دقت مورد بررسی قرار گیرد.
اساسا یک شبکه کامپیوتری شامل دو یا بیش از دو کامپیوتر وابزارهای جانبی مثل چاپگرها، اسکنرها ومانند اینها هستند که بطور مستقیم بمنظور استفاده مشترک از سخت افزار ونرم افزار، منابع اطلاعاتی ابزارهای متصل ایجاده شده است توجه داشته باشید که به تمامی تجهیزات سخت افزاری ونرم افزاری موجود در شبکه منبع1(Source) گویند.در این تشریک مساعی با توجه به نوع پیکربندی کامپیوتر ، هر کامپیوتر کاربر می تواند در آن واحد منابع خود را اعم از ابزارها وداده ها با کامپیوترهای دیگر همزمان بهره ببرد.
" دلایل استفاده از شبکه را می توان موارد ذیل عنوان کرد" :
1 - استفاده مشترک از منابع :
استفاده مشترک از یک منبع اطلاعاتی یا امکانات جانبی رایانه ، بدون توجه به محل جغرافیایی هریک از منابع را استفاده از منابع مشترک گویند.
2 - کاهش هزینه :متمرکز نمودن منابع واستفاده مشترک از آنها وپرهیز از پخش آنها در واحدهای مختلف
واستفاده اختصاصی هر کاربر در یک سازمان کاهش هزینه را در پی خواهد داشت .
3 - قابلیت اطمینان :این ویژگی در شبکه ها بوجود سرویس دهنده های پشتیبان در شبکه اشاره می کند ، یعنی به این معنا که می توان از منابع گوناگون اطلاعاتی وسیستم ها در شبکه نسخه های دوم وپشتیبان تهیه کرد ودر صورت
عدم دسترسی به یک از منابع اطلاعاتی در شبکه " بعلت از کارافتادن سیستم " از نسخه های پشتیبان استفاده کرد. پشتیبان از سرویس دهنده ها در شبکه کارآیی،، فعالیت وآمادگی دایمی سیستم را افزایش می دهد.
4 - کاهش زمان : یکی دیگر از اهداف ایجاد شبکه های رایانه ای ، ایجاد ارتباط قوی بین کاربران از راه دور است ؛ یعنی بدون محدودیت جغرافیایی تبادل اطلاعات وجود داشته باشد. به این ترتیب زمان تبادل اطلاعات و استفاده ازمنابع خود بخود کاهش می یابد.
5 - قابلیت توسعه :یک شبکه محلی می تواند بدون تغییر در ساختار سیستم توسعه یابد وتبدیل به یک شبکه بزرگتر شود. در اینجا هزینه توسعه سیستم هزینه امکانات وتجهیزات مورد نیاز برای گسترش شبکه مد نظر است.
6 - ارتباطات:کاربران می توانند از طریق نوآوریهای موجود مانند پست الکترونیکی ویا دیگر سیستم های اطلاع رسانی پیغام هایشان را مبادله کنند ؛ حتی امکان انتقال فایل نیز وجود دارد".
در طراحی شبکه مواردی که قبل از راه اندازی شبکه باید مد نظر قرار دهید شامل موارد ذیل هستند:
1 - اندازه سازمان
2 - سطح امنیت
3 - نوع فعالیت
4 - سطح مدیریت
5 - مقدار ترافیک
6 – بودجه
در این بخش آثار مثبت دیوارههای آتش را مورد بررسی قرار میدهیم:
یک دیواره آتش میتواند اجرای تصمیمات امنیتی را در یک نقطه متمرکزکند: همانطورکه میدانیددیواره آتش یک نقطه محدود کننده بین دو شبکه است. تمام ترافیک به داخل و از خارج باید از این نقطه باریک عبورکند و راه دیگری برای عبور ترافیک وجود ندارد. بدین ترتیب دیواره آتش قابلیت اعمال کنترل شدیدی را دارا خواهد بود و میتواند با اعمال ابزار مختلف تأمینکننده امنیت در این نقطه سطح قابل قبولی از امنیت را تضمین کند. در واقع چون همه چیز در یک کانال ارتباطی قابل کنترل است میتوان تصمیمات مختلفی را در ارتباط با امنیت شبکه گرفت و به اجرا در آوردن آنها را در یک نقطه متمرکز ساخت. یک دیواره آتش میتواند سیاست امنیتی شبکه را به اجرا در آورد: میدانیم سرویسهای مختلفی در شبکهها وجود دارند و با گسترش اینترنت تنوع و تعداد آنها بسیار افزایش یافته است. اغلب این سرویسها ناامن هستند و هنگام استفاده و ارائه آنها باید دقت کرد. سیاست امنیتی شبکههای مختلف تعیین میکند که چه سرویسهایی در شبکه ارائه میشود و چه افرادی مجازند از این سرویسها استفاده کنند. دیوارههای آتش قادرند با پاسبانی و کنترل سرویسهای مختلف تنها به سرویسهای مجاز تعریف شده در سیاست امنیتی اجازه عبور دهند و بدین ترتیب سیاست امنیتی شبکه را به اجرا درآورند. سیاستهای امنیتی نهایتاً به تعدادی قوانین اجرایی تبدیل میشوند که دیوارههای آتش قادر خواهند بود تعداد زیادی از آنها را اجرا کنند. دیوارههای آتش ممکن است سرویسهای خطرناک و ناامن و را با اعمال محدویت تنها در شبکه داخلی اجازه دهند. سیاستهای امنیتی مختلفی قابل اتخاذ هستند. مدیران یک شبکه ممکن است تنها به یک سیستم داخلی اجازه دهند. با دنیای بیرون در ارتباط باشد، در این صورت دیواره آتش تنها ترافیک متعلق به آن سیستم را از خود عبور خواهدداد.
ذکر این نکته ضروری است که پیادهسازیهای مختلف از دیوارههای آتش تواناییهای متفاوت در به اجرا در آوردن سیاستهای امنیتی دارند و بنابراین با استفاده از برخی از دیوارههای آتش ممکن است نتوان برخی از سیاستها را به اجرا در آورد. یک دیواره آتش میتواند فعالیتهای مهم را ثبت کند: به این علت که تمام ترافیک از دیواره آتش عبور میکند، دیواره آتش یک مکان مناسب برای ثبت مجموعههای مختلف از فعالیتهاست. به عنوان تنها نقطه دسترسی، دیواره آتش میتواند ثبت کند که چه اتفاقاتی بین شبکه محافظت شده و شبکه بیرونی رخ میدهند. با دسته بندی این اطلاعات میتوان به نتایج خوبی در ارتباط با استفاده از شبکه، تهاجمهای در حال شکلگیری، مزاحمان و متخلفان داخلی و خارجی و.... دست یافت. یک دیواره آتش قادر است سطوح مختلفی از امنیت را برای بخشهای مختلف پیادهسازی کند: از دیوارههای آتش گاهی برای جدا نگه داشتن یک بخش از بخشهای دیگر استفاده میشود. این حالت زمانی اتفاق میافتد که یک بخش از شبکه بیشتر از بخشهای دیگرحساس باشد و نیازمند امنیت بیشتری باشد. بدین ترتیب با استفاده از دیوارههای آتش میتوان بخشهای مختلف با سطوح امنیتی مختلف را ایجاد نمود. این مسأله باعث میشود بروز مشکلات امنیتی نتواند تمام سرتاسر شبکه را تحت تأثیر قرار دهد و برخی بخشهای مهمتر و حساستر مصون بمانند. دیوارههای آتش در مجموع قادرند شبکه را در برابر تهدیدات مختلف تا حد زیادی مورد محافظت قرار دهند، اما آنها راه حل امنیتی کامل و بدون عیبی نیستند. برخی از خطرات و مشکلات از کنترل دیواره آتش خارج هستند و برای مقابله با آنها باید از روشهایی مانند ایجاد مکانیزمهای قوی امنیت فیزیکی، " مصونیت میزبان" و آموزش کاربران و مدیران و... استفاده کرد.
در ادامه برخی از آثار منفی دیوارههای آتش را مورد بررسی قرار میدهیم:
یک دیواره آتش نمیتواند شبکه و منابع آن را از خرابکاران داخلی محافظتکند: دیواره آتش ممکن است بتواند از اینکه اطلاعات مفید سازمان از طریق خط ارتباطی شبکه به بیرون انتقال یابند جلوگیری کند اما هنگامی که این اطلاعات از خط ارتباطی عبور نمیکنند نمیتواند هیچکاری انجام دهد. کاربری ممکن است با استفاده از یک دیسک، هارد، CD و یا تعدادی ورقه که آنها را در کیفش قرار میدهد اطلاعات حساس سازمان را به بیرون انتقال دهد. در مقابله با این نوع کاربران (که ممکن است اطلاعات داخل را عمداً و یا سهواً از روی غفلت افشا کنند)، دیوارههای آتش ناتوان هستند و هیچکاری از دستشان ساخته نیست. برخی از افراد داخلی سطوح دسترسی بالایی را در شبکه دارا هستند و مجازند به منابع مختلف در شبکه دسترسی داشته باشند، این افراد قادر خواهند بود سخت افزارها را خراب کنند، نرم افزارها و برنامههای مختلف را دچار مشکلکنند، به طور ماهرانهای برنامهها را تغییردهند، سطوح دسترسیها را دستکاری کنند و.... واقعیت این است که دیوارههای آتش در مقابله با این مشکلات کاری نمیتوانند انجام دهند.
یک دیواره آتش نمیتواند از بروز تمام مشکلات امنیتی جلوگیریکند: دیواره آتش برای مقابله با خطرات شناخته شده طراحی شده است. مدیران شبکه با شناختی که از حملات و خطرات مختلف دارند و با تصویب تعدادی قوانین و اجرای آنها توسط دیواره آتش سعی میکنند از بروز آنها جلوگیری کنند، اما واقعیت این است که روز به روز حملات و مشکلات امنیتی جدیدی به وجود میآیند و دیواره آتش نمیتواند به طور خودکار با این خطرات مقابله کند. دیواره آتش نیز مانند تجهیزات دیگر توسط مدیر سیستم پیکربندی میشود و پیرو دستوراتی است که مدیر میدهد. یک پیکربندی خوب تا حدودی قادر خواهد بود از خطرات جدید نیز جلوگیریکند. در این پیکربندی هیچ ترافیکی عبور داده نمیشود غیر از ترافیک مربوط به تعداد بسیار اندکی سرویس مطمئن. خرابکاران به طور مرتب راههای جدیدی برای نفوذ و خرابکاری پیدا میکنند. آنها یا از سرویسهای مطمئن شناخته شده سوء استفاده میکنند ویا مشکلاتی که تا کنون برای کسی رخ نداده (و بنابراین هیچ کس راجع به آنها چیزی نمیداند و به همین دلیل در هیچ دیواره آتشی در نظر گرفته نشده) را به کار میبندند. یک دیواره آتش را نمیتوان یک بار پیکربندی کرد و انتظار داشت برای همیشه شبکه را از هر خطری مورد محافظت قرار دهد.
یک دیواره آتش معمولاً نمیتواند از ورود ویروسها جلوگیری کند: اغلب دیوارههای آتش بخشهای مربوط به آدرس مبدأ و آدرس مقصد و شماره پورت مبدأ ومقصد شبکههای ورودی را مورد بازرسی قرار میدهند و به جزئیات داده توجهی ندارند. پیادهسازی بخش تشخیص ویروس و بررسی کامل داده بستهها در دیوارههای آتش زیاد عملی وکارا نیست. انواع بسیار زیادی از ویروسها وجود دارند و روشهای زیادی برای آنکه ویروس خودش را در داخل داده مخفیکند وجود دارد. تشخیص ویروس (Virus Detection) در یک بسته تصادفی از دادهای که از دیواره آتش عبور میکند بسیار مشکل است. برای تشخیص ویروس در بستهها نیازمندیهای زیر وجود دارد :
*تشخیص این مطلب که بخش داده بسته بخشی از یک برنامه است.
*مشخص کردن اینکه یک برنامه مجاز چگونه است و چه ویژگیهایی دارد.
*تشخیص این که تفاوتی بین این برنامه و مدل برنامههای بدون مشکل و مجاز وجود دارد و بنابراین برنامه یک ویروس است.
اغلب دیوارههای آتش ماشینهایی از انواع مختلف و با فرمتهای اجرایی مختلف را مورد محافظت قرار میدهند. یک برنامه ممکن است یک برنامه کامپایل شده قابل اجرا و یا یک script باشد. علاوه بر این، بسیاری از برنامهها قبل از اینکه انتقال یابند به شکل یک Package در میآیند و به خوبی فشرده سازی میشوند. این مسایل باعث میشود پیچیدگی مسأله تشخیص ویروسها بالاتر رود و پیادهسازی آن مشکل باشد. با این همه باز هم نمیتوان تمامی منابع دیگر انتقال ویروسها را کنترل کرد. بسیاری از برنامهها ممکن است از طریق مودمهای اشخاصی که به اینترنت متصلند و از دیواره آتش رد نمی شوند download شوند و یا با یک فلش از محل سکونت به شبکه داخلی سازمان انتقال یابند و ... روش عملی تر مقابله با ویروسها استفاد از نرم افزارهای host-base virus protection است. آموزش کاربران و آگاه کردن آنها از خطرات ویروسها نیز می تواند مؤثر باشد.
۱- مناسب بودن امکان دسترسی به اطلاعات
دسترسی راحت به اطلاعات مورد نظرتانرا پیدا کنید. کاربران هم از همین روش استفاد میکنندو هنگامی به سراغ بخش جستجوی سایت شما میروند که نتوانند از طریق راهنمای صفحه به اطلاعاتی که میخواهند دست پیدا کنند.
۲- عدم استفاده ازفایل های :pdf
خوانندگان وب از فایلهای پی دی اف دل خوشی ندارند. فایلهای pdf فایلهایی هستند که توسط برنامه ای مانند acrobat reader خوانده می شوند . تصور کنید به سختی مشغول جستوجو کردن در وب هستید که ناگهان به یک فایل پی دی اف میرسید و فاجعه رخ میدهد؛ فشردگی خطوط، مشکلات نرمافزاری، از دست دادن فرصت جستوجو و گم کردن مسیر جستجو و بخصوص هنگ کردن کامپیوتر در اثر پایین بودن سرعت اینترنت که در ایران بسیار شایع است , از مواردی است که فایل پی دی اف را کابوس خوانندگان وب میکند.
پس این شعار را فراموش نکنید: خداحافظ حروف و صفحههای چاپی و سلام فونتهای لاغر و ریز.
۳- تغییر کردن رنگ لینکهای دیده شده :
برای کاربران آنلاین همیشه مهم است که چه لینکی را دیدهاند؟ چه لینکی را میبیینند؟ و چه لینکی را میتوانند ببینند. لینکها کلید اساسی راهنمایی فرد به مطلب مورد نظرش است. پس خیلی مهم است که تفاوت رنگ بین لینکهای دیده شده و دیده نشده وجود داشته باشد. فراموش نکنید آنها انتظار دارند بدانند وقتی روی بخشی که لینک شده کلیک کردند به کجا میرود و چه مطلب و یا بخشی را میبینند.
۴-عدم استفاده از متنهایی که قابل اسکن چشمی نباشند(درک شوندگی در یک نگاه)
دیواری از تکست مقابل چشمان خسته کاربر وب، تزریق تجربه مرگآوری به دنیای تعاملی اینترنت است. بهتر است بدانید که چگونه برای وب بنویسید. نوشتن برای وب و نوشتن برای رسانههای چاپی کاملا متفاوت است:میانتیترها، بولتها، کلیدواژههای برجسته، پاراگرافهای کوتاه، هرم وارونه، ساده نویسی و بی طمطراق و بدون بازاریابی نوشتن از نکاتی هستند که شما باید برای وبنویسی در نظر داشته باشید.
[الگوی خواندن صفحات وب این است]
بارها برای خود بنده پیش آمده که مطلبی را در سایت منبع آن رها کرده ام و آن را در سایتی خوانده ام که مطلب را از منبع آنکپی کرده بود , علت این امر نیز کاملا واضح است .
تصور کنید مطلبی را که در آن کاربر نه می تواند از ماوس استفاده کند , نه می تواند متن را های لایت کند نه میتواند راست کلیک کند و هزار و یک جود محدودیت روی آن وضع شده است .در میان مطلب نیز تبلیغات متنی و تصویری فراوانی دیده می شوند !اگر خود شما باشید این مطلب را خواهید خواند ؟ اولین کاری که کاربر انجام می دهد زدن ضربدر خروج است .
۵- استفاده از فونتهای ثابت
۶- عنوان صفحه :
فراموش نکنید که این عنوان صفحه است که در لیست سایتهای محبوب کاربر(Favorites) ذخیره میشود.
درضمن هیچگاه عنوان صفحه را با کلماتی مثل (the) یا (welcome to) شروع نکنید. این کار باعث می شود عنوان سایت شما به ناچار در زیر کلمات w و T در favorites ذخیره شود .
عنوان سایت باید دقیقا با کلماتی شروع شود که هدف اصلی وب سایت شماست. کلماتی که کاربران در هنگام جستوجو از آن استفاده میکنند.
از طرف دیگر به کاربرانی فکر کنید که حرفهای هستند و با چند پنجره مختلف کار میکنند. بنابراین سعی کنید که با کوتاهترین کلمات عنوان سایت خودتان را نشان دهید تا در میان انبوه پنجرههای کاربر راحتتر دیده شود.
۷- استفاده ازهر چیزی که به شکل تبلیغات باشد :
درنظر داشته باشید که کاربران وب معمولا هر چیزی که شکل تبلیغ دارد، رد میکنند و وقتی که کاربر پنجرهای را به این دلیل بست دیگر به جزییات آن پنجره فکر نمیکند.
بنابراین بهترین راه این است که از طراحیهایی که به شکل تبلیغات عرضه میشوند، دوری کنید.
دلایل محکمی برای این نظر وجود دارد:
• banner blindness: این بدان معناست که کاربران هرگز مسیر نگاهشان را بروی آگهیها و یا حتی هر چیزی که شکل آنها باشد نگه نمیدارند.
• animation avoidance: کاربران از هربخش چشمک زن و یا متنهای فلش براحتی میگذرند
• pop-up purges: کاربران قبل از باز شدن کامل هر پنجره pop-up آن را می بندند. تازه اگر pop-up blocker نداشته باشند.
حال این مساله را به خودتان واگذار کنید ! اگر خودتان وارد سایتی شوید و قبل از اینکه سایت باز شود یا پس از اینکه از سایت خارج شوید , صفحه ای باز شود که باعث شود کامپیوترتان هنگ کند , آیا باز هم به سراغ آن سایت خواهید رفت .
۸- طراحی پایدار :
پایداری طراحی بزرگترین اصل در کاربردپذیری صفحات وب است. هنگامی که کاربران سایت شما از پایداری طراحی شما مطمئن باشند دیگر نگران این نیستند که چه اتفاقی در آینده می افتند چون آنها می دانند چطور تجربههای جدید بروی وب سایت شما شکل میگیرد.
۹- عدم باز شدن پنجره جدید:
بازشدن پنجره جدید مثل کثیف کردن نمایشگر کاربر است. منصفانه نیست وقتی که طراحان از این روش برای حفظ کاربر بروی وب سایت خودشان استفاده میکنند.
شکست را قبول کنید و به جای این کار اجازه دهید اگر بروی لینک شما کلیک شد و چیز بدرد بخوری نداشتید بتوان با زدن دکمه برگشت به مسیر قبلی جستوجو برگشت. کاربران اصلا از این روش استقبال نمیکنند به خصوص اگر از نمایشگرهای کوچک استفاده کنند بعد از چند کلیک بروی لینکهای سایت شما دیگر نمیتوانند به صفحهای که از اول کلیک کرده بودند برگردند.
لینکها باید درست در همان صفحه باز شوند. اگر فردی خواست که لینکی را در صفحه جدیدی ببیند میتواند از منوی راست کلیک استفاده کند .
۱۰- حذف امکانات و اسکریپتهای بیهوده :
یقینا تابحال سایتهای زیادی را مشاهده کرده اید که پر است از اسکریپتهای گوناگون و بدردنخور !
اسکریپت اجرای آهنگ در وبسایت ! مگر خود کاربر نمی تواند که برای خودش موزیک پخش کند ؟
اسکریپت منع کردن کاربر از کپی و راست کلیک ! مگر این مطالب از آسمان فرود آمده است که در جای دیگر قابل دسترس نباشد ؟
با نصب یک تولبار ساده می توان تمام این اسرکیپت ها را از بین برد , آن وقت چه خواهید کرد ؟
این اسکریپتها و تصاویر و تبلیغات غیر متجانس , جز از دست دادن کاربران و بازدیدکنندگان چیزی در بر نخواهد داشت .
۱۱- جواب دادن به سوال کاربر :
هدف نهایی همه وب سایت ها کاربران هستند. آنها برای دیدن وب سایت شما دلیل دارند. اما تعداد بی شماری از وب سایتها به خوبی پاسخ کاربران خود را نمیدهند.
فاکتورهای مهم داشتن وب سایت موفق :
1 ) داشتن محتوی و ظاهری خوب
2 ) داشتن مدیریتی قوی و فعال
(3 استفاده ازنیروهای انسانی مجرب ، ماهر،خلاق ،ونوآور درطراحی وبرنامه نویسی وب سایت
4) رعایت استانداردهای مختلف درطراحی ،امنیتی ،محتوایی ،هنری واستانداردهای فنی
5) به هنگام بودن اطلاعات،سرعت بالی دسترسی
6) پاسخگوی روزانه
7)ارتباط دوطرفه