سیستم عامل

context: سیستم عامل یا سامانهٔ عامل نرم‌افزار سیستمی‌ای است که مدیریت منابع رایانه را به عهده گرفته و بستری را فراهم می‌سازد که نرم‌افزار کاربردی اجرا شده و از خدمات آن استفاده کنند. سیستم‌عامل جزء ضروری‌ترین نرم‌افزارهای یک سیستم رایانه‌ای است.
qas: answers: text: سامانهٔ عامل نرم‌افزار
question: نام دیگر سیستم عامل چیست؟

answers: text: سیستمی‌ای است که مدیریت منابع رایانه را به عهده گرفته و بستری را فراهم می‌سازد که نرم‌افزار کاربردی اجرا شده و از خدمات آن استفاده کنند
question: سیستم عامل را تعریف کنید؟

answers: text: سیستم‌عامل
question: یکی از ضروری‌ترین نرم‌افزارهای یک سیستم رایانه‌ای چیست؟

question: نام انواع سیستم عامل را بنویسید؟

context: سیستم‌عامل خدماتی به برنامه‌های کاربردی و کاربر ارائه می‌دهد. برنامه‌های کاربردی یا از طریق واسط‌های برنامه‌نویسی کاربردی[یادداشت 1] یا از طرق فراخوانی‌های سیستم به این خدمات دسترسی دارند. با فراخوانی این واسط‌ها، برنامه‌های کاربردی می‌توانند سرویسی را از سیستم‌عامل درخواست کنند، پارامترها را انتقال دهند، و پاسخ عملیات را دریافت کنند. ممکن است کاربران با بعضی انواع واسط کاربری نرم‌افزار مثل واسط خط فرمان یا یک واسط گرافیکی کاربر با سیستم‌عامل تعامل کنند. برای رایانه‌های دستی و رومیزی، عموماً واسط کاربری به عنوان بخشی از سیستم‌عامل در نظر گرفته می‌شود. در سیستم‌های بزرگ و چند کاربره مثل یونیکس و سیستم‌های شبیه یونیکس، واسط کاربری معمولاً به عنوان یک برنامهٔ کاربردی که خارج از سیستم‌عامل اجرا می‌شود پیاده‌سازی می‌شود.
qas: answers: text: خدماتی به برنامه‌های کاربردی و کاربر ارائه می‌دهد
question: سیستم عامل چه کاری انجام می‌دهد؟

answers: text: دستی و رومیزی

text: برای رایانه‌های دستی و رومیزی
question: برای چه مدل رایانه‌هایی واسط کاربری به عنوان بخشی از سیستم عامل است؟

answers: text: واسط کاربری معمولاً به عنوان یک برنامهٔ کاربردی که خارج از سیستم‌عامل اجرا می‌شود پیاده‌سازی می‌شود
question: واسط‌های کاربری برای سیستم‌های بزرگ چگونه است؟

answers: text: یونیکس
question: نام یک سیستم بزرگ و چند کاربره را بنویسید؟

question: رایانه‌های دستی و رومیزی چگونه رایانه‌هایی هستند؟

context: سیستم عامل‌های یک‌کاربره امکان تمایز کاربران را ندارند، اما ممکن است چندین برنامه را به صورت همزمان اجرا کنند. یک سیستم عامل چند کاربره مفهوم اصلی کار چند منظوره را با امکاناتی فراهم می‌کند که فرایندها و منابع را شناسایی می‌کنند، از جمله فضای دیسک، متعلق به چندین کاربر، و سیستم به چندین کاربر اجازه می‌دهد تا همزمان با سیستم ارتباط برقرار کنند. برنامه‌های زمانبندی سیستم عامل برای استفاده کارآمد از سیستم برنامه‌ریزی کرده و ممکن است شامل نرم‌افزار حسابداری برای اختصاص هزینهٔ زمان پردازنده، ذخیرهٔ انبوه، چاپ و سایر منابع برای چندین کاربر نیز باشد. در سیستم عامل‌های شبه‌یونیکس یک حالت تک‌کاربره در هستهٔ پشتیبان وجود دارد که برای وقتی است که دیگر هسته‌ها با مشکل مواجه می‌شوند و نیاز به تعمیر دارند یا رمز کاربر ریشه را بدون دانستن آن بخواهیم تغییر دهیم.
qas: answers: text: چندین برنامه را به صورت همزمان اجرا کنند
question: سیستم عامل‌های یک‌کاربره چه امکانی را دارند؟

