آشپزی – پیمانکار تهیه غذا (کیترینگ)

ارائه بهترین خدمات :تهیه غذای کلاسیک-برگزاری سمینار – خدمات شرکتی- فروش مواد غذایی -مجالس مراسم- منوی غذای شرکتی مجالس- غذای-غذاهای رژیمی، ایرانی، فرنگی و …

آشپزی – پیمانکار تهیه غذا (کیترینگ)

ارائه بهترین خدمات :تهیه غذای کلاسیک-برگزاری سمینار – خدمات شرکتی- فروش مواد غذایی -مجالس مراسم- منوی غذای شرکتی مجالس- غذای-غذاهای رژیمی، ایرانی، فرنگی و …

۱ مطلب در دی ۱۳۹۶ ثبت شده است

  • ۰
  • ۰

مقاله gl/l (1194)

ب شرح داده ایم.شدوپیجینگ به فضای دیسک کمتری از روش های ثبت وقایع که در

قبل شرح داده شد احتیاج دارد.

اگرچه. بی فایده است که به سمت شدوپیجینگ برویم. برای مثال :شدوپیجینگ سخت می

پذیرد که عملیات چند تایی را به طور یکجا با هم انجام دهد.

قدیما . پایگاه داده بخش بندی می شد به تعدادی بلاک با طول ثابت. که آنها به صفحات اشاره

می کردند. اصطلاح صفحه از سیستم عامل بر گرفته شده است. که ما از نمای صفحات برای

مدیریت حافظه استفاده می کنیم. اجازه دهید N صفحه را به طور فرض بگیریم.عدد یک از N

(در این تمرین N ممکن است از 10 تا 100 باشد) این صفحات احتیاجی به ذخیره شدن در

قسمتی از دیسک را ندارد.(اینجا دلایلی هستند که چرا آنها از این استفاده نمی کنند که در

درس 10 به شما خواهیم گفت.اگرچه اینجا مجبور هستیم راهی برای پیدا کردن صفحه I از

دیتابیس را برای هر عددی پیدا کنیم. از صفحه جدولی که در شکل 15.8 نشان داده شده

است استفاده می کنیم. برای این هدف صفحه جدولی N تا ورودی دارد.برای هر صفحه پایگاه

داده ها یکی.

هر ورودی تشکیل شده است از اشاره گری در صفحه روی دیسک اولین ورودی شامل اشاره

گری است که به صفحه اول دیتابیس اشاره می کند. و دومین ورودی اشاره می کند به دومین

صفحه و الی آخر. در شکل 15.8 شکل منطقی دیتا بیس صفحه ای نشان داده شده است که

نمی تواند برابری کند با دستور فیزیکی آن که در صفحاتی روی دیسک قرار دارد.

ایده اصلی این است که در کنار تکنیک شدوپیجینگ از دو صفحه جدول که طول عمر عملیات

ها را نگه می دارند استفاده شود.

صفحه جدول جاری و جدول شدوپیجینگ زمانی که عملیات شروع شد. دو صفحه جدول ها

هم برابرند.

جدول شدو پیجینگ هر گز تغییر نمی کند در طول عملیات جدول صفحه جاری شاید تغییر کند

زمانی که عملیات به مرحله نوشتن برسد. تمامی دستورالعملهای ورودی و خروجی استفاده

می شوند به روی صفحه جدول جاری که در روی دیسک و در پایگاه داده است.

قراره که انجام عملیات نوشتن X باشد. و X در صفحه I ام ساکن است. عملیات نوشتن پیروی

می کند از عملهای زیر:

1)اگر صفحه I ام(که آن .صفحه ای است که در آن X ساکن است)پیش از این در حافظه اصلی

نباشد. پس صادر می کند (فرمان می دهد وارد شود X ).

2) اگر این نوشتن اولین کار در روی صفحه I ام توسط این دستور باشد. پس تغییر می دهد

جدول صفحه جاری را طبق زیر:

