В чем заключается назначение операционной системы
Основное назначение операционной системы
Многие, а точнее сказать практически все, пользуются компьютерами и другими устройствами современного мира электроники, которые для своей работы требуют специальной программной начинки, которой и является операционная система.
Определение и назначение операционной системы
Управляющий софт – комплекс программ для управления железной частью компьютера. Назначение операционной системы состоит в осуществлении контроля. Управление и обеспечение выполнения всех функциональных назначений аппаратной части компьютера также входит в спектр работа программного обеспечения. Более детально назначение и функции операционных систем мы рассмотрим ниже, также опишем самые популярные семейства производителей, выделим их плюсы и минусы.
Основные функции ОС
Мы исследовали многие операционные системы. Назначение, основные функции и прочие характеристики сводяться к облегчению жизни пользователя. А значит, большинство представителей подобного софта между собой похожи.
Практически каждая операционная система назначение и состав имеет специфические. Мы остановимся на тех моментах, когда свойства и функции приблизительно одинаковы у всех систем, вне зависимости от того, какой функциональный состав или предназначение имеет ОС.
Система обязательно является совокупностью программ, которые выполняют такие функции как:
Ресурс в программе – тот объем возможностей, которые может выполнить вычислительная машина.
Он делится на две категории:
Физический ресурс – это тот, который может ограничиваться только аппаратной частью и от неё же и зависящий:
Также к функциям ОС относится возможность облегчения использования ПК, предоставление комплекса программ (интерфейс, доп. программы системы).
Краткий обзор современных операционных систем
Семейство «Майкрософт Виндовс»:
Назначение операционной системы «Windows» было изначально определено как дружелюбность к пользователю. Компания Гейтса – первая, что взялась популяризировать простые в использовании ПК. Одной из самых популярных систем стала «Виндовс ХР», которая прочно держится на рынке, даже после того, как компания «Майкрософт» перестала поддерживать систему обновлениями.
Система сочетала в себе рациональность использования ресурсов, простоту в установке и использовании, тем самым выполняя требования, которые предусматривает базовое назначение операционной оболочки. После выпуска ХР «Майкрософт» выпускают не очень удачную ОС «Виста», которая имеет серьезные проблемы в защите, быстродействии, но отличается стильным интерфейсом, новомодными виджетами. Но это не спасло систему и не сделало её такой популярной. А вот после «Висты» вышла 7-ая версия «Виндовс».
Последняя разработка до сих пор дарует людям красочный яркий интерфейс и хорошие показатели быстродействия, в купе с неплохой защитой, тем самым с лихвой восполняя пробелы прошлой версии и полноценно выполняя назначение операционной системы «Windows».
Семейство «МакОС»
Семейство «Юникс»
Программы общего назначения
Операционные системы общего назначения — это те, которые могут отвечать одному из перечисленных параметров:
Назначение и функции операционных систем, которые могут предоставить однопрограммный режим работы и диалоговый способ общения заключается в том, чтобы рассматривать один процесс и иметь возможность в него вмешаться. Также такие системы называют мониторными – они позволяют наблюдать и вмешиваться в процесс вычисления.
Следующий тип систем позволяет выполнять сразу несколько расчётов одновременно, что и становится плюсом перед системами прошлого типа. Производительность системы в данном случае зависит от типа задач. Есть задачи, которые могут грузить процессор и заставлять простаивать другие задачи, поэтому здесь стоит брать в внимание то, какие расчеты вы возлагаете на ПК.
Третий тип особенный. Это системы, позволяющие повысить производительность ПК пользователя за счет того, что он будет иметь доступ к задаче в процессе её выполнения, тем самым сможет на неё влиять, остановить, допустим, процесс вычисления, а с помощью функции мультипрограммирования повысить производительность системы. Сам режим разделения времени позволяет создать иллюзию того, что все ресурсы машины принадлежат конкретному пользователю в данный момент времени. Однако стоит отметить, что пропускная способность ПК гораздо ниже, нежели у других видов, что является определённой платой за предоставленную свободу действий.
Системы специального назначения
Операционные системы специального назначения были придуманы с целью организации работ вычислительных сетей, а также решения задач в реальном времени и некоторых других особенных целей. Разделить их можно всего на две категории:
Первым отличием таких систем является то, что информация, поступающая в систему, должна быть обработана в течении жестких временных интервалов. Их превышать нельзя. Также должно быть всегда учтено, что запросы на обработку могут подаваться в самые непредсказуемые моменты. Тем самым такие ОС должны обеспечивать дополнительные возможности, к примеру, создание непрерывных задач.
Также ОС должна уметь организовывать оптимально очереди на обработку файлов в соответствии с заданными параметрами.
В случае если возникнет превышение интервалов выполнения программы, система должна уметь переключится на «аварийные» процессы, а потом уметь восстанавливать приоритеты после выполнения «аварийных».
Те системы, которые предназначены для организации вычислительных сетей, могут быть охарактеризованы определёнными особенностями. Первым приоритетом является выстраивание правильных связей при передаче данных внутри сети. Информация делится на блоки и в сети передаётся по кусочкам. Системе нужно организовать движение блоков. Одно из требований – циркуляция блоков в сети асинхронно и независимо от направления в течении всего пребывания в сети. Сама же ОС в это время должна отслеживать и осуществлять контроль за каждым блоком. Она должна снижать потери блоков в сети. Также такая система просто обязана обладать механизмом обнаружения повторных, битых или ошибочных блоков в вычислительной сети.
Вывод
Первое, что хочется сказать в заключение, так это то, что каждая вышеописанная операционная система назначение и состав может иметь свой, но основной является возможность взаимодействия всех операционных оболочек между собой без конфликтов, как в рамках локальных, так и глобальных сетей (интернет). Многое о себе может рассказать сама операционная система: назначение, состав, загрузка обновлений и самой ОС, информация о стоимости и правах на владение ею есть как в сети, так и во вшитых инструкциях. За вами остается только подбор оптимальной для ваших задач системы!
Какими функциями владеет операционная система? Какое назначение ОС?
Содержание:
Для выполнения разнородных – несвязанных одна с другой – задач компьютером или мобильным устройством нужна значительная координация действий на каждом этапе. Операции не должны мешать одна другой, эффективно расходовать ресурсы ПК, а после завершения – высвобождать их. Этим занимаются масштабные пакеты низкоуровневых приложений, сервисов и драйверов.
Рассмотрим, каковы основные функции, выполняемые операционной системой компьютера, какие компоненты входят в её состав. Кратко разберёмся с их классификацией.
Определение, назначение операционной системы
Для понимания, в чем состоит основное назначение операционной системы, стоит разобраться с её функциями.
Функциональность и возможности ОС зависят от её типа, предназначения, аппаратуры, для которой та разработана.
Как итог: операционная система — это комплекс программ, назначение которого – организация взаимодействия пользователя с компьютером и периферией.
Состав
Отдельно отметим ядро (kernel) – противоположность оболочки, внутренняя структура «операционки». Это её основа, включающая компоненты, необходимые для запуска и функционирования ОС. На уровне ядра реализованы сетевые возможности, доступ к накопителям как на самом низком уровне доступа софта к данным. В его состав входят: потоки с событиями, файлы с процессами, планировщик и диспетчер задач.
Классификация операционных систем
Наиболее распространённые десктопные операционки: дистрибутивы Linux (на основе UNIX), Windows 7 – 10; мобильные – Android и iOS.
Отметьте все составляющие части, перечислите функции и состав операционной системы, дайте определение.
Назначение и структура операционных систем
Назначение операционных систем
Это означает, что ОС в значительной степени формирует у пользователя представление о возможностях ВС, удобстве работы с ней, ее пропускной способности. Различные ОС на одних и тех же технических средствах могут предоставить пользователю различные возможности для организации вычислительного процесса или автоматизированной обработки данных.
ОС относятся к составу системного программного обеспечения и являются основной его частью.
Наиболее популярные операционные системы:
Основные функции ОС:
Главные цели операционной системы:
Функцией ОС является распределение процессоров, памяти, устройств и данных между процессами, конкурирующими за эти ресурсы. ОС должна управлять всеми ресурсами вычислительной машины таким образом, чтобы обеспечить максимальную эффективность ее функционирования. Критерием эффективности может быть, например, пропускная способность или реактивность системы.
Таким образом, ОС реализует:
Для реализации управления ресурсами разные ОС используют различные алгоритмы, что, в конечном счете, и определяет их облик в целом, включая характеристики производительности, область применения и даже пользовательский интерфейс. Так, например, алгоритм управления процессором в значительной степени определяет, является ли ОС системой разделения времени, системой пакетной обработки или системой реального времени.
Состав операционной системы
Современные операционные системы имеют сложную структуру, каждый элемент которой выполняет определенные функции по управлению компьютером.
Наиболее общим подходом к структуризации операционной системы является разделение всех ее модулей на две группы:
Виды интерфейсов пользователя операционных систем
По типу пользовательского интерфейса различают :
Пользовательским интерфейсом называется набор приемов взаимодействия пользователя с приложением. Пользовательский интерфейс включает общение пользователя с приложением и язык общения.
Что такое операционная система и как она работает?¶
Цель конспекта — последовательно рассмотреть и объяснить принципы устройства и функционирования операционной системы, её основных компонентов и абстракций.
Введение¶
Операционные системы окружают нас повсюду – это основное программное обеспечение персональных компьютеров, серверов, мобильных устройств, сетевых устройств (роутеры, коммутаторы) и даже современных автомобилей (борт-компьютер), телевизоров и прочего. Перечислять можно очень долго, ведь они требуются практически в каждой компьютерной системе.
Любой компьютер представляет собой связанную совокупность: процессора, памяти и устройств ввода-вывода.
Рис. 1. Общее представление архитектуры компьютера
Например, процессор умеет выполнять только четыре базовых типа инструкции:
Получается, что непосредственное создание и управление сложными процессами (приложениями) на аппаратуре становится крайне неэффективным и неудобным. То есть, например, создать и запустить на исполнение программу-браузер исключительно с помощью данных инструкций становится крайне сложной задачей. Особенно при условии, что помимо этого процесса (браузера) существуют и другие процессы, которые также пользуются ресурсами вычислительной машины.
Возникает вопрос — Как заставить всё это слаженно и эффективно работать, сделав пользование компьютером удобным как для обычного человека, так и для прикладного программиста?
Чтобы ответить на этот вопрос более последовательно, немного заглянем туда, откуда всё начиналось.
Немного истории¶
На заре компьютерной эпохи, первые компьютеры представляли собой огромные блоки (занимавшие большие комнаты), в которых размещались основные его компоненты: процессор, память и устройства ввода-вывода. И всего можно было выделить два состояния, в котором, в реальном времени находится компьютерная система:
Важная идея! Так как вычисления производятся быстрее, чем непосредственный ввод-вывод данных, разработчикам пришла идея о том, что к ресурсам можно допускать не одного пользователя (процесс), а множество, предоставляя им способ независимо друг от друга загружать (ввод) и получать (вывод) данные через отдельные терминалы, чтобы более эффективно использовать ресурсы компьютера и вычислительные модули не простаивали в ожидании ввода/вывода.
Далее, термины: процесс, приложение идут как синонимы термину пользователь ресурсов.
Зачем нужна Операционная Система?¶
Существует три ключевых элемента операционной системы:
Фунции ОС¶
Основные абстракции ОС¶
Положение ОС в многоуровневой иерархии организации компьютера¶
Современный компьютер можно представить в виде иерархии уровней (от двух и более), где на каждом уровне выделяются свои абстракции и набор возможных функций.
Рис. 2. Основные уровни устройства ПК
Операционная система является одним из таких уровней и представляет собой интерфейс («прослойку») между пользователем ресурсов компьютера и самими ресурсами, управляющий взаимодействиями как между пользователь-ресурс, так и пользователь-пользователь, устройство-устройство.
В целом, общей схемой это можно отобразить так:
Рис. 3. Место ОС в компьютерной системе
Интерфейс — набор правил и средств взаимодействия двух систем. Иными словами способ взаимодействия.
Kernel space — адресное пространство ядра ОС, в котором процессы имеют привилегированный доступ к ресурсам компьютера и другим процессам.
User space — адресное пространство, отведённое для пользовательских процессов (приложений), то есть не имеющих привилегированный доступ к ресурсам.
Как операционная система загружается в компьютер?¶
Процесс загрузки операционной системы и вообще компьютера имеет несколько этапов, основные из которых:
Что делает ядро ОС?¶
Ядро ОС – центральная часть операционной системы. По сути, это и есть ОС.
Это реакционный механизм, то есть его работа заключается исключительно в реакции на какие-либо события для их последующей обработки.
Процессорное время измеряется в тиках или секундах. Часто бывает полезно измерение процессорного времени в процентах от мощности процессора, которое называется загрузкой процессора.
Прерывания¶
Эта часть больше относится непосредственно к аппаратной части, но этот механизм стоит освятить, так как именно это основной аппаратный механизм реализации ОС.
Прерывание – сигнал остановки последовательного выполнения программы, для обработки запроса или реакции на событие.
Чтобы получить код обработки прерывания, в памяти расположена специальная таблица обработчиков прерываний, в которой для каждого типа прерывания содержится указатель на тот участок памяти, где расположен соответствующий код обработки данного прерывания.
Инициализация данной таблицы первично осуществялется BIOS’ом в соответствии с архитектурой процессора. После, её инициализирует операционная система для дополнения этой таблицы какими-либо своими прерываниями.
Как приложения взаимодействуют с ОС?¶
Взаимодействие процессов с ОС осуществляется с помощью системных вызовов.
Механизм системных вызовов — это интерфейс, который предоставляет ядро ОС (kernel space) пользовательским процессам (user space).
Системный вызов – программное прерывание, обращение пользовательского процесса к ядру операционной системы для выполнения какой-либо операции.
Например, чтобы выполнить обычное действие, с точки зрения прикладного программиста, – вывод строки в консоль, необходимо загрузить исполнимый код в оперативную память и передать его процессору. С помощью системных вызовов, запускающий процесс (уже запущенный процесс, из которого вызывается новый процесс — одни процессы порождают другие) обращается к соответствующим сервисам ОС и передаёт им управление для выполнения этих функций.
То есть с помощью системных вызовов выполняются те рутинные действия, которые раньше осуществлялись вручную, — загрузка кода программы в память, передача его на исполнение процессору и прочее.
Схема организации ОС расширяется добавлением интерфейса для взаимодействия приложений с ядром ОС — механизмом системных вызовов:
Рис 4. Интерфейс системных вызовов
Как оборудование взаимодействует с ОС?¶
Оборудование взаимодействует с ОС с помощью аппаратных прерываний. И одна из функций ОС — абстрагирование оборудования.
Что это значит?¶
Рис 5. Интерфейс драйверов
Сервисы ОС¶
Функции ОС заключены в её сервисах (модулях). Реализация организации которых зависит от архитектуры ядра. Рассмотрим на примере монолитного ядра:
Рис 6. Основные компоненты ОС
Основные¶
Как говорилось в части о загрузке ОС, реализация планировщика осуществляется с помощью прерывания по таймеру — каждый квант времени происходит прерывание, которое передаёт управление ОС и она анализирует состояние всех процессов и что с каким процессом сделать: запустить, приостановить, завершить или изменить приоритет.
Дополнительные¶
Основные абстракции¶
Процесс¶
Компьютерная программа сама по себе — лишь пассивная последовательность инструкций. В то время как процесс — непосредственное выполнение этих инструкций.
В рамках ОС, это абстракция, которая предоставляет иллюзию персональной машины. То есть то, что данный исполнимый код полностью владеет всеми вычислительными ресурсами машины.
Состояние (контекст) процесса¶
Изнутри, процесс можно условно разделена на четыре части: Stack, Heap (кучу), Text (код) и данные (Data).
Рис 7. Сегменты памяти процесса
Состояния исполнения¶
Когда процесс выполняется, он проходит через разные состояния. Эти этапы могут различаться в разных операционных системах.
Общая картина выглядит так:
Рис 8. Состояния исполнения процесса
Информация о процессе¶
Рис 9. Process Control Block
Информацию о процессах в целом, ОС хранит в специальной таблице процессов.
Поток¶
Процесс может делиться на потоки (threads). Они обеспечивают параллелизм, то есть одновременное исполнение нескольких потоков инструкций, на уровне программы.
Поток выполнения (нить, thread) — последовательность исполнения инструкций. Ход исполнения программы**.
Процесс является контейнером ресурсов (адресное пространство, процессорное время и тд), а поток – последовательность инструкций, которые исполняются внутри этого контейнера.
Реализация потоков выполнения и процессов в разных операционных системах отличается друг от друга, но в большинстве случаев поток выполнения находится внутри процесса.
Рис 10. Многопоточный процесс
Потоки, существующие в рамках одного процесса, в его адресном пространстве, могут совместно использовать ресурсы процесса, например такие как память или файл. Тогда как процессы не разделяют этих ресурсов, так как каждый существует в своём адресном пространстве.
Также поток называют легковесный процесс.
Сегодня потоки широко применяются в работе серверов и многопроцессорных устройств с общей памятью.
Рассмотрим на примере утилиты htop.
Рис 11. Вывод утилиты мониторинга процессов htop
PID — Process ID; Уникальное число идентификатор для каждого процесса
TGID — Tread Group ID; Индентификатор группы потоков
Чем хороши потоки¶
Это очень широкое и многогранное понятие. Но если выделить наиболее общее, то получится, что файл — это универсальный системный интерфейс для обращения к тем или иным данным.
А файловая система — это система имён. То есть возможность выделять те или иные объекты данных и присваивать им имена, а также выделять иерархию.
По другому, файл и файловую систему можно также представить как структуру данных и связи между этими структурами.
Реализация многозадачности¶
Осуществляется при помощи следующих механизмов:
Переключение контекста¶
Контекст процесса — это состояние регистров, при его выполнении на процессоре.
Но происходит прерывание и «процесс 1» снимается с выполнения на процессоре, чтобы вместо него выполнялся «процесс 2». Следовательно, нужно заполнить регистры уже теми данными, что относятся к «процессу 2».
Однако, «процесс 1» ещё не выполнился полностью, и для дальшейнего исполнения ему нужны те данные, что хранились в регистрах при прерываний, то есть необходим его контекст. Операционная система должна обеспечивать подобные смены контекстов без потери данных.
В целом, смена контекста происходит между состояниями «Готов», «Ожидает» и «Исполняется».
Критические секции и блокировки¶
Одна из основных проблем с которыми может столкнуться такая система с вытесняющей многозадачностью — порядок доступа процессов к их общим ресурсам.
Возникают, так называемые, критические секции – участки исполняемого кода программы, в которых производится доступ к общему ресурсу (данным или устройству), который не должен быть одновременно использован более чем одним потоком выполнения.
Рис 12. Критические секции в потоках процесса
Может возникнуть такая ситуация, когда один поток, «потребитель», начинает использовать данные, которые должен подготовить другой поток, «производитель», но этот производитель ещё не закончил их подготовку и снялся с исполнения. Таким образом, «потребитель» использует некорректные данные, что с высокой долей вероятности приведёт к ошибке.
Данная проблема решается с помощью механизма блокировок – когда поток, получивший доступ к ресурсу, блокирует его, не давая другим потокам пользоваться этим захваченным ресурсом до разблокировки. То есть, если один поток хочет захватить (заблокировать) ресурс, а он уже занят другим потоком, то первый будет ожидать пока этот другой поток-владелец сам не освободит этот ресурс.
Все эти механизмы обеспечиваются операционной системой
Чтобы лучше это понять, можно обратиться к аналогии с туалетом — им может пользоваться только один человек. Если другой хочет им воспользоваться, то ему нужно дождаться когда его освободит уже им пользующийся.
Рис 13. Аналогия пробки на перекрёстке с Deadlock
Deadlock — ситуация, при которой несколько потоков находятся в состоянии ожидания ресурсов, занятых друг другом, и ни один из них не может продолжать свое выполнение.
Пример Deadlock’a на псевдокоде¶
Шаг | Поток 1 | Поток 2 |
---|---|---|
0 | Хочет захватить A и B, начинает с A | Хочет захватить A и B, начинает с B |
1 | lock(A) — Захват А | lock(B) — Захват B |
2 | lock(B) — Ожидает освобождения ресурса B | lock(A) — Ожидает освобождения ресурса A |
… | DEADLOCK –> Далее код не выполнится, так как произошел Deadlock в коде выше | |
n | unlock(A) — освобждение A | unlock(B) — освобждение B |
n+1 | unlock(B) — освобждение B | unlock(A) — освобждение A |
Схематично, Deadlock можно изобразить так:
Адреса и управление памятью¶
Тема адресации очень сложна, поэтому здесь я лишь проведу краткий обзор общей технологии.
Чтобы отобразить логический адрес в физический, существует специальный аппаратный механизм.
Начав с базовой архитектуры и небольшой истории развития компьютера, мы разобрали причины появления такого комплекса программ как операционная система и выделили главную её цель – обеспечение согласованного доступа к ресурсам компьютера множеству пользователям этих ресурсов, а также управление как самими ресурсами, так и пользователями.
Основные механизмы (сервисы)¶
Рассмотрели основные механизмы реализации этой цели: Scheduler (планировщик), Inter Process Communication (межпроцессное взаимодействие), Memory manager (управление памятью) и другие.
Абстракции¶
Ряд абстракций, которые вводит ОС: Process (процесс), Thread (поток исполнения), File (файл).
Заключение¶
Ух, и вот наконец-то я закончил писать этот материал. Надеюсь, вам было интересно и полезно.
Если вы хотите как-то дополнить материал, дать критику по его содержанию или структуре – пожалуйста, пишите в Issue данного репозитория поднимая ту или иную тему для обсуждения и доработки.
Также, вы можете сделать Fork данного репозитория и после внести свои дополнения с помощью Pull Request. Спасибо за внимание!