Учебники

Операционная система — Краткое руководство

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

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

Некоторые популярные операционные системы включают операционную систему Linux, операционную систему Windows, VMS, OS / 400, AIX, z / OS и т. Д.

Определение

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

Концептуальное представление операционной системы

Ниже приведены некоторые важные функции операционной системы.

  • Управление памятью
  • Управление процессором
  • Управление устройством
  • Управление файлами
  • Безопасность
  • Контроль за производительностью системы
  • Бухгалтерский учет
  • Средства обнаружения ошибок
  • Координация между другим программным обеспечением и пользователями

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

Управление памятью относится к управлению основной памятью или основной памятью. Основная память — это большой массив слов или байтов, где каждое слово или байт имеет свой собственный адрес.

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

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

  • В мультипрограммировании ОС решает, какой процесс получит память, когда и сколько.

  • Выделяет память, когда процесс запрашивает это сделать.

  • Отменяет выделение памяти, когда процесс больше не нуждается в этом или был остановлен.

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

В мультипрограммировании ОС решает, какой процесс получит память, когда и сколько.

Выделяет память, когда процесс запрашивает это сделать.

Отменяет выделение памяти, когда процесс больше не нуждается в этом или был остановлен.

Управление процессором

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

  • Отслеживает процессор и статус процесса. Программа, ответственная за эту задачу, называется контроллером трафика .

  • Выделяет процессор (ЦП) процессу.

  • Отменяет процессор, когда процесс больше не требуется.

Отслеживает процессор и статус процесса. Программа, ответственная за эту задачу, называется контроллером трафика .

Выделяет процессор (ЦП) процессу.

Отменяет процессор, когда процесс больше не требуется.

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

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

  • Сохраняет треки всех устройств. Программа, ответственная за эту задачу, называется контроллером ввода / вывода .

  • Решает, какой процесс получает устройство, когда и за сколько времени.

  • Выделяет устройство эффективным способом.

  • Отменяет распределение устройств.

Сохраняет треки всех устройств. Программа, ответственная за эту задачу, называется контроллером ввода / вывода .

Решает, какой процесс получает устройство, когда и за сколько времени.

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

Отменяет распределение устройств.

Управление файлами

Файловая система обычно организована в каталоги для удобства навигации и использования. Эти каталоги могут содержать файлы и другие направления.

Операционная система выполняет следующие действия для управления файлами —

  • Отслеживает информацию, местоположение, использование, статус и т. Д. Коллективные средства часто называют файловой системой .

  • Решает, кто получает ресурсы.

  • Выделяет ресурсы.

  • Распределяет ресурсы.

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

Решает, кто получает ресурсы.

Выделяет ресурсы.

Распределяет ресурсы.

Другие важные мероприятия

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

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

  • Контроль производительности системы — задержки записи между запросом на обслуживание и ответом от системы.

  • Учет работы — отслеживание времени и ресурсов, используемых различными работами и пользователями.

  • Средства обнаружения ошибок — создание дампов, трассировок, сообщений об ошибках и других средств отладки и обнаружения ошибок.

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

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

Контроль производительности системы — задержки записи между запросом на обслуживание и ответом от системы.

Учет работы — отслеживание времени и ресурсов, используемых различными работами и пользователями.

Средства обнаружения ошибок — создание дампов, трассировок, сообщений об ошибках и других средств отладки и обнаружения ошибок.

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

Типы операционной системы

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

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

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

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

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

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

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

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

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

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

Преимущества операционных систем с разделением времени следующие:

  • Обеспечивает преимущество быстрого ответа.
  • Предотвращает дублирование программного обеспечения.
  • Уменьшает время простоя процессора.

Недостатки операционных систем с разделением времени следующие:

  • Проблема надежности.
  • Вопрос безопасности и целостности пользовательских программ и данных.
  • Проблема передачи данных.

Распределенная операционная система

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

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

Преимущества распределенных систем следующие:

  • Благодаря средству совместного использования ресурсов пользователь на одном сайте может использовать ресурсы, доступные на другом.
  • Ускорение обмена данными друг с другом по электронной почте.
  • Если в распределенной системе происходит сбой одного сайта, остальные сайты могут продолжать работать.
  • Лучший сервис для клиентов.
  • Снижение нагрузки на хост-компьютер.
  • Уменьшение задержек при обработке данных.

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

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

Примеры сетевых операционных систем включают Microsoft Windows Server 2003, Microsoft Windows Server 2008, UNIX, Linux, Mac OS X, Novell NetWare и BSD.

Преимущества сетевых операционных систем следующие:

  • Централизованные серверы очень стабильны.
  • Безопасность управляется сервером.
  • Обновления до новых технологий и оборудования могут быть легко интегрированы в систему.
  • Удаленный доступ к серверам возможен из разных мест и типов систем.

Недостатки сетевых операционных систем заключаются в следующем —

  • Высокая стоимость покупки и запуска сервера.
  • Зависимость от центрального местоположения для большинства операций.
  • Требуется регулярное обслуживание и обновления.

Операционная система реального времени

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

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

Существует два типа операционных систем реального времени.

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

Жесткие системы реального времени гарантируют, что критические задачи будут выполнены вовремя. В жестких системах реального времени вторичное хранилище ограничено или отсутствует, а данные хранятся в ПЗУ. В этих системах виртуальная память почти никогда не обнаруживается.

Мягкие системы реального времени

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

Операционная система — Услуги

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

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

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

  • Выполнение программы
  • Операции ввода / вывода
  • Манипулирование файловой системой
  • связь
  • Обнаружение ошибок
  • Распределение ресурсов
  • защита

Выполнение программы

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

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

  • Загружает программу в память.
  • Выполняет программу.
  • Управляет выполнением программы.
  • Предоставляет механизм для синхронизации процессов.
  • Предоставляет механизм для коммуникации процесса.
  • Предоставляет механизм для тупиковой обработки.

Операция ввода / вывода

Подсистема ввода / вывода состоит из устройств ввода / вывода и их соответствующего программного драйвера. Драйверы скрывают особенности конкретных аппаратных устройств от пользователей.

Операционная система управляет связью между пользователем и драйверами устройств.

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

Манипулирование файловой системой

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

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

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

связь

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

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

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

Обработка ошибок

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

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

Управление ресурсами

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

  • ОС управляет всеми видами ресурсов с помощью планировщиков.
  • Алгоритмы планирования ЦП используются для лучшего использования ЦП.

