Процесс в операционной системе это: works.doklad.ru — Учебные материалы

Содержание

Понятие процесса операционной системы. Состояния процесса и переходы между ними. Блок управления процессом. Цикл жизни процесса. Операции над процессами. Определение

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

Процесс — команда, которая выполняется в текущий момент. Стандарт. ISO 9000:2000 Definitions определяет процесс как совокупность взаимосвязанных и взаимодействующих действий, преобразующих входящие данные в исходящие.

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

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

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

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

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

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

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

  • либо он заканчивает свою деятельность;

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

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

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

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

В конкретных операционных системах состояния процесса могут быть еще более детализированы, могут появиться некоторые новые варианты переходов из состояния в состояние. Так, например, модель состояний процессов для операционной системы Windows NT содержит 7 различных состояний, а для операционной системы UNIX — 9. Тем не менее, в принципе, все операционные системы подчиняются изложенной выше модели.

2.1.4 Процесс

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

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

  • Идентификатор: уникальный номер, по которому различают процессы
  • Статус: показывает текущее состояние процесса (например «запущен»)
  • Приоритет: приоритет перед другими процессами
  • Счётчик команд: адрес следующей команды
  • Организация памяти: расположение кода и данных программы
  • Контекстные данные: состояние регистров процессора на момент запуска
  • Статус ввода/вывода: информация о запросах ввода/вывода, связанных с процессом устройствах ввода/вывода, список открытых процессом файлов, итд.
  • Отчётные данные: использованное процессорное время, временные ограничения, итд.

Эта информация хранится в структуре данных, называемой блоком управления процессом (Process Control Block) и которой заведует ОС. Блок управления содержит достаточно информации, чтобы при необходимости процесс можно было прервать и позже продолжить его исполнение, например в случаи прерывания. Когда процесс прерывается, в соответствующие поля его блока управления сохраняются такие параметры как значение счётчика команд и состояние регистров процессора, а статус процесса меняется с «запущен» (Execution) на «заблокирован» (Blocked) или «готов к исполнению» (Ready).

Рисунок 2‑4. Возможности переключения статуса процесса (Источник: Learning Materials for Information Technology Professionals (EUCIP-Mat))

  • Готов к исполнению — процесс поставлен в очередь на исполнение и ожидает, пока ресурсы процессора не освободятся.
  • Запущен — процесс использует выделенные ему ресурсы процессора.
  • Заблокирован — процесс ожидает, пока не произойдёт некоторое событие (например, завершится операция ввода/вывода).

15) Управление процессами в ОС

Что такое процесс?

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

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

Из этого руководства по операционной системе вы узнаете:

Что такое управление процессами?

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

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

Архитектура процесса

Архитектура процесса Изображение

Вот схема архитектуры процесса

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

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

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

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

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

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

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

Есть в основном семь этапов процесса, которые:

  • Новый: новый процесс создается, когда конкретная программа вызывает из вторичной памяти / жесткого диска в первичную память / ОЗУ
  • Готов: в состоянии готовности процесс должен быть загружен в основную память, которая готова к выполнению.
  • Ожидание: процесс ожидает выделения процессорного времени и других ресурсов для выполнения.
  • Выполнение: процесс находится в состоянии выполнения.
  • Заблокировано: это временной интервал, когда процесс ожидает завершения события, такого как операции ввода-вывода.
  • Приостановлено: состояние приостановки определяет время, когда процесс готов к выполнению, но ОС не помещает его в очередь готовности.
  • Прекращено: Завершенное состояние указывает время, когда процесс завершается

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

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

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

Здесь важны компоненты печатной платы

Блок управления процессом (PCB)
  • Состояние процесса: процесс может быть новым, готовым, запущенным, ожидающим и т. Д.
  • Счетчик программ: Счетчик программ позволяет узнать адрес следующей инструкции, которая должна быть выполнена для этого процесса.
  • Регистры ЦП: этот компонент включает в себя аккумуляторы, регистры индекса и общего назначения, а также информацию о коде состояния.
  • Информация о планировании ЦП. Этот компонент включает в себя приоритет процесса, указатели для очередей планирования и различные другие параметры планирования.
  • Бухгалтерская и деловая информация: включает количество ресурсов ЦП и времени, таких как использованное в реальном времени, количество заданий или процессов и т. Д.
  • Информация об управлении памятью: эта информация включает в себя значения базового и предельного регистров, таблицы страниц или сегментов. Это зависит от системы памяти, которая используется операционной системой.
  • Информация о состоянии ввода / вывода: этот блок включает в себя список открытых файлов, список устройств ввода / вывода, выделенных для процесса, и т. Д.

Резюме:

  • Процесс определяется как выполнение программы, которая выполняет действия, указанные в этой программе.
  • Управление процессами включает в себя различные задачи, такие как создание, планирование, завершение процессов и блокировка.
  • Важными элементами архитектуры процесса являются 1) стек 2) куча 3) данные и 4) текст
  • Печатная плата является полной формой блока управления процессом. Это структура данных, которая поддерживается операционной системой для каждого процесса
  • Состояние процесса — это состояние процесса в определенный момент времени.
  • Каждый процесс представлен в операционной системе блоком управления процессом, который также называется блоком управления задачами.

 

