Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Часть 1. Функции, состав и назначение ОС



Часть 1. Функции, состав и назначение ОС

Место ОС в структуре вычислительной системы

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

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

Две основные функции, выполняемые операционными системами.

· Операционная система – это расширенная (виртуальная) машина.

· Операционная система – это менеджер вычислительных и информационных ресурсов.

 

Эволюция ОС. Многозадачность и режим разделения времени

История развития ОС связывается с поколениями вычислительных машин, которыми они управляют

Элементная база машин первого поколения – реле и электронные лампы

• Программирование на машинном языке

• Отсутствие ОС

 

Элементная база машин второго поколения – транзисторы

• Мэйнфреймы

• Появление первых ОС

• Задачи ОС связаны с автоматическим прогоном пакета заданий

• Пакетные ОС

• Примеры – IBSYS и Fortran Monitor System

Элементная база машин третьего поколения – интегральные схемы

• Бурное развитие ОС

• Пример – OS/360

• Поддержка многозадачности

• Поддержка спулинга (подкачки) данных

• Появление режима разделения времени

• Система CTSS на IBM 7094

• Система MULTICS на GE 645

Появление мини-ЭВМ линии PDP, и реализация однопользовательского варианта MULTICS привело к появлению UNIX

• «Зоопарк» *nix-систем

• Две главные версии – System V и BSD

• Стандарт POSIX, который так или иначе стараются поддерживать и не *nix-системы

 

Элементная база машин четвертого поколения – сверхбольшие интегральные микросхемы

• Персональные компьютеры и ОС семейства DOS

• Графический пользовательский интерфейс GUIи необходимость его поддержки

• Системы Macintosh и Windows

• Разделение Windows на две ветви – Windows95 и Windows NT

• Linux

• X Window System в *nix-системах

• Поддержка работы в сетевой и распределенной среде

Эволюция ОС. Дружественный интерфейс. Сетевые и распределенные ОС

(3)+

ДРУЖЕСТВЕННЫЙ ИНТЕРФЕЙС (friendly interface). Интерфейс, обеспечивающий человеку-пользователю не требующее специального обучения максимально удобное взаимодействие с программой или вычислительной системой. Это наглядные, простые и понятные для него изображения на экране, значки, пиктограммы, кнопки, меню, подсказки в диалоге, звуковое сопровождение и т. п.

Сетевая операционная система — операционная система со встроенными возможностями для работы в компьютерных сетях. К таким возможностям можно отнести:

· поддержку сетевого оборудования

· поддержку сетевых протоколов

· поддержку протоколов маршрутизации

· поддержку фильтрации сетевого трафика

· поддержку доступа к удалённым ресурсам, таким как принтеры, диски и т. п. по сети

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

· наличие в системе сетевых служб позволяющих удалённым пользователям использовать ресурсы компьютера

Примеры сетевых операционных систем:

· Novell NetWare

· LANtastic

· Microsoft Windows (NT, XP, Vista, Seven)

· Различные UNIX системы, такие как Solaris, FreeBSD

· Различные GNU/Linux системы

· IOS

· ZyNOS компании ZyXEL

Основное назначение

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

· сетевые ОС для серверов;

· сетевые ОС для пользователей

Существуют специальные сетевые ОС, которым приданы функции обычных систем (Пр.: Windows NT) и обычные ОС (Пр.: Windows XP), которым приданы сетевые функции. Сегодня практически все современные ОС имеют встроенные сетевые функции.

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

Компьютерные системы

· Распределенная система компьютеров — компьютерная сеть.

· Распределённая система управления — система управления технологическим процессом.

· Распределённая файловая система — сетевые файловые системы.

· Распределённые операционные системы

· Системы распределённых вычислений

· Распределённые системы контроля версий

· Распределённые базы данных

· Система доменных имён (DNS) — распределённая система для получения информации о доменах.

·

Классификация ОС

• ОС мэйнфреймов

