چگونه سیستم های عامل کار می کنند
هدف از سیستم عامل، سازماندهی و کنترل سخت افزار و نرم افزار است تا دستگاه در یک رفتار انعطاف پذیر اما قابل پیش بینی رفتار کند. در این مقاله ما به شما خواهیم گفت که یک قطعه نرم افزاری باید نامیده شود، یک سیستم عامل، به شما نحوه کار با رایانه خود را در دسکتاپ شما نشان می دهد و نمونه هایی از چگونگی کنترل سیستم عامل های دیگر را در اطراف شما
سیستم عامل چیست؟
همه کامپیوترها سیستم عامل ندارند. به عنوان مثال، رایانه ای که مایکروویو را در آشپزخانه شما کنترل می کند، نیازی به یک سیستم عامل ندارد. این یک مجموعه از وظایف برای انجام، ورودی بسیار ساده برای انتظار (یک صفحه کلید شماره گیری و چند دکمه از پیش تنظیم شده) و ساده، هرگز تغییر سخت افزار برای کنترل است. برای یک رایانه مانند این، یک سیستم عامل، غرفه غیر ضروری است، به طور قابل توجهی افزایش هزینه های تولید و تولید را افزایش می دهد و پیچیدگی را به وجود می آورد که هیچیک از آنها مورد نیاز نیست. در عوض، رایانه در یک اجاق مایکروویو به سادگی تمام برنامه های سخت افزاری را اجرا می کند.
برای دستگاه های دیگر، یک سیستم عامل، قابلیت ایجاد:
به اهداف مختلفی خدمت می کنند
با استفاده از روش های پیچیده پیچیده تر ارتباط برقرار کنید
نگه داشتن با نیازهای که در طول زمان تغییر می کند
همه کامپیوترهای رومیزی دارای سیستم عامل هستند. که متداول ترین آنها خانواده سیستم عامل ویندوز توسعه یافته توسط مایکروسافت، سیستم عامل مکینتاش توسعه داده شده توسط اپل و خانواده یونیکس سیستم عامل (که شده است توسط یک تاریخ تمام افراد، شرکت ها و همکاران توسعه یافته). صدها سیستم عامل دیگر موجود برای برنامه های کاربردی خاص، از جمله تخصص برای سیستم های اصلی، رباتیک، تولید، سیستم های کنترل زمان واقعی و غیره وجود دارد.
در هر دستگاهی که یک سیستم عامل دارد، معمولا یک راه برای ایجاد تغییر در نحوه عملکرد دستگاه وجود دارد. این دور از یک تصادف خوشحال است یکی از دلایل سیستم عامل از کد قابل حمل به جای مدارهای فیزیکی دائمی ساخته شده است به طوری که می توان آنها را بدون نیاز به تمام دستگاه نابود کرد.
برای یک کاربر کامپیوتر رومیزی، شما می توانید این به این معنی به روز رسانی امنیتی جدید، پچ سیستم، نرم افزار جدید و یا حتی یک سیستم عامل کاملا جدید به جای آشغال کامپیوتر خود اضافه کنید و دوباره شروع با یکی از جدید هنگامی که شما نیاز به ایجاد یک تغییر. تا زمانی که متوجه شوید سیستم عامل چگونه کار می کند و چگونه می توانید آن را انجام دهید، در بسیاری از موارد می توانید برخی از راه های تغییر رفتار را تغییر دهید. همین امر برای گوشی شما نیز انجام می شود.
صرف نظر از چه دستگاهی سیستم عامل اجرا می شود، دقیقا چه کاری می تواند انجام دهد؟
توابع سیستم عامل
سیستم عامل هر کاری را که رایانه شما انجام می دهد کنترل می کند و منابع سیستم را مدیریت می کند.
سیستم عامل هر کاری را که رایانه شما انجام می دهد کنترل می کند و منابع سیستم را مدیریت می کند.
در سطح ساده، یک سیستم عامل دو کار انجام می دهد:
این منابع سخت افزاری و نرم افزاری سیستم را مدیریت می کند. در یک کامپیوتر رومیزی، این منابع شامل چیزهایی از قبیل پردازنده، حافظه، فضای دیسک و بیشتر (بر روی تلفن همراه، آنها عبارتند از صفحه کلید، صفحه نمایش، کتاب آدرس، شماره گیر تلفن، باتری و اتصال به شبکه).
این راه پایدار و پایدار برای برنامه های کاربردی برای مقابله با سخت افزار فراهم می کند بدون اینکه نیاز به دانستن جزئیات سخت افزار باشد.
اولین وظیفه، مدیریت سخت افزار و نرم افزار از منابع، بسیار مهم است، عنوان برنامه ها و روش های ورودی مختلف به رقابت برای جلب توجه از واحد پردازش مرکزی (CPU) و حافظه تقاضا، ذخیره سازی و ورودی / خروجی (I / O) پهنای باند برای آنها اهداف خود را در این مقام، سیستم عامل نقش پدر و مادر خوب بازی می کند، مطمئن شوید که هر نرم افزار می شود منابع لازم در حالی که بازی خوبی با تمام برنامه های کاربردی دیگر، و همچنین husbanding ظرفیت محدود این سیستم را به بزرگترین خوب از همه کاربران و برنامه های کاربردی
وظیفه دوم، ارائه یک رابط برنامه کاربردی سازگار، مخصوصا اگر یک نوع خاص از رایانه با استفاده از سیستم عامل وجود داشته باشد، یا اگر سختافزاری که کامپیوتر را برای همیشه تغییر دهد، مهم است. رابط برنامه کاربردی سازگار (API) اجازه می دهد تا یک توسعه دهنده نرم افزار برای نوشتن یک برنامه بر روی یک کامپیوتر و یک سطح بالایی از اعتماد به نفس که آن را در یک کامپیوتر دیگر از همان نوع را اجرا خواهد کرد، حتی اگر مقدار حافظه یا مقدار ذخیره سازی است متفاوت است در دو ماشین.
حتی اگر یک کامپیوتر خاص منحصر به فرد باشد، یک سیستم عامل می تواند اطمینان حاصل کند که برنامه های کاربردی همچنان اجرا می شوند، زمانی که ارتقاء سخت افزاری و به روز رسانی رخ می دهد. این به این دلیل است که سیستم عامل – نه برنامه – با مدیریت سخت افزار و توزیع منابع آن مسئولیت دارد. یکی از چالش هایی که طراحان با آن روبرو هستند این است که سیستم عامل خود را به اندازه کافی انعطاف پذیر برای اجرای سخت افزار از هزاران نفر از فروشندگان تجهیزات کامپیوتری تولید کند. سیستم های امروز می توانند هزاران چاپگر مختلف، درایوهای دیسک و ویژه را در هر ترکیب ممکن جای دهند.
انواع سیستم عامل ها
Mac OS X Panther روی صفحه نمایش گذاشته شده است
در داخل خانواده گسترده ای از سیستم عامل ها، به طور کلی چهار نوع وجود دارد که براساس نوع رایانه های کنترل شده و نوع برنامه های کاربردی که آنها پشتیبانی می کنند طبقه بندی شده اند. دسته بندی ها عبارتند از:
سیستم عامل در زمان واقعی (RTOS) – سیستم عامل های زمان واقعی برای کنترل ماشین آلات، ابزار علمی و سیستم های صنعتی استفاده می شود. یک RTOS به طور معمول دارای قابلیت رابط کاربر بسیار کمی است و هیچ سرویس کاربری کاربر نهایی نیست، زیرا سیستم زمانی که برای استفاده تحویل داده می شود یک جعبه مهر و موم شده است. بخش بسیار مهمی از RTOS مدیریت منابع کامپیوتر است، به طوری که یک عملیات خاص در همان زمان از هر بار اجرا می شود. در یک ماشین مجتمع، داشتن بخش کوچکی به سرعت حرکت می کند فقط به دلیل اینکه منابع سیستم در دسترس است ممکن است به همان اندازه فاجعه آمیز باشد که به دلیل عدم حرکت آن به دلیل سیستم مشغول باشد.
تک کاربر، تک کار – همانطور که از نامش بر می آید، این سیستم عامل برای مدیریت رایانه طراحی شده است به طوری که یک کاربر می تواند به طور موثر یک چیز را در یک زمان انجام دهد. سیستم عامل Palm برای رایانه های شخصی دستی Palm یک مثال خوب از یک سیستم عامل تک کاره تک کاربره است.
تک کاربر، چند tasking – این نوع سیستم عامل است که اکثر مردم امروز در دسکتاپ و لپ تاپ های خود استفاده می کنند. سیستم عامل مایکروسافت ویندوز و سیستم عامل MacOS اپل هر دو نمونه از سیستم عامل هستند که به یک کاربر اجازه می دهد چندین برنامه را در یک زمان همزمان اجرا کند. برای مثال، به طور کامل کاربران ویندوز می توانند در یک پردازشگر کلمه در هنگام نوشتن یک فایل از اینترنت در هنگام چاپ متن یک پیام الکترونیکی نوشتند.
چند کاربر – یک سیستم عامل چند کاربره اجازه می دهد تا بسیاری از کاربران مختلف به طور همزمان از منابع کامپیوتر استفاده کنند. سیستم عامل باید اطمینان حاصل کند که الزامات کاربران مختلف متعادل است و هر کدام از برنامه هایی که استفاده می کنند، منابع کافی و جداگانه ای است تا یک مشکل با یک کاربر بر کل جامعه کاربران تاثیر نمی گذارد. Unix، VMS و سیستم عامل های اصلی سیستم، مانند MVS، نمونه هایی از سیستم عامل های چند کاربره هستند.
مهم این است که بین سیستم عامل های چند کاربره و سیستم عامل های تک کاربر که شبکه را پشتیبانی می کنند تفاوت داشته باشند. ویندوز ۲۰۰۰ و Novell Netware هر یک از صدها یا هزاران کاربر شبکه پشتیبانی می کنند، اما سیستم عامل هایشان چندین سیستم عامل واقعی نیستند. مدیر سیستم تنها “کاربر” برای ویندوز ۲۰۰۰ یا Netware است. پشتیبانی شبکه و تمام کاربران از راه دور، شبکه را قادر می سازد، در برنامه کلی سیستم عامل، برنامه را توسط کاربر اداری اجرا کند.
سیستم عامل های کامپیوتری
خالد دوایسبس در کامپیوترش در دفتر خود در شهر بیت لحم کرانه باختری نشسته است. چندین چیز اتفاق می افتد زمانی که او چکمه کامپیوتر خود، اما در نهایت سیستم عامل طول می کشد.
خالد دوایسبس در کامپیوترش در دفتر خود در شهر بیت لحم کرانه باختری نشسته است. چندین چیز اتفاق می افتد زمانی که او چکمه کامپیوتر خود، اما در نهایت سیستم عامل طول می کشد.
عواد عواد / خبرگزاری فرانسه / گتی ایماژ
هنگامی که شما قدرت را به یک رایانه تبدیل می کنید، اولین برنامه ای که اجرا می شود، معمولا مجموعه ای از دستورالعمل هایی است که در حافظه فقط خواندنی کامپیوتر (ROM) نگهداری می شود. این کد سخت افزار سیستم را بررسی می کند تا مطمئن شود همه چیز درست کار می کند. این قدرت خود در آزمون (POST) چک پردازنده، حافظه، و سیستم پایه ورودی و خروجی (BIOS) برای خطاها و نتیجه را در یک محل حافظه را ویژه ذخیره می کند. پس از اتمام POST، نرم افزار بارگذاری شده در ROM (گاهی اوقات به نام بایوس یا سیستم عامل) شروع به فعال کردن درایوهای دیسک کامپیوتر می کند. در اکثر کامپیوترهای مدرن، هنگامی که رایانه هارد دیسک را فعال می کند، اولین تکه سیستم عامل را پیدا می کند: لودر بوت استرپ.
لودر بوت استرپ یک برنامه کوچک است که تنها یک تابع دارد: سیستم عامل را به حافظه می رساند و اجازه می دهد تا آن را برای شروع کار. در ابتدای فرم ابتدا لودر بوت استرپ برنامه های راننده کوچک را تنظیم می کند که با زیرسیستم های سخت افزاری مختلف کامپیوتر ارتباط برقرار کرده و کنترل می کند. این قسمت تقسیم بندی حافظه را که سیستم عامل، اطلاعات کاربر و برنامه های کاربردی را نگه می دارد، تنظیم می کند. ایجاد ساختارهای داده ای در آن برگزار خواهد شد که سیگنال های بی شمار، پرچم و سمافور استفاده می شود برای برقراری ارتباط است که در داخل و بین زیر سیستم و برنامه های کاربردی از کامپیوتر است. سپس کنترل کامپیوتر را به سیستم عامل تبدیل می کند.
وظایف سیستم عامل عموما به شش دسته تقسیم می شود:
مدیریت پردازنده
مدیریت حافظه
مدیریت دستگاه
مدیریت ذخیره سازی
رابط برنامه
رابط کاربری
در حالی که برخی معتقدند که یک سیستم عامل باید بیش از این شش کارها را انجام وجود دارد، و برخی از فروشندگان سیستم عامل انجام ساخت بسیاری از برنامه های سودمند و توابع کمکی به سیستم عامل خود، این شش وظایف هسته اصلی تقریبا تمام سیستم عامل را تعریف کنیم. بعد، بیایید نگاهی به ابزارهایی که سیستم عامل برای انجام هر یک از این توابع استفاده می کند نگاه کنید.
مدیریت پردازنده
قلب مدیریت پردازنده به دو موضوع مرتبط مربوط می شود:
اطمینان حاصل کنید که هر پردازش و درخواست به اندازه کافی از زمان پردازنده به درستی کار می کند
استفاده از چرخه پردازشگر برای کار واقعی به همان اندازه ممکن است
واحد اصلی نرم افزاری که سیستم عامل با برنامه ریزی کار انجام شده توسط پردازنده سروکار دارد، یک فرآیند یا یک موضوع است، بسته به سیستم عامل.
این وسوسه انگیز است که یک فرایند را به عنوان یک برنامه در نظر بگیریم، اما تصویر ناقص فرآیندهای مربوط به سیستم عامل و سخت افزار را نشان می دهد. برنامه ای که می بینید (پردازشگر کلمه، صفحه گسترده یا بازی)، در واقع یک فرآیند است، اما این برنامه ممکن است چندین فرآیند دیگر را آغاز کند، برای انجام وظایف مانند برقراری ارتباط با سایر دستگاه ها یا سایر رایانه ها. همچنین فرآیندهای متعددی وجود دارد که بدون مدرک مستقیم شما آنها را ارائه می دهد. به عنوان مثال، ویندوز XP و یونیکس می توانند چندین فرایند را برای مدیریت شبکه، مدیریت حافظه، مدیریت دیسک، کنترل ویروس و غیره داشته باشند.
یک فرآیند، پس از آن، نرم افزاری است که برخی اقدامات را انجام می دهد و می تواند توسط یک کاربر، توسط برنامه های دیگر یا سیستم عامل کنترل شود.
این فرآیندها، نه برنامه های کاربردی است، که سیستم عامل کنترل و برنامه های اجرا شده توسط CPU را اجرا می کند. در یک سیستم تک تک، برنامه زمانبندی ساده است. سیستم عامل اجازه می دهد که برنامه شروع به کار کند، اجرای آن را فقط به اندازه کافی بلند نگه دارد تا با وقفه ها و ورودی کاربر مقابله کند.
وقفه ها سیگنال های خاص ارسال شده توسط سخت افزار یا نرم افزار به CPU است. به نظر می رسد که برخی از بخش های کامپیوتر به طور ناگهانی دست خود را بالا بردند تا درخواست CPU را در جلسه پر جنب و جوش درخواست کنند. گاهی اوقات سیستم عامل اولویت پردازش ها را برنامه ریزی می کند به طوری که وقفه ها مسدود می شوند – یعنی سیستم عامل از وقوع وقفه ها از برخی منابع نادیده گرفته می شود تا کار خاصی به حداکثر ممکن برسد. برخی از وقفه ها (مانند کسانی که از خطاهای احتمالی یا مشکلات حافظه هستند) وجود دارد که بسیار مهم هستند و نمیتوان آنها را نادیده گرفت. این وقفه های غیر قابل آسیب (NMI) باید بدون نیاز به کارهای دیگری که در دست است، بلافاصله صورت گیرد.
در حالی که وقفه ها بعضی از پیچیدگی ها را به اجرای فرایندها در یک سیستم تک تک کار اضافه می کنند، کار سیستم عامل بسیار پیچیده تر از سیستم چند tasking است. در حال حاضر، سیستم عامل باید اجرای برنامه ها را ترتیب دهد تا باور کنید چندین بار اتفاق می افتد. این پیچیده است زیرا CPU تنها می تواند یک کار را در یک زمان انجام دهد. امروزه پردازنده های چند هسته ای و دستگاه های چند پردازنده می توانند کار بیشتری انجام دهند، اما هر پردازنده هنوز هم قادر به مدیریت یک کار در یک زمان است.
به منظور ظهور بسیاری از چیزهایی که در همان زمان اتفاق می افتد، سیستم عامل باید بین فرایندهای مختلف هزاران بار به ثانیه تغییر کند. در اینجا این است که چگونه اتفاق می افتد:
فرایند مقدار مشخصی از RAM را اشغال می کند. همچنین از ثبت، پشته و صف در داخل حافظه CPU و حافظه سیستم عامل استفاده می کند.
هنگامی که دو فرآیند چند tasking هستند، سیستم عامل به تعداد مشخصی از چرخه اجرای CPU به یک برنامه اختصاص می یابد.
پس از آن تعداد چرخه ها، سیستم عامل کپی از تمام رکوردها، پشته ها و صف های مورد استفاده در فرآیندها را تولید می کند و نقطه ای را که فرآیند در اجرای آن متوقف می شود، یاد می گیرد.
سپس تمام registers، stacks ها و صف های مورد استفاده در فرایند دوم را بارگذاری می کند و به تعداد معینی از چرخه CPU اجازه می دهد.
هنگامی که آنها کامل هستند، آن را کپی از تمام ثبت، ستون ها و صف ها توسط برنامه دوم استفاده می کند و اولین برنامه را بارگذاری می کند.
این محتوا در این دستگاه سازگار نیست.
بلوک کنترل فرآیند
تمام اطلاعات مورد نیاز برای پیگیری فرآیند زمانی که سوئیچینگ در یک بسته داده می شود به نام بلوک کنترل فرایند نگهداری می شود. بلوک کنترل فرایند معمولا شامل موارد زیر است:
شماره شناسایی که روند را شناسایی می کند
اشاره به مکان ها در برنامه و داده های آن که در آن پردازش انجام شد
محتویات را ثبت کنید
ایالات پرچم ها و سوئیچ های مختلف
اشاره گرها به سطوح بالا و پایین حافظه مورد نیاز برای فرایند است
لیستی از فایل های باز شده توسط این فرآیند
اولویت فرآیند
وضعیت تمام دستگاه های I / O مورد نیاز فرآیند
هر فرایند دارای وضعیت مرتبط با آن است. بسیاری از فرایندها هیچ زمان پردازنده ای مصرف نمی کنند تا زمانی که به نوعی ورودی دسترسی پیدا کنند. به عنوان مثال، یک فرآیند ممکن است در انتظار یک عمل کلیدی از کاربر باشد. در حالی که در حال انتظار برای ضربه زدن به کلید است، هیچ وقت CPU مصرف نمی کند. در حالی که انتظار دارد، “معلق” است. هنگامی که دستکاری روی کلید وارد می شود، سیستم عامل وضعیت خود را تغییر می دهد. هنگامی که وضعیت تغییرات تکنولوژیکی، از در انتظار به فعال، به عنوان مثال، و یا از به در حال اجرا به حالت تعلیق، اطلاعات در بلوک کنترل فرآیند باید مانند داده ها در هر برنامه دیگر استفاده برای هدایت اجرای بخش تغییر وظیفه از سیستم عامل
این فرآیند مبادله بدون دخالت مستقیم کاربر اتفاق می افتد، و هر پردازش به اندازه کافی CPU چرخه برای انجام وظیفه خود را در زمان مناسب معقول است. مشکل در همان زمان شروع می شود. سیستم عامل خود نیاز به برخی از چرخه پردازنده برای انجام صرفه جویی و مبادله تمام رکوردها، صف ها و ستون های فرایندهای برنامه را دارد. اگر فرآیندهای اندازه کافی آغاز شده است، و اگر سیستم عامل شده است با دقت طراحی نشده، سیستم می تواند شروع به استفاده از اکثریت قریب به اتفاق چرخه های CPU های موجود برای مبادله آن بین فرایندهای جای فرایندهای اجرا کنید. هنگامی که این اتفاق می افتد، آن را به نام thrashing می نامند، و معمولا به نوعی مداخله کاربر مستقیم نیاز دارد تا پردازش ها را متوقف کند و نظم را به سیستم بازگرداند.
یکی از راه هایی که طراحان سیستم عامل با آن می توانند احتمال بروز ترافیک را کاهش دهند، کاهش نیاز به فرایندهای جدید برای انجام وظایف مختلف است. برخی از سیستم عامل برای یک «روند-LITE،” به نام یک موضوع، که می تواند با همه کار CPU فشرده از یک فرایند به طور منظم مقابله اجازه می دهد، اما به طور کلی با انواع مختلفی از I / O مقابله نمی کند و ساختارهای تاسیس نمی نیاز بلوک فرآیند کنترل فرایند یک فرایند منظم. فرایند ممکن است بسیاری از موضوعات یا فرآیندهای دیگر را شروع کند، اما یک موضوع نمیتواند یک فرایند را شروع کند.
تا کنون، تمام زمان بندی مورد بحث ما مربوط به یک CPU واحد است. در یک سیستم با دو یا چند پردازنده، سیستم عامل باید حجم کار در میان پردازنده تقسیم می شوند، تلاش به تعادل خواسته های procesos مورد نیاز با چرخه موجود در CPU های مختلف. سیستم عامل های نامتقارن از یک CPU برای نیازهای خود استفاده می کنند و تقسیم فرآیندهای درخواست در میان CPU های باقیمانده. سیستم عامل های متقارن خود را در میان پردازنده های مختلف تقسیم می کنند، تقسیم تقاضا در مقابل در دسترس بودن پردازنده، حتی زمانی که سیستم عامل تمام آن را اجرا می کند.
اگر سیستم عامل تنها نرم افزار با نیازهای اجرایی باشد، CPU تنها منبع برنامه ریزی نیست. مدیریت حافظه گام مهم بعدی در اطمینان از این است که تمام فرآیندها هموار می شوند.
ذخیره سازی و مدیریت حافظه
هنگامی که یک سیستم عامل حافظه کامپیوتر را مدیریت می کند، دو وظیفه گسترده ای برای انجام این کار وجود دارد:
هر پروسه باید حافظه کافی داشته باشد که در آن اجرا شود، و نمیتواند در فضای حافظه فرآیند دیگری اجرا شود.
انواع مختلف حافظه در سیستم باید به درستی استفاده شود تا هر فرآیند بتواند به طور موثر اجرا شود.
اولین کار نیاز به سیستم عامل برای تنظیم مرزهای حافظه برای انواع نرم افزار و برای برنامه های کاربردی فردی.
به عنوان مثال، بیایید به یک سیستم کوچک خیالی با ۱ مگابایت (۱۰۰۰ کیلوبایت) RAM نگاه کنیم. در طول فرایند بوت، سیستم عامل رایانه خیالی ما طراحی شده است تا به بالای حافظه موجود بپردازد و سپس “به عقب” به اندازه کافی برای پاسخگویی به نیازهای سیستم عامل خود است. بگذارید بگوییم سیستم عامل نیاز به ۳۰۰ کیلوبایت دارد. در حال حاضر، سیستم عامل به پایین استخر رم می رود و شروع به ساختن با نرم افزار راننده های مختلف مورد نیاز برای کنترل زیر سیستم های سخت افزاری کامپیوتر می کند. در رایانه خیالی ما، رانندگان ۲۰۰ کیلو بایت دریافت می کنند. پس پس از اینکه سیستم عامل به طور کامل بارگذاری شد، برای پروسه های درخواست ۵۰۰ کیلوبایت وجود دارد.
هنگامی که برنامه ها به حافظه بارگذاری می شوند، در اندازه بلوک تعیین شده توسط سیستم عامل بارگذاری می شوند. اگر اندازه بلوک ۲ کیلوبایت باشد، هر پروسه ای که بارگذاری می شود، به حافظه ای تقریبا ۲ کیلوبایت در اندازه داده می شود. برنامه های کاربردی در این اندازه بلوک ثابت بارگذاری می شوند، با بلوک های شروع و پایان دادن به مرزهای ایجاد شده با کلمات ۴ یا ۸ بایت. این بلوک ها و مرزها کمک می کند تا اطمینان حاصل شود که برنامه ها با دو یا دو محاسبه ضعیف در بالای فضای یکدیگر قرار نمی گیرند. با این اطمینان، سوال بزرگتر این است که چه کاری باید انجام شود وقتی که فضای برنامه ۵۰۰ کیلوبایت پر شده است.
در اکثر رایانه ها، ممکن است حافظه فراتر از ظرفیت اصلی اضافه شود. برای مثال، شما ممکن است RAM را از ۱ تا ۲ گیگابایت گسترش دهید. این کار خوب است، اما می تواند نسبتا گران باشد. این همچنین یک واقعیت اساسی محاسبات را نادیده می گیرد – بیشتر اطلاعاتی که در هر زمان خاص استفاده می شود. یک پردازنده تنها می تواند به یک حافظه دسترسی داشته باشد، بنابراین اکثریت قریب به اتفاق RAM در هر لحظه استفاده نمی شود. از آنجا که فضای دیسک با RAM مقایسه می شود، سپس انتقال اطلاعات در RAM به هارد دیسک می تواند بدون هیچ هزینه ای RAM فضای بیشتری را به وجود آورد. این روش مدیریت حافظه مجازی است.
ذخیره سازی دیسک تنها یکی از انواع حافظه است که بایستی توسط سیستم عامل مدیریت شود، و همچنین کمترین سرعت است. به ترتیب سرعت مرتب شده اند، انواع حافظه در یک سیستم کامپیوتری عبارتند از:
حافظه با سرعت بالا – این مقدار سریع و نسبتا کوچک حافظه است که از طریق سریعترین اتصالات به CPU در دسترس است. کنترل کننده های حافظه پنهان پیش بینی می کنند کدام یک از قطعات پردازشگر بعدا نیاز داشته باشد و آن را از حافظه اصلی به حافظه با سرعت بالا بکشد تا سرعت عملکرد سیستم را افزایش دهد.
حافظه اصلی – این RAM است که شما در مگابایت هنگام خرید یک کامپیوتر اندازه گیری می کنید.
حافظه ثانویه – این اغلب نوعی چرخش ذخیره سازی مغناطیسی است که برنامه ها و داده ها را در دسترس برای استفاده قرار می دهد و به عنوان حافظه مجازی تحت کنترل سیستم عامل عمل می کند.
سیستم عامل باید نیازهای فرآیندهای مختلف را با در دسترس بودن انواع مختلف حافظه، داده های حرکتی در بلوک ها (صفحات نامیده می شود) بین حافظه در دسترس و برنامه ریزی فرآیندها تعیین می کند.
مدیریت دستگاه
یک راننده به سیستم عامل کمک می کند با سیگنال های الکتریکی از سخت افزار کامپیوتر ارتباط برقرار کند.
یک راننده به سیستم عامل کمک می کند با سیگنال های الکتریکی از سخت افزار کامپیوتر ارتباط برقرار کند.
مسیر بین سیستم عامل و تقریبا تمام سخت افزار رفتن به یک برنامه خاص به نام راننده است. بخش عمده ای از عملکرد راننده، مترجم بین سیگنال های الکتریکی زیر سیستم های سخت افزاری و زبان های برنامه نویسی سطح بالا سیستم عامل و برنامه های کاربردی است. رانندگان داده که سیستم عامل به عنوان یک فایل تعریف شده و ترجمه آنها را به جریان بیت قرار داده شده در مکان های خاص بر روی دستگاه های ذخیره سازی، و یا یک سری از پالس لیزر در یک پرینتر.
از آنجا که تفاوت های زیادی در سختافزار وجود دارد، تفاوت در نحوه عملکرد برنامه های درایور است. اغلب اجرا می شود زمانی که دستگاه مورد نیاز است، و عملکرد بسیار مشابه هر فرآیند دیگر. سیستم عامل غالبا بلوک های اولویت اولویت را به رانندگان اختصاص می دهد تا بتواند منابع سخت افزاری را به سرعت منتشر کند و برای استفاده بیشتر آماده شود.
یکی از دلایلی که رانندگان جدا از سیستم عامل می باشد بنابراین توابع جدید می شود که به راننده اضافه شده – و در نتیجه به زیر سیستم های سخت افزاری – بدون نیاز به سیستم عامل خود را به اصلاح شود، مجددا کامپایل و توزیع شود. از طریق توسعه درایور های دستگاه های سخت افزاری جدید، توسعه و یا پرداخت برای اغلب توسط تولید کننده از زیر سیستم به جای ناشر از سیستم عامل انجام، قابلیت های ورودی / خروجی از سیستم کلی می توان تا حد زیادی افزایش یافته است.
مدیریت ورودی و خروجی است تا حد زیادی به یک موضوع از مدیریت صف و بافر، تجهیزات ذخیره سازی ویژه ای است که به یک جریان از بیت از یک دستگاه، شاید یک صفحه کلید یا پورت سریال، کسانی که بیت را نگه دارید، و انتشار آنها را به CPU در یک نرخ که با آن CPU می تواند مقابله کند. این عمل هنگامی که تعدادی از فرآیندها در حال اجرا هستند و زمان پردازشگر را به دست می آورند، بسیار مهم است. سیستم عامل بافر را ادامه خواهد داد تا ورودی را از دستگاه دریافت کند، اما برای متوقف کردن ارسال داده به پردازنده، در حالی که فرایند با استفاده از ورودی معلق است. سپس، هنگامی که فرآیند مورد نیاز ورودی یکبار دیگر انجام می شود، سیستم عامل بافر را برای ارسال داده ها دستور می دهد. این فرآیند اجازه می دهد تا یک صفحه کلید یا مودم با کاربران خارجی یا رایانه های با سرعت بالا مقابله کند، هرچند که زمانیکه CPU نمی تواند از ورودی آن منابع استفاده کند.
مدیریت تمام منابع سیستم کامپیوتری بخش بزرگی از عملکرد سیستم عامل است و در مورد سیستم عامل های زمان واقعی با این حال، برای سیستم عامل های دیگر، ارائه راه ساده و سازگار برای برنامه های کاربردی و انسان برای استفاده از قدرت سخت افزار بخش مهمی از دلیل خود را برای موجود است.
رابط برنامه کاربردی
یک افسر شرکت سرمایه گذاری ربات ZMP ربات کنترل انسانی را “Nuvo” در توکیو ژاپن می کند.
کویچی کاموشیدا / گتی ایماژ
فقط به عنوان راننده فراهم می کند که یک راه را برای برنامه های کاربردی برای استفاده از زیر سیستم های سخت افزاری بدون نیاز به دانستن هر جزئیات از عملیات سخت افزار است، برنامه نرم افزار رابط (API ها) اجازه برنامه نویسان نرم افزار استفاده از توابع از کامپیوتر و سیستم عامل بدون نیاز به طور مستقیم آهنگ از تمام حفظ جزئیات در عمل CPU. بیایید به مثال ایجاد یک فایل دیسک سخت برای نگهداری داده ها نگاه کنیم تا ببینیم چرا این مهم می تواند مهم باشد.
یک برنامه نویس که یک برنامه کاربردی را برای ضبط داده ها از یک ابزار علمی بنویسد، می تواند به دانشمند اجازه دهد که نام فایل ایجاد شده را مشخص کند. سیستم عامل ممکن است یک تابع API به نام MakeFile برای ایجاد فایل فراهم کند. هنگام نوشتن برنامه، برنامهنویس یک خط را به صورت زیر میبیند:
MakeFile [1،٪ نام، ۲]
در این مثال، دستور می گوید سیستم عامل برای ایجاد یک فایل که دسترسی تصادفی به اطلاعات STI اجازه خواهد داد (مدلول توسط یک – گزینه دیگر ممکن است ۰ برای یک فایل سریال)، یک نام در توسط کاربر تایپ (٪ نام) خواهد شد و یک اندازه است که به چه مقدار اطلاعات بسته در فایل (مدلول توسط ۲ ذخیره می شود متفاوت است – از دیگر گزینه های ممکن است صفر برای یک اندازه ثابت، و ۱ برای یک فایل که داده ها اضافه شده است که به عنوان رشد می کند اما هنگامی که داده حذف می شود کوچک نمی شود) اکنون، بیایید نگاه کنیم که سیستم عامل چه کاری را انجام می دهد تا دستورالعمل را به عمل تبدیل کند.
سیستم عامل یک پرس و جو را به درایو دیسک می فرستد تا محل اولین مکان ذخیره سازی رایگان موجود را بدست آورد.
با این اطلاعات، سیستم عامل ایجاد یک ورودی در فایل سیستم نشان دادن شروع و پایان دادن مکان از فایل، نام فایل، نوع فایل، که آیا فایل است، شده است آرشیو، که کدام کاربران مجوز به در نگاه کنید و یا تغییر دهید فایل و تاریخ و زمان ایجاد فایل.
سیستم عامل اطلاعات ابتدایی فایل را مشخص می کند که فایل را شناسایی می کند، نوع دسترسی را تنظیم می کند و شامل اطلاعات دیگر است که فایل به برنامه می باشد. در تمام این اطلاعات، نمایش داده شده به درایو دیسک و آدرس نقطه شروع و پایان فایل به شدت وابسته به سازنده و مدل درایو دیسک است.
از آنجا که برنامه نویس برنامه برای استفاده از API برای ذخیره سازی دیسک نوشته است، برنامه نویس ندارد به نگه دارید تا با کدهای آموزش، انواع داده ها و کدهای پاسخ برای هر نوار و دیسک هارد دیسک امکان پذیر است. سیستم عامل، متصل به رانندگان برای زیر سیستم های مختلف سخت افزاری، با جزئیات تغییر سخت افزار ارتباط دارد. برنامه نویس باید به سادگی کد را برای API بنویسد و به سیستم عامل اعتماد کند تا بقیه را انجام دهد.
API ها در سال های اخیر تبدیل به یکی از مناطق پرطرفدار صنعت کامپیوتر شده اند. شرکت ها متوجه هستند که برنامه نویسان با استفاده از API خود در نهایت این را به توانایی کنترل و سود بخش خاصی از صنعت تبدیل می کنند. این یکی از دلایلی است که بسیاری از شرکت ها مایل به ارائه برنامه هایی مانند خوانندگان و بیننده به عموم هستند. آنها درخواست می کنند که برنامه ها از خوانندگان آزاد استفاده کنند و شرکت های نرم افزاری آماده پرداخت هزینه های حقوقی برای اجازه دادن به نرم افزار خود برای ارائه توابع درخواست شده توسط مصرف کنندگان هستند.
رابط کاربری
عکسبرداری از سیستم عامل لینوکس Red Hat
درست همانطور که API یک راه سازگار برای برنامه های کاربردی برای استفاده از منابع سیستم کامپیوتری فراهم می کند، یک رابط کاربری (UI) ساختار را برای تعامل بین یک کاربر و کامپیوتر به ارمغان می آورد. در دهه گذشته، تقریبا تمام توسعه در رابط کاربری رابط کاربری گرافیکی (رابط کاربری گرافیکی) با دو مدل Macintosh اپل و ویندوز مایکروسافت بوده است که بیشترین توجه را به دست می آورند و بیشترین سهم بازار را به دست می آورند. سیستم عامل لینوکس محبوب منبع باز نیز از یک رابط کاربری گرافیکی پشتیبانی می کند.
رابط کاربری دیگر، برخی از گرافیکی و برخی دیگر، برای دیگر سیستم عامل وجود دارد.
یونیکس، به عنوان مثال، دارای رابط کاربر به نام پوسته هایی است که یک رابط کاربری را انعطاف پذیر تر و قدرتمند تر از رابط متنی مبتنی بر سیستم عامل استاندارد ارائه می دهد. برنامه هایی مانند Korn Shell و C Shell رابط های مبتنی بر متن هستند که ابزارهای مهم را اضافه می کنند اما هدف اصلی آنها این است که کاربر بتواند توابع سیستم عامل را دستکاری کند. همچنین رابط کاربری گرافیکی مانند X-Windows و Gnome وجود دارد که یونیکس و لینوکس را از دیدگاه کاربر بیشتر شبیه ویندوز و Macintosh می دانند.
مهم این است که به یاد داشته باشید که در تمام این مثالها، رابط کاربر یک برنامه یا مجموعه ای از برنامه هایی است که به عنوان یک لایه بالای سیستم عامل خود نشسته است. همین امر درست است، با مکانیسم های مختلف، از هر دو سیستم عامل ویندوز و مکینتاش. سیستم عامل اصلی – مدیریت سیستم کامپیوتری – در هسته سیستم عامل قرار دارد. مدیر صفحه نمایش جداگانه است، هرچند ممکن است به کرنل زیر محدود شود. ارتباط بین هسته سیستم عامل و رابط کاربری، ابزارهای نرم افزاری و دیگر نرم افزارها امروزه بسیاری از تفاوت های موجود در سیستم عامل ها را تعریف می کند و در آینده آنها را تعریف می کند.
توسعه سیستم عامل
لوگوی لینوکس
آرم لس آنجلس لری اویگ
برای سیستم های دسکتاپ، دسترسی به LAN و یا اینترنت تبدیل شده است ویژگی انتظار می رود به طوری که در بسیاری از آن را سخت به بحث در مورد یک سیستم عامل بدون اینکه اشاره به ارتباطات خود را به دیگر کامپیوتر و سرور. توسعه دهندگان سیستم عامل ساخته اند که اینترنت روش استاندارد برای ارائه به روز رسانی سیستم عامل بسیار مهم و رفع اشکال. ، اگر چه آن را ممکن است برای دریافت به روز رسانی از طریق سی دی و یا دی وی دی این، آن را تبدیل شدن به طور فزاینده ای کمتر رایج است. در واقع، برخی سیستم عامل کامل تنها از طریق توزیع خود را بر روی اینترنت در دسترس هستند.
هسته، رابط کاربری و تمام – – خاموش از دستگاه آن را کنترل بیشتر، یک فرآیند به نام netbooting قابلیت به حرکت سیستم عامل کار یک کامپیوتر رومیزی مصرف کننده استاندارد کارآمد است. این فقط برای پیش تجربه قدرت کاربران بر روی سیستم عامل چند کاربره مثل یونیکس و با مجموعه ای از برنامه های کاربردی تخصصی امکان پذیر بود. Netbooting اجازه می دهد تا سیستم عامل برای یک کامپیوتر به کامپیوتر بیش از یک اتصال به شبکه خدمت کرده است، توسط یک کامپیوتر از راه دور در هر نقطه از شبکه متصل است. یک سرور netboot در می تواند سیستم عامل به کامپیوتر مشتری به طور همزمان چند ده خدمت می کنند، و به کاربر نشستن در مقابل هر کامپیوتر مشتری تجربه هم مثل خانواده است آنها آنها با استفاده از سیستم عامل دسکتاپ مانند ویندوز و یا سیستم عامل مک.
یک سوال در مورد آینده از سیستم عامل نگرانی توانایی صاحبان فلسفه توزیع نرم افزار برای ایجاد یک سیستم عامل قابل استفاده توسط شرکت های بزرگ و مصرف کنندگان با هم.
لینوکس، سیستم عامل ایجاد و توزیع به اصول توجه منبع باز، شما تاثیر قابل توجهی بر روی سیستم عامل را به طور کلی داشته اند. نسخه است که نمی تواند مورد مطالعه و یا تغییر یافته است – اکثر سیستم های عامل، درایور و برنامه های سودمند توسط سازمان تجاری است که توزیع نسخه های اجرایی از نرم افزار خود نوشته شده است. منبع باز نیاز به توزیع مواد منبع اصلی می توان مورد مطالعه که، تغییر و ساخته شده بر، با نتایج یک بار دیگر آزادانه توزیع شده است. در قلمرو کامپیوتر رومیزی، این امر منجر به توسعه و توزیع برنامه های کاربردی مفید و مقرون به بی شماری رایگان مانند برنامه دستکاری تصویر GIMP و محبوب سرور آپاچی وب منجر شده است. در مصرف کننده دستگاه قلمرو، استفاده از لینوکس، راه را برای کاربران تک هموار کرده است به کنترل بیشتری بر آنها دستگاه چگونه رفتار کنند.
بسیاری از دستگاه های مصرف کننده مانند تلفن همراه و روتر عمدا مخفی کردن دسترسی به سیستم عامل از کاربر، مطمئن شوید که آن را بیشتر سهوا شکسته و یا حذف شده است. در بسیاری از موارد، آنها یک “حالت توسعه” و یا “حالت برنامه نویس” باز ترک به اجازه تغییر ساخته شود. howe3ver، این تنها اگر شما می دانید که چگونه آن را پیدا کنید. این سیستم اغلب ممکن است در راه برنامه ریزی که وجود دارد مثل تنها تعداد محدودی از تغییرات را می توان made.Some که هر دو دستگاه ترک یک حالت دسترسی و به معنای ایجاد تغییرات قدرتمند باز به کاربران، به ویژه کسانی که با استفاده از لینوکس است. در اینجا چند نمونه از این موارد وجود دارد:
TiVo DVR بر روی نسخه اصلاح شده لینوکس اجرا می شود. همه از تغییرات دانش عمومی، و می توان در اینجا با برخی از ابزار خاص همراه برای دستکاری کد دریافت کنید. بسیاری از کاربران با استفاده از ویدئو مشاغل اضافه شده است قابلیت به سیستم های خود، از جمله افزایش ظرفیت ذخیره سازی به رسیدن به پوسته یونیکس به تغییر حالت از NTSC به PAL.
بسیاری از روترهای خانگی نیز روی لینوکس اجرا می شوند.