آموزش برنامه نویسی بصورت تئوری و عملی

۴ مطلب در مرداد ۱۳۹۶ ثبت شده است

Virtual address spaces

زمانی که یک پردازنده اقدام به خواندن و نوشنتن به یک مکان حافظه میکند ، از یک آدرس مجازی استفاده میکند .

به عنوان بخشی از عملیات  خواندن یا نوشتن ، پردازنده آدرس مجازی را به آدرس فیزیکی ترجمه میکند . دسترسی به حافظه از طریق یک آدرس مجازی مزایای زیر را دارد :
ادامه مطلب...
۱۹ مرداد ۹۶ ، ۲۰:۱۸ ۰ نظر موافقین ۰ مخالفین ۰
سید عمید قائم مقامی

ProcessAffinityMask , ThreadAffinityMask , SystemInfo

در این پست توضیحات مختصری درمورد سه API ویندوز میدهیم و برای هر یک مثالی میزنیم .

BOOL WINAPI SetProcessAffinityMask(
  HANDLE    hProcess,
  DWORD_PTR dwProcessAffinityMask
);
DWORD_PTR WINAPI SetThreadAffinityMask(
  HANDLE    hThread,
  DWORD_PTR dwThreadAffinityMask
);
void WINAPI GetSystemInfo(
  LPSYSTEM_INFO lpSystemInfo
);

ادامه مطلب...
۱۶ مرداد ۹۶ ، ۱۹:۵۹ ۰ نظر موافقین ۰ مخالفین ۰
سید عمید قائم مقامی

Dynamic_link_library , PE(Portable Executable)

در خلاصه ترین حالت میتوان گفت Dynamic link library نام کتابخانه هایی است که توسط برنامه ها استفاده میشوند و توسط مایکروسافت پیاده سازی شده ( که اغلب دارای پسوند dll میباشند ) .
این فایل ها همانند ساختار فایل های exe در ویندوز دارای ساختار (pe (Portable Executable میباشد .
این کتابخانه ها میتوانن شامل کد و دیتا و ریسورسها باشند .
یکی از مزایای فایل های dll این است که یک بار در حافظه لود میشود و میتواند توسط چندین برنامه مورد استفاده قرار گیرد(به صورت مجازی برای هر برنامه کپی میشود ) . میتوان dll ها را در موقه نیاز در برنامه لود کرد و هر جا که دیگر مورد نیاز نبود آن را Unload کرد .
از طرفی دیگر میتوان از آن برای استفاده از برنامه های قابل آبدیت نیز استفاده کرد به این صورت که میتوان آیکن ها ، فونت ها و کد هایی که در هسته اصلی برنامه جایگاهی ندارند را درون dll ها قرار داد و در هنگام آبدیت تنها این dll ها را تعویض کرد.


Dynamic link library

ادامه مطلب...
۱۴ مرداد ۹۶ ، ۱۵:۱۴ ۱ نظر موافقین ۰ مخالفین ۰
سید عمید قائم مقامی

What is a driver

درایور نام برنامه ای است که در سطح کرنل اجرا میشود (در برخی موارد تنها در سطح یوزر نوشته و اجرا میشود) و اجازه میدهد یک سیستم عامل با یک دستگاه در ارتباط باشد و همچنین از کاربرد دیگر آن ، درایور به برنامه نویس این توانایی را میدهد که تغییراتی را که میخواهد در سطح کرنل انجام دهد اعمال کند .

فرض کنید یک برنامه نیاز دارد که یک مقدار اطلاعات را از دستگاهی بخواند . برنامه یک تابع اجرایی را به وسیله سیستم عامل صدا میزند و سیستم عامل نیز یک تابع از درایور را برای گرفتن اطلاعات از دستگاه فراخوانی میکند.
درایوری که به وسیله کمپانی طراحی شده میداند که چگونه باید با سخت افزار وسیله خود ارتباط برقرار کند .
بعد از اینکه درایور اطلاعات را از دستگاه گرفت آن را در اختیار سیستم عامل قرار میدهد و سیستم عامل نیز آن را به برنامه مورد نظر میدهد تا از آن استفاده کند

driver

ادامه مطلب...
۰۸ مرداد ۹۶ ، ۲۳:۲۹ ۰ نظر موافقین ۰ مخالفین ۰
سید عمید قائم مقامی