الف)پیدا می کند یک صفحه ای که بدون استفاده باشد بر روی دیسک . کاملا سیستم پایگاه

داده ها دسترسی دارد به لیستی از صفحات استفاده نشده (آزاد) که در درس 10 خواهیم

دید.

ب)از بین می برد صفحه پیدا شده را طی دو مرحله از لیست صفحات آزاد.

ج) تغییر می دهد صفحه جاری جدول را به مانند ورودی I ام که اشاره کننده به صفحه پیدا

شده طی دو مرحله.

3) واگذاری می کند مقدار Xi را به X در صفحه بافر.

اجازه بدهید ما مقایسه کنیم عملیات قبلی را برای دستور نوشتن با تعریف کردن در بخش

15.2.

تنها تفاوت آن برای ما فقط یک گام می باشد. گام یک و سه بالا برابر است با گا مهای یک و

دو در بخش 15.2.

گام اضافه شده گام 2 . با درست کردن صفحه جدید جاری انجام می شود.شکل 15.9 نشان

می دهد.سایه و صفحه جدول جاری را برای انجام عملیات نوشتن صفحه چهارم از پایگاه داده

ای که تشکیل شده از 10 صفحه.

به صورت حسی شدوپیجینگ که به مانند ترمیم می باشد. در جدول غیر فرار ذخیره سازی

می شود.

بنابراین آن قسمتی از دیتا بیس قبلی که اجرا شده بود در عملیات می تواند ترمیم شود در

رویدادی که سپری شده است.

یا عملیاتی زمانی متوقف می شود که آن عملیات های فرار در جدول صفحه جاری نوشته

شده باشند در یک ذخیره ساز غیر فرار.

پس جدول صفحه جاری یک جدول صفحه شدوپیجینگ جدید را بر می گرداند و شروع عملیات

بعدی به اجرای آن دسترسی دارد.(مهم است که جدول صفحه شدوپیجینگ در ذخیره ساز

غیر فرار ذخیره شوند)

صفحات پایگاه داده جدول صفحه جاری شاید نگهداری شود در حافظه اصلی (حافظه فرار).

از زمانی که سیستمهای ترمیم استفاده می کنند از جدول صفحه شدوپیجینگ ما از عمل

کرش برای از بین بردن جداول استفاده می کنیم.

موفقیت ترمیم نیاز دارد جدول صفحه شدوپیجینگ را روی دیسک بعد از کرش کردن پیدا کنیم.

راه ساده برای پیدا کردن آن انتخاب یک مکان درست شده در حافظه سخت که آن تشکیل

شده از آدرس دیسک که در آن جدول صفحه شدوپیجینگ است.

وقتی که سیستم در حالت بک آپ گیری کرش می کند . ما کپی می کنیم . جدول صفحه

شدوپیجینگ را در حافظه اصلی از آن و استفاده می کنیم. برای پردازش عملیات بعدی برای

اینکه عملیات نوشتن را ضمانت کنیم که جدول صفحه شدوپیجینگ اشاره کند به صفحه

دیتابیس برابر با جایی که دیتابیس قبلی. که عملیاتی در آن فعال بوده در زمان کرش کردن. از

اینقرار به طور اتوماتیک رد شود بی شباهت به نمای ثبت وقایع ها که نیازی به در خواست

کردن به برگشت به عملیات قبلی برای سپری کردن عملیات . ما باید طبق زیر پیروی کنیم.

1)مراقبت از کل صفحه های بافر در حافظه اصلی که با عملیات خروج از دیسک تغییر کرده

است.

(نوشته شده که آنها عملیات خروجی .صفحات دیتابیس را که توسط گوشه ای از اطلاعات

ورودی در جدول صفحه شدوپیجینگ) تغییر نخواهند داد.

2) خروج صفحه جدول جاری از دیسک (نوشته شده که ما نباید جانویسی کنیم جدول صفحه

شدوپیجینگ را از زمانی که ما نیاز به ترمیم کرش کردن داریم)