Глава 3 Управление процессами. Разработка ядра Linux

Читайте также

Глава 9 Управление процессами и каналы

Глава 9 Управление процессами и каналы Как мы говорили в главе 1 «Введение», если бы нужно было резюмировать Unix (а следовательно, и Linux) в трёх словах, это были бы «файлы и процессы». Теперь, когда мы увидели, как работать с файлами и каталогами, время взглянуть на оставшуюся

9.1. Создание и управление процессами

9.1. Создание и управление процессами В отличие от многих предшествующих и последующих операционных систем, создание процессов в Unix задумывалось (и было сделано) дешевым. Более того, Unix разделяет идеи «создания нового процесса» и «запуска данной программы в процессе». Это

ГЛАВА 11 Взаимодействие между процессами

ГЛАВА 11 Взаимодействие между процессами В главе 6 было показано, как создавать процессы и управлять ими, тогда как главы 7—10 были посвящены описанию методов управления потоками, которые выполняются внутри процессов, и объектов, обеспечивающих их синхронизацию. Вместе с

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

Глава 3 Управление процессами Процесс — одно из самых важных абстрактных понятий в Unix-подобных операционных системах[8]. По сути, процесс — это программа, т.е. объектный код, хранящийся на каком-либо носителе информации и находящийся в состоянии исполнения. Однако

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

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

Создание и управление процессами

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

Глава 3 Подсистема управления процессами

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

ГЛАВА 7. УПРАВЛЕНИЕ ПРОЦЕССАМИ

ГЛАВА 7. УПРАВЛЕНИЕ ПРОЦЕССАМИ В предыдущей главе был рассмотрен контекст процесса и описаны алгоритмы для работы с ним; в данной главе речь пойдет об использовании и реализации системных функций, управляющих контекстом процесса. Системная функция fork создает новый

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

Глава 26 Управление процессами Данная глава посвящена процессам операционной системы Linux. Поскольку администрирование операционной системы в конечном счете сводится к управлению процессами, вполне логично выделить отдельную главу на описание столь важной темы.Каждый

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

8.4. Управление процессами Первым делом научимся определять, какие процессы в системе запущены. Для этого в Linux (как и во всех UNIX-системах) имеется команда ps. Если ее запустить без всяких параметров, то она выдает список процессов, запущенных в текущей сессии. Если вы хотите

Глава 8. Управление потоком.

Глава 8. Управление потоком. В этой главе …~ Использование управляющих структур для управления происходящим~ Проверка условий с помощью условных выражений~ Принятие решений с помощью операторов If. . .Then и SelectCase~ Повторение выполнения действий с помощью операторов For…Next, For

Глава 6 Управление экраном

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

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

Управление процессами Функция Краткое описание abort завершить процесс execl выполнить порождаемый процесс со списком аргументов execle выполнить порождаемый процесс со списком аргументов и заданным окружением (контекстом имен командного языка операционной

ГЛАВА 04 УПРАВЛЕНИЕ

ГЛАВА 04 УПРАВЛЕНИЕ Однажды сороконожку спросили, с какой ноги она начинает движение. С тех пор она не может сдвинуться с места, мучительно размышляя над тем, с какой ноги начинать. Это старая шутка, но попробуйте задуматься: как вы управляете своей компанией? Не знаю,

Operating Systems: Three Easy Pieces. Part 2: Абстракция: Процесс (перевод) / Хабр

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

тут

. Прошу учесть, что перевод выполнен непрофессионально (достаточно вольно), но надеюсь общий смысл я сохранил.

Лабораторные работы по данному предмету можно найти вот тут:

Другие части:


А еще можете заглядывать ко мне на канал в

телеграм

=)


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

Отсюда вытекает проблема: как обеспечить иллюзию множества CPU? Как ОС создать иллюзию практически бесконечного количества CPU, даже если у вас всего один физический CPU?

ОС создает эту иллюзию посредством виртуализации CPU. Запуская один процесс, затем останавливая его, запуская другой процесс и так далее, ОС может поддерживать иллюзию того, что существует множество виртуальных CPU, хотя фактически это будет один или несколько физических процессоров. Такая техника называется разделение ресурсов CPU по времени. Эта техника позволяет пользователям запускать столько одновременных процессов, сколько они пожелают. Ценою такого решения является производительность – поскольку если CPU делят несколько процессов, каждый процесс будет обрабатываться медленнее.
Для воплощения виртуализации CPU, а особенно для того чтобы делать это хорошо, ОС нуждается и в низкоуровневой и в высокоуровневой поддержке. Низкоуровневая поддержка называется механизмами — это низкоуровневые методы или протоколы, которые реализуют нужную часть функционала. Пример такого функционала — контекстное переключение, которое дает ОС возможность останавливать одну программу и запускать на процессоре другую программу. Такое разделение по времени реализовано во всех современных ОС.
На вершине этих механизмов располагается некоторая логика, заложенная в ОС, в форме “политик”. Политика — это некоторый алгоритм принятия решения операционной системой. Такие политики, например, решают, какую программу надо запускать (из списка команд) в первую очередь. Так, например, данную задачу решит политика, называющаяся планировщик (scheduling policy) и при выборе решения будет руководствоваться такими данными как: история запуска (какая программа была запущена дольше всех за последнюю минут), какую нагрузку осуществляет данный процесс (какие типы программ были запущены), метрики производительности (оптимизирована ли система для интерактивного взаимодействия или для пропускной способности) и так далее.