• Серверные ОС

• Многопроцессорные ОС

• ОС для ПК

• ОСРВ (системы реального времени)

• Встроенные ОС

• Операционные системы сенсорных узлов

• ОС для смарт-карт

Краткая характеристика

· ОС мэйнфреймов

У них отличаются от ПК возможности I/O. Обычно мэйнфреймы содержат тысячи дисков и терабайты ОЗУ. Они используются в виде мощных web-серверов, серверов для крупномасштабных коммерческих сайтов и серверов для транзакций в бизнесе. ОС для мэйнфреймов ориентированы на обработку множества одновременных заданий, большинству из которых требуется огромное количество операций I/O. Обычно они предполагают три вида обслуживания:

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

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

 3) разделение времени. Системы, работающие в режиме разделения времени, позволяют множеству удаленных пользователей выполнять свои задания на одной машине, например, работать с большой БД. Все эти функции тесно связаны между собой и часто ОС мэйнфрейма выполняет их все. Примером ОС для мэйнфрейма является OS/390 (от IBM).

· Серверные ОС

Работают на серверах, которые представляют собой или очень большие ПК, или рабочие станции, или даже мэйнфреймы. Они одновременно обслуживают множество пользователей и позволяют им делить программные и аппаратные ресурсы. Серверы представляют возможность работать с печатающими устройствами, файлами и Internet. Internet-провайдеры обычно запускают в работу несколько серверов, чтобы поддерживать одновременный доступ к сети множества клиентов. На серверах хранятся страницы web-сайтов и обрабатываются входные запросы. Типичные серверные ОС: Windows 2000 и Unix. В этих целях в настоящее время стала использоваться и ОС Linux.

 

 

· Многопроцессорные ОС

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

· ОС для ПК

Работа этих ОС заключается в представлении удобного интерфейса для одного пользователя. Такие ОС широко используются для работы с текстом, электронными таблицами и доступа к Internet. Яркие примеры: Windows 98, 2000, MacOS, Linux.

· ОСРВ (системы реального времени)

Главным параметром ОС РВ является время. Например, в СУ производством компьютеры, работающие в режиме РВ, собирают данные о промышленном процессе и используют их для управления машинами. Такие процессы должны удовлетворять жестким временным требованиям. Так, если автомобиль передвигается по конвейеру, то каждое действие должно быть осуществлено в строго определенный момент времени. Если сварочный робот сварит шов слишком рано/поздно, то он нанесет непоправимый вред. Если некоторое действие должно произойти в какой-то момент времени или внутри заданного диапазона времени, то говорят о жесткой системе РВ. Существует гибкая система РВ, в которой допустимы случающиеся время от времени пропуски сроков выполнения операций. В эту категорию попадает цифровое аудио и multimedia-системы. Примеры ОС: VxWorks, QNX.

· Встроенные ОС

Карманный компьютер, или PDA (Personal Digital Assistant), - маленький компьютер, помещающийся в кармане брюк и выполняющий некоторые функции (записная книжка, блокнот). Примеры ОС: PalmOS, Windows CE (Consumer Electronics - бытовая техника).

· Операционные системы сенсорных узлов

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

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

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

· ОС для смарт-карт

Самые маленькие ОС работают на Smart-картах, представляющих собой устройство с ЦП. На такие ОС накладываются крайне жесткие ограничения по мощности ЦП и памяти. Некоторые из них могут управлять только одной операцией, но другие ОС на тех же самых Smart-картах выполняют сложные функции. Некоторые ОС являются Java-ориентированными, т.е. ПЗУ содержит интерпретатор виртуальной машины Java (ROM - Read Only Memory). Апплеты Java загружаются на карту и выполняются интерпретатором JVM (Java Virtual Machine). Некоторые из этих карт могут одновременно управлять несколькими Java-апплетами, что приведет к многозадачности и необходимости планирования. Также возникает необходимость в защите. Эти задачи обычно выполняет крайне примитивная ОС.