защита

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

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

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

Операционная система — Свойства

Пакетная обработка

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

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

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

  • Задания обрабатываются в порядке поступления, т. Е. В порядке поступления.

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

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

ОС хранит ряд заданий в памяти и выполняет их без какой-либо ручной информации.

Задания обрабатываются в порядке поступления, т. Е. В порядке поступления.

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

Пакетная обработка

преимущества

  • Пакетная обработка переносит большую часть работы оператора на компьютер.

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

Пакетная обработка переносит большую часть работы оператора на компьютер.

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

Недостатки

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

Многозадачность

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

  • Пользователь дает инструкции операционной системе или программе напрямую и получает немедленный ответ.

  • Операционная система обрабатывает многозадачность таким образом, что она может обрабатывать несколько операций / одновременно выполнять несколько программ.

  • Многозадачные операционные системы также известны как системы с разделением времени.

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

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

  • У каждого пользователя есть хотя бы одна отдельная программа в памяти.

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

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

Многозадачные операционные системы также известны как системы с разделением времени.

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

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

У каждого пользователя есть хотя бы одна отдельная программа в памяти.

Многозадачность

  • Программа, которая загружается в память и выполняется, обычно называется процессом .

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

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

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

  • Поскольку система быстро переключает ЦП с одного пользователя / программы на другого, у каждого пользователя создается впечатление, что он / она имеет свой собственный ЦП, тогда как фактически один ЦП распределяется между многими пользователями.

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

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

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

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

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

Мультипрограммирование

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

На следующем рисунке показана схема памяти для многопрограммной системы.

Расположение памяти

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

  • Операционная система хранит несколько заданий в памяти одновременно.

  • Этот набор заданий является подмножеством заданий, хранящихся в пуле заданий.

  • Операционная система выбирает и начинает выполнять одно из заданий в памяти.

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

Операционная система хранит несколько заданий в памяти одновременно.

Этот набор заданий является подмножеством заданий, хранящихся в пуле заданий.

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

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

преимущества

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

Недостатки

  • Планирование ЦП не требуется.
  • Чтобы разместить много заданий в памяти, требуется управление памятью.

интерактивность

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

  • Предоставляет пользователю интерфейс для взаимодействия с системой.
  • Управляет устройствами ввода, чтобы принимать входные данные от пользователя. Например, клавиатура.
  • Управляет устройствами вывода, чтобы показать результаты пользователю. Например, Монитор.

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

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

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

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

Распределенная среда

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

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

  • Процессоры не делят память или часы. Вместо этого каждый процессор имеет свою собственную локальную память.

  • ОС управляет связью между процессорами. Они общаются друг с другом через различные линии связи.

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

Процессоры не делят память или часы. Вместо этого каждый процессор имеет свою собственную локальную память.

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

намоточные

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

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

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

  • Поддерживает буфер буфера, который обеспечивает станцию ​​ожидания, где данные могут храниться, пока медленное устройство догоняет.

  • Поддерживает параллельные вычисления из-за процесса буферизации, поскольку компьютер может выполнять ввод / вывод параллельно. Становится возможным, чтобы компьютер считывал данные с ленты, записывал данные на диск и записывал на ленточный принтер, пока он выполняет свою вычислительную задачу.

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

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

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

намоточные

преимущества

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

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

Процесс

Процесс — это в основном программа в исполнении. Выполнение процесса должно выполняться последовательно.

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

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

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

Компоненты процесса

SN Компонент и описание
1

стек

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

2

отвал

Это динамически выделяемая память для процесса во время его выполнения.

3

Текст

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

4

Данные

Этот раздел содержит глобальные и статические переменные.

стек

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

отвал

Это динамически выделяемая память для процесса во время его выполнения.

Текст

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

Данные

Этот раздел содержит глобальные и статические переменные.

программа

Программа — это фрагмент кода, который может состоять из одной строки или миллионов строк. Компьютерная программа обычно пишется программистом на языке программирования. Например, вот простая программа, написанная на языке программирования C —

#include <stdio.h>

int main() {
   printf("Hello, World! \n");
   return 0;
}

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

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

Жизненный цикл процесса

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

В общем случае процесс может иметь одно из следующих пяти состояний одновременно.

SN Состояние и описание
1

Начните

Это начальное состояние при первом запуске / создании процесса.

2

готовы

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

3

Бег

Как только процесс был назначен процессору планировщиком ОС, состояние процесса устанавливается на выполнение, и процессор выполняет свои инструкции.

4

ждущий

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

5

Прекращено или Выход

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

Начните

Это начальное состояние при первом запуске / создании процесса.

готовы

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

Бег

Как только процесс был назначен процессору планировщиком ОС, состояние процесса устанавливается на выполнение, и процессор выполняет свои инструкции.

ждущий

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

Прекращено или Выход

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

Состояние процесса

Блок управления процессом (PCB)

Блок управления процессом — это структура данных, поддерживаемая операционной системой для каждого процесса. Печатная плата идентифицируется целочисленным идентификатором процесса (PID). PCB хранит всю информацию, необходимую для отслеживания процесса, как указано ниже в таблице —

SN Информация и описание
1

Состояние процесса

Текущее состояние процесса, т. Е. Готов ли он, работает, ждет или что-то еще.

2

Процессные привилегии

Это необходимо для разрешения / запрета доступа к системным ресурсам.

3

Идентификатор процесса

Уникальная идентификация для каждого процесса в операционной системе.

4

Указатель

Указатель на родительский процесс.

5

Счетчик команд

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

6

Регистры процессора

Различные регистры процессора, где процесс должен быть сохранен для выполнения в рабочем состоянии.

7

Информация о планировании процессора

Приоритет процесса и другая информация о планировании, которая требуется для планирования процесса.

8

Информация об управлении памятью

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

9

Бухгалтерская информация

Это включает количество ЦП, использованного для выполнения процесса, ограничения по времени, идентификатор выполнения и т. Д.

10

Информация о состоянии ввода-вывода

Это включает в себя список устройств ввода-вывода, выделенных для процесса.

Состояние процесса

Текущее состояние процесса, т. Е. Готов ли он, работает, ждет или что-то еще.

Процессные привилегии

Это необходимо для разрешения / запрета доступа к системным ресурсам.

Идентификатор процесса

Уникальная идентификация для каждого процесса в операционной системе.

Указатель

Указатель на родительский процесс.

Счетчик команд

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

Регистры процессора

