برای مشاهده مفیدترین ارسال در این موضوع اینجا کلیک کنید

نمایش نتایج: از شماره 1 تا 2 از مجموع 2
Like Tree2نفر پسندیدند
  • 1 ارسال توسط Hossein
  • 1 ارسال توسط Hossein

موضوع: سوالات کلی مطرح شده در درس برنامه سازی سیستم

  1. #1
    بنیانگذار
    تاریخ عضویت
    2010 January
    محل سکونت
    زیر سایه خدا
    سن
    37
    ارسال ها
    1,308
    تشکر
    2,923
    تشکر شده 2,205 بار در 886 پست
    نوشته های وبلاگ
    37


    1 امتياز مثبت از 1 راي
    آيا اين پست براي شما سودمند بود؟ بله | خیر

    سوالات کلی مطرح شده در درس برنامه سازی سیستم

    بنام خدا
    برنامه سازی سیستم
    تمرینات گفته شده در کلاس:
    چرا در فایل com از org 0 استفاده نمی شود ؟
    خلاصه:
    این قضیه از یه سیستم عاملی به نام cp/m شروع شده که این سیستم عامل در آدرس 100 اطلاعاتی مثل بردار پردازش ها و ورودی های fcb و غیره استفاده میکرد. تو سیستم عامل داس همین قضیه باقی موند.
    کامل:چون نمیشه . اینطور پیاده سازی شده .-سیستم عامل cp/m یه سیستم عامل 8 بیتی بود که 64 کیلو بایت رم بیشتر نداشت . تو این سیستم عامل 100h ابتدای حافظه در اختیار سیستم عامل بود و سیستم عامل از اون برای ذخیره سازی بردار پرش,ورودی های FCB و اطلاعاتی از این دست استفاده میکرد . سیستم عامل داس از cp/m تقلید کرد و برای همین این مسئله از اون موقع با ماست . از طرفی اون زمان کنترلر فلاپی دیسک طوری ساخته شده بود که از آدرسهای 7Dh,7Eh,7Fh برای دستورات کنترلی استفاده کنه و از 80h تا 8Fh برای فضای دسترسی مستقیم حافظه به سکتور استفاده کنه .( اون موقع سکتور ها 128 بایت بودن رو فلاپی دیسک های 8 اینچی ) .
    آدرس بارگزاری بعدی که خالی میموند آدرس 100h بود . یعنی اولین آفست یک فایل اجرایی در سیستم عامل cp/m .

    * چرا بوت لودر رو در آدرس 07c0H لود میکنیم؟
    خلاصه : دلیل خاصی نداره یک استانداردی بوده که از قبل وجود داشته.
    کامل: ما اینکارو نمیکنیم بایوس اینکارو انجام میده و دلیل خاصی هم براش نیست . تقریبا به یک استاندارد نانوشته تبدیل شده بعضی از سازندگان بایوس ( برنامه نویسا) از اون تبعیت میکنن و بعضی ها هم نه .

    * اگر جای کد و داده را در bootloader عوض کنیم چه می شود ؟
    خلاصه : عمل بوت با موفقیت انجام میشه و سیستم عامل در حافظه بار میشه . اما وقتی سیستم عامل قصد استفاده از دیسک رو داره با پیغام خطای Disk not formatted مواجه میشیم . ( همین قضیه د رمورد بایوس هم صدق میکنه .. برای دستیبای به اطلاعات دیسک با مشکلی مواجه میشه).
    کامل: در بوت سکتور از دو کار مهم انجام میشهو اطلاعاتش در این سکتور قرار میگیره :
    فراهم کردن اطلاعات حیاتی برای کار با دیسک : سیستم عامل برای اینکه بتونه درست از دیسک استفاده کنه نیاز به اطلاعات اولیه از ساختار دیسک داره که این اطلاعات در هر زمان که دیسک مورد استفاده قرار میگیره خونده میشه. بوت سکتور این اطلاعات رو تو یک سری بایت قرار میده از جمله این اطلاعات تعداد سکتورها ، تعداد جداول فت، نوع سیستم فایل، تعداد کلاستر در هر سکتور، BPB که همان قسمت داده هست که باید در ابتدای برنامه باشه و ...
    فراهم کردن ابزاری برای لود سیستم : که این بخش مربوط به Boot Loader است که باید در اولین مرحله تو سکتور صفر قرار بگیره.
    در واقع تو سکتور صفر اطلاعات حیاتی قرار میدیم که هربار سیستم میخواد بوت بشه بایوس به این صکتور صفر مراجعه میکنه و به ترتیب اطلاعات شروع به کار میکنه ، برای همین اگه ما این داده ها رو به جای ابتدا سکتور صفر در انتهای آن قرار بدیم با خطای فرمت نبودن دیسک مواجه میشیم، چون بایو س اطلاعاتی رو که باید تو سکتور صفر باشه رو پیدا نمیکنه.

    * تفاوت fat ها در چیست ؟
    در امنیت و میزان فضایی که دارند وهمچنین قدرت مدیریت باهم فرق دارند.

    * اندازه کلاستر در هر fat و سیستم عامل چگونه است ؟
    بستگی به نوع فت داره مثلا در FAT 12 هر کلاستر یک سکتوره.
    و میدونید که این اندازه کلاستر در بلاک پارامتری بایوس قابل شناسایی هست.

    * در هارد های مختلف اندازه سکتور چگونه است ؟
    میتونه یکی باشه یا نباشه
    سکتور میتونه 512 بایت یا بیشتر باشه .

    * وقفه خاموش کردن سیستم ؟
    Int 15h
    Ah,53

    * فرق بین
    Debug و Release در اجرای برنامه C# چیست ؟
    در Debug در مرحله کامپایل کل برنامه چک میشه و اگر خطایی بود یا مثلا سرریز رخ میده به کاربر اعلام میکنه ولی در Release در موقعه اجرا هرجا خطایی به وجود اومد اجرا متوقف میشه و با جاهایی که مثلا شاید سرریز رخ بده کاری نداره.

    * فرق DLL و SLL ؟ و DLLimport ؟
    Static link library کتابخونه جداگانه ای هست که موقع کامپایل درون فایل اجرایی ما قرار میگیره و نیجه یک فایل اجرایی بعد از کامپایل خواهد بود این کار باعث افزیش حجم فایل اجرایی نهایی میشه . اگر چند sll یا کتابخونه داشته باشید که بخواهیید در برنامتون استفاده کنید . در زمان کامپایل تمامی این کتابخانه ها با فایل اجرایی شما یکی میشن ( یعنی بعنوان بخشی از فایل اجرایی شما قرار میگیرن). در زمانهای گذشته ما فقط همین نوع از کتابخانه ها رو داشتیم .این نوع کتابخونه ها فوایدی هم داشتن ( دارن ) . یک یاز اون فواید اینه که شما مطمعنید که هر کتابخانه ای که برنامه برای اجرا به اون میازمنده وجود داره و حاضره . از طرفی این نوع کتابخانه ها در بعضی از موارد پرفورمنس بیشتری رو سبب میشن . و نکته ای دیگه که میشه بهش اشاره کرد قابلیت انتشار برنامه رو راحتتر میکنه چرا که یک فایل اجرایی بیشتر نیست و نقل و انتقال اون راحتتره .
    بعدها DLL ها اومدن . DLL ها مثل SLL ها کتابخانه های جداگانه ای بودند اما فرق عمده ای که داشتن این بود در زمان کامپایل به فایل اجرایی شما اضافه نمیشند عوضش رفرنس اون Dll در ساختار فایل اجرایی شما قرار میگرفت و هر زمان در برنامه شما نیاز به اون Dll میبود با استفاده از اون رفرنس فراخونی و وارد حافظه میشد و برنامه از اون استفاده میکرد . DLL ها علاوه بر مسائل فوق قابلیت اینو دارند که توسط چندین برنامه در آن واحد مورد استفاده قرار بگیرن . DLL خودشون به چند بخش داخلی تقسیم میشن . بخش کد و بخش داده . بخش کد برای تمامی پروسه هایی که از اون استفاده میکنند یکسانه اما بخش داده اون برای هر پروسه فرق میکنه .
    Dllimport در زبانهای دات نت و اینجا سی شارپ برای فراخونی کتابخانه های Unmanaged یا مدیریت نشده( مثل توابع API ویندوز یا توابع سی++و...) در برنامه های دات نت( که مدیریت شده هستند) استفاده میشن .و این توابع در زمان اجرا لود میشن .

    در SSL(static Link Library ) فایل obj و فایل Lib در یک فایل exe قرار میگیرن، در واقع فایل Lib به عنوان قسمتی از فایل هست.
    اما در DLL (Dynamic Link Library) در فایل exe آدرس و در واقع رفرنسی به فایل Lib وجود دارد که در صورت نیاز آن را به رم لود میکند.
    اما فرقشان با DLLimport در این است که این فایل ها به عنوان رفرنس در برنامه هستند( میتوانیم با Add Refrence آن ها در برنامه قرار دهیم اما DLLimport یک دستوره که یک فایل کتابخانه ای رو در زمان اجرا لود میکنه.

    * هر ورودی جدول فت یک مقدار داره،
    چرا پایان فایل رو FF8H تا FFFH هست؟ (سوال امتحانی)
    کلا برای آدرس دهی جدول فت میتونه 4096 کلاستر رو آدرس دهی کنه ( 2 به توان 12 میشه 4096) از 2 تا 4079 (002تا 0FEF) میشه قسمت های اختصاص داده شده، میمونه FF0 تا FFF که FF0 تا FF6 به کلاسترهای رزرو شده اختصاص میدیم،FF7 برای مشخص کردن کلاستر خرابه
    میمونه FF8 تا FFF که برای پایان فایل در نظر میگیریم.
    البته این جواب رو استاد نپذیرفت و جواب دیگه ای تو ذهنشه اگه جواب دیگه ای پیدا نکردیم همین رو مینویسیم.
    سوالات امتحان :
    طبق منطق fat12 ، هر مقدار در خانه های جدول fat بیان کننده نشانه ای خاص می باشد .
    الف چرا از خانه صفر جدول fat12 استفاده نمی شود ؟

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

    ج- با تغییر mbr در bootloadr تاثیری در فرآیند boot ایجاد می شود ؟ چرا ؟ پاسخ داده شده
    د برای اجرای مراحل تست اولیه توسط بایوس از cpu استفاده می شود یا پردازنده داخلی ؟
    از CPU استفاده میشه، اصلا بایوس پردازنده نداره.
    ه- چرا بعد از اجرا حجم دیسک از 4G به 1M کاهش یافت ؟ استاد اینجوری گفتند :
    بخاطر 12 بیتی بودن جدول فت و با توجه به اطلاعاتی که در BPB هست( اطلاعات دیسک) حجم به 1M کاهش پیدا میکنه.
    توضیح : سیستم عامل برای اینکه با دیسک کار کنه اول میره سکتور صفرشو میخونه اونجا میگرده دنبال تعداد کل سکتور های دیسک بعد میبینه هر سکتور چند بایته بعد اینا رو در هم ضرب میکنه هر چی شد به عنوان اندازه اصلی دیسک در نظر میگیره ( در ساختار فت 12 و یک فلاپی 2880 سکتور داره . هر سکتور 512 بایت داره که جمعا میشه 1 مگ و خورده ای .البته محدودیت 12 بیتی خود ساختار فت 12 هم هست . اینو نوشتم برای اونایی که توضیح دیگه ای غیر از توضیح قبلی نیاز داشتن)
    لود کردن 1025 بایت:

    مقاله در انتهای مطلب



    -------------------------
    جواب سوالات پرسیده شده اول : (مطالب عینا از وبلاگ سابق ما کپی شده ) .

    جواب تمریناتی که سروش عزیز از استاد عنوان کرد.

    انواع مدلهای حافظه و خصوصیات masm32 را پیدا کنید ؟

    تو ویندوز فقط یک مدل وجود داره و اونم flat هست . خصوصیاتو نفهمیدم منظورت چیه .

    ----

    mz exe format؟

    من نفهمیدم این یعنی چی سروش گنگه !؟ mz مخفف اسم Mark zbikowsky یکی از برنامه نویسای سیستم عامل داس هست . این فرمت فایل های اجرای تو سیستم عامل داس هست . و این حروف ابتدای تمام فایلهای داس وجود دارن . (اگه همینقدر کافیه بگو! وگرنه این گنگه سوالش! خیلی میشه درموردش حرف زد!)

    چرا در فایل com از org 0 استفاده نمی شود ؟

    یک بخاطر اینکه نمیشه! چون اینجوری پیاده سازی شده ! حالا چرا ? این قضیه از یه سیستم عاملی بنام CP/M شروع شده (از اون باب شد اینجوری ) . این یه سیستم عامل 8 بیتی بود که 64 کیلو بایت رم بیشتر نداشت و اولین 100h بایت جایی بود که سیستم عامل برای ذخیره سازی اطلاعاتی مثل بردار پرش ها و ورودی های fcb و غیره و ذالک استفاده میکرد. وقتی که داشتن سیستم عامل داس رو میساختن! این رو هم توش لحاظ کردن .و از اون موقع تا حالا این با ماست همینجوری.!(کنترلر فلاپی درایو اون زمان طوری ساخته شده بود که از ادرس های 7Dh,7Eh,7Fh برای دستورات کنترلی استفاده کنه و از 80h تا 8fh برای فضای دسترسی مستقیم حافظه به سکتور استفاده کنه . (سکتورها اون موقع 128 بایت بودن رو فلاپی دیسک های 8 اینچی! )آدرس بارگزاری بعد که خالی میموند ادرس 100hبود.اولین افست یک فایل اجرایی در سیستم عامل cp/m . )

    تفاوت fat ها در چیست ؟

    سوال گنگه! فت یعنی چی به معنای عام ؟ یا نه فت 12 فت 16 و فت 32 ؟

    بطور خلاصه در میزان امنیت و فضا و قدرت مدیریت اون خلاصه میشه .!همین . هرچقدر فت ها عددشون بالاتر رفت(فت 16 فت 32 ) قابلیت هاشون هم بالاتر رفت چه از نظر امنیت چه انظر میزان فضایی که میتونستن مدیریت کنن و غیره و ذلک.

    اندازه کلاستر در هر fat و سیستم عامل چگونه است ؟

    The Default Cluster Size for the NTFS and FAT File Systems

    در هاردهای مختلف اندازه سکتور چگونه است ؟

    میتونه یکی باشه میتونه یکی نباشه! (یعنی 512 بایت باشه و یا بیشتر )

    محاسبه آدرس و اندازه یک قالب 12 بیتی و یک سکتور ؟

    نمیدونم . اصلا این سوال یعنی چی؟ !

    وقفه خاموش کردن سیستم در asm ؟

    Int 0x15, AH=0x53

    (ثباتها باید این مقادیر رو داشته باشن. AX = 5307h CX = 0003h)



    موضوعات مشابه:
    فایل های پیوست شده
    ویرایش توسط Hossein : 15th July 2014 در ساعت 12:20 AM
    Shojaee این نویسه را میپسندد.
    توکل بخدا
    http://DeepLearning.ir
    اولین و تنها مرجع یادگیری عمیق ایران


    هرکس از ظن خود شد یار من
    از درون من نجست اسرار من




  2. #2
    بنیانگذار
    تاریخ عضویت
    2010 January
    محل سکونت
    زیر سایه خدا
    سن
    37
    ارسال ها
    1,308
    تشکر
    2,923
    تشکر شده 2,205 بار در 886 پست
    نوشته های وبلاگ
    37


    2 امتياز مثبت از 2 راي
    آيا اين پست براي شما سودمند بود؟ بله | خیر

    سوال: چرا ما همیشه بوت لودر رو تو آدرس 0x7c00 لود میکنیم ؟

    سوال: چرا ما همیشه بوت لودر رو تو آدرس 0x7c00 لود میکنیم ؟ جای دیگه نمیشه این کارو کرد؟
    جواب : اولا ما این کار رو نمیکنیم . این کار رو بایوس انجام میده . دلیل خاصی هم برای این کار وجود نداره اما این آدرس تبدیل به یک استاندار ادرس دهی شده ( اگه نگیم برای تمام بایوس های -برای بیشترشون که اینجوریه )



    سوال : تو تصویر زیر این دو ورودی اول جدول fat چی هستن؟ برای چی رزرو شدن؟
    جواب : اولا به این میگن FAT Signature . این قضیش برمیگرده به دوران خیلی قدیم . ورژن یک داس . اون زمان بوت سکتور ورژن یک داس جزییاتی رو برای مشخص کردن دیسک استفاده نمیکرد. دو نوع دیسک بیشتر پیشتیبانی نمیشد پس خیلی راحت برای مشخص کردن اینکه کدوم نوع دیسک استفاده شده است از دوتا ورودی اول جدول فت استفاده کردن.این قضیه همینجوری موند و بعدها به FAT signature معروف شد . (در بخشهای دیگه جوابهای دیگه هم داده شده )


    حواستون باشه که کلاستر های توی جدول فت و کلاستر آغازین LBA نیستن ! بنابراین به LBA باید تبدیل بشن و بعد به CHS ... غیر اینها هر شماره سکتور شما همون LBA هم حساب میشه ( قبل از 33) .

    در مورد retf و نحوه انتقال کنترل به کرنل ( همون مقدار دهی کردن سی اس آی پی ) جزوه رو خوب بخونید .( اونایی هم که تو کلاس قبل از میانترم بودن باید تو جزوشون توضیح این بخش باشه )
    اینکه چرا به جدول فت اصلا نیاز داریم رو یاد بگیرید ( تو همون فایلی که در مورد جدول فت 12 هست توضیح دادم)
    چرا بعد از اینکه فلش رو فرمت میکنیم از 4 گیگ میشه 1 مگ ؟ توضیح قبلا دادیم ( توضیح جدید اینه که سیستم عامل برای اینکه با دیسک کار کنه اول میره سکتور صفرشو میخونه اونجا میگرده دنبال تعداد کل سکتور های دیسک بعد میبینه هر سکتور چند بایته بعد اینا رو در هم ضرب میکنه هر چی شد به عنوان اندازه اصلی دیسک در نظر میگیره ( در ساختار فت 12 و یک فلاپی 2880 سکتور داره . هر سکتور 512 بایت داره کهجمعا میشه 1 مگ و خورده ای .البته محدودیت 12 بیتی خود ساختار فت 12 هم هست . اینو نوشتم برای اونایی که توضیح دیگه ای غیر از توضیح قبلی نیاز داشتن )

    لینک دنلود : فایل بوت لودر3 و کرنل ( چنده نمیدونم!)
    BL3.asm
    kernel.asm

    ویرایش توسط Hossein : 9th October 2011 در ساعت 09:59 PM
    Shojaee این نویسه را میپسندد.
    توکل بخدا
    http://DeepLearning.ir
    اولین و تنها مرجع یادگیری عمیق ایران


    هرکس از ظن خود شد یار من
    از درون من نجست اسرار من




 

 

کاربران برچسب خورده در این موضوع

کلمات کلیدی این موضوع

علاقه مندی ها (Bookmarks)

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  


Powered by vBulletin
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.6.0
Persian Language By Ustmb.ir
این انجمن کاملا مستقل بوده و هیچ ارتباطی با دانشگاه علوم و فنون مازندران و مسئولان آن ندارد..این انجمن و تمامی محتوای تولید شده در آن توسط دانشجویان فعلی و فارغ التحصیل ادوار گذشته این دانشگاه برای استفاده دانشجویان جدید این دانشگاه و جامعه دانشگاهی کشور فراهم شده است.لطفا برای اطلاعات بیشتر در رابطه با ماهیت انجمن با مدیریت انجمن ارتباط برقرار کنید
ساعت 06:21 PM بر حسب GMT +4 می باشد.