Требования, предъявляемые к современным ОС. Их краткая характеристика

Требования можно разделить на функциональные и эксплуатационные

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

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

 

Эксплуатационные требования

• Надежность и отказоустойчивость

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

• Расширяемость

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

• Переносимость

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

• Совместимость

Существует несколько «долгоживущих» популярных ОС (разновидности UNIX, MS-DOS, Windows 3.x, Windows NT, OS/2), для которых наработана широкая номенклатура приложений. Поэтому для пользователя, переходящего по тем или иным причинам с одной ОС на другую, очень привлекательна возможность запуска в новой ОС привычного приложения. Если ОС имеет средства для выполнения прикладных программ, написанных для других ОС, то про неё говорят, что она обладает совместимостью с этими ОС.

 

 

• Безопасность

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

• Производительность

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

Часть 2. Архитектура ОС

Монолитные ОС

В общем случае организация такой системы является беспорядочной. Несмотря на кажущийся «беспорядок», обладают некоторой долей структурированности

• Главная процедура

• Служебные процедуры для системных вызовов

• Утилиты для служебных процедур

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

Эти компоненты загружаются по мере надобности.

Микроядерная архитектура ОС

В привилегированном режиме остается работать только очень небольшая часть ОС, называемая микроядром

 Микроядро защищено от остальных частей ОС и приложений

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

• Набор функций микроядра обычно соответствует функциям слоя базовых механизмов обычного ядра.

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

• Такие модули называются серверами

• Для реализации микроядерной архитектуры необходимым условием является наличие в ОС удобного способа вызова процедур одного процесса из другого

• Микроядро обязано поддерживать этот механизм

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

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

• Микроядро передает сообщение серверу

• Сервер выполняет запрошенную операцию

• Микроядро возвращает результаты клиенту с помощью другого сообщения

Недостаток микроядерной архитектуры – некоторое снижение производительности

системы

• Высокая степень переносимости микроядерных систем обусловлена изолированностью всего машинно-зависимого код в микроядре

• Небольшой набор строго определенных интерфейсов микроядре открывает путь к развитию ОС и позволяет ей иметь высокой степенью расширяемости

• Серверы выполняются в виде процесса с изолированными ВАП, повышая надежность ОС

• Процессы не могут вмешиваться в деятельность микроядра, что позволяет обеспечить безопасность ОС

• Многие разработчики ОС не придерживаются жесткого принципа минимизации функций микроядра для повышения производительности

 

Аппаратная зависимость ОС

Многие ОС успешно работают на различных аппаратных платформах без существенных изменений в своем составе

• В ОС выделяется слой машинно-зависимых компонентов ядра, а остальные слои делаются общими для

разных платформ

• Практически все современные аппаратные платформы имеют некоторый набор средств аппаратной

поддержки ОС

 

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

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

• Средства переключения процессов предназначены для быстрого сохранения контекста приостанавливаемого процесса и восстановления контекста процесса, который становится активным

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

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

• Средства защиты разделов памяти обеспечивают на аппаратном уровне проверку возможности программы

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

выполнение.

 

Переносимость ОС

Если код ОС может быть сравнительно легко перенесен с процессора одного типа на процессор другого типа и с аппаратной платформы одного типа на аппаратную платформу другой типа, то такую ОС называют

переносимой, или мобильной.

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

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

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

• Аппаратно-зависимый код должен быть изолирован в нескольких модулях

 

Планирование и диспетчеризация. Контекст потока

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

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

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

Планирование осуществляется на основе информации из описателей и включает решение двух задач:

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

• выбор для активизации потока из очереди готовых потоков

В большинстве ОС планирование осуществляется динамически

Другой тип планирования статический

Планировщик называется статическим, если он принимает решения о планировании до начала работы

системы.

Диспетчеризация заключается в реализации найденного в результате динамического или статического

планирования решения.