Различные регистры процессора, где процесс должен быть сохранен для выполнения в рабочем состоянии.

Информация о планировании процессора

Приоритет процесса и другая информация о планировании, которая требуется для планирования процесса.

Информация об управлении памятью

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

Бухгалтерская информация

Это включает количество ЦП, использованного для выполнения процесса, ограничения по времени, идентификатор выполнения и т. Д.

Информация о состоянии ввода-вывода

Это включает в себя список устройств ввода-вывода, выделенных для процесса.

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

Блок управления процессом

Печатная плата поддерживается для процесса в течение всего срока его службы и удаляется после завершения процесса.

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

Определение

Планирование процессов — это деятельность диспетчера процессов, которая обрабатывает удаление запущенного процесса из ЦП и выбор другого процесса на основе конкретной стратегии.

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

Очереди планирования процессов

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

Операционная система поддерживает следующие важные очереди планирования процессов:

  • Очередь заданий — в этой очереди хранятся все процессы в системе.

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

  • Очереди устройства — процессы, которые заблокированы из-за недоступности устройства ввода-вывода, составляют эту очередь.

Очередь заданий — в этой очереди хранятся все процессы в системе.

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

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

Планирование процесса

ОС может использовать разные политики для управления каждой очередью (FIFO, Round Robin, Priority и т. Д.). Планировщик ОС определяет, как перемещать процессы между готовыми и запущенными очередями, которые могут иметь только одну запись на процессорное ядро ​​в системе; на приведенной выше диаграмме он был объединен с процессором.

Модель двух состояний

Модель процесса с двумя состояниями относится к рабочим и неработающим состояниям, которые описаны ниже —

SN Состояние и описание
1

Бег

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

2

Не бегать

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

Бег

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

Не бегать

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

Планировщики

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

  • Долгосрочный планировщик
  • Краткосрочный планировщик
  • Среднесрочный планировщик

Долгосрочный планировщик

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

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

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

Краткосрочный планировщик

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

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

Среднесрочный планировщик

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

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

Сравнение среди Планировщика

SN Долгосрочный планировщик Краткосрочный планировщик Среднесрочный планировщик
1 Это планировщик работы Это планировщик процессора Это планировщик обмена процессами.
2 Скорость меньше, чем краткосрочный планировщик Скорость самая быстрая среди двух других Скорость находится между краткосрочным и долгосрочным планировщиком.
3 Контролирует степень мультипрограммирования Это обеспечивает меньший контроль над степенью мультипрограммирования Это уменьшает степень мультипрограммирования.
4 Она практически отсутствует или минимальна по времени Это также минимальная система разделения времени Это часть систем разделения времени.
5 Он выбирает процессы из пула и загружает их в память для выполнения Он выбирает те процессы, которые готовы выполнить Это может повторно ввести процесс в память, и выполнение может быть продолжено.

Переключение контекста

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

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

Переключение контекста процесса

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

  • Счетчик команд
  • Планирование информации
  • Базовое и предельное значение регистра
  • В настоящее время используется регистр
  • Измененное состояние
  • Информация о состоянии ввода / вывода
  • Бухгалтерская информация

Алгоритмы планирования операционной системы

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

  • Планирование «первым пришел — первым обслужен» (FCFS)
  • Планирование Shortest-Job-Next (SJN)
  • Приоритетное планирование
  • Самое короткое оставшееся время
  • Круглый Робин (RR) Планирование
  • Планирование многоуровневых очередей

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

First Come First Serve (FCFS)

  • Задания выполняются в порядке поступления.
  • Это не упреждающий, упреждающий алгоритм планирования.
  • Легко понять и реализовать.
  • Его реализация основана на очереди FIFO.
  • Низкая производительность, так как среднее время ожидания велико.

Алгоритм планирования «первым пришел - первым обслужен»

Время ожидания каждого процесса выглядит следующим образом —

Процесс Время ожидания: Время обслуживания — Время прибытия
P0 0 — 0 = 0
P1 5 — 1 = 4
P2 8 — 2 = 6
P3 16 — 3 = 13

Среднее время ожидания: (0 + 4 + 6 + 13) / 4 = 5,75

Кратчайшая работа следующая (SJN)

  • Это также называется первой короткой работой , или SJF

  • Это не упреждающий, упреждающий алгоритм планирования.

  • Лучший подход для минимизации времени ожидания.

  • Легко реализовать в пакетных системах, где необходимое время процессора известно заранее.

  • Невозможно реализовать в интерактивных системах, где необходимое время ЦП неизвестно.

  • Процессор должен заранее знать, сколько времени займет процесс.

Это также называется первой короткой работой , или SJF

Это не упреждающий, упреждающий алгоритм планирования.

Лучший подход для минимизации времени ожидания.

Легко реализовать в пакетных системах, где необходимое время процессора известно заранее.

Невозможно реализовать в интерактивных системах, где необходимое время ЦП неизвестно.

Процессор должен заранее знать, сколько времени займет процесс.

Дано: таблица процессов и время их прибытия, время выполнения

Процесс Время прибытия Время исполнения Время обслуживания
P0 0 5 0
P1 1 3 5
P2 2 8 14
P3 3 6 8

Алгоритм планирования самой короткой работы

Время ожидания каждого процесса выглядит следующим образом —

Процесс Время ожидания
P0 0 — 0 = 0
P1 5 — 1 = 4
P2 14 — 2 = 12
P3 8 — 3 = 5

Среднее время ожидания: (0 + 4 + 12 + 5) / 4 = 21/4 = 5,25

Приоритетное планирование

  • Приоритетное планирование — это алгоритм без вытеснения и один из самых распространенных алгоритмов планирования в пакетных системах.

  • Каждому процессу назначается приоритет. Процесс с наивысшим приоритетом должен выполняться первым и так далее.

  • Процессы с одинаковым приоритетом выполняются по принципу «первым пришел — первым обслужен».

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

Приоритетное планирование — это алгоритм без вытеснения и один из самых распространенных алгоритмов планирования в пакетных системах.

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

Процессы с одинаковым приоритетом выполняются по принципу «первым пришел — первым обслужен».

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

Дано: таблица процессов, их время прибытия, время выполнения и приоритет. Здесь мы рассматриваем 1 является самым низким приоритетом.

Процесс Время прибытия Время исполнения приоритет Время обслуживания
P0 0 5 1 0
P1 1 3 2 11
P2 2 8 1 14
P3 3 6 3 5

Алгоритм приоритетного планирования

