title: نقطه توقف

text: هنگامی که یک نقطه توقف رخ می‌دهد، ابزارهای مختلف برای بررسی وضعیت برنامه یا تغییر دادن آن استفاده می‌شود. ردیابی پشته از هر ریسه می‌تواند برای دیدن زنجیره ای از توابع استفاده شود که باعث ایجاد وقفه در دستورالعمل‌ها شده‌است. لیستی از "نگهبان‌ها" به شما اجازه می‌دهد تا مقادیر متغیرها و عبارت‌های انتخاب شده را مشاهده کنید. همچنین ممکن است ابزاری برای نمایش محتویات ثبات‌ها، ماژول‌های برنامهٔ بارگذاری شده و سایر اطلاعات باشند.


title: نقطه توقف

text: بسیاری از پردازنده‌ها شامل پشتیبانی سخت‌افزاری برای نقاط توقف هستند (نوعاً نقاط توقف دستورالعمل و داده). به عنوان مثال، معماری مجموعه دستورالعملx86 با رجیستریهای اشکال زدایی ایکس ۸۶ خود، پشتیبانی سخت‌افزاری را برای نقاط توقف ارائه می‌دهد. چنین سخت‌افزاری ممکن است شامل محدودیت‌هایی باشد، به عنوان مثال اجازه نمی‌دهد نقاط توقف روی تکه‌های تأخیر پرش قرار گیرند. این نوع محدودیت توسط ریز معماری پردازنده اعمال می‌شود و از پردازنده به پردازنده متفاوت است.


title: نقطه توقف

text: بدون پشتیبانی سخت‌افزاری (و در محیط‌های چند وظیفه ای)، وظیفهٔ پیاده‌سازی نقاط توقف بر عهدهٔ اشکال زدا هاست. برای نقاط توقف دستورالعمل، این یک کار نسبتاً سادهٔ جابه جایی دستورالعمل‌ها در محل نقطه توقف است، که می‌تواند به دو طریق انجام شود:


title: نقطه توقف

text: این روش ممکن است در سیستم‌های چند وظیفه ای با استفاده از ذخیره‌سازی برنامه‌های مشترک سخت‌تر باشد (ممکن است وقفه در یک ریسه متفاوت رخ دهد، که در این صورت باید دستورالعمل اصلی آن ریسه اجرا شود). همچنین، اگر برنامه در حافظه محافظت شده قرار داشته باشد، ممکن است از دوباره نوشتن دستورالعمل‌ها جلوگیری شود.


title: نقطه توقف

text: از سوی دیگر،


title: نقطه توقف

text: برخی از اشکال زداها به ثبات‌ها یا متغیرهای برنامه در حافظه اجازه می‌دهند تا قبل از ادامه، اصلاح شوند. این کار مفهوم «دستی کدنویسی شدن» ِ مقدار دهی‌های موقت را بیان می‌کند که می‌توانیم از آن‌ها برای تست برنامه استفاده کنیم. به‌طور مشابه، می‌توان از دستورالعمل‌های برنامه رد شد (و آن‌ها را اعمال نکرد) تا میزان تأثیر تغییرات در منطق برنامه مشاهده شود؛ و سوالات مربوط به اجرای برنامه را مستقیماً پاسخ داد (یعنی بدون فرض یا حدس). این راه در بسیاری از موارد ممکن است تنها روش عملی تست کردن زیربرنامه‌های خطا ی «تحت-رویداد» باشد، که به ندرت اجرا می‌شوند یا ممکن است هیچوقت اجرا نشوند، و می‌دانیم این روش خطر تغییر منبع موقت را ندارد. تغییر دادن دستی مکان ادامه، درون یک برنامه متوقف شده، می‌تواند برای اجرای بخشی از کد که به ندرت اجرا می‌شود (مثلاً یک شرط سخت‌افزاری) اجرا شود.


title: نقطه توقف

text: با این حال، پیاده‌سازی نقطه‌های توقف داده در نرم‌افزار، می‌تواند به شدت کارایی برنامهٔ در حال اشکال زدایی را کاهش دهد - زیرا از منابع اضافی همان پردازنده استفاده می‌کند. اما، این معمولاً در حین تست کردن قابل چشم پوشی است و مقدار اطلاعاتی که در دسترس اشکال زدا است توسط داده‌های اشکال زدایی که سخت‌افزار می‌شناسد محدود نمی‌شود. به عنوان مثال، یک پیاده‌سازی نرم‌افزاری می‌تواند داده‌های مسیر منطقی را در سطح برنامه / زیربرنامه/ دستورالعمل جمع‌آوری کند تا به‌طور قابل توجهی آنچه را که ممکن است توسط زیرساخت سخت‌افزاری خاصی برای بازرسی ذخیره شده ارتقا دهد. روش شبیه‌سازی مجموعه دستورالعمل در مقایسه با روش جایگزینی به میزان قابل توجهی سربار محاسباتی و همچنین خطای کش را کاهش می‌دهد.


title: نقطه توقف

text: برخی از پیاده‌سازی‌های زبان‌های برنامه‌نویسی توابع اشکال زدایی خود را در معرض نمایش برنامه‌های دیگر قرار می‌دهند. به عنوان مثال، برخی از نسخه‌های FORTRAN دارای عبارت codice_1 هستند، که در ابتدا قرار بود به عنوان یک نقطه توقف دستور عمل کند. پایتون یک اشکالزدارا پیاده‌سازی می‌کند که از یک برنامه پایتون می‌توان به آن دسترسی پیدا کرد. این امکانات می‌توانند شبیه یک عبارت COMEFROM عمل کرده و مورد سوءاستفاده قرار بگیرند.


title: نقطه توقف

text: اختراع نقاط توقف توسط برنامه‌نویس بتی هالبرتن، برای انیاک، یکی از اولین رایانه‌های دیجیتال، اختراع شد.


title: نقطه توقف

text: نقاط توقف دستگاه بزرگ رایانه‌های اولیه، مانند IBM / 360، دارای سوئیچ/مودم‌های کنسول بودند که به اجازه می‌دادند نقاط توقف در آدرس‌های ذخیره‌سازی دستور خاصی قرار بگیرد و عملیات تک چرخه را ارائه می‌دادند، به این ترتیب محتویات ثبات‌ها و حافظه به‌طور مستقیم بر روی چراغ‌های کنسول مشاهده شد. ظهور چند وظیفه ای استفاده از این گزینه را محدود کرد، زیرا کل دستگاه متوقف می‌شد.


title: نقطه توقف

text: نقاط توقف غیر تعاملی برنامه نویسان از همان روزهای اولیهٔ رایانه‌ها از تکه کدهای ماشین استفاده کرده‌اند تا نقاط توقف تک مخرب را پیاده‌سازی کنند که یک روگرفت حافظه ایجاد کنند. روگرفت امکان مشاهده حالت ثبات‌ها و حافظه را دقیقاً در لحظه «شکستگی» عمدی فراهم می‌کرد.


title: نقطه توقف

text: نقاط توقف تعاملی ظهور کنسول‌های تله پرینتر در دهه ۱۹۶۰ میلادی امکان تعاملی تر شدن قابلیت اشکال زدایی خط فرمان را فراهم کرد، و در اوایل 1970s با ورود فراگیر دستگاه‌های نمایش متصل به بزرگ رایانه‌ها، شکال زدایی کامل روی صفحه نمایش در محیط‌های چند وظیفه ای به صورت کاملاً تعاملی، به واقعیت تبدیل شد. این اتفاق همچنین اجازه اجرای گام به گام یک برنامه را می‌دهد به طوری که مانند یک پویایی برنامه عمل می‌کند و در حالی که ثبات‌های دلخواه و جابه جایی‌های حافظه همزمان نشان داده شده‌اند. در ابتدا این نوع انیمیشن در سطح کد ماشین دیس اسمبلر یا دی کامپایل شده بود، اما بعداً تا پویایی در سطح منبع HLL پیشرفت کرد.


title: اسمبلر درون‌برنامه‌ای

text: در برنامه‌نویسی کامپیوتر، یک اسمبلر درون برنامه ای، یک ویژگی از برخی از کامپایلرهاست که اجازه می‌دهد کُدِ سطح پایینی که به زبان اسمبلی نوشته شده در میان یک برنامه قرار گیرد، درون کدی که بر خلاف آن، از یک زبان سطح بالا مانند C یا Ada کامپایل شده‌است.


title: اسمبلر درون‌برنامه‌ای

text: جاسازی کد اسمبلی عموماً برای ۳ دلیل انجام می‌شود:


title: اسمبلر درون‌برنامه‌ای

text: بهینه‌سازی: برنامه نویسان می‌توانند کد زبان اسمبلی را برای پیاده‌سازی بخش‌هایی از الگوریتم برنامه شان استفاده کنند که بیشترین حساسیت را در مورد کارایی دارند. بخش‌هایی که می‌توانند با این روش بهینه تر از وقتی باشند که توسط کامپایلر تولید می‌شوند.


title: اسمبلر درون‌برنامه‌ای

text: دسترسی به دستورالعمل‌های خاص پردازنده: اکثر پردازنده‌ها دستورالعمل‌های ویژه ای مانند دستورالعمل مقایسه و تعویض و تست و تنظیم را ارائه می‌دهند که ممکن است برای ساختن سمافورها یا سایر هماهنگ سازی‌ها و پایه‌های قفل سازی استفاده شود. تقریباً هر پردازنده مدرنی این دستورالعمل‌ها یا مشابه‌های آن‌ها را دارد، زیرا آنها برای اجرای فرایند چند وظیفه ای ضروری هستند. نمونه‌هایی از دستورالعمل‌های تخصصی در SPARC VIS، Intel MMX و SSE و مجموعه دستورالعمل‌های Motorola Altivec وجود دارد.


title: اسمبلر درون‌برنامه‌ای

text: فراخوانی‌های سیستمی: زبان‌های سطح بالا به ندرت دارای امکان مستقیم برای برقراری فراخوانی‌های سیستمی دلخواه هستند، در این صورت کد اسمبلی استفاده می‌شود.


title: اسمبلر درون‌برنامه‌ای

text: استانداردهای ++ ISO C و استانداردهای ISO C (پیوست J) یک نحو پشتیبانی شدهٔ مشروط را برای اسمبلر درون برنامه ای مشخص می‌کند: اعلان asm فرم زیر را دارد:asm-definition:


title: اسمبلر درون‌برنامه‌ای

text: فراخوانی مستقیم سیستم عامل، عموماً تحت سیستمی که از حافظهٔ محافظت شده استفاده می‌کند، امکان‌پذیر نیست. سیستم عامل در سطح بالاتری (حالت هسته) از کاربر (حالت کاربر) اجرا می‌شود؛ یک وقفه (نرم‌افزاری) برای درخواست از سیستم عامل مورد استفاده قرار می‌گیرد. زبان‌های سطح بالا عموماً این ویژگی را ندارند، بنابراین با استفاده از اسمبلر درون برنامه ای، توابع بسته‌بندی برای فراخوانی‌های سیستمی نوشته می‌شود.


title: اسمبلر درون‌برنامه‌ای

text: مثال زیر کد C یک بسته‌بندی تماس تلفنی را در syntax assembler AT & T نشان می‌دهد، با استفاده از اسمبلر گنو. چنین فراخوانی‌هایی معمولاً با کمک ماکرو نوشته می‌شود؛ کد کامل برای وضوح گنجانده شده‌است.


title: اسمبلر درون‌برنامه‌ای

text: فرمت پایه اسمبلی دورن برنامه ای بسیار ساده است: asm (); مثال: asm ("movl %ecx, %eax"); /* moves the contents of ecx to eax */ یا __asm__ ("movb %bh, (%eax)"); /* moves the byte from bh to the memory pointed by eax */ هر دو codice_1 و codice_2 معتبر هستند. codice_2 می‌تواند مورد استفاده قرار گیرد اگر کلمه کلیدی codice_1 با چیز دیگری در برنامه در تعارض باشد.  extern int errno;


title: اسمبلر درون‌برنامه‌ای

text: int funcname(int arg1, int *arg2, int arg3)


title: اسمبلر درون‌برنامه‌ای

text: این مثال از اسمبلی درون برنامه ای، از زبان برنامه‌نویسی D، کدی را نشان می‌دهد که تانژانت x با استفاده از دستورالعمل FPU x86 را محاسبه می‌کند؛ که این روش سریعتر است از استفاده از عملیات ممیز شناور که توسط کامپایلر تولید می‌شود، و همچنین به برنامه‌نویس اجازه می‌دهد تا از دستورالعمل codice_5 استفاده کند، که نزدیکترین تقریب احتمالی عدد پی را در معماری x86 بارگذاری می‌کند.  // Compute the tangent of x real tan(real x) SC18: fptan ; SC17: fprem1 ; trigerr: Lret:


title: طاها ذاکر

text: طاها ذاکر (زادهٔ ۹ بهمن ۱۳۶۵) طراح گرافیک ایرانی است. او از دانشکدهٔ هنر و معماری دانشگاه آزاد اسلامی واحد تهران مرکز در مقطع کارشناسی ارتباط تصویری فارغ‌التحصیل شده‌است. او در دوره‌های سی و پنجم و سی و هفتم جشنوارهٔ فیلم فجر برندهٔ سیمرغ بلورین بهترین طراحی پوستر برای فیلم‌های "فصل باران‌های موسمی" و "کوپال" شد.


title: ترجمه ماشینی عصبی گوگل

text: ترجمه ماشینی عصبی گوگل (GNMT) یک سیستم ترجمه عصبی (NMT) است که توسط گوگل ایجاد شده‌است و در ماه نوامبر سال ۲۰۱۶ معرفی شد، که از شبکه عصبی مصنوعی برای افزایش روانی ترجمه و دقت در گوگل ترنسلیت استفاده می‌کند.


title: ترجمه ماشینی عصبی گوگل

text: ترجمه ماشینی عصبی گوگل کیفیت ترجمه را با اعمال ترجمه ماشینی مثال محور بهبود می‌بخشد، روشی که در آن سیستم از میلیون‌ها مثال، ترجمه را می‌آموزد. معماری پیشنهادی ترجمه ماشینی عصبی گوگل ابتدا بر روی بیش از صد زبان پشتیبانی شده توسط گوگل ترنسلیت آزمایش شد.. با چارچوب (Framework) بزرگ پایان‌به‌پایان (end-to-end)، سیستم در طول زمان ایجاد ترجمه‌های بهتر و طبیعی‌تر را یادمی‌گیرد. ترجمه ماشینی عصبی گوگل قادر به ترجمه تمام جملات به صورت همزمان است، نه فقط جمله به جمله. شبکه ترجمه ماشینی عصبی گوگل می‌تواند با استفاده از رمزنگاری معانی یک جمله به جای یاد داشتن ترجمه‌های اصطلاح به اصطلاح، قادر به انجام ترجمه ماشین میان‌زبانی باشد.


title: ترجمه ماشینی عصبی گوگل

text: پروژه مغز گوگل در سال ۲۰۱۱ در "آزمایشگاه تحقیقاتی مخفی گوگل X" توسط یکی از همکاران گوگل جف دین، پژوهشگر گوگل گرگ کورادو، و استاد علوم کامپیوتر دانشگاه استنفورد اندرو انجی. فعالیت‌های انجی به برخی از بزرگترین پیشرفت‌ها در گوگل و استنفورد منجر شده‌است.


title: ترجمه ماشینی عصبی گوگل

text: در سپتامبر ۲۰۱۶ یک تیم تحقیقاتی در گوگل اعلام کرد که سیستم ترجمه ماشینی عصبی گوگل (GNMT) را توسعه داده و در ماه نوامبر، گوگل ترجمه با استفاده از ماشین عصبی خود (NMT) را به جای شیوه دیگری که از اکتبر ۲۰۰۷ به کار گرفته بود، یعنی ترجمه آماری (SMT) آغاز کرد.


title: ترجمه ماشینی عصبی گوگل

text: سیستم ترجمه عصبی گوگل ترنسلیت از یک شبکه عصبی مصنوعی بزرگ که قادر به یادگیری عمیق است استفاده می‌کند. با استفاده از میلیون‌ها نمونه، ترجمه ماشینی عصبی گوگل کیفیت ترجمه را بهبود می‌بخشد، سپس نتیجه تغییر ساختار داده شده و با گرامر زبان انسانی سازگار می‌شود. معماری پیشنهادی ترجمه ماشینی عصبی گوگل ابتدا بر روی بیش از صد زبان پشتیبانی شده توسط گوگل ترنسلیت آزمایش شد. ترجمه ماشینی عصبی گوگل زبان میانی خود را نساخت، بلکه از اشتراکاتی که میان تعداد زیادی زبان وجود داشت استفاده کرد، فعالیتی که بیشتر روانشناسان و زبان‌شناسان را درگیر می‌کرد تا دانشمندان حوزه کامپیوتر. موتور جدید ترجمه برای اولین بار در سال ۲۰۱۶ برای هشت زبان انگلیسی و فرانسوی، آلمانی، اسپانیایی، پرتغالی، چینی، ژاپنی، کره ای و ترکی فعال شد. در مارس ۲۰۱۷، سه زبان دیگر فعال شد: روسی، هندی و ویتنامی همراه با تایلندی پشتیبانی از آن بعداً اضافه شد. پشتیبانی از زبان عبری و عربی نیز با کمک انجمن ترجمه گوگل (متشکل از کاربران داوطلب) در همان ماه اضافه شد. در اواسط آوریل ۲۰۱۷، گوگلِ هلند پشتیبانی از زبان هلندی و دیگر زبان‌های اروپایی نزدیک به انگلیسی را اعلام کرد. پشتیبانی بیشتر برای نه زبان هندی، یعنی: هندی، بنگالی، مراتی، گجراتی، پنجابی، تامیل، تلوگو، مالایالام و کاناده در پایان آوریل ۲۰۱۷ اضافه.


title: ترجمه ماشینی عصبی گوگل

text: در ادامه لیستی از جفت زبان‌های قابل ترجمه توسط ماشین ترجمه عصبی گوگل ارائه شده‌است. (نام زبان‌ها ترجمه نشده‌است) گفته می‌شود سیستم ترجمه ماشینی عصبی گوگل پیشرفتی را نسبت به گوگل ترنسلیت پیشین از لحاظ توانایی در «ترجمه زیرو شات» نشان می‌دهد، یعنی به‌طور مستقیم یک زبان را به زبانی دیگر ترجمه می‌کند (به عنوان مثال از ژاپنی به کره ای). گوگل ترنسلیت قبلاً ابتدا زبان منبع را به زبان انگلیسی ترجمه می‌کرد و سپس انگلیسی را به زبان مقصد، نه به‌طور مستقیم از یک زبان به زبان دیگر. در حال حاضر، هیچ جفت زبان غیر انگلیسی پشتیبانی نمی‌شود.


title: هسته سپتال

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


title: هسته سپتال

text: فضای سپتال (فضای بویایی میانی) ارتباطی با حس بویایی ندارد بلکه در حیوانات تحت عنوان منطقه لذت شناخته میشود. هسته سپتال همراه با هسته اکامبنس در پاداش و تقویت نقش ایفا میکند. در دهه ۱۹۵۰ اولدز و میلنر نشان دادند که موش‌هایی که دارای الکترودهایی در این منطقه بودند به صورت مکرر خود اقدام به تحریک این منطقه نموده‌اند (یعنی اهرمی را فشار میدادند تا جریان الکتریکی را که منجر به تحریک این نرون‌ها میشود را دریافت نمایند). آزمایش‌های دیگری بر روی فضای سپتال انسانها از دهه ۱۹۶۰ صورت گرفته‌است.


