рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Процессы

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

 

Одной из основополагающих концепций, помогающих понять структуру опера­ционных систем, является концепция процессов. Этот термин впервые был применен в 60-х годах разработчиками операционной системы Multics [DALE68] и с тех пор широко используется. Есть много определений термина "процесс", в том числе:

• выполняющаяся программа;

• экземпляр программы, выполняющейся на компьютере;

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

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

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

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

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

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

Устройство системного программного обеспечения, координирующего по­добные процессы, оказалось очень сложным. При одновременной обработке мно­гих заданий, каждое из которых включает в себя длинную последовательность действий, нельзя проанализировать все возможные комбинации последователь­ностей событий. Ввиду отсутствия систематических средств обеспечения коорди­нации и взаимодействия разных видов деятельности систем программисты обра­тились к специальным методам, основанным на представлении о той среде, ра­боту которой должна контролировать операционная система. При этом они подвергались риску допустить трудноуловимые ошибки, которые проявляются только в очень редких случаях, при выполнении определенных последовательностей событий. Такие ошибки трудно обнаружить, потому что их нужно отличить от ошибок в приложениях и ошибок, возникающих при сбоях аппаратного обес­печения. Еще одной особенностью, затрудняющей определение причины этих ошибок (когда они обнаружены), является то, что воспроизвести точные усло­вия, в которых эти ошибки проявляются, крайне трудно. Ниже перечислены ос­новные причины подобных ошибок [DENN80a].

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

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

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

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

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

• Выполняющаяся программа.

• Данные, нужные для ее работы (переменные, рабочее пространство, буферы
и т.д.).

• Контекст выполнения программы.

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

На рис. 2.8 показан пример реализации процессов. Два процесса, А и В, находятся в различных областях основной памяти. Другими словами, каждому процессу отведен блок памяти, в котором содержатся код программы, данные и информация о состоянии процесса. Каждый процесс заносится в список про­цессов, который создается и поддерживается операционной системой. Часть этого списка, соответствующая определенному процессу, содержит указатель размещения этого процесса в памяти. Кроме того, сюда же частично или пол­ностью может входить и информация о состоянии процесса. Остальные данные могут храниться в самом процессе. В регистре индекса процесса содержится индекс выполняющегося в текущий момент времени процесса, идентифици­рующий его в списке процессов. Содержимое программного счетчика указыва­ет на очередную инструкцию, которую нужно выполнить. Базовый и гранич­ный регистры задают область памяти, занимаемую процессом. В базовый ре­гистр заносится адрес начальной ячейки этой области, а в граничный — ее размер (в байтах или словах). Содержимое программного счетчика и всех ссы­лок на данные отсчитывается от значения базового регистра; по своей величи­не эти ссылки не могут превосходить значение граничного регистра (что за­щищает процессы от воздействия друг на друга).

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

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

 

 

.

Рис. 2.8. Типичная реализация процессов

 

– Конец работы –

Эта тема принадлежит разделу:

Обзор операционных систем

ЭВОЛЮЦИЯ ОПЕРАЦИОННЫХ СИСТЕМ... Пытаясь понять основные требования предъявляемые к операционным систе мам а также значение основных возможностей...

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

Что будем делать с полученным материалом:

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

Все темы данного раздела:

Обзор операционных систем
2.1. Предназначение и функции операционных систем 2.2. Эволюция операционных систем 2.3. Основные достижения 2.4. Характеристики современных операционных систем

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

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

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

Последовательная обработка данных
  В самых первых компьютерах, в период от конца 40-х до средины 50-х го­дов, программы непосредственно взаимодействовали с аппаратным обеспечением машины; операционных систем в то вре

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

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

ОСНОВНЫЕ ДОСТИЖЕНИЯ
  Операционные системы относят к числу самых сложных программ. В этом проявляется стремление их разработчиков сделать системы такими, чтобы они удовлетворяли требованиям удобства и эф

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

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

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

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

ХАРАКТЕРИСТИКИ СОВРЕМЕННЫХ ОПЕРАЦИОННЫХ СИСТЕМ
  Год за годом происходит эволюция структуры и возможностей операцион­ных систем. В последнее время в состав новых операционных систем и новых версий уже существующих операционных сис

История возникновения
  Операционная система W2K появилась в результате развития операционной системы под названием MS-DOS (или PC-DOS), разработанной фирмой Microsoft для первого персонального ком

Однопользовательская многозадачность
  Операционная система W2K является типичным представителем операци­онных систем для микрокомпьютеров (в качестве других примеров можно при­вести OS/2 и MacOS). Она была вызвана к жиз

Архитектура
  На рис. 2.13, взятом из [SOLO98b], представлена общая структура операци­онной системы W2K. Модульная структура этой системы делает ее довольно гибкой. Она в состоянии работать на са

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

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

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

Потоки и симметричная многопроцессорность
  Возможности поддержки потоков и поддержки симметричной многопроцес­сорности, о которых мы говорили в разделе 2.4, — две важные характеристики операционной системы W2K. Ниже перечисл

Объекты Windows 2000
  Устройство операционной системы W2K в значительной мере основано на объектно-ориентированных концепциях. Этот подход способствует совместному использованию ресурсов и данных различн

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

Описание
  Рис. 2.15 дает общее представление об архитектуре системы UNIX. Лежащее в основе аппаратное обеспечение окружено программным обеспечением операционной системы. Операционную систему

СОВРЕМЕННЫЕ СИСТЕМЫ UNIX
  В процессе развития операционной системы UNIX появилось много ее реа­лизаций, каждая из них обладала своими полезными возможностями. Впослед­ствии возникла необходимость создать реа

Solaris 2.x
Система Solaris — это версия операционной системы UNIX, разработанная фирмой Sun на основе SVR4. На время написания книги последней вышедшей вер­сией Solaris была версия 2.8. Реализации системы Sol

История возникновения
Система Linux возникла как вариант операционной системы UNIX, предназначенный для персональных компьютеров с IBM-совместимой архитектурой. Первоначальная версия была написана Линусом Торвальдсом (L

Модульная структура
  Ядра большинства версий операционной системы UNIX являются монолит­ными. Напомним, что монолитное ядро — это ядро, которое виртуально включа­ет в себя все возможности операционной с

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги