Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_Хохлов ДГ Материалы к аттестации КГАСУ по ОС 2...rtf
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
475.09 Кб
Скачать

Управление вводом-выводом

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

Два основных режима ввода-вывода:

  1. обмен с опросом готовности

  2. обмен с прерываниями.

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

Различают синхронный и асинхронный ввод/вывод.

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

Простой асинхронный вывод – это буферизованный вывод на внешнее устройство.

Для ускорения дисковых операций применяют:

- двойную буферизацию при чтении и записи;

- кэширование данных в дисковом кэше;

- упреждающее чтение нескольких дополнительных блоков данных;

- отложенная запись позволяет ускорить операцию записи.

Основные системные таблицы ввода-вывода (могут сильно отличаться в различных ОС):

таблица оборудования – информация обо всех подключенных к системе устройствах ввода-вывода, каждый элемент таблицы называется UCB (Unit Control Blok);

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

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

Файловая система

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

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

В каталоге хранится:

- имя файла, длина в байтах, место на диске, дата создания, автор (во многих файловых системах эта информация хранится в метафайлах) и т.д.

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

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

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

Наиболее распространенные файловые системы на ПК: FAT, FAT32, NTFS (файловая система новой технологии), HPFS - высокопроизводительная файловая система в операционной системе OS/2, VFAT и др.

Организация операционных систем

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

Увеличение числа уровней упрощает отдельные части системы, но замедляет работу.

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

Основные принципы организации ОС:

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

  2. Принцип особого режима работы. Ядро ОС и низкоуровневые драйверы, управляющие работой каналов и устройств ввода-вывода, должны работать в специальном режиме процессора. Процессор может работать в двух режимах: привилегированном режиме супервизора и пользовательском (ограничен набор команд и запрещен доступ к специальным системным регистрам). Например, процесс для выполнения операций ввода-вывода обращается с запросом к супервизорной части ОС и процессор переключается в привилегированный режим работы. Множество возможных запросов образуют системный API.

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

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

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

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

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

  8. Принцип совместимости. Это способность ОС выполнять программы, написанные для другой ОС и даже для другой аппаратной платформы.

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

  10. Принцип мобильности. ОС должна легко переноситься с одного процессора на другой, с одной платформы на другую. Для этого большая часть ОС должна быть написана на языке высокого уровня, стандартизованном, например Си. Программы на ассемблере не являются переносимыми. Аппаратно-зависимый код полностью исключить невозможно, он должен быть хорошо изолирован в локальном модуле. При переносе на другую аппаратную платформу модули, написанные на языке ассемблера, должны быть написаны заново, а остальная большая часть модулей может быть перекомпилирована под целевой процессор. Для обеспечения мобильности создан стандарт POSIX (интерфейс прикладного программирования для переносимых операционных систем). Принцип трудно поддерживать (универсальность приводит к потере производительности), например, ОС класса Windows NT только для процессоров с архитектурой IA32, не поддерживают MIPS, Alpha, PowerPC.

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

Принципы построения и защита от сбоев и несанкционированного доступа

Анализ угроз и уязвимостей в операционных системах (41). Механизмы защиты (43). Надежные вычислительные системы (44). Методы аутентификации (45). Инсайдерские атаки (46). Внешние атаки (47). Вредоносные программы (48). Троянские кони и вирусы (49). Средства защиты от вредоносных программ (50).

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

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

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

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

– шифрование данных.

Злонамеренное ПО (Malicious software) включает вирусы, троянских коней, червей, программы для исчерпания ресурсов.

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

Троянский конь (Trojan horse) – секретная (недокументированная и скрывающая свое присутствие) подпрограмма, внедренная в обычную (полезную) программу, запуск которой приводит к выполнению троянского коня.

Червь (Worm) – программа, которая способна перемещаться с компьютера на компьютер по сетевым соединениям (и может содержать вирус).

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

Инсайдерские атаки (46) – атаки с участием сотрудников атакованной организации; внешние атаки (47) – без их участия.

Основы криптографии (42) [7, c. 231 – 238; 6].

