- •1) Технологии проектирования операционных систем (микроядерные, монолитные ос, технология клиент - сервер)
- •2) Объектно-ориентированный подход в проектировании операционных систем.
- •3) Основные принципы проектирования операционных систем
- •4) Модульное программирование ос. Привилегированные, непривилегированные, рентабельные модули.
- •5) Управление процессами в многозадачных средах. Контекст и дескриптор процесса.
- •Состояния процессов
- •6) Управление процессами в многозадачных средах.
- •7. Методы синхронизации параллельно выполняющихся процессов. Взаимные исключения. Семафоры
- •8. Методы синхронизации параллельно выполняющихся процессов. Блокирующие переменные. Мониторы Хоара.
- •9. Управление процессами в многозадачных средах.
- •10) Логическая организация файловой системы. Файлы прямого, последовательного доступа, индексные файлы.
- •11) Физическая организация файлов на диске.
- •13) Файловая система ext. Особенности ее реализации.
- •14 Типы файловых систем
- •15) Общая модель современной файловой системы.
- •16) Методы защиты данных в ос unix.
- •17) Странично-сегментное управление памятью.
- •18) Виртуальные ресурсы. Виртуальная память. Свопинг.
- •19) Обеспечение эффективности обработки данных. Иерархия зу. Кэширование. Буферизация данных.
- •20) Управление устройствами ввода/вывода.
- •Прерывания и способы их обработки
- •Драйверы устройств
- •21) Управление устройствами ввода/вывода. Спулинг.
- •22) Компиляторы. Лексический анализатор. Дескрипторный текст программы.
- •23) Компиляторы. Синтаксический анализатор. Методы построения синтаксического дерева вывода.
- •24) Компиляторы. Семантический анализатор. Генерация, оптимизация кода программы.
- •25) Распределение оп при выполнении программ.
9. Управление процессами в многозадачных средах.
Создание процессов и управление ими основополагающая задача в UNIX, которая позволяет:
1) создавать многозадачные приложения.
2)Поскольку порождаемый процесс выполняется в собственном Виртуальном Адресном Пространстве, успех или неудача его выполнения не влияют на родительский процесс.
3)Часто процессы создают порождаемые процессы, которые выполняют другие программы. Это позволяет писать программы, которые путем вызова других программ позволяют расширить функциональные возможности, не требуя ввода нового исходного кода.
Процессы в Unix создаются с помощью системного вызова
Системный вызов WAIT - Ожидание завершения процесса потока
Системный вызов задерживает вызвавший его процесс до поступления сигнала или завершения одного из порождаемых им процессов.
Системный вызов EXIT - Завершает процесс; Аргумент функции – код завершения процесса, при выполнении системного вызова выполняется очистка некоторой области памяти, например буферов ввода вывода.
Системный вызов EXEC заставляет вызываемый процесс изменить свой контекст и выполнить другую программу. Если вызов происходит успешно, процесс начинает выполнение новой программы.
Системный вызов KILL - используется для завершения выполняемых процессов.
Функция Pause - останавливает процесс до получения сигнала.
Системный вызов ALARM.
Может быть вызван, чтобы потребовать от ядра послать через определенное число секунд реального времени сигнал sigalarm.
Функция Nice изменяет приоритет процесса.
Системные вызовы ехес1, ехес1е, ехесv и ехесvе заменяют программу текущего процесса. Новая программа загружается из файла с именем namе, который либо является исполняемым, либо содержит интерпретируемую программу.
10) Логическая организация файловой системы. Файлы прямого, последовательного доступа, индексные файлы.
Файл – это 1)поименованная совокупность данных, хранящаяся на каком-либо носителе информации; 2) именованная область внутренней памяти, в которую можно записать и считывать данные. Файлы хранятся в памяти независимо от энергопитания.
Файловая система - это часть операционной системы, назначение которой состоит в том, чтобы обеспечить пользователю удобный интерфейс при работе с данными, хранящимися на диске, и обеспечить совместное использование файлов несколькими пользователями и процессами.
В широком смысле понятие "файловая система" включает: совокупность всех файлов на диске, наборы структур данных, используемых для управления файлами, комплекс системных программных средств, реализующих управление файлами, в частности: создание, уничтожение, чтение, запись, именование, поиск и другие операции над файлами.
Логическая организация файловой системы определяет как информация хранится внутри файла.
Данные, содержащиеся в файле, имеют некоторую логическую структуру. Существует 2 подхода к представлению данных в файле:
1) файл представляется неструктурированной последовательностью данных – последовательностью байт. Приложения формируют запросы с ФС на ввод/вывод, используя системные средства, указывая смещения от начала файла и количество байт, которое необходимо считать или записать(ОС семейства Unix, WinNT, Win2000).
2) Файл представляется структурированным набором данных. ФС видит файл как упорядоченную последовательность логических записей (ЛЗ).
ЛЗ является наименьшим элементом данных, которым может оперировать программист при организации обмена с внешними устройствами. ФС обеспечивает программисту доступ к отдельной записи. Используется 2 способа доступа к ЛЗ:
Последовательный доступ – последовательное считывание.
Прямой доступ – позиционирование указателя на конкретную запись. Соответственно и файлы называются последовательного и прямого доступа. Соответствующие им устройства называются устройствами последовательного и прямого доступа.
ФС поддерживает различные способы структуризации записей в файле:
1.)Представление данных в виде записей, длина которых фиксирована в пределах файла (доступ и последовательный и прямой). В этом случае доступ к n-й записи осуществляется либо путем последовательного чтения n-1 записей, либо прямо по адресу.
2.)Представление данных в виде записей, длина которых меняется в пределах файла – ЛЗ переменной длины (только последовательный доступ).
Файл прямого доступа – состоит из записей, доступ к кот возможен в произвольном порядке по номеру записи.
В реальной практике файлы хранятся на устройствах прямого (random) доступа, например на дисках, поэтому содержимое файла может быть разбросано по разным блокам диска, которые можно считывать в произвольном порядке. Причем номер блока однозначно определяется позицией внутри файла.
Естественно, что в этом случае для доступа к середине файла просмотр всего файла с самого начала не обязателен. Для специфицирования места, с которого надо начинать чтение, используются два способа: с начала или с текущей позиции, которую дает операция seek. Файл, байты которого могут быть считаны в произвольном порядке, называется файлом прямого доступа.
Последовательный файл – состоит из записей, доступ к кот осуществляется последовательно.
Поскольку записи, как правило, однобайтовые, файл представляет собой неструктурированную последовательность байтов. Для поиска конкретной записи необходимо прочесть файл от начала до этой записи.
Файлы с переменной длиной записи - индексные файлы. Они обеспечивают более быстрый доступ к ЛЗ. Индекс обычно хранится на том же устройстве, что и сам файл. Способы представления данных в индексном файле: 1.)использование ключевых(индексных) полей(1 или более) и могут адресоваться путем указания этих полей. 2.)использование индексных таблиц - указатели сводятся в одну таблицу. Для поиска записи вначале обращение к индексу, где находится указатель на нужную запись. 3.)использование специальных индексных файлов содержащих индексную таблицу. Адрес может указывать на искомую запись(адрес содержит № записи) или на отдельный блок данных (адрес содержит № блока). Во втором случае файл имеет индексно-поледовательную организацию: определяется № блока, а заетм запись в этом блоке, т.е. поиск включает два этапа: 1.прямой доступ по индексу в указанную область диска; 2. последовательный просмотр записей в указанной области.
