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

Понятие, состояние процесса и основные операции (создание, приостановка, блокирование, пробуждение), происходящие над ним. Структура, функции (синхронизация процессов, поддержка работы файловой системы) ядра операционной системы. Архитектура ОС Linux.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 05.12.2011
Размер файла 21,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

1. Процессы

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

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

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

Процесс находится в состоянии выполнения, если в данный момент ему выделен центральный процессор (ЦП).

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

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

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

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

Рассмотрим диаграмму переходов процесса X из состояния в состояние - смену состояний процесса.

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

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

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

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

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

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

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

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

Создание процесса. операционная система linux

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

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

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

Каждому созданному процессу UNIX назначает уникальный идентификатор процесса - PID , который идентифицирует процесс для ОС. Кроме того, каждый процесс имеет еще PPID (parent process), который представляет собой не что иное как PID его родителя.

Используя в UNIX команду ps можно видеть идентификаторы текущих процессов в системе.

Уничтожение процесса.

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

Приостановка процесса.

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

Возобновление процесса.

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

Изменение приоритета процесса.

Эта операция означает модификацию значения приоритета процесса в РСВ.

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

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

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

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

Блок управления процессом (РСВ - process control block) - это объект, который определяет процесс для операционной системы и является структурой данных, сосредотачивающей всю ключевую информацию о процессе:

текущее состояние процесса;

уникальный идентификатор процесса;

приоритет процесса;

указатели памяти процесса;

указатели выделенных процессу ресурсов;

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

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

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

Дескриптор процесса содержит следующие параметры процесса:

расположение (адрес в памяти);

размер выгружаемой части образа процесса;

идентификатор процесса и пользователя.

Другая важная информация о процессе хранится в таблице пользователя (называемой также - контекст процесса), здесь записаны:

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

ссылки на системную таблицу файлов для всех открытых процессом файлов;

указатель на индексный дескриптор текущего каталога в таблице индексных дескрипторов;

список реакций на различные сигналы.

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

Прерывание(interrupt) - это событие, при котором меняется нормальная последовательность команд, выполняемых процессором. Если произошло прерывание, то

управление передается ОС;

ОС запоминает состояние прерванного процесса;

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

Рассмотрим основные типы прерываний.

SVС(supervisor call instruction)-прерывания.

Инициатором этих прерываний является работающий процесс, который выполняет команду SVС, т.е. генерируемый программой пользователя запрос на предоставление конкретной системной услуги (например, на выполнение операции ввода-вывода, на увеличение размера выделенной памяти и т.п.). Механизм SVC позволяет защитить ОС от пользователей.

Прерывания ввода-вывода.

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

Внешние прерывания.

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

Прерывания по рестарту.

Эти прерывания происходят по команде рестарта ОС.

Прерывания по контролю программы.

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

Прерывания по контролю машины.

Эти прерывания вызываются аппаратными ошибками.

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

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

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

При реализации этого способа используются слова состояния программы PSW(program status word), которые управляют порядком выполнения команд и сожержат ряд сведений о состоянии процесса.

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

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

текущее PSW становится старым PSW для прерывания этого типа;

новое PSW для прерывания этого типа становится текущим PSW.

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

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

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

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

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

Функции ядра

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

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

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

синхронизация процессов;

организация взаимодействия между процессами;

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

поддержка операций ввода-вывода;

поддержка работы файловой системы;

поддержка механизма вызова-возврата при обращении к процедурам;

ряд учетных функций.

Иерархический подход к процессу проектирования ОС заключается в следующем.

В основе иерархии находится аппаратура компьютера, так называемая “чистая машина”.

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

Эти дополнительные функции, реализуемые при помощи ядра, часто называют примитивами(primitives).

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

На вершине иерархии располагаются сами процессы пользователей.

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

распределяются на нескольких уровнях иерархии.

Архитектура ОС Linux

