по теме изложенный конспективно.html
Работа добавлена на сайт samzan.net: 2016-01-17
Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
от 25%
Подписываем
договор
Реферат по разделу курса (Оценка не выше 4)
Реферат по разделу курса должен содержать обобщенный и переработанный материал по одной из тем учебного курса. В обязательном порядке в реферате должны быть:
- Лекционный материал по теме (изложенный конспективно).
- Иллюстрации (рисунки) из лекционного материала.
- Выдержки из учебной литературы, имеющейся в библиотеке.
- Обзор Интернет-источников с классификацией содержания (например, описание файловой системы, учебно-методические материалы других вузов, оценка производительности, история развития, сравнение с другими разработками (достоинства и недостатки), примеры программирования и описания структур данных), информация о системных программах и утилитах.
Информация по каждому источнику должна быть переработана и представлена сжато (0.5-2 стр.).
Темы рефератов:
- Основные понятия ОС: задание, задача, процесс, поток. Физический и логический параллелизм. Основные характеристики процесса и потока. Структура адресного пространства процесса: сегменты команд, данных, стек, куча, DLL, их свойства, режимы ядра (системы) и пользователя. Системные вызовы. Защита.
- Прерывание как обязательный элемент ОС. Обзор и классификация видов прерываний: внешние, синхронные (программные, исключения), вложенные, страничные, отложенные (DPC), на уровне среды программирования и процесса (ACP).
- Ядро ОС как система реального времени. Приоритеты компонент ядра (процесс, ACP, DPC, прерывания устройств). Синхронизация к структурам данных ядра и процесса (DPC и ACP).
- Стратегии управления процессором в ОС (обзор): круговая диспетчеризация, приоритетное планирование, плавающие приоритеты (структуры данных, алгоритмы).
- Синхронизация в ОС. Понятие синхронизации параллельных (асинхронных) процессов и потоков. 1. Синхронизация к общим данным и ресурсам. Критическая секция. Синхронизация прерываний (запрещение прерываний, DPC) Примеры ошибок синхронизации. 2. Синхронизация к событиям (результатам). Механизмы синхронизации в ядре ОС: ожидание событий на объектах, семафоры.
- Работа с процессами в ОС и различных системах программирования.
- Работа с потоками в ОС и различных системах программирования (Java)
- Виртуальное адресное пространство и его поддержка в ОС (Сегмент, файл подкачки, страница, загрузка по требованию, страничное прерывание).
- Страничное прерывание в ОС. (Аппаратно-программные средства отображения виртуального АП в физическое. Особенности страничного прерывания. Стратегии замещения страниц в памяти).
- Структуры данных и алгоритмы системы управления виртуальной памятью. (Аппаратно-программные средства отображения виртуального АП в физическое. БД (таблица) описания физических страниц. Диаграмма состояний физической страницы).
- Стратегии управления виртуальной памятью. (Рабочее множество (рабочий набор), алгоритмы его отслеживания, свопинг рабочих наборов). Явление «пробуксовки».
- Организация ввода-вывода по прерыванию в ОС с виртуальной памятью (на примере W2000. Основные компоненты и их функции: диспетчер в/в, драйвер, диспетчер процессов, DPC, APC. Структуры данных: объекты - драйвер, устройство, очередь запросов в/в, запрос в/в. Описание последовательности выполняемых действий компонентами ядра ОС).
- Обобщенная структура файловой системы: физический, базовый, логический и символьный. Сравнительный обзор файловых систем.
- Файловая система FAT.
- Файловая система UNIX
- Файловые системы CD-ROM и DVD.
- Файловая система NTFS
- Начальная загрузка операционной системы. Структуры данных файловых систем, используемые при начальной загрузке (FAT DOS, NTFS, UNIX)
- Структуры данных, используемые ядром ОС и файловыми системами (Обзор).
- Особенности «классического» Си как средства программирования ядра ОС (Примеры программного кода). ОС семейства UNIX (LINUX, freeBSD). Понятие мобильности ОС.
- ОС для мобильной телефонии. Системы программирования и загрузки программ в ОС мобильных телефонов.
- ОС реального времени (Обзор).
- Технология проектирования ОС. Монолитные ОС и ОС на основе микроядра. Способы реализации системных сервисов (процессы в режиме пользователя и ядра, драйверы). Использование DLL в ОС с виртуальной памятью. Объектно-ориентированный подход. Объекты ядра и их типы (классы). Синхронизация процессов на основе механизма ожидания событий на объектах.
В конце реферата должен быть приведен список ссылок на информационные источники (в пределах нескольких десятков). В тексте реферата обязательны ссылки на источники.
Программирование и моделирование элементов ОС
Моделирование файловой системы
Программа моделирует в двоичном файле файловую системы (работы может быть выполнена группой студентов, при разработке каждым из них своего уровня).
Физический уровень. Моделируется чтение/запись двоичного файла блоками по 512 байт (секторами). Реализуется:
- первичное планирование носителя (структура носителя), размещение основных компонентов
- управление свободной памятью (FAT-таблица, список секторов с номерами свободных блоков (UNIX), битовая карта, таблица extend-блоков переменной длины).
- управление размещением файла (FAT-таблица, многоуровневый массив указателей (UNIX), таблица extend-блоков переменной длины)
Базовый уровень. Индексный файл. Набор операций с файлом по его индексу (создать пустой файл, читать сектор по логическому номеру, добавить сектор, обновить сектор, читать файл целиком в динамическую память, запись всего файла из памяти).
Логический уровень. Создание системы каталогов. Преобразование путь индекс, создание и уничтожение каталога.
Символьный и пользовательский уровни. Команды форматирования, создания, уничтожения и просмотра каталога и файла, экспорт и импорт файла, информация о внутренней структуре файловой системы.
Моделирование структур данных операционных систем
- Каждый процесс имеет описатель, содержащий двухуровневый динамический массив указателей на связанные с ним объекты ОС (файлы, семафоры и т.п.). Объект идентифицируется 16-разрядным handle. Старший байт handle представляет собой смещение в массиве указателей верхнего уровня, младший байт нижнего. Свободные handle обозначены NULL-указателями. Функция связывания заданного объекта с процессом с выделением ему handle и функция освобождения объекта по заданному handle. Каждый объект имеет счетчик связей. Если объект ОС не имеет больше связей с процессами, то он уничтожается. main моделирует фиксированную последовательность установления и освобождения связей между объектами и процессами (и производит трассировку текущего состояния системы).
- Каждый процесс (поток) может ожидать событий от нескольких объектов одновременно. С каждым объектов может быть связано несколько ожидающих процессов. Смоделировать структуру связей «процессы-объекты» с использованием в каждом процессе динамического массива указателей на объекты и в каждом объекте динамического массива указателей на ожидающие процессы. Реализовать действия: установить ожидание процессом заданного события, смоделировать наступление события в объекте с деблокированием связанных процессов, для которых это событие единственное (последнее).
- Задание аналогичное предыдущему, каждый процесс содержит заголовок списка объектов, на которых он ожидает событие, каждый объект содержит список ожидающих процессов. Факт «процесс ожидает событие» реализован элементом, имеющим 4 указателя и включенным одновременно в список процесса и в список объекта.
- Описатель потока (процесса) представляет собой элемент односвязного списка, содержащего базовый и максимальный приоритеты (в диапазоне 0-255). Диспетчер поддерживает 256 приоритетных очередей (массив указателей на списки процессов). Модель поддерживает также список блокированных (ожидающих) процессов. Каждый процесс имеет две случайные характеристики: количество квантов работы и количество квантов блокировки. Диспетчер моделирует поведение процессов и собственный алгоритм. Если время блокировки процесса истекло, то диспетчер извлекает описатель процесса из очереди ожидающих и помещает его в конец очереди в соответствии с его максимальным приоритетом. Затем ищет очередь с максимальным приоритетом, выбирает из нее первый описатель и «выполняет процесс», после чего переносит его в очередь с более низким приоритетом, если его текущий приоритет выше базового. Если количество квантов работы процесса истекло, он переносится в список блокированных, и для него устанавливаются новые случайные значения квантов.
- Задание аналогичное предыдущему, но диспетчер поддерживает единственную общую очередь всех процессов - двусвязный список, из которого извлекается первый процесс с максимальным приоритетом.
- Драйвер устройства содержит таблицу функций (в том числе, инициализация ввода-вывода и обработки прерывания ввода-вывода) и заголовок очереди запросов ввода-вывода. Функция инициализации ввода-вывода устанавливает случайное значение времени работы устройства. main моделирует появление операции ввода-вывода и формирует случайный интервал времени до следующей операции. Диспетчер ввода-вывода создает запрос ввода-вывода и помещает его в очередь драйвера, если она была пуста, вызывает функцию инициализации ввода-вывода в драйвере. Обработчик прерывания в драйвере вызывает функцию завершения ввода-вывода в диспетчере. Диспетчер удаляет запрос из очереди, и, если она не пуста, вызывает функцию инициализации для следующего запроса.
- Модель древовидной структуры именованных объектов в памяти. Базовый класс объектов содержит имя объекта и ссылки в списке. Производный класс объектов каталогов содержит заголовок списка включенных в него объектов, а также указатель на каталог-предок. Имеются также производные классы объектов процессы, файлы, семафоры и т.д.. Разработать редактор дерева объектов и функцию поиска объекта по спецификации <имя>/<имя>/<имя>.
- Задание аналогичное предыдущему, но объект-каталог использует динамический массив указателей на объекты, включенные в каталог.
Моделирование процессов и обработка прерываний в DOS
При решении задач, связанных с обработкой прерывания необходимо разрешить проблемы, связанные с синхронизацией доступа к общим данным. В частности, нужно использовать функции enable() и disable() для разрешения и запрещения прерывания процессора. Используются средства обработки прерываний при программировании в DOS на Borland C 3.1. Для моделирования потока прерываний можно использовать прерывания от таймера, а основной процесс (main) приостанавливать на случайный интервал времени.
- Очередь отложенных прерываний реализована в виде односвязного списка. Заголовок списка представляет собой два указателя на первый и последний элементы. Элемент списка содержит указатель на «отложенную» функцию, которую следует выполнить по завершении прерывания на низком приоритете (при разрешенном прерываний). Функция генерации отложенного прерывания создает элемент списка, помещает в него указатель и ставит его в очередь. Если очередь была пуста, то входит в режим обслуживания очереди прерываний на низком приоритете (при разрешенном прерывании). Поведение системы рассмотреть на основе источника отложенных прерываний таймера, а в сами функции отложенного прерывания внести случайную программную задержку.
- Ввод по прерыванию с буферизацией. Имеется список свободных буферов (элементов списка). По прерыванию от таймера генерируется очередное случайное число и записывается в массив (сам массив находится в элементе списка). При заполнении массива буфер помещается в очередь накопленных данных. main производит периодический опрос очереди (используя случайную задержку функция delay) , выводит полученные данные и освобождает буфер.
- Модель процессов в DOS функции, запускаемые событиями. Система поддерживает список: элемент списка содержит указатель на запускаемую функцию, ее фактические параметры и значение задержки перед запуском. Опрос клавиатуры и мыши приводят к планированию фиксированных функций. С помощью модели реализовать игровую интерактивную программу. Функция может также рассылать сообщение всем стоящим в очереди функциям.
- Модель процессов классы, обрабатывающие сообщения. Базовый класс программных объектов, обрабатывающих сообщения имеет статический список, в который они включаются конструктором и исключаются деструктором, а также виртуальную функцию обслуживания сообщений и функцию послать сообщение. Класс сообщений содержит указатель на элемент в списке сообщений и ряд параметров, в том числе код класс источник сообщения. Класс «программа» поддерживает очередь сообщений и имеет доступ к очереди объектов. Метод run опрашивает таймер, клавиатуру и мышь и генерирует сообщения от них. Полученные сообщения «пропускает» через все программные объекты. Объект, принимающий сообщение, сообщает об этом, после чего обработка сообщения прекращается. С помощью модели реализовать игровую интерактивную программу.