Ввод-вывод в операционной системе. Буферизация. Сообщения об ошибках. Захват и освобождение выделенных устройств. Независимый от устройств размер блока. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Ввод-вывод в операционной системе. Буферизация. Сообщения об ошибках. Захват и освобождение выделенных устройств. Независимый от устройств размер блока.



Буферизация

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

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

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

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

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

Сообщения об ошибках

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

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

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

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

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

Захват и освобождение выделенных устройств

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

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

Независимый от устройств размер блока

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

Безопасность. Понятие «Безопасность». Угрозы безопасности. Злоумышленники. Случайная потеря данных.

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

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

Угрозы

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

Таблица 1. Задачи безопасности и угрозы безопасности

Задача Угроза
Конфиденциальность данных Демонстрация данных
Целостность данных Порча или подделка данных
Доступность системы Отказ обслуживания

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

Злоумышленники

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

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

· Члены организации, занимающиеся шпионажем.

· Те, кто совершают решительные попытки личного обогащения.

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

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

Случайная потеря данных

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

1. Форс-мажор: пожары, наводнения, землетрясения, войны, восстания, крысы, изгрызшие проводы или гибкие диски.

2. Аппаратные и программные ошибки: сбои центрального процессора, нечита­емые диски или ленты, ошибки при передаче данных, ошибки в программах.

3. Человеческий фактор: неправильный ввод данных, неверные установленные диск, запуск не той программы, потерянные диск или лента и т. д.

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

 

26. Безопасность. Основы криптографии. Шифрование с секретным ключом. Необратимые функции. Цифровые подписи.

Основы криптографии

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

На самом деле секретность зависит от параметров алгоритмов, называемых ключами. Мы будем использовать формулу С=Е(Р,КЕ), обозначающую, что при зашифровке открытого текста Р с помощью ключа К получается зашифрованный текст С.

Аналогично формула Р=D(С,KD) означает расшифровку зашифрованного тек­ста С для восстановления открытого текста.



Поделиться:


Последнее изменение этой страницы: 2016-09-19; просмотров: 398; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.120.133 (0.019 с.)