- •История возникновения и развития ос
- •Основные версии unix.
- •Основные версии ос Windows
- •Установка unix-подобной ос Краткие сведения по установке Unix-подобных систем (на примере FreeBsd)
- •Установка ос Windows.
- •Ядро и вспомогательные модули ос
- •Ядро в привилегированном режиме
- •Микроядерная архитектура
- •Многослойная структура ос
- •Физическая память и виртуальное адресное пространство.
- •Виртуальное адресное пространство процесса
- •9.Способы доступа к памяти в защищенном режиме.
- •10. Многозадачность ос
- •11. Динамически подключаемая библиоте
- •Формат файлов dll придерживается тех же соглашений, что и формат исполняемых файлов, сочетая код, таблицы и ресурсы, отличаясь лишь интерпретацией некоторых полей. Цели введения
- •12) Файловая подсистема ос.
- •13) Типы файлов.
- •14) Блочные и символьные устройства
- •15) Файлы, проецируемые в память
- •16) Сокеты
- •17) Корневой каталог.
- •18) Права доступа к файлам в ос.
- •Возможные действия над файлом
- •Указание прав доступа с помощью буквенной нотации
- •Указание прав доступа с помощью числовой нотации
- •19. Системные процессы ос.
- •20. Прикладные процессы ос
- •21. Взаимодействие между процессами.
- •22. Сигналы межпроцессного взаимодействия
- •23. Алармымежпроцессного взаимодействия.
- •24. Каналы fifOмежпроцессного взаимодействия.
- •25. Сообщения межпроцессного взаимодействия.
- •Семафоры межпроцессорного взаимодействия. Семафоры
- •Командный интерпретатор ос.
- •Программирования на языке командного интерпретатора ос.
- •Команда в общем виде:
- •Цикл for
- •Операторы цикла while и until
- •Переменные в скриптах командного интерпретатора ос.
- •Перенаправление ввода/вывода командного интерпретатора ос.
- •Команды more и sort
- •Ветвления в скриптах командного интерпретатора ос. Оператор выбора
- •Условный оператор
- •Циклы в скриптах командного интерпретатора ос.
- •Цикл for
- •Операторы цикла while и until
- •33. Настройка локальной сети.
- •34. Протоколы tcp/ip сети.
- •35. Служба доменных имен.
- •36.Сетевая файловая система.
- •37. Методы управления локальной сетью.
- •38. Методы настройки служб ос.
- •39. Методы управления учетными записями пользователей ос.
- •Сервис печати ос.
- •Методы повышения отказоустойчивости ос.
- •Методы диагностики процесса загрузки ос.
- •Методы диагностики текущего состояния ос.
- •Актуальность защиты операционной системы.
- •Виды атак на ос.
- •Способы защиты ос от типовых атак.
24. Каналы fifOмежпроцессного взаимодействия.
Канал — поток данных между двумя или несколькими процессами, имеющий интерфейс, аналогичный чтению или записи в файл. Каналы бывают одно- и двунаправленными. В UNIX каналы, как и многие другие системные объекты, представлены в виде файлов, вся работа с ними производится через базовый файловый интерфейс — открытие и закрытие файла, чтение и запись данных и т. п. В этом смысле каналы можно представлять в виде специализированных файлов, которые не хранят информацию, а лишь накапливают её до следующей операции чтения из канала другим процессом, образуя очередь.
По умолчанию в UNIX каждому процессу при запуске ставится в соответствие три открытых файла: стандартного ввода, стандартного вывода и стандартного вывода для ошибок. С помощью средств командной строки такие потоки для разных процессов могут быть объединены так, что, к примеру, вывод одного процесса будет подаваться на ввод другого. То есть процесс работает с тремя потоками данных одинаково вне зависимости от того, обычные это файлы или же кананлы. В более общем смысле такие потоки называют неименованными каналами. Канал создаётся по запросу и существует только в ходе работы двух процессов, другие процессы в системе не могут обратиться к этому каналу. Если процесс на одной из сторон канала завершается и закрывает канал, другому процессу посылается специальный сигнал — SIGPIPE.
Другой вид каналов в UNIX — именованные каналы — представляют собой особый тип файлов. Эти файлы располагаются в файловой системе и могут быть открыты любым процессом. Одни процессы записывают данные в канал, другие — читают из него, данные продвигаются по каналу в порядке очереди (FIFO).
Каналы широко используются в UNIX, как при запуске программ в командной строке, так и при взаимодействии системных процессов. Главное достоинство каналов — простота и удобство использования привычного файлового интерфейса. С другой стороны, данные в каналах передаются в одном направлении и последовательно, что ограничивает сферу применения каналов.
Вызов POSIX — pipe().
25. Сообщения межпроцессного взаимодействия.
Для решения проблемы согласованности процессов при передаче информации, существуют специальные механизмы обмена данными, основанные на мьютексах. Это системные вызовы send() и recieve(). Первый посылает сообщение заданному адресату, второй получает сообщение от указанного источника. Если сообщения нет, второй запрос блокируется до поступления сообщения либо немедленно возвращает код ошибки.
Семафоры межпроцессорного взаимодействия. Семафоры
Семафоры, собственно говоря, не являются средством передачи данных. Они выполняют в межпроцессорном взаимодействии вспомогательную роль и служат для организации одновременного использования разделяемых данных несколькими процессами. Если два процесса читают один набор данных и выполнение процессов — последовательное, то это, очевидно, не создает проблем. Если же два процесса пытаются изменить один и тот же набор данных, то результат уже будет зависеть от того, в какой последовательности выполняется считывание и запись этих данных. Для управления такими процессами и вводятся семафоры.
В простейшем случае семафор представляет собой просто счетчик, содержащий 0 или единицу. Значение счетчика, равное 1, означает доступность соответствующего ресурса (например, файла или страницы виртуальной памяти). Если же в счетчике 0, значит, ресурс занят, и операция недопустима.
В общем случае семафор представляет собой не один счетчик, а группу из нескольких счетчиков, причем каждый счетчик может принимать не только значения 0 и 1, а любое значение из определенного интервала. Чаще всего число в семафоре представляет собой количество процессов, которые могут получить доступ к данным. Каждый раз, когда процесс обращается к данным, значение в семафоре, должно быть уменьшено на единицу, и увеличено, когда работа с данными будет прекращена. Семафоры можно использовать и для других целей, например, для счётчика ресурсов. В этом случае число в семафоре — количество свободных ресурсов (например, количество свободных ячеек памяти).
Семафоры должны быть доступны различным процессам, поэтому они размещаются в адресном пространстве ядра и операции с ними осуществляются через интерфейс системных вызовов.
Семафоры - низкоуровневые средства для синхронизации процессов к разделяемым ресурсам.Использование семафоров осуществляется вручную программистом с помощью системных вызовов. После использования семафоров их необходимо удалять. При работе любой ОС происходит борьба за ресурсы между процессами. Но есть ресурсы, которые могут быть только один процесс в единицу времени, а семафоры являются средством, которое позволяет управлять такого рода критичными ресурсами. Т.е., другими словами, семафоры являются средством задержки процессов, которые «засыпают на светофорах» и приходят в движение (т.е. пробуждаются), когда семафор освобождается.
