Что такое операционная система и как она работает? ¶

Что такое операционная система? Виды операционных систем

Итак, что же такое операционная система на компьютере? ОС — это самое важное программное обеспечение, которое работает на компьютере. Он управляет памятью, процессами, и всем программным и аппаратным обеспечением. Можно сказать, что ОС — это мост между компьютером и человеком. Потому что без операционной системы, компьютер бесполезен.

Рекомендуем ознакомиться: Что такое компьютер? А также урок об основных частях настольного компьютера.

Введение¶

Операционные системы окружают нас повсюду – это основное программное обеспечение персональных компьютеров, серверов, мобильных устройств, сетевых устройств (роутеры, коммутаторы) и даже современных автомобилей (борт-компьютер), телевизоров и прочего. Перечислять можно очень долго, ведь они требуются практически в каждой компьютерной системе.

Любой компьютер представляет собой связанную совокупность: процессора, памяти и устройств ввода-вывода.

Рис. 1. Общее представление архитектуры компьютера

Рис. 1. Общее представление архитектуры компьютера

Сама по себе, аппаратура умеет делать только очень простые, базовые операции — по типу: сложить два числа, перейти к адресу, записать по адресу и тд.

Например, процессор умеет выполнять только четыре базовых типа инструкции:

  • Чтение инструкций/данных из памяти (read)
  • Выполнение интрукции (execute)
  • Запись результата в память (write)
  • Прерывание (interrupt)

Получается, что непосредственное создание и управление сложными процессами (приложениями) на аппаратуре становится крайне неэффективным и неудобным. То есть, например, создать и запустить на исполнение программу-браузер исключительно с помощью данных инструкций становится крайне сложной задачей. Особенно при условии, что помимо этого процесса (браузера) существуют и другие процессы, которые также пользуются ресурсами вычислительной машины.

Возникает вопрос — Как заставить всё это слаженно и эффективно работать, сделав пользование компьютером удобным как для обычного человека, так и для прикладного программиста?

Чтобы ответить на этот вопрос более последовательно, немного заглянем туда, откуда всё начиналось.

Немного истории¶

На заре компьютерной эпохи, первые компьютеры представляли собой огромные блоки (занимавшие большие комнаты), в которых размещались основные его компоненты: процессор, память и устройства ввода-вывода. И всего можно было выделить два состояния, в котором, в реальном времени находится компьютерная система:

  • Ввод/Вывод
  • Вычисление

Важная идея! Так как вычисления производятся быстрее, чем непосредственный ввод-вывод данных, разработчикам пришла идея о том, что к ресурсам можно допускать не одного пользователя (процесс), а множество, предоставляя им способ независимо друг от друга загружать (ввод) и получать (вывод) данные через отдельные терминалы, чтобы более эффективно использовать ресурсы компьютера и вычислительные модули не простаивали в ожидании ввода/вывода.

Идея многопользовательского режима в использовании ресурсов компьютера нашла свою реализацию в понятии процесс. То есть, каждый процесс — это пользователь ресурсов компьютера.

Эта идея положила начало созданию такой системы, которую мы теперь называем операционной — программной системы, которая управляет ресурсами компьютера, а следовательно осуществляет доступ к этим ресурсам и управляет процессами — пользователями этимх ресурсов.

Далее, термины: процесс, приложение идут как синонимы термину пользователь ресурсов.

Классификация операционных систем

Операционные системы можно классифицировать следующим образом:

Многопользовательские: те, которые позволяет двум или более пользователям использовать свои программы одновременно. Некоторые ОС допускают одновременное использование сотнями или даже тысячами пользователей.

Одно пользовательские: позволяет использовать программы только одному пользователю.

Многопроцессорные: поддерживают открытие одной и той же программы на нескольких процессорах.

Многозадачные: позволяют запускать несколько программ одновременно.

Однозадачные: позволяет одновременно запускать разные части одной программы.

Работающие в реальном времени: мгновенно реагирует на ввод: например, QNX и ЦОС.

Системы со средним временем реакции: Unix, DOS.

Оси которые не гарантирует определенное время реакции: например в Windows допустима потеря события.

Открытые и закрытые ОС

Все современные цифровые устройства работают на определенной операционной системе. Например, для компьютера это может быть Windows или Linux, а для смартфонов и планшетов – Android и iOS.