Время ожидания каждого процесса выглядит следующим образом —

Процесс Время ожидания
P0 0 — 0 = 0
P1 11 — 1 = 10
P2 14 — 2 = 12
P3 5 — 3 = 2

Среднее время ожидания: (0 + 10 + 12 + 2) / 4 = 24/4 = 6

Самое короткое оставшееся время

  • Наименьшее оставшееся время (SRT) является преимущественной версией алгоритма SJN.

  • Процессор выделяется для задания, наиболее близкого к завершению, но ему может предшествовать более новое готовое задание с более коротким временем до завершения.

  • Невозможно реализовать в интерактивных системах, где необходимое время ЦП неизвестно.

  • Он часто используется в пакетных средах, где короткие задания должны отдавать предпочтение.

Наименьшее оставшееся время (SRT) является преимущественной версией алгоритма SJN.

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

Невозможно реализовать в интерактивных системах, где необходимое время ЦП неизвестно.

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

Круглый Робин Планирование

  • Round Robin — это алгоритм планирования вытесняющих процессов.

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

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

  • Переключение контекста используется для сохранения состояний вытесненных процессов.

Round Robin — это алгоритм планирования вытесняющих процессов.

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

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

Переключение контекста используется для сохранения состояний вытесненных процессов.

Круглый алгоритм планирования Робина

Время ожидания каждого процесса выглядит следующим образом —

Процесс Время ожидания: Время обслуживания — Время прибытия
P0 (0 — 0) + (12 — 3) = 9
P1 (3 — 1) = 2
P2 (6 — 2) + (14 — 9) + (20 — 17) = 12
P3 (9 — 3) + (17 — 12) = 11

Среднее время ожидания: (9 + 2 + 12 + 11) / 4 = 8,5

Планирование многоуровневых очередей

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

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

Например, задания, связанные с процессором, могут планироваться в одной очереди, а все задания, связанные с вводом / выводом, — в другой очереди. Затем планировщик процессов поочередно выбирает задания из каждой очереди и назначает их ЦПУ на основе алгоритма, назначенного очереди.

Операционная система — многопоточность

Что такое тема?

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

Поток делится со своими равноправными потоками такой информацией, как сегмент кода, сегмент данных и открытые файлы. Когда один поток изменяет элемент памяти сегмента кода, все остальные потоки видят это.

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

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

Один против многопоточного процесса

Разница между процессом и потоком

SN Процесс Нить
1 Процесс тяжелый или ресурсоемкий. Нить имеет малый вес и требует меньше ресурсов, чем процесс.
2 Процесс переключения требует взаимодействия с операционной системой. Переключение потоков не требует взаимодействия с операционной системой.
3 В нескольких средах обработки каждый процесс выполняет один и тот же код, но имеет собственные ресурсы памяти и файлов. Все потоки могут совместно использовать один и тот же набор открытых файлов, дочерних процессов.
4 Если один процесс заблокирован, то ни один другой процесс не может выполняться, пока первый процесс не будет разблокирован. Пока один поток заблокирован и ожидает, второй поток в той же задаче может работать.
5 Несколько процессов без использования потоков используют больше ресурсов. Многопоточные процессы используют меньше ресурсов.
6 В нескольких процессах каждый процесс работает независимо от других. Один поток может читать, записывать или изменять данные другого потока.

Преимущества нити

  • Потоки минимизируют время переключения контекста.
  • Использование потоков обеспечивает параллелизм внутри процесса.
  • Эффективное общение.
  • Более экономично создавать и переключать контекстные потоки.
  • Потоки позволяют использовать многопроцессорные архитектуры с большим масштабом и эффективностью.

Типы ниток

Потоки реализуются следующими двумя способами:

  • Потоки уровня пользователя — управляемые пользователем потоки.

  • Потоки уровня ядра — управляемые потоки операционной системы, работающие на ядре, ядре операционной системы.

Потоки уровня пользователя — управляемые пользователем потоки.

Потоки уровня ядра — управляемые потоки операционной системы, работающие на ядре, ядре операционной системы.

Потоки уровня пользователя

В этом случае ядро ​​управления потоками не знает о существовании потоков. Библиотека потоков содержит код для создания и уничтожения потоков, для передачи сообщений и данных между потоками, для планирования выполнения потоков и для сохранения и восстановления контекстов потоков. Приложение запускается с одного потока.

Тема уровня пользователя

преимущества

  • Переключение потоков не требует привилегий режима ядра.
  • Поток пользовательского уровня может работать в любой операционной системе.
  • Планирование может зависеть от приложения в потоке уровня пользователя.
  • Потоки пользовательского уровня быстро создаются и управляются.

Недостатки

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

Потоки уровня ядра

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

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

преимущества

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

Недостатки

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

Многопоточные модели

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

  • Много ко многим отношениям.
  • Много к одному отношения.
  • Отношения один к одному.

Модель много ко многим

Модель «многие ко многим» мультиплексирует любое количество пользовательских потоков на равное или меньшее количество потоков ядра.

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

Модель много-много потоков

Много к одной модели

Модель «многие к одному» отображает множество потоков уровня пользователя в один поток уровня ядра. Управление потоками осуществляется в пространстве пользователя библиотекой потоков. Когда поток выполняет системный вызов блокировки, весь процесс будет заблокирован. Только один поток может одновременно обращаться к Ядру, поэтому несколько потоков не могут работать параллельно на многопроцессорных системах.

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

Модель много в один поток

Модель один на один

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

Недостатком этой модели является то, что для создания пользовательского потока требуется соответствующий поток ядра. OS / 2, Windows NT и Windows 2000 используют модель отношений один к одному.

Модель один в один поток

Разница между пользовательским уровнем и потоком на уровне ядра

SN Потоки уровня пользователя Нить на уровне ядра
1 Потоки пользовательского уровня быстрее создаются и управляются. Потоки уровня ядра медленнее создаются и управляются.
2 Реализация осуществляется библиотекой потоков на уровне пользователя. Операционная система поддерживает создание потоков ядра.
3 Поток пользовательского уровня является общим и может работать в любой операционной системе. Поток уровня ядра специфичен для операционной системы.
4 Многопоточные приложения не могут использовать преимущества многопроцессорной обработки. Сами подпрограммы ядра могут быть многопоточными.

Операционная система — Управление памятью

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

Этот учебник научит вас основным понятиям, связанным с управлением памятью.

Адресное пространство процесса

