- •Конспект по курсу лекций Операционные системы
- •Структура вычислительной системы
- •Аппаратный уровень вычислительной системы
- •Системы программирования
- •Модель организации прерываний с использованием регистра «слово состояние процессора»
- •3.6.1.1 Устройство последовательного доступа
- •Организация управления внешними устройствами
- •Иерархия памяти
- •Аппаратная поддержка ос и систем программирования
- •Некоторые проблемы
- •1. Вложенные обращения к подпрограммам
- •2. Накладные расходы при смене обрабатываемой программы:
- •4. Фрагментация памяти
- •4.2.1 Регистровые окна ( register window )
- •Системный стек
- •Виртуальная память.
- •Базирование адресов.
- •Страничная память.
- •Многомашинные, многопроцессорные ассоциации.
- •Терминальные комплексы
- •Компьютерные сети.
- •Семейство протоколов tcp/ip
- •Ip адрес представляется последовательностью четырех байтов. В адресе кодируется уникальный номер сети, а также номер компьютера (сетевого устройства в сети).
- •Транспортный уровень
- •Уровень прикладных программ
- •Сетевые, распределенные ос
- •Операционные системы Основные понятия
- •Структура ос.
- •Модельная ос
- •Жизненный цикл процесса
- •Типы операционных систем
- •Системы разделения времени
- •Управление внешними устройствами. Архитектура.
- •Программное управление внешними устройствами
- •Буферизация обмена
- •Планирование дисковых обменов
- •Raid системы.
- •Файлы устройств, драйверы
- •Управление оперативной памятью
- •Двухуровневая организация
- •Структурная организация файлов
- •Атрибуты файла
- •Типовые программные интерфейсы работы с файлами
- •Подходы в практической реализации файловой системы Структура «системного» диска
- •Модели реализации файлов Непрерывные файлы
- •Файлы, имеющие организацию связанного списка.
- •Индексные узлы (дескрипторы)
- •Модели организации каталогов
- •Варианты соответствия: имя файла – содержимое файла
- •Координация использования пространства внешней памяти
- •Учет свободных блоков файловой системы Связный список свободных блоков
- •Использование битового массива
- •Организация фс Unix
- •Логическая структура каталогов
- •Внутренняя организация фс Модель версии System V Структура фс
- •Работа с массивами номеров свободных блоков
- •Работа с массивом свободных ид
- •Индексные дескрипторы
- •Адресация блоков файла
- •Файл каталог
- •Установление связей
- •Недостатки фс модели версии System V
- •Модель версии ffs bsd
- •Стратегии размещения
- •Внутренняя организация блоков
- •Структура каталога ffs
- •Понятие «процесс».
- •Процессы в ос Unix Системно-ориентированное определение процесса
- •Базовые средства организации и управления процессами
- •Семейство системных вызовов exec()
- •Использование схемы fork-exec
- •Формирование процессов 0 и 1
- •. Планирование Основные задачи планирования
- •Планирование очереди процессов на начало обработки
- •Кванты постоянной длины.
- •Кванты переменной длины
- •Класс подходов, использующих линейно возрастающий приоритет.
- •Разновидности круговорота.
- •Смешанные алгоритмы планирования
- •Планирование в системах реального времени
- •Общие критерии для сравнения алгоритмов планирования
- •Планирование в ос unix
- •Планирование в Windows nt.
- •Планирование свопинга в ос Unix
- •Взаимодействие процессов: синхронизация, тупики Параллельные процессы
- •Проблемы организации взаимного исключения
- •Тупики (deadlocks)
- •Способы реализации взаимного исключения
- •Семафоры Дейкстры
- •Мониторы
- •Обмен сообщениями
- •Классические задачи синхронизации процессов
- •Задача «читателей и писателей»
- •Задача о «спящем парикмахере»
- •Реализация взаимодействия процессов
- •Сигналы
- •Системный вызов kill()
- •Системный вызов signal()
- •Пример 1.
- •Пример 2.
- •5 Пример. Программа “Будильник”.
- •Пример. Двухпроцессный вариант программы “Будильник”.
- •Пример. Использование канала.
- •Пример. Схема взаимодействия процессов с использованием канала.
- •Пример. Реализация конвейера.
- •Пример. Совместное использование сигналов и каналов – «пинг-понг».
- •Именованные каналы. Особенность именованных каналов в ос Unix.
- •Пример. «Клиент-сервер».
- •Межпроцессное взаимодействие, проводимое по модели «главный-подчинённый».
- •Системный вызов ptrace()
- •Общая схема трассировки процессов
- •Пример. Использование трассировки.
- •Система межпроцессного взаимодействия ipc.
- •Очередь сообщений
- •Системный вызов msgget()
- •Функция msgsnd()
- •Функция msgrcv()
- •Функция msgctl()
- •Пример. Использование очереди сообщений.
- •Пример. Очередь сообщений. Модель «клиент-сервер».
- •Разделяемая память.
- •Пример. Работа с общей памятью в рамках одного процесса.
- •Семафоры
- •Пример. Использование разделяемой памяти и семафоров.
- •1Й процесс:
- •2Й процесс:
- •Механизм сокетов
- •Типы сокетов.
- •Функция создания сокета
- •Запрос на соединение
- •Прослушивание сокета
- •Подтверждение соединения
- •Прием и передача данных
- •Закрытие сокета
- •Пример. Работа с локальными сокетами
- •Пример работы с сокетами в рамках сети.
Многомашинные, многопроцессорные ассоциации.
А теперь вернемся немного назад и рассмотрим основы взаимодействия в сети. Время одпроцессорных компьютеров потихоньку уходит. То есть те компьютеры, которые мы относим к категории однопроцессорных, на самом деле являются многопроцессорными. Помимо ЦП имеется много других элементов, которые выполняют те или иные специальные функции.(обработка видео, графическая и т.д.) Идеально однопроцессорная система сходит на нет. Для работы с современными прикладными задачами требуется либо наличие нескольких компьютеров, либо многопроцессорная архитектура.
Причины:
1) Мы живем в информационном обществе – интернет как сфера общения между людьми. Необходимо получать информацию извне.
2)Появления спектра задач, для решения которых не возможно применять подходы, которые применялись для однопроцессорных систем, или их сложность не позволяет решать их на одном процессоре, следовательно требуется параллельная архитектура
Существует много различных подходов классификации. Но не существует адекватной по состоянию на сегодняшний день классификации.
Поговорим о классификациях Флинна.
Есть поток управляющей информации – собственно команд (инструкций), и поток данных. Считаем потоки данных и команд независимыми (условно). Рассмотрим все возможные комбинации:
ОКОД (SISD – single instruction (одиночный поток команд), single data stream, (одиночный поток данных)) Традиционные компьютеры, которые мы называем однопроцессорными. То есть для каждой команды одиночные порции операндов, которые будут обрабатываться. . Пример – классическая машина по Фон - Нейману.
ОКМД(SIMD – single instruction(одиночный поток команд), multiple data stream(множественный поток данных)) Для каждой команды порция данных (векторная или матричная обработка данных)
Можно разделить на две группы:
массивно – параллельные процессоры (существует набор процессоров, работающих одинаково с данными, например на всех выполняется сложение)
векторные процессоры (работают с данными как с вектором)
МКОД (MISD – multiple instruction(множественный поток команд), single data stream(одиночный поток данных)) – это вырожденная категория, считается, что ее нет. Т Т.о. эта категория пока не охваченная, и не понятно, как ее можно охватить, хотя есть интерпретации и этой категории, например, к ней иногда относят всякого рода параллельные специализированные графические системы, которые занимаются, предположим, распознаванием, то есть когда над одной порцией данных одновременно используются разные команды.
МКМД (MIMD - multiple instruction(множественный поток команд), multiple data stream(множественный поток данных)) Многомашинная осоциация.Некоторое количество процессорных элементов, каждый из которых обрабатывает свои данные.
MIMD - >=2 процессоров, имеющих свои устройства управления, каждый из которых может выполнить свою программу.
Системы с общей оперативной памятью Для всех процессорных элементов имеется общая оперативная память. Исполняемая программа берется из единого пространства, куда имеет доступ все процессоры. Любое слово памяти читается одновременно несколькими процессорами, следовательно необходима синхронизация чтения и записи.
С ростом числа процесоров рост производительности замедляется. И начиная с некоторого количества увеличивать число процессоров нет смысла.
UMA Каждый из процессорных элементов, входящих В систему имеет равные возможности и скорость доступа в ОП.
SMP Настроена на параллелизм. Имеют ограничения от аппаратной и от программной реализации – начиная с некоторого количества элементов возникают проблемы с синхронизацией.
NUMA Каждый процессорный элемент имеет локальную память (с быстрым к ней доступом) и нелокальную (долгий по времени доступ).Обеспечивается досткп ко всей ОП, но куда-то быстрее, куда-то медленнее. Формат данных не унифицирован.
Системы с распределенной оперативной памятью есть >= 2 процессорных элемента, каждый из которых имеет свою локальную оперативную память, к которой не имеет доступ другие процессоры.
COW Наиболее популярна на сегодняшний день многомашинная система, которая объединяет специальной быстрой сетью и предназначена для решения на этом комплексе тех или иных прикладных задач.
MPP Промышленное развитие кластеров.Используются спец. Средства коммуникации, более дорогиие и более специализированные.
Гетерогенные – системы объединяющие кластеры разных мощностей. Преимущества кластеров: 1) относительная дешевизна; 2) способность к расширению, увеличению мощностей.
Основная проблема высокопроизводительнах ЭВМ- отвод тепла. Сначала воздух, потом вода, потом энертные газы.