Операционные системы бывают открытого и закрытого типа. Под понятием «открытая операционная система» имеется в виду система с открытым исходным кодом. Этот код открыт для редактирования, и изменять его может любой пользователь (естественно, в рамках лицензии и закона). А закрытая операционная система не позволяет «копаться» в ее исходном коде.

Открытые ОС, как правило, бесплатные, очень быстро развиваются, и их можно детально подстроить под любое устройство. А все потому, что любой пользователь, который в этом хоть немного разбирается, может исправлять ошибки в системе, писать драйвера и пр. Ошибки в закрытых операционных системах исправляются только сервис-паками, которые выпускают официальные разработчики данной ОС.

Классификация операционных систем по назначению

Операционные системы являются неотъемлемой частью информационно-вычислительных комплексов. Такие комплексы могут выполнять весьма различные функции и могут быть по этому признаку разделены на некоторые классы.

Системы реального времени

Основной особенностью таких систем является сторого регламентированное время отклика на внешние события. Другим важным параметром является одновременная обработка — даже если одновременно происходит несколько событий, реакция системы на них не должна запаздывать. Компьютеры для управления самолетами, ядерными реакторами и подобными сложными системами обычно работают под управлением специализированных операционных систем реального времени.

Операционные системы реального времени принято делить на два класса: жесткого и мягкого реального времени. Можно выделить признаки систем жёсткого реального времени:

  • недопустимость никаких задержек ни при каких условиях;
  • бесполезность результатов при опоздании;
  • катастрофа при задержке реакции;
  • цена опоздания бесконечно велика.

Хороший пример системы жесткого реального времени — бортовая система управления самолетом. Среди систем с жестким реальным временем можно выделить распространённую коммерческую операционную систему QNX, которая основывается на UNIX и имеет схожий интерфейс.

Система мягкого реального времени характеризуется следующими признаками:

  • за опоздание результатов приходится платить;
  • снижение производительности системы, вызванное запаздыванием реакций, приемлемо.

Операционные системы мягкого реального времени могут использоваться в мобильных и коммуникационных системах — там, где цена опаздания не так велика. В настоящее время многие многозадачные операционные системы разделения времени модифицируются для того, чтобы соответствовать требованием мягкого реального времени. Среди примеров можно выделить варианты Windows NT и специфические версии ядра Linux .

Такие системы работают на специфическом аппаратном обеспечении (автомобили, микроволновые печи, роботы) и также обладают некоторыми требованиями к времени отклика системы. Как правило, в таких операционных системах применяются специфичные алгоритмы, минимизирующие потребляемые ресурсы. В настоящее время широкое распространение имеют операционные системы Windows Embedded фирмы Microsoft и различные версии операционной системы Linux .

Операционные системы для супер-компьютеров

Для решения очень сложных и объёмных вычислительных задач создаются специализированные компьютеры, содержащие сотни и тысячи процессоров. Для управления такими системами применяются специальные операционные системы, в которых особенно важны вопросы производительности и скорости обмена между элементами системы. В настоящее время самыми распространёнными среди сверхпроизводительных систем являются модификации операционной системы Linux .

Операционные системы для серверов

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

Примерами таких систем могут служить: банковские системы, веб-серверы и серверы баз данных, файловые серверы масштаба предприятия, многопользовательские терминальные серверы и т. п. Традиционно этот класс систем обслуживается коммерческими операционными системами — различными версиями UNIX, операционными системами от компаний IBM, Novell, Sun, а затем и Microsoft. Сейчас все большую популярность в этом классе систем завоёвывают открытые и свободные операционные системы, базирующиеся на UNIX.

Операционные системы для домашних и офисных компьютеров

Современные персональные компьютеры обладают высокой производительностью и богатыми мультимедийными возможностями. Для операционных систем этого класса важны удобный пользовательский интерфейс и поддержка широкого круга устройств для персональных компьютеров. Самыми распространёнными операционными системами в этом классе являются продукты компании Micrososft, также на персональных компьютерах Apple используется операционная система MacOS (начиная с версии 10 она также основывается на UNIX).

Исследовательские операционные системы

Многие алгоритмы и подходы в построении операционных систем не пошли дальше исследовательских лабораторий. Например, операционные системы, основанные на микроядре, в чистом виде не используются до сих пор из-за огромных затрат на пересылку сообщений. Одной из самых известных микроядерных операционных систем является Mach, на которой основывается целый ряд операционных систем, в том числе GNU Hurd , реализующая интерфейс UNIX.

