4.1: Роль операційної системи
- Page ID
- 34540
Операційна система лежить в основі всієї роботи сучасного комп'ютера.
Абстракція заліза
Фундаментальна робота операційної системи (ОС) полягає в абстрагуванні апаратного забезпечення програміста і користувача. Операційна система надає загальні інтерфейси до послуг, що надаються базовим обладнанням.
У світі без операційних систем кожному програмісту потрібно було б знати найпотаємніші деталі основного обладнання, щоб що-небудь запустити. Гірше того, їхні програми не працювали б на іншому обладнанні, навіть якщо це обладнання має лише незначні відмінності.
Багатозадачність
Ми очікуємо, що сучасні комп'ютери будуть робити багато різних речей одночасно, і нам потрібен певний спосіб арбітражу між усіма різними програмами, що працюють в системі. Це робота операційних систем, щоб це відбувалося без проблем.
Операційна система відповідає за управління ресурсами всередині системи. Багато завдань будуть конкурувати за ресурси системи під час її роботи, включаючи процесорний час, пам'ять, диск і введення користувача. Завдання операційної системи полягає в арбітражі цих ресурсів для кількох завдань і надання їм доступу впорядковано. Ви, напевно, переживали, коли це не вдається, оскільки це зазвичай закінчується збоєм комп'ютера (наприклад, знаменитий «синій екран смерті»).
Стандартизовані інтерфейси
Програмісти хочуть писати програми, які будуть працювати на якомога більшій кількості різних апаратних платформ. Маючи підтримку операційною системою стандартизованих інтерфейсів, програмісти можуть отримати цей функціонал.
Наприклад, якщо функція відкриття файлу в одній системі відкрита (), на іншій - open_file (), а на іншому openf () програмісти матимуть подвійну проблему запам'ятовування того, що робить кожна система, і їхні програми не працюватимуть на декількох системах.
Інтерфейс портативної операційної системи (POSIX)
X походить від Unix, з якого виріс стандарт. Сьогодні POSIX - це те саме, що і Єдина специфікація UNIX версії 3 або ISO/IEC 9945:2002. Це безкоштовний стандарт, доступний онлайн.
Колись одна специфікація UNIX та стандарти POSIX були окремими суб'єктами. Єдина специфікація UNIX була випущена консорціумом під назвою «Відкрита група» і була у вільному доступі відповідно до їх вимог. Остання версія - Єдиний Unix Специфікація Версія 3.
Стандарти IEEE POSIX були випущені як IEEE Std 1003. [вставити різні роки, зміни тут], і не були у вільному доступі. Остання версія - IEEE 1003.1-2001 і еквівалентна одній специфікації Unix версії 3.
Таким чином, нарешті два окремі стандарти були об'єднані в так звану версію єдиної специфікації UNIX 3, яка також стандартизована ISO відповідно до ISO/IEC 9945:2002. Це сталося на початку 2002 року. Тому, коли люди говорять про POSIX, SUS3 або ISO/IEC 9945:2002, всі вони означають одне і те ж!
є дуже важливим стандартом, реалізованим операційними системами типу UNIX. Microsoft Windows має аналогічні фірмові стандарти.
Безпека
На багатокористувацьких системах безпека дуже важлива. Як арбітр доступу до системи операційна система відповідає за забезпечення доступу до ресурсів лише ті, хто має правильні дозволи.
Наприклад, якщо файл належить одному користувачеві, іншому користувачеві забороняється відкривати і читати його. Однак також повинні бути механізми для безпечного обміну цим файлом між користувачами, якщо вони цього хочуть.
Операційні системи - це великі і складні програми, і часто будуть виявлені проблеми з безпекою. Часто вірус або черв'як скористаються цими помилками для доступу до ресурсів, яким він не повинен бути дозволений, наприклад, ваші файли або мережеве з'єднання; для боротьби з ними ви повинні встановити патчі або оновлення, надані постачальником операційної системи.
Продуктивність
Оскільки операційна система надає комп'ютеру стільки послуг, її продуктивність має вирішальне значення. Багато частин операційної системи працюють надзвичайно часто, тому навіть накладні витрати лише на кілька циклів процесора можуть додати до великого зниження загальної продуктивності системи.
Операційна система повинна використовувати функції базового обладнання, щоб переконатися, що вона отримує найкращу можливу продуктивність для операцій, і, отже, системні програмісти повинні розуміти інтимні деталі архітектури, для якої вони будують.
У багатьох випадках робота програмістів системи полягає в прийнятті рішення про політику для системи. Часто випадок, коли побічні ефекти змусити одну частину операційної системи працювати швидше, змусять іншу частину працювати повільніше або менш ефективно. Системні програмісти повинні розуміти всі ці компроміси, коли вони будують свою операційну систему.