Абстракция: процесс

Абстракция работающей программы, выполняемая операционной системой это то, что мы называем

процесс

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

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

Одним из очевидных элементов состояния системы, которые включает в себя процесс — это

память

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

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

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

IP — instruction pointer

— указатель на инструкцию, которую программа исполняет в текущий момент. Еще есть

stack pointer

и связанный с ним

frame pointer

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

Наконец, программы часто обращаются к ПЗУ (постоянному запоминающему устройству). Такая информация о “I/O” (вводе-выводе) должна включать в себя список файлов, открытых процессом в данный момент.

Process API

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

Create (создание): В ОС должен входить какой либо метод, позволяющий создавать новый процессы. Когда вы вводите команду в терминал или запускаете приложение через двойной клик по иконке, посылается обращение к ОС для создания нового процесса и последующего запуска указанной программы.
Удаление: Раз есть интерфейс для создания процесса, ОС также должна предоставлять возможность для принудительного удаления процесса. Большинство программ естественно будут запущены и завершены сами по себе по мере их выполнения. В противном случае пользователь хотел бы иметь возможность убить их и таким образом интерфейс для остановки процесса будет не лишним.
Wait (ожидание): Иногда полезно дождаться завершения процесса, поэтому обеспечиваются некоторые интерфейсы предоставляющие возможностью ожидания.
Misc Control (разное управление): Кроме убийства и ожидания процесса еще существуют другие разнообразные контролирующие методы. Например большинство ОС предоставляют возможность заморозки процесса (остановка его выполнения на некоторый период) и последующее возобновление (продолжение исполнения)
Status (состояние): Существуют различные интерфейсы для получения некоторой информации он статусе процесса, такие как продолжительность его работы или в каком состоянии он сейчас находится.

Создание процесса: детали

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

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

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

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

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

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

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

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

Running

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

Ready

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

Blocked

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

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

В следующем примере первый процесс через некоторое время работы запрашивает IO и переходит в состояние BLOCKED, предоставляя другому процессу возможность запуска (РИС 1.4). ОС видит, что процесс 0 не использует CPU и запускает процесс 1. Во время выполнения процесса 1 — IO завершается и статус процесса 0 меняется на READY. Наконец процесс 1 завершился, а по его окончание процесс 0 запускается, исполняется и заканчивает свою работу.

Структура данных

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

process list

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

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

Кроме состояний ready, blocked, running существуют еще некоторые другие состояния. Иногда в момент создания процесс может иметь состояние INIT. Наконец процесс может быть помещен состояние FINAL, когда он уже завершился, но информация о нем еще не вычищена. В UNIX системах такое состояние называется процесс-зомби. Это состояние полезно для случаев когда родительский процесс хочет узнать код возврата потомка, например, обычно 0 сигнализирует об успешном завершении, а 1 об ошибочном, однако программисты могут делать дополнительные коды вывода, сигнализируя о разных проблемах. При завершении процесс-родитель делает последний системный вызов, например wait(), чтобы дождаться завершения работы процесса-потомка и просигнализировать ОС о том, что можно очистить любые данные, связанные с завершенным процессом.

Ключевые моменты лекции:

Процесс

— главная абстракция работающей программы в ОС. В любой момент времени процесс может быть описан по его состоянию: содержимое памяти в его адресном пространстве, содержимое регистров процессора, включая instruction pointer и stack pointer также информацией о IO, например открытыми файлами, которые считываются или записываются.

Process API

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

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

Process list

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

ISSP \ Домен 03. Архитектура и модель безопасности. Часть 2

В этой части рассмотрены следующие вопросы:
  • Архитектура операционной системы
  • Управление процессами
  • Управление потоками
  • Диспетчеризация процессов
  • Работа процессов

Обновлено: 05.04.2010


Операционная система предоставляет среду для работы приложений и пользователей. Операционная система состоит из различных слоев и модулей, которые отвечают за управление оборудованием, памятью, операциями ввода/вывода, процессами, файловой системой, а также предоставляют системные сервисы. Далее мы вкратце рассмотрим каждую из этих функций, относящихся к любой операционной системе.
Операционные системы, утилиты и приложения в действительности являются просто множеством строк команд. Эти статические строки кода оживают после инициализации программы и размещения в памяти. Приложения работают как отдельные модули, называемые процессами, операционная система также имеет множество различных процессов, выполняющих различные функции. Процесс – это набор команд, запущенный на выполнение. Программа не является процессом, пока она не загружена в память и не активирована операционной системой. При создании процесса операционная система выделяет ему ресурсы, такие как сегменты памяти, кванты процессорного времени, доступ к интерфейсам API (application programming interface), файлам и т.п.

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

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

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