Перед приостановкой потока ОС запоминает его контекст, чтобы впоследствии использовать эту

информацию для возобновления выполнения данного потока.

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

Контекст потока содержит менее оперативную и более объемную часть информации о потоке и отражает:

• состояние аппаратуры в момент прерывания потока

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

Контекст, как и БУП, доступен только программам ядра, т. е. находится в ВАП ОС, но хранится не в области ядра, а может быть выгружен из оперативной памяти на диск.

 

Часть 4. Управление памятью

Иерархия

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

На следующем уровне располагаются более быстродействующие и менее объемные ОЗУ

Для хранения данных, к которым необходимо обеспечить быстрый доступ, используются компактные быстродействующие ЗУ – кэш-память

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

для промежуточного хранения данных.

 

Типы адресов

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

· Символьные имена присваивает пользователь при написании программы на алгоритмическом языке или ассемблере.

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

· Физические адреса соответствуют номерам ячеек оперативной памяти, где в действительности расположены или будут расположены переменные и команды.

 

Методы выбора страницы для выгрузки ее на диск. Примеры.

Если свободных физических страниц нет, то решается, какую страницу следует выгрузить на диск.

Наиболее популярные критерии выбора страницы для выгрузки на диск:

· страница, к которой в последнее время было меньше всего обращений (алгоритм NRU)

·  первая попавшаяся страница

·  стратегия FIFO

· страница, к которой не было обращений на предыдущем интервале времени

· кольцевая организация

· дольше всего не использовавшаяся страница (LRU)

· рабочее множество страниц

· кольцевой алгоритм с рабочим множеством страниц

·

Алгоритм NRU

Для своей работы он использует признаки (биты) модификации и обращения

• При появлении нового процесса в системе у всех его страниц оба этих бита сброшены

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

· Не было обращений и модификаций

· Не было обращений, страница модифицирована

· Было обращение, а страница не модифицировалась

· Были обращение и модификация

После этого осуществляется поиск во всех непустых классах, и удаляется страница из категории с меньшим номером

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

 

FIFO

Еще одним простым способом вытеснения страниц считается алгоритм FIFO

• ОС хранит список всех страниц, находящихся в памяти, где первая страница является самой старшей, а

«молодые» страницы находятся в хвосте списка

• Когда происходит страничное прерывание, то выгружается страница из головы списка, а новая страница

добавляется в хвост

• Данный алгоритм не использует признак модификации страницы

 

32. Сегментное и сегментно-страничное распределение памяти. Отличительные особенности.

Сегментное распределение

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

 

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

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

 

 Виртуальный адрес при сегментной организации памяти может быть представлен парой (g, s), где g - номер сегмента, а s - смещение в сегменте. Физический адрес получается путем сложения начального физического адреса сегмента, найденного в таблице сегментов по номеру g, и смещения s.

 Недостатком данного метода распределения памяти является фрагментация на уровне сегментов и более медленное по сравнению со страничной организацией преобразование адреса.

 

Часть 5. Управление данными

Многоуровневые драйверы.

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

– входит в состав ядра ОС

– непосредственно управляет внешним устройством, взаимодействуя с его контроллером

– обрабатывает прерывания от контроллера устройства

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

– взаимодействует с другими модулями ядра ОС с помощью строго оговоренного интерфейса и т.п.

 

По мере развития ОС и усложнения структуры ПВВ, наряду с традиционными драйверами в ОС

появились высокоуровневые драйверы

• Они располагаются в общей модели ПВВ над традиционными драйверами

• Традиционные драйверы стали называть аппаратными драйверами

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

результатами которых могут пользоваться более высокие уровни.

 

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

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

работают над одним аппаратным драйвером.

 

Количество уровней драйверов в ПВВ обычно не ограничивается каким-либо пределом (обычно от 2

до 5)

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

отдельных драйверов или как один многоуровневый драйвер.

 