Криптография (тайнопись) – область знаний о методах создания и раскрытия шифров.

Шифрование – кодирование данных для защиты от несанкционированного доступа. Процесс кодирования сообщения называется шифрованием (зашифровкой); процесс декодирования сообщения называется расшифрованием (расшифровкой). Кодированное сообщение называется шифрованным (шифровкой), а применяемый метод – шифром.

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

Раскрытие шифра (дешифрование, дешифрация) – процесс декодирования шифровки без ключа. Криптостойкость (надежность) – это свойство шифра противостоять раскрытию.

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

Шифры с секретным (закрытым) ключом, известным только отправителю и получателю сообщения, называются симметричными.

Сейчас получило распространение симметричное шифрование с открытым ключом – для зашифровки и расшифровки используются разные ключи.

Ключ для зашифровкиоткрытый (несекретный) и сообщается всем желающим отправить шифрованное сообщение. Ключ для расшифровкизакрытый (секретный).

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

Шифры

Словарь

Адресное пространство – диапазон адресов, доступный программе (процессу или потоку).

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

Авторизация – назначение привилегий (прав) в соответствии с учетной записью.

Виртуальный – обозначает не имеющий физического воплощения или воспринимаемый иначе, чем реализован; нереальный, несуществующий объект, воспринимаемый как реальный, иначе говоря, имитируемый программным способом. Его синонимы: абстрактный, логический.

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

Диспетчеризация (dispatching) – выделение процессорного времени – планирование процессов/потоков.

Задание (job) – объединение в группу нескольких процессов.

Интерфейс – правила, способы и средства взаимодействия.

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

Контекст потока – содержимое регистров процессора, включая счетчик команд.

Контекст (выполнения) процесса (= состояние процесса) – вся информация, необходимая ОС для управления выполнением процесса: содержимое регистров процессора, включая счетчик команд; состояние процесса: выполняется, готов, блокирован и т. п.

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

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

Кэш-попадание (cache hit) – обращение к данным, находящимся в кэше (ускорение удалось: обошлись без обращения к основной памяти).

Кэш-промах (cache miss) – обращение к данным, отсутствующим в кэше (ускорение не удалось: придется обращаться к основной памяти).

Планирование (процессов) (process scheduling) – определение, какой процесс (или поток) и на какой период получит процессорное время.

Планирование долгосрочное (на верхнем уровне) – решение о допуске нового процесса (или задания) в систему для выполнения.

Планирование среднесрочное (на промежуточном уровне) – часть свопинга: решение о полном или частичном помещении процесса в основную память для начала конкуренции за процессорное время.

Планирование краткосрочное (на нижнем уровне) – определение процесса (или потока), который получит процессорное время.

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

Поток (данных) (stream – поток) – последовательность данных (или команд); входной или выходной последовательный файл.

Поток пользователя – поток, выполняемый как одна из параллельный ветвей в едином адресном пространстве (контексте выполнения) пользовательского процесса.

Поток ядрапоток, выполняемый в ядре ОС.

Прерываниеаппаратный сигнал о наступлении определенного события, заставляющий процессор выполнить соответствующую программу (часть ОС) – обработчик прерывания. Внешние прерывания вызваны асинхронными событиями вне процессора – от таймера, устройств питания, ввода-вывода и др. Внутренние прерывания вызваны событиями синхронными с работой процессора: недопустимая команда или адрес; деление на ноль, переполнение или исчезновение порядка – потеря точности при выполнении команды; ошибками в работе устройств; включая программные прерывания – специальной командой (SVC – вызов супервизора, или INT – в компьютерах IBM PC) для системного вызова – обращения программы к услугам ОС.

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

Протокол (protocol) – набор правил взаимодействия двух логических объектов.

Процесс (process) – логический объект в ОС; описывающий программу в стадии выполнения.

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

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

Семафор – объект для синхронизации процессов – решения проблемы взаимоисключения.

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

Синхронизация – согласование действий по времени.

Событие (event object) (Windows XP) – объект ядра типа событие для синхронизации потоков одного или разных процессов, переводимый программой в сигнальное состояние при наступлении определенного события.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]