В ранних версиях операционных систем (Windows 3.1, Macintosh) была реализована кооперативная многозадачность (cooperative multitasking), когда процессы сами освобождали ресурсы компьютера, по своему усмотрению. В более современных версиях (Windows 2000, XP, Unix-системах и т.д.) реализована вытесняющая многозадачность (preemptive multitasking), при использовании которой операционная система сама управляет использованием ресурсов процессами. Кооперативная многозадачность не может обеспечить стабильную среду, т.к. если программист не написал (или неправильно написал) код, надлежащим образом освобождающий ресурс после выполнения своего приложения, этот ресурс может оказаться заблокированным на неопределенное время и недоступным для других процессов. При использовании вытесняющей многозадачности операционная система управляет тем, сколько времени процесс может использовать ресурс. Система может приостановить процесс, использующий процессор и позволить другим процессам получить доступ к нему с помощью разделения времени (time sharing). В операционных системах с кооперативной многозадачностью, процессы имели слишком большой контроль над ресурсами, и если приложение зависало, это, как правило, затрагивало все остальные приложения, а иногда и саму операционную систему. В операционных системах с вытесняющей многозадачностью одно приложение не может также легко оказать негативное влияние на другое приложение.

Различные операционные системы используют различные модели процессов. Например, системы Unix и Linux позволяют своим процессам создавать новые дочерние процессы, что называется ветвлением (forking). Допустим, вы работаете в оболочке системы Linux. Эта оболочка является командным интерпретатором, а также интерфейсом, который позволяет пользователю взаимодействовать с операционной системой. Оболочка выполняется как процесс. Если вы введете в этой оболочке команду cat file1 file2 | grep stuff, вы скажете операционной системе, что нужно объединить (cat) два файла, а затем найти (grep) строки, которые имеют значение stuff. Когда вы нажмете клавишу ENTER, оболочка породит два дочерних процесса – один для команды cat и один для команды grep. Каждый из этих дочерних процессов получит характеристики родительского процесса, но будет иметь свое собственное пространство памяти, стек и значение счетчика команд.

Процесс может находиться в состоянии выполнения (running state – процессор выполняет команды процесса), в состоянии готовности (ready state – ожидание передачи команд процессору) или в заблокированном состоянии (blocked state – ожидание входящих данных). Эти различные состояния показаны на рисунке 3-4. Когда процесс заблокирован, он ждет, когда ему отправят некоторые данные. В предыдущем примере, после ввода команды cat file1 file2 | grep stuff, процесс grep не может выполнять свои функции поиска, пока процесс cat не выполнит объединение этих двух файлов. Процесс grep переведет себя в спящий режим и будет находиться в заблокированном состоянии, пока не выполнится процесс cat и не пошлет процессу grep входные данные, которые он должен будет обработать.

Рисунок 3-4. Процесс проходит через различные состояния


ПРИМЕЧАНИЕ. Не все операционные системы работают с процессами также, как системы Unix и Linux. Например, системы Windows не порождают новых дочерних процессов, вместо этого они создают новые потоки, которые работают в том же контексте, что и родительский процесс.
Операционная система отвечает за создание новых процессов, выделение каждому из них ресурсов, синхронизацию их взаимодействия и контроль, что не происходит ничего опасного. Операционная система хранит специальную таблицу процессов (process table), в которой содержится информация о каждом процессе. В этой таблице хранятся связанные с процессами параметры, например, состояние процесса, указатель стека, программный счетчик, распределение памяти, состояние открытых файлов и т.д. Вся эта информация нужна операционной системе для того, чтобы процессор загружал ее в свои регистры, когда ему необходимо взаимодействовать, например, с процессом 1. Когда закончится квант процессорного времени, выделенный процессу 1, вся текущая информация о состоянии процесса 1 сохранится в таблице процессов, чтобы, когда этот процесс снова получит квант времени, все эти сведения можно было загрузить обратно в регистры процессора. При этом из таблицы процессов в регистры процессора будет загружена информация процесса 2, а когда закончится и его квант процессорного времени, информация из регистров снова будет записана в таблицу процессов. Эти шаги показаны на Рисунке 3-5.

Рисунок 3-5. Таблица процессов содержит данные о состоянии процессов, которые необходимы процессору


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

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

ПРИМЕЧАНИЕ. Некоторые критические процессы не могут допустить прерывание своего выполнения другим процессом. Операционная система обеспечивает установку приоритетов для различных процессов. Когда одному процессу нужно прервать другой процесс, операционная система сравнивает уровни приоритета обоих процессов, чтобы определить, следует ли разрешать такое прерывание.
Есть две категории прерываний: маскируемые (maskable) и немаскируемые (non-maskable). Маскируемые прерывания связаны с событиями, которые не могут быть очень важны, и программист может указать, что даже если происходит маскируемое прерывание, программа не прерывает своей работы. Таким образом, маскируемые прерывания могут игнорироваться. Немаскируемые прерывания не могут быть проигнорированы приложением ни при каких обстоятельствах, поскольку события, которые вызывают немаскируемые прерывания, имеют критическое значение. Например, кнопке RESET может быть назначено немаскируемое прерывание, чтобы при нажатии этой кнопки процессор сразу выполнял соответствующие команды.

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

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