answers: text: برای وقتی است که دیگر هسته‌ها با مشکل مواجه می‌شوند و نیاز به تعمیر دارند یا رمز کاربر ریشه را بدون دانستن آن بخواهیم تغییر دهیم
question: هسته پشتیبان در سیستم عامل‌های شبه یونیکس چه کاری را انجام می‌دهد؟

answers: text: نرم‌افزار حسابداری برای اختصاص هزینهٔ زمان پردازنده، ذخیرهٔ انبوه، چاپ و سایر منابع برای چندین کاربر نیز باشد
question: برنامه‌های زمانبندی سیستم عامل شامل چیست؟

answers: text: سیستم عامل‌های یک‌کاربره
question: کدام سیستم عامل‌ها امکان تمایز کاربران را ندارند؟

question: سیستم عامل‌ها در کدام دهه میلادی توسعه یافتند؟

context: رایانه‌های اولیه برای انجام یک سری از کارهای تک مانند ماشین حساب ساخته شدند. ویژگی‌های اصلی سیستم عامل در دههٔ ۵۰ توسعه یافت، مانند توابع مانیتور ساکن که به‌طور خودکار می‌توانند برنامه‌های مختلف را به صورت متوالی اجرا کنند تا پردازش سریع شود. سیستم‌های عامل تا اوایل دههٔ ۱۹۶۰ به شکل‌های مدرن و پیچیده‌تر وجود نداشتند. ویژگی‌های سخت‌افزاری اضافه شده‌است که امکان استفاده از کتابخانه‌های زمان اجرا، وقفه‌ها و پردازش موازی را فراهم می‌آورد. هنگامی که رایانه‌های شخصی در دههٔ ۱۹۸۰ رایج شدند، سیستم‌های عامل برای آن‌ها شبیه به رایانه‌های بزرگ‌تر مورد استفاده قرار گرفت.
qas: answers: text: کارهای تک مانند ماشین حساب
question: رایانه‌های اولیه برای انجام چه کارهایی ساخته‌ شدند؟

answers: text: ۱۹۸۰

text: در دههٔ ۱۹۸۰

text: دههٔ ۱۹۸۰
question: رایانه‌های شخصی در کدام دهه رایج شدند؟

answers: text: استفاده از کتابخانه‌های زمان اجرا، وقفه‌ها و پردازش موازی
question: ویژگی‌های سخت‌افزاری چه امکانی را فراهم می‌کنند؟

answers: text: توابع مانیتور ساکن که به‌طور خودکار می‌توانند برنامه‌های مختلف را به صورت متوالی اجرا کنند تا پردازش سریع شود
question: نمونه‌ای از ویژگی‌های اصلی سیستم عامل را بنویسید؟

question: رایانه‌های شخصی ابتدا در چه کشوری ساخته شدند؟

context: در دههٔ ۱۹۴۰، نخستین سیستم‌های دیجیتال الکترونیکی هیچ سیستم عاملی نداشتند. سیستم‌های الکترونیکی آن زمان در ردیف‌های سوئیچ‌های مکانیکی یا توسط سیم‌های بلوز روی پلاگین‌ها برنامه‌ریزی می‌شدند. این‌ها سیستم‌های ویژه‌ای بود که به عنوان مثال جدول‌های بالستیک را برای ارتش ایجاد می‌کردند یا چاپ چک‌های حقوق و دستمزد از داده‌های روی کارت‌های کاغذ سوراخ‌دار را کنترل می‌کردند. پس از اختراع رایانه‌های قابل برنامه‌ریزی عمومی، زبان‌های دستگاه (متشکل از رشته‌های ارقام باینری ۰ و ۱ روی نوار کاغذ سوراخ‌دار) معرفی شدند که روند برنامه‌نویسی را سرعت می‌بخشد (استرن، ۱۹۸۱).
qas: answers: text: رشته‌های ارقام باینری ۰ و ۱ روی نوار کاغذ سوراخ‌دار
question: زبان‌های دستگاه متشکل از چیست؟