Адресное пространство процесса — это набор логических адресов, на которые процесс ссылается в своем коде. Например, когда используется 32-битная адресация, адреса могут варьироваться от 0 до 0x7fffffff; то есть 2 ^ 31 возможных чисел, для общего теоретического размера 2 гигабайта.

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

SN Адреса и описание памяти
1

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

Адреса, используемые в исходном коде. Имена переменных, константы и метки команд являются основными элементами символьного адресного пространства.

2

Относительные адреса

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

3

Физические адреса

Загрузчик генерирует эти адреса в тот момент, когда программа загружается в основную память.

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

Адреса, используемые в исходном коде. Имена переменных, константы и метки команд являются основными элементами символьного адресного пространства.

Относительные адреса

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

Физические адреса

Загрузчик генерирует эти адреса в тот момент, когда программа загружается в основную память.

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

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

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

  • Значение в базовом регистре добавляется к каждому адресу, сгенерированному пользовательским процессом, который обрабатывается как смещение во время его отправки в память. Например, если значение базового регистра равно 10000, то попытка пользователя использовать адрес 100 местоположения будет динамически перераспределена в местоположение 10100.

  • Пользовательская программа имеет дело с виртуальными адресами; он никогда не видит реальные физические адреса.

Значение в базовом регистре добавляется к каждому адресу, сгенерированному пользовательским процессом, который обрабатывается как смещение во время его отправки в память. Например, если значение базового регистра равно 10000, то попытка пользователя использовать адрес 100 местоположения будет динамически перераспределена в местоположение 10100.

Пользовательская программа имеет дело с виртуальными адресами; он никогда не видит реальные физические адреса.

Статическая и динамическая загрузка

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

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

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

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

Статическое и динамическое связывание

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

Когда используется динамическое связывание, нет необходимости связывать реальный модуль или библиотеку с программой, скорее, ссылка на динамический модуль предоставляется во время компиляции и связывания. Динамические библиотеки ссылок (DLL) в Windows и общие объекты в Unix являются хорошими примерами динамических библиотек.

Перестановка

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

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

Обмен процессами

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

Предположим, что пользовательский процесс имеет размер 2048 КБ, и на стандартном жестком диске, где произойдет обмен, скорость передачи данных составляет около 1 МБ в секунду. Фактический перенос процесса 1000K в или из памяти займет

2048KB / 1024KB per second
= 2 seconds
= 2000 milliseconds

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

Выделение памяти

Основная память обычно имеет два раздела —

  • Недостаточно памяти — Операционная система находится в этой памяти.

  • High Memory — пользовательские процессы хранятся в верхней памяти.

Недостаточно памяти — Операционная система находится в этой памяти.

High Memory — пользовательские процессы хранятся в верхней памяти.

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

SN Распределение памяти и описание
1

Распределение по одному разделу

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

2

Распределение нескольких разделов

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

Распределение по одному разделу

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

Распределение нескольких разделов

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

фрагментация

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

Фрагментация бывает двух типов —

SN Фрагментация и описание
1

Внешняя фрагментация

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

2

Внутренняя фрагментация

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

Внешняя фрагментация

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

Внутренняя фрагментация

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

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

Фрагментация памяти

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

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

Paging

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

Пейджинг — это метод управления памятью, при котором адресное пространство процесса разбивается на блоки одинакового размера, называемые страницами (размер равен степени 2, от 512 до 8192 байтов). Размер процесса измеряется количеством страниц.

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

Paging

Перевод адреса

Адрес страницы называется логическим адресом и представлен номером страницы и смещением .

Logical Address = Page number + page offset

Адрес кадра называется физическим адресом и представлен номером кадра и смещением .

Physical Address = Frame number + page offset

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

Таблица карты страницы

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

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

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

Преимущества и недостатки пейджинга

Вот список преимуществ и недостатков подкачки —

  • Пейджинг уменьшает внешнюю фрагментацию, но все еще страдает от внутренней фрагментации.

  • Пейджинг прост в реализации и считается эффективным методом управления памятью.

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

  • Таблица страниц требует дополнительного места в памяти, поэтому может не подойти для системы с небольшим объемом ОЗУ.

Пейджинг уменьшает внешнюю фрагментацию, но все еще страдает от внутренней фрагментации.

Пейджинг прост в реализации и считается эффективным методом управления памятью.

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

Таблица страниц требует дополнительного места в памяти, поэтому может не подойти для системы с небольшим объемом ОЗУ.

сегментация

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

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

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

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

Таблица сегментной карты

Операционная система — виртуальная память

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

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

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

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

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

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

  • Возможность выполнения программы, которая только частично находится в памяти, может противостоять многим преимуществам.

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

  • Программа больше не будет ограничена объемом доступной физической памяти.

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

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

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

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

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

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

Программа больше не будет ограничена объемом доступной физической памяти.

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

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

Виртуальная память

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

Пейджинг по требованию

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

Пейджинг по требованию

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

преимущества

Ниже приведены преимущества пейджинга по требованию:

  • Большая виртуальная память.
  • Более эффективное использование памяти.
  • Нет ограничений по степени мультипрограммирования.

Недостатки

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

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

Алгоритм замены страницы

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

Когда на страницу, которая была выбрана для замены и была выгружена, снова ссылаются, она должна считывать данные с диска, и это требует завершения ввода-вывода. Этот процесс определяет качество алгоритма замены страницы: чем меньше время ожидания для вставки страниц, тем лучше алгоритм.

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

Ссылочная строка

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

  • Для данного размера страницы нам нужно учитывать только номер страницы, а не весь адрес.

  • Если у нас есть ссылка на страницу p , то любые последующие ссылки на страницу p никогда не вызовут ошибку страницы. Страница p будет в памяти после первой ссылки; следующие ссылки не будут ошибаться.

  • Например, рассмотрим следующую последовательность адресов — 123,215,600,1234,76,96

  • Если размер страницы равен 100, тогда строка ссылки равна 1,2,6,12,0,0

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

Если у нас есть ссылка на страницу p , то любые последующие ссылки на страницу p никогда не вызовут ошибку страницы. Страница p будет в памяти после первой ссылки; следующие ссылки не будут ошибаться.

Например, рассмотрим следующую последовательность адресов — 123,215,600,1234,76,96

Если размер страницы равен 100, тогда строка ссылки равна 1,2,6,12,0,0

Алгоритм First In First Out (FIFO)

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

  • Легко реализовать, вести список, заменять страницы из хвоста и добавлять новые страницы в заголовок.

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

