к каким программам относится операционная система

Виды программного обеспечения: какие бывают типы, классификация, примеры

к каким программам относится операционная система. Смотреть фото к каким программам относится операционная система. Смотреть картинку к каким программам относится операционная система. Картинка про к каким программам относится операционная система. Фото к каким программам относится операционная система

Даже если нам кажется, что ПК намного умнее нас, он остается безжизненным «железом», пока в него не установят программы. Именно благодаря им техника начинает считать, думать и помогать в работе с любыми массивами данных. В статье мы кратко перечислим основные виды системного программного обеспечения для компьютеров и дадим каждому типу характеристику.

к каким программам относится операционная система. Смотреть фото к каким программам относится операционная система. Смотреть картинку к каким программам относится операционная система. Картинка про к каким программам относится операционная система. Фото к каким программам относится операционная система

Понятие

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

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

Программисты — это люди, которые разрабатывают и настраивают ПО. Они могут управлять ПК с помощью одной строчки, в которую вводят части закодированной информации. Несколько символов в определенной последовательности включают музыку, отправляют документ на печать или открывают конкретную страницу интернет-ресурса.

Оборудование

Какие бывают типы программного обеспечения: характеристика программ

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

Однако ничего не активизируется просто так. Все действует под влиянием операционной системы. Кажется, что ОС совершенно не нужна — можно ведь запускать все напрямую. Иногда этот метод тоже применяется. Так работают станки ЧПУ, крупные автоматы производств, ЭВМ, другие серьезные механизмы, когда нужно постоянно повторять один и тот же алгоритм.

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

Со стороны программистов типы ПО обоснованы практической значимостью. Если бы не было операционной системы, пришлось бы все функции и алгоритмы вносить в один огромный код. Затраты времени на это были бы колоссальными.

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

Какие основные виды ПО бывают по назначению

Программное обеспечение, установленное на ПК, делится на 3 разновидности:

к каким программам относится операционная система. Смотреть фото к каким программам относится операционная система. Смотреть картинку к каким программам относится операционная система. Картинка про к каким программам относится операционная система. Фото к каким программам относится операционная система

Системное

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

Таким ПО считается:

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

Прикладное

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

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

Инструментальное

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

Сюда входят компиляторы, отладчики, переводчики высокого уровня, редакторы, интерпретаторы и другие средства. Они необходимы, потому что техника не понимает человеческих слов. Чтобы ей «объяснить», что надо сделать, требуется специальный «машинный язык».

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

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

Источник

к каким программам относится операционная система. Смотреть фото к каким программам относится операционная система. Смотреть картинку к каким программам относится операционная система. Картинка про к каким программам относится операционная система. Фото к каким программам относится операционная система

Общие сведения

Системное программное обеспечение (СПО) — совокупность программ с узкой специализацией, направленной на взаимосвязь между физическими устройствами, управление компьютером, поддержание его в рабочем состоянии. Занимается его разработкой системный программист. Основные функции системного ПО в информатике:

к каким программам относится операционная система. Смотреть фото к каким программам относится операционная система. Смотреть картинку к каким программам относится операционная система. Картинка про к каким программам относится операционная система. Фото к каким программам относится операционная система

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

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

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

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

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

Специалисты в IT-сфере считают, что СПО можно условно разделить на 3 типа. К ним относятся:

К первой группе относятся программы, встроенные в аппаратную часть, т. е. «вшитые» в железо при его изготовлении. Они загружаются в специальную микросхему, которая называется модулем постоянного запоминающего устройства (ПЗУ).

к каким программам относится операционная система. Смотреть фото к каким программам относится операционная система. Смотреть картинку к каким программам относится операционная система. Картинка про к каким программам относится операционная система. Фото к каким программам относится операционная система

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

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

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

Базовое ПО

Основной частью базового ПО является BIOS. Она записывается в специальную микросхему ПЗУ, находящуюся на материнской плате, и выполняет следующие функции:

к каким программам относится операционная система. Смотреть фото к каким программам относится операционная система. Смотреть картинку к каким программам относится операционная система. Картинка про к каким программам относится операционная система. Фото к каким программам относится операционная система

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

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

к каким программам относится операционная система. Смотреть фото к каким программам относится операционная система. Смотреть картинку к каким программам относится операционная система. Картинка про к каким программам относится операционная система. Фото к каким программам относится операционная система

При повреждении жесткого диска (винчестера), привода для чтения компакт-дисков и других устройств работа ЭВМ не прекращается, а выдается соответствующее сообщение об ошибке. Следует отметить, что для работы монитор компьютеру вообще не нужен. Он необходим только для пользователя. Поэтому многие начинающие компьютерщики начинают искать проблемы потухшего монитора не в самом устройстве, а в других компонентах ПК. Их действия могут привести к выходу из строя материнской платы, CPU и других элементов.

Следует отметить, что в BIOS можно вносить настройки при помощи функции SETUP, которая доступна во время инициализации оборудования. Вход в нее осуществляется одной из клавиш: delete, F1 или другими кнопками, поскольку все зависит от модели самой системы ввода-вывода.

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