answers: text: رایانه‌های قابل برنامه‌ریزی عمومی

text: اختراع رایانه‌های قابل برنامه‌ریزی عمومی
question: اختراع چه نوع رایانه‌هایی روند برنامه‌نویسی را سرعت می‌بخشید؟

answers: text: دیجیتال الکترونیکی

text: نخستین سیستم‌های دیجیتال الکترونیکی
question: در دهه ۱۹۴۰ چه سیستم‌هایی، هیچ سیستم عاملی نداشتند؟

question: سیستم‌های دیجیتال الکترونیکی چه نوع سیستم‌هایی بودند؟

context: در اوایل دههٔ ۵۰، یک رایانه می‌توانست همزمان فقط یک برنامه را اجرا کند. هر کاربر تنها برای مدت محدودی از رایانه استفاده می‌کرد و با برنامه و داده‌های خود در کارت‌های کاغذ سوراخ‌دار یا نوار پانچ‌شده در یک زمان مشخص قرار می‌گرفت. برنامه وارد دستگاه می‌شود و دستگاه تا زمان تکمیل یا خراب شدن برنامه کار می‌کند. به‌طور کلی برنامه‌ها می‌توانند از طریق پنل جلویی با استفاده از کلیدهای جابجایی و چراغ‌های پانل اشکال‌زدایی شوند. گفته می‌شود که آلن تورینگ در اوایل ماشین منچستر مارک ۱ استاد این کار بوده‌است و او پیش‌تر برداشت اولیهٔ یک سیستم عامل را از اصول دستگاه جهانی تورینگ به‌دست می‌آورد.
qas: answers: text: یک رایانه می‌توانست همزمان فقط یک برنامه را اجرا کند
question: در دهه ۵۰ کارایی رایانه‌ها چگونه بود؟

answers: text: از طریق پنل جلویی با استفاده از کلیدهای جابجایی و چراغ‌های پانل
question: برنامه‌ها در دهه ۵۰ چگونه می‌توانستند اشکال‌زدایی شوند؟

answers: text: آلن تورینگ
question: چه کسی استاد اشکال‌زدایی برنامه‌ها بود؟

question: آلن تورینگ اهل کدام شهر بود؟

context: ریز کامپیوترها برای نخستین بار از ظرفیت یا نیاز به سیستم عامل‌های پیچیده‌ای که برای اصلی‌ها و مینی‌ها ساخته شده بودند، نداشتند. سیستم عامل‌های حداقلی توسعه یافته بودند، که اغلب از ROM بارگذاری می‌شوند و به عنوان مانیتور معروف هستند. یکی از سیستم عامل‌های قابل توجه درایو اولیه، CP / M بود که در بسیاری از میکرو کامپیوترهای اولیه پشتیبانی شد و از نزدیک توسط MS-DOS مایکروسافت تقلید شد، که به عنوان سیستم عامل انتخاب شده برای IBM PC محبوبیت زیادی پیدا کرد (نسخهٔ IBM از آن با نام IBM DOS نامگذاری شد). یا DOS PC). در دههٔ ۱۹۸۰، شرکت اپل کامپیوتر (اکنون شرکت اپل) از سری محبوب میکرو رایانه‌های اپل II خود رها شد تا رایانه اپل مکینتاش را با یک رابط کاربری گرافیکی نوآورانه (GUI) به سیستم عامل مک معرفی کند.
qas: answers: text: ظرفیت یا نیاز به سیستم عامل‌های پیچیده‌ای که برای اصلی‌ها و مینی‌ها ساخته شده بودند
question: ریز کامپیوترها برای نخستین بار چه چیزی را نداشتند؟

answers: text: شرکت اپل
question: نام کنونی شرکت اپل کامپیوتر چیست؟

answers: text: ۱۹۸۰

text: در دههٔ ۱۹۸۰

text: دههٔ ۱۹۸۰
question: در چه دهه‌ای شرکت اپل از سری میکرو رایانه‌های اپل II خود رها شد؟

answers: text: شرکت اپل
question: تولید مک مربوط به کدام شرکت است؟

question: ریز کامپیوتر چیست؟

