payamvha/North_RAG huggingface dataset:
توپول ام (Topol-M) روسی با سرعت بیشینه ۷۳۲۰ متر بر ثانیه سریعترین موشک بالستیک در خدمت در جهان است. موشک کروز. بمب پرنده V1 که اولین موشک کروز جهان بود در طول جنگ جهانی دوم با موفقیت رهگیری شد، اما این موضوع مفهوم موشک کروز را کاملاً بی‌فایده نکرد. پس از جنگ، ایالات متحده تعداد کمی از موشک‌های کروز مجهز به سلاح هسته‌ای را در آلمان مستقر کرد، اما این موشک‌ها مفید نبودند. ادامه تحقیقات در مورد نسخه‌های بسیار دوربردتر و سریع‌تر منجر به ساخت SM-64 Navaho توسط آمریکا و موشک‌های کروز Burya و Buran توسط شوروی شد.
و موشک‌های کروز Burya و Buran توسط شوروی شد. با این حال، این موشک‌ها تا حد زیادی توسط موشک قاره‌پیما منسوخ شدند و هیچ‌کدام به صورت عملیاتی مورد استفاده قرار نگرفتند. توسعه‌های کوتاه‌برد به‌عنوان سامانه‌های تهاجمی بسیار دقیق، مانند موشک آمریکایی تاماهاوک و موشک روسی Kh-55، به‌طور گسترده مورد استفاده قرار گرفته‌اند. موشک‌های کروز به‌طور کلی به سلاح‌های زیرصوت یا مافوق صوت تقسیم می‌شوند - شکار موشک‌های کروز مافوق صوتی مانند براهموس (هند، روسیه) در آسمان دشوار است، اما مزیت موشک‌های کروز زیرصوت سبک‌تر و
دشوار است، اما مزیت موشک‌های کروز زیرصوت سبک‌تر و ازران‌تر بودن آنهاست که امکان شلیک بیشتر آنها را فراهم می‌کند. موشک‌های کروز عموماً با عملیات‌های حمله زمینی مرتبط هستند، اما نقش مهمی به عنوان سلاح‌های ضد کشتی نیز دارند. آنها عمدتاً از هوا، دریا یا سکوهای زیردریایی در هر دو نقش پرتاب می‌شوند، اگرچه پرتابگرهای زمینی نیز وجود دارند. موشک ضدکشتی و ضد زیردریایی. یکی دیگر از پروژه‌های بزرگ توسعه موشکی آلمان، موشک‌های کلاس ضد کشتی بود (مانند فریتس ایکس و هنشل ۲۹۳) که برای جلوگیری از هرگونه تلاش برای تهاجم بین
که برای جلوگیری از هرگونه تلاش برای تهاجم بین کانالی طراحی شده بود. با این حال، انگلیسی‌ها توانستند این سیستم‌ها را با پارازیت کردن ردیاب‌های رادیویی بی‌استفاده کنند و موشک‌های دارای هدایت سیمی آلمان‌ها نیز تا قبل از عملیات D-day آماده نشده بودند. پس از جنگ، کلاس ضد کشتی به آرامی توسعه یافت و در دهه ۱۹۶۰ با معرفی موشک‌های کروز با موتور جت یا راکتی که به نام «sea-skimmers» شناخته می‌شوند، به کلاس اصلی تبدیل شد. این موشک‌ها در طول جنگ فالکلند معروف شدند، زمانی که یک موشک اگزوسه آرژانتین یک ناوشکن نیروی
زمانی که یک موشک اگزوسه آرژانتین یک ناوشکن نیروی دریایی بریتانیا را از کار انداخت. تعدادی موشک ضد زیردریایی نیز وجود دارد؛ این سیستم‌ها معمولاً از موشک برای رساندن سیستم تسلیحاتی دیگری مانند اژدر یا خرج عمقی به محل زیردریایی استفاده می‌کنند، در این مرحله سلاحِ دیگر، مرحله زیر آب از مأموریت را انجام می‌دهد. موشک ضدتانک. در پایان جنگ جهانی دوم، همه نیروها به‌طور گسترده راکت‌های هدایت نشده را با استفاده از کلاهک‌های ضد تانک با قابلیت انفجار قوی به عنوان سلاح اصلی ضد تانک خود معرفی کردند. با این حال، این
اصلی ضد تانک خود معرفی کردند. با این حال، این راکت‌ها برد مفید محدودی در حدود ۱۰۰ متر داشتند و آلمانی‌ها به دنبال گسترش این برد با استفاده از موشک با استفاده از هدایت سیمی بودند (موشک X-7). پس از جنگ، این سیستم در اواخر دهه ۱۹۵۰ به کلاس طراحی اصلی تبدیل شد و تا دهه ۱۹۶۰ عملاً به عنوان تنها سیستم ضدتانک غیر تانکی در استفاده عمومی تبدیل شد. در طول جنگ یوم کیپور سال ۱۹۷۳ بین اسرائیل و مصر، موشک ضد تانک قابل حمل توسط انسان ۹کی۱۱ مالیوتکا (معروف به "Sagger") در برابر تانک‌های اسرائیلی بسیار کارآمد ظاهر شدند. در
تانک‌های اسرائیلی بسیار کارآمد ظاهر شدند. در حالی که سایر سیستم‌های هدایت آزمایش شده‌اند، قابلیت اطمینان ساده هدایت سیمی به این معنی است که این روش، روش اصلی کنترل موشک‌های ضد تانک در آینده نزدیک باقی خواهد ماند. موشک‌های ضد تانک را می‌توان از هواپیما، وسایل نقلیه و در مورد سلاح‌های کوچکتر توسط نیروهای زمینی پرتاب کرد. موشک‌های سطح به هوا و زیر سطح به هوا. موشک ضدهوایی. تا سال ۱۹۴۴، نیروهای هوایی ایالات متحده و بریتانیا ناوگان هوایی عظیمی را بر فراز اروپای اشغالی اعزام کردند و فشار بر نیروهای جنگنده
اشغالی اعزام کردند و فشار بر نیروهای جنگنده شبانه‌روزی لوفت‌وافه را افزایش دادند. آلمانی‌ها مشتاق بودند که نوعی سیستم ضدهوایی مفید زمینی را به کار گیرند. چندین سیستم در حال توسعه بودند، اما هیچ‌کدام قبل از پایان جنگ به وضعیت عملیاتی نرسیده بودند. نیروی دریایی ایالات متحده نیز تحقیقات موشکی را برای مقابله با تهدید کامی‌کازه آغاز کرد. در سال ۱۹۵۰، سیستم‌های مبتنی بر این تحقیقات اولیه شروع به خدمت عملیاتی کردند، از جمله MIM-3 Nike Ajax ارتش ایالات متحده و "3T" نیروی دریایی آمریکا (Talos, Terrier, Tartar) که
نیروی دریایی آمریکا (Talos, Terrier, Tartar) که خیلی زود توسط S-25 Berkut شوروی و S-75 Dvina فرانسوی و بریتانیایی دنبال شد. سلاح‌های ضدهوایی تقریباً برای هر سکوی پرتاب ممکن وجود دارد، از سیستم‌های پرتاب سطحی و پرتابگرهای عظیم تا خودکششی یا سوار بر کشتی و سیستم‌های قابل حمل توسط انسان. موشک‌های زیرزمینی معمولاً از زیر آب پرتاب می‌شوند (معمولاً از زیردریایی‌ها). موشک ضد بالستیک. موشک ضد بالستیک (ABM) یک موشک زمین به هوا است که برای مقابله با موشک‌های بالستیک (دفاع موشکی) طراحی شده است. موشک‌های بالستیک برای
(دفاع موشکی) طراحی شده است. موشک‌های بالستیک برای حمل کلاهک‌های هسته‌ای، شیمیایی، بیولوژیکی یا متعارف در مسیر پرواز بالستیک استفاده می‌شود. اصطلاح «موشک ضد بالستیک» یک اصطلاح عمومی است که سیستمی را برای رهگیری و نابودی هر نوع تهدید بالستیک طراحی کرده است. با این حال، معمولاً از اصطلاح «موشک ضد بالستیک» برای سیستم‌هایی که به‌طور خاص برای مقابله با موشک‌های بالستیک قاره‌پیما (ICBM) طراحی شده‌اند، استفاده می‌شود. مانند اکثر موشک‌ها، اس-۳۰۰ و اس-۴۰۰، پدافند هوایی پیشرفته و ام‌آی‌ام-۱۰۴ پاتریوت برای دفاع در
هوایی پیشرفته و ام‌آی‌ام-۱۰۴ پاتریوت برای دفاع در برابر موشک‌های کوتاه برد و حمل کلاهک‌های انفجاری هستند. هوا به هوا. موشک هوابه‌هوا (AAM) موشکی است که از یک هواپیما به منظور انهدام هواپیمای دیگر شلیک می‌شود. موشک‌های هوابه‌هوا معمولاً توسط یک یا چند موتور موشک، معمولاً با سوخت جامد، و گاهی با سوخت مایع، تغذیه می‌شوند. موتورهای رم جت، همان‌طور که در موشک Meteor استفاده می‌شود، به عنوان نیروی محرکه‌ای در حال ظهور هستند که موشک‌های میان‌برد آینده را قادر می‌سازد تا سرعت متوسط بالاتری را در سراسر پوشش درگیری
تا سرعت متوسط بالاتری را در سراسر پوشش درگیری خود حفظ کنند. موشک‌های هوا به هوا به‌طور کلی در دو گروه قرار می‌گیرند. موشک‌هایی که برای درگیری با هواپیماهای متخاصم در بردهای کمتر از ۳۰ کیلومتر طراحی شده‌اند، به عنوان موشک‌های کوتاه‌برد یا «در برد بصری» (SRAAMs یا WVRAAMs) شناخته می‌شوند و گاهی موشک‌های «داگ‌فایت» نامیده می‌شوند، زیرا برای بهینه‌سازی چابکی آنها طراحی شده‌اند تا برد. اکثر آنها از هدایت مادون قرمز استفاده می‌کنند و موشک‌های جستجوگر حرارت نامیده می‌شوند. در مقابل، موشک‌های میان‌برد یا دوربرد
می‌شوند. در مقابل، موشک‌های میان‌برد یا دوربرد (MRAAMs یا LRAAMs)، که هر دو در رده موشک‌های فراتر از برد بصری (BVRAAMs) قرار می‌گیرند، تمایل دارند بر هدایت راداری تکیه کنند، که اشکال بسیاری وجود دارد. برخی از موشک‌های مدرن از هدایت اینرسیایی یا «به‌روزرسانی‌های اواسط دوره» استفاده می‌کنند تا موشک را به اندازه‌ای نزدیک کنند که از یک سنسور هومینگ فعال استفاده کند. مفاهیم موشک‌های هوا به هوا و موشک‌های زمین به هوا بسیار نزدیک به هم هستند و در برخی موارد ممکن است از نسخه‌های یک سلاح برای هر دو نقش استفاده شود،
از نسخه‌های یک سلاح برای هر دو نقش استفاده شود، مانند موشک‌های ASRAAM و Sea Ceptor. موشک ضد ماهواره. سلاح‌های ضدماهواره (ASAT) سلاح‌های فضایی هستند که برای از کار انداختن یا نابود کردن ماهواره‌ها برای اهداف استراتژیک یا تاکتیکی طراحی شده‌اند. چندین کشور دارای سیستم‌های عملیاتی ASAT هستند. اگرچه هنوز هیچ سیستم ASAT در جنگ مورد استفاده قرار نگرفته است، اما چند کشور (چین، هند، روسیه و ایالات متحده) با موفقیت ماهواره‌های خود را ساقط کردند تا قابلیت‌های ASAT خود را در نمایش قدرت نشان دهند. سلاح‌های ضدماهواره
را در نمایش قدرت نشان دهند. سلاح‌های ضدماهواره همچنین برای حذف ماهواره‌های از کار افتاده استفاده شده است. تفاوت موشک و سایر پرتابه‌ها. مهماتی که به سوی هدفی شلیک می‌شوند به انواع گوناگونی تقسیم می‌شوند:
در علم رایانه سمافور به متغیری گفته می‌شود که در محیط‌های همروند برای کنترل دسترسی فرایندها به منابع مشترک به کار می‌رود. سمافور می‌تواند به دو صورت دودویی (که تنها دو مقدار صحیح و غلط را دارا است) یا شمارنده اعداد صحیح باشد. از سمافور برای جلوگیری از ایجاد وضعیت رقابتی میان فرایندها استفاده می‌گردد. به این ترتیب، اطمینان حاصل می‌شود که در هر لحظه تنها یک فرایند به منبع مشترک دسترسی دارد و می‌تواند از آن بخواند یا بنویسد (انحصار متقابل) سمافورها اولین بار به‌وسیلهٔ دانشمند علوم رایانه هلندی، ادسخر دیکسترا
دانشمند علوم رایانه هلندی، ادسخر دیکسترا معرفی شدند. و امروزه به‌طور گسترده‌ای در سیستم عاملها مورد استفاده قرار می‌گیرند. مثال. فرض کنید کتابخانه‌ای ۱۰ اتاق مطالعه یکسان دارد. برای جلوگیری از مجادله و نزاع، دانشجویانی که قصد مطالعه دارند‍، باید اتاقی را از یک پیشخوان درخواست دهند. وقتی که یک دانشجو مطالعه‌اش تمام شد و خواست اتاق را تحویل دهد، باید مجدداً به پیشخوان برگردد و نشان دهد که دیگر به اتاق احتیاج ندارد. اگر هیچ اتاق خالی وجود نداشت و همه اتاق‌ها از قبل اشغال شده بود، دانشجویان باید منتظر بمانند
از قبل اشغال شده بود، دانشجویان باید منتظر بمانند تا یکی از دانشجو ها اتاقش را تحویل دهد. سپس دانشجویی که بالاترین اولویت را نسبت به بقیه دارد (مثلاً زودتر از بقیه آمده) می‌تواند اتاق خالی شده را انتخاب کند. منشی که در پیشخوان حاضر است، پیگیری نمی‌کند که کدام اتاق اشغال شده‌است یا چه کسی از آن اتاق استفاده می‌کند، او تنها تعداد اتاق‌های خالی را می‌داند. وقتی که دانشجویی اتاقی را تقاضا می‌کند، منشی تعداد اتاق ‌های خالی را یک واحد کم می‌کند. وقتی که دانشجویی اتاقی که قبلاً گرفته بود را پس می‌دهد، منشی این
اتاقی که قبلاً گرفته بود را پس می‌دهد، منشی این عدد را یک واحد افزایش می‌دهد. وقتی که دانشجویی توانست اتاقی را بردارد، می‌تواند تا هر وقت که خواست همان‌جا بماند و از آن استفاده کند، بنابراین رزرو کردن اتاق‌ها از قبل امکان‌پذیر نیست. در مثال بالا، پیشخوان همان نقش سمافور را بازی می‌کند. دانشجوها همان پروسه‌هایی هستند که منابع را درخواست می‌کنند و اتاق‌ها هم مان منابعی هستند که در بین پروسه‌ها به اشتراک گذاشته می‌شود. مقدار اولیه سمافور در این مثال ۱۰ است. وقتی که اولین دانشجو اتاقی را درخواست می‌کند، منشی
که اولین دانشجو اتاقی را درخواست می‌کند، منشی اتاق را به او اختصاص داده و مقدار سمافور را به ۹ کاهش می‌دهد. وقتی که دانشجوی بعدی وارد شد، این عدد به ۸ و سپس به ۷ و به همین ترتیب کاهش می‌یابد. اگر دانشجویی اتاقی را درخواست دهد، اما مقدار سمافور منفی باشد، مجبور است منتظر بماند تا یکی از دانشجوها اتاقش را پس دهد. مفاهیم و پیاده‌سازی. شمارش سمافورها با دو عملیات همراه است. به‌طور تاریخی، به این دو عملیات V (یا signal()) و P (یا wait()) می‌گویند. اگر سمافوری به نام S داشته باشیم، عملیات V آن را یک واحد افزایش
نام S داشته باشیم، عملیات V آن را یک واحد افزایش می‌دهد و عملیات P یک واحد آن را کاهش می‌دهد. معانی این دو عملیات در زیر نشان داده شده‌است. براکت‌ها به معنی عملیات اتمی هستند. عملیات اتمی به عملیاتی می‌گویند که تجزیه ناپذیر باشد، یا کل آن اجرا می‌شود یا اصلاً اجرا نمی‌شود. به عبارت دیگر، عملیات از دید پروسه‌ها غیرقابل قسمت هستند. مقدار سمافور S نشان‌دهنده تعداد واحد منابعی است که در حال حاضر در دسترس هستند و پروسه‌ها می‌توانند از آن استفاده کنند. عملیات P، وقت را تلف می‌کند یا پروسه را به خواب می‌برد تا
وقت را تلف می‌کند یا پروسه را به خواب می‌برد تا وقتی که یکی از منابع اشغال شده مجدداً آزاد شود، وقتی که منبع آزاد شد، بلافاصله به پروسه اختصاص می‌یابد. عملیات V برعکس است. وقتی که پروسه‌ای کارش را با منبع به اتمام رساند، با استفاده از عملیات V می‌تواند آن را آزادسازی کند تا دیگر پروسه‌ها بتوانند از آن استفاده کنند. خصوصیت مهم سمافور S این است که مقدار آن را تنها می‌توان به وسیله عمیات‌های V و P تغییر داد. یک راه ساده برای فهم عملیات‌های wait() و signal() به صورت زیر است: function V(semaphore S, integer I):
صورت زیر است: function V(semaphore S, integer I): [S ← S + I] function P(semaphore S, integer I): repeat: [if S&gt;= 0: S ← S - I break] شیوهٔ عملکرد سمافور. اصل اساسی این است که دو یا چند فرایند می‌توانند به وسیلهٔ سیگنال‌های ساده با یکدیگر همکاری کنند. هر فرایند را می‌توان در نقطهٔ خاصی از اجرا متوقف نموده، و تا رسیدن سیگنال خاصی از اجرای آن جلوگیری نمود. برای ایجاد این اثر، از متغیرهای خاصی به نام سمافور استفاده می‌گردد. هر فرایندی که بخواهد به منبع مشترک دسترسی داشته باشد، اعمال زیر را انجام خواهد داد:
دسترسی داشته باشد، اعمال زیر را انجام خواهد داد: هنگامی که فرایند کار خود را با منبع تمام نمود، یک واحد به سمافور اضافه می‌گردد. هر زمان که مقدار سمافور به صفر یا بیشتر برسد، یکی از فرایند(هایی) که به خواب رفته به صورت تصادفی یا به روش FIFO توسط سیستم‌عامل بیدار می‌شود. در این حالت بلافاصله فرایند بیدار شده منبع را در دست می‌گیرد و مجدداً پس از اتمام کار یک واحد از سمافور کم می‌شود. اگر مقدار سمافوری صفر باشد و چند فرایند بلوکه شده در آن وجود داشته باشد، با افزایش یک واحدی سمافور، مقدار سمافور همچنان صفر
افزایش یک واحدی سمافور، مقدار سمافور همچنان صفر باقی می‌ماند اما یکی از فرایندهای بلوکه شده آزاد می‌شود. پیاده‌سازی. سمافور متغیری است که میان چند فرایند به اشتراک گذاشته می‌شود. سمافور باید مستقل از فرایندها بوده و در فضایی از حافظه قرار گیرد که فرایندها بتوانند به آن دسترسی داشته باشند، همچنین عملیاتی که روی سمافور انجام می‌گیرد باید به صورتی پیاده‌سازی گردد که هیچ گونه وقفهای هنگام انجام آن عملیات به وجود نیاید (اتمیک باشد). به همین دلیل، سمافور در هسته سیستم‌عامل پیاده‌سازی می‌گردد و کنترل آن نیز توسط
سیستم‌عامل پیاده‌سازی می‌گردد و کنترل آن نیز توسط سیستم عامل صورت می‌گیرد. به این معنی که فرایندها تنها می‌توانند توسط فراخوانی سیستم (syscall یا system call) با سمافورها کار کنند. در سیستم عامل‌هایی که از استاندارد پوزیکس پیروی می‌کنند، دو فراخوان سیستمی semget و semctl برای کار با سمافورها وجود دارد. کاربردها. از سمافورها برای حل مسائل همزمانی میان فرایندها به کار می‌رود و امروزه در تمامی سیستم‌عامل‌ها پیاده‌سازی شده‌است. سمافورها معمولاً به‌طور مستقیم مورد استفاده قرار نمی‌گیرند، مگر در جایی که راه حل
استفاده قرار نمی‌گیرند، مگر در جایی که راه حل سطح بالایی وجود نداشته باشد. چرا که برنامه‌نویس می‌تواند با ایجاد شرایطی، به بن‌بست رسیده یا فرایندهایی را گرسنه نگاه دارد (اجازهٔ دسترسی به منبع را برای مدتی طولانی ندهد.) پیاده‌سازی‌ها. پازیکس. استاندارد پازیکس دسته‌ای تابع برای کار بر روی سمافورها تعریف می‌کند که در سیستم‌عاملهای سازگار با این استاندارد قابل استفاده هستند. برای استفاده از این توابع باید فایل سرایند semaphore.h را در کد منبع درج کرد. در این استاندارد یک نوع داده به نام sem_t تعبیه شده که برای
یک نوع داده به نام sem_t تعبیه شده که برای تعریف کردن یک ساختار از نوع سمافور استفاده می‌شود: sem_t mysem; به کمک تابع sem_init() می‌توان یک سمافور را آماده‌سازی کرد. قبل از انجام هر کاری، این تابع باید بر روی سمافور اجرا شود. این تابع به شکل زیر اعلان شده است: int sem_init(sem_t *sem, int pshared, unsigned int value); پارامتر sem همان ساختار نوع sem_t است که باید به روش فراخوانی با ارجاع به تابع ارسال شود. پارامتر value مقدار اولیه سمافور را تعیین می‌کند. به عبارت دیگر، این تابع مقدار value به عنوان مقدار
عبارت دیگر، این تابع مقدار value به عنوان مقدار اولیه سمافور sem تعیین می‌کند. اگر پارامتر pshared غیر صفر باشد، مشخص‌کننده سمافور مشترکی است که می‌تواند توسط چند فرایند مورد استفاده قرار بگیرد. به عبارت دیگر، پارامتر pshared تعیین می‌کند که آیا سمافور قرار است بین ریسه‌های یک فرایند به اشتراک گذاشته شود یا بین چند فرایند مجزا. برای اشتراک گذاشتن یک سمافور بین چند فرایند، سمافور باید در یک حافظه مشترک قرار گیرد تا همه فرایندها بتوانند به آن دسترسی داشته باشند. هر پروسه‌ای که به آدرس sem دسترسی داشته باشد،
هر پروسه‌ای که به آدرس sem دسترسی داشته باشد، می‌تواند بر روی سمافور عملیات انجام دهد. بعد از اینکه این تابع بر روی یک سمافور با موفقیت اجرا شد، می‌تواند از آن سمافور در توابع دیگر استفاده کرد. این تابع در صورت موفقیت مقدار صفر و در صورت شکست مقدار -1 را برمی‌گرداند و متغیر سراسری errno را با خطای مورد نظر مقداردهی می‌کند. int sem_getvalue(sem_t * restrict sem, int * restrict sval); این تابع مقدار فعلی سمافور sem را در متغیر sval قرار می‌دهد. در صورت موفقیت مقدار صفر و در صورت شکست مقدار -۱ برمی‌گردد. int
مقدار صفر و در صورت شکست مقدار -۱ برمی‌گردد. int sem_wait(sem_t *sem); این تابع یک واحد از سمافور sem کم می‌کند، به این معنی که قرار است یک واحد از منبع اشتراکی استفاده شود. فرایند باید قبل از استفاده از منبع اشتراکی این تابع را بر روی سمافور اجرا کند. اگر مقدار فعلی سمافور صفر باشد (به این معنی که هم‌اکنون منبع اشتراکی در اختیار فرایند دیگری است)، فرایند فراخوان بلوکه می‌شود، تا وقتی که فرایند دیگر منبع اشتراکی را آزاد کند. int sem_trywait(sem_t *sem); این تابع هم مشابه sem_wait است. اما اگر مقدار سمافور
تابع هم مشابه sem_wait است. اما اگر مقدار سمافور صفر باشد، پروسه بلوکه نخواهد شد و در عوض یک خطا برخواهد گشت. int sem_post(sem_t *sem); این تابع سمافور sem را یک واحد افزایش می‌دهد. پس از اینکه فرایندها کار خود را با منبع اشتراکی به اتمام رساندند، باید این تابع را بر روی سمافور فراخوانی کنند تا فرایندهای دیگر بتوانند از منبع استفاده کنند. اگر در حال حاضر فرایند(هایی) بر روی سمافور بلوکه شده باشد، فرایندی که اولویت بالاتری دارد بیدار شده و منبع را در دست خواهد گرفت. در صورت موفقیت مقدار صفر را برمی‌گرداند.
گرفت. در صورت موفقیت مقدار صفر را برمی‌گرداند. int sem_destroy(sem_t *sem); این تابع سمافور sem را نابود می‌کند و منابع آن را به سیستم برمی‌گرداند. پس از اینکه این تابع بر روی یک سمافور با موفقیت اجرا شد، سمافور مورد نظر دیگر قابل استفاده نیست و هیچ تابعی نباید بر روی آن منتظر دستیابی به منبع اشتراکی باشد. مگر اینکه بار دیگر هم تابع sem_init روی سمافور اجرا شود. مثال. sem_t lock; pthread_t tid[3]; int count; void* init(void*); int main() int i; if(0 != (sem_init(&amp;lock, 0, 1))) perror("sem_init()");
0, 1))) perror("sem_init()"); exit(EXIT_FAILURE); for(i=0; i&lt;3; i++) if(0 != (pthread_create(&amp;tid[i], NULL, init, NULL))) perror("pthread_create()"); exit(EXIT_FAILURE); for(i=0; i&lt;3; i++) if(0 != (pthread_join(tid[i], NULL))) perror("pthread_join()"); exit(EXIT_FAILURE); if(0 != (sem_destroy(&amp;lock))) perror("sem_destroy()"); exit(EXIT_FAILURE); return 0; void* init(void* arg) if(0 != (sem_wait(&amp;lock))) perror("sem_wait()"); exit(EXIT_FAILURE); (void)printf("%d\n", count++); if(0 !=
(void)printf("%d\n", count++); if(0 != (sem_post(&amp;lock))) perror("sem_post()"); exit(EXIT_FAILURE); return NULL;
موشک بالستیک نوعی موشک است که از یک مسیر پروازی بالستیک پیروی می‌کند و تنها در یک دوره اولیه نسبتاً کوتاه نیرو می‌گیرد و بیشتر پرواز آن بدون نیروی محرکه است. موشک‌های بالستیک کوتاه‌برد (SRBM) معمولاً در جو زمین باقی می‌مانند، در حالی که بیشتر موشک‌های بزرگتر به خارج از جو سفر می‌کنند. نوعی از موشک بالستیک با بیشترین برد، موشک بالستیک قاره‌پیما (ICBM) است. بزرگ‌ترین موشک‌های قاره‌پیما قادر به پرواز مداری کامل هستند. این موشک‌ها در دسته‌ای متمایز از موشک کروز قرار می‌گیرند که در طول پرواز با نیروی محرکه، به
قرار می‌گیرند که در طول پرواز با نیروی محرکه، به صورت آیرودینامیکی هدایت می‌شوند و بنابراین به جو محدود هستند. تاریخچه. یکی از موشک‌های بالستیک پیشگام مدرن، A-4 بود که معمولاً با نام وی-۲ شناخته می‌شود و توسط آلمان نازی در دهه‌های ۱۹۳۰ و ۱۹۴۰ تحت هدایت ورنر فون براون توسعه یافت. اولین پرتاب موفقیت‌آمیز وی-۲ در ۳ اکتبر ۱۹۴۲ بود و در ۶ سپتامبر ۱۹۴۴ عملیات خود را علیه پاریس آغاز کرد و دو روز بعد حمله‌ای به لندن انجام داد. تا پایان جنگ جهانی دوم در اروپا در مه ۱۹۴۵، بیش از ۳۰۰۰ راکت وی-۲ پرتاب شده بود. علاوه
۱۹۴۵، بیش از ۳۰۰۰ راکت وی-۲ پرتاب شده بود. علاوه بر استفاده به عنوان سلاح، یک وی-۲ که به صورت عمودی پرتاب شد در ۲۰ ژوئن ۱۹۴۴ به اولین شیء ساخت بشر تبدیل شد که به فضای بیرونی رسید. آر-۷ سمیورکا اولین موشک بالستیک قاره‌پیما بود. بزرگ‌ترین حمله موشکی بالستیک در تاریخ در ۱ اکتبر ۲۰۲۴ رخ داد، زمانی که سپاه پاسداران انقلاب اسلامی حدود ۲۰۰ موشک به سمت اسرائیل پرتاب کرد، فاصله‌ای حدود ۱۵۰۰ کیلومتر. موشک‌ها حدود ۱۵ دقیقه پس از پرتاب به هدف رسیدند. اعتقاد بر این است که از موشک‌های فتاح-۱ و خیبرشکن ایران استفاده شده
که از موشک‌های فتاح-۱ و خیبرشکن ایران استفاده شده است که هر دو بردی حدود ۱۴۰۰ کیلومتر دارند. پرواز. برای پیمودن مسافت‌های طولانی، موشک‌های بالستیک معمولاً به یک پرواز فضایی زیرمداری در ارتفاع بالا پرتاب می‌شوند؛ برای موشک‌های قاره‌پیما، بیشترین ارتفاع (اوج زمینی) که در طول پرواز آزاد به آن می‌رسند حدود 4500 کیلومتر است. مسیر پروازی یک موشک بالستیک از سه بخش یا فاز تشکیل شده است: فاز تقویتی (boost phase)، فاز میانی (mid-course phase) و فاز پایانی (terminal phase). برای انتقال موفقیت‌آمیز از یک فاز به فاز
phase). برای انتقال موفقیت‌آمیز از یک فاز به فاز دیگر، به سیستم‌ها و قابلیت‌های ویژه‌ای نیاز است. فاز تقویتی، بخش پرواز موتوردار است که با احتراق موتورها آغاز شده و با پایان پرواز موتوردار خاتمه می‌یابد. بخش پرواز موتوردار می‌تواند از چند دهم ثانیه تا چندین دقیقه طول بکشد و ممکن است شامل چندین مرحله راکت باشد. کامپیوترهای داخلی، موشک را در مسیر از پیش برنامه‌ریزی‌شده نگه می‌دارند. در موشک‌های چندمرحله‌ای، جدایش مراحل (به استثنای هرگونه وسیله نقلیه پس از تقویت یا باس MIRV) عمدتاً در طول فاز تقویتی رخ
از تقویت یا باس MIRV) عمدتاً در طول فاز تقویتی رخ می‌دهد. فاز میانی طولانی‌ترین بخش مسیر موشک است که با پایان پرواز موتوردار آغاز می‌شود. با تمام شدن سوخت، دیگر هیچ رانشی تولید نمی‌شود و موشک وارد پرواز آزاد می‌شود. در این فاز، موشک که اکنون عمدتاً از یک کلاهک یا محموله و احتمالاً اقدامات متقابل دفاعی و سیستم‌های پیشرانه کوچک برای هم‌ترازی بیشتر به سمت هدف خود تشکیل شده است، به بیشترین ارتفاع خود می‌رسد و ممکن است هزاران کیلومتر در فضا (یا حتی به‌طور نامحدود، در مورد برخی سیستم‌های با قابلیت مداری کسری) با
در مورد برخی سیستم‌های با قابلیت مداری کسری) با سرعتی تا 7.5 تا 10 کیلومتر بر ثانیه حرکت کند. آخرین فاز در مسیر موشک، فاز پایانی یا بازورود است که با بازگشت موشک به جو زمین (در صورت خروج از جو) آغاز می‌شود که در آن پسار جوی نقش مهمی در مسیر موشک ایفا می‌کند و تا برخورد موشک ادامه دارد. وسایل نقلیه بازورود با سرعت‌های بسیار بالا، در حدود 6 تا 8 کیلومتر بر ثانیه در بردهای موشک‌های بالستیک قاره‌پیما، دوباره وارد جو زمین می‌شوند. در ابتدای این فاز، مسیر موشک هنوز نسبتاً مشخص است، اما با رسیدن موشک به لایه‌های
نسبتاً مشخص است، اما با رسیدن موشک به لایه‌های غلیظ‌تر جو، به‌طور فزاینده‌ای تحت تأثیر گرانش و پسار آیرودینامیکی قرار می‌گیرد که می‌تواند بر محل فرود آن تأثیر بگذارد. انواع. موشک‌های بالستیک را می‌توان از سایت‌های ثابت یا پرتابگرهای متحرک، از جمله وسایل نقلیه (مانند پرتابگر حمل‌کننده‌ها)، هواگرد، کشتی‌ها و زیردریایی‌ها پرتاب کرد. موشک‌های بالستیک از نظر برد و کاربرد بسیار متفاوت هستند و اغلب بر اساس برد به دسته‌هایی تقسیم می‌شوند. طرح‌های مختلفی توسط کشورهای گوناگون برای دسته‌بندی بردهای موشک‌های بالستیک
گوناگون برای دسته‌بندی بردهای موشک‌های بالستیک استفاده می‌شود: موشک‌های بالستیک دوربرد و میان‌برد عموماً برای حمل جنگ‌افزار هسته‌ای طراحی شده‌اند، زیرا ظرفیت حمل آن‌ها برای مواد منفجره متعارف در مقایسه با هواپیمای بمب‌افکن متعارف، از نظر هزینه مقرون‌به‌صرفه نیست. موشک‌های شبه‌بالستیک. موشک شبه‌بالستیک دسته‌ای از موشک‌های بالستیک کوتاه‌برد است که عمدتاً بالستیک است اما می‌تواند در حین پرواز مانور انجام دهد یا تغییرات غیرمنتظره‌ای در مسیر و برد خود ایجاد کند. راکت‌های بزرگ هدایت‌شونده MLRS با برد قابل مقایسه
راکت‌های بزرگ هدایت‌شونده MLRS با برد قابل مقایسه با یک موشک بالستیک کوتاه‌برد، گاهی به عنوان موشک شبه‌بالستیک طبقه‌بندی می‌شوند. موشک بالستیک ابرصوت. بسیاری از موشک‌های بالستیک هنگام بازگشت از فضا به جو، به سرعت‌های ابرصوت (یعنی ماخ ۵ و بالاتر) می‌رسند. با این حال، در اصطلاحات نظامی رایج، عبارت «موشک بالستیک ابرصوت» عموماً فقط به آن دسته از موشک‌هایی اطلاق می‌شود که می‌توانند قبل از برخورد به هدف مانور دهند و از یک مسیر بالستیک ساده پیروی نمی‌کنند. وزن پرتاب. وزن پرتاب (Throw-weight) معیاری برای سنجش وزن
وزن پرتاب (Throw-weight) معیاری برای سنجش وزن مؤثر ظرفیت حمل موشک‌های بالستیک است. این معیار بر حسب کیلوگرم یا تن اندازه‌گیری می‌شود. وزن پرتاب برابر با وزن کل کلاهک‌ها، وسایل نقلیه بازورود، مکانیسم‌های توزیع خودکار، کمک‌رسان نفوذ، و هر جزء دیگری است که بخشی از محموله تحویلی محسوب می‌شود و جزئی از خود راکت (مانند بوستر تقویتی پرتاب و سوخت پرتاب) نیست. وزن پرتاب ممکن است به هر نوع کلاهکی اشاره داشته باشد، اما در کاربرد مدرن امروزی، تقریباً به‌طور انحصاری به محموله‌های هسته‌ای یا گرماهسته‌ای اشاره دارد. این
محموله‌های هسته‌ای یا گرماهسته‌ای اشاره دارد. این معیار زمانی در طراحی کشتی‌های جنگی و تعداد و اندازه توپ‌های آنها نیز یک عامل مهم بود. وزن پرتاب به عنوان معیاری برای طبقه‌بندی انواع مختلف موشک‌ها در طول مذاکرات محدودسازی سلاح‌های استراتژیک (SALT) بین اتحاد جماهیر شوروی و ایالات متحده آمریکا استفاده شد. این اصطلاح در طول بحث‌ها بر سر پیمان کنترل تسلیحات از نظر سیاسی بحث‌برانگیز شد، زیرا منتقدان پیمان ادعا می‌کردند که موشک‌های شوروی قادر به حمل محموله‌های بزرگ‌تری هستند و این امر به شوروی امکان می‌دهد تا
بزرگ‌تری هستند و این امر به شوروی امکان می‌دهد تا وزن پرتاب بالاتری نسبت به نیروی آمریکایی با تعداد تقریباً مشابهی از موشک‌های با محموله کمتر، حفظ کند. موشک‌هایی با سنگین‌ترین محموله‌ها در جهان، اس‌اس-۱۸ روسی و CSS-4 چینی هستند و روسیه در حال توسعه یک موشک قاره‌پیمای جدید با سوخت مایع و قابلیت حمل بار سنگین به نام سارمات بود. مسیر پروازی پست (Depressed trajectory). وزن پرتاب معمولاً با استفاده از یک مسیر بالستیک بهینه از یک نقطه روی سطح زمین به نقطه‌ای دیگر محاسبه می‌شود. یک «مسیر با حداقل انرژی» با
دیگر محاسبه می‌شود. یک «مسیر با حداقل انرژی» با استفاده از تکانه موجود موشک، کل محموله (وزن پرتاب) را به حداکثر می‌رساند. با کاهش وزن محموله، می‌توان مسیرهای مختلفی را انتخاب کرد که می‌تواند برد اسمی را افزایش دهد یا کل زمان پرواز را کاهش دهد. یک مسیر پروازی پست (depressed trajectory) غیربهینه است، زیرا یک مسیر پایین‌تر و صاف‌تر زمان کمتری بین پرتاب و برخورد نیاز دارد اما وزن پرتاب کمتری دارد. دلایل اصلی انتخاب یک مسیر پست، فرار از سیستم‌های موشک ضد بالستیک با کاهش زمان در دسترس برای سرنگونی وسیله نقلیه