Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
219
Добавлен:
02.05.2014
Размер:
2.83 Mб
Скачать

2. Основные задачи ос

Архитектура любой современной ОС включает в себя множество не относящихся к ее функциональности составляющих: файловые менеджеры, оболочки, различные утилиты; при этом на разных ОС не могут работать одни и те же программы, хотя некоторые программы есть в версиях для разных ОС, но это не меняет дела, в то время как в принципе основная задача ОС распределение аппаратных ресурсов между рабочими приложениями. В результате мы выбираем ОС не по качествам ядра, что собственно является основной характеристикой ОС, а по набору работающих под ней приложений. При чём, абсолютно отсутствует конкуренция и развитие (ОС включает в себя все больше и больше новых компонентов, в то время как в других областях программной индустрии развитие весьма ощутимо) в этой области и практически нет никакой возможности для появления абсолютно новой ОС с применением искусственного интеллекта, нейро-сетей и тому подобных разработок.

Разница в производительности определяется в основном аппаратным обеспечением, а не ОС. ОС это единицы процентов, а это не стоит обсуждения. ОС определяет стабильность. Но, не смотря на все различия между ОС, остаётся общая концепция и общие функции.

Концептуальные основы построения ОС:

  1. Базовые функции и понятия ОС (процесс, процессор, ресурс):

  • Определение и классификация ресурсов:

  • Определение процесса, состояния процесса, классификация процессов;

  • Мультипрограммирование и многозадачность, понятие потока;

  • Средства ОС для управления процессами и потоками.

  1. Параллельность и проблема синхронизации (примеры):

  • Проблема взаимного исключения и критические секции;

  • Определение и свойства;

  • Программная реализация взаимного исключения, алгоритм Деккера:

  • Синхронизация с помощью семафоров (определение и свойства семафоров, семафорные примитивы, примеры использования);

  • Мониторы как средство синхронизации процессов;

  • Проблема тупиков;

  • Определение тупика;

  • Задачи, связанные с решением проблемы тупика (предотвращение, обходы тупиков, распознавание тупика, вывод системы из тупика и восстановление работоспособности системы);

  • Модель системы для исследования проблемы тупиков;

  • Необходимые условия возникновения тупика в системе и методы предотвращения тупиков;

  • Методы распознавания тупиков в системах с повторно используемыми и потребляемыми ресурсами;

  • Реализация обходов тупиков;

  • Вывод системы из тупика и восстановление;

  1. Управление данными:

  • Понятие файла, логическая и физическая организация данных;

  • Функция управления данными в ОС (основные задачи, решаемые при реализации файловой системы) и структура подсистемы управления данными ОС;

  • Представление файлов, именование;

  • Основные операции над файлами, выполняемые по запросу (создание/уничтожение файла; открытие/закрытие файла; переименование, копирование, переписывание и т.д.);

  • Логическая организация файлов: последовательные файлы, файлы прямого доступа (индексные и индексно-последовательные файлы), библиотеки;

  • Функции, выполняемые автоматически;

  • Перемещение файлов между уровнями внешней памяти;

  • Динамическое распределение внешней памяти и размещение данных (непрерывное распределение, разрывные распределения (организация цепочек блоков, списков индексов, использование карт памяти)); 

  • Организация системы файлов (хранение информации о наличии и размещении данных во внешней памяти, иерархическая структура справочников, каталоги и директории, их организация);

  • Управление доступом к внешним устройствам;

  • Управление вводом/выводом;

  • Управление внешними устройствами: особенности работы с ВУ, каналы, адаптеры, контроллеры; буферизация и блокирование, двойная буферизация;

  • драйверы внешних устройств: назначение, принципы построения.

  • Две точки зрения:

  • Пользователя - предоставление пользователю программисту удобной в работе виртуальной ЭВМ (особенно важно поддержка операций ввода/вывода);

  • Использование вычислительной системы - эффективное распределение разнообразных ресурсов (процессоров, многоуровневой оперативной памяти, коммуникационного оборудования, внешних и других устройств, а также данных) между процессами, конкурирующими за эти ресурсы.

  •  Две основных задачи распределения ресурсов:

  • Планирование ресурса (кому, когда, сколько);

  • Контроль состояния ресурса (занят или нет, сколько имеется).