Достаточно широкое растространение в настоящее время получила система Linux (автор базовой версии Линус Торвальдс). Усиление влияния Linux подтвердилось в очередной раз на выставке LinuxWorldExpo в начале февраля 2000 года в Нью-Йорке. В IBM активно разрабатываются приложения для Linux, что подтверждает высокую оценку этой ОС. “Сегодня Linux развивается такими же быстрыми темпами, как Internet в начале 90-х годов, а популярность ее даже выше, чем популярность электронного бизнеса”,- заметил Ирвинг Владавски-Бергер, вице-президент подразделения IBM Enterprise System Group . Аппаратные требования Linux минимальны, пожалуй только MS DOS является менее требовательной к аппаратуре компьютера, чем Linux. Запустить Linux можно даже на 386SX/16, 1Mб ОП, но это тот минимум, который только даст возможность убедиться в работоспособности системы. Базовый набор команд, утилит администрирования и командный интерпретатор займут 10 Мб.

Linux может “сожительствовать” на компьютере с другими системами, например, с MS DOS, MS Windows или OS/2, в этом случае каждая из систем должна располагаться в отдельном разделе диска, а при запуске компьютера будет предложена альтернатива запуска той или иной ОС.

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

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

операции ввода/вывода (открытия, чтения, записи и управления файлами),

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

Все приложения запрашивают услуги ядра посредством системных вызовов.

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

Ядро системы

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

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

Ядро состоит из трех основных подсистем:

файловая подсистема;

подсистема управления процессами и памятью;

подсистема ввода/вывода.

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

Файловая подсистема обеспечивает унифицированный интерфейс доступа к данным, расположенным на дисковых накопителях, и к периферийным устройствам. Одни и те же функции open(2), read(2), write(2) могут использоваться как при чтении или записи данных на диск, так и при выводе текста на принтер или терминал.

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

Файловая подсистема обеспечивает перенаправление запросов, адресованных периферийным устройствам, соответствующим модулям подсистемы ввода/вывода.

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

Запущенная на выполнение программа порождает в системе один или более процессов, в задачи подсистемы управления процессами входит:

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

распределение системных ресурсов (памяти, вычислительных ресурсов) между процессами;

синхронизация процессов;

межпроцессное взаимодействие.

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

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

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

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

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

2. Вопросы

Дайте определения следующих терминов: программа, процедура, процесс, процессор.

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

Опишите четыре основные смены состояний процесса.

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

Какую информацию о процессе содержит PCB?

Перечислите основные типы прерываний и приведите пример каждого типа прерывания.

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

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

Определите структуру ядра Linux.

В чем состоит назначение файловой подсистемы?

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

Каковы основные функции подсистемы ввода/вывода?

Определите понятие - примитивы.

В чем особенность иерархического подхода к проектированию ОС?

Размещено на Allbest.ru


Подобные документы

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

    лекция [303,8 K], добавлен 29.07.2012

  • Анализ серверных операционных систем на базе ядра Linux. Подходы к построению маршрутизации и оценка полученных результатов. Установка операционной системы CentOS 6.6 и закономерности ее настройки. Принципы и основные этапы тестирования созданного шлюза.

    курсовая работа [2,9 M], добавлен 19.11.2015

  • Общая организация файловой системы. Виртуальные страницы. Команды для работы с ФС. Способы организации файлов. Системные вызовы управления процессами. Алгоритм работы планировщика процессов. Мультипрограммный режим работы ОС. Структура ядра системы.

    курсовая работа [645,3 K], добавлен 23.03.2015

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

    реферат [260,0 K], добавлен 25.11.2016

  • Структурная организация операционной системы на основе различных программных модулей. Функции, выполняемые модулями ядра. Модули операционной системы, оформленные в виде утилит. Ядро в привилегированном режиме. Многослойная структура ядра системы.

    презентация [705,2 K], добавлен 16.01.2012

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

    дипломная работа [5,4 M], добавлен 27.06.2012

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

    лабораторная работа [847,5 K], добавлен 16.06.2011

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

    курсовая работа [63,0 K], добавлен 07.05.2011

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

    курсовая работа [64,4 K], добавлен 13.12.2011

  • Особенности архитектуры MIPS компании MIPS Technology. Иерархия памяти. Обработка команд перехода. Адресная очередь. Переименование регистров. Обоснование выбора операционной системы. Perl-эмулятор и сборка ядра. Электрическая и пожарная безопасность.

    дипломная работа [180,2 K], добавлен 06.03.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.