title: هسته سپتال

text: تیغه خلفی اطلاعات را به فضای پیش بینایی جانبی، هیپوتالاموس جانبی، پری ونتریکولار هیپوتالاموس و تالاموس میانی ارسال میکند.


title: هسته سپتال

text: تارهای عصبی از نیمه شکمی سپتوم به ساختار هیپوکمپ، تالاموس، هیپوتالاموس و مغز میانی اطلاعات را ارسال مینمایند. به ویزه، نرون‌هایی که در خط میانی اندام‌های عمودی نوار مورب بروکا قرار دارند اطلاعات را از طریق فورنیکس پشتی به تمامی زمینه‌های CA هیپوکمپ خلفی و قشر سابیکولار مجاور ارسال میکنند. سایر تارهای این منطقه اطلاعات را از طریف استریا مدولاریس به هسته هابلنواتر میانی و خلفی، هسته قدامی-جانبی و پاراتنیال تالاموس و از طریق دسته میانی مغز قدامی به بخش خلفی هسته پستانی میانی ارسال میکند.


title: هسته سپتال

text: سلولهای واقع در تیغه بینابینی میانی-جانبی اطلاعات را از طریف بخش جانبی فیمبریا به تمامی زمینه‌های CA هیپوکمپ شکمی و قشرهای سابیکولار و انتورینال ارسال میکنند. این سلولها همچنین تارها را از طریق استریا مدولاریس به هسته هابنولار جانبی و هسته تالاموسی میانی-خلفی ارسال میکنند. سایر آکسونهایی که از این سلولها خارج میشوند از طریف دسته میانی بخش قدامی مغز به پایین رفته تا نهایتاً در ناحیه پشتی هسته اینترپندنکولار خاتمه پیدا میکنند.


title: هسته سپتال

text: تیغه پشتی به عنوان مغز تقویت اتصالات از CA# هیپوتالاموس به منقطه تگمنتال شکمی است. این اتصالات به ایجاد اتصال سیگنالهای پاداش و محتوایی که منجر به ایجاد آنها میشود، کمک مینمایند.


title: هسته سپتال

text: تارهای خارجی‌ترین بخش تیغه شکمی (یعنی هسته زمینه ای اتصالات قدامی) اطلاعات را از طریق پایانه استریا به سوبیکولوم شکمی ارسال میکنند. علاوه بر این، سلولهای واقع در اندام افقی نوار مورب بخش اعظم اطلاعات را به بخش خلفی هسته پستانی میانی، ونترال تگمنتال آریا و آمیگدال ارسال میکنند.


title: هسته سپتال

text: گابا و گلوتامات که فعالیت تیغه خارجی را تنظیم مینمایند مشخص شده‌است که در حین بازی‌های اجتماعی در موشهای نوجوان افزایش پیدا میکند. در حین بازیهای اجتماعی تفاوتی در غلظت GABA خارج سلولی بین دو جنس مشاهده نشده‌است هرچند، گلوتامات نفش اساسی را در بازیهای اجتماعی زنان بازی میکند. زمانی که گیرنده‌های گلوتامات به صورت دارویی در تیغه خارجی مهار میشوند، کاهش معناداری در فعالیت‌های اجتماعی زنان مشاهده شده‌است در حالی که چنین کاهشی در مردان مشاهده نشده‌است. در نتیجه پنین به نظر میرسد که انتقال عصبی GABA در تنظیم رفتار احتماعی هر دو جنس دخیل است درحالی که انتقال عصبی گلوتامات وابسته به جنس بوده و تنها در تنظیم رفتار اجتماعی موشهای نوجوان زن دخیل است.


title: هسته سپتال

text: = منابع =


title: آبزیم

text: آبزیم (برگرفته شده از آنتی‌بادی و آنزیم) که همچنین "(catmab(catalyc monoclonal antibody" و آنتی‌بادی کاتالیک نیز نامیده می‌شود، یک آنتی‌بادی مونوکلونال با فعالیت کاتالیکی است. آبزیم‌ها معمولاً در آزمایشگاه‌های ایمن حیوانات علیه هاپتن‌های سنتتیک برمی‌آیند اما بعضی آبزیم‌های طبیعی ممکن است در بدن انسان‌ها یافت می‌شوند. (اتوآنتی بادی‌های پپتید روده‌ای آنتی وازو-اکتیو) و در بیماران خودایمنی همانند اریتماتوز جلدی سیستمیک به دی‌اِن‌اِی متصل شده و آن را تجزیه می‌کنند. تا به امروز آبزیم‌ها تنها به‌صورت ضعیف، با فعالیت کاتالیکی متوسط و بدون استفاده عملی ثابت شده‌ای پدید آمده‌اند. اما آن‌ها موضوعی از علاقهٔ علمی قابل توجهی هستند. مطالعهٔ آن‌ها بینش مهمی در مکانیسم‌های واکنش، ساختار و عملکرد آنزیم، کاتالیز و سیستم ایمنی به همراه داشته‌است. آنزیم‌ها با کاهش انرژی فعال سازی وضعیت گذار یک واکنش عمل می‌کنند؛ بدین وسیله که تشکیل یک واسطهٔ مولکولی کمتر مطلوب میان واکنشگر(ها) و محصول(ها) را قادر می‌سازند. اگر یک آنتی‌بادی به گونه‌ای سازمان یابد که به مولکولی که از لحاظ ساختاری و الکترونیکی مشابه وضعیت گذار واکنش شیمیایی داده شده‌است، متصل شود؛ آنتی‌بادی سازمان یافته به وضعیت گذار متصل شده تثبیت می‌گردد و درست همانند یک آنزیم طبیعی انرژی فعال‌سازی واکنش را کاهش داده و در نتیجه واکنش را کاتالیز می‌کند. با بارآوردن یک آنتی‌بادی برای اتصال به یک وضعیت گذار پایدار قابل مقایسه، نوع نو و منحصر به‌فردی از آنزیم تولید می‌شود. تاکنون تمام آنتی‌بادی‌های کاتالیکی تولید شده تنها به‌صورت متوسط، با فعالیت آنزیمی ضعیف پدید آمده‌اند. دلیل پایین بودن فعالیت کاتالیکی این آنزیم‌ها به‌صورت گسترده‌ای موردبحث قرار گرفته‌است. فرصت‌ها نشان می‌دهند که فاکتورهای خارج از جایگاه اتصال می‌توانند نقش مهمی، به ویژه از راه پروتئین‌های پویا داشته باشند. بعضی آبزیم‌ها طراحی شده‌اند تا از یون‌های فلزی و دیگر کوفاکتورها برای افزایش فعالیت کاتالیکی خود استفاده کنند.


title: آبزیم

text: امکان کاتالیز یک واکنش با استفاده از یک آنتی‌بادی که به وضعیت گذار متصل می‌شود نخستین بار توسط ویلیام پ. جنکز در سال ۱۹۶۹ مطرح شد. در سال ۱۹۹۴ پیتر ج. شولز و ریچارد آ. لرنر به علت ساماندهی آنتی‌بادی‌های کاتالیکی برای بسیاری از واکنش‌ها و محبوب ساختن مطالعهٔ خویش در قالب زیرمجموعه‌ای قابل توجه از آنزیم‌شناسی، موفق به دریافت جایزهٔ معتبر "wolf prize in chemistry" گشتند.


title: آبزیم

text: در ژوئن ۲۰۰۸ موضوع نشریهٔ خودایمنیکه پژوهشگران آن س. پلانک، س. پاول و یاسوهیرو نیشیاما، دکتراهای دانشگاه علوم پزشکی تگزاس واقع در هیوستون بودند، اعلان کردند که آبزیمی را ساخته‌اند که می‌تواند ناحیهٔ سوپر-آنتی‌ژنی جایگاه اتصال "gp120CD4" را تجزیه کند. این یکی از قسمت‌های پوشش خارجی ویروس اچ آی وی است که عوض نمی‌شود زیرا محل ضمیمه شدن به لنفوسیتT، سلول کلیدی در ایمنی سلولی واسط، است. بار اول در اثر اچ آی وی مبتلایان آنتی‌بادی‌هایی را برای قسمت‌های بسیار متغیر پوشش ویروسی می‌سازند. آنتی‌بادی غیرفعال است زیرا ویروس این قابلیت را دارد که پوششهای خود را به سرعت تغییر دهد. چون پروتئین "gp120" جهت حمله برای ویروس ضروری است در کشش‌های مختلف عوض نمی‌شود و به‌عنوان یک نقطهٔ آسیب‌پذیری در میان کل محدودهٔ جمعیت متنوع اچ‌آی‌وی است. آبزیم فراتر از اتصال به جایگاه را انجام می‌دهد، به‌صورت کاتالیکی جایگاه را نابود کرده با تفسیر ویروس راکد می‌تواند به دیگر ویروس‌های اچ‌آی‌وی حمله کند. یک مولکول مستقل آبزیم می‌تواند هزاران ویروس اچ‌آی‌وی را نابود کند.


title: سخت‌افزار شبکه

text: سخت‌افزار شبکه که با نام‌های تجهیزات شبکه یا دستگاه‌های شبکه رایانه‌ای نیز شناخته می‌شود دستگاه‌های فیزیکی هستند که برای برقراری ارتباط و تعامل بین دستگاه‌ها در یک شبکه رایانه‌ای بکار می‌روند. واحدهایی که گیرنده نهایی یا تولیدکننده داده‌ها هستند میزبان (host) یا تجهیزات پایانه (terminal) نامیده می‌شوند.


title: سخت‌افزار شبکه

text: با پیشرفت فناوری و ادغام شبکه‌های مبتنی بر پروتکل اینترنت (IP) با زیرساخت‌های ساختمانی و لوازم خانگی، سخت‌افزار شبکه به دلیل تعدد به شدت فزاینده نقاط پایانی توانای شبکه، به یک گزاره مبهم تبدیل خواهد شد.


title: سخت‌افزار شبکه

text: دستگاه‌های شبکه ممکن است شامل دروازه، رهیاب (routers)، پل شبکه، مودم، نقطه دسترسی بی‌سیم، کابل شبکه، تقویت‌کننده خط، سوئیچ شبکه، هاب و تکرارگر باشند. همچنین ممکن است دستگاه‌های ترکیبی شبکه مانند سوئیچ چند لایه، مبدل پروتکل، پل - رهیاب، پراکسی سرور، دیوار آتش، برگردان نشانی شبکه، تسهیم‌کننده، کنترل‌کننده‌های رابط شبکه (کارت شبکه)، کنترل‌کننده رابط شبکه بی‌سیم (کارت شبکه بی‌سیم)، آداپتور ترمینال، و دیگر سخت‌افزارهای مربوطه باشند.


title: سخت‌افزار شبکه

text: یکی از رایج‌ترین نوع سخت‌افزار شبکه، یک کارت شبکه اترنت مبتنی بر کار با سیم مس است که یک درگاه ورودی استاندارد در بسیاری از سیستم‌های رایانه‌ای مدرن است. شبکه‌های بی‌سیم، به ویژه برای دستگاه‌های قابل حمل و دستی محبوب شده‌اند.


title: سخت‌افزار شبکه

text: دیگر سخت‌افزارهای شبکه مورد استفاده در رایانه‌ها شامل تجهیزات مرکز داده (مانند سرویس‌دهنده فایل، سرویس‌دهنده پایگاه داده و شبکه ذخیره‌سازی)، خدمات شبکه (مانند سامانه نام دامنه (DNS)، قرارداد پیکربندی پویای میزبان (DHCP)، رایانامه و غیره) و همچنین دستگاه‌هایی که تحویل محتوا را تضمین می‌کنند.


title: سخت‌افزار شبکه

text: با دید وسیع تر، تلفن همراه، تبلت و دستگاه‌های مرتبط با اینترنت اشیاء نیز ممکن است سخت‌افزار شبکه به حساب بیایند.


title: سخت‌افزار شبکه

text: دستگاه‌های تک کاربرد معمول شبکه عبارتند از: دستگاه‌های ترکیبی شبکه عبارتند از: اجزای سخت‌افزاری یا نرم‌افزاری که معمولاً بر روی نقطه اتصال شبکه‌های مختلف قرار می‌گیرند (مثلاً بین یک شبکه داخلی و یک شبکه خارجی) عبارتند از: دستگاه‌های سخت‌افزاری دیگر که برای ایجاد شبکه‌ها یا ارتباطات از طریق خط تلفن استفاده می‌شود عبارتند از: سخت‌افزار شبکه به چند دسته تقسیم می‌شوند :


title: سخت‌افزار شبکه

text: سخت‌افزار فعال سخت‌افزاری است که فعالیت الکترونیکی در درون آن صورت می‌گیرد و اطلاعات وارد شده به آن بسته به شرایط تعریف‌شده برای دستگاه، پردازش و منتقل می‌شود.


title: سخت‌افزار شبکه

text: گونه‌های سخت‌افزار فعال عبارتند از: دسته‌بندی سخت‌افزار فعال شبکهسخت‌افزار غیر فعال سخت‌افزاری است که قابل برنامه‌ریزی نبوده و نمی‌تواند تغییری روی اطلاعات یا محتوای تبادل شده در شبکه بدهد. بخشی از سخت‌افزار شبکه که به منظور نصب و پیکر بندی سخت‌افزار شبکه (مانند کابل‌کشی و نصب دستگاه‌ها) استفاده می‌شود در این دسته جای می‌گیرند.


title: سخت‌افزار شبکه

text: گونه‌های سخت‌افزار غیر فعال عبارتند از:  نام چند تولیدکننده مطرح سخت‌افزار شبکه در جهان:


title: زیر تخت

text: زیر تخت یک فیلم ترسناک آمریکایی محصول سال۲۰۱۲ به کارگردانی استیون سی میلر می‌باشد.


title: SSE3