Легко реализовать, вести список, заменять страницы из хвоста и добавлять новые страницы в заголовок.

Первым прибыл, первым обслужен

Оптимальный алгоритм страницы

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

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

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

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

Оптимальная замена страницы

Наименее недавно использованный (LRU) алгоритм

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

  • Легко реализовать, вести список, заменять страницы, оглядываясь в прошлое.

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

Легко реализовать, вести список, заменять страницы, оглядываясь в прошлое.

Наименее недавно использованный

Алгоритм буферизации страниц

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

Наименее часто используемый (LFU) алгоритм

  • Страница с наименьшим количеством считается той, которая будет выбрана для замены.

  • Этот алгоритм страдает от ситуации, в которой страница интенсивно используется на начальном этапе процесса, но затем никогда не используется снова.

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

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

Наиболее часто используемый (MFU) алгоритм

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

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

Операционная система — Оборудование ввода / вывода

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

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

  • Блочные устройства — блочное устройство, с которым драйвер связывается, отправляя целые блоки данных. Например, жесткие диски, USB-камеры, Disk-On-Key и т. Д.

  • Символьные устройства. Символьное устройство — это устройство, с которым драйвер общается, отправляя и получая отдельные символы (байты, октеты). Например, последовательные порты, параллельные порты, звуковые карты и т. Д.

Блочные устройства — блочное устройство, с которым драйвер связывается, отправляя целые блоки данных. Например, жесткие диски, USB-камеры, Disk-On-Key и т. Д.

Символьные устройства. Символьное устройство — это устройство, с которым драйвер общается, отправляя и получая отдельные символы (байты, октеты). Например, последовательные порты, параллельные порты, звуковые карты и т. Д.

Контроллеры устройств

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

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

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

Любое устройство, подключенное к компьютеру, подключается через разъем и розетку, а разъем подключается к контроллеру устройства. Ниже приведена модель подключения ЦП, памяти, контроллеров и устройств ввода-вывода, в которой все ЦП и контроллеры устройств используют общую шину для связи.

Контроллеры устройств

Синхронный и асинхронный ввод-вывод

  • Синхронный ввод / вывод — в этой схеме выполнение ЦП ожидает, пока продолжается ввод / вывод

  • Асинхронный ввод-вывод — ввод-вывод выполняется одновременно с выполнением процессора

Синхронный ввод / вывод — в этой схеме выполнение ЦП ожидает, пока продолжается ввод / вывод

Асинхронный ввод-вывод — ввод-вывод выполняется одновременно с выполнением процессора

Связь с устройствами ввода / вывода

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

  • Специальная инструкция ввода / вывода
  • Отображение в памяти ввода-вывода
  • Прямой доступ к памяти (DMA)

Специальная инструкция ввода / вывода

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

Отображение в памяти ввода-вывода

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

Отображение в памяти ввода-вывода

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

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

Прямой доступ к памяти (DMA)

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

Прямой доступ к памяти (DMA) означает, что ЦП предоставляет полномочия модуля ввода / вывода для чтения или записи в память без участия. Модуль DMA сам управляет обменом данными между основной памятью и устройством ввода-вывода. CPU задействуется только в начале и в конце передачи и прерывается только после того, как весь блок был передан.

Для прямого доступа к памяти требуется специальное оборудование, называемое контроллером DMA (DMAC), которое управляет передачей данных и разрешает доступ к системной шине. Контроллеры запрограммированы с указателями источника и назначения (где для чтения / записи данных), счетчиками для отслеживания количества переданных байтов и настройками, которые включают в себя ввод / вывод и типы памяти, прерывания и состояния для циклов ЦП.

DMA

Операционная система использует оборудование DMA следующим образом:

шаг Описание
1 Драйвер устройства получает указание перенести данные с диска на адрес буфера X.
2 Затем драйвер устройства дает команду контроллеру диска передать данные в буфер.
3 Контроллер диска начинает передачу DMA.
4 Контроллер диска отправляет каждый байт контроллеру DMA.
5 Контроллер DMA передает байты в буфер, увеличивает адрес памяти, уменьшает счетчик C, пока C не станет равным нулю.
6 Когда C становится равным нулю, DMA прерывает CPU, чтобы завершить передачу сигнала.

Опрос против прерывания ввода / вывода

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

Опрос ввода / вывода

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

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

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

Прерывает ввод / вывод

Альтернативная схема для работы с вводом / выводом — это метод, управляемый прерываниями. Прерывание — это сигнал для микропроцессора от устройства, которое требует внимания.

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

Операционная система — Программное обеспечение ввода / вывода

Программное обеспечение ввода / вывода часто организовано на следующих уровнях:

  • Библиотеки уровня пользователя — это обеспечивает простой интерфейс для пользовательской программы для выполнения ввода и вывода. Например, stdio — это библиотека, предоставляемая языками программирования C и C ++.

  • Модули уровня ядра — это обеспечивает драйвер устройства для взаимодействия с контроллером устройства и независимыми от устройства модулями ввода / вывода, используемыми драйверами устройства.

  • Аппаратное обеспечение — этот уровень включает в себя фактический аппаратный и аппаратный контроллер, который взаимодействует с драйверами устройства и обеспечивает работу оборудования.

Библиотеки уровня пользователя — это обеспечивает простой интерфейс для пользовательской программы для выполнения ввода и вывода. Например, stdio — это библиотека, предоставляемая языками программирования C и C ++.

Модули уровня ядра — это обеспечивает драйвер устройства для взаимодействия с контроллером устройства и независимыми от устройства модулями ввода / вывода, используемыми драйверами устройства.

Аппаратное обеспечение — этот уровень включает в себя фактический аппаратный и аппаратный контроллер, который взаимодействует с драйверами устройства и обеспечивает работу оборудования.

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

Программное обеспечение ввода / вывода

Драйверы устройств

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

Драйвер устройства выполняет следующие задания:

  • Чтобы принять запрос от устройства независимого программного обеспечения выше к нему.
  • Взаимодействовать с контроллером устройства для получения и ввода-вывода и выполнения необходимой обработки ошибок
  • Убедиться, что запрос выполнен успешно

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

Обработчики прерываний

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

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

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