В подсистеме сетевых устройств аппаратными являются драйверы сетевых адаптеров, которые выполняют функции канальных протоколов, таких как Ethernet, Frame Relay, ATM и других технологий

• Эти драйверы выполняют простые функции – они организуют передачу кадров данных между устройствами одного сегмента сети

• Над ними располагается слой модулей, которые реализуют функции более интеллектуальных протоколов сетевого уровня – IP или IPX, которые могут обеспечить взаимодействие устройств разных сетей с произвольной топологией связи.

Над слоем сетевых протоколов располагается слой драйверов транспортных протоколов, таких как TCP/UDP, SPX или NetBEUI, которые отвечают за гарантированную связь между компьютерами сети • Еще выше расположен слой драйверов протоколов прикладного уровня (http, ftp и SMB и другие)

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

файлов и т.д.

Необязательно все модули ПВВ оформляются в виде драйверов

• Например, в подсистеме управления дисками обычно имеется дисковый кэш, который служит для кэширования

блоков дисковых файлов в ОП

• Достаточно специфические функции делают нецелесообразным оформление его в виде драйвера,

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

Аппаратные драйверы после запуска ОВВ должны своевременно реагировать на завершение контроллером заданного действия

• Для решения этой задачи они взаимодействуют с системой прерываний

• Драйверы более высоких уровней вызываются не по прерываниям, а по инициативе аппаратных

драйверов или драйверов вышележащего уровня.

 

Не все процедуры аппаратного драйвера вызываются по прерываниям, поэтому драйвер обычно имеет определенную структуру, в которой выделяется процедура обработки прерываний (Interrupt Service Routine, ISR)

• Эта процедура вызывается при поступлении запроса от соответствующего устройства диспетчером прерываний.

 

Именование файлов. Типы имен файлов. Примеры.

Файлы идентифицируются именами. Пользователи дают файлам символьные имена, при этом учитываются ограничения ОС как на используемые символы, так и на длину имени. До недавнего времени эти границы были весьма узкими. Так в популярной файловой системе FAT длина имен ограничивается известной схемой 8.3 (8 символов - собственно имя, 3 символа - расширение имени), а в ОС UNIX System V имя не может содержать более 14 символов. Однако пользователю гораздо удобнее работать с длинными именами, поскольку они позволяют дать файлу действительно мнемоническое название, по которому даже через достаточно большой промежуток времени можно будет вспомнить, что содержит этот файл. Поэтому современные файловые системы, как правило, поддерживают длинные символьные имена файлов. Например, Windows NT в своей новой файловой системе NTFS устанавливает, что имя файла может содержать до 255 символов, не считая завершающего нулевого символа.

 

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

 

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

 

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

 

Имя файла

 

В большинстве файловых систем имя файла используется для указания, к какому именно файлу производится обращение. В различных файловых системах ограничения на имя файла сильно различаются: в FAT16 и FAT12 размер имени файла ограничен 8.3 знаками (8 на имя и 3 на расширение); в других системах имя файла ограничено обычно в 255 байт; в NTFS имя ограничено в некоторых ОС 255 символами Unicode (по спецификации — 32 768 символов).

 

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

Для MS-DOS в имени файла допустимы только заглавные латинские буквы, цифры. Недопустимы пробел, знак вопроса, звёздочка, символы больше/меньше, символ вертикальной черты.[6] При вызове системных функций именами файлов в нижнем или смешанном регистре, они приводятся к верхнему регистру.

Для Windows в имени файла разрешены заглавные и строчные буквы, цифры, некоторые знаки препинания, пробел. Запрещены символы > < | ? * / \ : ".

Для GNU/Linux (с учётом возможности маскировки) разрешены все символы, кроме / и байта, значение которого равно нулю, то есть 0x00.

 

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

 

