PDA

View Full Version : گفتگو: تعیین درصد درگیری سیستم در پروسس های موازی



shaghaghi
سه شنبه 28 خرداد 1387, 10:46 صبح
سلام
اگر دقت کرده باشید زمانیکه با کمک یک تابع api اقدام به کپی کردن یک فایل می نمایید، به حدی سیستم شما درگیر این کار می شود که برنامه تان دچار وقفه می شود، بطوریکه در آن لحظه چاره ای جز منتظر ماندن تا اتمام پروسس ندارید، حال اینکه شما در خود ویندوز همزمان می توانید دستور کپی شدن چند فایل را بدهید بدون اینکه اختلالی در کار پیش بیاید (البته با سرعت کمتر) ولی در حالت Copy کردن با Api در یک برنامه ی Vb اصلا حتی به شما اجازه ی حرکت دادن Progress bar تان را هم نمی دهد!!
مثال دیگر: اگر شما از طریق vb فرمان اجرای یک sp نسبتا وقت گیر را به سرور بدهید، برنامه تان به حالت کما فرو می رود!! (حتی ساعت Status Bar شما هم متوقف می شود)، حال اینکه شما در SQL Query Analyzer این مشکل را ندارید و بعد از دادن فرمان اجرای آن sp با خیال راحت در محیط برنامه می توانید گردش کنید بدون اینکه تایمر آن مختل شود یا اینکه حتی چرخش آیکون Status bar آن متوقف شود
آنچه به نظر می رسد این است که در نرم افزار های حرفه ای قبل از اجرای هر پروسس برای سیستم کاربر (اعم از CPU و Memory) سقفی تعیین می شود که مثلا 20 درصد توان خود را برای این پروسس اختصاص دهد و مابقی آنرا صرف سایر درخواستها نماید
دوستان عزیز در این زمینه تجربه یا نظر خاص داشته اید، آیا این امکان فقط مختص نرم افزار های خاص و مایکروسافت است؟

مهران رسا
سه شنبه 28 خرداد 1387, 11:32 صبح
شما وقتی اقدام به کپی نمودن یک فایل در VB می کنی در واقع از VB درخواست می کنی که فایل رو یکجا و یکدفعه واست کپی کنه و همین موضوع با توجه به حجم فایل موجب ایجاد وقفه در برنامه میشه .

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

در کل من فکر می کنم چنین مواردی ربط چندانی به مدیریت پروسه ها ندارن .