- •Вопрос 1. История развития ос. Существующие операционные системы и их характеристики. Классификация ос.
- •Вопрос 2. Основные компоненты ос. Назначение, структура и функции ос.
- •Вопрос 3. Требования к операционным системам.
- •Вопрос 4. Понятие ресурса, виды ресурсов, управление ресурсами.
- •Вопрос 5. Виртуальная память. Методы распределения памяти.
- •Вопрос 6. Принцип кэширования данных.
- •Вопрос 7. Понятие процесса. Состояние процесса и переходы между ними.
- •Вопрос 8. Управление процессами. Синхронизация процессов. Семафоры. Использование семафоров для решения задач взаимоисключения и синхронизации. Алгоритмы планирования процессов
- •Вопрос 9. Управление процессами. Сообщения. Тупики. Способы борьбы с тупиками.
- •Вопрос 10. Файловые системы. Fat, hpfs, ntfs. Основные отличия. Общая модель файловой системы.
- •Вопрос 11. Файловая система fat. Структура диска. Файлы. Размещение файлов.
- •Вопрос 12. Файловые системы hpfs и ntfs. Структура диска. Файлы. Размещение файлов.
- •Вопрос 13. Операционная система ms-dos. Порядок загрузки.
- •Вопрос 14. Операционная система ms-dos. Загрузочный сектор жесткого диска. Структура элементов раздела в таблице разделов диска.
- •Вопрос 15. Операционная система ms-dos. Структура загрузочного сектора диска.
- •Вопрос 16. Операционная система ms-dos. Форматы исполняемых файлов.
- •Вопрос 17. Операционная система ms-dos. Структура psp.
- •Вопрос 18. Понятие прерывания. Аппаратные и программные прерывания. Обработка прерываний.
- •Вопрос 19. Структура таблицы векторов прерывания.
- •Вопрос 20. Способы несанкционированного доступа к информации в ms-dos. Возможные механизмы защиты.
- •Вопрос 21. Структура сетевой ос.
- •Вопрос 22. Классификация угроз безопасности ос.
- •Вопрос 23. Понятие защищенной ос. Подходы к построению защищенной ос.
- •Вопрос 24. Архитектура Windows nt. Основные модули Windows nt.
- •Вопрос 25. Архитектура Windows nt. Уровень аппаратных абстракций.
- •Вопрос 27. Windows nt. Интерфейс прикладных программ.
- •Вопрос 28. Ос Windows nт. Понятие объекта. Структура объекта.
- •Вопрос 29. Ос Windows nt. Понятие процесса. Взаимодействие между процессами. Потоки. Нити.
- •Вопрос 30. Ос Windows nt. Модель безопасности и ее компоненты.
- •Вопрос 31. Ос Windows nt. Реестр. Управление конфигурацией. Значимые элементы Реестра.
- •Вопрос 32. Архитектуры сетевой подсистемы ос Windows nt. Встраивание средств защиты в сетевую подсистему.
- •Вопрос 33. Аудит в Windows nt.
- •Вопрос 34. Угрозы безопасности Windows nt и методы защиты.
- •Вопрос 35. Ос Windows nt. Основные функции Win32 api.
- •Пример api функции:
- •Вопрос 37. История развития и общая характеристика семейства ос unix. Основные сведения о системе.
- •Вопрос 38. Архитектура ос unix. Ядро ос. Основные функции. Принципы взаимодействия с ядром.
- •Вопрос 39. Файловые системы unix.
- •Вопрос 40. Ос unix. Понятие процесса. Взаимодействие между процессами. Сигналы.
- •Вопрос 41. Ос unix. Основные функции. Системные операции.
- •Вопрос 42. Ос unix. Управление памятью. Виртуальная память. Принцип Деннинга. Структура виртуального адресного пространства.
- •Вопрос 43. Ос unix. Системные вызовы управления вводом-выводом.
- •Вопрос 44 ос unix. Средства взаимодействия с пользователем.
- •Вопрос 45. Методы защиты информации в ос мсвс.
- •Вопрос 46. Ос unix. Существующие типы файлов.
- •Вопрос 47. Стандарты защищенности ос и адекватная политика безопасности.
- •Вопрос 48. Определение и основные особенности операционных систем реального времени.
Вопрос 43. Ос unix. Системные вызовы управления вводом-выводом.
Open – открыть Create – создать Dup –сделать копию Read – чтение Write – запись Close – закрыть
Вызов системной функции open (открыть файл) - это первый шаг, который должен сделать процесс, чтобы обратиться к данным в файле. Синтаксис вызова функции open: fd = open(pathname, flags, modes);
где pathname - имя файла, flags указывает режим открытия (например, для чтения или записи), а modes содержит права доступа к файлу в случае, если файл создается. Системная функция open возвращает целое число (*), именуемое пользовательским дескриптором файла. Другие операции над файлами, такие как чтение, запись, позиционирование головок чтения-записи, воспроизведение дескриптора файла, установка параметров ввода-вывода, определение статуса файла и закрытие файла, используют значение дескриптора файла, возвращаемое системной функцией open.
Синтаксис вызова системной функции read (читать): number = read(fd, buffer, count)
где fd - дескриптор файла, возвращаемый функцией open, buffer - адрес структуры данных в пользовательском процессе, где будут размещаться считанные данные в случае успешного завершения выполнения функции read, count – количество байт, которые пользователю нужно прочитать, number - количество фактически прочитанных байт.
Синтаксис вызова системной функции write (писать): number = write(fd, buffer, count);
где переменные fd, buffer, count и number имеют тот же смысл, что и для вызова системной функции read.
Процесс закрывает открытый файл, когда процессу больше не нужно обращаться к нему. Синтаксис вызова системной функции close (закрыть): close (fd);
где fd - дескриптор открытого файла. Ядро выполняет операцию закрытия, используя дескриптор файла и информацию из соответствующих записей в таблице файлов и таблице индексов. Если счетчик ссылок в записи таблицы файлов имеет значение, большее, чем 1, в связи с тем, что были обращения к функциям dup или fork, то это означает, что на запись в таблице файлов делают ссылку другие пользовательские дескрипторы, что мы увидим далее; ядро уменьшает значение счетчика и операция закрытия завершается. Если счетчик ссылок в таблице файлов имеет значение, равное 1, ядро освобождает запись в таблице и индекс в памяти, ранее выделенный системной функцией open (алгоритм iput). Если другие процессы все еще ссылаются на индекс, ядро уменьшает значение счетчика ссылок на индекс, но оставляет индекс процессам; в противном случае индекс освобождается для переназначения, так как его счетчик ссылок содержит 0. Когда выполнение системной функции close завершается, запись в таблице пользовательских дескрипторов файла становится пустой. Попытки процесса использовать данный дескриптор заканчиваются ошибкой до тех пор, пока дескриптор не будет переназначен другому файлу в результате выполнения другой системной функции. Когда процесс завершается, ядро проверяет наличие активных пользовательских дескрипторов файла, принадлежавших процессу, и закрывает каждый из них. Таким образом, ни один процесс не может оставить файл открытым после своего завершения.
Системная функция open дает процессу доступ к существующему файлу, а системная функция creat создает в системе новый файл. Синтаксис вызова системной функции creat:
fd = creat(pathname, modes);
где переменные pathname, modes и fd имеют тот же смысл, что и в системной функции open. Если прежде такого файла не существовало, ядро создает новый файл с указанным именем и указанными правами доступа к нему; если же такой файл уже существовал, ядро усекает файл (освобождает все существующие блоки данных и устанавливает размер файла равным 0) при наличии соответствующих прав доступа к нему (***)).
Системная функция dup копирует дескриптор файла в первое свободное место в таблице пользовательских дескрипторов файла, возвращая новый дескриптор пользователю. Она действует для всех типов файла. Синтаксис вызова функции: newfd = dup (fd);
где fd - дескриптор файла, копируемый функцией, а newfd - новый дескриптор, ссылающийся на файл. Поскольку функция dup дублирует дескриптор файла, она увеличивает значение счетчика в соответствующей записи таблицы файлов - записи, на которую указывают связанные с ней точки входа в таблице файловых дескрипторов, которых теперь стало на одну больше.