جابه‌جایی: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
User-98100810 (بحث | مشارکت‌ها)
ایجاد شده توسط ترجمهٔ صفحهٔ «Relocation (computing)»
Telluride (بحث | مشارکت‌ها)
جز ویرایش User-98100810 (بحث) به آخرین تغییری که Tarikhejtemai انجام داده بود واگردانده شد
برچسب: واگردانی
خط ۱:
{{دیگر کاربردها}}
'''جابجایی'''، در [[دینامیک]] حرکتی است که در آن، همهٔ نقاط جسم به یک اندازه و در یک جهت حرکت کنند.
 
در جسمی که حرکت جابجایی انجام می‌دهد، اگر خط راستی در صفحه روی جسم رسم شود، امتداد خط در طول مدت حرکت ثابت می‌ماند.<ref>{{یادکرد||کتاب=دینامیک برداری|نویسنده = فردیناند بی یر|ترجمه=ابراهیم واحدیان|سال=۱۳۶۶}}</ref>
 
در جابجایی، هر نقطهٔ جسم مانند <math>(x, y, z)</math> با استفاده از رابطهٔ زیر به نقطهٔ جدید جابجا می‌شود:
'''جابجایی''' فرایند اختصاص آدرس بارگذاری برای کدهای وابسته به موقعیت و داده‌های یک برنامه و تنظیم کد و داده برای بازگرداندن آدرس‌های اختصاص داده شده است. <ref name="Intel_iRMX"><cite class="citation book">"Types of Object Code". [ftp://bitsavers.informatik.uni-stuttgart.de/pdf/intel/iRMX/iRMX_86_Rev_6_Mar_1984/146196_Burst/iRMX_86_Application_Loader_Reference_Manual.pdf ''iRMX 86 Application Loader Reference Manual''] <span class="cs1-format">(PDF)</span>. [[Intel]]. pp.&nbsp;1–2, 1–3<span class="reference-accessdate">. Retrieved <span class="nowrap">2017-08-21</span></span>. <q>[…] ''Absolute code'', and an absolute object module, is code that has been processed by LOC86 to run only at a specific location in memory. The Loader loads an absolute object module only into the specific location the module must occupy. ''Position-independent code'' (commonly referred to as PIC) differs from absolute code in that PIC can be loaded into any memory location. The advantage of PIC over absolute code is that PIC does not require you to reserve a specific block of memory. When the Loader loads PIC, it obtains iRMX&nbsp;86 memory segments from the pool of the calling task's job and loads the PIC into the segments. A restriction concerning PIC is that, as in the PL/M-86 COMPACT model of segmentation […], it can have only one code segment and one data segment, rather than letting the base addresses of these segments, and therefore the segments themselves, vary dynamically. This means that PIC programs are necessarily less than 64K bytes in length. PIC code can be produced by means of the BIND control of LINK86. ''Load-time locatable code'' (commonly referred to as LTL code) is the third form of object code. LTL code is similar to PIC in that LTL code can be loaded anywhere in memory. However, when loading LTL code, the Loader changes the base portion of pointers so that the pointers are independent of the initial contents of the registers in the microprocessor. Because of this fixup (adjustment of base addresses), LTL code can be used by tasks having more than one code segment or more than one data segment. This means that LTL programs may be more than 64K bytes in length. FORTRAN 86 and Pascal 86 automatically produce LTL code, even for short programs. LTL code can be produced by means of the BIND control of LINK86. […]</q></cite></ref> <ref name="Levine_1999_CH1">
{{وسط‌چین}}
<cite class="citation book">[[John R. Levine|Levine, John R.]] (October 1999). "Chapter 1: Linking and Loading". ''Linkers and Loaders''. [[Morgan Kaufmann]]. p.&nbsp;5. [[International Standard Book Number|ISBN]]&nbsp;[[Special:BookSources/1-55860-496-0|<bdi>1-55860-496-0</bdi>]].</cite><templatestyles src="Module:Citation/CS1/styles.css"></templatestyles></ref> قبل از ظهور سیستم های چند پردازشی، و همچنین در بسیاری از سیستم‌های نهفته ، آدرس‌های عناصر مطلق بودند و از یک مکان مشخص و اغلب صفر شروع می شدند. از آنجا که سیستم های چند پردازشی به صورت پویا بین برنامه ها جابه‌جا می‌شوند، جابه‌جایی اشیا با استفاده از کد مستقل از موقعیت، لازم بود. [[پیونددهنده|پیوند دهنده]] معمولاً قبل از اجرای برنامه، جابجایی را همراه با '''تفکیک نماد'''، فرایند جستجو در فایل‌ها و كتابخانه‌ها برای جایگزین کردن نمادها یا نام [[کتابخانه (رایانه)|كتابخانه‌ها]] با آدرس‌های قابل استفاده واقعی در [[ذخیره‌سازی داده رایانه|حافظه]]، انجام می دهد.
:<math>(x,y,z) \to (x+\Delta x,y+\Delta y, z+\Delta z)</math>
{{پایان وسط‌چین}}
که در رابطهٔ بالا، <math>(\Delta x,\Delta y,\Delta z)</math> بردار ثابت جابجایی است.
 
برای یک جسم در فضا، جابجایی می‌تواند حاصل جمع سه جابجایی در راستای سه محور باشد که به جسم سه [[درجه آزادی (مهندسی)|درجه آزادی]] می‌دهد. در حقیقت حرکت کلی یک [[جسم صلب]] در [[فضای سه‌بعدی]]، حاصل ۳ جابجایی در راستای ۳ محور و ۳ [[دوران (فیزیک)|دوران]] به دور ۳ محور (۶ [[درجه آزادی (مهندسی)|درجه آزادی]]) است؛ ولی برای یک [[ذره]]، با توجه به در نظر نگرفتن ابعاد آن، [[دوران (فیزیک)|دوران]] معنی نمی‌دهد و ذره تنها ۳ [[درجه آزادی (مهندسی)|درجه آزادی]] دارد.
جابجایی معمولاً توسط پیوند دهنده در زمان پیوند انجام می شود ، اما همچنین می تواند در زمان بارگذاری توسط یک لودر جابجایی یا در [[خطای زمان اجرا|زمان اجرا]] توسط خود برنامه در حال اجرا انجام شود. برخی از طراحی‌‌ها با تغییردادن اختصاص آدرس برای زمان اجرا، از جابجایی کامل جلوگیری می کنند. این به عنوان [[ماشین پشته‌ای|صفر حسابی آدرس]] شناخته شده [[ماشین پشته‌ای|است]] .  
 
== شکل نمودار مکان زمان در حرکت با سرعت یا شتاب ثابت ==
<sup class="noprint Inline-Template" data-ve-ignore="true" style="white-space:nowrap;">&#x5B; ''[[ویکی‌پدیا:شیوه‌نامه/واژه‌هایی که باید از آن‌ها دوری گزید|<span title="The material near this tag possibly uses too vague attribution or weasel words. (March 2017)">کدام؟</span>]]''</sup>
در حرکت با سرعت ثابت، شکل نمودار مکان-زمان به صورت یک خط است و معادله آن خط، همان [[معادله حرکت]] یا معادله جابجایی است.
فرم کلی معادله مکان زمان به صورت x=vt+x<sub>0</sub> است که در آن، x و v به‌ترتیب مکان و سرعت متحرک در لحظهٔ t و x<sub>0</sub> مکان اولیهٔ متحرک است.
 
حرکت با شتاب ثابت: در حرکت با شتاب ثابت، شکل نمودار مکان زمان به صورت یک سهمی به معادلهٔ
== بخش بندی ==
x=1/2 at<sup>2</sup> + v<sub>0</sub>t +x<sub>0</sub>است که در آن، x و a به‌ترتیب مکان و شتاب متحرک در لحظهٔ t و x<sub>0</sub> و v<sub>0</sub> به‌ترتیب مکان و سرعت اولیهٔ متحرک است.
عناصر فایل به انواع مختلف بخش‌های [[قطعه‌بندی|حافظه]] تقسیم می‌شوند. بخش های نمونه شامل بخش کد (.text) ، بخش داده اولیه (.data) ، بخش داده تعریف نشده (.bss ) یا موارد دیگر است. {{نیازمند شفاف‌سازی|date=November 2016}}
 
== جستارهای وابسته ==
== جدول جابه‌جایی ==
* [[دوران (فیزیک)|دوران]]
جدول جابجایی لیستی از [[اشاره‌گر (علوم رایانه)|نشانگرهای]] ایجاد شده توسط مترجم ( [[کامپایلر]] یا [[زبان اسمبلی|اسمبلر]] ) است و در شی یا فایل اجرایی ذخیره می‌شود. هر یک از ورودی‌های جدول، یا "fixup"(رفع کننده) ، [[اشاره‌گر (علوم رایانه)|نشانگر]] یک آدرس مطلق در کد شی است که باید هنگامی که لودر برنامه‌ را جابه‌جا می‌کند، تغییر کند تا به مکان صحیح ارجاع داده ‌شود. رفع کننده‌ها برای پشتیبانی از جابجایی برنامه به عنوان یک واحد کامل طراحی شده اند. در بعضی موارد ، هر رفع‌کننده در جدول خود ارتباطی با آدرس پایه صفر دارد ، بنابراین هنگام حرکت لودر در جدول ، باید رفع‌کننده‌ها خودبه‌خود عوض شوند. <ref name="Levine_1999_CH3"><cite class="citation book">[[John R. Levine|Levine, John R.]] (October 1999). "Chapter 3: Object Files". ''Linkers and Loaders''. [[Morgan Kaufmann]]. [[International Standard Book Number|ISBN]]&nbsp;[[Special:BookSources/1-55860-496-0|<bdi>1-55860-496-0</bdi>]].</cite><templatestyles src="Module:Citation/CS1/styles.css"></templatestyles></ref>
* [[دینامیک]]
 
{{== پانویس}} ==
در بعضی از معماری‌ها، رفع‌کننده‌ای که از مرزهای خاصی عبور کند (مانند مرز بخش‌بندی) یا در مرز کلمه قرار نگرفته‌باشند،غیرقابل‌قبول است و به عنوان خطایی توسط لینک دهنده علامت‌گذاری می شود. <ref name="Borland_2007">
{{پانویس}}
<cite class="citation web">[https://web.archive.org/web/20070324041806/http://vmlinux.org/~jakov/community.borland.com/15961.html "Borland article #15961: Coping with 'Fixup Overflow' messages"]. Archived from [http://vmlinux.org/~jakov/community.borland.com/15961.html the original] on 2007-03-24<span class="reference-accessdate">. Retrieved <span class="nowrap">2007-01-15</span></span>.</cite><templatestyles src="Module:Citation/CS1/styles.css"></templatestyles></ref>
 
{{فیزیک-خرد}}
== فرآیند جابجایی ==
{{مهندسی مکانیک-خرد}}
پیوند دهنده اطلاعات بخش‌ها و جداول جابجایی را در عناصر فایل می‌خواند و جابجایی را توسط:
 
[[رده:دینامیک]]
* ادغام تمام بخش‌های متشکل از نوع مشترک، در یک بخش واحد از آن نوع
[[رده:سینماتیک]]
* اختصاص آدرس‌های زمان اجرا منحصر به فرد به هر بخش و هر نماد، کلیه کد ها (توابع) و داده‌ها (متغیرهای گلوبال)
[[رده:مکانیک کلاسیک]]
* مراجعه به '''جدول جابجایی''' برای اصلاح   نمادها به صورتی که آنها به آدرس‌های زمان اجرای درستی اشاره کنند.{{نیازمند شفاف‌سازی|date=November 2016}} .
 
== همچنین ببینید ==
 
* [[پیونددهنده|لینک دهنده (محاسبات)]]
* [[کتابخانه (رایانه)|کتابخانه (محاسبات)]]
* [[آبجکت فایل|پرونده شی]]
* مقدمه
* کتابخانه استاتیک
* خود جابجایی
* کد مستقل از موقعیت (PIC)
* احیاء
* [[بازیافت حافظه|مجموعه زباله]]
 
== منابع ==
{{پانویس}}
[[رده:کتابخانه‌های رایانه]]