3) آدرس دیسک خارجی از جدول صفحه جاری در جای تعمیر شده در حافظه استوار که شامل

آدرسی از جدول صفحه شدوپیجینگ است. این عمل جانویسی می کند آدرس قدیمی را در

جدول صفحه شدوپیجینگ از اینرو صفحه جدول جاری بر می گرداند جدول صفحه شدوپیجینگ

را و عملیات سپری می شود.

اگر رویداد کرش قبلی تکمیل شود در گام 3 ما بر می گردیم به تنها جایی که عملیات قبلی در

آن اجرا شده است.

اگر رویداد کرش روی دهد بعد از تکمیل گام سوم افکتهای عملیات محافظت خواهد شد از

دوباره انجام دادن عملیات که نیازی به درخواست نشود.

شدوپیجینگ کوشش می کند که بیشتر از ثبت وقایع سود دهی داشته باشد.

در بالای ثبت رکورد خروجی حذف می شود. و ترمیم از کرش کردن سریع تر است(به

عملیات دوباره انجام دادن و عملیات قبلی نیاز نداریم)اگر چه آنجا مانع تکنیک

شدوپیجینگ می شود.

سپردن به بالایی:سپری شدن یک عملیات که استفاده می کند از شدوپیجینگ نیازمند

به بلاکهای چند گانه خروجی-بلوکهای داده اختصاصی-جدول صفحه جاری-و آدرس

دیسک از جدول صفحه جاری.شمای ثبت مبنایی است و نیاز دارد به ثبت رکوردهای

خروجی تنها-برای عملیات عمومی کوچک(که در یک بلاک جا می شود)

قطعه کردن داده:در فصل 10.ما بحث می کنیم درباره استراتژی گرفتن .صفحات دیتابیس

بسته فیزیکی بر روی دیسک را که ظرفیت دستیابی برای جا به جا کردن داده ها در آن

سریع تر است.

دلایل استفاده شدوپیجینگ به دلیل تغییر جای صفحات دیتابیس در زمان به روز رسانی

است.که در نتیجه جای خصوصیات را در صفحات از دست می دهیم که ما باید دست

کاری کنیم آنها را که پیچیده تر می شوند.بالاترین-سرریز-نمایش برای مدیریت ذخیره

ساز فیزیکی(ببینید نوشته های کتاب های مرجع را)

جمع آوری اطلاعات خراب شده(کرش):

هر زمانی که عملیات انجام می شود.صفحات دیتابیس ها شامل.نسخه قدیمی از داده

های تغییر یافته توسط عملیات بازگرداننده قابل دسترسی است.در شکل 15.9 صفحه

اشاره می کند به ورودی چهارم از جدول شدوپیج که می خواهد قابلیت بازگشت یک

عملیات از آن امتحان را سپری کند.

صفحات که مانند آشغال مطرح شده است.آنها قسمتی از فضای آزاد نیستند و شامل

اطلاعات قابل استفاده هم نیستند. آشغال شاید ایجاد کند یک قسمتی از یک کرش را.

در نوبت های معین . نیاز هست که همه صفحات گاربیج را پیدا کنند.واضافه کنند آنها را

به لیست صفحات آزاد.این پردازش .به نام جمع کننده است که گاربیج(آشغال) یا که

پیچیده است و شامل سرریز می شود در سیستم معروف است.

آنها یکسری الگوریتم های استاندارد برای جمع آوری گاربیج هستند(به کتاب آن مراجعه

شود )

در جمع بندی ما. زیانی در شدوپیجینگ هست که آن ذکر شده .شدوپیجینگ سخت تر

موافقت می کند با ثبت رکورد در سیستم ها که آنها را بکار می برند.

از چندین عملیات در اجرا کردن یکباره- در یک سیستم نمونه .بعضی از ثبت ها کلا نیاز

دارند به آن. حتی اگر شدوپیجینگ هم استفاده شود.سیستم R نمونه.برای مثال