Как уже говорилось ранее, процесс представляет собой программу в памяти. Точнее процесс является командами программы и всеми ресурсами, выделенными ему операционной системой. Значительно проще сгруппировать все эти команды и ресурсы вместе и контролировать их как единое целое (процесс). Когда процессу нужно отправить команды на выполнение процессору, он создает поток. Поток (thread) состоит из собственного набора команд и данных, которые должны быть обработаны процессором.
Большинство приложений имеют несколько различных функций. Текстовые редакторы могут открывать файлы, сохранять файлы, запускать другие программы (например, клиент электронной почты), а также печатать документы. Каждая из этих функций требует потока (набора команд), которые будут создаваться динамически. Так, например, если Том хочет распечатать свой документ, процесс текстового редактора создает поток, который содержит команды, непосредственно обеспечивающие печать документа (устанавливающие, в частности, шрифт, цвет, и т.д.). Если он решает отправить свой документ по электронной почте, создается другой поток, который дает команду клиенту электронной почты на открытие и отправку файла. Потоки создаются и уничтожаются динамически по мере необходимости. Когда Том напечатал свой документ, поток, который был создан для выполнения этой функции, уничтожается.
Используя потоки, программа может выполнять несколько задач одновременно (например, выводить изображение на экран, взаимодействовать с другими программами, отправлять документ на печать). Приложение, использующее эту возможность, называется многопоточным (multithreaded) приложением.
ПРИМЕЧАНИЕ. Каждый поток имеет общие ресурсы с процессом, который его создал. Все потоки процесса работают в том же адресном пространстве, что и сам процесс, имеют доступ к тем же файлам и системным ресурсам.

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

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

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

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

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

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


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

Для защиты процессов друг от друга операционная система может использовать изоляцию процессов (process isolation). Изоляция процессов необходима, чтобы процессы «не наступали друг другу на ноги», взаимодействуя небезопасным образом, и не оказывали негативного влияния на производительность друг друга. Более старые операционные системы не обеспечивали достаточной изоляции процессов. Если в такой операционной системе «зависала» одна программа, «зависали» и все другие программы, а иногда и сама операционная система. В операционной системе с надлежащей изоляцией процессов «зависание» одного процесса не влияет на другие запущенные программы. (Изоляция процессов требует использования вытесняющей многозадачности). Для реализации изоляции процессов могут использоваться различные методы:

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

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

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

Отображение виртуального адресного пространства отличается от физического отображения памяти. Для приложений создается иллюзия того, что каждое из них является единственным запущенным приложением в операционной системе. Когда приложению требуется память для работы, оно говорит менеджеру памяти операционной системы, сколько памяти ему нужно. Операционная система выделяет необходимый объем памяти и связывает его с запрашивающим приложением. Приложение использует свою собственную схему адресации, которая обычно начинается с 0, но в действительности приложение не работает с физическим адресным пространством (хотя ему кажется, что работает). Вместо этого, оно работает в адресном пространстве, которое ему предоставил менеджер памяти. Физическая память – это микросхемы памяти в системе. Операционная система берет часть этой памяти и связывает ее с запрашивающим процессом. Как только процессу предоставлено собственное пространство памяти, он может адресовать эту часть как он хочет, это называется виртуальным отображением адресов. Виртуальное отображение адресов позволяет различным процессам иметь собственное пространство памяти; менеджер памяти гарантирует невозможность ненадлежащего взаимодействия одного процесса с памятью другого процесса. Это обеспечивает целостность и конфиденциальность.

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

Все более сложные технологии стали неотъемлемой частью нашей повседневной жизни, облегчая решение множества проблем. Компании любого размера теперь предпочитают использовать компьютерные системы, которые позволяют им эффективно управлять своими задачами. Итак, как работает этот тип операционной системы? Принимая это во внимание, почему компании полагаются на компьютеры? Рассмотрим несколько преимуществ компьютеров:
  • Легко управляйте данными сотрудников
  • Сохраните все предыдущие данные в памяти
  • Легко создает резервную копию данных
  • Хранение информации о продажах
  • Хранение информации о клиентах

 

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

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

  • Объем памяти
  • Обработка
  • Аппаратное и программное обеспечение на компьютере.

Операционные системы развиваются с обновлениями, которые:

  • Повышение безопасности,
  • Выполнение задач,
  • Стабильность

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

 

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

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

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

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

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

 

Функции операционной системы

Операционная система имеет множество функций

  • Управление процессом
  • Управление памятью
  • Файловая система;
  • Управление вводом и выводом.

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

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

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

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

Разрешить приложению использовать больше памяти, чем доступно физически.

Управление вводом и выводом

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

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

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

Управление вторичным хранилищем

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

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

