Реалізація багатозадачності

По числу одночасно виконуваних задач операційні системи можуть бути розділені на два класи:

• багатозадачні (Linux, Unix, Windows XP).

• однозадачні (наприклад, MS-DOS) .

Багатозадачна ОС, вирішуючи проблеми розподілу ресурсів і конкуренції, повністю реалізує мультипрограмний режим.

Приблизність класифікації очевидна. Так в ОС MS-DOS можна організувати запуск дочірньої задачі і одночасне співіснування в пам'яті двох і більш задач. Проте ця ОС традиційно вважається однозадачною, головним чином через відсутність захисних механізмів і комунікаційних можливостей.

Підтримка розрахованого на багато користувачів режиму

По числу одночасно працюючих користувачів ОС можна розділити на:

• однокористувацькі (MS-DOS, Windows 9.x);

• багатокористувацькі (Windows XP, Linux).

Найістотніша відмінність полягає в наявності у розрахованих на багато користувачів систем механізмів захисту персональних даних кожного користувача.

Багатопроцесорна обробка.Багатопроцесорні системи складаються з двох або більш центральних процесорів, що здійснюють паралельне виконання команд. Підтримка мультипроцесування є важливою властивістю ОС і приводить до ускладнення всіх алгоритмів управління ресурсами. Багатопроцесорна обробка реалізована в таких ОС, як Linux, Solaris, Windows XP і у ряді інших.

Багатопроцесорні ОС розділяють на симетричні і асиметричні. У симетричних ОС на кожному процесорі функціонує одне і те ж ядро і задача може бути виконана на будь-якому процесорі, тобто обробка повністю децентралізована. У асиметричних ОС процесори нерівноправні. Звичайно існує головний процесор (master) і підлеглі (slave), завантаження і характер роботи яких визначає головний процесор.

Системи реального часу. У розряд багатозадачних ОС, разом з пакетними системами і системами розділення часу, включаються також системи реального часу.

Вони використовуються для управління різними технічними об'єктами або технологічними процесами. Такі системи характеризуються гранично допустимим часом реакції на зовнішню подію, протягом якого повинна бути виконана програма, що управляє об'єктом. Система повинна обробляти дані швидше, ніж ті можуть поступати, причому від декількох джерел одночасно.

Такі жорсткі обмеження позначаються на архітектурі систем реального часу, наприклад, в них може бути відсутнім віртуальна пам'ять, підтримка якої дає непередбачувані затримки у виконанні програм.

ОС сімейства Unix

UNIX(Ю́нікс)— це операційна система, яка спочатку розроблялася впродовж 1969—1970-х років групою співробітників підрозділу Bell Labs корпорації AT&T, яка включала Кена Томпсона, Денніса Рітчі та Дугласа Макілроя. Натепер існує безліч різних UNIX-систем, які, в свою чергу, об'єднуються в родини. В їх розробці в різний час брали участь AT&T, деякі комерційні фірми, а також некомерційні організації.

Файлова система Unix

Файлова структура Unix характеризується такими властивостями:

· Чітка побудова;

· Звернення до даних файлу без суперечностей;

· Захист даних файлу.

Цей стандарт вимагає, щоб операційна система, яка працюватиме з СПФС узгодженою файловою системою, підтримуватиме ці базові риси надійності, які є в більшості файлових систем Unix. Цей стандарт не намагається узгоджуватися з кожним можливим аспектом в усіх конкретних реалізаціях Unix-систем. Проте, багато аспектів цього стандарту базується на ідеях, що є в Unix та інших Unix подібних системах.

Це — після уважного розгляду інших факторів, включає:

· Традиційна та добре сприйнята практика в Unix-подібних системах;

· Впровадження побудов інших файлових структур;

· Застосовні стандарти.

Визначається дві незалежні категорії файлів: загальні (shareable) на противагу приватним(unshareable) та змінні на противагу постійним.

Загальні дані - це ті, що можуть бути спільними для декількох головних машин;

Приватні дані - мають бути специфічними для кожного головного комп'ютера.