استفاده می کند از ترکیبی از شدوپیجینگ و نمایش ثبت ها . شبیه به بخش 15.4.2

حاضر. که نسبتا ساده است بزرگ کردن ثبت نمایش ترمیم ها برای به کار بردن عملیات

های همزمان . که دلایلش را ما ترجیح می دهیم در بخش 10.6 بگوییم.شدوپیجینگ زیاد

استفاده نمی شود.

15.6-ترمیم با عملیاتهای یکجا(همزمان):

تا الان . بحث ما دوروبر بازیابی بود که تنها عملیات یک بار در یک زمان اجرا می شود.

ما الان مطرح می کنیم که چگونه می توانیم تغییر دهیم و بزرگ کنیم نمایش ثبت رکورد

ها را به مقدار چند عملیات همزمان-فارغ از تعداد عملیات هایی که در حال همزمان اجرا

خواهند شد.سیستمی که یک دیسک بافر دارد و یک ثبت.

بلوک های بافر اشتراک پیدا می کنند با تمامی عملیاتها – ما فوری بروز رسانی را انجام

دهیم و اجازه می دهیم بلوک بافر نشانه های دیتا های بروزرسانی را در یک یا چند

عملیات را داشته باشد.

15.6.1-عمل متقابل با کنترل همزمان:

نمایش بازیابی بستگی زیادی به کنترل همزمان نمایش آن دارد که چطور استفاده می

شود.در فهرست قبلی که عملیاتها رد شده بود. ما باید عملیات قبلی به روز رسانی را

انجام می دادیم.قراره که آن عملیات T0 .در فهرست قبلی باشد.ونشانه دیتا Q که به

روز رسانی شده بود توسط T0 داره بر می گرده به مقدار قدیمی خودش .از نمایش ثبت

رکورد برای بازیابی استفاده می شود . ما برمی گردانیم مقادیر استفاده شده در

عملیات قبلی اطلاعات در ثبت رکورد را . قراره که الان دومین عملیات T1 را انجام بدهید.

یکی دیگر از بروز رسانی Q قبل از اینکه T0 فهرست قبلی انجام شود.بعد.بروز رسانی

انجام شده توسط T1 از دست خواهد رفت اگر T0 در فهرست قبلی باشد.

اگر چه ما نیاز داریم به آن.اگر عملیات T به روز رسانی کند.نشانه داده Q در عملیات

دیگری به روز رسانی نمی شود از نظر نشانه های داده ها تا T سپری شود یا به عقب

برگردد.ما از این نیازمندیها به آسانی توسط استفاده از دو فاز قفل گذاری سخت مراقبت

می کنیم که آن هست. دو فاز قفل گذاری انحصاری که تا انتهای عملیات نگه داشته

می شود.

15.6.2-عقب گرد عملیات:

عقب گرد می کنیم به عملیات از دست رفته. T1 استفاده می کند از ثبت وقایع .ثبت

وقایع قبل از این خودش را پویش می کند.برای هر ثبت رکورد از فرم <v2,v1,x1,t1> پیدا

شده در ثبت وقایع .داده نشانه x1 بر می گرداند مقدار قدیمی اش را به v1 و پویش می

کند ثبت پایانه ها را زمانی که ثبت رکورد ها <شروع.t1 > پیدا شد.

پویش ثبت قبلی مهم است .در علمیات به روز رسانی شده نشان دیتا پس از یک بار

انجام می دهد.

برای شرح دادن به جفتی از ثبت رکورد رسیدگی می کنیم.

<t1,a,10,20>

<t1,a,20,30>

ثبت رکورد ها نشان می دهد تغییرات از یک دیتا آیتم A به T1 را.که پیروی می کند از

تغییرات دیگری از A تا T1 پویش ثبت قبلی دقیقا با 10 جفت می شود.اگر ثبت پویش در

شاخه بعدی بود. A با 20 جفت خواهد شد که مقدار آن نادرست است.اگر دقیقا 2 فاز

