کوبیدگی (علوم رایانه)
From Wikipedia, the free encyclopedia
در علوم کامپیوتر زد و خورد زمانی رخ می دهد که منابع حافظه مجازی یک کامپیوتر بیش از حد استفاده شوند که منجر به یک وضعیت ثابت پیجینگ و خطاهای صفحه می شود که مانع از اکثر پردازشهای سطح نرمافزاری میشود. این امر موجب می شود تا عملکرد کامپیوتر افت کند و یا منجر به فروپاشی می شود. این وضعیت میتواند به صورت نامتناهی ادامه یابد مگر اینکه کاربر، برخی نرم افزارهای در حال اجرا را ببندد یا اینکه پروسه های فعال، منابع اضافی حافظه مجازی را خالی کنند.
بعد از کامل شدن شروع برنامه، اکثر برنامه ها روی تعداد معدودی از کد ها و صفحات داده در مقایسه با حافظه کلی مورد نیاز برنامه کار می کنند. صفحاتی که بیشتر از همه مورد دسترسی قرار میگیرند میز کاری(working set) نام دارند.
زمانی که میز کاری درصد اندکی از تعداد کل صفحات سیستم است، سیستم های حافظه مجازی به بهترین نحو کار می کنند و بخش ناچیزی از محاسبه صرف حل و فصل خطاهای صفحه می شود. اما زمانی که میز کاری رشد می کند، حل و فصل خطاهای صفحه تا زمانی قابل مدیریت خواهد بود که این رشد به یک نقطه بحرانی برسد. سپس خطاها به طور چشمگیری افزایش می یابد و زمان صرف شده برای حل و فصل آن ها بر زمان صرف شده برای محاسبه ای که برنامه برای آن نوشته شده است غلبه می کند. به این شرایط اصطلاحاً زد و خورد میگویند. زد و خورد در برنامه های رخ می دهد که با ساختارهای داده ی حجیم سر و کار دارند، زیرا میز کاری بزرگ آن ها موجب خطاهای مداوم صفحه میشود که به طور چشمگیری سیستم را کند می کند. حل و فصل خطاهای صفحه ممکن است نیازمند آزاد کردن صفحاتی باشد که باید به زودی از روی دیسک مجدداً خوانده شوند.
این اصطلاح همچنین برای پدیدههای مشابه مختلفی استفاده می شود، خصوصاً حرکت بین سایر سطوح سلسله مراتب حافظه که در آن یک پروسه به دلیل زمان چشمگیر صرف شده برای به دست آوردن منابع، به آهستگی پیشرفت می کند.
اصطلاح زد و خورد همچنین در زمینه هایی غیر از سیستم های حافظه مجازی استفاده می شود. برای مثال برای توصیف مشکلات محاسباتی کش یا سندروم پنجره احمق در شبکه.