Наприклад, домашні каталоги користувачів — загальні данні, але файли контролю пристроїв — ні.

Постійні файли - двійкові, бібліотеки, документація та все інше, що має змінюватися тільки адміністиратором системи;

Змінні - все, що може бути змінено без втручання адміністиратора системи.

Для полегшення резервування, керування та спільного використання файлів в мішаних мережах з машин із різними архітектурами та операційними системами, бажано щоб було просто та легко розуміти зв'язки між каталогами (певні каталоги розглядаються як потенційні точки монтування) та типом даних, що вони містять.

Скрізь в цьому документі та в усіх добре спланованих файлових системах, знання цих базових принципів допоможе побудувати структуру та надасть їй додаткової логічності.

Різниця між загальними та приватними даними потребує деяких пояснень:

· В мережевому середовищі (тобто коли є декілька головних машин в одному місці), є гарною практикою мати дані загальні для декількох головних машин, з метою збереження місця та полегшення завдань супроводу.

· В мережевому середовищі, деякі файли містять дані, що стосуються винятково конкретної головної системи. Такі частини файлової системи не можуть бути узагальнені (без вживання певних заходів).

· Попередні реалізації файлових систем Unix-типу, перемішують загальні та приватні дані в одній структурі, що ускладнює узагальнення великих частин файлової системи.

· Особливість «загальності» може бути використана для спрощення підтримки, наприклад:

· Розділ /usr (або його частини) монтується (тільки на читання) через мережу (використовуючи NFS).

· Розділ /usr (або його частини) монтується з носія, що може тільки читатися. CD-ROM з однією копією, що розповсюджується між багатьма користувачами через пошту або іншими засобами, може бути змонтований як файлова система тільки на читання, що узагальнюється з іншими файловими системами узгодженими з СПФС яким-небудь типом «мережі».

Властивості «постійний» та «змінний» справляють на файлову систему вплив головним чином двома шляхами:

· Оскільки / містить як змінні так і постійні дані, його доводиться монтувати на читання та запис.

· Хоч зазвичай /usr містить як змінні так і постійні дані, все ж буває потрібно монтувати його тільки для читання; тоді треба мати метод монтувати /usr тільки на читання. Це робиться через створення структури /var, що монтується на читання та запис (або як частина іншого розділу, що дозволяє читання та запис як /), перебираючи на себе значну частину функціональності /usr розділу.

ОС сімейства Linux

Linux –загальна назва UNIX-подібних операційних систем на основі однойменного ядра. Це один із найвидатніших прикладів розробки з відкритим кодом (open source) та вільного програмного забезпечення (free software); на відміну від власницьких операційних систем, на кшталт Microsoft Windows та MacOS X, її вихідні коди доступні усім для використання, зміни та розповсюдження абсолютно вільно.

Спершу розроблювалася та використовувалася окремими ентузіастами на персональних комп'ютерах, з тих пір Linux завдяки підтримці таких компаній як IBM, Sun Microsystems, HP, Novell та інших, набув неабиякої популярності як серверна операційна система; так, 8 із 10 найбільших компаній, що надають послуги веб-хостингу використовують Лінукс на своїх веб-серверах.

Лінукс портовано на велику кількість апаратних платформ. Тепер вона досить успішно використовується як на суперкомп'ютерах, так і на смартфонах.

Значна кількість спеціалізованих дистрибутивів Linux, котрі розробляються та підтримуються різними спільнотами, дає широкі можливості вибору програмного забезпечення.

Станом на травень 2009 року операційні системи Linux займали частку близько 1 % світового ринку операційних систем на персональних комп’ютерах (без врахування використання на серверах та спеціалізованих пристроях).

Хто створює Лінукс. GNU/Linux — складна система, що включає тисячі різних пакунків, від найпоширеніших, таких, як утиліти GNU, X.org, графічні середовища GNOME і KDE, до специфічних для якогось одного з дистрибутивів. Команди розробників кожного проекту відрізняються чисельністю, підходом до роботи, інструментами, що застосовуються, і методами планування робіт. При цьому ядро Linux займає особливе місце серед всіх інших застосувань. Від нього залежить можливість роботи системи GNU/Linux на різних апаратних платформах і ступінь підтримки різних пристроїв. Тому характеристики процесу його розробки можуть якоюсь мірою служити індикатором для всієї системи GNU/Linux.