Расширение имени файла (часто расширение файла или расширение) как самостоятельный атрибут файла существует в файловых системах FAT16, FAT32, NTFS, используемых операционными системами MS-DOS, DR-DOS, PC DOS, MS Windows и используется для определения типа файла. Оно позволяет системе определить, каким приложением следует открывать данный файл. По умолчанию в операционной системе Windows расширение скрыто от пользователя.

 

В остальных файловых системах расширение — условность, часть имени, отделённая самой правой точкой в имени.

Способы структуризации

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

• ОС не может поддерживать все возможные способы структурирования данных в файле

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

К их числу относится представление данных в виде записей, длина которых фиксирована в пределах файла

• Доступ к N-ой записи осуществляется либо путем последовательного чтения N-1 предшествующих записей, либо прямо по адресу, вычисленному по ее порядковому номеру

 

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

• Для поиска нужной записи надо последовательно считать все предшествующие записи, то есть прямой доступ использовать невозможно

Физическая организация и адресация файла. Примеры.

Часть 6. Сетевые ОС

 46. Концепции распределенной обработки данных. Двухзвенные приложения.

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

 

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

Двухзвенные схемы

 

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

 

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

 

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

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

 

 В схеме «файловый сервер» (рис. 9.1, б) на клиентской машине выполняются все части приложения, кроме файловых операций. В сети имеется достаточно мощный компьютер, имеющий дисковую подсистему большого объема, который хранит файлы, доступ к которым необходим большому числу пользователей. Этот компьютер играет роль файлового сервера, представляя собой централизованное хранилище данных, находящихся в разделяемом доступе. Распределенное приложение в этой схеме мало отличается от полностью локального приложения. Единственным отличием является обращение к удаленным файлам вместо локальных. Для того чтобы в этой схеме можно было использовать локальные приложения, в сетевые операционные системы ввели такой компонент сетевой файловой службы, как редиректор, который перехватывает обращения к удаленным файлам (с помощью специальной нотации для сетевых имен, такой, например, как //server"!/doc/file1.txt) и направляет запросы в сеть, освобождая приложение от необходимости явно задействовать сетевые системные вызовы.

 

Файловый сервер представляет собой компонент наиболее популярной сетевой службы — сетевой файловой системы, которая лежит в основе многих распределенных приложений и некоторых других сетевых служб. Первые сетевые ОС (NetWare компании Novell, IBM PC LAN Program, Microsoft MS-Net) обычно поддерживали две сетевые службы — файловую службу и службу печати, оставляя реализацию остальных функций разработчикам распределенных приложений.

 

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

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

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

 

 Другие варианты двухзвенной модели более равномерно распределяют функции между клиентской и серверной частями системы. Наиболее часто используется схема, в которой на серверный компьютер возлагаются функции проведения внутренних операций базы данных и файловых операций (рис. 9.1, в). Клиентский компьютер при этом выполняет все функции, специфические для данного приложения, а сервер — функции, реализация которых не зависит от специфики приложения, из-за чего эти функции могут быть оформлены в виде сетевых служб. Поскольку функции управления базами данных нужны далеко не всем приложениям, то в отличие от файловой системы они чаще всего не реализуются в виде службы сетевой ОС, а являются независимой распределенной прикладной системой. Система управления базами данных (СУБД) является одним из наиболее часто применяемых в сетях распределенных приложений. Не все СУБД являются распределенными, но практически все мощные СУБД, позволяющие поддерживать большое число сетевых пользователей, построены в соответствии с описанной моделью клиент-сервер. Сам термин «клиент-сервер» справедлив для любой двухзвенной схемы распределения функций, но исторически он оказался наиболее тесно связанным со схемой, в которой сервер выполняет функции по управлению базами данных (и, конечно, файлами, в которых хранятся эти базы) и часто используется как синоним этой схемы.

 

Роль рекурсии в грамматике. Примеры. (лекция 7)

Часть 1. Функции, состав и назначение ОС


Поделиться:



Последнее изменение этой страницы: 2019-05-08; Просмотров: 264; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.18 с.)
Главная | Случайная страница | Обратная связь