قفل گذاری برای کنترل یکجا استفاده بشود قفل ها آن ها را نگه داشته اند و توسط

عملیات T شاید تنها بعد از عملیات عقب گرد رها کند.یکبار عملیات T (آن شروع به عقب

گرد می کند) که نشانه داده آن به روز رسانی شده دیگر عملیاتی نمی تواند به روز

رسانی کند داده های آن را و حق کنترل یکجا نیازمند مذکور قبلی است-اگر چه بر

گرداندن مقدار قدیمی از نشانه داده پاک نخواهد کرد اثر دیگر عملیاتها را .

15.6.3-محل بازرسی

در بخش 15.4.3 ما استفاده می کنیم از محل بازرسی برای تبدیل کردن شماره های

ثبت شده رکورد آنها که باید پویش شود زمانی که پوشش سیستم از کرش استفاده

کند. ما فرض می کنیم –یکجا انجام نمی دهیم-که نیازمند بود که تنها بحث کنیم پیروی

عملیات جاری بازیابی.

آن عملیاتها شروع شدن بعد از محل های بازرسی جدید یک عملیات.در آن زمان فعال

بود از بیشترین محل های بازرسی جدید.

موقعیت بسیار پیچیده وقتی است که عملیات ها می توانند اجرا کنند یکجا از چندین

عملیات که فعال است در بیشتر محل بازرسی جدید.

در سیستم عملیات پردازش یکجا ما نیاز داریم به محل بازرسی ثبت رکورد از فرم –

<محل بازرسی L > که ما در لیستی از عملیات های فعال است که در زمان محل

بازرسی است.دوباره ما بخود گرفتیم که آن دستور العمل ها انجام نمی دهد. به

روزرسانی در بلوکهای بافر یا ثبت آن را-اگر محل بازرسی در توسعه باشد.

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

در جریان ثبت محل بازرسی که می تواند دردسرساز باشد.عملیات پردازش نیاز به تامل

خواهد داشت اگر محل بازرسی در توسعه باشد .محل بازرسی فازی .محل بازرسی

است که عملیات ها اجازه می دهند انجام شود به روز رسانی به راحتی اگر بلوکهای

بافر شروع به نوشتن بکنند.کتابشناسی نوشته ها آماده می کند مراجع را برای بسط

دادن تکنیک ترمیم برای اجازه دادن به محل بازرسی فازی .محل بازرسی فازی نشان

داده شده و توضیح داده شده در قسمت 15.9.5

15.6.4 – شروع مجدد ترمیم

زمانی که سیستم های ترمیم کرش را درست می کنند.2 لیست می سازند .لیست

باطل کردن که تشکیل شده است از دستورات که نا تمام مانده و لیست دوباره انجام

دادن که تشکیل شده از عملیاتهایی که تمام شده اند.

این دو لیست ساخته می شوند بر روی قسمت ترمیم به صورت زیر:

در آغاز .آنها هر دو خالی هستند .ما پویش می کنیم ثبت شده های قبلی را . امتحان

می کنیم هر رکورد را تا زمانیکه اولین نقطه رکورد پیدا شود.

برای هر رکورد فرمی به نام (T1 commit) پیدا می شود ما این T1 را به لیست تمام

شده ها اضافه می کنیم.

برای هر رکورد پیدا می کنیم فرمی به نام (T1 start) اگر Ti در لیست انجام شده ها

قرار نداشت پس ما آنها را با لیست ناتمام مانده ها جمع می کنیم.

وقتی که کل آن تصرف شد ثبت رکورد ها امتحان می شود.ما امتحان می کنیم لیست L

را در رکورد آغازین –برای هر عملیات T1در L0 اگر T1 در لیست تمام شده ها نباشد ما

آن را با لیست ناتمام مانده ها جمع می کنیم.

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

صورت زیر خواهد بود.

1) دوباره پویش می کند.ثبت شده ها را از رکورد قبلی که نزدیکتر است و انجام آنها