Linux Foundation провело дослідження, що охоплює трирічний період розробки ядра (від версії 2.6.11 до версії 2.6.24) і фокусується на таких характеристиках, як частота релізів і змін, розмір початкових текстів ядра, і найголовніше, дозволяє отримати уявлення про тих, хто зрештою розробляє ядро Linux.

Статистика показує, що, в середньому, кожен новий реліз ядра виходить раз на 2,5 — 3 місяці (60 — 110 днів). В першу чергу це пов'язано з вибраною в 2005 р. моделлю розробки, спрямованою на зведення до мінімуму тривалості проміжків між розробкою нових функцій, появою підтримки нових пристроїв і включенням їх в ядро; а також що зводить до мінімуму потребу творців дистрибутивів в модифікаціях ядра.

При цьому число латок (патчів), що вносяться до ядра, має тенденцію до зростання. Зводячи воєдино ці дві характеристики, можна відзначити, що, в середньому, до ядра вноситься 2,83 латки за годину, при цьому в рядках коду щодня в ядро додається понад 3 тис. рядків, більше 1,4 тис. рядків модифікується. Число розробників, що взяли участь у випуску версії 2.6.24, більш ніж вдвічі перевищило цей показник для версії 2.6.11 і склало 1057 чоловік.

При цьому, проте, всього 10 провідних розробників спільно внесли майже 15 % змін, а 30 провідних розробників — 30 %. Це, однак, не означає, що поширене в деяких кругах уявлення про Linux як про систему, що розробляється аматорами, правильне. Не зважаючи, що далеко не у всіх компаній, що займаються вільним ПЗ, є необхідність вносити зміни до ядра, число компаній, що беруть участь в його розробці, росте. Чотири найбільші компанії-розробники ядра — Red Hat, Novell, IBM і Intel — внесли більше 32 % зроблених за час дослідження змін, а сумарний відсоток змін в ядро, внесених розробниками, що працюють на компанії, склав більше 70 %.

При цьому серед компаній, що беруть участь в розробці ядра, виділяється декілька груп по основній меті участі в розробці. Це група компаній, що включає IBM, Intel, HP, SGI, MIPS та інших, яка орієнтується в основному на підтримку роботи Linux на власному устаткуванні. Дистриб'ютори, такі, як Red Hat, Novell, MontaVista мають на меті додавання в ядро можливостей, на які існує попит серед користувачів, і які підсилюють конкурентоспроможність дистрибутивів як кінцевих продуктів. Такі компанії, як Sony, Nokia, Samsung працюють над ядром для поліпшення роботи систем на базі ядра Linux у власних пристроях.

Програмне забезпечення.Історично склалося так, що Лінукс використовувався переважно як серверна операційна система, однак низька вартість, висока гнучкість, та чимало інших отриманих у спадок від UNIX переваг, роблять її цілком придатною для широкого ряду застосувань.

Низька вартість та висока гнучкість сприяли використанню лінукс у вбудованих системах, як то мобільні телефони, кишенькові ПК та інші ручні пристрої. Linux став конкурентом на цій арені для пропрієтарної ОС Symbian, котра застосовується у мільйонах мобільних телефонів, і відмінною альтернативою домінуючим на ринку Windows CE та Palm OS. Популярний декодер цифрового відео TiVo використовує дещо модифіковану версію лінукс. Деякі брандмауери та маршрутизатори, зокрема декілька моделей виробництва Linksys також працюють під управлінням Лінукс.

Лінукс усе частіше використовується на суперкомп'ютерах. У списку 500 найпотужніших комп'ютерів світу 2005 року, 371 (74.2 %) працювали під управлінням лінукс, їм же належать 1 та 2 місця даного списку, та 7 місць із перших десяти.