Обнаружение ошибок

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

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

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

Бухгалтерский учет

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

Защита

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

 

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

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

 

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

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

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

 

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

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

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

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

Распределенные операционные системы имеют несколько систем, каждый ЦП, основную память, вторичную память и ресурсы. Эти системы совместно используют коммуникационную сеть. Каждое соединение – это независимая система, которая принимает пользовательские задачи. Затем он распространяется по сети, чтобы ускорить процесс выполнения. Распределенные операционные системы имеют следующие преимущества:

  • Разделив задачу на части, несколько систем могут справиться с рабочей нагрузкой.
  • Любой отказ одной системы в сети не влияет на другие.
  • Масштабируемость высокая. Устойчивость к изменениям нагрузки высокая.

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

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

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

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

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

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

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

 

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

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

Многопользовательская ОС

ОС, поддерживающая нескольких пользователей, позволяет пользователям использовать одну и ту же систему одновременно на нескольких терминалах ввода-вывода или по сети. Например, Windows, Linux и Mac.

Многопроцессорная ОС

Многие процессы могут выполняться одновременно в многопроцессорной операционной системе. Используется более одного процессора. Скорость обработки будет выше, но стоимость будет высокой. Реализация сложна. Многопроцессорность поддерживается Unix, 64-битной Windows и серверными версиями Windows.

Мультипрограммная ОС

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

Многозадачная ОС

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

  • Предимперативная многозадачность
  • Кооперативная многозадачность

Многопоточность

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

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

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

Онлайн-обработка

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

процессов в операционных системах | учеба сегодня вечером

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

Память процесса разделена на четыре раздела для эффективной работы:

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

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

  • Куча используется для динамического выделения памяти и управляется с помощью вызовов new, delete, malloc, free и т. д.

  • Стек используется для локальных переменных. Место в стеке резервируется для локальных переменных при их объявлении.

Различные состояния процесса

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

  • NEW — Процесс создается.

  • ГОТОВ — Процесс ожидает назначения процессору.

  • РАБОТАЕТ — Инструкции выполняются.

  • WAITING — Процесс ожидает возникновения некоторого события (например, завершения ввода-вывода или приема сигнала).

  • TERMINATED — Процесс завершен.

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

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

  • Состояние процесса : Он может быть запущен, ожидает и т. д.

  • Идентификатор процесса и идентификатор родительского процесса .

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

  • Информация о планировании ЦП : такая как информация о приоритете и указатели на очереди планирования.

  • Информация об управлении памятью : Например, таблицы страниц или таблицы сегментов.

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

  • Информация о состоянии ввода-вывода : Распределенные устройства, открытые файловые таблицы и т. д.

Процесс против программы

Давайте посмотрим на различия между процессом и программой:

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

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

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

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

Ниже приведены свойства алгоритма хорошего планирования :

.
  • Время отклика должно быть минимальным для пользователей.

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

  • Загрузка ЦП должна быть 100%.

  • Каждый процесс должен получить справедливую долю ЦП.



Что такое процесс в операционной системе и каковы различные состояния процесса?

Что такое процесс в операционной системе и каковы различные состояния процесса?

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

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

  • Идентификатор процесса: Каждому процессу будет присвоен идентификатор, называемый идентификатором процесса, чтобы однозначно идентифицировать этот процесс среди других процессов.
  • Состояние процесса: Каждый процесс имеет несколько состояний, связанных с ним в определенный момент времени. Это обозначается состоянием процесса. Он может находиться в состоянии готовности, ожидания, выполнения и т. д.
  • Информация о планировании ЦП: Каждый процесс выполняется с использованием некоторых алгоритмов планирования процессов, таких как FCSF, Round-Robin, SJF и т. д.
  • Информация ввода-вывода: Каждый процесс нуждается в некоторых устройствах ввода/вывода для своего выполнения. Таким образом, информация о выделенном устройстве и потребности в устройстве имеет решающее значение.
Состояния процесса

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

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

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

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

Это весь жизненный цикл процесса.

Это все для этого блога. Надеюсь, вы сегодня узнали что-то новое.

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

Продолжайте учиться 🙂

Team AfterAcademy!

Процесс в операционных системах: определение, планирование и состояния — видео и стенограмма урока

Классификация процессов

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

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

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

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

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

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

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

Рисунок 1: Поток процесса через очереди планирования

Три очереди можно определить следующим образом:

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

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

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

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

  1. Новый : Состояние процесса сразу после его создания. Это состояние также обычно называют созданным состоянием. Процессы в этом состоянии ожидают перевода в состояние готовности.
  2. Готов : Состояние процесса, когда он ожидает своей очереди на использование процессора. В состоянии готовности может находиться несколько процессов, и тот, которому приходит очередь, выбирается с помощью алгоритма планирования.
  3. Выполняется : Состояние процесса, когда ЦП выполняет инструкции связанной программы.
  4. Ожидание : Состояние процесса, когда он ожидает возникновения какого-либо другого события, такого как ввод данных пользователем, вывод из другого процесса и т. д. Это состояние также обычно называют заблокированным состоянием.
  5. Terminated : Состояние процесса после завершения его выполнения. Как только процесс переходит в это состояние, он удаляется из всех очередей.

