ورود

نسخه کامل مشاهده نسخه کامل : درک معفوم سیستم عاملی



iranch
13-10-2014, 08:27
درود
در حال نوشتن برنامه ای بودم به یک مفهوم سیستم عاملی برخوردم و پاسخش نمیدانم .... برای همین اینجا مطرح کردم
ما میگیم هر چیزی که بخواد اجرا بشه باید در حافظه رم بارگذاری بشه و سی پی یو دستورالعمل و داده ها رو Fetch کنه و روشون کار انجام بده درسته؟
حالا مثلا یک دی وی دی میزاریم 9 گیگ. کل رم سیستم هم 512 مگابایت هست که 400 مگ مصرف شده توسط خودمون.
حاللا این 9 گیگ بلاک بلاک خونده میشه و قطعه قطعه میره داخل حافظه رم و خارج میشه؟ بلاخره بخواد فیلم هم نشان بده باید دستور العمل و داده های این فیلم توسط سی پی یو برداشته و اجرا بشه درتسه؟

V i r u s e r
13-10-2014, 11:14
درود
در حال نوشتن برنامه ای بودم به یک مفهوم سیستم عاملی برخوردم و پاسخش نمیدانم .... برای همین اینجا مطرح کردم
ما میگیم هر چیزی که بخواد اجرا بشه باید در حافظه رم بارگذاری بشه و سی پی یو دستورالعمل و داده ها رو Fetch کنه و روشون کار انجام بده درسته؟
حالا مثلا یک دی وی دی میزاریم 9 گیگ. کل رم سیستم هم 512 مگابایت هست که 400 مگ مصرف شده توسط خودمون.
حاللا این 9 گیگ بلاک بلاک خونده میشه و قطعه قطعه میره داخل حافظه رم و خارج میشه؟ بلاخره بخواد فیلم هم نشان بده باید دستور العمل و داده های این فیلم توسط سی پی یو برداشته و اجرا بشه درتسه؟
بله
این که چه مقدار از دیسک یا هارد روی رم بارگذاری(کش) بشه بستگی به پلیر سیستم عامل و فایل سیستم حافظه ی جانبی مورد نظر داره. (معمولا حداقلش ۵۱۲ بایت هست)
معمولا برای حافظه های کم سرعت (مثل دی وی دی) این مقدار کش شدن از چند صد کیلوبایت تا چند مگابایت هست.
بعد از مرحله ی کش شدن codec در یک حلقه دوبایت دوبایت اطلاعات رو پردازش میکنه تا در خروجی نمایش بده.
معمولا برای تسریع روند همیشه یک تابع در حال کش کردن روی رم هست و تابع دیگه ای همزمان این رو پردازش می کنه و از رم خارج میکنه. اگر اطلاعات پردازش شده از رم خارج نشه مصرف رم زیاد میشه و بهش می گن memory leak