context: پروژهٔ GNU توسط ریچارد استالمن فعال و برنامه‌نویس با هدف ایجاد جایگزینی کامل نرم‌افزار رایگان در سیستم عامل اختصاصی UNIX آغاز شد. در حالی‌که این پروژه در کپی کردن قابلیت‌های بخش‌های مختلف UNIX بسیار موفق بود، توسعهٔ هستهٔ GNU Hurd بی‌ثمر بود. در سال ۱۹۹۱، لینوس توروالدز، دانشجوی علوم کامپیوتر رایانه، با همکاری داوطلبانی که از طریق اینترنت همکاری می‌کنند، نخستین نسخه از هستهٔ لینوکس را منتشر کرد. به زودی با مؤلفه‌های فضای کاربر کاربر و نرم‌افزار سیستم ادغام شد تا یک سیستم عامل کامل ایجاد شود. از آن زمان به بعد، ترکیب دو مؤلفهٔ اصلی معمولاً توسط صنعت نرم‌افزار به سادگی به «لینوکس» گفته می‌شود، یک کنوانسیون نامگذاری که استالمن و بنیاد نرم‌افزار آزاد با آن مخالف هستند و ترجیح می‌دهند نام GNU / Linux را ترجیح دهند. هستهٔ سیستم عامل توزیع نرم‌افزار برکلی، معروف به BSD، مشتق‌شده از هستهٔ سیستم عامل UNIX، که از دههٔ ۱۹۷۰ توسط دانشگاه کالیفرنیا، برکلی توزیع شده‌است. آخرین نسخهٔ آن BSD ۴٫۴ در سال ۱۹۹۵ بود که بعد از آن دیگر نسخه‌ای نداد و بنابرین این یک پروژه متوقف شده می اشد. اما توزیع‌هایی مانند FreeBSD, OpenBSD, NetBSD همچنان پایدار هستند.
qas: answers: text: لینوس توروالدز
question: چه کسی نخستین نسخه از هسته لینوکس را منتشر کرد؟

answers: text: داوطلبانی که از طریق اینترنت همکاری می‌کنند

text: با همکاری داوطلبانی که از طریق اینترنت همکاری می‌کنند
question: لینوس توروالدز با همکاری چه کسانی نخستین هسته از لینوکس را منتشر کرد؟

answers: text: ۱۹۹۱

text: در سال ۱۹۹۱

text: سال ۱۹۹۱
question: در چه سالی نخستین نسخه از هسته لینوکس منتشر شد؟

question: وظایف سیستم عامل چیست؟

context: هسته در اصل مغز سیستم عامل است. هسته وظیفهٔ مدیریت سخت‌افزار و نرم‌افزار را دارد. در واقع هسته یک سیستم عامل باید پروسه‌ها را ترتیب‌دهی کند، به هر پروسه شناسه‌ای دهد و اجرا کند و تا اتمام پروسه آن را مدیریت کند (منابع و حافظه‌اش)، توابعی برای فراخوانی برای دسترسی با حالت هسته داشته باشد و به‌طور کلی باید مانند مغز سیستم عامل عمل کند. هسته باید میزان استفاده از واحد پردازندهٔ مرکزی یا CPU برای هر پروسه را کنترل کند، هر پروسه‌ای که اولویت بیشتری داشته باشد، میزان استفاده از پردازنده را بر آن پروسه بالا می‌برد، همین‌طور وظیفهٔ نوشتن یا خواندن فایل‌ها را دارد و وظیفهٔ اجرای دستورات را دارد. در اکثر سیستم عامل‌های شبه‌یونیکس، کرنل در بوت لودر با یک سری پارامترها اجرا می‌شود و پروسهٔ init را اجرا می‌کند. کرنل باید تمامی ورودی‌ها و خروجی‌ها را بخواند. بخش مهمی از کرنل در بخش محافظت‌شده از رم لود می‌شود. به‌طور کلی‌تر هسته وظیفهٔ مدیریت سخت‌افزار و نرم‌افزار را دارد.
qas: answers: text: هسته
question: مغز سیستم عامل چیست؟

answers: text: مدیریت سخت‌افزار و نرم‌افزار
question: وظیفه هسته چیست؟

answers: text: با یک سری پارامترها
question: در سیستم عامل‌های شبه یونیکس کرنل در بوت لودر چگونه اجرا می‌شود؟