را باطل می کند برای هر ثبت رکوردی که آنها وابسته به عملیات T1 در لیست باطل

شده ها ثبت رکورد ها در عملیات ها که روی لیست دوباره انجام دادن هستند.در

این مرحله رد می شوند.پویش متوقف می شود زمانی که <t1 start> رکوردهایش

پیدا شده برای هر عملیات Ti در لیست باطل شده ها.

2) جای بیشتر <چک پوینت L >نزدیک رکورد در ثبت است.اعلام می کند که آن در

این مرحله می خواهد پویش کند ثبت بعدی را .اگر چک پوینت رکورد در مرحله 1

گذشته بود.

3) پویش می کند بیشتر ثبت بعدی را از نزدیکتر ین رکورد<چک پوینت L >و انجام

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

انجام دادن وجود دارد و نادیده می گیریم ثبت رکورد ها را در عملیات در لیست باطل

شده در این مرحله.

مهم است که در گام یک پردازش شود ثبت قبلی تهیه کردن آن نتیجه از پایگاه داده

ها صحیح است.

بعد از همه عملیات ها در لیست باطل شده ها که نا تمام مانده اند.آن عملیات ها

در روی لیست دوباره انجام شونده ها هستند همه آنها اتمام پیدا کردند.مهم است

در این قالب پردازش ثبت بعدی زمانی که پردازش ترمیم کامل گشت.پردازش عملیات

ها از سر گرفته خواهد شد.

مهم است باطل کردن عملیات در لیست باطل کردن ها قبل از انجام دوباره عملیات.

در لیست دوباره انجام دادن استفاده می کنیم از الگوریتم قبلی از جهات دیگر.

ممکن است مشکلات روی دهد .فرض است آن نشانه داده ها A در آغاز مقدارش

10 باشد. و فرض است که آن عملیات Ti به روز رسانی کند آن نشانه داده A را به

20. تغییر و صرف نظر می کند از آن.

عملیات عقب گرد خواهد کرد و باز خواهد گرداند A را به مقدار 10.فرض است که آن

یک عملیات دیگر Ti است پس به روزرسانی نشانه داده A به 30 می شود و این

انجام می شود.مثل اینکه سیستم کرش کند .میزان از ثبت در زمان کرش هست.

<Ti,A,10,20>

<Tj,A,10,30>

<Tj commit>

اگر دوباره انجام شدن در اول انجام شود. A.30 خواهد شد.سپس.در باطل

کردن.A.20 خواهد شد که اشتباه است.آخرین مقدار Q باید 30 باشد که ما می

توانیم به طور حتمی انجام دهیم باطل کردن قبل از انجام دادن دوباره آن.

15.7-مدیریت بافر:

در این قسمت . ما بحث خواهیم کرد مقداری در مورد جزییات ضروری برای انجام

ترمیم-کرش یک شمایی از آن به طور حتمی از داده ها تشکیل شده و تحمیل می

کند .کوچکترین مقدار از سر ریزی در عمل متقابل با پایگاه داده ها را.

15.7.1-بافرینگ ثبت رکورد:

به تازگی ما فرض گرفته بودیم که آنها در ثبت رکورد خروجی در روی یک ذخیره ساز

استوار در یک زمان ایجاد می شود.این فرض تحمیل می کند بالاترین سرریزی روی

سیستمی که اجرا می کند و پیروی می کند از دلایل آن مخصوصا خروجی ذخیره

ساز استوار واحدی از بلاک هاست.در بیشتر قالب ها ثبت رکورد کوچکتر از یک بلاک

است.از این جهت خروجی از هر ثبت رکورد ترجمه می کند بیشتر خروجی را در

مرحله فیزیکی از این گذشته ما دیده بودیم در قسمت 15.2.2 خروجی از یک بلاک

در ذخیره ساز استوار می خواهد که چندین اجرای خروجی در مرحله فیزیکی داشته

باشد.