Независимое от устройства программное обеспечение ввода / вывода

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

  • Единый интерфейс для драйверов устройств
  • Именование устройства — Мнемонические имена сопоставляются с номерами устройств Major и Minor.
  • Защита устройства
  • Предоставление независимого от устройства размера блока
  • Буферизация, поскольку данные, поступающие с устройства, не могут быть сохранены в конечном месте назначения.
  • Распределение памяти на блочных устройствах
  • Распределение и выпуск выделенных устройств
  • Отчет об ошибках

User-Space I / O Software

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

Библиотеки ввода / вывода (например, stdio) находятся в пользовательском пространстве, чтобы предоставить интерфейс к независимому от устройства резидентному программному обеспечению ввода / вывода. Например, putchar (), getchar (), printf () и scanf () являются примером stdio библиотеки ввода-вывода пользовательского уровня, доступной в C-программировании.

Подсистема ввода / вывода ядра

Подсистема ввода / вывода ядра отвечает за предоставление многих услуг, связанных с вводом / выводом. Ниже приведены некоторые из предоставляемых услуг.

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

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

  • Кеширование — Ядро поддерживает кеш-память, которая является областью быстрой памяти, в которой хранятся копии данных. Доступ к кэшированной копии более эффективен, чем доступ к оригиналу.

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

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

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

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

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

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

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

Операционная система — Файловая система

файл

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

Файловая структура

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

  • Файл имеет определенную структуру в соответствии с его типом.

  • Текстовый файл — это последовательность символов, организованная в строки.

  • Исходный файл представляет собой последовательность процедур и функций.

  • Объектный файл — это последовательность байтов, организованных в блоки, которые понятны машине.

  • Когда операционная система определяет различные файловые структуры, она также содержит код для поддержки этих файловых структур. Unix, MS-DOS поддерживают минимальное количество файловых структур.

Файл имеет определенную структуру в соответствии с его типом.

Текстовый файл — это последовательность символов, организованная в строки.

Исходный файл представляет собой последовательность процедур и функций.

Объектный файл — это последовательность байтов, организованных в блоки, которые понятны машине.

Когда операционная система определяет различные файловые структуры, она также содержит код для поддержки этих файловых структур. Unix, MS-DOS поддерживают минимальное количество файловых структур.

Тип файла

Тип файла относится к способности операционной системы различать различные типы файлов, такие как исходные текстовые файлы, двоичные файлы и т. Д. Многие операционные системы поддерживают многие типы файлов. Операционные системы, такие как MS-DOS и UNIX, имеют следующие типы файлов:

Обычные файлы

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

Каталог файлов

  • Эти файлы содержат список имен файлов и другую информацию, связанную с этими файлами.

Специальные файлы

  • Эти файлы также называются файлами устройств.
  • Эти файлы представляют физические устройства, такие как диски, терминалы, принтеры, сети, ленточные накопители и т. Д.

Эти файлы бывают двух типов —

  • Символьные специальные файлы — данные обрабатываются символьно, как в случае терминалов или принтеров.

  • Блочные специальные файлы — данные обрабатываются блоками, как в случае с дисками и лентами.

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

Блочные специальные файлы — данные обрабатываются блоками, как в случае с дисками и лентами.

Механизмы доступа к файлам

Механизм доступа к файлу относится к способу доступа к записям файла. Есть несколько способов доступа к файлам —

  • Последовательный доступ
  • Прямой / Случайный доступ
  • Индексированный последовательный доступ

Последовательный доступ

Последовательный доступ — это доступ, к которому записи ведутся в некоторой последовательности, т. Е. Информация в файле обрабатывается по порядку, одна запись за другой. Этот метод доступа является наиболее примитивным. Пример: компиляторы обычно получают доступ к файлам таким способом.

Прямой / Случайный доступ

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

  • Каждая запись имеет свой адрес в файле, с помощью которого к ней можно получить прямой доступ для чтения или записи.

  • Записи не должны быть в какой-либо последовательности в файле, и они не должны находиться в смежных местах на носителе данных.

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

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

Записи не должны быть в какой-либо последовательности в файле, и они не должны находиться в смежных местах на носителе данных.

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

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

Распределение пространства

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

  • Непрерывное распределение
  • Связанное распределение
  • Индексированное распределение

Непрерывное распределение

  • Каждый файл занимает непрерывное адресное пространство на диске.
  • Назначенный адрес диска в линейном порядке.
  • Легко реализовать.
  • Внешняя фрагментация является серьезной проблемой при таком типе распределения.

Связанное распределение

  • Каждый файл содержит список ссылок на блоки диска.
  • Каталог содержит ссылку / указатель на первый блок файла.
  • Нет внешней фрагментации
  • Эффективно используется в файле последовательного доступа.
  • Неэффективно в случае прямого доступа к файлу.

Индексированное распределение

  • Предоставляет решения проблем смежного и связанного размещения.
  • Создается индексный блок со всеми указателями на файлы.
  • Каждый файл имеет свой собственный индексный блок, в котором хранятся адреса дискового пространства, занимаемого файлом.
  • Каталог содержит адреса индексных блоков файлов.

Операционная система — Безопасность

Безопасность относится к обеспечению системы защиты ресурсов компьютерной системы, таких как ЦП, память, диск, программы программного обеспечения и, что наиболее важно, данных / информации, хранящихся в компьютерной системе. Если компьютерная программа запускается неавторизованным пользователем, он может нанести серьезный ущерб компьютеру или данным, хранящимся на нем. Таким образом, компьютерная система должна быть защищена от несанкционированного доступа, злонамеренного доступа к системной памяти, вирусов, червей и т. Д. Мы собираемся обсудить следующие темы в этой главе.

  • Аутентификация
  • Одноразовые пароли
  • Программные угрозы
  • Системные угрозы
  • Классификация компьютерной безопасности

Аутентификация

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

  • Имя пользователя / пароль — пользователю необходимо ввести зарегистрированное имя пользователя и пароль в операционной системе для входа в систему.

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

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

Имя пользователя / пароль — пользователю необходимо ввести зарегистрированное имя пользователя и пароль в операционной системе для входа в систему.

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

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

Одноразовые пароли

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

  • Случайные числа — Пользователям предоставляются карточки с номерами, напечатанными вместе с соответствующими алфавитами. Система запрашивает числа, соответствующие нескольким случайно выбранным алфавитам.

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

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

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

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

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

Программные угрозы

Процессы операционной системы и ядро ​​выполняют назначенную задачу в соответствии с инструкциями. Если пользовательская программа заставила этот процесс выполнять вредоносные задачи, она называется « Угрозы программе» . Одним из распространенных примеров программной угрозы является программа, установленная на компьютере, которая может сохранять и отправлять учетные данные пользователя по сети некоторому хакеру. Ниже приведен список некоторых известных программных угроз.

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

  • Дверь-ловушка — Если программа, предназначенная для работы в соответствии с требованиями, имеет дыру в безопасности в своем коде и выполняет незаконные действия без ведома пользователя, то она вызывается для того, чтобы иметь ловушку.

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

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

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

Дверь-ловушка — Если программа, предназначенная для работы в соответствии с требованиями, имеет дыру в безопасности в своем коде и выполняет незаконные действия без ведома пользователя, то она вызывается для того, чтобы иметь ловушку.

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

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

Системные угрозы

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

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

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

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

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

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

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

Классификация компьютерной безопасности

Согласно Критериям оценки доверенных компьютерных систем Министерства обороны США, в компьютерных системах существует четыре классификации безопасности: A, B, C и D. Это широко используемые спецификации для определения и моделирования безопасности систем и решений безопасности. Ниже приводится краткое описание каждой классификации.

SN Тип классификации и описание
1

Наберите «А

Высший уровень. Использует формальные спецификации проекта и методы проверки. Обеспечивает высокую степень безопасности процесса.

2

Тип Б

Обеспечивает обязательную защиту системы. Обладают всеми свойствами системы класса C2. Прикрепляет метку чувствительности к каждому объекту. Это трех типов.

  • B1 — поддерживает метку безопасности каждого объекта в системе. Метка используется для принятия решений по контролю доступа.

  • B2 — Расширяет метки чувствительности для каждого системного ресурса, такого как объекты хранения, поддерживает скрытые каналы и аудит событий.

  • B3 — Позволяет создавать списки или группы пользователей для контроля доступа, чтобы предоставить доступ или отозвать доступ к указанному именованному объекту.

3

Тип С

Обеспечивает защиту и ответственность пользователей, используя возможности аудита. Это двух типов.

  • C1 — включает средства управления, чтобы пользователи могли защитить свою личную информацию и не дать другим пользователям случайно читать / удалять свои данные. Версии UNIX в основном относятся к классу Cl.

  • C2 — добавляет управление доступом на индивидуальном уровне к возможностям системы уровня Cl.

4

Тип D

Самый низкий уровень. Минимальная защита. MS-DOS, Window 3.1 попадают в эту категорию.

Наберите «А

Высший уровень. Использует формальные спецификации проекта и методы проверки. Обеспечивает высокую степень безопасности процесса.

Тип Б

Обеспечивает обязательную защиту системы. Обладают всеми свойствами системы класса C2. Прикрепляет метку чувствительности к каждому объекту. Это трех типов.

B1 — поддерживает метку безопасности каждого объекта в системе. Метка используется для принятия решений по контролю доступа.

B2 — Расширяет метки чувствительности для каждого системного ресурса, такого как объекты хранения, поддерживает скрытые каналы и аудит событий.

B3 — Позволяет создавать списки или группы пользователей для контроля доступа, чтобы предоставить доступ или отозвать доступ к указанному именованному объекту.

Тип С

Обеспечивает защиту и ответственность пользователей, используя возможности аудита. Это двух типов.

C1 — включает средства управления, чтобы пользователи могли защитить свою личную информацию и не дать другим пользователям случайно читать / удалять свои данные. Версии UNIX в основном относятся к классу Cl.

C2 — добавляет управление доступом на индивидуальном уровне к возможностям системы уровня Cl.

Тип D

Самый низкий уровень. Минимальная защита. MS-DOS, Window 3.1 попадают в эту категорию.

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

Linux является одной из популярных версий операционной системы UNIX. Это открытый исходный код, так как его исходный код находится в свободном доступе. Это бесплатно для использования. Linux был разработан с учетом совместимости с UNIX. Его функциональный список очень похож на UNIX.

Компоненты системы Linux

Операционная система Linux состоит в основном из трех компонентов

  • Ядро — Ядро является основной частью Linux. Он отвечает за все основные виды деятельности этой операционной системы. Он состоит из различных модулей и напрямую взаимодействует с базовым оборудованием. Ядро предоставляет необходимую абстракцию для скрытия сведений об оборудовании низкого уровня в системных или прикладных программах.

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

  • System Utility — программы System Utility отвечают за выполнение специализированных задач индивидуального уровня.

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

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

System Utility — программы System Utility отвечают за выполнение специализированных задач индивидуального уровня.

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

Режим ядра против режима пользователя

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

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

Основные характеристики

Ниже приведены некоторые важные функции операционной системы Linux.

  • Переносимость — Портативность означает, что программное обеспечение может работать на разных типах оборудования одинаково. Ядро Linux и прикладные программы поддерживают их установку на любую аппаратную платформу.

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

  • Многопользовательский — Linux является многопользовательской системой, что означает, что несколько пользователей могут одновременно получать доступ к системным ресурсам, таким как память / оперативная память / прикладные программы.

  • Мультипрограммирование — Linux — это мультипрограммная система, которая позволяет одновременно запускать несколько приложений.

  • Иерархическая файловая система — Linux предоставляет стандартную файловую структуру, в которой располагаются системные файлы / пользовательские файлы.

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

  • Безопасность — Linux обеспечивает безопасность пользователя, используя функции аутентификации, такие как защита паролем / контролируемый доступ к определенным файлам / шифрование данных.

Переносимость — Портативность означает, что программное обеспечение может работать на разных типах оборудования одинаково. Ядро Linux и прикладные программы поддерживают их установку на любую аппаратную платформу.

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

Многопользовательский — Linux является многопользовательской системой, что означает, что несколько пользователей могут одновременно получать доступ к системным ресурсам, таким как память / оперативная память / прикладные программы.

Мультипрограммирование — Linux — это мультипрограммная система, которая позволяет одновременно запускать несколько приложений.

Иерархическая файловая система — Linux предоставляет стандартную файловую структуру, в которой располагаются системные файлы / пользовательские файлы.

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

Безопасность — Linux обеспечивает безопасность пользователя, используя функции аутентификации, такие как защита паролем / контролируемый доступ к определенным файлам / шифрование данных.

Архитектура

На следующем рисунке показана архитектура системы Linux —

Архитектура операционной системы Linux

Архитектура системы Linux состоит из следующих уровней:

Аппаратный уровень — Аппаратное обеспечение состоит из всех периферийных устройств (RAM / HDD / CPU и т. Д.).

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

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

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