answers: text: بخش محافظت‌شده از رم

text: در بخش محافظت‌شده از رم
question: بخش مهمی از کرنل در کجا لود می‌شود؟

question: رم چیست؟

context: سیستم عامل واسط بین یک برنامهٔ کاربردی و سخت‌افزار رایانه را فراهم می‌کند، به گونه‌ای که یک برنامهٔ کاربردی می‌تواند تنها با رعایت قوانین و رویه‌های برنامه‌ریزی شده در سیستم عامل با سخت‌افزار ارتباط برقرار کند. سیستم عامل همچنین مجموعه‌ای از خدمات است که توسعه و اجرای برنامه‌های کاربردی را ساده می‌کند. اجرای یک برنامهٔ کاربردی شامل ایجاد یک فرایند توسط هستهٔ سیستم عامل است که فضای حافظه و منابع دیگر را اختصاص می‌دهد، اولویت این فرایند را در سیستم‌های چندکاره ایجاد می‌کند، کدهای باینری برنامه را در حافظه بارگذاری می‌کند و اجرای برنامهٔ کاربردی را آغاز می‌کند. سپس با کاربر و دستگاه‌های سخت‌افزاری ارتباط برقرار می‌کند.
qas: answers: text: سیستم عامل
question: چه چیزی توسعه و اجرای برنامه‌های کاربردی را ساده می‌کند؟

answers: text: ایجاد یک فرایند توسط هستهٔ سیستم عامل است که فضای حافظه و منابع دیگر را اختصاص می‌دهد
question: اجرای یک برنامه کاربردی شامل چیست؟

answers: text: برنامه را در حافظه بارگذاری می‌کند و اجرای برنامهٔ کاربردی را آغاز می‌کند. سپس با کاربر و دستگاه‌های سخت‌افزاری ارتباط برقرار می‌کند.
question: کار کدهای باینری چیست؟

question: اجزای یک سیستم عامل به چه منظور در کنار یکدیگر قرار دارند؟

context: وقفه‌ها برای سیستم عامل‌ها از اهمیت ویژه‌ای برخوردار است، زیرا آن‌ها یک روش کارآمد برای سیستم عامل برای تعامل و واکنش به محیط آن فراهم می‌کنند. گزینهٔ جایگزین، داشتن سیستم عامل منابع مختلف ورودی برای رویدادها (نظرسنجی) که نیاز به اقدام دارند را «تماشا می‌کند» را می‌توان در سیستم‌های قدیمی با پشته‌های بسیار کوچک (۵۰ یا ۶۰ بایت) یافت اما در سیستم‌های مدرن با پشته‌های بزرگ غیرمعمول است. برنامه‌نویسی مبتنی بر قطع به‌طور مستقیم توسط اکثر CPUهای مدرن پشتیبانی می‌شود. وقفه‌ها راهی را برای صرفه‌جویی در خودکار ثبت زمینه‌های ثبت محلی و اجرای کد ویژه در پاسخ به وقایع، به رایانه می‌دهد. حتی رایانه‌های بسیار اساسی از قطع سخت‌افزار پشتیبانی می‌کنند و به برنامه‌نویس اجازه می‌دهند کدی را که ممکن است هنگام وقوع آن اجرا شود، مشخص کند.
qas: answers: text: زیرا آن‌ها یک روش کارآمد برای سیستم عامل برای تعامل و واکنش به محیط آن فراهم می‌کنند
question: چرا وقفه‌ها برای سیستم عامل‌ها از اهمیت ویژه‌ای برخوردار است؟

answers: text: راهی را برای صرفه‌جویی در خودکار ثبت زمینه‌های ثبت محلی و اجرای کد ویژه در پاسخ به وقایع
question: وقفه‌ها چه خدماتی به رایانه‌ها می‌دهند؟

answers: text: کدی را که ممکن است هنگام وقوع آن اجرا شود، مشخص کند
question: یارانه‌های بسیار اساسی چه اجازه‌ای را به برنامه نویس می‌دهند؟

question: سیستم عامل توزیع شده را تعریف کنید؟

answers: text: در سیستم‌های قدیمی با پشته‌های بسیار کوچک (۵۰ یا ۶۰ بایت)