text: Streaming SIMD Extensions 3 ،SSE3، همچنین شناخته شده با اسم کد Intel آن (Prescott New Instructions (PNI، سری سوم دستورالعمل‌های SSE برای معماری (IA-32 (x86 است. اینتل SSE3 را در اوایل سال ۲۰۰۴ با Prescott revision از نوع پردازنده Pentium 4 خود معرفی کرد. در آوریل ۲۰۰۵، AMD یک زیر مجموعه از SSE3 را در نسخه E (ونیز و سان دیگو) پردازنده Athlon 64 خود معرفی کرد. دستورالعمل SIMD قبلی بر روی پلت فرم x86، از قدیمی‌ترین به جدیدترین، ، (توسط AMD توسعه یافته‌است، اما توسط پردازنده‌های اینتل پشتیبانی نمی‌شود)، و هستند.


title: SSE3

text: SSE3 نسبت به SSE2 شامل ۱۳ دستورالعمل جدید می‌باشد.


title: SSE3

text: تغییر قابل توجهی این است که توانایی کار به صورت افقی در یک ثبات است، به عنوان مخالف حرکت یا عملیات نسبتاً کمتر عمودی تمام دستورالعمل‌های قبلی SSE است. به‌طور خاص، دستورالعمل‌هایی برای افزودن و تفریق مقادیر متعدد ذخیره شده در یک ثبات واحد اضافه شده‌است. این دستورالعمل‌ها می‌توانند برای افزایش سرعت پیاده‌سازی برخی از عملیات DSP و 3D استفغده شوند. همچنین یک دستورالعمل جدید بدون نیاز به تغییر حالت گرد کردن کلی، برای تبدیل مقادیر شناور به اعداد صحیح وجود دارد، از این رو از حالت تعلیق‌های پر هزینه جلوگیری می‌شود. در نهایت، این افزونه LDDQU را اضافه می‌کند، بارگذاری بردار عدد صحیح جایگزین است که عملکرد بهتر در سیستم عامل مبتنی بر NetBurst برای بارگیری‌هایی که نیازمند عبور از مرزهای cacheline هستند.ریاضیات


title: SSE3

text: AOS (آرایه ای از سازه‌ها)


title: کولپوسکوپی

text: کولپوسکوپی یک روش تشخیصی پزشکی برای بررسی یک دید و مقیاس روشن از دهانهٔ رحم و بافت‌های واژن و اندام تناسلی زنان است. بسیاری از ضایعات ضعیف و ضایعات بدخیم در این مناطق ویژگی‌های قابل تشخیصی دارند که می‌توانند از طریق معاینه تشخیص داده شوند. این کار با استفاده از کولپوسکوپ انجام می‌شود که دید وسیع و کاملی را از نواحی داخلی اندام تناسلی زنان فراهم می‌کند و اجازه می‌دهد تا کولپوسکوپیست با مشاهدهٔ دقیق از عادی بودن بافت ظاهری یا غیرطبیعی آن و نتایج بافت‌برداری و بیوپسی‌های آزمایشگاهی برای بررسی معاینهٔ پاتولوژیک مطمئن شود.


title: کولپوسکوپی

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


title: کولپوسکوپی

text: وقتی یک زن برخی نشانه‌ها و علائم سرطان سرویکس یا سرطان گردن رحم را داشته باشد یا در تست پاپ اسمیر او سلول‌های غیرطبیعی مشاهده شود، تست کولپوسکوپ برای تشخیص دقیق انجام می‌شود. کولپوسکوپ یک وسیلهٔ پزشکی با لنزهایی است که قدرت بزرگ‌کننده دارد و برای مشاهدهٔ دهانهٔ سرویکس و بافت اطراف آن به کار می‌رود. این آزمایش بدون درد و عوارض است.


title: کولپوسکوپی

text: برای انجام کولپوسکوپی باید در حالتی مثل انجام معاینه لگن قرار بگیرید که پاها و باسن در پایین باشد. سپس یک اسپکولوم درون واژن قرار می‌گیرد و بعد پزشک با وارد کردن محلول‌هایی بررسی لازم را انجام می‌دهد.


title: کولپوسکوپی

text: این آزمایش بهتر است زمانی انجام شود که زنان در دورهٔ قاعدگی خود نیستند. حداقل ۲۴ ساعت قبل از آزمون، شما نباید کارهای زیر را انجام دهید:


title: کولپوسکوپی

text: بیشتر زنان به این دلیل تحت معاینهٔ کولپوسکوپی قرار می‌گیرند تا پزشک بتواند بیشتر در مورد معاینهٔ سیتولوژی در پاپ اسمیر آنها تحقیق کند. به عبارت دیگر، پزشک به این دلیل کولپوسکوپی را توصیه می‌کند که یک آزمایش پاپ اسمیر یا لگن ناهنجاری‌هایی را نشان دهد. سایر علائم بیمار برای لزوم انجام کولپوسکوپی عبارتند از:


title: کولپوسکوپی

text: بسیاری از پزشکان تصمیمات ارزیابی و درمان خود را بر اساس گزارش «راهنمای مدیریت ناهنجاری‌های سیتولوژی و پیشکاران سرطان دهانهٔ رحم»، که توسط انجمن آمریکایی کولپوسکوپی و آسیب‌شناسی سرویکس در طی یک کنفرانس در سپتامبر ۲۰۰۱ انجام شد می‌گیرند. بر این اساس، اگر آزمایش‌ها پاپ اسمیر یک بیمار ضایعه‌ای داخل شکمی را نشان دهد، کولپوسکوپی برای افراد نباید انجام شود، چون کولپوسکوپی برای این بیماران تا زمانی که فرد مبتلا به ضایعه قابل مشاهده نیست، عود بیماری را تشخیص نمی‌دهد.


title: کولپوسکوپی

text: کولپوسکوپی یک روش ایمن است که به ندرت خطری دارد. اما برخی عوارض ناشی از کولپوسکوپی ممکن است شامل موارد زیر باشد:


title: کولپوسکوپی

text: همچنین کولپوسکوپی با بیوپسی باعث ناباروری یا عقیم شدن نمی‌شود.


title: کولپوسکوپی

text: این وسیله به عنوان یک میکروسکوپ دوقطبی روشن یا مونوکولر عمل می‌کند تا تصویرهایی از سطح گردن رحم، واژن و اندام تناسلی داخلی را افزایش دهد.


title: حسی (عاشورا)

text: حُسَی ( برگرفته از حسین) سوگواری محرم رایج در میان هندی‌های کارائیب به ویژه ترینیداد و توباگو، گویان، سورینام , جامائیکا است.


title: حسی (عاشورا)

text: در ترینیداد و توباگو، مقبره‌های چند رنگ مدل یا مقبره‌هایی به شکل مسجد معروف به تادجه برای نمایش قسمت نمادین این بزرگداشت استفاده می‌شود. با این مقبره‌ها رژه می‌روند، سپس در آخرین روز به صورت آئینی به دریا منتقل می‌شوند و در نهایت در آب دور ریخته می‌شوند. به‌طور کلی، حسی ده روز طول می‌کشد و مطابق تقویم هجری قمری و مطابق با ده روز عاشورا که توسط مسلمانان شیعه در سراسر جهان گرامی داشته می‌شود، اجرا می‌شود. چهار روز آخر بیشترین فعالیت را دارد زیرا شش روز اول برای آن‌ها روزهای روزه داری، نماز و ساختن تادجه ها است. اگرچه حسی به‌طور سنتی برای حسین گرامی داشته می‌شد، اما جشن آن در دوران اخیر همه انواع رنگ‌ها و شخصیت‌هایی از اسلام سنی و ادیان دیگر از جمله هندوها و مسیحیان را دربر گرفته‌است و این رویداد مدرن را آمیزه ای از فرهنگ‌ها و ادیان مختلف کرده‌است. در این رویداد هم مسلمانان و هم غیرمسلمانان حضور دارند و محیطی از احترام و تحمل متقابل را به تصویر می‌کشند. طرحی منحصر به فرد در مراسم حسی در سدروس، روستای ساحلی واقع در انتهای جنوب غربی ترینداد یافت می‌شود که از نظر هنر به سبک منحصر به فردی ساخته شده‌است که در هیچ جای دیگر جهان یافت نمی‌شود. در روزنامه‌های ترینیداد و همچنین گزارش‌های دولتی در قرن نوزدهم، هوسی را «کارناوال جالب» نامیده‌اند.


title: حسی (عاشورا)

text: در دهه ۱۸۸۰ مقامات استعماری بریتانیا به‌طور فزاینده ای نگران تجمعات عمومی بودند و در سال ۱۸۸۴ فرمان ممنوعیت از برگزاری مراسم عمومی هوسی را صادر کردند.


title: حسی (عاشورا)

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


title: حسی (عاشورا)

text: اما در مون رپوس، سان فرناندو، در پنجشنبه، ۳۰ اکتبر ۱۸۸۴، به سوی جمعیت زنان، کودکان و مردان شلیک شد. پس از شلیک‌های پلیس برای متفرق کردن راهپیمایی، ۲۲ سرخپوست کشته شدند و ۱۲۰ نفر مجروح شدند. آن روز معمولاً در تاریخ ترینیداد به عنوان قتل‌عام محرم سرخپوستان و به عنوان شورش‌های حسی در سوابق بریتانیا و استعمار نامیده می‌شود.


title: حسی (عاشورا)

text: با توجه به نژادها و مذاهب مختلف مسلمان این مراسم تغییرات و حواشی زیادی داشته به طوری که این مراسم بیشتر از اینکه شبیه تعزیه و عزاداری شبیه به یک کارناوال شده است.


title: حسی (عاشورا)

text: مراسم «حسی» یک نمونه کوچک از سیاست «کشاکش فرهنگی» است.


title: حسی (عاشورا)

text: دولت ترینیداد هم سعی دارد از این مراسم برای جذب گردشگر و تبدیل آن به جشنواره ملی استفاده کند و حتی خواستار برگزاری این مراسم در سالروز استقلال این کشور بود که با مخالفت روبرو شد.


title: اینتل ۸۰۸۷

text: هدف ۸۰۸۷ افزایش دادن سرعت محاسبات ریاضی عدد اعشاری، مانند جمع، تفریق، ضرب، تقسیم و ریشه مربع بود. ۸۰۸۷ همچنین توابع غیر جبری، مانند محاسبات نمایی، لگاریتمی یا مثلثاتی را محاسبه کرد، و علاوه بر عدد اعشاری، ۸۰۸۷ همچنین توانست بر روی اعداد صحیح دودویی بزرگ و اعداد صحیح دهدهی عمل کند. بسته به کاربرد خاص، بهبود عملکردی حدوداً از ۲۰ تا بیش از ۵۰۰ درصد، داشت. ۸۰۸۷ توانست حدود ۵۰۰۰۰ FLOPS را با استفاده از حدود ۲٫۴ وات انجام دهد. از نصب ۸۰۸۷ فقط عملیات ریاضی منتفع شدند؛ برای مثال، رایانه‌هایی که کاربرد آن‌ها پردازش متن بود، از هزینه اضافی (حدود ۱۵۰ دلار) و مصرف برق ۸۰۸۷ سودی نمی‌بردند.


title: اینتل ۸۰۸۷

text: ۸۰۸۷ برای زمان خود یک IC پیشرفته بود، که محدودهٔ سیکل تولید تکنولوژی را جابه‌جا کرد. محصولات اولیه بسیار اندک بود.


title: اینتل ۸۰۸۷

text: فروش ۸۰۸۷ افزایش قابل ملاحظه ای داشت، زمانی که IBM یک سوکت پردازنده کمکی روی مادربرد IBM PC اضافه کرد. با توجه به کمبود تراشه‌ها، آی بی ام ۸۰۸۷ را به عنوان یک گزینه برای PC ارائه نداد تا زمانی که شش ماه در بازار بود. توسعه ۸۰۸۷ منجر به استاندارد IEEE 754-1985 برای محاسبات عدد اعشاری شد. بعدها کمک-پردازنده‌های x87 برای پردازنده‌های ۸۰۱۸۶ (که در سازگاری‌های PC استفاده نمی‌شد)، ۸۰۲۸۶، ۸۰۳۸۶ و 80386SX شدند. بعد از پردازشگر ۸۰۴۸۶، پردازنده Intel x86 دیگر از یک کمک-پردازندهٔ عدد اعشاری جداگانه استفاده نکردند؛ توابع عدد اعشاری با پردازنده یکپارچه شدند.


title: اینتل ۸۰۸۷

text: اینتل قبل از این، واحد "پردازنده محاسباتی" ۸۲۳۱ و پردازنده عدد اعشاری ۸۲۳۲ تولید کرده بود. این‌ها برای استفاده با ۸۰۸۰ یا پردازنده‌های مشابه طراحی شده بود و به عنوان یک bus داده‌ای ۸ بیتی استفاده می‌شد. آن‌ها به یک سیستم میزبان از طریق یک سیستم I/O برنامه‌ریزی شده یا یک کنترل‌کننده DMA متصل می‌شدند.


title: اینتل ۸۰۸۷

text: ۸۰۸۷ در ابتدا توسط بیل پولمن، مدیر مهندسی اینتل که به توسعه تراشه ۸۰۸۶ نظارت داشت، درک شد. بیل اقدام‌های لازم را برای اطمینان از اینکه تراشه ۸۰۸۶ می‌تواند از یک تراشه ریاضی هنوز در حال توسعه پشتیبانی کند، انجام داد.


title: اینتل ۸۰۸۷

text: ولمن در سال ۱۹۷۷ برای طراحی تراشه ریاضی ۸۰۸۷ اقدام کرد. بروس راونال به عنوان معمار منسوب شد و جان پالمر به عنوان کمک-معمار و ریاضیدان برای این پروژه استخدام شد. این دو با یک طراحی انقلابی با ۶۴ بیت mantissa و ۱۶ بیت نما برای طولانی‌ترین فرمت عدد حقیقی، با پردازندهٔ معماری پشته‌ای و ۸ ثبات پشته ۸۰ بیتی، با مجموعه ای از دستورالعمل‌های محاسباتی غنی آمدند. این طراحی چند مشکل عمده شناخته شده در محاسبات عددی و نرم‌افزار عددی را حل کرد: ایرادات خطای گرد کردن برای عملوندهای ۶۴ بیتی حذف شدند و تبدیل‌های عددی برای تمام اعداد ۶۴ بیتی حل شد. پالمر نوشته‌های ویلیام کاهان در مورد عدد اعشاری را عامل مؤثر قابل توجهی در طراحی‌شان نسبت داد.


title: اینتل ۸۰۸۷

text: طراحی ۸۰۸۷ در آغاز به دلیل طراحی جنجالی آن، در سانتا کلارا پذیرفته شد. در نهایت، این طراحی به اینتل اسرائیل نسبت داده شد، و رفی نوا یه عنوان راهنما پیاده‌سازی این تراشه انتخاب شد.


title: اینتل ۸۰۸۷

text: به پالمر، راونال و نوا حق امتیاز برای این طراحی اهدا شد. رابرت کوهلر و جان بیلیس نیز حق ثبت اختراع برای این تکنیک اعطا شد که در آن برخی از دستورالعمل‌ها با الگوی بیتی خاصی به کمک-پردازنده تخلیه شده بود.


title: اینتل ۸۰۸۷

text: ۸۰۸۷ دارای ۴۵٬۰۰۰ ترانزیستور بود و به عنوان یک تخلیه بار ۳ میکرومتر مدار HMOS ساخته شده بود. آن در کنار ۸۰۸۶ یا ۸۰۸۸ کار کرد و حدود ۶۰ دستورالعمل جدید معرفی کرد. بیشتر ۸۰۸۷mnemonicهای اسمبلی با حرف F شروع می‌شوند مانند FADD FMUL , FCOM و … که باعث می‌شود از دستورالعمل‌های ۸۰۸۶ به راحتی قابل تشخیص باشند. رمزگذاری دودویی برای تمام دستورالعمل‌های ۸۰۸۷ با الگوی ۱۱۰۱۱های اعشاری، ۲۷ در مبنای ده، همان کاراکتر اسکی ESC اگر چه در مرتبه بالاتر بیت از یک بایت؛ پیشوندهای دستورالعمل‌های مشابه نیز گاهی اوقات به عنوان


title: اینتل ۸۰۸۷

text: "کدهای فرار" معرفی می‌شوند. دستور حفظی اختصاص داده شده توسط اینتل برای این کمک-پردازنده‌ها دستورالعمل "ESC" است.


title: اینتل ۸۰۸۷

text: زمانی که پردازنده ۸۰۸۶ یا ۸۰۸۸ دستور ESC را اجرا می‌کرد، اگر بایت دوم (بایت ModR/M) یک عملوند حافظه را مشخص می‌کرد، پردازنده برای خواندن یک کلمه از حافظه مشخص شده در دستورالعمل (با استفاده از هر مد آدرس‌دهی) یک چرخه bus اجرا می‌کرد، ولی عملوند خوانده شده را در ثبات‌های CPU ذخیره نمی‌کرد یا عملیاتی روی آن انجام نمی‌داد؛ 8087 bus را مشاهده و دستورالعمل‌های جریان همگام با ۸۰۸۶ را رمزگشایی می‌کرد، تشخیص دستورالعمل‌های کمک-پردازنده برای خودش ارزشمند بود. برای یک ۸۰۸۷ دستورالعمل با عملوند حافظه، اگر دستورالعمل فراخوانی شده برای عملوندی که خوانده شود، ۸۰۸۷ کلمهٔ داده خوانده شده توسط پردازنده اصلی را از اتوبوس داده می‌گیرد. اگر عملوند مقرر به خوانده شدن بلندتر از یک کلمه بود، ۸۰۸۷ نیز آدرس را از اتوبوس آدرس کپی خواهد کرد؛ سپس بعد از اتمام خواندن داده‌های چرخه رانده شده توسط پردازنده، ۸۰۸۷ بلافاصله با استفاده از DMA کنترل اتوبوس را گرفته و بایت‌های عملوند اضافی را خودش منتقل می‌کند. اگر یک دستورالعمل۸۰۸۷ با یک عملوند حافظه برای آن عملوندی که باید نوشته شود فراخوانی شود، ۸۰۸۷ کلمه خوانده شده از اتوبوس داده را در نظر نمی‌گیرد و فقط آدرس را کپی می‌کند، سپس از DMA درخواست می‌کند و کل عملوند را می‌نویسد، به همان طریقی که از انتهای یک عملوند گسترده شده می‌خواند. در این راه، پردازنده اصلی کنترل کلی اتوبوس و زمان‌بندی اتوبوس را در حالی که ۸۰۸۷ باقی زمینه‌های اجرای دستورالعمل‌های کمک-پردازنده را مدیریت می‌کند، حفظ می‌کند، بجز دوره‌های زمانی کوتاه DMA، زمانی که ۸۰۸۷ کنترل اتوبوس را برای خواندن یا نوشتن از یا در ثبات‌های خود در دست می‌گیرد. به عنوان یک نتیجه از این طرح، ۸۰۸۷ تنها بر روی عملوندهایی که از حافظه یا از ثبات‌های خودش گرفته بود می‌توانست عمل کند، و هر تبادل اطلاعات بین ۸۰۸۷ و ۸۰۸۶ تنها از طریق RAM امکان‌پذیر بود.


title: اینتل ۸۰۸۷

text: برنامه اصلی پردازنده (CPU) در حالی که ۸۰۸۷ یک دستورالعمل را اجرا کرده‌است، به اجرا ادامه می‌دهد؛ از منظر ۸۰۸۶ اصلی یا پردازنده ۸۰۸۸، یک دستورالعمل کمک-پردازنده به مدت پردازش opcode و هر چرخه عملوند حافظه (۲ چرخه ساعت برای بی‌عملوند، ۸ چرخه ساعت به علاوهٔ زمان محاسبه EA [پنج تا ۱۲ چرخه ساعت]، برای یک عملوند حافظه [به علاوهٔ ۴ چرخه ساعت بیشتر بر روی یک ۸۰۸۸]، برای انتقال دومین بایت از کلمه ،۸ بایت، عملوند)


title: اینتل ۸۰۸۷

text: زمان می‌گیرد، پس از آن که CPU دستورالعمل بعدی برنامه را اجرا کند.


title: اینتل ۸۰۸۷

text: بنابراین، یک سیستم با یک ۸۰۸۷ به‌طور واقع توانایی پردازش موازی را داشت، اجرا کردن یک عملیات داخل ALU عدد صحیحِ پردازنده اصلی در حالی که در همان زمان یک عملیات عدد صحیح در کمک-پردازنده ۸۰۸۷ اجرا می‌شود.


title: اینتل ۸۰۸۷

text: از آنجایی که ۸۰۸۶ یا ۸۰۸۸ منحصراً جریان دستورالعمل‌ها وزمان‌بندی را کنترل می‌کردند و هیچ دسترسی مستقیمی به وضعیت داخلی ۸۰۸۷ ندارد، و به دلیل اینکه ۸۰۸۷ می‌توانست یک دستور بر واحد زمان اجرا کند، برنامه‌های سیستم‌های ۸۰۸۶/۸۰۸۷ یا ۸۰۸۸/۸۰۸۷ باید مطمئن می‌شدند که ۸۰۸۷ زمان کافی برای کامل اجرا کردن دستورالعمل قبلی مواجه شده را داشته باشد قبل از اینکه با دستور دیگری مواجه شود. دستورالعمل WAIT (برای پردازنده اصلی) برای این هدف درست شده بود، و اکثر اسمبلرها به‌طور ضمنی قبل از بیشتر دستورات عدد اعشاری کمک-پردازنده‌ها دستور WAIT را قرار می‌دهند. (در صورتی که برنامه از طرق دیگر اطمینان حاصل کند که زمان کافی بین اجرای دستورات ۸۰۸۷ حساس به زمان وجود دارد تا ۸۰۸۷ دستورالعمل دیگری قبل از اینکه دستور قبلی تمام شود دریافت نکند، دیگر لازم نیست قبل از اجرای یک دستور ۸۰۸۷ از دستور WAIT استفاده کرد. همچنین لزوماً به این شکل نیست که اگر WAIT به کار برده شد، بالافاصله به دستور ۸۰۸۷ بعدی برود) دستور WAIT منتظر پین ورودی -TEST 8086/8088 برای اعلام کردن می‌ماند، و این پین به پین BUSY 8087 داخل تمام سیستم‌هایی که یک ۸۰۸۷ داشتند، متصل شده بود. (پس زمانی TEST اعلام می‌شود که BUSY از حالت اعلام شدن خارج شود).


title: اینتل ۸۰۸۷

text: به دلیل دستورالعمل پیش-فتچ شده صف‌های ۸۰۸۶ و ۸۰۸۸ زمان مورد نیاز برای اجرای یک دستور تا اجرا شود همیشه با زمان لازم برای فتچ کردن یکسان نیست، یک کمک-پردازنده مثل ۸۰۸۷ نمی‌تواند به‌تنهایی با دیدن bus تشخیص دهد که چه زمانی به دستورالعمل بعدی اجرا می‌شود. ۸۰۸۶ و ۸۰۸۸ دارای دو صف سیگنال‌های وضعیت هستند که به کمک-پردازنده متصلند تا به آن امکان همگام‌سازی خود با زمان‌بندی داخلی CPU برای اجرای دستورالعمل‌ها از صف از پیش فتچ شده داشته باشد. ۸۰۸۷ صف از پیش فتچ شدهٔ خود را حفط می‌کند، از جایی که آپکدهای کمک-پردازنده را می‌خواند و اجرا می‌کند. به‌دلیل اینکه صف‌های از پیش فتچ شده سایزهای متفاوت و الگوریتم‌های متفاوت مدیریتی دارند، ۸۰۸۷ با مشاهده خاط‌های معین bus پردازنده زمانی که سیستم ریسِت می‌شود، مشخص می‌کند که به چه نوع پردازنده‌ای متصل شده‌است و بر این اساس صف دستورالعمل داخلی خود را تنظیم می‌کند. کپی کردن زائد صف پیش-فتچ شده سخت‌افزار در CPU و کمک-پردازنده از جهت مصرف توان و از بین بردن فضای کلی ناکار آمد است، ولی باعث شد که رابط کمک-پردازنده به تعداد خیلی کمی پین‌های IC اختصاص پیدا کند، که این مهم بود. در آن زمان که ۸۰۸۶، که رابط کمک-پردازنده را تعریف می‌کرد، معرفی شد ،ICهایی با بیش از ۴۰ پین کمیاب، گران بودند و مشکلاتی از قبیل ظرفیت اضافی lead ،که یک دلیل اصلی در محدود کردن سرعت سیگنال کردن بود، داشت.


title: اینتل ۸۰۸۷

text: کدهای عملیاتی کمک-پردازنده‌ها به کدهایی از ۶ بیت تا ۲ بایت، شروع شده با توالی فرار رمزنگاری می‌شوند.


title: اینتل ۸۰۸۷

text: │ 1xxx ۱۱۰۱ │ mmxx xrrr │


title: اینتل ۸۰۸۷

text: سه Xs اول، سه بیت اول آپکد عدد اعشاری هستند. سپس دوتا Ms، بعد از آن سه بیت آپکد عدد اعشاری نیمه دوم، دنبالش سه تا Rs هستند. Ms و Rs اطلاعات مد آدرس‌دهی را مشخص می‌کند.


title: اینتل ۸۰۸۷

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


title: اینتل ۸۰۸۷

text: خانوادهٔ x87 از سری ثبات‌های قابل آدرس‌دهی مانند ثبات‌های اصلی پردازنده‌های x86 به‌طور مستقیم استفاده نمی‌کنند؛ جای آن، ثبات‌های x87 یک ساختار پشتهای با ۸ سطح عمق که از st0 تا st7 سطح‌بندی می‌شوند، تشکیل می‌دهند. st0 بر روی پشته قرار دارد. عملیات‌های دستورالعمل‌های x87 با push کردن، محاسبه، و pop کردن مقادیر روی این پشته اجرا می‌شوند. اگرچه عملیات‌های دوتایی مثل FADD , FMUL ,FCMP و غیره ممکن است ضمناً از st0 و st1 یا st0 با یک حافظه یا یک ثبات به‌طور غیر ضمنی استفاده کند؛ ثبات st0 می‌تواند به عنوان جمع‌کننده () استفاده شود و همچنین می‌تواند با هر یک از ۸ ثبات پشته از طریق فراخوانی دستورالعمل FXCH stX (کدهای D9C8..D9CFh) جابه‌جا شود. این موجب می‌شود که پشته x87 قابل استفاده به عنوان ۷ ثبات آزاد قابل آدرس‌دهی به علاوه یک جمع‌کننده شود. این مخصوصاً کارآمد بر روی پردازنده‌های x86 superescalar (پنتیوم ۱۹۹۳ و بعد از آن) است جایی که دستورالعمل تعویض به خطای صفر کلاک بهینه‌سازی شده‌اند.


title: اینتل ۸۰۸۷

text: هنگامی که اینتل ۸۰۸۷ را طراحی کرد، تصمیم گرفت که یک فرمت استاندراد عدد اعشاری برای طرح‌های آینده درست کند. یک وجه مهم از لحاظ تاریخی این بود که به پایه استاندارد IEEE 754 تبدیل شد. ۸۰۸۷ همهٔ شروط مطرح شده در استاندارد IEEE 754 را پیاده‌ساری نکرد، بطوری که استاندارد تا ۱۹۸۵ به اتمام نرسید ولی ۸۰۳۸۷ به پایان رسید. ۸۰۸۷، دو نوع داده عدد اعشاری 32 / ۶۴ بیتی و یک فرمت موقت افزایش‌یافته ۸۰ بیتی (که در حافظه هم می‌توانست ذخیره شود) برای ارتقا دقت در محاسبات پیچیده و بزرگ تأمین کرد. جدا از این ۸۰۸۷ یک فرمت پک‌شده BCD (دهدهی به رمز دودویی) ۸۰ بیتی/ ۱۸ رقمی و نوع داده‌های ۱۶٬۳۲، و ۶۴ بیت عدد صحیح پیشنهاد داد. ۸۰۸۷ مقادیر بی‌نهایت را به صورت روش وابسته یا طرحی مدیریت می‌کند (از طریق وضعیت ثبات انتخاب می‌شود). در روش وابسته، با بی‌نهایت‌های مثبت و منفی به صورت دو مقدار متفاوت رفتار می‌شود. در روش طرحی، به عنوان نمایش بی علامتی برای اعداد بسیار کوچک یا بسیار بزرگ به کار برده می‌شود. این دو روش برخورد با بی‌تهایتدر نسخه پیش‌نویس استاندارد IEEE 754 گنجانده شده‌است. اگرچه، روش طرحی از نسخه رسمی IEEE 754 در سال ۱۹۸۵ برداشته شد. ۸۰۲۸۷ روش طرحی را به عنوان یک انتخاب حفظ کرد، اما ۸۰۳۸۷ و کمک-پردازنده‌های بعد از آن (شامل ۸۰۱۸۷) فقط روش وابسته را پشتیبانی می‌کردند.


title: اینتل ۸۰۸۷

text: ۸۰۸۷ با کمک-پردازنده‌های بعدی متفاوت بود و آن اتصال مستقیم به busهای داده و آدرس بود. ۸۰۸۷ دنبال دستورالعمل‌هایی که با توالی "۱۱۰۱۱" آغاز می‌شد می‌گشت و با آن‌ها رفتار به خصوصی انجام می‌داد، به سرعت از پردازنده اصلی به DMA درخواست دسترسی اضطراری به عملوندهای حافظه بزرگتر از یک کلمه(۱۶ بیت) می‌داد، سپس بالافاصله کنترل bus را رها می‌کرد و یه پردازنده اصلی می‌داد. کمک-پردازنده تا زمانی که دستورالعمل کمک-پردازنده تمام نشده بود مانع اجرای برنامه نمی‌شد و برنامه باید دو پردازنده را با هم همگام کند، همان‌طور که بالا ذکر شدا (در بخش «طراحی و توسعه»). یک پتانسیل کرش کردن وجود داشت اگر دستورالعمل کمک-پردازنده نتواند به کدی قابل فهم برای کمک-پردازنده دیکد کند. کمک-پردازنده‌های بعدی اینتل به این صورت به bus نمی‌شدند، ولی دستورالعمل‌ها را از طریق پردازنده اصلی با استفاده از پرت‌های ورودی/خروجی.


title: اینتل ۸۰۸۷

text: این به خطای زمان اجرا منجر شد، ولی از پتانسیل کرش کردن جلوگیری شد زیرا پردازنده می‌تواست دستورالعملی که کمک-پردازنده نپذیرفته بود، را نادیده بگیرد.


title: اینتل ۸۰۸۷

text: ۸۰۸۷ با استفاده از کنترل کردن bus حین ریست کردن چرخه، قادر بود تشخیص دهد که به یک ۸۰۸۸ متصل است یا به یک ۸۰۸۶.


title: اینتل ۸۰۸۷

text: ۸۰۸۷ در تئوری قادر به همزمان کار کردن بود در هالی که ۸۰۸۶/۸۰۸۸ قادر به پردازش دستورالعمل‌های بیشتر بودند. در عمل، این احتمال وجود داشت که برنامه کار نکند اگر قبل از مواجه شدن با دستورالعمل بعدی، دستور قبلی کامل نشده باشد. اسمبلر به‌طور اتوماتیک یک دستور 'FWAIT' بعد از هر آپکد کمک-پردازنده قرار می‌دهد و ۸۰۸۶/۸ را وادار به توقف اجرا می‌کند تا زمانی که ۸۰۸۷ سیگنال پایان بدهد این محدودیت در طرح‌های بعدی برداشته شد.


title: اینتل ۸۰۸۷

text: کمک-پردازنده‌های اینتل ۸۰۸۷ در دو نوع ساخته شده بودند، یکی به صورت سرامیک پیچ‌خورده DIP و یکی هم به DIP هرمی و طراحی شده بودند تا در بازه دمایی مقابل عمل کنند:


title: اینتل ۸۰۸۷

text: پشوندهای C,D،QD: صفر درجه سانتی‌گراد تا مثبت ۷۰ درحه سانتی‌گراد (مصرف تبلیغاتی)


title: اینتل ۸۰۸۷

text: پیشوندهای LC,LD,TC و TD: منفی ۴۰ درجه سیلسیوس تا مثبت ۸۵ درجه سیلسیوس (مصرف صنعتی)


title: اینتل ۸۰۸۷

text: پیشوندهای MC , MD: منفی ۵۵ درجه تا مثبت ۱۲۵ درجه (مصرف نظامی)


title: اینتل ۸۰۸۷

text: تمام مدل‌های ۸۰۸۷ یک پک DIP چهل پینه داشتند و با ولتاژ ۵ ولت عمل می‌کرد، حدود ۲٫۴ وات مصرف می‌کرد. برخلاف کمک-پردازنده‌های بعد ۸۰۸۷ می‌بایست با همان سرعت clock پردازنده اصلی اجرا می‌کرد. پسوندهای قسمت عدد، سرعت clock را نشان می‌دهد:


title: اینتل ۸۰۸۷

text: همان‌طور که پردازنده‌های ۸۰۸۸ و ۸۰۸۶ با قطعات بعدی جایگزین شدند، ۸۰۸۷ هم جایگزین شد. باقی کمک-پردازنده‌های اینتل ۸۰۲۸۷، ۸۰۳۸۷ و ۸۰۱۸۷ بودند.


title: اینتل ۸۰۸۷

text: از ۸۰۴۸۶ به بعد پردازنده‌های اینتل از کمک-پردازنده‌های عدد اعشاری جداگانه استفاده نمی‌کردند؛ عملاً همه‌شان، کمک-پردازنده‌ها را در خودشان قرار داده بودند، بجز یک استثنای مهم که 80486SX، تغییر یافتهٔ 80486DX که FPU در آن غیرفعال شده بود. ۸۰۴۸۷ دراقع یک چیپ 80486DX با پین اضافی بود. هنگامی که نصب می‌شد پردازنده 80486SX را غیرفعال می‌کرد. پردازنده‌های 80486DX و Pentium و پردازنده‌های بعدی بر روی هسته پردازنده کارکرد عدد اعشاری داشتند.


title: اینتل ۸۰۸۷

text: مخفف‌ها:


title: اینتل ۸۰۸۷

text: جدول شامل دستورالعمل کامل FPUهای ۸۰۸۷، ۸۰۲۸۷، ۸۰۳۸۷ و آخرین افزانه در FPUهای مبتنی بر Pentium است.


title: بانک هالیدی

text: بانک هالیدی () یکی از تعطیلات رسمی در بریتانیا ، برخی از کشور های مشترک‌المنافع هنگ کنگ و جمهوری ایرلند است.


title: ماکرو (علوم رایانه)

text: یک ماکرو در علوم رایانه یک الگو یا قاعده است که مشخص می‌کند چگونه بر اساس یک فرایند از قبل معین شده، یک ترتیب ورودی بخصوص (که معمولا ترتیبی از نویسه‌ها هستند) باید به یک ترتیب خروجی جایگزین‌شده (که آن نیز معمولا ترتیبی از نویسه‌ها می باشد) نگاشت(تناظر) یابد.


title: ماکرو (علوم رایانه)

text: کلمه ی ماکرو کوتاه شده عبارت «macroinstruction» به معنی «دستورات ماکرو» است. در زبان یونانی ماکرو (μακρός) به معنی «بزرگ یا کلان» (long) می باشد.


title: ماکرو (علوم رایانه)

text: فرایندی نگاشتی که در آن «ماکروی استفاده شده» به یک «ترتیب خاص» نمونه برداری (تبدیل) می شود، به عنوان «گسترش ماکرو» شناخته می شود. امکانات نوشتن ماکرو می تواند به عنوان یک نرم افزار کاربردی یا بخشی از زبان برنامه‌نویسی فراهم شود. در حالت اول، از ماکروها برای ساخت فعالیت هایی به وسیله ی برنامه های کم تکرار‌تر استفاده می شد. در حالات دوم، آنها یک ابزار‌اند که برنامه نویس امکان استفاده مجدد از کد، یا حتی امکان طراحی زبان های خاص منظوره را می دهند.


title: ماکرو (علوم رایانه)

text: از ماکرو برای فراهم ساختن ترتیبی از دستورالعمل های محاسباتی برای برنامه‌نویس، به صورت یک عبارت برنامه ای منفرد، استفاده می شود. استفاده از ماکروها باعث کمتر «مستعد خطر بودن» و «کم تر خسته کننده بودن» برنامه نویسی استفاده می شود. (از این جهت، به آن ها ماکرو می گویند، که یک بلاک «بزرگ» کد می تواند از یک ترتیب «کوچک» از نویسه ها گسترش بیابند). ماکرو ها اکثرا استفاده از پراسنجه های کلمه کلیدی یا موقعیتی (که مشخص می کنند که برنامه‌ی اتصال شرطی چه چیزی را تولید می کند) را مجاز می داند و از آن ها برای ساخت برنامه های کامل یا مجموعه برنامه هایی برای سیستم عامل، سکوی رایانش، یا انواع دیگر برنامه استفاده می کند. عبارت «ماکرو» از «macro instruction» گرفته شده است، و از این گسترش‌ها در گذشته در اساس برای ساخت کدهای زبان اسمبلی استفاده می شد.


title: ماکرو (علوم رایانه)

text: ماکروهای صفحه کلید و ماکروهای ماوس اجازه می‌دهد که توالی‌های کوتاهی از عملکردهای کلیدی و ماوس برای تبدیل شدن به توالی‌های کلیدی و اقدامات ماوس دیگر، معمولاً بیشتر وقت گیر باشند. به این صورت، استفاده‌های مکرر یا دنباله‌های تکراری از عملکردهای کلیدی و حرکت‌های موس می‌تواند به صورت خودکار انجام شود. برنامه‌های دیگر برای درست کردن این ماکروها را ضبظ کنندهٔ ماکرو می‌نامند.


title: ماکرو (علوم رایانه)

text: در طول دهه ۱۹۸۰، برنامه‌های مارکرو - اول SmartKey، سپس SuperKey, KeyWorks, Prokey-ابتدا به عنوان وسیله ای برای فرمت خودکار صفحه نمایش، سپس برای انواع کارهای ورودی کاربر بسیار محبوب بودند. این برنامه‌ها بر اساس حالت عملیاتی TSR (خاتمه و اقامت) و بر روی تمام ورودی‌های صفحه کلید اعمال می‌شود، مهم نیست که در کدام زمینه رخ داده باشد. پس از ظهور واسط کاربر - و در دسترس بودن صفحه‌کلید و ماکروهای موس در برنامه‌های کاربردی مانند پردازشگرهای کلمه و صفحات گسترده، آن‌ها تا حدی در حال از بین رفتن هستند و امکان ایجاد ماکروهای صفحه کلید را برای کاربر ایجاد می‌کند.ماکروهای صفحه کلید و ماوس که با استفاده از ویژگی‌های کلیدی ساخته شده در برنامه ایجاد می‌شوند گاهی به نام ماکرو برنامه شناخته می‌شوند. آن‌ها با انجام دادن توالی زمانی و اجازه دادن به ثبت اعمال، ایجاد می‌شوند. یک زبان برنامه‌نویسی ماکرو، اغلب زبان اسکریپتی، با دسترسی مستقیم به ویژگی‌های برنامه ممکن است وجود داشته باشد.


title: ماکرو (علوم رایانه)

text: ویرایشگر متن برنامه نویسان، Emacs (کوتاه شدهٔ «ویرایش ماکروها») از این ایده به نتیجه می‌رسد. در واقع بیشتر ویرایشگر از macros ساخته شده‌است.Emacs در ابتدا به عنوان یک مجموعه از ماکروها در زبان ویرایش TECO ابداع شد؛ بعدها به گویش lispمنتقل شد.


title: ماکرو (علوم رایانه)

text: ویرایشگر متن برنامه نویسان دیگر، Vim (از نوادگان ششم)، نیز اجرای کامل ماکرو را دارد. این دستگاه می‌تواند در یک رجیستر (ماکرو) ثبت شود که چه کسی روی صفحه کلید قرار دارد و می‌تواند درست مانند VBA macros برای مایکروسافت تکرار یا ویرایش شود. Vim همچنین دارای یک زبان برنامه‌نویسی به نام Vimscript برای ایجاد ماکروها است.


title: ماکرو (علوم رایانه)

text: ویژوال بیسیک برای برنامه‌های کاربردی (VBA) یک زبان برنامه‌نویسی است که در Microsoft Office از Office 97 از طریق Office 2019 موجود است (اگر چه در بعضی از اجزای Office قبل از Office 97 موجود بود). با این حال، عملکرد آن از زبان ماکرو شکل‌گرفته و جایگزین زبان‌های ماکرو شده‌است که در اصل در برخی از این برنامه‌ها گنجانده شده‌اند.


title: ماکرو (علوم رایانه)

text: VBA به بسیاری از فراخوانی‌های سیستم ویندوز مایکروسافت دسترسی دارد و زمانی که اسناد بازمی‌شوند اجرا می‌شود. این موضوع نوشتن ویروس‌های کامپیوتری در VBA را نسبتا آسان میکند ، که معمولاً به عنوان ویروس‌های ماکرو شناخته می‌شوند. در اواسط تا اواخر دهه ۱۹۹۰، این نوع یکی از رایج‌ترین انواع ویروس‌های کامپیوتر شد. با این حال، در اواخر دهه ۱۹۹۰ و تا به امروز، مایکروسافت برنامه‌های خود را تعمیر و به روز کرده‌است. افزون بر این، برنامه‌های ضد ویروس فعلی فوراً چنین حملاتی را بی‌اثر می‌کنند.


title: ماکرو (علوم رایانه)

text: یک ماکرو پارامتری یک ماکرو است که می‌تواند اشیا داده‌شده را به بسط خود وارد کند. این به ماکرو مقداری از قدرت یک تابع را می‌دهد


title: ماکرو (علوم رایانه)

text: یک مثال ساده، در زبان برنامه‌نویسی C، این ماکرو معمولی است "که" ماکرو پارامتری نیست: این باعث می‌شود رشته "PI" با "۳٫۱۴۱۵۹" جایگزین شود هر کجا که رخ دهد. این رشته همواره با این رشته جایگزین خواهد شد و ریسمان حاصل را نمی‌توان به هر نحوی تغییر داد. یک مثال از ماکروی پارامتری:حاصل تابع ماکرو بستگی به (x) ورودی آن دارد. چند مثال: ماکروهای پارامتری یک مکانیزم مفید در سطح منبع برای توسعه گسترش درون خطی است، اما در زبان‌هایی مانند C که از جایگزینی متنی ساده استفاده می‌کنند، برخی مضرات شدید برمکانیزم‌های دیگر برای انجام توسعه در خط، مانند توابع inline دارند.


title: ماکرو (علوم رایانه)

text: ماکروهای پارامتری در زبان‌هایی مانند lisp, PL/I و Scheme استفاده می‌شود، از طرف دیگر، بسیار قدرتمندتر هستند و قادر به تصمیم‌گیری دربارهٔ آنچه که براساس استدلالات آن‌هاتولید می‌شود، هستند. از این رو، آن‌ها می‌توانند به‌طور مؤثر برای اجرای تولید کد زمانی استفاده شوند.


title: ماکرو (علوم رایانه)

text: زبان‌هایی مانند C و برخی از زبان‌های مونتاژ دارای سیستم‌های کلان اولیه هستند که به عنوان پیش پردازنده‌های کامپایلر یا مونتاژکننده اجرا می‌شوند. ماکرو هایپیش پردازندهٔ C با جایگزینی متنی ساده در نشانه، به جای کاراکتر کار می‌کند. **با این حال، امکانات ماکرو اسمبلرهای پیچیده‌تر، به عنوان مثال، IBM High Level Assembler (HLASM) با یک پیش پردازنده قابل اجرا نیست؛ کد مونتاژ دستورالعمل‌ها و داده‌ها با کد مونتاژ فراخوانی‌های کلان در هم آمیخته‌است. ** استفاده کلاسیک از ماکرو در سیستم تایپ کامپیوتری TeX و مشتقات آن است، که اکثر این قابلیت‌ها بر اساس ماکرو است. MacroML یک سیستم آزمایشی است که به دنبال تطبیق سیستم‌های تایپ دهی ایستا و سیستم‌های ماکرو است. Nemerle ماکروهای نحوی را تایپ کرده‌است و یکی از راه‌های کارآمد برای فکر کردن به این ماکروهای نحوی به عنوان یک محاسبه چند مرحله ای است. مثال‌های دیگر:


title: ماکرو (علوم رایانه)

text: برخی از برنامه‌های اصلی به عنوان ماکرو متنی که توسط برنامه‌های دیگر به کار گرفته شده‌اند، به عنوان مثال، توسط XEDIT در CMS نوشته شده‌اند.


title: ماکرو (علوم رایانه)

text: بعضی از زبان‌ها مانند PHP می‌توانند در متن فرمت آزاد یا کد مبدأ زبان‌های دیگر تعبیه شوند. مکانیزمی که با آن قطعات کد شناسایی می‌شود (برای مثال، که با codice_1 و codice_2) شبیه به یک زبان ماکروی متنی است، اما آن‌ها بسیار قدرتمند و کاملاً برجسته هستند.


title: ماکرو (علوم رایانه)

text: ماکروها در زبان PL / I در یک زیر مجموعه از PL / I نوشته شده‌اند: کامپایلر " دستورات پیش پردازنده " را در زمان کامپایل اجرا می‌کند و خروجی این اجرا بخشی از کد تدوین‌شده توسط آن است. توانایی استفاده از یک زبان پردازشی به عنوان زبان ماکرو، بسیار بیشتر از زبان جایگزینی متن با هزینه یک کامپایلر بزرگ‌تر و کندتر است.


title: ماکرو (علوم رایانه)

text: چارچوب ماکروهای 's دارای نحو فرماندهی خاص خود است، اما همچنین می‌تواند حاوی متن به هر زبانی باشد. هر فریم یک جز کلی در یک سلسله مراتب از زیر مجموعه‌های تودرتو و یک روش برای ادغام خود با چارچوب‌های فرعی خود (یک فرایند بازگشتی که تضادهای یکپارچه‌سازی را به نفع زیرمجموعه‌های سطح بالاتر حل می‌کند) است. خروجی‌ها اسناد سفارشی هستند، معمولاً ماژول‌های منبع کامپایل را دارند. تکنولوژی چارچوب می‌تواند از تکثیر قطعات مشابه اما بسیار متفاوت اجتناب کند، مسئله‌ای که از زمان اختراع ماکروها، توسعه نرم‌افزار را مختل کرده‌است.


title: ماکرو (علوم رایانه)

text: اکثر زبان‌های اسمبلی دارای امکانات ماکروی دارای رویه‌ای کم‌تر هستند، به عنوان مثال اجازه می‌دهند که یک بلوک از کد را برای بازکردن حلقه تکرار کنند؛ اما این‌ها یک نحو کاملاً متفاوت از زبان اسمبلی واقعی دارند.


title: ماکرو (علوم رایانه)

text: سیستم‌های ماکرو-مانند پردازنده C که پیشتر توضیح داده شد که کار در سطح نشانه‌های واژگانی نمی‌توانند به‌طور قابل‌اطمینان ساختار واژگانی را حفظ کنند. سیستم‌های کلان همگانی در عوض در سطح درختان انتزاعی نحوه کار می‌کنند و ساختار واژگانی برنامه اصلی را حفظ می‌کنند. کاربرد گسترده‌ای از سیستم‌های ماکرو نحوی در زبان‌های Lisp مانند Common Lisp، Clojure، Scheme , ISLISP و Racket یافت می‌شود. این زبان‌ها به خصوص برای این سبک ماکرو به خاطر اونیفورم و نحو پرانتز (که به عنوان S-عبارات شناخته می‌شود) مناسب هستند. به‌طور خاص، رکیب نحو را راحت‌تر می‌کند تا تعیین کردن فراخوانی ماکروها را آسان‌تر کند. ماکروهای Lisp ساختار برنامه خود را با استفاده از زبان کامل موجود برای بیان چنین تغییرات تبدیل می‌کند. در حالی که ماکروهای نحوی اغلب در زبان‌های Lisp یافت می‌شوند، آن‌ها نیز در زبان‌های دیگر مانند Prolog , Dylan، Scala , Nemerle، Rust، Elixir , Nim , Haxe , و Julia در دسترس هستند. آن‌ها همچنین به عنوان پسوند شخص ثالث به جاوا اسکریپت، C # و پایتون در دسترس هستند.


title: ماکرو (علوم رایانه)

text: قبل از این که lisp ماکروها را داشته باشد، آن‌ها به اصطلاح FEXPR، عملگرهای تابع-مانند operators که ورودی آن مقادیر محاسبه‌شده توسط آرگومان‌ها نبود، بلکه به جای اشکال نحوی آرگمان‌ها، و خروجی آن مقادیری بود که باید در محاسبات استفاده شود. به عبارت دیگر، FEXPRها در همان سطح EVAL اجرا شدند و پنجره ای را به لایه متا ارزیابی ارائه دادند. به‌طور کلی مشخص شد که این یک مدل مشکل است تا به‌طور مؤثر دلیل آن را توضیح دهد.


title: ماکرو (علوم رایانه)

text: در سال ۱۹۶۳ تیموتی هارت پیشنهاد افزودن ماکروها به Lisp 1.5 در AI Memo 57 کرد: تعاریف MACRO برای LISP.


title: ماکرو (علوم رایانه)

text: یک ماورای فریبنده، نوعی از ماژول برنامه‌نویسی است که به عمد برخی از فرم‌های عرضه‌شده به ماکرو را می‌گیرد که ممکن است توسط یک anaphor (با اشاره به دیگری) ارجاع داده شود. ماکروسکوپ‌های Anaphoric در ابتدا در پل Graham's در lisp ظاهر شدند و نام آن‌ها اشاره به anaphora زبانی است - استفاده از کلمات به عنوان جایگزین برای کلمات قبلی.


title: ماکرو (علوم رایانه)

text: در اواسط دهه هشتاد، تعدادی از مقالات [۱۱] [۱۲] مفهوم توسعه ماکرو بهداشتی (codice_3)، یک سیستم مبتنی بر الگو را معرفی کردند که در آن محیط‌های نحوی تعریف ماکرو و استفاده ماکرو متمای زهستند، که به تعریف کننده‌های ماکرو و کاربران اجازه نمی‌دهند که در مورد تصرف غیرعمدی متغیرنگران باشند (به رغم شفافیت رفرال). ماکروهای بهداشتی برای طرح در استانداردهای R5RS، R6RS و R7RS استاندارد شده‌است. تعدادی از پیاده‌سازی‌های رقابتی با استفاده از ماکروها، مانند قواعد سینتکس، حالت نحوی، تغییر نامصریح، و بسته شدن نحوی وجود دارد. هر دو codice_3 و codice_5 در استانداردهای Scheme استاندارد شده‌است.


title: ماکرو (علوم رایانه)

text: اخیراً، racket مفاهیم بهداشتی ماکرو با یک " برج ارزیابان " را ترکیب کرده‌است، به طوریکه زمان توسعه معنایی یک سیستم ماکرو، زمان اجرای معمولی یک بلوک دیاگرام دیگر است و نشان داد که چگونه تجزیه و تحلیل را در یک زبان غیر پرانتز اعمال کرد.


title: ماکرو (علوم رایانه)

text: تعدادی از زبان‌ها غیر از Scheme یا ماکروهای بهداشتی را اعمال می‌کنند یا سیستم‌های بهداشتی جزئی را اجرا می‌کنند. نمونه‌هایی از Scala، Rust، Elixir، Julia , Dylan و Nemerle هستند.فرضیات نشان می‌دهند که این سه مقوله از استفاده قانونی اولیه ازماکروها در چنین سیستمی استفاده می‌کنند. برخی دیگر استفاده از ماکروها را مانند anaphoric macros در سیستم‌های ماکرو که غیربهداشتی هستند یا تغییر شکل غیربهداشتی را ممکن می‌سازند، پیشنهاد کرده‌اند.


title: ماکرو (علوم رایانه)

text: تعامل بین ماکروها و دیگر ویژگی‌های زبان یک حوزه مفید از تحقیق بوده‌است. برای مثال، مؤلفه‌ها و ماژول‌ها برای برنامه‌نویسی در مقیاس بزرگ مفید هستند، امابرهمکنش ماکروها و این ساختارها باید برای استفاده آن‌ها با هم تعریف شوند. ماژول و سیستم‌های جزئی که می‌توانند با ماکروها تعامل داشته باشند برای Scheme و سایر زبان‌ها با ماکرو پیشنهاد شده‌اند. به عنوان مثال، زبان racket مفهوم یک سیستم ماکرو را به یک برج نحوی بسطمی‌دهد که در آن ماکروها را می‌توان با زبان از جمله ماکروها، با استفاده از بهداشتبرای تضمین این که لایه‌های نحوی متمایز هستند و اجازه دادن ماژول برای صادراتماکروها به حوزه‌های دیگر را می‌دهد، بسط می‌دهد.


title: ماکرو (علوم رایانه)

text: ماکروها معمولاً برای نگاشت یک رشته کوتاه (فراخوانی ماکرو) به یک توالی طولانی‌تر از دستورالعمل‌ها مورد استفاده قرار می‌گیرند. یکی دیگر که کم‌تر متداول است، استفاده از ماکروها این است که معکوس شود: نگاشت یک توالی دستورالعمل‌ها به یک رشته ماکرو. این رویکرد توسط سیستم برنامه‌نویسی موبایل STAGE۲ اتخاذ شد، که از یک کامپایلر ماکروی ابتدایی (به نام SIMCMP)استفاده می‌کرد تا یک مجموعه دستورالعمل خاص از یک کامپیوتر داده‌شده به counterpart macros را نگاشت کند. برنامه‌های کاربردی (به‌طور خاص کامپایلرها) که در این ماکروها مستقل از دستگاه نوشته شده‌است، بدون تغییر در هر کامپیوتری که مجهز به کامپایلر ماکروی اولیه است اجرا می‌شود. اولین برنامه کاربردی که در چنین زمینه ای اجرا می‌شود، یک کامپایلر ماکرو پیچیده‌تر و قدرتمند است که در زبان ماکروی مستقل از دستگاه نوشته شده‌است. این کامپایلر ماکرو برای خودش، به روش بوت استرپ، برای تولید یک نسخه ترجمه‌شده و بسیار کارآمدتر از خودش استفاده می‌شود. مزیت این رویکرد این است که برنامه‌های پیچیده را می‌توان از یک کامپیوتر به یک کامپیوتر بسیار متفاوت با تلاش بسیار کمی (برای هر معماری ماشین هدف، فقط نوشتن یک compiler ابتدایی)منتقل کرد. ظهور زبان‌های برنامه‌نویسی مدرن، به خصوص C، که کامپایلرها در تمام رایانه‌ها در دسترس هستند، این رویکرد را بی‌فایده کرده‌است. با این وجود، این یکی از اولین نمونه از بوت استرپینگ کامپایلر بود.


title: ماکرو (علوم رایانه)

text: در حالی که دستورالعمل‌های ماکرو را می‌توان توسط برنامه‌نویس برای هر مجموعه دستورها برنامه اسمبلر محلی تعریف کرد، معمولاً ماکروها با کتابخانه‌های ماکرو مرتبط با سیستم عملیاتی که امکان دسترسی بهتوابع سیستم‌عامل را فراهم می‌کند، مرتبط هستند. مانند:


title: ماکرو (علوم رایانه)

text: در سیستم‌های عملیاتی قدیمی‌تر مثل آن‌هایی که در پردازنده‌های مرکزی IBM مورد استفاده قرار می‌گرفتند، عملکرد سیستم‌عامل کامل تنها برای برنامه‌های زبانی assembler در دسترس بود (مگر اینکه از subroutines زبان اسمبلی استفاده شود)، همان‌طور که دستورالعمل‌های استاندارد ماکرو معمولاً دارای همتایان دارای سطح بالا نیستند.


title: ماکرو (علوم رایانه)

text: در اواسط دهه ۱۹۵۰، زمانی که برنامه‌نویسی مونتاژ مکرر برای نوشتن برنامه های رایانه‌های دیجیتال مورد استفاده قرار گرفت، استفاده از دستورالعمل‌های ماکرو برای دو هدف اصلی آغاز شد: کاهش مقدار کدگذاری برنامه که می‌بایست با ایجاد چندین بیانیه زبان اسمبلی از یک دستور ماکرو و اجرای استانداردهای نوشتن برنامه، نوشته شود، به عنوان مثال، تعیین فرمان‌های ورودی / خروجی به روش‌های استاندارد. دستورالعمل‌های ماکرو به‌طور مؤثر یک قدم میانی بین برنامه‌نویسی زبان اسمبلی و زبان‌های برنامه‌نویسی سطح بالا بود که بعد از آن، مثل FORTRAN و کوبول معرفی شدند.. دو مورد از اولین تأسیسات برنامه‌نویسی برای توسعه «زبان‌های ماکرو» برای تولید IBM ۷۰۵، در شرکت شیمیایی داو در دلاور و فرماندهی متریال هوایی، ballistics Missile Logistics در کالیفرنیا بود. یک دستور ماکرو که در فرمت زبان اسمبلی هدف نوشته می‌شود، توسط یک مترجم ماشینی پردازش می‌شود، که برای تولید یک یا چند دستورالعمل زبان اسمبلی در کنار برنامه assembler پردازش می‌شود که دستورالعمل زبان اسمبلی را به دستورالعمل‌های زبان ماشین ترجمه می‌کند. [۲۲]


title: ماکرو (علوم رایانه)

text: در اواخر دهه ۱۹۵۰، زبان ماکرو توسط Macro Assemblers دنبال شد. این ترکیبی از هر دو برنامه بود که در یک برنامه برای هر دو عمل می‌کرد، که از پیشپردازنده و یک موتاژکننده تشکیل شده بود. ین به برنامه نویسان زبان اسمبلی اجازه داد تا زبان ماکروی خود را پیاده کنند و قابلیت انتقال محدود کدها را بین دو ماشین اجرا کنند که همان CPU را در سیستم‌عامل متفاوت اجرا می‌کردند، برای مثال، نسخه‌های ابتدایی MSDOS و CPM - ۸۶. کتابخانه ماکرو باید برای هر ماشین هدف نوشته شود، نه برای برنامه کلی زبان اسمبلی. توجه داشته باشید که اسمبلرهای قدرتمندتر می‌توانند از ساختارهای مونتاژ مشروط در دستورالعمل‌های ماکرو استفاده کنند که می‌توانند کدهای مختلف را روی دستگاه‌های مختلف یا سیستم عامل‌های مختلف تولید کنند و نیاز به کتابخانه‌های مختلف را کاهش دهند.


title: ماکرو (علوم رایانه)

text: در دهه ۱۹۸۰ و اوایل دهه ۱۹۹۰، رایانه‌های رومیزی تنها در چند مگاهرتز کار می‌کردند و برنامه‌های مونتاژ زبان به‌طور معمول برای سرعت بخشیدن به برنامه‌های نوشته شده در C, Fortran, Pascal و دیگران استفاده می‌شد. این زبان‌ها در آن زمان، از کنوانسیون‌های مختلف تماس استفاده می‌کردند. **ماکروها می‌توانند برای روتین‌های رابط نوشته شده در زبان مونتاژ به قسمت اولیهٔ برنامه‌های نوشته شده در هر زبان نوشته شوند. ** باز هم، کد زبان اسمبلی اصلی همان بود، فقط کتابخانه‌های ماکرو مورد نیاز برای هرزبان مقصد نوشته می‌شدند.


title: ماکرو (علوم رایانه)

text: در سیستم‌های عملیاتی مدرن مانند یونیکس و مشتقات آن، دسترسی به سیستم از طریق subroutines ارائه می‌شود که معمولاً توسط کتابخانه‌های پویا ارائه می‌شود. زبان‌های سطح بالا مانند C، دسترسی جامع به توابع سیستم‌عامل را ارائه می‌کنند و نیاز به برنامه‌های زبانی assembler برای این قابلیت را فراهم می‌کنند.


title: کارآیی شبکه رایانه‌ای

text: عملکرد شبکه به اندازه‌گیری‌های کیفیت خدمات یک شبکه از دید مشتری اشاره دارد.


title: کارآیی شبکه رایانه‌ای

text: روش‌های مختلفی برای اندازه‌گیری عملکرد یک شبکه وجود دارد، همان‌طور که هر شبکه در ماهیت و طراحی متفاوت است. عملکرد نیز می‌تواند به جای اندازه‌گیری، مدل‌سازی شده و شبیه‌سازی شود. یک مثال از این می‌تواند استفاده از نمودارهای گذار حالت برای مدل‌سازی عملکرد صف بندی یا استفاده از یک شبیه‌ساز شبکه است.


title: کارآیی شبکه رایانه‌ای

text: معیارهای زیر اغلب مهم شمرده می‌شوند:


title: کارآیی شبکه رایانه‌ای

text: پهنای باند که معمولاً با بیت / ثانیه اندازه‌گیری می‌شود، حداکثر سرعتی است که اطلاعات انتقال می‌یابد


title: کارآیی شبکه رایانه‌ای

text: پهنای باند کانال موجود و نسبت سیگنال به نویز قابل دستیابی، حداکثر بازدهی ممکن را تعیین می‌کنند. به‌طور کلی نمی‌توان داده‌های بیشتری را از آنچه نظریه شانون-هارتلی قانون گذاری کرده ارسال کرد.


title: کارآیی شبکه رایانه‌ای

text: "بازدهی" تعداد پیام‌هایی است که به‌طور موفقیت‌آمیز در هر واحد از زمان تحویل می‌شوند. بازدهی با پهنای باند موجود و نیز نسبت سیگنال به نویز و محدودیت‌های سخت‌افزاری کنترل می‌شود. بازدهی از مقصود این مقاله اینگونه فهمیده می‌شود که با زمان رسیدن اولین بیت داده گیرنده سنجیده می‌شود تا مفهوم بازده از مفهوم تأخیر جدا شود. برای بحث در مورد این نوع، اصطلاحات «بازدهی» و «پهنای باند» اغلب به‌طور متناوب استفاده می‌شود.


title: کارآیی شبکه رایانه‌ای

text: "پنجره زمان" دوره ای است که بازدهی اندازه‌گیری می‌شود. انتخاب یک پنجره زمانی مناسب اغلب بر محاسبات میزان بهره‌وری تأثیر می‌گذارد و اینکه آیا تأخیر در نظر گرفته می‌شود یا نه، تعیین می‌کند که آیا تأخیر روی عملکرد تأثیر می‌گذارد یا خیر.


title: کارآیی شبکه رایانه‌ای

text: سرعت نور حداقل زمان انتشار را بر روی تمام سیگنال‌های الکترومغناطیسی تحمیل می‌کند. غیرممکن است تأخیر را به کمتر از این کاهش داد


کارآیی شبکه رایانه‌ای


title: کارآیی شبکه رایانه‌ای

text: جایی که s فاصله است و c سرعت متوسط نور در محیط است. این تقریباً به معنی ۱ دور در میلی ثانیه (RTT) برای ۱۰۰ کیلومتر / ۶۲ مایل فاصله بین میزبان هاست.


title: کارآیی شبکه رایانه‌ای

text: تاخیرهای دیگر نیز در گره‌های میانی اتفاق می‌افتد. در شبکه‌هایی که بسته‌ها سوئیچ می‌شوند، تاخیرها می‌توانند به علت صف بندی ایجاد شوند.


title: کارآیی شبکه رایانه‌ای

text: ژیتر، انحرافی ناخواسته از دوره واقعی یک سیگنال دوره ای فرض شده در الکترونیک و ارتباطات مخابراتی است، که اغلب در ارتباط با یک منبع ساعت مرجع است. ژیتر ممکن است در ویژگی‌هایی مانند فرکانس پالس‌های متوالی، دامنه سیگنال یا فاز سیگنال‌های دوره ای مشاهده شود. ژیتر عاملی مهم و معمولاً ناخواسته در طراحی تقریباً تمام اتصالات ارتباطی (مانند USB، PCI-E، SATA , OC-48) است؛ و در برنامه‌های بازیابی ساعت، ژیتر زمانی نامیده می‌شود.


title: کارآیی شبکه رایانه‌ای

text: در انتقال دیجیتالی، تعداد اشتباهات بیتی تعداد بیت‌های دریافت شده از یک جریان داده در یک کانال ارتباطی است که به علت نویز، تداخل، تحریف و خطاهای همگام سازی بیت تغییر یافته‌اند.


title: کارآیی شبکه رایانه‌ای

text: میزان خطای بیت یا نسبت خطای بیت (BER) تعداد اشتباهات بیتی تقسیم بر تعداد کل بیت‌های منتقل شده در طول یک بازه زمانی مورد مطالعه است. BER معیار عملکرد بدون واحد است که اغلب به صورت یک درصد بیان می‌شود.


title: کارآیی شبکه رایانه‌ای

text: احتمال خطای بیتی "p " مقدار انتظار برای BER است. BER را می‌توان به عنوان تخمین تقریبی احتمال خطای بیت در نظر گرفت. این تخمین دقیق برای یک فاصله زمانی طولانی و تعداد زیادی از خطاهای بیت است.


title: کارآیی شبکه رایانه‌ای

text: تمام عوامل فوق، همراه با نیازهای کاربر و درک کاربر، نقش مهمی در تعیین «سرعت» یا فایده مشاهده شده از یک اتصال شبکه ایفا می‌کنند. رابطه بین بازده، تأخیر و تجربه کاربر به‌طور دقیق در بطن یک رسانه شبکه به اشتراک گذاشته شده و به عنوان یک مشکل زمانبندی قابل درک است.


title: کارآیی شبکه رایانه‌ای

text: برای بعضی از سیستم‌ها، تأخیر و بازدهی، اجزای مرتبط هستند. در TCP / IP، تأخیر نیز می‌تواند به‌طور مستقیم بر بازدهی تأثیر گذار باشد. در ارتباطات TCP، محصول با تأخیر پهنای باند وسیع اتصالات با تأخیر بالا، همراه با پنجره‌های نسبتاً کوچک TCP در بسیاری از دستگاه‌ها، به‌طور مؤثر باعث افزایش کارایی یک اتصال با تأخیر زیاد می‌شود تا با افت شدید تأخیر مواجه شود. این می‌تواند با تکنیک‌های مختلفی مانند افزایش اندازه پنجره تراکم TCP یا راه حل‌های دشوارتر مانند یکی شدن بسته، شتاب TCP و تصحیح خطای پیش رو جبران شود که همه آنها معمولاً برای ارتباطات ماهواره ای با تأخیر بالا استفاده می‌شود.


title: کارآیی شبکه رایانه‌ای

text: شتاب‌دهنده TCP بسته‌های TCP را به یک جریان که شبیه به UDP است تبدیل می‌کند. به همین علت، نرم‌افزار شتاب‌دهنده TCP باید مکانیسم‌های خود را برای اطمینان از قابل اطمینان بودن ارتباط، گرفتن زمان تأخیر و پهنای باند ارتباط درون حساب کاربری را در نظر بگیرد و هر دو انتهای ارتباط با تأخیر باید روش مورد استفاده را پشتیبانی کنند.


title: کارآیی شبکه رایانه‌ای

text: در لایه کنترل دسترسی رسانه (MAC)، از مسائل مربوط به عملکرد مانند کارایی و تأخیر انتها به انتها سخن به میان آمده‌است.


title: کارآیی شبکه رایانه‌ای

text: بسیاری از سیستم‌ها را می‌توانند به عنوان سیستم‌های تحت تأثیر محدودیت‌های بازدهی یا محدودیت‌های تأخیر از نظر فایده برای کاربر یا تجربه برای کاربر نهایی تعریف کرد. در برخی موارد محدودیت‌های سخت مانند سرعت نور منجر به ایجاد مشکلات منحصر به فرد در چنین سیستم‌هایی می‌شود و هیچ کاری برای اصلاح این امر انجام نمی‌تواند انجام شود. سیستم‌های دیگر برای تعادل و بهینه‌سازی قابل توجه برای ایجاد بهترین تجربه برای کاربراجازه می‌دهد.


title: کارآیی شبکه رایانه‌ای

text: یک ماهواره مخابراتی در مدار زمین آهنگ که طول مسیر آن بین فرستنده و گیرنده حداقل ۷۱۰۰۰ کیلومتر است را اعمال می‌کند و این به این معنی است که حداقل تأخیر بین درخواست پیام و دریافت پیام، یا تأخیر ۴۷۳ میلی ثانیه است. این تأخیر می‌تواند بسیار قابل توجه باشد و برخدمات تلفن ماهواره ای بدون در نظر گرفتن ظرفیت بازدهی موجود تأثیر بگذارد.


title: کارآیی شبکه رایانه‌ای

text: این رسیدگی‌ها در فاصله طولانی در هنگام ارتباط با کاوشگرهای فضایی و دیگر اهداف بلند مدت فراتر از جو زمین دو چندان می‌شود. شبکه فضای عمیق که توسط ناسا اجرا می‌شود، یکی از همین سیستم‌ها است که باید با این مشکلات کنار بیاید. GAO به علت تأخیر در زمانی که از دست رفته، معماری کنونی را مورد انتقاد قرار داده‌است. چندین روش مختلف برای رسیدگی به اتصال متناوب و تاخیرهای طولانی بین بسته‌ها ارائه شده‌است، مانند شبکه‌های تحمل کننده تأخیر.


title: کارآیی شبکه رایانه‌ای

text: در فاصله بین ستاره ای، مشکلات در طراحی سیستم‌های رادیویی که می‌توانند به هر نوع بازدهی دست یابند بسیار گسترده هستند. در این موارد، حفظ ارتباطات مسئله بزرگتری از این است که چقدر طول می‌کشد که ارتباط برقرار بماند.


title: کارآیی شبکه رایانه‌ای

text: حمل و نقل تقریباً به‌طور کامل با بهره‌وری در رابطه است، به همین دلیل است که تحویل فیزیکی نوار بایگانی پشتیبان هنوز با وسیله نقلیه انجام می‌شود.


title: کبوتر نامه‌بر

text: کبوتر نامه‌بر یا کبوتر پست () به معنای استفاده ویژه از کبوترهای خانگی برای ارسال پیام‌ها است. کبوتران به دلیل خاصیت و توانایی طبیعی‌اشان در بازگشت به خانه در نقش فرستندگان نامه‌بر بسیار مؤثر بودند. برای استفاده از این ویژگی کبوترها را در یک قفس انداخته و سپس به مناطقی که نیاز است کبوتر از آنجا پیام‌ها را بیاورد منتقل می‌کنند، پس از آن کبوتران به صورت طبیعی پیام‌ها را به خانهٔ اصلی خود بازمی‌گرداند تا صاحبان آن بتوانند پیام‌ها را بخوانند. این کبوتران در بسیاری از مناطق جهان مورد استفاده قرار گرفته‌اند. این پرندگان همچنین به دلیل عملکرد و تأثیر کاربردی‌اشان در بسیاری از موقعیت‌های نظامی استفاده شده‌اند و در این موارد از آنها با عنوان کبوتر جنگی یاد می‌شود.


title: هیئت نظارت بر اجرای برجام

text: هیئت نظارت بر اجرای برجام شورایی متشکل از هشت عضو از مقام‌های جمهوری اسلامی ایران است که در پی نامهٔ ۹ ماده‌ای سید علی خامنه‌ای، رهبر جمهوری اسلامی ایران، به حسن روحانی، رئیس‌جمهور ایران، دربارهٔ الزامات اجرای برنامه جامع اقدام مشترک (برجام) به منظور «رصد پیشرفت کارها و انجام تعهدات طرف مقابل» و «تحقق هشت بند دیگر از نامه» تشکیل شده‌است. به گفتهٔ علی مطهری، این هیئت مرجع همهٔ تصمیمات مربوط به اقدامات متقابل ایران در مورد برجام و نقض آن است.


title: هیئت نظارت بر اجرای برجام

text: اعضای این هیئت در شورای عالی امنیت ملی با تأیید سید علی خامنه‌ای انتخاب شده‌اند. اعضای این هیئت عبارتند از: هم‌چنین علی شمخانی، دبیر شورای عالی امنیت ملی، دبیر این هیئت است.


title: هیئت نظارت بر اجرای برجام

text: به گفتهٔ «مرتضی غرقی» این هیئت در انجام وظایفش کوتاهی کرده‌است. مشرق نیوز هم انفعال این هیئت را موجب زیاده‌خواهی آمریکا می‌داند.


title: الکتروانسفالوگرافی - تصویربرداری رزونانس مغناطیسی کارکردی

text: EEG-fMRI (الکتروانسفالوگرافی همزمان با تصویربرداری کارکردی رزونانس مفناطیسی) یک روش تصویربرداری عصبی چند منظوره است که داده‌های EEG-fMRI آی به‌طور همزمان ثبت می‌شوند. در این روش به مطالعه فعالیت الکتریکی مغز که با تغییرات همودینامیک در مغز همراه است می‌پردازند. این ثبت در حالت عملکرد عادی یا در هنگام اختلالات مغزی قابلیت اعمال را دارد.


text: EEG گرفته شده از روی پوست سر فعالیت الکتریکی و پتانسیل‌های پس سیناپسی خاص در غشاء مغز را نشان می‌دهد در حالی که fMR توانایی پیدا کردن تغییرات همودینامیک مغز از طریق اندازه‌گیری اثر بلد (تصویر برداری از طریق وابستگی خون و اکسیژن) را دارد. پس EEG-fMRI امکان اندازه‌گیری فعالیت عصبی و همودینامیکی را که شامل دو جزء مهم از مکانیزم اتصال عصبی می‌شود را فراهم می‌کند.


text: استفاده همزمان از EEG-fMRI با کیفیت کافی یک سری راه حل‌ها را برای رفع مشکلات مربوط به خطرات ناشی از پتاانسیل که ممکن است سلامت فرد را به خطر اندازد (به دلیل جریان‌های القا شده به وسیله فرایند موجود در تصویربرداری ام آر در مدارهایی که توسط فرد مورد آزمایش و سیستم ثبت ای ای جی ایجاد شده) و هم چنین کیفیت داده EEG-fMRI را می‌طلبد.


text: دو درجه در دریافت و جمع‌بندی داده‌ها وجود دارد: محدودیت‌های مربوط به بازتاب صحیح که با تداخلات موجود بین تجهیزات EEG و MR در ارتباط است.


text: این‌ها: ثبت‌های متغیر هستند که در هر مدالیتی گرفته شده در نوبه خود (به صورت متناوب) وقفه ایجاد می‌کند تا اینکه اجازه دهد داده با کیفیت مناسب توسط یک مدالیته دیگر ثبت شود. داده گرفتن‌های متوالی، به طوری که هر دو مدالیته‌ها قادر هستند که داده را با کیفیت مناسب به صورت پیوسته ثبت کنند. مدالیتی دوم با استفاده از پردازش در زمان یا پس پردازش در نرم‌افزار کاهش آرتیفکت EEG به دست می‌آید.


text: ابتدا EEG در محیط MR در سال ۱۹۹۳ ثبت شد. چندین گروه ابزار مستقل را برای حل مشکلات ناشی از اختلال متقابل از سیگنال‌های EEG و fMRI پیدا کرده‌اند. اولین تجربهٔ EEG-fMRI در سال 1999 با استفاده از دستاورد فیلترینگ عددی اعمال شد، که عمدتاً روش بر پایهٔ نرم‌افزار در مدت کوتاهی بعد آن جایگزین شد. یک مورد دیگر که به مجموعه EEG-fMRI اضافه شد ثبت ویدیوئی همزمان بدون تأثیر بر کیفیت داده EEG-fMRI بود.


text: برای بیشتر موارد مجموعه داده‌های ترکیب شده EEG-fMRI اکنون به عنوان یک مسئلهٔ حل شده‌است و دستگاه‌های تجاری از کارخانه‌های بزرگ دنیا در دسترس هستند، اما هنوزمشکلاتی اندکی باقی مانده‌است. در EEG یک سری آرتیفکت‌های جزئی باقی مانده‌است که در هر ضربان قلب اتفاق می‌افتد. ردیاب‌های که در EEG این آرتیفکت را ثبت می‌کند اغلب به BCG (بالستوکاردیوگرام) مربوط می‌شوند، به دلیل منشأ احتمالی آن‌ها در حرکت لیدهای EEG که با هر ضربان قلب در فیلد مغناطیسی اتفاق می‌افتد. در عمل دلیل این آرتیفکت کامل اثبات نشده‌است و ممکن است که در نتیجه عوامل مؤثر مثل فیلدهای الکتریکی القا شده با حرکت خون باشد.


text: دراصل این تکنیک از ترکیب توانایی قوی EEG در تعیین مشخصه‌های حالت‌های خاص مغز با رزولوشن زمانی بالا و برای نشان دادن الگوهای آسیب‌شناسی با توانایی fMRI برای تصویر کردن دینامیک خون در طول کل مغز با رزولوشن مکانی بالاست. تا بحال fMRI عمدتاً بعنوان یک تکنیک که در آن EEG هماهنگ بدست آمده برای فعالیت مغز (حالت مغز) در طول بازه زمانی مطابق با آمار روی تغییرات مرتبط با همودینامیک استفاده می‌شود.


text: انگیزه اولیه برای EEG-fMRI در شاخه مطالعه روی بیماری صرع و به‌طور اختصاصی در مطالعه روی تخلیه‌های تشنجی متقابل(IED) و منشأهای آن و در خود تشنج بود. IED در بیماران مبتلا به صرع پدیده‌هایی غیرقابل پیش‌بینی و زیرکلینیکی محسوب می‌شوند و تنها هنگام استفاده از EEG (یا MEG) قابل رویت می‌باشند؛ بنابراین استفاده از EEG در طول fMRI به اجازه مطالعه در مورد همبستگی همودینامیکی را می‌دهد. این روش تغییرات همودینامیکی مرتبط با IED و تشنج را نشان می‌دهد و بعنوان یک ابزار علمی قدرتمند ثابت و شناخته شده‌است. ثبت ویدیو ی همزمان و هماهنگ فعالیت کلینیکی تشنج را در طول فعالیت الکتروفیزیولوژیکی در EEG مشخص می‌کند؛ که به تحقیق و بررسی تغییرات همودینامیکی هماهنگ در طول تشنج در مغز کمک می‌کند.


text: ارزش کلینیکی این یافته‌ها موضوع تحقیقاتی است که در حال انجام است؛ اما تحقیقات اخیر یک واقعیت قابل قبول را برای مطالعات EEG-fMRI و حساسیت بهتر در اسکنرهای با فیلد قوی پیشنهاد می‌کند.در خارج از زمینه صرع،EEG-fMRI برای مطالعه پاسخ‌های ناشی از مغز به دلیل وجود تحریکات خارجی و دید مهم و جدیدی را در فعالیت پایه ای مغز در طول استراحت و خواب فراهم کرده‌است.


title: مدل کانتور فعال

text: مدل کانتور فعال، که مدل مارها نیز نامیده می‌شود، یک چارچوب در بینایی رایانه ای است که توسط مایکل کاس، اندرو ویتکین و دمتری ترزوپولوس معرفی شده، و برای ترسیم خطوط خارجی یک شیء، از یک تصویر دو بعدی احتمالاً پر نویز تعریف شده‌است. مدل مارها در دیدگاه رایانه‌ای محبوب است و این مدل به‌طور گسترده در برنامه‌های کاربردی مانند ردیابی شی، تشخیص شکل، تقسیم‌بندی، آشکارسازی لبه و تطبیق استریو مورد استفاده قرار می‌گیرد.


title: مدل کانتور فعال

text: مدل مار یک انرژی کمینه کننده و اسپلاین قابل اصلاح است که تحت تأثیر محدودیت‌ها و نیروهای تصویر است که آن را به سمت کانتورها و نیروهای داخلی متصل می‌کند که مقاومت در برابر تغییر شکل را دارند. مدل مارها ممکن است به عنوان یک مورد خاص از روش کلی تطبیق یک مدل ناپایدار به یک تصویر با استفاده از به حداقل رساندن انرژی درک شوند. در دو بعد، ، یک نسخه گسسته این رویکرد را نشان می‌دهد، با استفاده از برای محدود کردن محدوده شکل به یک دامنه صریح از یک مجموعه آموزشی یاد می‌شود.


title: مدل کانتور فعال

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


title: مدل کانتور فعال

text: در دیدگاه رایانه، مدلهای کانتور، مرزهای شکل در یک تصویر را توصیف می‌کنند. مدل مارها به‌طور خاص طراحی شده‌اند تا مشکلات را حل کنند که در آن شکل تقریبی مرز شناخته شده‌است. با داشتن یک مدل تغییر شکل‌پذیر، مارها می‌توانند به تفاوت و نویز در تطبیق استریو و ردیابی حرکت سازگار شوند. علاوه بر این، این روش می‌تواند در تصویر را با نادیده گرفتن اطلاعات مرزی گم شده پیدا کند.


title: مدل کانتور فعال

text: در مقایسه با تکنیک‌های استخراج ویژگی کلاسیک، مدل مارها مزایای متعددی دارند:


title: مدل کانتور فعال

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


title: مدل کانتور فعال

text: یک مار قابل ارتجاع ساده با مجموعه ای از formula_1 نقطه formula_2 تعریف می‌شود که formula_3، ترم انرژی درونی انعطاف‌پذیر formula_4، و انرژی بر اساس لبه خارجی formula_5نامیده می‌شود. هدف از اصطلاح انرژی درونی، کنترل تغییرات ساخته شده در مار است و هدف از اصطلاح انرژی خارجی، کنترل اتصالات کانتور بر روی تصویر است. انرژی خارجی معمولاً ترکیبی از نیروهای مربوط به formula_6خود تصویر و نیروهایformula_7 محدود کننده معرفی شده توسط کاربر است.


title: مدل کانتور فعال

text: عملکرد انرژی مارها مجموع انرژی خارجی و انرژی داخلی آن است یا به عبارتی:


title: مدل کانتور فعال

text: انرژی داخلی مار از تداوم کانتور تشکیل شده‌است formula_9 و صافی کانتور formula_10.


title: مدل کانتور فعال

text: می‌توان به صورت زیر گسترش داد:


title: مدل کانتور فعال

text: که formula_13 و formula_14 وزن تعریف شده توسط کاربر هستند که حساسیت عملکرد انرژی داخلی به مقدار کشش در مار و مقدار انحنای مار را محاسبه می‌کند و به این ترتیب تعداد محدودیت‌های شکل مار را کنترل می‌کند. در عمل، وزن بزرگ formula_13 برای مدت زمان تداوم تغییرات در فاصله بین نقاط در کانتور را جبران می‌کند. وزن بزرگ formula_14 برای مدت زمان نرم شدگی، نوسانات در کانتور را جبران می‌کند و خطوط را به عنوان یک صفحه نازک عمل می‌کند.


title: مدل کانتور فعال

text: انرژی در تصویر برخی از ویژگی‌های تصویر است. این یکی از رایج‌ترین اصلاحات در روش‌های مشتق شده‌است. ویژگی‌ها در تصاویر و تصاویر خود را می‌توان در بسیاری از روش‌های مختلف پردازش شده‌است. برای یک تصویر formula_17، خطوط، لبه‌ها و انتهای موجود در تصویر، فرمول بندی کلی انرژی به دلیل تصویر است:


title: مدل کانتور فعال

text: جایی که، formula_19, formula_20, formula_21 وزن این ویژگی‌های برجسته هستند. وزن‌های بالاتر نشان می‌دهد که ویژگی برجسته سهم بیشتری نسبت به نیروی تصویر داشته‌است.


title: مدل کانتور فعال

text: تابع خط است که شدت تصویر است که می‌تواند به عنوان نشان داده شود


title: مدل کانتور فعال

text: نشانه ای از formula_19 تعیین خواهد کرد که آیا خط به خطوط تاریک یا خطوط نور جذب خواهد شد. برخی از کاهش صوت یا نویز ممکن است بر روی تصویر استفاده شود، و سپس عملکرد تابع خط به نظر می‌رسد


title: مدل کانتور فعال

text: لبه عملکردی بر اساس شیب تصویر است. یک اجرای این است


title: مدل کانتور فعال

text: یک مار که دور از کانتور مورد نظر قرار دارد ممکن است به اشتباه به حداقل محلی نزدیک شود. به منظور اجتناب از این کمینه‌های محلی، می‌توان از ادامه فضای مقیاس استفاده کرد. این با استفاده از یک فیلتر تاری در تصویر به دست می‌آید و به میزان محاسبه می‌شود که محاسبات پیشرفت می‌کند تا تناسب مار را اصلاح کند. عملکرد انرژی با استفاده از مقیاس فضا ادامه دارد


title: مدل کانتور فعال

text: جایی که formula_27 گاوسی با انحراف معیار formula_28 است. حداقل این تابع در قرار دارد formula_29 که لبه‌ها را بر اساس تعریف می‌کنند.


title: مدل کانتور فعال

text: انحنای سطوح سطح در یک تصویر تقریباً صاف می‌تواند برای تشخیص گوشه‌ها و انتهای یک تصویر استفاده شود. با استفاده از این روش، formula_30 تصویری که توسط با زاویه شیب


title: مدل کانتور فعال

text: بردارهای واحد در امتداد جهت گرادیان


title: مدل کانتور فعال

text: و بردارهای واحد عمود بر جهت گرادیان


title: مدل کانتور فعال

text: عملکرد خاتمه انرژی به صورت زیر نشان داده می‌شود:


title: مدل کانتور فعال

text: بعضی از سیستم‌ها، از جمله پیاده‌سازی مارها اصلی، برای تعامل کاربر برای هدایت مارها، نه تنها در موقعیت اولیه، بلکه در شرایط انرژی آنها، امکان‌پذیر است. چنین محدودیتی انرژی formula_36 می‌تواند به‌طور تعاملی هدایت مار به سمت یا دور از ویژگی‌های خاص مورد استفاده قرار گیرد.


title: مدل کانتور فعال

text: با توجه به یک حدس اولیه برای یک مار، عملکرد انرژی مار به‌طور تکراری کمینه می‌شود. به حداقل رساندن گرادیان کاهشی یکی از ساده‌ترین بهینه‌سازی‌ها می‌باشد که می‌تواند برای به حداقل رساندن انرژی مار استفاده شود. هر تکرار یک گام در شیب منفی نقطه با اندازه گام کنترل شده‌است formula_37 برای پیدا کردن مینیمم‌های محلی این به حداقل رساندن شیب نزولی می‌تواند به عنوان مثال پیاده‌سازی شود جایی که formula_39 نیروی مار است که توسط منفی گرادیان میدان انرژی تعریف می‌شود. با فرض وزن formula_41 و formula_42 ثابت با توجه به formula_43، این روش تکرار می‌تواند به ساده‌تر شدن باشد


title: مدل کانتور فعال

text: در عمل، تصاویر دارای وضوح محدود هستند و تنها می‌توانند بر روی گام‌های زمانی محدود formula_45قرار گیرند. به این ترتیب تقریبهای گسسته باید برای اجرای عملی مارها ساخته شود. عملکرد انرژی مارها می‌تواند با استفاده از نقاط گسسته مارها تقریباً محاسبه شود.


title: مدل کانتور فعال

text: به همین ترتیب، نیروهای مار را می‌توان تقریبی به عنوان


title: مدل کانتور فعال

text: تقریب گرادیان را می‌توان با استفاده از هر روش تقریبی محدود با توجه به "s", مانند اختلاف محدود.


title: مدل کانتور فعال

text: معرفی زمان گسسته به الگوریتم می‌تواند به روز رسانی‌هایی ارائه کند که مارها از حداقل‌ها جذب شده‌است؛ این بیشتر می‌تواند منجر به نوسانات در اطراف حداقل شود یا منجر به کمینه‌های مختلف یافت شود.


title: مدل کانتور فعال

text: این را می‌توان از طریق تنظیم گام زمانی که اندازه گام هرگز بیشتر از یک پیکسل به علت نیروهای تصویر است، اجتناب کنید. با این حال، در مناطق کم انرژی، انرژی‌های داخلی بر روی به روز رسانی تسلط دارند.


title: مدل کانتور فعال

text: به‌طور متناوب، نیروهای تصویر می‌توانند برای هر مرحله عادی شوند به طوری که تصویر فقط مارها را به صورت یک پیکسل به روز می‌کند. این را می‌توان به عنوان فرموله کرد:


title: مدل کانتور فعال

text: جایی که formula_49 نزدیک به مقدار اندازه پیکسل است. این مسئله از غلبه بر انرژی‌های داخلی که از تنظیم گام زمان جلوگیری می‌کند.


title: مدل کانتور فعال

text: انرژی در یک تصویر مداوم ممکن است عبور صفر داشته باشد که به عنوان یک پیکسل در تصویر وجود ندارد. در این مورد، یک نقطه در مار بین دو پیکسل که همسایه آن عبور صفر است، نوسان می‌کند. این نوسان را می‌توان با استفاده از درون یابی بین پیکسل به جای نزدیکترین همسایه اجتناب کرد.


title: مدل کانتور فعال

text: pseudocode زیر روش مار را به صورت کلی اجرا می‌کند:


title: مدل کانتور فعال

text: function v = snakes (I, v)


title: مدل کانتور فعال

text: end


title: مدل کانتور فعال

text: جایی که "generateImageEnergy (I)" را می‌توان به عنوان نوشته کرد function E_image = generateImageEnergy (I)


title: مدل کانتور فعال

text: روش پیش فرض مارها دارای محدودیت‌های مختلف و موارد گوشه ای است که همگرایی عملکرد ضعیفی دارد. چندین جایگزین وجود دارد که مسائل مربوط به روش پیش فرض را در بر می‌گیرد، هرچند با مشارکت خودشان. چند نفر در اینجا لیست شده‌اند.


title: مدل کانتور فعال

text: مدل مار مارپیچ گرادیان (GVF) دو مسئله را با مارها مطرح می‌کند: در دو بعد، فیلد بردار GVF، کارکرد انرژی را به حداقل می‌رساند


title: مدل کانتور فعال

text: جایی که formula_51 یک اصطلاح هموار کنترل شده‌است. این را می‌توان با حل معادلات اویل حل کرد


title: مدل کانتور فعال

text: این را می‌توان از طریق تکرار به سمت یک مقدار ثابت حل کرد.


title: مدل کانتور فعال

text: این نتیجه نیروی پیش فرض خارجی را جایگزین می‌کند.


title: مدل کانتور فعال

text: مشکل اصلی با استفاده از GVF نرم کردن ترم formula_51 است که موجب گرد کردن لبه‌های کنتور می‌شود. کاهش ارزش formula_51 گرد کردن را کاهش می‌دهد اما مقدار صاف کردن را تضعیف می‌کند.


title: مدل کانتور فعال

text: مدل بالون این مشکلات را با مدل کنتور پیش فرض فعال شرح می‌دهد: مدل بالون یک دوره تورم را به نیروهایی که بر روی مار اعمال می‌کنند معرفی می‌کند


title: مدل کانتور فعال

text: که formula_60 بردار واحد معمولی منحنی در formula_61 و formula_62 بزرگی نیرو است. formula_62 باید بزرگی یکسانی به عنوان formula_64 ضریب نرمالیزه تصویر داشته باشد و در ارزش از formula_64 کمتر باشد برای مجاز کردن نیروها در لبه‌های تصویر برای برانگیختن نیروی تورم. سه مسئله از استفاده از مدل بالون به وجود آمده‌است:


title: مدل کانتور فعال

text: مدل مار نفوذی حساسیت مارها به نویز، کلفت و انسداد را مورد توجه قرار می‌دهد. این یک اصلاح ویژگی‌های و محدودیت کارتونی آن را به کار می‌گیرد و شامل دانش شکل است. عملکرد تصویر پیش فرض تصویر formula_66 جایگزین شده‌است با


title: مدل کانتور فعال

text: که formula_68 E_i براساس یک کارکرد مامفورد-شاه اصلاح شده‌است


title: مدل کانتور فعال

text: که formula_70 یک مدل صاف و از تصویر formula_71 با دامنه formula_72. مرزها formula_73 تعریف شده‌اند


title: مدل کانتور فعال

text: که formula_75 عملکرد پایه‌های B-اسپلین درجه دوم و formula_76 نقاط کنترل اسپلین هستند. محدودیت کارتونی اصلاح شده به عنوان formula_77 و تنظیمات معتبر از formula_68. تابع formula_79 بر اساس آموزش از تصاویر باینری از خطوط مختلف است و توسط پارامتر formula_80. برای یک توزیع گاوسی از بردارهای نقطه کنترل z formula_81 با میانگین بردار نقطه کنترل formula_82 و ماتریس کواریانس formula_83 سیگما، انرژی درجه دوم که با احتمال گاوسی مطابقت دارد


title: مدل کانتور فعال

text: استحکام این روش به قدرت داده‌های آموزشی و نیز تنظیم عملکرد مامورد-شاه تغییر یافته بستگی دارد. مارهای مختلف نیاز به مجموعه داده‌های مختلف آموزش و تنظیمات دارند.


title: مدل کانتور فعال

text: کانتور فعال هندسی، یا کانونی فعال ژئودزیک (GAC) یا کانونی‌های فعال کانونی، ایده‌هایی را از تکامل یقین ایدل استفاده می‌کند. کانتورها بسته به تشخیص اشیاء در تصویر تقسیم و ادغام می‌شوند. این مدلها عمدتاً از مجموعه‌های سطح الهام گرفته شده‌است و به‌طور گسترده در استفاده شده‌است. به عنوان مثال، معادله تکاملی منحنی زاویه گرادیان GAC است


title: مدل کانتور فعال

text: که formula_86 یک عمل متوقف است، "c" یک ضریب لاگرانژ است، formula_87 منحنی و formula_88 واحد نرمال داخلی است. این شکل خاص از معادله تکامل منحنی تنها به سرعت در جهت نرمال وابسته است؛ بنابراین، با قرار دادن تابع تنظیم سطح، می‌توان آن را به صورت معادل در یک فرم یورلین بازنویسی کرد formula_89 به آن به شرح زیر است


title: مدل کانتور فعال

text: این اصلاح ساده و در عین حال قدرتمند سطح را قادر می‌سازد خطوط فعال برای مرتب‌سازی تغییرات توپولوژی در طی تکامل منحنی نزول شیب. این پیشرفت فوق‌العاده ای را در زمینه‌های مرتبط الهام داده‌است و با استفاده از روش‌های عددی برای حل دوباره تعریف سطح، اکنون به عنوان روش تعیین سطح شناخته می‌شود. وانگ و چان استدلال می‌کنند که تمام معادلات تکاملی منحنی باید مستقیماً توسط آن حل شود.


title: مدل کانتور فعال

text: تحولات اخیر در کانتورهای فعال در زمینه مدل سازی خواص منطقه ای، ترکیب قالب‌های انعطاف‌پذیر و تقسیم‌بندی کاملاً اتوماتیک و غیره.


title: مدل کانتور فعال

text: مدل‌های آماری که ترکیبی از ویژگی‌های محلی و جهانی هستند، توسط لانکتون و آلن تاننبام فرموله شده‌اند.


title: مدل کانتور فعال

text: برش گراف یا حداکثر جریان / دقیقه برش یک روش عمومی برای به حداقل رساندن یک شکل خاص انرژی به نام میدان مغناطیسی مارکوف (MRF) است. روش تقسیم گراف نیز به تقسیم‌بندی تصویر اعمال شده‌است و گاهی اوقات از روش تعیین سطح در زمانی که مدل MRF استفاده می‌کند یا می‌تواند توسط MRF تقریب یابد، بهتر عمل می‌کند.


title: رزیتا شرف جهان

text: رزیتا شرف جهان متولد ۱۳۴۱، در تهران مجسمه‌ساز، نقاش و ویدئو آرتیست است. او فارغ‌التحصیل هنرستان در رشته مجسمه‌سازی است و کارشناسی نقاشی را از دانشکده هنرهای زیبای دانشگاه تهران دریافت کرده‌است. او که بنیانگذار و مدیر گالری طراحان آزاد است، یکی از پیش‌کسوتان گالری داری در ایران است که تأثیر بسزایی در کشف برخی هنرمندان دهه هشتاد داشته‌است. همچنین از او به عنوان یکی از هنرمندان معاصر زن تأثیرگذار نام می‌برند. آثار او در مجموعه‌هایی چون موزه بیلوتی ایتالیا نگهداری می‌شود.


title: رزیتا شرف جهان

text: شرف جهان در سال ۱۳۵۶ وارد هنرستان شد و در رشته مجسمه‌سازی تحصیل کرد. بعد از فارغ‌التحصیلی از هنرستان، به خاطر انقلاب فرهنگی، نتوانست وارد دانشگاه شود. با چند نفر از دوستان، حدود ۳ سالی از طریق کلاس‌های آزاد زیر نظر استادانی چون یعقوب عمامه‌پیچ و عربعلی شروه، کار خود را ادامه دادیم تا دچار وقفه نشویم. در هنرستان جزو شاگردان برجسته دوره خودم بودم. دانشگاه‌ها که باز شد، گزینش با وسواس زیادی انجام می‌شد. سال اول از لحاظ علمی قبول شدم، اما نتوانستم وارد دانشگاه شوم و سال بعد در رشته نقاشی هنرهای زیبا پذیرفته شدم.


title: رزیتا شرف جهان

text: او در سال ۱۳۷۷ همزمان با تشکیل گروه هنری سی، کارگاه شخصی خود را به فضایی برای نمایش آثار خود و دیگر همکارانش در گروه هنری سیی اختصاص داد و گالری طراحان آزاد را به همراه محسن نبی زاده به صورت غیررسمی تأسیس کرد. سال ۱۳۷۸ با دریافت مجوز رسمی از وزارت ارشاد، گالری طراحان آزاد رسماً شروع به کار کرد. او در مصاحبه اش با روزنامه ایران می‌گوید: محل فعلی گالری را پدرم برای کارگاه در اختیارم گذاشت. بیش از هرچیز نیاز به چنین مراوداتی داشتم، نه تنها من بلکه این نیاز باقی دوستانم نیز بود که محلی برای خودمان داشته باشیم تا بتوانیم، بحث کنیم، کار ببینیم و کارهای خودمان را نشان بدهیم.


title: رزیتا شرف جهان

text: شرف جهان که خود از هنرمندان شاخص زمان خود بود، توجه خود را معطوف به قالب‌هایی کرد که برای دیگر گالری دارها چندان قابل توجه نبود: با شروع نمایشگاه‌های مفهومی در موزه، افرادی به ما مراجعه می‌کردند که در حوزه «نیو مدیا» مثل ویدئو، صدا، اینستالیشن و غیره فعال بودند که حدود ۸ گالری فعال آن زمان به این هنرمندان وقت نمایشگاه نمی‌دادند؛ چراکه هدفشان نشان‌دادن نقاشی بود. اما او که خود علاقه‌مند به ویدئو، اینستالیشن، پرفورمنس آرت و قالب‌های نویی از این دست بود، از این قالب‌ها استقبال کرد. این رویه، گالری طراحان آزاد را به یکی از نگارخانه‌های پیشرو بعد از انقلاب تبدیل کرد.


title: رزیتا شرف جهان

text: شرف جهان همواره معتقد بود که زنان و مردان برابرند:


title: رزیتا شرف جهان

text: نمی‌خواستم بپذیرم کارهایی را که پسرها انجام می‌دهند، نمی‌توانم انجام بدهم. من هم‌زمانی می‌خواستم همانند مردها باشم. حتی مجسمه‌سازی را نیز به همین دلیل انتخاب کردم. سودای این را داشتم تا مجسمه‌های بزرگ بسازم یا سنگتراشی کنم. در نقاشی هم به این شکل، تلاش می‌کردم با ضربه قلم‌های پر قدرت، از هر چه که تصور می‌کردم جامعه مردسالار برای زن تعریف کرده، خودم را آزاد کنم. این مسئله به مرور اصلاح شد؛ باید می‌پذیرفتم که من زن هستم با خصوصیات و ویژگی‌های زنانه، ویژگی‌هایی که ارزشند، ضد ارزش نیستند. به هرحال این موضوع را در آثارم می‌توانید مشاهده کنید.


title: رزیتا شرف جهان

text: یکی از مهمترین آثار او، تابلویی ست که تصویری از بهروز وثوقی را نشان می‌دهد. باوند بهپور منتقد هنری دربارهٔ این اثر می‌نویسد:


title: رزیتا شرف جهان

text: شرف جهان علاوه بر فعالیت‌های هنری اش، مدرس دانشگاه نیز هست و در چندین نهاد عضویت فعال دارد:


title: رزیتا شرف جهان

text: گزیده نمایشگاه‌های انفرادی


title: رزیتا شرف جهان

text: شرکت در بیشتر از ۷۰ بینال، جشنواره و نمایشگاه گروهی نقاشی و ویدئو آرت در ایران، جمهوری چک، اتریش، ترکیه، ایتالیا، ژاپن، ارمنستان، فرانسه، هند، آلمان و کاناداتعدادی از آثار رزیتا شرف جهان:


title: پولاریس AM-FIB

text: قایق Polaris AM-FIB یک قایق پرنده آبی ایتالیایی است که توسط پولاریس موتور طراحی و تولید شده‌است. این هواپیما در سال ۲۰۰۳ معرفی شد و به عنوان یک هواپیمای آماده پرواز به پرواز درآمد.


title: پولاریس AM-FIB

text: خدمه: یکی


title: پولاریس AM-FIB

text: گنجایش: یک نفر


title: پولاریس AM-FIB

text: ارتفاع: ۱۱.۱۵ متر (۳۶ فوت ۷ اینچ)


title: پولاریس AM-FIB

text: مساحت بال: ۱۹.۶ متر مربع (۲۱۱ فوت مربع)


title: پولاریس AM-FIB

text: وزن خالی: ۲۳۹ کیلوگرم (۵۲۷ پوند)


title: پولاریس AM-FIB

text: وزن ناخالص: ۴۰۶ کیلوگرم (PC پوند)


title: پولاریس AM-FIB

text: ظرفیت سوخت: ۴۰ لیتر (۸.۸ گالن، ۱۱ گالن آمریکا)


title: پولاریس AM-FIB

text: پروانه: ۳ پره


title: پولاریس AM-FIB

text: حداکثر سرعت: ۸۰ کیلومتر بر ساعت (۵۰ مایل بر ساعت؛ ۴۳ گره)


title: گو دئوک مو

text: گو دئوک مو (۶۹۹ - ؟) پسر سوم بوجانگ آخرین پادشاه گوگوریو و مؤسس سلسله گوگوریو کوچک در سال ۶۹۹ میلادی بود.


title: قراردادهای فراخوانی اکس۸۶

text: این مقاله توصیف قراردادهای فراخوانی (به انگلیسی: calling conventions) مورد استفاده، در هنگام برنامه‌نویسی میکروپروسسورهای معماری اکس۸۶ است.


title: قراردادهای فراخوانی اکس۸۶

text: قراردادهای فراخوانی، رابط کاربری کد فراخوانی شده را توصیف می‌کند:


title: قراردادهای فراخوانی اکس۸۶

text: این دقیقاً با تخصیص دادنِ اندازه‌ها و فرمت‌ها به انواع زبان برنامه‌نویسی مرتبط است. یکی دیگر از موضوع‌های خیلی مرتبط برانگیختگی نام (Name mangling) است، که تعیین می‌کند که چگونه نمادها در کد به نماد مورد استفاده در لینکر مرتبط و تبدیل شوند. قراردادهای فراخوانی، نمایندگی‌های نوع، و برانگیختگی نام، همه بخشی از آنچه که به عنوان یک رابط دودویی نرم‌افزار شناخته می‌شود هستند.


title: قراردادهای فراخوانی اکس۸۶

text: اغلب تفاوت‌های ظریفی در نحوه پیاده‌سازی این قراردادها در کامپایلر‌های مختلف وجود دارد، بنابراین اغلب سخت است که کدی را که توسط کامپایلرهای مختلف کامپایل شده‌است نمایش دهیم. از سوی دیگر، قراردادهایی که به عنوان استاندارد API (مانند stdcall) مورد استفاده قرار می‌گیرند، به‌طور خیلی یکسان پیاده‌سازی می‌شوند.


title: قراردادهای فراخوانی اکس۸۶

text: قبل از میکرو رایانه‌ها، تولیدکننده دستگاه، به‌طور کلی یک سیستم عامل و کامپایلر‌هایی برای چند زبان برنامه‌نویسی ارائه می‌داد. قرارداد (های) فراخوانی برای هر پلت فرم، توسط ابزار برنامه نویسیِ سازنده آن تعریف می‌شود.


title: قراردادهای فراخوانی اکس۸۶

text: میکرو رایانه‌های اولیه قبل از Commodore Pet و Apple II به‌طور کلی بدون سیستم عامل یا کامپایلرها عرضه می‌شدند. رایانه شخصی IBM با سیستم عامل دیسک (DOS) (پیشگام مایکروسافت برای ویندوز) عرضه شد، اما بدون کامپایلر. تنها سخت‌افزار استاندارد برای ماشین‌های سازگار با رایانه شخصی IBM توسط پردازنده‌های اینتل (۸۰۸۶، ۸۰۳۸۶) تعریف شد که سخت‌افزار تحت اللفظی IBM نامیده می‌شد. سپس فرمت‌های سخت‌افزاری و تمامی استانداردهای نرم‌افزاری (ذخیره برای قراردادهای فراخوانی BIOS) برای رقابت در بازار عرضه شد.


title: قراردادهای فراخوانی اکس۸۶

text: بسیاری از شرکت‌های نرم‌افزارهای مستقل، سیستم عامل‌ها و کامپایلرهایی برای بسیاری از زبان‌های برنامه‌نویسی و برنامه‌های کاربردی ارائه می‌دهند. بسیاری از طرح‌های مختلف فراخوانی کردن توسط شرکت‌ها پیاده‌سازی شده‌است که اغلب متقابلاً منحصر به فرد، بر اساس الزامات مختلف، شیوه‌های تاریخی و خلاقیت برنامه‌نویس هستند.


title: قراردادهای فراخوانی اکس۸۶

text: پس از انعطاف‌پذیری بازار IBM، سیستم عامل‌های و ابزارهای برنامه‌نویسی مایکروسافت (با قراردادهای متفاوت) غالب بودند، در حالی که شرکت‌های رده دوم مثل Borland و Novell و پروژه‌های منبع بازمانند GCC هنوز استانداردهای خود را حفظ کردند. در نهایت مقررات مربوط به قابلیت همکاری بین فروشندگان و محصولات به تصویب رسید، ساده کردن مشکل انتخاب یک قرارداد قابل قبول بود.


title: قراردادهای فراخوانی اکس۸۶

text: در این قراردادها، فراخوانی کننده، آرگومان‌ها را از پشته پاک می‌کند.


title: قراردادهای فراخوانی اکس۸۶

text: cdecl (که بر پایه تعریف C است) یک قرارداد فراخوانی است که از زبان برنامه‌نویسی C سرچشمه می‌گیرد و توسط بسیاری از کامپایلرهای C برای معماری x86 استفاده می‌شود. در cdecl، آرگومان‌های تابع به پشته منتقل می‌شوند. مقادیر اعداد صحیح و آدرس‌های حافظه به وسیلهٔ ثبات (رجیستر) EAX و مقادیر اعشاری در ثبّات ST0 x87 بازگردانده می‌شوند. ثبّات‌های EAX, ECX، و EDX ذخیره شده توسط فراخوانی‌کننده (به انگلیسی: caller-saved) و بقیه ذخیره شده توسط فراخوانی شونده (به انگلیسی: callee-saved) هستند. ثبّات‌های اعشاری x87 T ST0 تا ST7، هنگام فراخوانی یک تابع جدید باید خالی (برداشته شده یا آزاد) باشند و ST1 تا ST7 باید در هنگام خروج از یک تابع خالی باشد. ST0 نیز باید زمانی خالی باشد که برای بازگشت مقدار مورد استفاده قرار نگیرد.


title: قراردادهای فراخوانی اکس۸۶

text: در چارچوب زبان برنامه‌نویسی C، آرگومان‌های تابع بر روی پشته از راست به چپ قرار می‌گیرند، یعنی اول آخرین آرگومان قرار داده می‌شود. در لینوکس، GCC استانداردهای "واقعی را" برای قراردادهای فراخوانی تنظیم می‌کند. از زمان GCC نسخه ۴٫۵، هنگام فراخوانی یک تابع، پشته باید به یک مرز ۱۶ بایت برسد (نسخه‌های قبلی فقط یک تراز ۴ بایت نیاز داشتند)


title: قراردادهای فراخوانی اکس۸۶

text: قطعه کد مرجعِ C زیر را در نظر بگیرید:  int callee(int, int, int);


title: قراردادهای فراخوانی اکس۸۶

text: int caller(void) return callee(1, 2, 3) + 5; caller: push ebp ; save old call frame mov ebp, esp ; initialize new call frame push 3 push 2 push 1 call callee ; call subroutine 'callee' add eax, 5 ; modify subroutine result  ; compilers will usually produce the following instead, mov esp, ebp ; most calling conventions dictate ebp be callee-saved, pop ebp ; restore old call frame ret ; return


title: قراردادهای فراخوانی اکس۸۶

text: برخی تغییرات در بیان cdecl, به ویژه در نحوه بازگشت مقادیر وجود دارد. در نتیجه، برنامه‌های کامپایل شده توسط x86 با سیستم عامل‌های مختلف یا کامپایلرهای مختلف می‌تواند ناسازگار باشد، حتی اگر آن‌ها هر دو از قراردادهای "cdecl" استفاده کنند و به محیط زیر وابسته نباشند. بعضی از کامپایلرها ساختار داده‌های ساده را با طول ۲ ثبّات یا کمتر در جفت ثبّات EAX: EDX برمی‌گردانند، و ساختارهای بزرگتر و اشیاء کلاس‌ها که نیاز به رفتار ویژه توسط رسیدگی کنندهٔ استثنا دارند (مانند سازندهٔ تعریف شده، تخریب‌کننده یا اختصاص دادن) به حافظه برگرداننده می‌شوند. برای انتقال "در حافظه"، فراخوانی‌کننده حافظه را اختصاص می‌دهد و یک اشاره گر به آن را به عنوان پارامتر پنهان می‌دهد؛ فراخوانی شده حافظه را پر می‌کند و اشاره گر را برمی‌گرداند (هنگام بازگشت اشاره گر پنهان برداشته می‌شود).


title: قراردادهای فراخوانی اکس۸۶

text: در لینوکس / GCC، مقادیر اعداد اعشاری هشت بایتی(double) / چهار بایتی(float) باید به وسیلهٔ شبه پشتهٔ x87 روی پشته قرار بگیرند. مثل این:  sub esp, 8 ; make room for the double fld [ebp + x] ; load our double onto the floating point stack fstp [esp] ; push our double onto the stack call funct add esp, 8 قراردادهای فراخوانی cdecl معمولاً قرارداد فراخوانی پیش فرض برای کامپایلر‌های x86 C است، اگر چه بسیاری از کامپایلرها مجهز به گزینه‌هایی برای تغییر خودکار قراردادهای فراخوانیِ استفاده شده هستند. برای تعریف کردن دستی تابع به عنوان cdecl، برخی نحو زیر را پشتیبانی می‌کند:


title: قراردادهای فراخوانی اکس۸۶

text: return_type _cdecl func_name();


title: قراردادهای فراخوانی اکس۸۶

text: این مشابه cdecl است در آن آرگومان‌ها از راست به چپ در استک قرارداده می‌شوند. ECX, EAX و EDX ذخیره نمی‌شوند. اندازه لیست پارامترها در doublewords به AL منتقل می‌شود.


title: قراردادهای فراخوانی اکس۸۶

text: Syscall قرارداد فراخوانی استاندارد برای OS / 2 API سی و دو بیت (۳۲ بیت) است.


title: قراردادهای فراخوانی اکس۸۶

text: آرگومان‌ها از راست به چپ در پشته قرارداده می‌شوند. سه آرگومان اول (چپ‌ترین) در EAX, EDX و ECX منتقل می‌شود و بیشتر از چهار آرگومان اعشاری در ST0 از طریق ST3 منتقل می‌شود، اگرچه فضای آن‌ها در لیست آرگومان‌ها بر پشته رزرو می‌شود. نتایج در EAX یا ST0 برگردانده می‌شوند. ثبّات‌های EBP, EBX, ESI، و EDI حفظ می‌شوند.


title: قراردادهای فراخوانی اکس۸۶

text: Optlink توسط کامپایلر IBM VisualAge استفاده می‌شود.


title: قراردادهای فراخوانی اکس۸۶

text: در این قراردادها، تابع فراخوانی شده، آرگومان‌ها را از پشته پاک می‌کند. تشخیص توابعی ک این قراردادها را استفاده می‌کنند در کد ASM آسان است زیرا آن‌ها پس از بازگشت، پشته را باز می‌کنند. دستور x86 ret به پارامتر ۱۶ بیتی اختیاری اجازه می‌دهد که بعد از بازگشت به فراخوانی کننده، تعداد بایت‌های مشخصی از پشته را آزاد کند. نمونه ای از این کد به صورت زیر است:


title: قراردادهای فراخوانی اکس۸۶

text: بر اساس قرارداد فراخوانی زبان برنامه‌نویسی Borland Pascal، پارامترها بر روی پشته از چپ به راست (مخالف cdecl) قرار می‌گیرند و فراخوانی شده مسئول حذف آن‌ها از پشته است.


title: قراردادهای فراخوانی اکس۸۶

text: بازگشت نتیجه به شرح زیر است:


title: قراردادهای فراخوانی اکس۸۶

text: این قرارداد فراخوانی در APIهای ۱۶ بیتی زیر رایج بود:


title: قراردادهای فراخوانی اکس۸۶

text: OS / 2 1.x، مایکروسافت ویندوز 3.x و Borland Delphi نسخه 1.x. نسخه‌های مدرن ویندوز API از stdcall استفاده می‌کنند، که هنوز هم فراخوانی شده پشته را طبق قرارداد پاسکال را ذخیره می‌کند، اما اکنون پارامترها از راست به چپ قرارداده می‌شوند.


title: قراردادهای فراخوانی اکس۸۶

text: قرارداد فراخوانی stdcall تغییری در قرارداد فراخوانی پاسکال است که در آن فراخوانی شده مسئول پاک کردن پشته است، اما پارامترها در پشته به ترتیب از راست به سمت چپ، همان‌طور که در قرارداد فراخوانی _cdecl قرار دارد، قرار می‌گیرند. ثبّات‌های EAX, ECX و EDX برای استفاده درون تابع تعیین می‌شوند. مقادیر بازگشتی در ثبّات EAX ذخیره می‌شوند.


title: قراردادهای فراخوانی اکس۸۶

text: stdcall استاندارد برای مایکروسافت Win32 API و Open Watcom CPP است.


title: قراردادهای فراخوانی اکس۸۶

text: قرارداد مایکروسافت or GCC fastcall__ (معروف به msfastcall__) دو آرگومان اول (که از چپ به راست به دست می‌آید) را می‌دهد که در ECX و EDX قرار می‌گیرند. آرگومان‌های باقی مانده راست به چپ در پشته قرار می‌گیرند. هنگامی که کامپایلر MS برای IA64 یا AMD64 کامپایل می‌شود، کلمه کلیدیfastcall__ را نادیده می‌گیرد و به جای آن یک قرارداد فراخوانی ۶۴ بیتی را استفاده می‌کند.


title: قراردادهای فراخوانی اکس۸۶

text: در ویژوال استودیو ۲۰۱۳، مایکروسافت قرارداد فراخوانی vectorcall__ پاسخگو به نگرانی‌های توسعه دهندگان کد در مورد کارآییِ بازی‌ها، گرافیک، ویدئو / صدا است. برای کدهای IA-32 و x64، قرارداد vectorcall__ شبیه fastcall__ و قرارداد فراخوانی اصلی x64 است، اما آن‌ها را با پشتیبانی از پاس دادن آرگومان‌های برداری با استفاده از ثبّاتهای SIMD گسترش می‌دهد. برای x64، زمانی که هر یک از شش آرگومان اول، از نوع برداری (float ,double __m128 , __m256 و غیره) باشند، از طریق ثبّاتهای XMM / YMM مربوطه منتقل می‌شوند. به‌طور مشابه برای IA-32، حداکثر تا ۶ ثبّاتها XMM / YMM به صورت تکراری برای آرگومان‌ها از نوع بردار از چپ به راست بدون در نظر گرفتن موقعیت قرار می‌گیرد. علاوه بر این، vectorcall__ پشتیبانی کردن از انتقال مجموعه ای از مقادیر همگن بردار (HVA) را اضافه کرد، که از نوع ترکیبی است که شامل بیش از چهار نوع بردار یکسان است، با استفاده از شش ثبّات یکسان. هنگامی که ثبّاتها برای آرگومان‌های برداری اختصاص داده می‌شوند، ثبّاتهای استفاده نشده به آرگومان‌های HVA از چپ به راست بدون توجه به موقعیت اختصاص داده می‌شوند. نتیجه نوع برداری و مقادیر HVA با استفاده از چهار ثبّات اول XMM / YMM بازگرداننده می‌شود.


title: قراردادهای فراخوانی اکس۸۶

text: ارزیابی آرگومان‌ها از چپ به راست، سه آرگومان را از طریق EAX, EDX, ECX منتقل می‌کند. آرگومان‌های باقی مانده در پشته از چپ به راست قرارداده می‌شوند. این قرارداد فراخوانیِ پیش فرضِ کامپایلر ۳۲ بیتی دلفی است، جایی که به عنوان ثبّات شناخته می‌شود. GCC این قرارداد فراخوانی را با گزینه "regparm = ۳ پشتیبانی می" کند. این به وسیلهٔ هسته لینوکس روی i386 از نسخه ۲٫۶٫۲۰ (منتشر شده در فوریه ۲۰۰۷) استفاده می‌شود. این قرارداد فراخوانی نیز توسط C ++ Builder Embarcadero استفاده می‌شود، جایی که "fastcall__" نامیده می‌شود. در این کامپایلر، "fastcall" مایکروسافت را می‌توان به عنوان "msfastcall__ استفاده کرد".


title: قراردادهای فراخوانی اکس۸۶

text: Watcom از کلمه کلیدی "fastcall__" پشتیبانی نمی‌کند مگر این که نام مستعار آن را null کند. قرارداد فراخوانی ثبّات ممکن است توسط سوئیچ خط فرمان انتخاب شود. (با این حال، IDA از "fastcall__" برای یکنواخت کردن استفاده می‌کند)


title: قراردادهای فراخوانی اکس۸۶

text: تا ۴ ثبّات به ترتیب به آرگومان‌های eax, edx, ebx, ecx اختصاص داده می‌شوند. آرگومان‌ها از چپ به راست به ثبّاتها اختصاص داده می‌شوند. اگر هر آرگومان نتواند به یک ثبّات تخصیص داده شود (می‌گویند خیلی بزرگ است)، آن و تمام آرگومان‌های بعدی به پشته اختصاص داده می‌شوند. آرگومان‌هایی که به پشته اختصاص داده می‌شوند از راست به چپ قرار می‌گیرد. نام‌ها با اضافه کردن پسوند _ تغییر می‌کنند.


title: قراردادهای فراخوانی اکس۸۶

text: توابع متغیر بر اساس قرارداد فراخوانی به پشتهٔ Watcom سقوط می‌کنند.


title: قراردادهای فراخوانی اکس۸۶

text: کامپایلر Watcom C / C ++ نیز از دستور pragma aux# که به کاربر اجازه می‌دهد که خودشان قرارداد فراخوانی خود را مشخص کنند. همان‌طور که در کتابچه راهنمای آن آمده‌است: «تعداد کمی از کاربران احتمالاً به این روش نیاز دارند، اما اگر لازم باشد، می‌تواند یک نجات دهنده باشد».


title: قراردادهای فراخوانی اکس۸۶

text: اولین چهار پارامتر عدد صحیح در ثبّاتهای، ebx, ecx و edx منتقل می‌شوند. پارامترهای اعشاری به پشته اعشاری منتقل می‌شوند - ثبّاتهای st0، st1، st2، st3، st4، st5 و st6. پارامترهای ساختاری همیشه به پشته منتقل می‌شوند. پارامترهای اضافی پس از خروج ثبّاتها به پشته منتقل می‌شوند. مقادیر عدد صحیح در eax، نشانگرها در edx و انواع اعداد اعشاری در st0 بازگرداننده می‌شوند.