دسته بندی | برنامه نویسی |
بازدید ها | 28 |
فرمت فایل | doc |
حجم فایل | 146 کیلو بایت |
تعداد صفحات فایل | 95 |
شرح زبان سی شارپ و قابلیت های تحت وب آن (دات نت)
مقدمه
C# یکی از زبانهای جدید برنامهسازی شیگرا است که با ارائة رهیافت Component-Based به طراحی و توسعه نرمافزار میپردازد. آنچه ما در حال حاضر از زبانهای برنامهسازی Component-Based در اختیار داریم و آنچه که C# در اختیار ما قرار میدهد، افق جدیدی به سوی تولید و طراحی نرمافزارهای پیشرفته را در روی ما قرار میدهند.
نرمافزار، به عنوان یک سرویس، هدف اصلی نسل بعدی در سیستمهای محاسباتی است. برای مثال، C# زبانی مناسب برای تولید و طراحی صفحات وب، ایجاد اجزایی با قابلیت استفاده مجدد و ایجاد محیطهایی چند رسانهای را به عنوان زبانی که هدفش توسعه ایجاد نرمافزارهای پیشرفته است، در اختیار ما قرار میدهد.
زبان برنامهسازی C#، به همراه تکنولوژی جدید شرکت نرمافزاری مایکروسافت یعنیNET. ارائه گردید، از این رو از تکنولوژیNET. این شرکت بهره میبرد. پس در ابتدا به بیان مطالبی درباره محیطNET. میپردازیم.
فصل اول:تکنولوژیNET.
چراNET.؟
در گذشته زبانهای برنامهسازی، سیستمهای عامل و محیطهای اجرایی نرمافزارها برای دورهای خاص ساخته میشدند. هنگامیکه برنامهها از محیطهای رومیزی(Desktop) به اینترنت منتقل میشدند، ابزارهای موجود نیازمند API هایی اضافی و قابلیتهای دیگری بودند. بیشتر این قابلیتها در کنار زبانهای برنامهسازی بعنوان ابزارهایی جهت رفع این نیازمندیها ارائه میشدند. هرچند این ابزارهای اضافی بصورت قابل توجهی نیازمندیها را حل کرده و باعث رسیدن اینترنت به وضعیت کنونی شدند، اما همچنان مسائل بسیاری وجود داشت که نیاز به حل شدن داشتند.
NET. به منظور پشتیبانی از کاربردهای عصر جدید اینترنت ساخته شد. مواردی همچون گسترش، امنیت و versioning، که از مسایل مهممی بودند، توسط NET. پوشش داده شدند. قسمت مرکزیNET. بخش CLR (Common Language Runtime) است که یک موتور اجرایی مجازی است که از توسعه، امنیت و ارتقای نسخه کد پشتیبانی مینماید. در گذشته چنین امکاناتی برای کدهای کامپایل شده فراهم نبود. بدلیل اینکهNET. توانست بر این مشکلات اساسی فائق آید، راه حل قدرتمندتری جهت ساخت برنامههای تحت اینترنت به شمار میرود.
NET. چیست؟
NET. محیطی جهت ساخت برنامههای توزیع شده است که شامل ابزارهایی نظیر ""کتابخانه کلاسهای پایه"(BCL: Base Class Library)، CLR و زبانهای برنامهنویسی است. این ابزارها امکان ساخت انواع مختلفی از نرمافزارها، از قبیل فرمهای ویندوز، ADONET.، ASPNET. و سرویسهای وب، را فراهم میآورند.
فرمهای ویندوز، مجموعهای از کتابخانهها جهت ساخت رابطهای کاربر گرافیکی برای برنامههای کاربردی است. این کتابخانهها اغلب API های Win32 را در خود دارا میباشند. همچنین امکان استفاده از رهیافت شیگرایی را جهت تولید آسان برنامههای تحت ویندوز، فراهم میآورند.
ADONET. مجموعهای از کلاسهای شیگرایی است که جهت ساخت مولفههای داده و سطوح دسترسی داده در برنامههای n-tiered مورد استفاده قرار میگیرد.
ASPNET. شامل مدل برنامهنویسی فرمهای وب است که بوسیلة آن برنامههای تحت وب ساخته شده و تحت اینترنت قابلیت اجرا پیدا کرده و از طریق مرورگر(Browser) قابل دسترسی میباشند. این روش مدل بهبود یافته برنامهسازی وب است که در آن کدها در سرور کامپایل میشوند ولی همانند صفحات HTML در کامپیوتر مشتری اجرا میشوند.
سرویسهای وب، رهیافتی جدید، مستقل از platform و استاندارد، جهت ایجاد ارتباط و فعالیت بین سیستمهای ناهمگون در اینترنت، میباشند. سرویسهای وبNET.، از زیر ساخت شیگرایی برنامهنویسی ASPNET. استفاده میکنند، اما همچنان از استانداردهای باز و مدلی بر پایة پیغام(Message Based Model) استفاده مینمایند. استفاده از استانداردهای باز از قبیل XML، WSDL و UDDI باعث میشوند تا سرویسهای وب با سایر سرویسهای وب استاندارد که پیادهسازیهایی متفاوت دارند، بدون توجه به محیط و platform آنها، ارتباط برقرار نمایند.
این چند نمونه، اندکی از انواع مختلف نرمافزارهایی بودند که میتوان تحتNET. به پیادهسازی آنها پرداخت.
کتابخانههای کلاسهای پایه(Base Class Library: BCL)
BCL درNET.، شامل هزاران نوع قابل استفاده، جهت افزایش بهرهوری در ساخت برنامههایNET. است. به علت گستردگی BCL یادگیری تمام کلاسهای آن وقتگیر بوده و امکان پذیر نمیباشد، به همین دلیل برای صرفهجویی در زمان بهتر است قبل از ایجاد یک نوع خاص به جستجوی نوعهای موجود در BCL بپردازیم. نگاهی کلی به BCL میتواند بسیار سودمند باشد. جدول زیر Namespace های مهم و توضیح نوعهای مختلف BCL را نمایش میدهد.
NET. Namespaces |
|
Namespace |
Description |
System |
The most commonly used types. |
System.CodeDom |
Allows creating types that automate working with source code, that is, compilers and code creation tools. |
System.Collections |
Collection types such as ArrayList, Hashtable, and Stack. |
System.ComponentModel |
Supports building reusable components. |
System.Configuration |
Types for working with various kinds of XML configuration files. |
System.Data |
Most of the types for ADONET. database programming. Other types are in namespaces that are specific to a database or data interface. |
System.Diagnostics |
Process, EventLog, and Performance Counter types. |
System.DirectoryServices |
Managed interface for accessing Windows Active Directory Services. |
System.Drawing |
GDI+ types. |
System.EnterpriseServices |
COM+ types. |
System.Globalization |
Types for culture-specific support of calendars, formatting, and languages. |
System.IO |
Directory, File, and Stream types. |
System.Management |
APIs for performing WMI tasks. |
System.Messaging |
Types for working with message queues. |
SystemNET. |
Access to networking protocol types. |
System.Reflection |
Reflection APIs for inspecting assembly metadata. |
System.Resources |
Types for culture-specific resource management. |
System.Runtime |
COM Interop, Remoting, and Serialization support. |
System.Security |
Code access security, role-based security, and cryptography types. |
System.ServiceProcess |
Types for building Windows Services. |
System.Text |
Text encoding/decoding, byte array from/to string translation, the StringBuilder class, and regular expressions. |
System.Timers |
Timer types. |
System.Threading |
Threads and synchronization types. |
System.Web |
HTTP Communications, ASPNET., and Web Services types. |
System.Windows |
Windows Forms types. |
System.XML |
All XML support types, including XML Schema, XmlTextReaders/XmlTextWriters, XPath, XML Serialization, and XSLT. |
جدول 1-1 Namespaceهای مهم و رایج
هر Namespace مجموعهای از کلاسهای از پیس ساخته شدةNET. است که میتوان از آنها در برنامههای مختلف استفاده نمود.
(Common Language Runtime)CLR
CLR یک موتور اجرایی است که با هدف اصلی اجرای هدایت شدة کدها درNET. ایجاد گردیده است. CLR به مدیریت اجرا، ارتقای نسخه و امنیت تمامی کدها درNET. میپردازد. به همین دلیل کدهایNET. یا C# اغلب تحت عنوان کدهای مدیریت شده، شناخته میشوند.(Managed Code) تمامی کدهایی که به CLR مرتبت هستند، تحت عنوان "مدیریت شده" و کدهایی توسط CLR مدیریت نشدهاند، بلکه مستقیماً به کد ماشین تبدیل میشوند، تحت عنوان "مدیریت نشده" بیان میشوند.
کدهای مدیریت شده، به کد ماشین کامپایل نمیشوند، بلکه به زبان سطح میانی مایکروسافت(MSIL) کامپایل شده و مورد استفاده قرار میگیرند. این زبان سطح میانی را میتوان زبانی شبیه به زبان اسمبلی تصور کرد. IL در حافظه بارگذاری میشود و بلافاصله بوسیلة CLR در حافظه به کد ماشین کامپایل میگردد.
برنامههایNET. از اسمبلیهایی تشکیل شدهاند که اجزای خودکار منطقی توسعه، شناسایی و امنیت به حساب میآیند و تفاوت آنها با روشهای قدیمی در آن است که اسمبلی میتواند شامل یک یا چندین فایل باشد. اسمبلیNET. به صورت یک فایل اجرایی تک یا یک فایل کتابخانهای است، اما ممکن است حاوی ماژولها، که کدهایی غیر اجرایی بوده و قابلیت استفادة مجدد را دارند، نیز باشد.
مسئلة مهم دیگر در مورد CLR، نحوة بارگذاری(Load) و اجرای برنامه توسط آن است. به محض اینکه برنامةNET. شروع به اجرا میکند، ویندوز اسمبلیNET. راتشخیص داده و CLR را اجرا میکند. سپس CLR نقطه شروع برنامه را شناسایی و پروسة تعیین انواع که در آن، محل قرارگیری انواع مختلف بکار رفته در برنامه مشخص میشود را، اجرا میکند. اسمبلی شناسایی شده در پروسة Loader بارگذاری میگردد.
دسته بندی | کامپیوتر و IT |
بازدید ها | 23 |
فرمت فایل | doc |
حجم فایل | 93 کیلو بایت |
تعداد صفحات فایل | 53 |
مقدمات داده پردازی
تعریف داده(Data)
هر اطلاع مفید ولازم درباره چیز یا امری رایک داده می گویند.به شناسنامه خود نگاه کنید.نام، نام خانوادگی،نام پدر ،سال تولد،محل تولد،شماره شناسنامه وسایر اطلاعات آن ،همه درباره شماست.
اینها داده های مرتبط با شما هستندوشما را از دیگران متمایز ومجزا می کنند؛ به شما سود می رسانند؛
حقوق شما را محفوظ می دارند وبه دولت امکان می دهند که برای شما برنامه ریزی کندو امکانات فراهم سازد.
داده ها در همه امور، نقش بازی می کنند.مثلا در دادوستد، داده ها نقش بسیار بزرگی دارند.اطلاع ازاین که چه مقدارپول دارید؛ بابت چه کالا وخدماتی پول گرفته یا پرداخته اید؛ از چه حسابی پول برداشته وبه کدام حساب واریز کرده اید؛ چقدر طلبکبرید وچقدر بدهکارید؛و…. همه، داده های مالی شما هستند . حسابداران با چنین دا ده های مالی سروکاردارند وآن را مدیریت می کنند وازآن ها نتیجه گیری می کنند.
گفتیم که داده ها باید مفید ولازم باشند.مثالی می زنیم:
اگردر شناسنامه شما وزن یا قد شما را می نوشتند،صحیح بود؟ پاسخ منفی است.ذکر وزن وقد در شناسنامه کاربردی ندارد و وجود آنها لازم نیست، هر چند که مفید است.اما در پرونده پزشکی شما هم لازم هستند وهم مفید،زیرا به شناسایی وضع سلامت شما ونیز، به شناخت ودرمان بیماری شما یاری میرسانند.
داده ها با هم ارتباط دارند.
اگر بدانید شماره شناسنامه شخصی 259 است، آیا می توانیداورا پیدا کنید؟ این کار دشوار است. ممکن است شماره شناسنامه خیلی از مردم259 باشد. حالا اگر بدانید که نام آن شخص مثلا مسعود است یافتن او آسانتر می شود؛ هر چند که هنوز هم شاید اسم خیلیها مسعود وشماره شناسنامه شان 259 باشد.اما اگر در همین حال، نام خانوادگی او را هم بدانید دیگر یافتن اوساده می شود.نتیجه ارتباط داده ها به یکدیگر، شناسایی سریعتر است.داده هایی که به هم ارتباط نداشته باشند یا نتوان ارتباط آنها را نسبت به هم پیدا کرد، کاربرد زیادی ندارد وشاید اصلا به درد نخورد.
داده های نامرتب کاربرد ندارند.
اگر اطلاعات وداده های زیادی را بدون نظم وترتیب در جاهای مختلف پخش کنید، چطور می توانید به هنگام نیاز ازمیان آنها چیز خاصی را پیدا کنید؟داده ها هم مثل اشیای یک خانه یا انبار هستند وفقط از طریق نظم دادن وطبقه بندی وتازه کردن آنهاست که می توان از آنها سود برد .
داده ها چگونه مرتب میشوند؟
راههای مختلفی برای مرتب کردن داده ها وجود دارد.یکی از آسانترین روشها آن است که داده هارا به شکل یک جدول در آوریم. همه شمامی دانید جدول چیست.برنامه دانشگاه شما یک جدول است.دفتر حضور وغیاب کلاس شما یک جدول است صورتحساب بانکی پدر ومادر شما یک جدول است . اصول تمام جدولها یکی است ودرک آن نیز بسیار آسان است.در تمام آنها،برای مرتب کردن اطلاعات صفحه را خط کشی کردند وآن به شکل سطر ها وستونها در آوردند.به این ترتیب ، مجبورید اطلاعات را به شکل مرتب و زیر هم ،در جدول وارد کنید.در بالای هر ستون جدول،نام آنچه را که قرار است در آن ستون وارد کنید،می نویسید.در هر سطر اطلاعات،نام شخص یا چیزی را که آن داده ها به او مرتب است می نویسید.مثالی می زنیم.کتابهایی را که در خانه یا دانشگاه دارید،در نظر بگیرید.می توانید یک جدول درباره ی آنها تشکیل دهید و اطلاعات مرتبط با کتابها را در آن نگهداری کنید.در مورد هر کتاب می توانید داده هایی از قبیل نام کتاب،نام نویسنده،نام مترجم،نام ناشر،تعداد صفحات،تاریخ نشر و… را به صورت زیر،تبدیل به یک جدول کنید.
حال،برای هر کتاب اطلاعات مرتبط با آن را در یک سطر این جدول می نویسید:
نام کتاب |
نام نویسنده |
نام مترجم |
نام ناشر |
تعداد صفحات |
شناسایی وشکار جاسوس |
پیتر رایت |
محسن اشراقی |
مؤسسه اطلاعات |
608 |
ساعت سرمستی |
هیوبرت ریوز |
دکتر سهامی |
نشر قطره |
339 |
… |
… |
… |
… |
… |
البته می توان این جدول را به هر شکل دیگری تهیه کرد و درباره ی هر کتاب اطلاعات دیگری مانند نوبت چاپ،شماره ی شناسایی کتاب و…را نیز در جدول وارد کرد.مهم،اطلاعاتی ست که شما درباره ی هر کتاب مفید و لازم می دانید و داده های شما به شمار می آیند.این جدول،داده های شما را مرتب می کند.به این جدول داده ها(Data Table)می گویند.
جستجو در جدول داده ها
گفتیم که مرتب کردن اطلاعات ، جستجو در آن را آسان می کند فرض کنید که جدولی از کتاب های موجود در خانه یا دانشگاه خود را تهیه کرده اید واینک می خواهید بدانید که مثلا کدامیک در سال 1371چاپ شده است.
در این صورت، به شکل زیر عمل می کنید:
ستون تاریخ نشر را می بینیم وآن را از بالا به پایین مرور می کنید . در هر خانه ای از این ستون که عدد 1371 که دیدید آن سطر جدول را با یک قلم رنگی رنگ می زنید یا بیرون جدول ، کنار نام کتاب ،یک علامت می گذارید. وقتی همه جدول را مرور کردید تمام سطرهایی که علامت دارند یا رنگ شده اند، کتابهای مورد نظر شماهستند به همین شکل، جستجوی نام نویسنده خاص ویا هر مورد دیگر ،آسان می شود.
با ارزان شدن وتوانمندشدن رایانه ها،بزودی برنامه نویسان بر آن شدند تا برنامه های کاربردی قدرتمندی را برای کار با اطلاعات ایجاد کنند.که در عین حال آسان وهمه فهم باشد.یکی از آخرین محصولات نرم افزاری ویژه ی این کار،برنامه های اداری شرکت میکروسافت است،این سلسله از برنا
مه های میکروسافت آفیس(MicrosaftOffice)نام دارد و مجموعه ای از چند برنامه ی ک
اربردی برای ماشینی کردن دفاتر کار است.
یکی از قطعات این مجموعه برنامه ها،برنامه ی کاربردی اکسس است که برای داده پردازی و استفاده از اطلاعات ایجاد شده است.این برنامه می تواند یک پایگاه داده ها را اداره کند.اینک ببینیم که پایگاه داده ها چیست؟
تعریف پایگاه داده ها
گفتیم که یکی از روشهای آسان اداره ی داده ها،ایجاد جدول مرتبی از آنهاست که به آن جدول داده ها (DataTable)می گویند.
برنامه ی اکسس،دو یا چند جدول داده را،پایگاه داده ها (Database)می نامدو می تواند آن رابه خوبی اداره کند.برنامه ای را که می تواند یک پایگاه داده ها را اداره کند،برنامه ی مدیریت پایگاه داده ها(Database Management Program)می گویند.اکسس،یک برنامه ی مدیریت پایگاه داده هاست.به مجموعه ای از جدولهای داده ها،پایگاه داده ها می گویند.
تعریف فیلد(Field)و رکورد(Record)
همان طور که قبلا گفتیم،اکسس با جدول های داده ها کار می کنیم.هر جدول،از تعدادی سطرو ستون تشکیل شده است.اکسس به هر یک از ستون ها،یک فیلد،(Field) میگویند.بنابراین،جدول کتابخانه ی ما در مثال قبلی 6فیلد دارد.همچنین اکسس،هر سطر جدول داده ها را نیز یک رکورد می خواند.
در همان جدول کتابخانه ها،در مثال قبلی ،شما سه رکوردرا می بینید.به این ترتیب، هر رکورددر آن
داده ها را نیز یک رکورد(Record)می خواند.در همان جدول کتابخانه ها،در مثال قبلی،شما سه رکورد را می بینید.به این ترتیب،هر رکورد در آن جدول شامل شش فیلد است.درک مفهوم فیلدو رکورد در کار با اکسس بسیار مهم است،اما پس از مقداری تمرین،به راحتی آن را فرا گرفته،به کار گفتیم که هر پایگاه داده،از تعدادی جدول تشکیل می شود.حال ببینیم چرا چند جدول رادر یک پایگاه داده ها می گذارند؟و این کار چه مزیتی دارد؟به مثال زیر توجه کنید:
|
فرض کنید یک جدول داده ها دارید که فیلد های آن اطلاعاتی درباره ی سفارش های مشتریان یک فروشگاه مثل نام و نام خانوادگی و تاریخ ومقدار خرید هر کالاست و جدول دیگری داریدکه در آن فیلد های دیگری مثل اطلاعاتی درباره ی شهر،محله،خیابان،کوچه،تلفن وموارد از این دست درباره ی همان مشتری ها موجود است.حال،چگونه بایدمثلا کشف کنید که فلان مشتری ساکن فلان خیابان،چقدر خرید کرده است.اطلاعات خرید وفروش مشتری در یک جدول و اطلاعات سکونتی همان مشتری،در جدول دیگر است.
برای این کار،باید در هر یک از جدول های یک فیلد مشترک پیدا کنید.یعنی فیلدی که هم در این جدول و هم در آن جدول موجود باشد.بعد:
1ـاطلاعات را از جدول اول برمی دارید و به فیلد مشترک نگاه می کنیدوداده ی موجود در آن،مثلا نام خانوادگی یا شماره ی شناسنامه را جایی یادداشت می کنید.
2ـدر جدول دوم،فیلد مشترک را پیدا می کنیدو در آن داده ای را که یادداشت کرده اید می یابید.حالا رکورد مورد نظررا پیدا کرده ایدوباید در آن به سراغ فیلد نشانی بروید وآن را یادداشت کنید.
به این ترتیب،این دو جدول به هم ربط پیدا می کنند.ربط دادن جدول ها به هم،از طریق یک فیلد مشترک،قدرت مانور شمارا در جستجوی داده هاو نتیجه گیری از آنها بسیار افزایش می دهد ودر حجم جدولها صرفه جویی می کند.زیرا،دیگر لازم نیست که مثلا در مقابل هر رکوردی که برای خرید و فروش مشتری به وجود می آورید،یک بار هم،آدرس او را در همان جدول بنویسیدو می توانید این داده را از جدول دیگری بردارید.به این مدل از پایگاه داده ها،پایگاه داده ها ی ارتباطی (Relational Database).اکسس،از این مدل پایگاه داده ها استفاده میکندو به همین سبب به آن مدیرپایگاه داده های ارتباط (Relational Database Management System) به طور خلاصهRDMBSمی گویند.
تعریف پایگاه داده های ارتباطی
پایگاه داده های ارتباطی،مجموعه ای از جدولهای داده است که یک فیلد مشترک در هر یک از
جدولها وجود دارد و از طریق آن می توان داده ها را به هم ربط داد.
تعریف کلید
اکسس،به فیلدی که لا اقل در دو جدول داده ها مشترک باشد،فیلد کلیدی(KeyField)یا به اختصار (کلید)می گویند.علت این نام آن است که این فیلد،کلید وارد شدن از یک جدول به جدول دیگر است.گفتیم که دو جدول اکسس از طریق یک فیلد مشترک می توانند به همدیگر ارتباط یابند.حالا،این موضوع را برای بیش از دو جدول بررسی می کنیم.در این مورد مثالی را مشاهده کنید.
فرض کنید دو جدول داده هایاکسس دارید که در اولی مشتریان معرفی می شوندو به هر یک از آنها یک شماره ی مشتری که حتما باید غیر تکراری و بدون مشابه باشد،اختصاص می یابد.حالا اگر جدول دیکری داشته باشیم که به خرید های مشتریان اختصاص یافته باشدو در آن هم،برای هر بار خرید مشتریان یک رکوردثبت و نگهداری شود.اگر در این جدول،از همان شماره ی مشتری های تعریف شده در جدول مشتریان استفاده کنید،این دو جدول به هم ارتباط می یابند.هر چند که در هر دو جدول،داده های تکراری وجود دارد(یعنی فیلد شماره ی مشتری)،اما این تکرار اجتناب ناپذیراست و در عوض،باعث می شودکه از تکرار بزرگتری که همان اطلاعات کاملجدول مشتری هاست،در جدول خرید مشتریان،جلوگیری شود.
حالا فرض کنید یک جدول دیگر هم داریدکه یکی از فیلدهای آن نام مشتریست اما فیلدشماره مشتری ندارد.آیا این جدول را هم می توان به جدول اولیوصل کرد؟بله.اگر فیلد نام مشتری در هر دو فایل یکسان تعریف شده باشد،می توان از این فیلد برای اتصال دو جدول داده ها استفاده کرد.بنابراین،فیلد کلید ما در این حالت،فیلد نام مشتری است.وقتی این دو جدول داده ها به هم مرتبط شوند، در حقیقت،به جدول دیگرهم وصل شده اند؛زیرا دو جدول دیگر نیز از طریق یک فیلد مشترک به هم متصل بودند.به این طریق ،هر سه جدول،از طریق فیلدهای دوبه دو مشترک به هم وصل شده اند.بنابراین لازم نیست که فیلد های ارتباط دهنده در هر سه جدول(یا بیشتر)،یکی باشند.بلکه فقط کافیست دو به دو یکی باشند.
چگونه یک پایگاه داده ها بسازیم؟
روش ساختن یک پایگاه داده های خوب را اولین باردر سالهای اولیه ی رواج یافتن رایانه ها یعنی حدود سال1960 م تبیین کرده اند و این اصول تا کنون تغییر چندانی نیافته است.البته،کار ایجاد پایگاه داده ها به مرور زمان پیشرفت بسیار زیادی کرده است.مثلادر روزگاران گذشته،دست بردن در ساختمان یک پایگاه داده ها،کار بسیار مشکل و حتی غیر ممکن بود و به همین دلیل،دست بردن در ساختمان پایگاه داده ها خیلی گران تمام می شدو برخی اوقات،این کار،6% به قیمت طراحی اولیه می افزود.اما امروزه ایجاد پایگاه داده ها با کمک یک عدد رایانه ویک برنامه ی پایگاه داده ها ی ارتباطی مانند اکسس بسیار سریع انجام می شود و دست بردن در ساختمان پایگاه داده ها نیز در هر لحظه ممکن ومیسراست.امروزه میتوان با اطلاعات کم و ناقص،کار را آغاز کرد و به مرور،ساختمان پایگاه داده ها و اجزای گوناگون آن و داده های داخل آن را تغیر داد تا به حالت ایده آل رسید.اما توصیه های کلی زیر را در مورد ساختن پایگاه داده ها در نظر داشته باشید.
1-کارهایی را که می خواهید با پایگاه داده هاانجام دهید معین کنید:
پیش از آغاز ایجاد یک پایگاه داده ها، باید تقریبا بدانیدکه از ایجاد آن چه انتظاری داری. دانستن این نکته، کار سختی نیست.قلم وکاغذی بر داریدوعمده کارهایی را که می خواهید با پایگاه داده های مورد نظر انجام دهید زیر هم بنویسید. این فهرست می تواند شامل کارهایی که هم اکنون می خواهید ونیز کارهایی که انتظار دارید بعد ها انجام دهید باشید . وقتی می گوییم کارهای عمده را بنویسید، یعنی بنویسید که می خواهید چه چیز هایی را در پایگاه داده ها وارد کنید وچه گزارشهایی را از آن
دریافت دارید.بنابراین ،مثلا یکی از عناوین فهرست شما می تواند این باشد:‹‹وارد کردن سفارش مشتری››؛اما لازم نیست جزییاتی مانند محاسبه جمع کلی صورتحساب ویا کسر مقدار تخفیف از مبلغ دریافتی را در این فهرست بگنجانید. اینها اعمال اصلی نیستند.
2-نمودار گردش عملیات را رسم کنید:
رسم نمودارعملیات یعنی این که مشخص کنید کدام عمل قبل از کدام عمل انجام می گیرد .تعیین این که اگر عمل خاصی انجام نشود، کدام عمل بعدی قابل انجام نخواهد بود ، بسیار مهم است.به این ترتیب ، جریان کار شناسایی می شود وبنابراین ، کاری که هر کس باید انجام دهد مثل پر کردن فرم خاص یا تایید کردن یک عمل خاص ، مشخص می گردد.
3-شناسایی داده های لازم:
وقتی دو مرحله قبل را انجام دادید تقریبا خواهید که به چه داده هایی که به چه داده هایی احتیاج دارید.مثلا می توانید تعیین کنید که در مورد هر مشتری ،چه داده هایی نیاز دارید ویا در مورد صدور صورت حساب فروش ، چه داده هایی را لازم دارید .این داده ها،پایه ایجاد پایگاه داده های شما هستند. بنابراین باید تا حد امکان بکوشیدتا فهرست کاملی از داده های مورد نظر را درآورید وزیر هم بنویسید.
4-گروه بندی داده ها:
در این مرحله، مشخص میکنید که داده ها چگونه باهم گروه بندی می شوند.مثلا شماره مشتری ،نام مشتری،نام خانوادگی مشتری،شماره تلفن مشتری،نشانی مشتری،داده های مرتبط به همهستندومیتواننددر یک گروه جای بگیرند.
پس از انجام کار گروه بندی باید چند فهرست داشته باشیدکه در زیر هر یک نام اجزای آن نوشته شده باشد.
5-سازماندهی داده ها:در این مرحله، تقریبا ساختمان جدولهای داده های موردنیاز برای برای یک پایگاه داده ها مشخص شده است.هرکدام از فهرستهایی که در مرحله قبل به وجود آورده ایدمی تواند
یک جدول دادها را تشکیل دهد.
در اکسس می توانید در هر مرحله که لازم شد. جدول جدید داده ها درست کنید ویاجدول های قبلی را دست کاری وتصحیح کنید.اما اصلاح مکررتوصیه نمیشود وبهتر است، ازهمان ابتدای کار طرحی تقریبی از آنچه را که روی کاغذ انجام میدهیدپیاده کنید.به این شکل،ازسردرگمی نجات می یابید.
6-ایجاد فرمها وگزارشها:
حال، جدول داده ها ایجاد شدهاست وشما در این مرحله شروع میکنید به ارتباط دادن آنها به یکدیگر وساختن فرمها وگزارشها.در این مرحله،ازماکروها وزبان ویژوال بیسیک هم استفاده میشود ورابطه کاربر نیز ساخته می شود.
7-آزمایش وتجدید نظر وتصفیه:
در این مرحله متوجه کمبودها شده ودر نکاتی تجدید نظر می کنید ودر برخی ودر برخی از داده ها، عناصر دیگری را که متوجه می شوید به درد نخواهد خورد وزایداست،حذف کنید.این مرحله آخر کار است ومعمولا،پس از تحویل پایگاه داده هابه مشتری ودر حین کار آن نیز تا مدتی باید این کار را انجام دهید تا پایگاه داده ها از هر جهت، احتیاجات کاربر را برآورد وبدون نقص شود.
کسانی که پایگاه داده ها راطراحی می کنند، معمولا وقت زیادی را برای تحقیق وتفحص درباره آنچه کاربران ومدیران می خواهند اختصاص می دهند.آنها جریان عادی کاری را که می خواهند برای آن پایگاه داده ها تهیه کنند مطالعه می کنند.
دسته بندی | کامپیوتر و IT |
بازدید ها | 15 |
فرمت فایل | doc |
حجم فایل | 25 کیلو بایت |
تعداد صفحات فایل | 20 |
حافظه RAM
آنچه در این فصل می آموزید:
/ کنترل میزان مصرف حافظه در سیستم
/ اجرای برنامه های ارزیابی و سنجش حافظه
/نمایش اطلاعات حافظة ویندوز به کمک برنامة Sandra
/ آماده شدن برای ارتقا حافظة سیستم
/ عیب یابی نصب حافظه در سیستم
/ حذف کاربرد حافظة بسط یافته و حافظة توسعه یافته در محیط ویندوز
/ کنترل مقدار فیزیکی مصرف RAM در محیط ویندوز
قبل از اینکه Cpu بتواند برنامهها را اجرا کند، دستورات و اطلاعات آن برنامه باید داخل حافظة Ram کامپیوتر منتقل و مستقر شوند. در این فصل روش نگهداری اطلاعات در حافظة Ram را می آموزید و اینکه چرا اطلاعات داخل حافظة Ram فرار هستند ( یعنی با قطع برق یا خاموش شدن کامپیوتر همة اطلاعات موجود در این حافظه از بین می روند)، و اینکه چرا انواع حافظة Ram عرضه شده اند.
بر روی وب یا داخل مجلات و بروشورها و کتابهای کامپیوتر اغلب توصیه های مطالعه می کنید که مقدار لازم حافظة Ram برای سیستم شما را اعلام می کنند. اغلب اعلام می شود که حداقل 126 تا 512 مگابایت حافظة Ram برای عملکرد مناسب یک سیستم لازم است.
داخل کامپیوترهای شخصی از دیسکها برای نگهداری دایمی و بلند مدت اطلاعات استفاده میکنیم. اطلاعات داخل دیسک سخت از طریق مغناطیس نمودن سطح دیسک انجام میگیرد. به دلیل روش مغناطیسی ذخیرة اطلاعات در دیسک سخت
(در مقابل روش الکترونیکی ) این وسیله قابلیت نگهداری دایمی و بلند مدت اطلاعات را دارد و با قطع برق یا خاموش شدن سیستم اطلاعات مستقردر دیسک از بین نرفته و ماندگار هستند چون دیسک سخت برای نگهداری اطلاعاات نیاز به جریان برق دایمی ندارد. اما حافظة Ram اطلاعات را بطور موقت نگهداری می کند بدیهی است که با قطع برق یا خاموش شدن سیستم این اطلاعات از بین خواهند رفت.
فنآوریهای گوناگون برای ذخیرهسازی اطلعات ابداع شدهاند که اغلب آنها را بر اساس سرعت، هزینه و ظرفیت ذخیره سازی طبقهبندی میکنند. معمولاً دیسکها وسایل مکانیکی هستند و به همین دلیل سرعت عملیات آنها نسبت به انواع حافظههای الکترونیکی بسیار کندتر است. در شکل زیر نمایی از اواع وسایل ذخیرهسازی و در سمت راست کندترین وسیلة ذخیرهسازی را نشان دادهایم.
جریان اطلاعات از حافظة RAM به پردازنده (CPU)
هرگاه Cpu برای اجرای عملیات به اطلاعات یا دستوری نیاز داشته باشد ابتدا آنها را داخل حافظه میانجی L1 جستجو میکند. اگر اطلاعات مورد نیاز را آنجا پیدا نکند به سراغ حافظه میانجی L2 خواهد رفت. اگر اطلاعات مورد نیاز را آنجا هم پیدا نکند پس Cpu باید نشانی آدرس آن اطلاعات را از طریق گذرگاه سیستم به حافظه Ram ارسال نماید. درخواست اطلاعات از Cpu باندا به تراشة کنترل کنندة حافظه میرسد.
کنترل کنندة حافظه از آدرس رسیده استفاده میکند و اطلاعات یا دستور مورد نیاز Cpu را پیدا میکند. پس از اینکه کنترل کنندة حافظه این اطلاعات را پیدا می کند آن را از طریق گذرگاه سیستم به Cpu ارسال میکند.
انجام مراحل فوق نیاز به زمان دارند. در سیستم های جدید به منظور افزایش کارایی سیستم از روشهایی استفاده می کنند تا تاخیر زمانی درخواست و دریافت اطلاعات را کاهش دهند.
سازماندهی حافظة RAM توسط کامپیوترهای شخصی
در حافظة Ram اطلاعات ( Data ) و دستوراتی ( Instructions ) ذخیره می شوند که Cpu برای اجرای عملیات به آنها نیاز دارد. می دانید که هر برنامه شامل دستوراتی است که به زبان صفر و یک ها نوشته شده ( یا ترجمه شده) اند. بنابراین در حافظة Ram نیز اطلاعات به شکل صصفرها و یک ها ذخیره می شوند. می توانید حافظة Ram را به شکل چند ردیف از مکانهای ذخیره سازی تصور نمایید.
برنامه نویسان تصور دیگری از حافظة Ram دارند.
آنها مجموعه بیت ها را در یک « لغت» ( Word) گروه بندی می کنند. به همین دلیل پردازنده هایی که از گذرگاه اطلاعات 32 بیتی استفاده می کنند در واقع از لغات 32 بیتی استفاده می کنند. پردازنده هایی که از گذرگاه اطلاعات 64 بیتی استفاده می کنند از بغات 64 بیتی استفاده می کنند. اما در پشت صحنه واقعیت این است که برنامه ها می توانند به بایت های انفرادی داخل حافظة Ram دسترسی داشته باشند. در شکل زیر نمایی از ساختار حافظة Ram را مشاهده می کنید که مکان هر بایت یک آدرس منحصربه فرد دارد. Cpu برای بازخوانی اطلاعات از حافظه Ram یا ثبت اطلاعات رد حافظة Ram باید آدرس مکانهای ذخیره سازی در این حافظه را بداند.
در فصل 12 جزییات مربوط به تبادل اطلاعات از طریق گذرگاه های کامپیوتر بین تراشه ها را می آموزید. هر گاه سیستم (System bus ) ارتباط بین حافظة Ram و Cpu را برقرار نمودده و شامل سیستم هایی است که اطلاعات بر روی آنها حرکت می کنند. تعداد بیت های موجود در گذرگاه آدرس مشخص کنندة مقدار حافظه ای هستند که کامپیوتر شخصی می تواند به آنها دسترسی داشته باشد. به عنوان مثال اگر در یک سیستم از گذرگاه آدرس 32 بیتی استفاده شود پس 232 یعنی 4 گیگابایت را می توان آدرس دهی نمود.
یا در یک سیستم که از گذرگاه آدرس 64 بیتی استفاده می شود پس 264 9551616، 737، 18446744 خانة حافظه را می توان آدرس دهی نمود.
دسته بندی | کامپیوتر و IT |
بازدید ها | 12 |
فرمت فایل | doc |
حجم فایل | 262 کیلو بایت |
تعداد صفحات فایل | 55 |
آشنایی با چند سخت افزار کامپیوتر
چکیده
امروزه کامپیوتر در موارد متعددی به خدمت گرفته می شود . برخی از تجهیزات موجود در منازل ، دارای نوعی خاصی از ریز پردازنده می باشند . حتی اتومبیل های جدید نیز دارای نوعی کامپیوتر خاص می باشند . کامپیوترهای شخصی ، اولین تصویر از انواع کامپیوترهائی است که در ذهن هر شخص نقش پیدا می کند. که به شرح چند نمونه از سخت افزار کامپیوتر می پردازیم.
RAM نوعی حافظه است که کامپیوتر از آن برای ذخیره برنامه ها و داده ها هنگام پردازش استفاده می کند. اطلاعات اکثر انواع RAMها هنگام خاموش کردن کامپیوتر پاک می شود. در حال حاضر شرکت ها در تلاش هستند RAMهایی تولید کنند که با خاموش شدن کامپیوترهم، داده ها را در خود نگه دارند (با استفاده از نانوتیوبهای کربنی و اثر تونل های مغناطیسی).
امروزه بعضی از انواع RAMها قادرند اشتباهات تصادفی را تصحیح کنند. در سال های اخیر chipهایی ساخته شده است که تا GB10 حافظه دارند، همینطور chipهایی که اندازه آن ها در حدود 18/0 میکرون می باشد .
انواع RAM (نرخهای عملکرد با رنگ سبز نشان داده شدهاند):
4- Cpu
فصل اول : حافظه RAM
حافظهRAM (Random Access Memory) شناخته ترین نوع حافظه در دنیای کامپیوتر است . روش دستیابی به این نوع از حافظه ها تصادفی است . چون می توان به هر سلول حافظه مستقیما" دستیابی پیدا کرد . در مقابل حافظه های RAM ، حافظه هایSAM (Serial Access Memory) وجود دارند. حافظه های SAM اطلاعات را در مجموعه ای از سلول های حافظه ذخیره و صرفا" امکان دستیابی به آنها بصورت ترتیبی وجود خواهد داشت. ( نظیر نوار کاست ) در صورتیکه داده مورد نظر در محل جاری نباشد هر یک از سلول های حافظه به ترتیب بررسی شده تا داده مورد نظر پیدا گردد. حافظه های SAM در مواردیکه پردازش داده ها الزاما" بصورت ترتیبی خواهد بود مفید می باشند ( نظیر حافظه موجود بر روی کارت های گرافیک ). داده های ذخیره شده در حافظه RAM با هر اولویت دلخواه قابل دستیابی خواهند بود.
مبانی حافظه های RAM
حافظه RAM ، یک تراشه مدار مجتمع (IC) بوده که از میلیون ها ترانزیستور و خازن تشکیل شده است .در اغلب حافظه ها با استفاده و بکارگیری یک خازن و یک ترانزیستور می توان یک سلول را ایجاد کرد. سلول فوق قادر به نگهداری یک بیت داده خواهد بود. خازن اطلاعات مربوط به بیت را که یک و یا صفر است ، در خود نگهداری خواهد کرد.عملکرد ترانزیستور مشابه یک سوییچ بوده که امکان کنترل مدارات موجود بر روی تراشه حافظه را بمنظور خواندن مقدار ذخیره شده در خازن و یا تغییر وضعیت مربوط به آن ، فراهم می نماید.خازن مشابه یک ظرف ( سطل) بوده که قادر به نگهداری الکترون ها است . بمنظور ذخیره سازی مقدار" یک" در حافظه، ظرف فوق می بایست از الکترونها پر گردد. برای ذخیره سازی مقدار صفر، می بایست ظرف فوق خالی گردد.مسئله مهم در رابطه با خازن، نشت اطلاعات است ( وجود سوراخ در ظرف ) بدین ترتیب پس از گذشت چندین میلی ثانیه یک ظرف مملو از الکترون تخلیه می گردد. بنابراین بمنظور اینکه حافظه بصورت پویا اطلاعات خود را نگهداری نماید ، می بایست پردازنده و یا " کنترل کننده حافظه " قبل از تخلیه شدن خازن، مکلف به شارژ مجدد آن بمنظور نگهداری مقدار "یک" باشند.بدین منظور کنترل کننده حافظه اطلاعات حافظه را خوانده و مجددا" اطلاعات را بازنویسی می نماید.عملیات فوق (Refresh)، هزاران مرتبه در یک ثانیه تکرار خواهد شد.علت نامگذاری DRAM بدین دلیل است که این نوع حافظه ها مجبور به بازخوانی اطلاعات بصورت پویا خواهند بود. فرآیند تکراری " بازخوانی / بازنویسی اطلاعات" در این نوع حافظه ها باعث می شود که زمان تلف و سرعت حافظه کند گردد.
سلول های حافظه بر روی یک تراشه سیلیکون و بصورت آرائه ای مشتمل از ستون ها ( خطوط بیت ) و سطرها ( خطوط کلمات) تشکیل می گردند. نقطه تلاقی یک سطر و ستون بیانگر آدرس سلول حافظه است .
حافظه های DRAM با ارسال یک شارژ به ستون مورد نظر باعث فعال شدن ترانزیستور در هر بیت ستون، خواهند شد.در زمان نوشتن خطوط سطر شامل وضعیتی خواهند شد که خازن می بایست به آن وضغیت تبدیل گردد. در زمان خواندن Sense-amplifier ، سطح شارژ موجود در خازن را اندازه گیری می نماید. در صورتیکه سطح فوق بیش از پنجاه درصد باشد مقدار "یک" خوانده شده و در غیراینصورت مقدار "صفر" خوانده خواهد شد. مدت زمان انجام عملیات فوق بسیار کوتاه بوده و بر حسب نانوثانیه ( یک میلیاردم ثانیه ) اندازه گیری می گردد. تراشه حافظه ای که دارای سرعت 70 نانوثانیه است ، 70 نانو ثانیه طول خواهد کشید تا عملیات خواندن و بازنویسی هر سلول را انجام دهد.
سلول های حافظه در صورتیکه از روش هائی بمنظور اخذ اطلاعات موجود در سلول ها استفاده ننمایند، بتنهائی فاقد ارزش خواهند بود. بنابراین لازم است سلول های حافظه دارای یک زیرساخت کامل حمایتی از مدارات خاص دیگر باشند.مدارات فوق عملیات زیر را انجام خواهند داد :
-- مشخص نمودن هر سطر و ستون (انتخاب آدرس سطر و انتخاب آدرس ستون)
-- نگهداری وضعیت بازخوانی و باز نویسی داده ها ( شمارنده )
-- خواندن و برگرداندن سیگنال از یک سلول ( Sense amplifier)
-- اعلام خبر به یک سلول که می بایست شارژ گردد و یا ضرورتی به شارژ وجود ندارد ( Write enable)
سایر عملیات مربوط به "کنترل کننده حافظه" شامل مواردی نظیر : مشخص نمودن نوع سرعت ، میزان حافظه و بررسی خطاء است .
حافظه های SRAM دارای یک تکنولوژی کاملا" متفاوت می باشند. در این نوع از حافظه ها از فلیپ فلاپ برای ذخیره سازی هر بیت حافظه استفاده می گردد. یک فلیپ فلاپ برای یک سلول حافظه، از چهار تا شش ترانزیستور استفاده می کند . حافظه های SRAM نیازمند بازخوانی / بازنویسی اطلاعات نخواهند بود، بنابراین سرعت این نوع از حافظه ها بمراتب از حافظه های DRAM بیشتر است .با توجه به اینکه حافظه های SRAM از بخش های متعددی تشکیل می گردد، فضای استفاده شده آنها بر روی یک تراشه بمراتب بیشتر از یک سلول حافظه از نوع DRAM خواهد بود. در چنین مواردی میزان حافظه بر روی یک تراشه کاهش پیدا کرده و همین امر می تواند باعث افزایش قیمت این نوع از حافظه ها گردد. بنابراین حافظه های SRAM سریع و گران و حافظه های DRAM ارزان و کند می باشند . با توجه به موضوع فوق ، از حافظه های SRAM بمنظور افزایش سرعت پردازنده ( استفاده از (Cacheو از حافظه های DRAM برای فضای حافظه RAM در کامپیوتر استفاده می گردد.
دسته بندی | کامپیوتر و IT |
بازدید ها | 10 |
فرمت فایل | doc |
حجم فایل | 3531 کیلو بایت |
تعداد صفحات فایل | 16 |
حافظة مجازی
حافظه مجازی
در این تمرین شما با صورتها و شکلهای مختلفی از مکانیزم حافظه مجازی در ویندوز NT آشنایی پیدا خواهید کرد علیرغم اغلب دیگر سیستمهای عامل، ویندوز NT یک API ساده و روشنی را برای اداره کردن بعضی شکلها و صورتهای حافظه مجازی تهیه میکند(معمولاً حافظه مجازی بطور کامل توسط برنامه نویس کاربردیاش روشن و واضح میگردد) در این تمرین شما در موارد زیر اطلاعاتی یاد خواهید گرفت: سازماندهی سیستم حافظه مجازی ویندوز NT چگونه فضای حافظه مجازی خود را کنترل کنید؟ چگونه یک وسیله آگاه کننده و گزارش دهنده بنویسید؟ جزئیات GlobalMemory Status , GetsystemInfo – VirtualQuery – VirtualUnlock – VirtualLock – VirtueaFree – VirtualAlloc معرفی
حافظه مجازی صفحهبندی یا Paging Virtual Memory در بسیاری از سیستمهای عامل امروزی بکار گرفته میشود. در یک سیستم صفحهبندی شده، هر فرآیندی یک فضای آدرس دهی مجازی خاص خود دارد که برای ارجاع دیگر اشیاء بکار گرفته میشود که معمولاً محتوای یک محل یا موقعیتی از حافظه است بخشی از فضای آدرس دهی مجازی توسط ویراستار خطی ( Link editor ) تعریف میشوند وقتی که آن یک تصویر قابل اجرایی بوجود میآورد که در واقع فایل اجرایی یا EXE است. تعداد باقیمانده از فضای آدرسدهی میتواند بطور پویا در زمان اجرا توسط روشهایی که در این تمرین توضیح داده خواهد شد تعر یف شود. بعد از اینکه قسمت پایدار و ثابت از فضای آدرسدهی مجازی ایجاد شد در حافظه ثانویه ذخیره خواهد شد ( معمولاً در بخش یا Partition از وسیله ذخیرهسازی کهPaging disk نام دارد ). به منظور عملیتر شدن شما میتوانید Paging disk را مشابه فایل در نظر بگیرید. در یک کامپیوتر معمول و مرسوم پردازنده تنها میتواند دستورات را واکشی کند یا دادههایی را که در حافظه اولیه یا قابل اجرا ( که معمولاً RAM خوانده میشوند. ) واقع شدهاند را بارگذاری کند. حافظه اولیه در مقایسه با حافظه ثانویه کوچکتر و سریعتر است. حافظه اولیه خیلی گرانتر از حافظه ثانویه است بنابراین بطور معمول در زمره اجزای با ارزشتر از نظر حجم اما کوچکتر از حافظههای ثانویه قرار دارند. اغلب کامپیوترها حافظه اولیه کافی حتی برای ذخیره فضای آدرسدهی مجازی کامل یک فرآیند را هم ندارند بنابراین در یک زمان تعداد زیادی فضا روی حافظه ثانویه برای ذخیره فضای آدرسدهی مجازی تعداد زیادی فرآیند وجود خواهد داشت. حافظه اولیه همچنین خیلی سریعتر از حافظه ثانویه میباشد. پردازنده میتواند یک بایت را در 2 سیکل پردازنده در حافظه اولیه بخواند یا بنویسید. اما همین عمل هزاران سیکل از پروسسور را برای نوشتن یا خواندن اطلاعات در حافظه ثانویه نیازمند است.برای نگهداری فضای حافظه اولیه یک سیستم حافظه مجازی صفحهبندی شده در هر زمان داده شده تنها بخشی از فضای آدرسدهی مجازی تعداد مختلفی از فرآیندها را بارگذاری یا ( Load ) میکند. همانطور که Thread ها در فضای آدرسدهی فرآیندهایشان اجرا میشوندبخشی از فضای آدرسدهی مجازی که در حال حاضر در حال استفاده است در حافظه اولیه بارگذاری میشود و در همان حال دیگر بخشهای فضای آدرسدهی در حافظه ثانویه قرار گرفتهاند. زمانی که فرآیندی به بخشی از فضای آدرسدهی مجازی دیگر نیاز ندارد ( حداقل برای مدتی ) از آن بخش در حافظه ثانویه کپی گرفته میشود. این به موقعیتی از حافظه اولیه که مورد استفاده برای ذخیره بخشی از فضای آدرسدهی مجازی قرار گرفته بود این اجازه را میدهد که برای ذخیره بخش دیگری از فضای آدرسدهی مجازی در زمان دیگری بکار گرفته شود. در یک سیستم حافظه مجازی سنجش در کارایی بوسیله کپی کردن یک بلوک از حافظه در حافظه اولیه یا بازگرداندن به حافظه ثانویه در زمانی که یک جابهجایی بین دوسطح از سلسله مرتبه حافظ مورد نیاز و ضروری باشد بدست میآید کارایی از این واقعیت بدست میآید که عملیات ورودی و خروجی حافظه ثانویه وابسته به بلوکها میباشد. این یعنی اگر تنها یک کلمه ( Word ) اطلاعات از حافظه ثانویه مورد نیاز باشد همه بلوک باید خوانده شود تابه آن کلمه برسیم. همچنین نسبت به مکانی که همه آن بلوک در حافظه اولیه قرار داد هم احساس است تا زمانی که باید خوانده شود تابه لغت گم شده برسیم. فواید دیگری در بارگذاری همه بلوکها نسبت به فقط یک کلمه وجود دارد. هنگامی که یک نخ یا Thread به مکانی چون I رجوع میکند احتمال زیادی وجود دارد که بخواهد به مکان I+1 در آینده نزدیک رجوع کند به این مفهوم محلیت یا Locality گفته میشود. یک حافظه مجازی صفحهبندی شده بلوکهای با اندازة ثابت را بارگذاری میکند و یا برمیدارد که به آنها صفحه یا Page گفته میشود که در زمانی که دادهها و اطلاعات را بین حافظه اولیه و ثانویه در جهت رفت و برگشت حرکت میدهد انجام میگیرد. حد و مرز صفحهها یا Page ها کاملاً توسط برنامهنویس مشخص و واضح میشود. شکل 1 عملیات یک سیستم حافظه مجازی صفحهبندی شده بطور عام را خلاصه میکند.زمانی که یک نخ یا Thread به آدرس مجازی K رجوع میکند ( مرحله 1 در شکل ) حافظه مجازی ابتدا تعدا صفحات یا Page هایی که آدرس مجازی K را در بردارد تعیین میکند (مرحله2 در شکل ) اگر صفحه در حال حاضر در حافظه اولیه بارگذاری شده بود و موجود بود ( مرحله 3 در شکل ) سیستم حافظه مجازی آدرس مجازی را به آدرس فیزیکی متناظر با آن موقعیت در حافظه اولیه که همان Page Frame است تبدیل میکند ( جایی که صفحه هدف در آن واقع شده است. ) اگر صفحه در همان زمان که به آن رجوع شده بارگذاری نشده بود اجرای Thread عادی دچار وقفه میشود تا زمانی که مدیریت حافظه صفحه مقصد را در Page Frame بارگذاری کند به محضی که آن صفحه بارگذاری شد اجرا ادامه پیدا خواهد کرد در مرحله 4 رجوع به آدرس مجازی K دوباره با آدرس فیزیکی در حافظه اولیه تعیین میگردد ( مکانی که موقعیت مجازی K در حال حاضر آنجا بارگذاری شده است. )
حافظه مجازیدر این تمرین شما با صورتها و شکلهای مختلفی از مکانیزم حافظه مجازی در ویندوز NT آشنایی پیدا خواهید کرد علیرغم اغلب دیگر سیستمهای عامل، ویندوز NT یک API ساده و روشنی را برای اداره کردن بعضی شکلها و صورتهای حافظه مجازی تهیه میکند(معمولاً حافظه مجازی بطور کامل توسط برنامه نویس کاربردیاش روشن و واضح میگردد) در این تمرین شما در موارد زیر اطلاعاتی یاد خواهید گرفت: سازماندهی سیستم حافظه مجازی ویندوز NT چگونه فضای حافظه مجازی خود را کنترل کنید؟ چگونه یک وسیله آگاه کننده و گزارش دهنده بنویسید؟ جزئیات GlobalMemory Status , GetsystemInfo – VirtualQuery – VirtualUnlock – VirtualLock – VirtueaFree – VirtualAlloc معرفی حافظه مجازی صفحهبندی یا Paging Virtual Memory در بسیاری از سیستمهای عامل امروزی بکار گرفته میشود. در یک سیستم صفحهبندی شده، هر فرآیندی یک فضای آدرس دهی مجازی خاص خود دارد که برای ارجاع دیگر اشیاء بکار گرفته میشود که معمولاً محتوای یک محل یا موقعیتی از حافظه است بخشی از فضای آدرس دهی مجازی توسط ویراستار خطی ( Link editor ) تعریف میشوند وقتی که آن یک تصویر قابل اجرایی بوجود میآورد که در واقع فایل اجرایی یا EXE است. تعداد باقیمانده از فضای آدرسدهی میتواند بطور پویا در زمان اجرا توسط روشهایی که در این تمرین توضیح داده خواهد شد تعر یف شود. بعد از اینکه قسمت پایدار و ثابت از فضای آدرسدهی مجازی ایجاد شد در حافظه ثانویه ذخیره خواهد شد ( معمولاً در بخش یا Partition از وسیله ذخیرهسازی کهPaging disk نام دارد ). به منظور عملیتر شدن شما میتوانید Paging disk را مشابه فایل در نظر بگیرید. در یک کامپیوتر معمول و مرسوم پردازنده تنها میتواند دستورات را واکشی کند یا دادههایی را که در حافظه اولیه یا قابل اجرا ( که معمولاً RAM خوانده میشوند. ) واقع شدهاند را بارگذاری کند. حافظه اولیه در مقایسه با حافظه ثانویه کوچکتر و سریعتر است. حافظه اولیه خیلی گرانتر از حافظه ثانویه است بنابراین بطور معمول در زمره اجزای با ارزشتر از نظر حجم اما کوچکتر از حافظههای ثانویه قرار دارند. اغلب کامپیوترها حافظه اولیه کافی حتی برای ذخیره فضای آدرسدهی مجازی کامل یک فرآیند را هم ندارند بنابراین در یک زمان تعداد زیادی فضا روی حافظه ثانویه برای ذخیره فضای آدرسدهی مجازی تعداد زیادی فرآیند وجود خواهد داشت. حافظه اولیه همچنین خیلی سریعتر از حافظه ثانویه میباشد. پردازنده میتواند یک بایت را در 2 سیکل پردازنده در حافظه اولیه بخواند یا بنویسید. اما همین عمل هزاران سیکل از پروسسور را برای نوشتن یا خواندن اطلاعات در حافظه ثانویه نیازمند است.برای نگهداری فضای حافظه اولیه یک سیستم حافظه مجازی صفحهبندی شده در هر زمان داده شده تنها بخشی از فضای آدرسدهی مجازی تعداد مختلفی از فرآیندها را بارگذاری یا ( Load ) میکند. همانطور که Thread ها در فضای آدرسدهی فرآیندهایشان اجرا میشوندبخشی از فضای آدرسدهی مجازی که در حال حاضر در حال استفاده است در حافظه اولیه بارگذاری میشود و در همان حال دیگر بخشهای فضای آدرسدهی در حافظه ثانویه قرار گرفتهاند. زمانی که فرآیندی به بخشی از فضای آدرسدهی مجازی دیگر نیاز ندارد ( حداقل برای مدتی ) از آن بخش در حافظه ثانویه کپی گرفته میشود. این به موقعیتی از حافظه اولیه که مورد استفاده برای ذخیره بخشی از فضای آدرسدهی مجازی قرار گرفته بود این اجازه را میدهد که برای ذخیره بخش دیگری از فضای آدرسدهی مجازی در زمان دیگری بکار گرفته شود. در یک سیستم حافظه مجازی سنجش در کارایی بوسیله کپی کردن یک بلوک از حافظه در حافظه اولیه یا بازگرداندن به حافظه ثانویه در زمانی که یک جابهجایی بین دوسطح از سلسله مرتبه حافظ مورد نیاز و ضروری باشد بدست میآید کارایی از این واقعیت بدست میآید که عملیات ورودی و خروجی حافظه ثانویه وابسته به بلوکها میباشد. این یعنی اگر تنها یک کلمه ( Word ) اطلاعات از حافظه ثانویه مورد نیاز باشد همه بلوک باید خوانده شود تابه آن کلمه برسیم. همچنین نسبت به مکانی که همه آن بلوک در حافظه اولیه قرار داد هم احساس است تا زمانی که باید خوانده شود تابه لغت گم شده برسیم. فواید دیگری در بارگذاری همه بلوکها نسبت به فقط یک کلمه وجود دارد. هنگامی که یک نخ یا Thread به مکانی چون I رجوع میکند احتمال زیادی وجود دارد که بخواهد به مکان I+1 در آینده نزدیک رجوع کند به این مفهوم محلیت یا Locality گفته میشود. یک حافظه مجازی صفحهبندی شده بلوکهای با اندازة ثابت را بارگذاری میکند و یا برمیدارد که به آنها صفحه یا Page گفته میشود که در زمانی که دادهها و اطلاعات را بین حافظه اولیه و ثانویه در جهت رفت و برگشت حرکت میدهد انجام میگیرد. حد و مرز صفحهها یا Page ها کاملاً توسط برنامهنویس مشخص و واضح میشود. شکل 1 عملیات یک سیستم حافظه مجازی صفحهبندی شده بطور عام را خلاصه میکند.زمانی که یک نخ یا Thread به آدرس مجازی K رجوع میکند ( مرحله 1 در شکل ) حافظه مجازی ابتدا تعدا صفحات یا Page هایی که آدرس مجازی K را در بردارد تعیین میکند (مرحله2 در شکل ) اگر صفحه در حال حاضر در حافظه اولیه بارگذاری شده بود و موجود بود ( مرحله 3 در شکل ) سیستم حافظه مجازی آدرس مجازی را به آدرس فیزیکی متناظر با آن موقعیت در حافظه اولیه که همان Page Frame است تبدیل میکند ( جایی که صفحه هدف در آن واقع شده است. ) اگر صفحه در همان زمان که به آن رجوع شده بارگذاری نشده بود اجرای Thread عادی دچار وقفه میشود تا زمانی که مدیریت حافظه صفحه مقصد را در Page Frame بارگذاری کند به محضی که آن صفحه بارگذاری شد اجرا ادامه پیدا خواهد کرد در مرحله 4 رجوع به آدرس مجازی K دوباره با آدرس فیزیکی در حافظه اولیه تعیین میگردد ( مکانی که موقعیت مجازی K در حال حاضر آنجا بارگذاری شده است. )