text: در سیستم‌های قدیمی با پشته‌های بسیار کوچک
question: سیستم عامل منابع مختلف ورودی برای رویداد‌ها را در کجا می‌توان یافت؟

question: سیستم عامل‌های جاسازی شده به چه منظور طراحی می‌شوند؟

context: هنگامی که یک دستگاه سخت‌افزاری باعث ایجاد وقفه می‌شود، هستهٔ سیستم عامل تصمیم می‌گیرد که چگونه با این رویداد معمولاً با اجرای کد پردازشی مقابله کند. میزان کد در حال اجرا بستگی به اولویت وقفه دارد (برای مثال: شخص معمولاً پیش از پاسخ دادن به تلفن به زنگ آشکارساز دود پاسخ می‌دهد). پردازش قطع سخت‌افزار کاری است که معمولاً به نرم‌افزاری به نام درایور دستگاه منتقل می‌شود که ممکن است بخشی از هستهٔ سیستم عامل، بخشی از برنامهٔ دیگر یا هر دو باشد. ممکن است درایورهای دستگاه با استفاده از روش‌های مختلف، اطلاعات را به یک برنامه در حال اجرا منتقل کنند.
qas: answers: text: کاری است که معمولاً به نرم‌افزاری به نام درایور دستگاه منتقل می‌شود که ممکن است بخشی از هستهٔ سیستم عامل، بخشی از برنامهٔ دیگر یا هر دو باشد
question: پردازش قطع سخت‌افزار چیست؟

answers: text: تصمیم می‌گیرد که چگونه با این رویداد معمولاً با اجرای کد پردازشی مقابله کند
question: هنگامی که یک دستگاه سخت‌افزاری باعث وقفه می‌شود، هسته سیستم عامل چه می‌کند؟

answers: text: به اولویت وقفه

text: اولویت وقفه
question: میزان کد در حال اجرا به چه چیزی بستگی دارد؟

question: نام سخت‌افزارهای یک رایانه را بنویسید؟

context: هر برنامه در حال اجرا یک پروسه است، چه در پیش‌زمینه چه در پس‌زمینه، هستهٔ سیستم عامل وظیفهٔ مدیریت پروسه‌ها را دارد. هستهٔ سیستم عامل به هر پروسه یک شناسهٔ پروسه یا PID می‌دهد، منابع و حافظهٔ پروسه را کنترل می‌کند و آن‌ها را به ترتیب خاصی اجرا می‌کند تا زمانی که پروسه به پایان برسد و پروسهٔ والد (پروسه‌ای که پروسهٔ کنونی از آن نشعت گرفته (دارای یک PPID هست هر پروسهٔ والد) به پایان رسیدن آن را تأیید کند یا مطلع شود. هر پروسه یک برنامه است، هر برنامه به مقداری حافظه و منابعی نیاز دارد، هسته وظیفهٔ این را دارد تا همهٔ این‌ها را تهیه کند، و در انتهای پروسه حافظه و منابع گرفته یا اشغال شده را خالی یا آزاد کند. در سیستم عامل‌های شبه‌یونیکس پروسهٔ مادر یا init که در هنگام راه‌اندازی سیستم عامل اجرا می‌شود نیز مادر همهٔ پروسه‌هاست؛ یعنی اگر پروسهٔ مادر از بین برود همهٔ پروسه‌های دیگر نیز از بین می‌روند.
qas: answers: text: مدیریت پروسه‌ها
question: وظیفه هسته سیستم عامل چیست؟

answers: text: شناسهٔ پروسه
question: چه چیزی حافظه پروسه را کنترل می‌کند؟

answers: text: پروسه‌ای که پروسهٔ کنونی از آن نشعت گرفته
question: پروسه والد چیست؟

answers: text: هنگام راه‌اندازی سیستم عامل
question: در سیستم عامل‌های شبه‌یونیکس پروسه مادر چه زمانی اجرا می‌شود؟

answers: text: همهٔ پروسه‌های دیگر نیز از بین می‌روند
question: اگر پروسه مادر از بین برود چه اتفاقی می‌افتد؟

question: سیستم عامل‌های شبه‌یونیکس در کجا مورد استفاده قرار می‌گیرند؟