2011. Машбук (1114722), страница 25
Текст из файла (страница 25)
Для обеспечения заявленных качеств данныйпротокол подразумевает отправку по сети подтверждающей информации, из-за чегосодержательная пропускная способность может очень сильно падать, особенно на линияхсвязи с плохими техническими характеристиками. Итак, этот протокол подразумевает, чтодля каждого полученного пакета адресат обязан отправить подтверждение о доставке. Кэтому необходимо добавить, что в данном протоколе действует поддержка времени: есличерез некоторое время после отправки пакета подтверждение так и не пришло, тосчитается, что отправленный пакет пропал, и начинается повторная посылка пропавшегопакета.Некоторой альтернативой служит протокол UDP (User Datagram Protocol —протокол пользовательских дейтаграмм).
Протокол UDP не обеспечивает установлениевиртуального соединения. Данный протокол подразумевает отправку пакетов по сети безгарантии их доставки (он выбрасывает пакет и сразу же «забывает» о нем).Таким образом, те прикладные протоколы, которые основываются на TCP,оперируют передачей сообщений. Сообщения разбиваются на пакеты, и эти пакетывыбрасываются в сеть. Принимающая сторона на каждый пришедший пакет отправляетподтверждение и собирает соответствующие пакеты в сообщение. При этом порядокотправки пакетов может не соответствовать порядку их прибытия на принимающуюсторону. Прикладные протоколы, основанные на UDP, оперируют передачей пакетов.Уровень прикладных программ.
Этот уровень специфицирует протоколыпостроения распределённых сетевых приложений. На этом уровне находятся протоколы,часть которых опираются на протокол TCP, а часть — на UDP. Выбор между TCP и UDPосновывается на том, насколько критична потеря информации, и на сфере реализацииприложений (детерминированное или недетерминированное качество линий связи).Протоколы, которые основываются на принципах работы протокола TCP,обеспечивают доступ и работу с заведомо корректной информацией, причем именно всреде межсетевого взаимодействия (internet), и эти протоколы требуют корректнойдоставки. В частности, это протокол TELNET (Network Terminal Protocol) — прикладнойпротокол, эмулирующий терминальное устройство (сетевой терминал); протоколмежсетевого перемещения файлов FTP (File Transfer Protocol); протокол передачипочтовых сообщений SMTP (Simple Mail Transfer Protocol).Есть ряд прикладных протоколов, основанных на использовании протокола UDP.Эти протоколы оказываются относительно быстрыми, поскольку максимально сниженынакладные расходы на передачу, но они допускают наличие ошибок.87Часть подобных протоколов действуют в рамках локальной сети, где качестволиний связи детерминировано.
В частности, в большинстве случаев протокол NFS(Network File System) сетевой файловой системы функционирует именно в рамкахлокальной сети, и очень редко его запускают в межсетевом режиме.Другая часть протоколов должна контролироваться, с одной стороны, наприкладном уровне, а с другой стороны, эти протоколы предполагают обмен оченьнебольшими порциями данных. К таким протоколам относится DNS (Domain NameService), который позволяет мнемоническим способом именовать сетевые устройства. Вчастности, этот протокол осуществляет преобразования IP-адресов в мнемоническиеимена и обратно. Мнемонический адрес строится справа налево перечислением доменныхимён соответствующих уровней (пример – jaffar.mlab.cs.msu.su).
Доменные имена первогоуровня определяют принадлежность данного имени по двум категориям: национальной(когда доменное имя определяет страну – fi, ru, su, de и др.) и по принадлежностикомпьютера к организации, занимающейся определённой деятельностью (com, org, gov,net и др.). Существует организация, которая распределяет доменные имена первогоуровня. Владелец доменного имени i-го уровня может по своему усмотрениюраспределять доменные имена (i+1)-го уровня.1.3Основы архитектуры операционных системЭтот раздел мы начнем с определения базовых понятий, среди которых оченьважным для нас станет понятие операционной системы. Этот термин имеет различныетолкования в разных изданиях – мы остановимся на следующем.Операционная система — это комплекс программ, в функции которого входитобеспечение контроля за существованием, использованием и распределением ресурсоввычислительной системы.
Напомним, что вычислительная система может включать в свойсостав как физические, так и виртуальные ресурсы. Чтобы дать более ясную картину того,что же мы будем считать операционной системой, разберем детально её функции.Начнем с того, что операционная система обеспечивает контроль засуществованием ресурсов. Под этим понимается обеспечение операционной системойреализации виртуальных ресурсов и предоставление средств доступа к физическимресурсам.
Для любого ресурса степень его доступности зависит от операционной системы.Существуют ресурсы, которые полностью зависят от того, имеется ли их реализация воперационной системе или нет, если есть, то какая именно это реализация. Примеромподобного ресурса служит файловая система: этого ресурса может и не быть воперационной системе, может существовать одна модель, или другая модель, или сразунесколько моделей.Следующий пункт — использование ресурсов. Здесь имеется в виду, чтооперационная система предоставляет все средства, обеспечивающие доступность ресурсовВС пользователю (точнее программам). При использовании любых ресурсов ВС можетвозникнуть конкуренция.И, наконец, распределение: под этим будем понимать выбор стратегиираспределения и обеспечение всевозможных моделей регламентации доступа.Любая операционная система опирается на набор базовых сущностей, на основехарактеристик которых выстраиваются почти все эксплуатационные свойства конкретнойоперационной системы.
При этом, для различных операционных систем наборы базовыхсущностей зачастую различаются: одни основаны на понятии устройства, другие — напонятии файла, третьи — на понятии набора данных. Но в большинстве случаев в составбазовых включается сущность, обозначающая исполняемую программу, задачу, заданиеили процесс. Эта сущность определяет некоторый процесс исполненияпоследовательности команд, причем здесь может участвовать единственная ветвь88вычислений, а может сразу и несколько параллельных ветвей.
Из множества трактовокэтой сущности мы выберем понимание ее именно как процесса.Процесс — это совокупность машинных команд и данных, обрабатывающаяся врамках вычислительной системы и обладающая правами на владение некоторым наборомресурсов ВС.Разберемся в этом определении. Понятие совокупности машинных команд иданных обозначает то, что принято называть исполняемой программой (т.е. это код иоперанды, используемые в этом коде). Далее, под термином обработки в рамках ВСбудем понимать, что эта программа сформирована и находится в системе в режимеобработки (это может быть и ожидание, и исполнение на процессоре, и т.п.).
И, третье,понятие обладания правами на владение некоторым набором ресурсов обозначает, посути, возможность доступа. Отметим, что здесь речь не идет об эксклюзивных правах,поскольку в общем случае это было бы некорректно. Итак, иными словами, процессможно определить как исполняемую программу, которая введена в систему для ееобработки и с которой ассоциированы некоторые ресурсы вычислительной системы.Ресурсы, выделяемые процессам, могут быть двух типов.
Первая категорияресурсов состоит из тех ресурсов, которые выделяются процессу на эксклюзивныхправах. Это означает, что этот ресурс, пока процесс им владеет, принадлежит ему итолько ему, и никакой иной процесс не имеет право работать с данным ресурсом. Втораякатегория — это те ресурсы, которые одновременно могут принадлежать двум и болеепроцессам, – такие ресурсы принято называть разделяемыми ресурсами. Здесь сделаемнебольшое пояснение: то, что разделяемый ресурс может одновременно принадлежатьнескольким процессам, не означает, что к нему возможен одновременный доступ.Обозначенная проблема решается на другом уровне посредством использования разныхсхем синхронизации доступа к разделяемому ресурсу, и об этом речь пойдет несколькопозже.С точки зрения выделения ресурса процессу используются две стратегииорганизации этого выделения.
Первый способ — это предварительная декларацияресурсов. В этом случае до ввода программы в систему и формирования для нее процессадекларируется перечень тех ресурсов, которыми процесс будет обладать. Например, этоможет быть перечень областей оперативной памяти, которые будут доступны данномупроцессу (если система поддерживает механизм виртуальной памяти, то это будетперечень областей виртуальной памяти, доступных процессу).
Или же это может бытьпредельное время центрального процессора, которое может быть потрачено наисполнение данного процесса. Так или иначе, при вводе программы и формированиипроцесса операционная система постарается выделить все необходимые ресурсы, которыебыли предварительно декларированы. Если в системе нет заказанного ресурса, то она,скорее всего, не станет запускать процесс, который запросил этот ресурс.Вторая модель — это динамическое пополнение списка ресурсов. Данная модельпредполагает выделение процессу ресурса уже во время выполнения этого процесса.
Этоозначает, что в системе происходит запуск процесса с выделением ему минимальнонеобходимой области виртуальной памяти, а затем, когда процесс обращается к системе завыделением дополнительной области, то ОС обрабатывает эти запросы соответствующимобразом. Отметим также, что на практике также применяются и комбинированныеподходы, но во многих системах, с которыми мы сталкиваемся в нашей повседневнойжизни, ориентация сделана на динамическую модель выделения ресурсов.Многие операционные системы разрабатывались и разрабатываются такимобразом, чтобы обладать следующими важными свойствами: надежность, защита,эффективность и предсказуемость.Надежность означает, что система должна быть надежной как программныйкомплекс, т.е.
число программных ошибок в системе должно быть сведено к минимуму идолжно быть соизмеримо с количеством возможных аппаратных сбоев.89Защита информации на сегодняшний день является одним из основныхтребований, предъявляемых к системе. ОС должна обеспечивать защиту информации иресурсов от несанкционированного доступа. Эта проблема на сегодняшний день остаётсяоткрытой.Свойство эффективности означает, что функционирование системы должноудовлетворять некоторым требованиям – критериям эффективности, которые, по сути,являются оценкой соответствия.И, наконец, это предсказуемость системы, являющаяся также одним из важныхсвойств ОС, поскольку большинство систем, которые, так или иначе, являются массовораспространенными, при возникновении разного рода форс-мажорных обстоятельствдолжны вести себя строго определенным способом.
Это свойство должно очерчивать кругвсевозможных проблем, которые могут возникнуть в той или иной ситуации,предопределять последствия этих проблем, а также подразумевать устойчивость системык возникновению сбоев (как аппаратных, так и программных).1.3.1 Структура ОССуществует множество взглядов, касающихся структуры операционной системы, ив этом разделе речь пойдет о некоторых из них.Простейшая структурная организация основана на представлении операционнойсистемы в виде композиции следующих компонентов (Рис. 72).Интерфейсы системных вызовов(API — Application Program Interface)Динамически подгружаемые драйверыфизических и виртуальных устройствЯдро ОСАппаратураРис. 72. Структурная организация ОС.Ядро (kernel) ОС — это резидентная (постоянно размещаемая в ОП) часть ОС,реализующая некоторую базовую функциональность ОС и работающая в режимесупервизора (т.е. в привилегированном режиме).