مقدارانجام خروجی از بلاک در ذخیره ساز استوار بیشتر از حد کفایت است.

که آن مرغوب است در خروجی های چند گانه ثبت رکورد که در یکبار انجام می

شود. پس برای انجام .ما می نویسیم ثبت رکورد در ثبت بافر در حافظه اصلی آنجا

آنها می مانند به طور موقتی تا آنها خارج شونداز ذخیره ساز استوار ثبت رکورد چند

گانه می تواند جمع کند ثبت بافر و خروجی ذخیره ساز استوار در یک عملیات

خروجی را.سفارش ثبت رکورد ها در یک ذخیره ساز استوار باید به درستی

سفارشی باشد که آنها می نویسند در ثبت بافر.

می طلبد که استفاده کنیم از ثبت بافر ثبت رکورد تنها در حافظه اصلی می ماند

(ذخیره ساز فرار)برای زمان قابل بحث قبل از این خروجی در ذخیره ساز استوار قرار

گیردو ثبت رکورد از دست می رود اگر سیستم کرش کند.

ما باید تحمیل کنیم نیازمندیهای جمع کننده در تکنیک ترمیم را در حتمی کردن

عملیات مولکولی.

عملیات Tj وارد می کند اجرا شده ها را در میدان بعد از <Tj commit> ثبت رکورد ها

وابسته به عملیات Tj را که باید در خروجی در ذخیره ساز استوار باشند.

قبل از اینکه یک بلاک از داده ها در حافظه اصلی بتواند خارج شود از دیتابیس (در

ذخیره ساز غیر فرار)همه ثبت رکورد ها وابسته به داده هستند باید در آن بلاک

خروجی داشته باشند به ذخیره ساز استوار.

آخرین قانون نامیده میشود.نوشتن مستقیم ثبت قانون(WAL ) دقیقا گفته می شود.

قانون WAL نیازمند است که تنها در اطلاعات باطل شده در خروجی در ذخیره ساز

استوار ثبت شود واجازه میدهد که دوباره اطلاعات بعدی نوشته شوند. تفاوت مربوط

در سیستم ها در دوباره انجام دادن وبا طل کردن اطلاعات در ذخیره کردن در ثبت

رکورد های جداگانه است.

نوشته می شود ثبت بافر در دیسک در بعضی مواقع که مراجعه می شود به قوانین

قبلی میدان موقعیت در ثبت رکورد های مطمئن که باید در خروجی ذخیره ساز

استوار باشند .آنجادر جواب مشکلی نیست از خروجی که ثبت رکوردها زودتر از نیاز

انجام شوند.از اینقرار وقتی که سیستم احتیاج پیدا می کند به خروج ثبت رکورد در

ذخیره ساز استوار در خروجی ها وارد می شود بلوکی از ثبت رکورد ها اگر به مقدار

کافی ثبت رکورد ها در حافظه اصلی پر کند بلاک را و اگر مقدار کمی ثبت رکورد پر

کند بلاک را . همه ثبت رکورد ها در حافظه اصلی به هم می پیوندند در قسمت پر

بلاک و خروج پیدا می کنند به ذخیره ساز استوار.

15.7.2-بافرینگ پایگاه داده ها:

در قسمت 15.2 ما توصیف کردیم استفاده از 2 مرحله ذخیره سلسله مراتبی را

پایگاه داده در یک ذخیره ساز غیر فرار ذخیره می شد(دیسک)و بلاک های داده در

حافظه اصلی آورده می شد که به آنها احتیاج است.مخصوصا که حافظه اصلی

کوچکتر از ورودی پایگاه داده ها است.شاید نیاز دارد جانویسی شود بلاک B1 در

حافظه اصلی زمانیکه یک بلاک دیگر B2 نیاز است به آوردنش در حافظه اگر B1

اصلاح شده باشد. B1 باید خارج شود در ورودی از B2 بحث در قسمت 10.5.1 در

درس 10واین ذخیره ساز سلسله مراتبی هست و سیستم اجرایی استاندارد که

شامل حافظه مجازی است.

قوانین برای خروج از ثبت رکورد های محدود آزاد است در سیستم خرو جی بلاک از

دیتا .اگر ورودی از بلاک B2 سبب بلاک B1 برای انتخاب خروجی باشد .همه ثبت

رکورد های وابسته به داده B1 باید خارج شوند از ذخیره ساز استوار . قبل از اینکه

B1 خارج شود.از این رو ترتیب اعمال از طرف سیستم باید از این مراحل پیروی کند.

خروجی ثبت رکورد ها در ذخیره ساز استوار تا زمانیکه همه ثبت رکورد ها

وابسته به بلاک B1 هستند خارج شده باشند.

خروجی بلاک B1 در دیسک ذخیره شود.

ورودی بلاک B2 از دیسک به حافظه اصلی برود.

مهم است که نوشته نشود چیزی روی بلاک B1 در این روش اگر عمل های

قبلی به صورت متوالی انجام شوند.ما می توانیم حتمی کنیم آنها را توسط

استفاده مخصوص از قفل گذاری مثال:قبل از اینکه عملیات نوشتن روی نشانه

داده صورت گیرد.باید یک بلاک انحصاری باز را بدست بیاوریم که در نشانه داده

مانده باشد.قفل می تواند فورا بعد از به روز رسانی که انجام شد رها شود. قبل

از اینکه بلاک خارج شود.سیستم بدست می آورد.یک بلاک باز انحصاری که تهیه

نکرده عملیاتی برای به روز رسانی بلاک .قفل رها می کند یک بلاک خارجی را

که کامل شده و قفل ها نگه می دارند برای یک مدت کوتاه که معمولا نامیده می

شوند قفل فنری. قفل فنری ایجاد می کند فرمی جدا از قفل که استفاده می

شوند در سیستم کنترل یکجا در نتیجه آنها رها می کنند بدون ملاحظه قوانین

قفل گذاری مثل دو مرحله قفل گذاری نیاز دارد به سیستم کنترل یکجا.برای

شرح دادن احتیاجات برای عملیات متوالی قبلی ما بحث می کنیم.درباره مثال

بانک با عملیات T0 .T1 فرض است که در میدان

ثبت و آن عملیات T0می فرستد و می خواند B را و

می پنداریم که بلاک در B مانده و در حافظه اصلی نیست و حافظه اصلی آن پر

است. <T0 start>

T0,A,1000,950> <

فرض است که آن بلاک که در A مانده می تواند انتخاب کند برای خارج شدن از

دیسک.اگر خروجی سیستم این بلاک به دیسک ودر این حال کرش رخ

بدهد.مقادیر در پایگاه داده ها برای مقادیر A,b,c به ترتیب 700$و2000$و950$

.در این حال پایگاه داده اگر چه تناقض دارد.از این رو نیازمندیهای قبلی ثبت رکورد.

<T0,A,1000,950>

باید خارج شود از ذخیره ساز استوار برای خروج از بلاک که در A مانده

است.سیستم می تواند استفاده کند از ثبت رکورد جاری ترمیم برای رساندن

پایگاه داده قبلی در حال موافق.

15.7.3-نقش سیستم عامل در مدیریت بافر:

ما می توانیم مدیریت کنیم بافر پایگاه داده را با استفاده از یکی از دو مثال زیر:

سیستم پایگاه داده قسمتی از حافظه اصلی اختصاص داده شده به بافر را

2)بیشتر از سیستم عامل مدیریت اختصاص می دهد.سیستم پایگاه داده

مدیریت می کند جا به جایی بلاک داده در مطابقت با نیازمندیهای آن .ما بررسی

می کنیم این مثال را که مانع دارد .از محدودیت تغییر پذیری در استفاده حافظه

اصلی .بافر باید نگه دارد مقدار کوچکی از کاربردهای دیگر را.

  • milad milad