Итоги урока

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

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

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

  • Готов : Состояние процесса, когда он ожидает своей очереди для использования процессора.
  • Выполняется : Состояние процесса, когда ЦП выполняет инструкции связанной программы.
  • Ожидание/блокировка : Состояние процесса, когда он ожидает возникновения какого-либо другого события, такого как ввод данных пользователем, вывод из другого процесса и т. д.
  • Завершено/завершено : Состояние достигнуто после завершения выполнения, после чего оно перестает существовать, так как удаляется из всех очередей.

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

  1. Очередь заданий : Набор всех процессов в системе.
  2. Очередь готовности : Содержит все процессы, загруженные в основную память.
  3. Очередь устройств : Набор процессов, ожидающих доступности устройства ввода-вывода, например принтера.

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

Введение в управление процессами — GeeksforGeeks

 

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

Процесс является «активным» объектом, а не программа, которая считается «пассивным» объектом. Одна программа может создать множество процессов при многократном запуске; например, когда мы открываем .exe или двоичный файл несколько раз, запускается несколько экземпляров (создается несколько процессов).

Как процесс выглядит в памяти?  
 

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

 

Атрибуты или характеристики процесса  
Процесс имеет следующие атрибуты.
 div block

  1. Идентификатор процесса:  Уникальный идентификатор, присвоенный операционной системой.
  2. Состояние процесса:  Может быть готов, запущен и т. д.
  3. Регистры ЦП:  Аналогично счетчику программ (регистры ЦП должны быть сохранены и
                  восстанавливается, когда процесс заменяется на ЦП и выходит из него)
  5.Информация о счетах: 
  6. Информация о состоянии ввода-вывода:  Например, устройства, выделенные для процесса,
                           открывать файлы и т.д.
  8. Информация о планировании ЦП:  Например, приоритет (разные процессы
                               могут иметь разные приоритеты, например
                               более короткому процессу назначается высокий приоритет
                               в первом планировании кратчайшего задания) 

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

  

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

  1. Новое:  Недавно созданный процесс (или) создаваемый процесс.

  2. Готов:  После создания процесс переходит в состояние Готов, т.е.
          процесс готов к выполнению.

  3. Выполнить:  Текущий процесс в ЦП (только один процесс на
        время может выполняться в одном процессоре). 4. Ожидание (или блокировка):  Когда процесс запрашивает доступ к вводу-выводу.

  5. Завершено (или Завершено):  Процесс завершил свое выполнение.

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

  7. Приостановленный блок:  Когда очередь ожидания переполняется. 

 

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

Когда происходит переключение контекста?  
1. Когда высокоприоритетный процесс переходит в состояние готовности (т. е. с более высоким приоритетом, чем запущенный процесс)
2. Возникает прерывание
3. Переключение режима пользователя и ядра (хотя это и не обязательно)
4. Используется упреждающее планирование ЦП.

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

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

  

Упражнение:  
1. Что из следующего не обязательно сохранять при переключении контекста между процессами? (GATE-CS-2000) 
(A) Регистры общего назначения 
(B) Резервный буфер трансляции 
(C) Счетчик программ 
(D) Все вышеперечисленное 

Ответ (B)  

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

2. Время, необходимое для переключения между режимами выполнения пользователя и ядра, равно t1, а время, необходимое для переключения между двумя процессами, равно t2. Что из перечисленного правда? (GATE-CS-2011)
(A) t1 > t2
(B) t1 = t2
(C) t1 < t2
(D) ничего нельзя сказать о связи между t1 и t2.

Ответ: (C)  
Объяснение: Переключение процесса включает переключение режима.Переключение контекста может происходить только в режиме ядра.

Контрольная работа по управлению процессами G22.2250-001/lectures/lecture-04.html 

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

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

Состояния Процесс выглядит следующим образом:

  • Новый (Создать) – На этом этапе процесс должен быть создан, но еще не создан, это программа, присутствующая во вторичной памяти, которая будет выбрана ОС для создания процесса.
  • Готово – Новое -> Готово к запуску. После создания процесса процесс переходит в состояние готовности, т.е. процесс загружается в оперативную память. Здесь процесс готов к запуску и ожидает получения процессорного времени для своего выполнения. Процессы, готовые к выполнению ЦП, сохраняются в очереди готовых процессов.
  • Выполнение — Процесс выбирается ЦП для выполнения, и инструкции в этом процессе выполняются любым из доступных ядер ЦП.
  • Заблокировано или ожидание — Всякий раз, когда процесс запрашивает доступ к вводу-выводу, или ему требуется ввод данных от пользователя, или ему требуется доступ к критической области (блокировка для которой уже получена), он переходит в состояние блокировки или ожидания. Процесс продолжает ожидать в основной памяти и не требует ЦП. После завершения операции ввода-вывода процесс переходит в состояние готовности.
  • Завершено или завершено – Процесс убит, а плата удалена.
  • Готовность к приостановке — Процесс, который изначально был в состоянии готовности, но был выгружен из основной памяти (см. раздел Виртуальная память) и помещен во внешнее хранилище планировщиком, считается в состоянии готовности к приостановке.Процесс будет переходить обратно в состояние готовности всякий раз, когда процесс снова переносится в основную память.
  • Приостановка ожидания или приостановка заблокирована — Аналогично приостановке готовности, но использует процесс, который выполнял операцию ввода-вывода, а нехватка основной памяти заставила их перейти во вторичную память.
    Когда работа завершена, она может перейти в состояние готовности к приостановке.