Управление памятью

Ещё одна важная часть – та, что отвечает за все операции по управлению первичной памятью. Существует менеджер памяти, который обрабатывает все запросы на получение памяти и высвобождение. Он же следит за каждым участком памяти, независимо от того, занят он или свободен. И он же решает, какой процесс и когда получит этот ресурс.

Адресное пространство процесса – набор логических адресов, к которым программа обращается в коде. Например, если используется 32-битная адресация, то допустимые значения варьируются от 0 до 0x7fffffff, то есть 2 Гб виртуальной памяти.

Операционная система заботится о том, чтобы сопоставить логические адреса с физическими во время выделения памяти программе. Нужно также знать, что существует три типа адресов, используемых в программе до и после выделения памяти:

  • Символьные адреса: или по-другому адреса, используемые в исходном коде. Имена переменных, константы и метки инструкций являются основными элементами символического адресного пространства.
  • Относительные адреса: компилятор преобразует символические адреса в относительные адреса.
  • Физические адреса: загрузчик генерирует эти адреса в момент загрузки программы в основную память.

Виртуальные и физические адреса одинаковы как в процессе загрузки, так и во время компиляции. Но они начинают различаться во время исполнения.

Набор всех логических адресов, которые создала программа, называется логическим адресным пространством. Набор всех физических адресов, соответствующих этим логическим адресам, называется физическим адресным пространством.

Хотите разобраться подробнее в том, как работают операционные системы? Посмотрите соответствующие книги в нашем Телеграм-канале.

Классификация ОС

По числу одновременно выполняемых задач выделяют ОС:

— однозадачные (MS DOS, ранние версии PS DOS);

Многозадачность бывает:

— невытесняющая (Net Ware, Windows 95/98), когда активный процесс по окончании сам передает управление ОС для выбора из очереди другого процесса;

— вытесняющая (Windows NT, OS/2, UNIX) — решение о переключении процессора с одного процесса на другой принимает ОС.

По числу одновременно работающих пользователей ОС делят:

— однопользовательские (MS DOS, Windows 3х, ранние версии OS/2)

— многопользовательские (UNIX, Windows 2000, NT, XP, Vista). В многопользовательских системах присутствуют средства защиты информации пользователей от несанкционированного доступа.

В настоящий момент около 90% компьютеров используют ОС Windows.

Различают четыре основных класса операционных систем:

1. Однопользовательские однозадачные, которые поддерживают одну клавиатуру и могут работать только с одной (в данный момент) задачей;

2. Однопользовательские однозадачные с фоновой печатью, которые позволяют помимо основной задачи запускать одну дополнительную задачу, ориентированную, как правило, на вывод информации на печать. Это ускоряет работу при выдаче больших объёмов информации на печать;

3. Однопользовательские многозадачные, которые обеспечивают одному пользователю параллельную обработку нескольких задач. Например, к одному компьютеру можно подключить несколько принтеров, каждый из которых будет работать на «свою» задачу;

4. Многопользовательские многозадачные, позволяющие на одном компьютере запускать несколько задач нескольким пользователям. Эти ОС очень сложны и требуют значительных машинных ресурсов.

Операционная система для персонального компьютера, ориентированного на профессиональное применение, должна содержать следующие основные компоненты:

— программы управления вводом/выводом;

— программы, управляющие файловой системой и планирующие задания для компьютера;

— процессор командного языка, который принимает, анализирует и выполняет команды, адресованные операционной системе.

Каждая операционная система имеет свой командный язык, который позволяет пользователю выполнять те или иные действия:

— обращаться к каталогу;

— выполнять разметку внешних носителей;

Анализ и исполнение команд пользователя, включая загрузку готовых программ из файлов в оперативную память и их запуск, осуществляет командный процессор операционной системы.

Для управления внешними устройствами компьютера используются специальные системные программы — драйверы. Драйверы стандартных устройств образуют в совокупности базовую систему ввода-вывода (BIOS), которая обычно заносится в постоянное ЗУ компьютера.

Краткая характеристика некоторых операционных систем

ОС Linux – сетевая ОС, ядро которой разработано на базе ОС Unix. Linux распространяется в исходных кодах и применяется для создания серверов в вычислительных сетях и в Интернете.

