Алгоритм решения задачи «поставщик – потребитель» при использовании семафоров Дейкстры

Автор работы: Пользователь скрыл имя, 02 Февраля 2012 в 15:32, контрольная работа

Описание работы

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

Содержание работы

Введение……………………………………………………………………………………4
1. Понятие процесса и задачи……………………………………………………………..5
2.“Гарантия обслуживания”……………………………………………………………....8
3. Регистр-указатель задачи TR………………………………………………………….11
4. Режимы управления вводом/выводом………………………………………………..13
5. Основные требования, предъявляемые к операционным системам
реального времени………………………………………………………………………16
6. Алгоритм решения задачи «поставщик – потребитель» при использовании
семафоров Дейкстры……………………………………………………………………..18
7. “Обход тупик”. Алгоритм банкира Дейкстры……………………………………….20
8. QNX .Сетевой протокол FLEET……………………………………………………....24
Заключение……………………………………………………………………………….29
Список использованной литературы…………………………………………………...30

Файлы: 1 файл

Системное программное обеспечение.docx

— 103.06 Кб (Скачать файл)

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

К выполнению своих функций как диспетчера ядро приступает в следующих случаях:

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

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

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

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

Основные  механизмы организации  распределенных вычислений

QNX является сетевой операционной системой, которая позволяет организовать эффективные распределенные вычисления. Для этого на каждой машине, называемой узлом, помимо ядра и менеджера процессов должен быть запущен уже упомянутый ранее менеджер Net. Менеджер Net не зависит от аппаратной реализации сети. Эта аппаратная независимость обеспечивается за счет сетевых драйверов. В операционной системе QNX имеются драйверы для сетей с различными технологиями: Ethernet и FastEthernet, Arcnet, IBM Token Ring и др. Кроме того, имеется возможность организации сети через последовательный канал или модем. В QNX версии 4 полностью реализовано встроенное сетевое взаимодействие типа «точка-точка». Например, сидя за машиной А, вы можете скопировать файл с гибкого диска, подключенного к машине. В, на жесткий диск, подключенный к машине С. По существу, сеть из машин с операционными системами QNX действует как один мощный компьютер. Любые ресурсы (модемы, диски, принтеры) могут быть добавлены к системе простым их подключением к любой машине в сети. QNX обеспечивает возможность одновременной работы в сетях Ethernet, Arcnet, Serial и Token Ring, более одного пути для связи и балансировку нагрузки в сетях. Если кабель или сетевая плата выходит из строя и связь через эту сеть прекращается, система автоматически перенаправит данные через другую сеть. Все это происходит в режиме подключения (on-line), предоставляя пользователю автоматическую сетевую избыточность и увеличивая эффективность взаимодействия во всей системе. Каждому узлу в сети соответствует уникальный целочисленный идентификатор — логический номер узла. Любой поток выполнения в сети QNX имеет прозрачный доступ (при наличии достаточных привилегий) ко всем ресурсам сети; то же самое относится и к взаимодействию потоков. Для взаимодействия потоков, находящихся на разных узлах сети, используются те же самые вызовы ядра, что и для потоков, выполняемых на одном узле. В том случае, если потоки находятся на разных узлах сети, ядро переадресует запрос менеджеру сети. Для обмена в сети используется надежный и эффективный протокол транспортного уровня FLEET. Каждый из узлов может принадлежать одновременно нескольким QNX-сетям. В том случае, если сетевое взаимодействие может быть реализовано несколькими путями, для передачи выбирается менее загруженная и более скоростная сеть. Сетевое взаимодействие является узким местом в большинстве операционных систем и обычно создает значительные проблемы для систем реального времени. Для того чтобы обойти это препятствие, разработчики операционной системы QNX создали собственную специальную сетевую технологию FLEET и соответствующий протокол транспортного уровня FTL (FLEET Transport Layer). Этот протокол не базируется ни на одном из распространенных сетевых протоколов вроде IPX или Net Bios и обладает рядом качеств, которые делают его уникальным. Основные его качества зашифрованы в аббревиатуре FLEET, которая расшифровывается следующим образом:

 Fault-Tolerant Networking - QNX может одновременно использовать несколько физических сетей, при выходе из строя любой из них данные будут «на лету» перенаправлены через другую сеть;

 Load-Balancing on the fly – при наличии нескольких физических соединений QNX автоматически распараллеливает передачу пакетов по соответствующим сетям;      

      Efficient Performance — специальные драйверы, разрабатываемые фирмой QSSL для широкого спектра оборудования, позволяют использовать это оборудование с максимальной эффективностью;       

      Extensable Architecture — любые новые типы сетей могут быть поддержаны путем добавления соответствующих драйверов:

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

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

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

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

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

Заключение

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

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

  1. Гордеев А.В. Операционные системы: Учебник для вузов. 2-е изд. - СПб: Питер, 2004. - 416 с.
  2. Олифер В.Г., Олифер Н.А. Сетевые операционные системы. -  СПб: Питер, 2008. - 669 с.
  3. Таненбаум, Э. Современные операционные системы. 2-е изд. — СПб.: Питер, 2005. — 1038 с.
  4. Гордеев А.В., Молчанов А.Ю. Системное программное обеспечение: Учебник. – СПб: Питер, 2002. - 736 с.
        

  
 
 
 
 
 
 
 
 
 
 

Введение

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

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

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

Информация о работе Алгоритм решения задачи «поставщик – потребитель» при использовании семафоров Дейкстры