- •Вопрос 1. История развития ос. Существующие операционные системы и их характеристики. Классификация ос.
- •Вопрос 2. Основные компоненты ос. Назначение, структура и функции ос.
- •Вопрос 3. Требования к операционным системам.
- •Вопрос 4. Понятие ресурса, виды ресурсов, управление ресурсами.
- •Вопрос 5. Виртуальная память. Методы распределения памяти.
- •Вопрос 6. Принцип кэширования данных.
- •Вопрос 7. Понятие процесса. Состояние процесса и переходы между ними. Контекст и дескриптор процесса.
- •Вопрос 8. Требования к алгоритмам организации взаимодействия процессов.
- •Вопрос 9. Алгоритмы планирования процессов. Fcfs и rr.
- •Вопрос 10. Алгоритмы планирования процессов. Sjf. Многоуровневые очереди с обратной связью.
- •Вопрос 11. Управление процессами. Синхронизация процессов. Семафоры.
- •Вопрос 12. Управление процессами. Сообщения. Тупики. Способы борьбы с тупиками.
- •Вопрос 13. Условия возникновения тупиков. Основные направления борьбы с тупиками.
- •Вопрос 14. Критерии планирования процессов.
- •Вопрос 15. Файловые системы. Fat, hpfs, ntfs. Основные отличия. Общая модель файловой системы.
- •Вопрос 16. Файловая система fat. Структура диска. Файлы. Размещение файлов.
- •Вопрос 17. Файловые системы hpfs и ntfs. Структура диска. Файлы. Размещение файлов.
- •Вопрос 18. Операционная система ms-dos. Порядок загрузки.
- •Вопрос 19. Операционная система ms-dos. Загрузочный сектор жесткого диска. Структура элементов раздела в таблице разделов диска.
- •Вопрос 20. Операционная система ms-dos. Структура загрузочного сектора диска.
- •Вопрос 21. Операционная система ms-dos. Форматы исполняемых файлов.
- •Вопрос 22. Операционная система ms-dos. Структура psp.
- •Вопрос 23. Понятие прерывания. Аппаратные и программные прерывания. Обработка прерываний.
- •Вопрос 24. Структура таблицы векторов прерывания.
- •Вопрос 25. Программируемый контроллер прерываний. Структура. Уровни прерываний.
- •Вопрос 26. Обработка прерываний от rs-232, клавиатуры, таймера.
- •Вопрос 27. Способы несанкционированного доступа к информации в ms-dos. Возможные механизмы защиты.
- •Вопрос 28. Структура сетевой ос.
- •Вопрос 29. Классификация угроз безопасности ос.
- •Вопрос 30. Понятие защищенной ос. Подходы к построению защищенной ос.
- •Вопрос 31. Архитектура Windows nt. Основные модули Windows nt.
- •Вопрос 32. Архитектура Windows nt. Уровень аппаратных абстракций.
- •Вопрос 34. Windows nt. Интерфейс прикладных программ.
- •Вопрос 35. Ос Windows nт. Понятие объекта. Структура объекта.
- •Вопрос 36. Ос Windows nt. Понятие процесса. Взаимодействие между процессами. Потоки. Нити.
- •Вопрос 37. Ос Windows nt. Модель безопасности и ее компоненты.
- •Вопрос 38. Ос Windows nt. Реестр. Управление конфигурацией. Значимые элементы Реестра.
- •Вопрос 39. Архитектуры сетевой подсистемы ос Windows nt. Встраивание средств защиты в сетевую подсистему.
- •Вопрос 40. Аудит в Windows nt.
- •Вопрос 41. Угрозы безопасности Windows nt и методы защиты.
- •Вопрос 42. Ос Windows nt. Основные функции Win32 api.
- •Пример api функции:
- •Вопрос 43. Ос Windows nt. Распределение процессорного времени между потоками.
- •Вопрос 44. Ос Windows nt. Уровни запросов прерываний.
- •Вопрос 45. Ос Windows nt. Унифицированная модель драйвера.
- •Вопрос 46. Ос Windows nt. Обмен данными между приложениями и драйверами.
- •Вопрос 47. Ос Windows nt. Отложенный вызов процедур.
- •Вопрос 48. История развития и общая характеристика семейства ос unix. Основные сведения о системе.
- •Вопрос 49. Архитектура ос unix. Ядро ос. Основные функции. Принципы взаимодействия с ядром.
- •Вопрос 50. Файловые системы unix.
- •Вопрос 51. Ос unix. Понятие процесса. Взаимодействие между процессами. Сигналы.
- •Вопрос 52. Ос unix. Основные функции. Системные операции.
- •Вопрос 53. Ос unix. Управление памятью. Виртуальная память. Принцип Деннинга. Структура виртуального адресного пространства.
- •Вопрос 54. Ос unix. Системные вызовы управления вводом-выводом.
- •Вопрос 55. Ос unix. Средства взаимодействия с пользователем.
- •Вопрос 56. Методы защиты информации в ос мсвс.
- •Вопрос 57. Ос unix. Существующие типы файлов.
- •Вопрос 58. Стандарты защищенности ос и адекватная политика безопасности.
- •Вопрос 59. Определение и основные особенности операционных систем реального времени.
- •Вопрос 60. Self/Hosted и Host/Target осрв. Основные характеристики. По способу разработки программного обеспечения:
Вопрос 54. Ос 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 дублирует дескриптор файла, она увеличивает значение счетчика в соответствующей записи таблицы файлов - записи, на которую указывают связанные с ней точки входа в таблице файловых дескрипторов, которых теперь стало на одну больше.