ОС Unix – многопользовательская, многозадачная ОС, включает достаточно мощные средства защиты программ и файлов различных пользователей. ОС Unix является машинонезависимой, что обеспечивает высокую мобильность ОС и легкую переносимость прикладных программ на компьютеры различной архитектуры.

Важной особенностью и обширным набор сервисных программ, которые позволяют создать благоприятную операционную обстановку для пользователей – программистов (т.е. система особенно эффективна для специалистов – прикладных программистов).

Про логотип

Логотип и талисман Linux — пингвин Tux с желтыми лапами и клювом. В 1996 году разработчики ядра Linux решили выбрать талисман. Торвальдс обмолвился о том, что ему очень нравятся пингвины. Поэтому на логотипе ОС изображен пингвин.

Веб-серверы

Дистрибутивы Linux практически полностью захватили рынок веб-серверов. Согласно рейтингу аналитического агентства W3Techs, на Linux-серверах развернуты 75,1% сайтов.

Мобильные устройства

ОС Android работает на ядре Linux, поэтому она используется и в мобильных устройствах.

Суперкомпьютеры

Это специализированные вычислительные машины, превосходящие по своим техническим параметрам и скорости вычислений многие обычные компьютеры.

Они уникальны, для многих из них требуется особая ОС, способная решать конкретные задачи. Благодаря открытому исходному коду разработчики могут видоизменять ОС так, чтобы она работала и на таких машинах.

Игровые консоли

Linux занял свою нишу и в игровых консолях, но ориентированных на эту ОС игр пока не так много. Компания Steam работает над исправлением ситуации — разрабатывает операционную систему SteamOS. Она будет поставляться вместе с игровой консолью Steam Machine.

Устройства IoT и умная техника

Многие из них созданы на основе Linux. Так, компания Samsung разработала операционную систему Tize, LG — WebOS, а Panasonic и Philips используют FirefoxOS.

Авиация и транспорт

Во встроенных компьютерах Tesla и машинах с автопилотами Google используется операционная система Linux. ПО для отслеживания трафика в США аналогично разработано на этой ОС, а администрация авиации Америки перешла на нее еще в 2006 году.

Читайте также: Главные профессии в IT и что для них нужно.

Управление устройствами в операционных системах

Управление устройствами в операционной системе производится с помощью подсистемы управления устройствами ввода-вывода.

  • Организация параллельной работы устройств ввода-вывода и процессора.
  • Согласование кеширования и обмена данными.
  • Разделение устройств между процессами.
  • Обеспечение работоспособности логического пользовательского интерфейса.
  • Поддержка драйверов устройств.
  • Поддержка различных файловых систем.

То есть подсистема отвечает за то, что бы операционная система могла работать с различными устройствами.

Операционная система взаимодействует с подсистемой ввода-вывода с помощью:

  • Контроллеров.
  • Драйверов.

Контроллер это блок управления устройством ввода-вывода.

Драйвер это программный модуль, который управляет устройством.

Контроллер получает от драйвера выводимые на устройстве данные и управляющие команды. После окончания выполнения задачи контроллер выполняет прерывание.

То есть у нас есть некоторое устройство. Управляет этим устройством контроллер. После того как мы устанавливаем на компьютер необходимый драйвер контроллер устройства может «общаться» с компьютером через контроллер с помощью драйвера.

Организация параллельной работы устройств ввода-вывода и процессора происходит следующим образом.

Контроллер управляет устройством, он работает независимо от операционной системы в периоды между выдачами команд.

Подсистема ввода-вывода в режиме реального времени планирует и осуществляет запуск и остановку различных драйверов. При этом она учитывает время реакции (обеспечивает приемлемое время, наверное, видели ошибку, если устройство долго не отвечает) драйверов на события контроллера.

Подсистема ввода-вывода согласовывает скорость обмена и кеширования данных с контроллером устройства.

Согласование необходимо из-за того, что скорости обмена контроллеров и оперативной памятью различаются. При согласовании скорость обмена данными сокращается количество операций ввода-вывода, операционная система работает быстрее.

Чтобы согласовать скорости используется буферизация данных и реализуется процесс синхронного доступа считывающего и пишущего потоков к буферу.

Структура подсистемы ввода-вывода

На этом все. Если у вас появились вопросы, задавайте их в комментариях.

Анатолий Бузов

Обучаю HTML, CSS, PHP. Создаю и продвигаю сайты, скрипты и программы. Занимаюсь информационной безопасностью. Рассмотрю различные виды сотрудничества.

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector