::: در حال بارگیری لطفا صبر کنید :::

نام کاربري : پسورد : يا عضويت | رمز عبور را فراموش کردم


تعداد بازدید : 291
نویسنده پیام
avandprinter
آفلاین

" border="0">

ارسال‌ها: 2
عضویت: 1 /5 /1396
بیت توازن چگونه کار می کند؟

بیت توازن یا Parity و کاربرد آن در RAID چیست؟
در علم کامپیوتر Parity یا بیت افزونه یا بیت توازن تکنیکی است برای بررسی اینکه اطلاعات و داده ها در طول جابجایی از مکانی در حافظه بین کامپیوترها، دچار تغییر و خطا شده است یا خیر.
بیت توازن چگونه کار می کند؟
از آنجا که انتقال اطلاعات از خطا مبری نیست، اطلاعاتی که دریافت می شود در طول انتقال همیشه همانطور که فرستاده می شود نیست. بنابراین یک بیت به عنوان بیت افزونه یا parity به همراه اطلاعات ارسال می شود تا مشخص شود اطلاعات به درستی منتقل شده است یا خیر.
یک بیت اضافه شده به همراه گروهی از بیت ها منتقل می شود. این بیت که گاهی check bit هم نامیده می شود فقط برای این استفاده می شود که تشخیص دهیم آیا بیت ها با موفقیت ارسال شده اند یا خیر.
Parity زوج یا فرد؟
دو نوع بیت parity وجود دارد:
Parity زوج: در این روش تعداد بیت هایی که مقدار آن یک است محاسبه می شود. اگر تعداد بیت ها فرد بود بیت پریتی برابر با یک می شود تا تعداد کل بیت ها به همراه بیت پریتی عددی زوج باشد. اما اگر تعداد بیت های با مقدار یک، زوج بود، بیت parity برابر با صفر خواهد بود تا تعداد کل بیت های با مقدار یک (شامل بیت پریتی) زوج باقی بماند.
Parity فرد: در این روش نیز اگر تعداد بیت های با مقدار یک، زوج بود، بیت پریتی یک و در غیر اینصورت بیت پریتی صفر خواهد بود. در این صورت تعداد کل بیت های با مقدار یک به همراه بیت پریتی مقداری فرد خواهد ماند.
اطلاعات اصلیParity زوجParity فرد
0000000001
0101110110
1111111101
0000000110
0101010101
وقتی اطلاعات دریافت شد، تمامی بیت ها به همراه بیت پریتی چک خواهند شد که تعداد آن فرد است یا زوج. اگر خطایی رخ داده باشد سیستم خطا را تشخیص خواهد داد.
پیدا کردن خطا
توضیح بالا نشان می دهد که بیت parity چطور قادر به شناسایی خطاست. برای مثال اگر اطلاعات با پریتی زوج منتقل شده باشند و اطلاعات دریافتی فرد باشد قطعا اطلاعات دریافتی دچار خطا شده است. یعنی یکی از بیت ها در طول انتقال عوض شده است. البته روش دریافت خطا از طریق بیت parity عاری از اشتباه نیست. چرا که اگر دو بیت در طول انتقال تغییر کرده باشد این روش قادر به دریافت خطا نیست. برای کامپیوترهای شخصی این روش مفید است اما برای اطلاعاتی که توسط سیستم های کامپیوتری بزرگ منتقل می شود و اطلاعات مهم است تا سه بیت برای دریافت خطا با اطلاعات ارسال می شود.
چک کردن خطا بوسیله parity همچنین درارتباط بین دو مودم نیز استفاده می شود در اینجا parity میتواند زوج یا فرد باشد. همچنین انتقال اطلاعات می تواند بدون پریتی منتقل شود و از راههای دیگر تشخیص خطا در انتقال اطلاعات استفاده شود.
پریتی و رید کردن
تکنیک parity در آرایه افزونه دیسک های مستقل یا RAID نیز استفاده می شود. RAID Controller ها فرم های پیشرفته تشخیص خطای parity را مانند پریتی افقی یا عمودی به کار می برند. بعضی از انواع RAID – مثل RAID 4 یا RAID 5 – یک یا دو دیسک را به عنوان دیسک پریتی در نظر می گیرند که می تواند داده ها را بعد از خرابی یکی از دیسک ها دوباره بازسازی کند.
به عنوان مثال رید پریتی دوتایی (که با نام RAID 6 هم شناخته می شود) داده ها را برای حداقل چهار دیسک درسطح block-level نوار بندی می کند، مثل RAID 5، اما یک دسته اطلاعات دیگر را به عنوان پریتی دوم می سازد که در طول درایوها پخش می شود. این روش امکان بازیابی اطلاعات پس از خرابی دو دیسک را فراهم می سازد. هرچند RAID با دو پریتی نیازمند کنترلر پیچیده، هزینه بیشتر به دلیل دو درایو اضافه و سرعت نوشتن پایین تر است.
یک مثال برای چگونگی دریافت و تصحیح خطا
تک parity:
فرض کنید چهار رشته چهار بیتی اطلاعات به شرح زیر است:
تصویر: https://rasamserver.com/wp-content/uploads/2019/08/2019-08-20_134644.jpg
برای ساختن پریتی P به سادگی این چهار رشته را در هم XOR میکنیم. جدول منطقی عملگر XOR در زیر آمده است:
XYXOR
000
011
101
110
تصویر: https://rasamserver.com/wp-content/uploads/2019/08/2019-08-20_134737.jpg
P در اینجا یک رشته چهاربیتی است و در واقع همان اطلاعات پریتی است. اگر از بین این پنج رشته یکی از بین برود می توان با استفاده از بقیه اطلاعات آن رشته را بدست آورد. اگر P از بین برورد با همین روش ساخت پریتی می توان آن را دوباره ساخت. اما اگر یکی از اطلاعات اصلی (مثلا D1) از بین برود کافی است باقی رشته ها که شامل P نیز می شود با هم XOR کرد:
تصویر: https://rasamserver.com/wp-content/uploads/2019/08/2019-08-20_134754.jpg
دو Parity:
برای ساختن پریتی دوم لازم است تا از عملگر Shift برای هر رشته استفاده کرد. تعریف عملگر Shift به شرح زیر است:
تصویر: https://rasamserver.com/wp-content/uploads/2019/08/2019-08-20_134811.jpg
استفاده از عملگر Shift یک رشته منحصر بفرد برای هر رشته در اختیار ما قرار می دهد. پریتی دوم به روش زیر محاسبه می شود:
تصویر: https://rasamserver.com/wp-content/uploads/2019/08/2019-08-20_134827.jpg
در اینجا در صورتی که یکی از رشته ها از بین برود می توان به راحتی مثل تصحیح خطا در تک پریتی آن را بازسازی کرد. اما در دو پریتی نشان می دهیم در صورتی که دو رشته نیز ازبین برود می توان آنها را بازسازی کرد. اگر رشته P و یکی از رشته های اصلی از بین برود می توان آن رشته را با استفاده از Q و این واقعیت که XOR هر رشته در خودش برابر صفر است بدست آورد. فرض کنید P و D3 از بین رفته باشد. می توان D3 را از این فرمول و در نهایت با عکس کردن عملگر Shift محاسبه کرد:
تصویر: https://rasamserver.com/wp-content/uploads/2019/08/2019-08-20_134839.jpg
همچنین اگر اطلاعات دو رشته اصلی از بین رفت می توان آنها را با استفاده از P و Q و XOR کردن باقی رشته ها در آنها بدست آورد. فرض کنید D0 و D3 از بین رفته باشد. با استفاده از فرمول زیر می توان به نتیجه رسید:
تصویر: https://rasamserver.com/wp-content/uploads/2019/08/2019-08-20_134854.jpg
این یک دو معادله دو مجهولی در سطح بیت است که با حل کردن آن می توان دو جواب منحصر به فرد برای D0 و D3 بدست آورد.

چهارشنبه 22 مرداد 1399 - 13:32
وب کاربر ارسال پیام نقل قول تشکر گزارش



تازه سازي پاسخ ها
پرش :
صفحه اصلی | انجمن | ورود | عضویت | خوراک | نقشه | تماس با ما | طراح

این قالب توسط سایت روزیکس طراحی شده است و هر گونه پاک کردن لینک طراح پیگرد قانونی دارد !