همگام سازی
فرهنگستان زبان و ادب
دانشنامه عمومی
همگام سازی (علوم رایانه). در علم رایانه همگام سازی به یک یا دو مفهوم مجزا اما مرتبط اشاره دارد: همزمان سازی فرایند و همزمان سازی داده. همزمان سازی فرایند اشاره دارد به این ایده که فرایند های متعدد در یک نقطه خاص به یکدیگر ملحق می شوند یا با هم دست می دهند تا به یک توافق برسند یا ملزم به ترتیبی خاص از یک عمل شوند. همگام سازی داده اشاره دارد به ایدهٔ نگهداری کپی های متعدد از یک مجموعه داده که با یکدیگر سازگار و منطبق باشند، یا حفظ یکپارچگی داده. مفهوم همگام سازی فرایند معمولاً برای پیاده سازی همگام سازی داده استفاده می شود. [ ۱] [ ۲]
نیاز به همگام سازی صرفاً در سیستم های چند پردازنده ای نیست، بلکه برای هر نوعی از فرایند های همزمان استفاده می شود، حتی در یک سیستم تک پردازنده ای نیز کاربرد دارد. در زیر برخی از نیازهای اساسی به همگام سازی ذکر شده است:
انشعاب و الحاق ( fork - join ) : زمانی که یک کار به یک نقطه انشعاب می رسد به ریز کارهای متعددی تقسیم می شود که بعداً توسط تسک های ( به انگلیسی: task ) متعددی سرویس دهی می شوند. بعد از انجام سرویس دهی، هر ریز کار منتظر می ماند تا پردازش تمام ریز کارهای دیگر انجام شود. سپس ریز کارها مجدداً به هم ملحق می شوند و از سیستم خارج می گردند؛ بنابراین برنامه های موازی نیازمند همگام سازی هستند، زیرا تمام فرایند های موازی منتظر چندین فرایندٔ دیگر می مانند تا اجرا شوند.
تولیدکننده - مصرف کننده: در یک رابطهٔ تولیدکننده - مصرف کننده، فرایند مصرف کننده وابسته به فرایند تولیدکننده است تا زمانی که داده مورد نیاز تولید شود.
منابعی با استفاده انحصاری: زمانی که فرایند های متعدد وابسته به یک منبع هستند و نیاز است تا به طور همزمان به آن دسترسی پیدا کنند، سیستم عامل باید این اطمینان را پیدا کند که فقط یک پردازنده در یک نقطهٔ مشخص از زمان به آن دسترسی پیدا کند. این کار باعث کاهش همروندی می شود.
همگام سازی به این شکل تعریف می شود که مکانیسمی است که باعث می شود دو یا بیش از دو فرایند یا ریسمانٔ همروند، برخی اجزا خاص از برنامه به نام قسمت بحرانی را به صورت همزمان اجرا نکنند. دسترسی فرایند ها به قسمت بحرانی توسط تکنیک های همگام سازی کنترل می شود. زمانی که یک ریسمان شروع به اجرای قسمت بحرانی می کند ( بخش متوالی برنامه ) ، ریسمان دیگر باید منتظر بماند تا ریسمان اول تمام شود. اگر تکنیک های همگام سازی مناسب وجود نداشته باشد[ ۳] این وضعیت ممکن است موجب یک شرایط مسابقه ای شود که در آن مقادیر متغیرها ممکن است غیرقابل پیش بینی باشد و بسته به زمان بندی تعویض های زمینه ای فرایند ها یا ریسمان ها، متغیر باشد. برای مثال فرض کنید که سه فرایند با نام های ۱، ۲ و ۳ وجود دارند. هر سه فرایند به صورت هم روند اجرا می شوند و این نیاز به وجود می آید که آنها یک منبع مشترک ( بخش بحرانی ) را مشابه شکل ۱ به اشتراک بگذارند. در اینجا باید از همگام سازی استفاده شود تا هیچگونه تقابلی برای دسترسی به این منبع مشترک به وجود نیاید. از این رو زمانی که فرایند ۱ و ۲ هر دو سعی می کنند تا به منبع دسترسی پیدا کنند، منبع مورد نظر باید در هر لحظه فقط به یکی از این دو اختصاص پیدا کند. اگر منبع به فرایند ۱ اختصاص پیدا کند، فرایند دیگر یعنی فرایند ۲ باید منتظر بماند تا فرایندٔ ۱ منبع را آزاد کند، چنانچه که در شکل ۲ نشان داده شده است.
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفنیاز به همگام سازی صرفاً در سیستم های چند پردازنده ای نیست، بلکه برای هر نوعی از فرایند های همزمان استفاده می شود، حتی در یک سیستم تک پردازنده ای نیز کاربرد دارد. در زیر برخی از نیازهای اساسی به همگام سازی ذکر شده است:
انشعاب و الحاق ( fork - join ) : زمانی که یک کار به یک نقطه انشعاب می رسد به ریز کارهای متعددی تقسیم می شود که بعداً توسط تسک های ( به انگلیسی: task ) متعددی سرویس دهی می شوند. بعد از انجام سرویس دهی، هر ریز کار منتظر می ماند تا پردازش تمام ریز کارهای دیگر انجام شود. سپس ریز کارها مجدداً به هم ملحق می شوند و از سیستم خارج می گردند؛ بنابراین برنامه های موازی نیازمند همگام سازی هستند، زیرا تمام فرایند های موازی منتظر چندین فرایندٔ دیگر می مانند تا اجرا شوند.
تولیدکننده - مصرف کننده: در یک رابطهٔ تولیدکننده - مصرف کننده، فرایند مصرف کننده وابسته به فرایند تولیدکننده است تا زمانی که داده مورد نیاز تولید شود.
منابعی با استفاده انحصاری: زمانی که فرایند های متعدد وابسته به یک منبع هستند و نیاز است تا به طور همزمان به آن دسترسی پیدا کنند، سیستم عامل باید این اطمینان را پیدا کند که فقط یک پردازنده در یک نقطهٔ مشخص از زمان به آن دسترسی پیدا کند. این کار باعث کاهش همروندی می شود.
همگام سازی به این شکل تعریف می شود که مکانیسمی است که باعث می شود دو یا بیش از دو فرایند یا ریسمانٔ همروند، برخی اجزا خاص از برنامه به نام قسمت بحرانی را به صورت همزمان اجرا نکنند. دسترسی فرایند ها به قسمت بحرانی توسط تکنیک های همگام سازی کنترل می شود. زمانی که یک ریسمان شروع به اجرای قسمت بحرانی می کند ( بخش متوالی برنامه ) ، ریسمان دیگر باید منتظر بماند تا ریسمان اول تمام شود. اگر تکنیک های همگام سازی مناسب وجود نداشته باشد[ ۳] این وضعیت ممکن است موجب یک شرایط مسابقه ای شود که در آن مقادیر متغیرها ممکن است غیرقابل پیش بینی باشد و بسته به زمان بندی تعویض های زمینه ای فرایند ها یا ریسمان ها، متغیر باشد. برای مثال فرض کنید که سه فرایند با نام های ۱، ۲ و ۳ وجود دارند. هر سه فرایند به صورت هم روند اجرا می شوند و این نیاز به وجود می آید که آنها یک منبع مشترک ( بخش بحرانی ) را مشابه شکل ۱ به اشتراک بگذارند. در اینجا باید از همگام سازی استفاده شود تا هیچگونه تقابلی برای دسترسی به این منبع مشترک به وجود نیاید. از این رو زمانی که فرایند ۱ و ۲ هر دو سعی می کنند تا به منبع دسترسی پیدا کنند، منبع مورد نظر باید در هر لحظه فقط به یکی از این دو اختصاص پیدا کند. اگر منبع به فرایند ۱ اختصاص پیدا کند، فرایند دیگر یعنی فرایند ۲ باید منتظر بماند تا فرایندٔ ۱ منبع را آزاد کند، چنانچه که در شکل ۲ نشان داده شده است.
wiki: همگام سازی (علوم رایانه)
پیشنهاد کاربران
فیننگ