- •Раздел 1. Операционная система unix. Введение в операционную систему unix
- •Отличительные черты ос unix
- •Основы архитектуры операционной системы unix Модель системы unix.
- •Структура ядра ос unix.
- •Основы файловой системы ос unix
- •Типы файлов
- •Структура файловой системы unix
- •Владельцы файлов
- •Права доступа к файлу
- •Дополнительные атрибуты файлов
- •Устройства
- •Маска создания файла
- •Программы Oc unix
- •Процессы ос unix
- •Типы процессов
- •Атрибуты процесса
- •Процесс создания и запуска программ
- •Системный вызов завершения процесса exit
- •Системные функции типа exec
- •Обработка ошибок
- •Ограничения для процессов
- •Пользователи системы, Атрибуты пользователя
- •Средства ВзаимодействиЯ между процессАми
- •Сигналы
- •Посылка сигналов.
- •Int raise (int sig); // посылает сигнал вызывающему процессу (т.Е. Самому себе).
- •Обработка сигналов.
- •Набор сигналов.
- •Файловая подсистема ос unix
- •Индексный дескриптор
- •Блоки хранения данных
- •Недостатки и ограничения файловой системы s5fs
- •Файловая система ffs (Fast File System)
- •Основные отличия ffs от s5fs
- •Ограничения ffs
- •Каталоги ffs
- •Раздел 2. Взаимодействие процессов. Процесс, Понятие и классификация
- •Ресурсы, Понятие и классификация
- •Взаимодействие процессов Задача взаимного исключения
- •Integer очередь;
- •ОБобщенная задача взаимного исключения
- •Integer очередь;
- •Синхронизирующие примитивы (семафоры)
- •Процесс 1 :
- •Процесс 2 :
- •V(свободно);
- •Задача “производитель-потребитель” применение ОбщиХ семафорОв
- •Задача “производитель-потребитель” (буфер ограниченНый)
- •Взаимодействие через переменные состояния
- •Integer array желание[1:n], сп[1:n];
- •Integer чпб, бб, рб, чсеб, I;
- •Integer разм_п, n, max, nmax;
- •Проблема тупиков
- •Алгоритм банкира
- •Integer Св_Деньги; boolean Безопасно;
- •If ((Завершение_под_сомнением [I]) and
- •Применение алгоритма банкира
- •V(Взаимн_искл);
- •V(Возвращенные_Талеры[Номер_Клиента[m]]);
- •If (Попытка_выдать_талер_клиенту(h))
- •Монитороподобные средства синхронизации
- •Механизм типа «критическая область»
- •Механизм типа «условная критическая область»
- •Var s : semaphore; считывание : boolean; m : t;
- •Раздел 3. Вычислительные структуры. Машины, управляемые контроллерами (устройствами управления)
- •Усовершенствованная структура вычислительной машины, управляемой контроллерОм
- •Системы с операционным конвейером
- •Мультипроцессорные системы
- •Транспьютеры
- •Распределение памяти в транспьютерах
- •Диспетчеризация процессов
- •Организация ВводА / выводА в транспьютере.
- •Гарвардская архитектура на примере процессоров семейства adsp
Транспьютеры
Ориентированы на многопроцессорные многопроцессные системы.
Производительность вычислительных систем определяется:
Быстротой переключения вентилей.
Расстоянием между устройствами.
В транспьютерах, главный упор делался на развитие второго условия.
Транспьютер – микрокомпьютер с собственной внутренней памятью и линками (каналами) для соединения с другими транспьютерами.
Транспьютеры стали первой промышленной разработкой, ориентированной на массово – параллельные системы.
Основоположник – фирма Inmos, которая произвела разработку такой аппаратно- программной системы.
Первый транспьютер – IMS T414 имел следующую структуру:
Подробная структура транспьютера Т800.
Система команд ориентирована на поддержку языка высоко уровня Okkam язык параллельных программ.
Программа на Okkam представляет собой совокупность асинхронных, совместно протекающих и взаимодействующих процессов. Под процессом понимается ход исполнения программы или её фрагмента. Взаимодействие между процессами реализуется путём обмена данными по принципу “рандеву” (через канал).
Данная модель вычислений поддерживается аппаратным диспетчером, обеспечивающим выполнение параллельных процессов в режиме квантования времени. Количество одновременно выполняющихся процессов не ограничено.
Мультипроцессорная система на базе транспьютеров представляет собой совокупность транспьютеров, соединённых линиями связи. Одинаковая модель параллельных вычислений поддерживается как внутри отдельного транспьютера, так и в рамках мультипроцессорной системы => программа, написанная на для мультипроцессорной системы может быть отлажена на одном транспьютере. Исключение составляет ограничение числа каналов связи процесса с процессами, протекающими на других транспьютерах.
Центральный процессор
Центральный 32-разрядный процессор работает на частоте до 30 МГц. Аппаратный планировщик CPU организует в режиме разделения времени одновременное выполнение нескольких процессов.
Каждому процессу в момент его создания в адресном пространстве транспьютера выделяется выровненная на границе слова рабочая область памяти и устанавливается приоритет. Реализована двухуровневая система приоритетов: 0 высокий приоритет, 1 низкий приоритет. Адрес рабочей области и приоритет образуют дескриптор процесса.
Центральный процессор содержит два регистра таймера: для высокоприоритетных и низкоприоритетных процессов. Высокоприоритетный регистр инкрементируется каждую мкс, а низкоприоритетный каждые 64 мкс.
Регистр W указывает на рабочую область процесса, а регистр команды I содержит адрес следующей выполняемой команды.
Регистры общего назначения A, B, C образуют регистровый стек с дисциплиной доступа LIFO
АЛУ выполняет логические и арифметические команды над операндами, содержащимися в регистровом стеке. Операнды загружаются в стек через регистр А, но при этом происходит смещение A B, а B C. Результаты операций также формируются в регистре А, при этом содержимое регистра С B.
Все команды транспьютера однобайтовые и выполняются за один такт. Старшие 4 бита команды код команды, младшие 4 формирование операнда или кода команды в регистре операндов.
Операции, реализуемые командами транспьютера разделяются на первичные и вторичные. К первичным относятся 13 наиболее употребимых команд: сложение, безусловный переход и т.д., реализованных непосредственно, а ещё три команды используются для реализации вторичных операций, коды которых формируются в регистре О, а операнды содержатся в регистрах.
Выполнение операций с плавающей точкой, распознавание команд и передача их на выполнение осуществляется аппаратно в CPU, там же выполняется вычисление адресов операндов и загрузка их в FPU, который также содержит три регистра A, B, C. Команды с плавающей точкой подразделяются на два класса:
полностью самостоятельная, никак не влияющая на состояние процессора команда;
команда, пересылающая результаты в процессор.
После передачи команды на исполнение в FPU процессор продолжает выполнение потока команд, если команда относится к первому классу или ожидает результат выполнения, если команда относится ко второму классу.