Ігрова консоль PlayStation 3 за замовчуванням працюватиме під Лінукс. Компанія Sony заздалегідь випустила PS2 Linux для PlayStation 2. Такі розробники ігор, як Atari та id Software випускають свою продукцію для операційної системи Лінукс. Linux Game Publishing також займається переносом ігор з Microsoft Windows на Лінукс.

Проект Ноутбук за 100 доларів, метою котрого є забезпечення усіх дітей комп'ютерами задля допомоги у розвитку бідних та малорозвинених націй використовує Лінукс, як основну операційну систему.

Використання на робочих місцях. Високий рівень доступу у внутрішніх механізмах роботи Linux посприяв створенню міфу про суто технічну орієнтацію системи, тому її користувачів нерідко ототожнюють з хакерами. Linux та інші проекти відкритого програмного забезпечення часто критикують за слабкі намагання стати легшими в користуванні.

Останні роки цей стереотип швидко розвінчується. Тепер лінукс може використовувати графічний користувацький інтерфейс анітрохи не гірший за той, що використовують інші популярні операційні системи, на кшталт Microsoft Windows та MacOS X. Хоча, для лінукс досі не створені повнофункціональні аналоги деякого спеціалізованого програмного забезпечення, однак, загалом ситуація є досить непоганою, і більшість необхідних програм існують у надлишку. Чимало компаній починають випуск своєї продукції і для лінукс, а спеціально створені емулятори та середовища виконання (наприклад, Wine) дозволять використовувати розроблене для Microsoft Windows ПЗ в лінуксі.

UNIX'івське коріння Linux означає, що не зважаючи на існування великої кількості графічних утиліт для налаштування системи, прості текстові файли і досі використовуються для зберігання цих налаштувань, і доступ до них, з дозволу адміністратора, може отримати будь-який користувач.

Інсталяція.Найпоширенішим методом інсталяції Лінукс на персональні комп'ютери є завантаження з CD-ROM дисків, котрі містять інсталятор та готове до інсталяції програмне забезпечення. Такий компакт-диск може бути записаний із завантаженого ISO образу, придбаний (за низьку ціну) або взятий у будь-кого.

Як і сервери, персональні комп'ютери із вже інстальованим дистрибутивом Лінукс розповсюджуються такими компаніями, як Hewlett-Packard та Dell, хоча й переважно для своїх бізнес-клієнтів.

Альтернативою стандартній інсталяції операційної системи є можливість її інсталяції на тонкого клієнта. За цим методом операційна система завантажується з одного з комп'ютерів в мережі. Це дозволяє зменшувати кошторис одного комп'ютеризованого робочого місця.

У вбудованих пристроях Лінукс зазвичай знаходиться у firmware і не завжди доступний для здійснення змін.

ОС сімейства Windows

Сімейство операційних систем, які постачаються сьогодні фірмою Microsoft на ринок операційних систем, складають такі програмні продукти:

Windows 95 (з подальшими версіями) - операційна система для персональних комп'ютерів на базі мікропроцесорів Intel;

Windows NT Workstation - операційна система для персональних комп'ютерів на базі мікропроцесорів Intel, DEC Alpha і для багатопроцесорних комп'ютерів;

Windows NT Server - мережна операційна система для спеціалізованих файлових серверів на базі мікропроцесорів Intel, DEC Alpha і для багатопроцесорних комп'ютерів;

Windows СЕ - операційна система для спеціалізованих пристроїв і комп'ютерів класу "палмтоп";

Розглянемо дані операційні системи детальніше і проведемо їх порівняльний аналіз з урахуванням специфіки задач, що вирішуються за їх допомогою і специфіки вимог до апаратного забезпечення, що пред'являються даними системами. Такий аналіз необхідний у зв'язку з тим, що операційні системи сімейства Windows фірми Microsoft вже давно стали найбільш популярними і поширеними для настільних і мобільних обчислювальних комплексів і практично будь-якому користувачеві персональних комп'ютерів доведеться працювати з ними.

Наши рекомендации