Операционная система

ОС — совокупность ПО, которое управляет железом и ресурсами ЭВМ, а также разворачивает специальную среду для запуска и работы приложений клиентской части. Иными словами, она «оживляет» компьютер, поскольку без нее невозможно играть в игры, слушать музыку, смотреть фильмы, работать с документами. Основные задачи, которые выполняют современные ОС:

Это основные критерии, которым должна удовлетворять каждая ОС. Для выбора последней нужно ознакомиться с основными видами и характеристиками.

Виды и характеристики

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

к каким программам относится операционная система. Смотреть фото к каким программам относится операционная система. Смотреть картинку к каким программам относится операционная система. Картинка про к каким программам относится операционная система. Фото к каким программам относится операционная система

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

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

к каким программам относится операционная система. Смотреть фото к каким программам относится операционная система. Смотреть картинку к каким программам относится операционная система. Картинка про к каким программам относится операционная система. Фото к каким программам относится операционная система

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

MAC-системы превосходят Linux-платформы по степени надежности и обеспечивают отличную защиту информации пользователя. Однако они обладают существенным недостатком — установить их можно только на устройства компании «APPLE».

Следует отметить, что MAC и LINUX имеют UNIX-ядро, т. е. структуру файловой системы, конфигурацию и модульные процедуры выполнения запросов. Этот подход к архитектуре позволяет существенно увеличить скорость работы, достигнуть высокого уровня безопасности, а также правильно управлять ресурсами при выполнении нескольких процессов.

Драйвера и многозадачность

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

Следует отметить, что только OC UNIX-платформ обладают многозадачностью. Хотя в некоторых источниках указано, что Windows способна правильно распределять ресурсы при вычислительном процессе. Последнее — ошибочное утверждение, поскольку работа программ выполняется по одному экземпляру с последующим переключением между вычислительными потоками. IT-специалисты называют Windows — ОС с ложной многозадачностью.

к каким программам относится операционная система. Смотреть фото к каким программам относится операционная система. Смотреть картинку к каким программам относится операционная система. Картинка про к каким программам относится операционная система. Фото к каким программам относится операционная система

Специальные утилиты

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

к каким программам относится операционная система. Смотреть фото к каким программам относится операционная система. Смотреть картинку к каким программам относится операционная система. Картинка про к каким программам относится операционная система. Фото к каким программам относится операционная система

К первой группе можно отнести все антивирусы. Для выбора оптимального программного продукта необходимо воспользоваться различными интернет-ресурсами, на которых тестируется соответствующее ПО. Примеры антивирусов, обладающих хорошими характеристиками, являются продукты лаборатории Касперского и Евгения Рошаля (Dr. Web).

Другие типы утилит выбираются по такому же принципу, как и антивирусы. Некоторые программные модули могут включать сразу несколько функций. Например, Advanced System Care состоит из компонентов, отвечающих за безопасность, работу с файловой системой и реестром, а также модуля, отвечающего за корректное удаление программ.

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

Источник

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

Цель конспекта — последовательно рассмотреть и объяснить принципы устройства и функционирования операционной системы, её основных компонентов и абстракций.

Введение¶

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

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

к каким программам относится операционная система. Смотреть фото к каким программам относится операционная система. Смотреть картинку к каким программам относится операционная система. Картинка про к каким программам относится операционная система. Фото к каким программам относится операционная система

Рис. 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
1lock(A) — Захват Аlock(B) — Захват B
2lock(B) — Ожидает освобождения ресурса Block(A) — Ожидает освобождения ресурса A
DEADLOCK –> Далее код не выполнится, так как произошел Deadlock в коде выше
nunlock(A) — освобждение Aunlock(B) — освобждение B
n+1unlock(B) — освобждение Bunlock(A) — освобждение A

Схематично, Deadlock можно изобразить так:

к каким программам относится операционная система. Смотреть фото к каким программам относится операционная система. Смотреть картинку к каким программам относится операционная система. Картинка про к каким программам относится операционная система. Фото к каким программам относится операционная система

Адреса и управление памятью¶

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

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

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

Основные механизмы (сервисы)¶

Рассмотрели основные механизмы реализации этой цели: Scheduler (планировщик), Inter Process Communication (межпроцессное взаимодействие), Memory manager (управление памятью) и другие.

Абстракции¶

Ряд абстракций, которые вводит ОС: Process (процесс), Thread (поток исполнения), File (файл).

Заключение¶

Ух, и вот наконец-то я закончил писать этот материал. Надеюсь, вам было интересно и полезно.

Если вы хотите как-то дополнить материал, дать критику по его содержанию или структуре – пожалуйста, пишите в Issue данного репозитория поднимая ту или иную тему для обсуждения и доработки.

Также, вы можете сделать Fork данного репозитория и после внести свои дополнения с помощью Pull Request. Спасибо за внимание!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *