Взаимодействие между клиентом и сервером в WWW

Автор работы: Пользователь скрыл имя, 13 Ноября 2014 в 19:34, контрольная работа

Краткое описание

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

Содержание

1.Обработчик прерываний в ОС с разделением времени. Промоделировать предлагаемое решение ……………………………………………………..3
2. Методы обнаружения тупика по наличию замкнутой цепочки запросов…………………………………………………………………………………6
3.Разработка и моделирование способов репликации (тиражирования) файлов……………………………………...……………………………………..9
4.Почтовые ящики………………………………………………..………10
5.Принцип параметрической настраиваемости………….….….……….14
5.1 Понятие дистрибутива ОС………………………….…….………16
5.2 Генерация версий ОС…………………………………………….17
6.Взаимодействие между клиентом и сервером в WWW………………18
Список литературы………………………………………………...……..22

Прикрепленные файлы: 1 файл

188600.rtf

— 576.00 Кб (Скачать документ)

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

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

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

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

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

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

Реализация почтовых ящиков требует использования примитивных операторов низкого уровня, таких как операции Р и V или каких-либо других, но пользователям может дать средства более высокого уровня (наподобие мониторов Хоара), например, такие, как представлены ниже.

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

WAITJCSSAGE (Отправитель. Сообщение. Буфер)

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

SEND_ANSWER (Результат, Ответ, Буфер)

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

WAIT_ANSWER (Результат, Ответ, Буфер)

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

Основные достоинства почтовых ящиков:

1) процессу не нужно знать о существовании других процессов до тех пор, пока он не получит сообщения от них;

2) два процесса могут обменяться более чем одним сообщением за один раз;

3) операционная система может гарантировать, что никакой иной процесс не вмешается во взаимодействие процессов, ведущих между собой «переписку»;

4) очереди буферов позволяют процессу-отправителю продолжать работу, не обращая внимания на получателя.

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

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

В операционных системах компании Microsoft тоже имеются почтовые ящики (mailslots). В частности, они достаточно часто используются при создании распределенных приложений для сети. При работе с ними в приложении, которое должно отправить сообщение другому приложению, необходимо указывать класс доставки сообщений. Различают два класса доставки. Первый класс (first-class delivery) гарантирует доставку сообщений; он ориентирован на сеансовое взаимодействие между процессами и позволяет организовать посылки типа «один к одному» и «один ко многим». Второй класс (second-class delivery) основан на механизме датаграмм, и он уже не гарантирует доставку сообщений получателю.

 

5. Принцип параметрической настраиваемости. Понятие дистрибутива ОС. Генерация версий ОС.

 

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

Так, для операционных систем, обслуживающих совокупность пользователей, выделяют ряд базовых принципов: модульности; перемещаемости; генерируемости; параметрической настраиваемости; функциональной избыточности; функциональной избирательности; «по умолчанию»; защиты; совместимости (для систем ЭВМ).

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

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

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

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

Понятие о дистрибутивах

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

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

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

Дистрибутив - это набор программного обеспечения, включающий все 4 основные составные части ОС. Однако различные дистрибутивы отличаются друг от друга по составу включенных в них программ - они содержат как стандартные для всех дистрибутивов программы (например, оболочку bash или ядро, хотя версии ядра и оболочки тоже могут различаться в разных дистрибутивах), так и уникальные разработки авторов дистрибутива, например, программы для конфигурирования системы, разные графические оболочки, утилиты для работы с ядром и т.д. Некоторые дистрибутивы выпускаются фирмами на коммерческой основе, другие распространяются на условиях лицензии GPL. Существует уже более двух десятков дистрибутивов Linux-а. Поскольку Линус Торвальдс продолжает координировать разработку ядра, версии ядра развиваются последовательно, а не ветвятся как дистрибутивы.

 

 Принцип генерируемости

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

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

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

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

В остальных современных распространенных ОС, в том числе и для персональных компьютеров, конфигурирование системы под соответствующий состав оборудования осуществляется на этапе установки, причем в большинстве случаев не представляется возможным серьезно вмешаться в этот процесс. В дальнейшем, при эксплуатации компьютера, можно изменить состав драйверов, служб, отдельных параметров и режимов работы. Как правило, внесение подобных изменений может быть осуществлено посредством редактирования конфигурационного файла или реестра. Например, можно отключить ненужное устройство, заменить для какого-нибудь устройства драйвер, отключить или добавить какую-то службу. Для большей гибкости часто вводится механизм поддержки нескольких конфигураций. Например, ОС Windows 98/NT/2000/XP, предоставляют возможность создавать до девяти конфигураций, одну из которых пользователь может выбрать при загрузке ОС. Таким образом, имея всего одну операционную систему, за счет нескольких различающихся конфигураций пользователь может получить несколько виртуальных систем, различающихся составом установленного (работающего) оборудования, драйверов и служб, и на выбор запускать одну из этих систем.

 

6 Взаимодействие между клиентом и сервером в WWW.

 

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

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

Информация о работе Взаимодействие между клиентом и сервером в WWW