Процессы с привязкой к ЦП и вводу-выводу:
Если процесс интенсивно использует операции ЦП, то он называется процессом с привязкой к ЦП.Точно так же, если процесс интенсивен с точки зрения операций ввода-вывода, он называется процессом, связанным с вводом-выводом.

Типы планировщиков:

  1. Долгосрочные – производительность – Принимает решение о том, сколько процессов необходимо сделать, чтобы оставаться в состоянии готовности, это определяет степень мультипрограммирования. Как только решение принято, оно длится долгое время, поэтому называется долгосрочным планировщиком.
  2. Краткосрочный — время переключения контекста — Краткосрочный планировщик решает, какой процесс выполнять следующим, а затем вызывает диспетчера.Диспетчер — это программное обеспечение, которое переводит процесс из состояния готовности в состояние выполнения и наоборот. Другими словами, это переключение контекста.
  3. Среднесрочный – Время замены – Решение о приостановке принимает планировщик на среднесрочный период. Среднесрочный планировщик используется для подкачки, которая перемещает процесс из основной памяти во вторичную и наоборот.

Мультипрограммирование — У нас есть много процессов, готовых к запуску. Существует два типа мультипрограммирования:

  1. Упреждение — Процесс принудительно удаляется из ЦП.Упреждение также называют разделением времени или многозадачностью.
  2. Без вытеснения — Процессы не удаляются, пока не завершат выполнение.

Степень мультипрограммирования –
Максимальное количество процессов, которые могут находиться в состоянии готовности, определяет степень мультипрограммирования, например, если степень программирования = 100, это означает, что 100 процессов могут находиться в состоянии готовности в момент максимум.

Управление процессами в ОС: PCB в операционной системе

Что такое процесс?

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

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

В этом руководстве по операционной системе вы узнаете:

Что такое управление процессами?

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

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

Архитектура процесса

Архитектура процесса Изображение

Здесь представлена ​​схема архитектуры процесса

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

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

PCB расшифровывается как Process Control Block. Это структура данных, которая поддерживается операционной системой для каждого процесса.Плата должна быть идентифицирована целочисленным идентификатором процесса (PID). Это поможет вам хранить всю информацию, необходимую для отслеживания всех запущенных процессов.

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

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

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

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

В основном процесс состоит из семи стадий:

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

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

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

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

Вот важные компоненты печатной платы

Блок управления технологическим процессом (PCB)
  • Состояние процесса: Процесс может быть новым, готовым, запущенным, ожидающим и т. д.
  • Счетчик программ: Счетчик программ позволяет узнать адрес следующей инструкции, которая должна быть выполнена для этого процесса.
  • Регистры ЦП: Этот компонент включает аккумуляторы, индексные регистры и регистры общего назначения, а также информацию о коде состояния.
  • Информация о планировании ЦП: Этот компонент включает приоритет процесса, указатели для очередей планирования и различные другие параметры планирования.
  • Бухгалтерская и коммерческая информация: Включает в себя количество ЦП и временных утилит, таких как использование реального времени, номера заданий или процессов и т. д.
  • Информация об управлении памятью: Эта информация включает в себя значение базовых и предельных регистров, таблицы страниц или сегментов. Это зависит от системы памяти, которая используется операционной системой.
  • Информация о состоянии ввода-вывода: Этот блок включает список открытых файлов, список устройств ввода-вывода, выделенных для процесса, и т. д.

Сводка:

  • Процесс определяется как выполнение программы, которая выполняет действия, указанные в этой программе.
  • Управление процессами включает в себя различные задачи, такие как создание, планирование, завершение процессов и тупиковая блокировка.
  • Важными элементами архитектуры процесса являются 1) стек 2) куча 3) данные и 4) текст
  • Плата представляет собой полную форму блока управления технологическим процессом. Это структура данных, которая поддерживается операционной системой для каждого процесса
  • .
  • Состояние процесса — это состояние процесса в определенный момент времени.
  • Каждый процесс представлен в операционной системе блоком управления процессом, который также называется блоком управления задачами.

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

Диаграмма состояний


Процесс от создания до завершения проходит через различные состояния. Минимальное количество состояний — пять.

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

1. Новый

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

2. Готов

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

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

3. Работа

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

4. Заблокировать или подождать

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

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

5. Завершение или прекращение действия

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

6. Подвес готов

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

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

7. Приостановить ожидание

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


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

1. Создание

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

2. Планирование

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

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

Ваш адрес email не будет опубликован.