- •Раздел 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
Распределение памяти в транспьютерах
Может быть адресовано до 232=4 Гб памяти. Адресация начинается с отрицательного адреса 8000:0000 (доп. код). Структурно конструктивно вся оперативная память подразделяется на внутрикристальную и внешнюю. Объём внутрикристальной равен 2 или 4 Кб. Внешняя и внутренняя памяти равнодоступны и имеют единую адресацию. Внутрикристальная память находится в младших адресах, а внешнекристальная – в старших. Во внутрикристальную память обычно помещают наиболее часто используемые подпрограммы, т.к. время выборки значительно меньше.
Несколько слов в младших адресах используется для специальных целей для слов состояния аппаратных каналов (линков), блока событий, регистров таймера рабочих областей памяти диспетчера.
Диспетчеризация процессов
Каждый из процессов в каждый момент времени может быть:
Выполняемым
Активным (готовым к выполнению в очереди соответствующего приоритета)
Ожидающим сигнала таймера (т.е. находится в очереди таймера соответствующего приоритета)
Ожидающим ввода/вывода
Для выполняющегося процесса регистр I содержит адрес следующей выполняемой команды, а регистр W его дескриптор. Для организации очереди процессов на выполнение в диспетчере используется две пары регистров, указывающих на начало и конец очереди высоко и низко приоритетных процессов:
Fptr0 Bptr0
Fptr1 Bptr1
В качестве элементов очередей процесса используются их рабочие области процессов, содержащие помимо данных процессов управляющую информацию, требуемую для сохранения и восстановления состояния процессов в процессе диспетчеризации, в том числе содержится указатель на рабочую область следующего процесса в очереди.
Низкоприоритетные процессы выполняются не менее 32-х периодов низкоприоритетного таймера, после чего процесс, если он не завершился, помещается в конец очереди активных низкоприоритетных процессов, а диспетчер планирует выполнение следующего процесса. Сначала просматривается очередь высокоприоритетных процессов, а затем низкоприоритетных.
Высокоприоритетные процессы выполняются до тех пор, пока ему это возможно. Количество циклов таймера для высокоприоритетных процессов не ограничено. Выполняется или до завершения или до ситуации ожидания ввода/вывода, ожидания сигнала таймера или сигнала внешнего события, выдаваемого блоком события. Если выполняется низкоприоритетный процесс и в ходе его выполнения какой-то из высокоприоритетных процессов становится активным, то низкоприоритетный процесс приостанавливается. Его состояние сохраняется в области зарезервированных адресов памяти транспьютера и начинается выполнение ставшего активным высокоприоритетного процесса. После завершения выполнения высокоприоритетного процесса, возобновляется выполнение низкоприоритетного процесса.
Организация ВводА / выводА в транспьютере.
Ввод/вывод для процессов в транспьютере организуется одинаково как при использовании внешних обменов между процессами на разных транспьютерах – аппаратных линков, так и при использовании виртуальных линков (обмен между процессами одного транспьютера).
В обмене участвуют только два процесса: один выводит данные, а другой вводит. В момент описания канала и после завершения канальной операции словосостояние канала инициализируется специальной константой MinInt.
Процесс, который первым выполняет обмен, приостанавливается, и проверяет словосостояние канала. Если оно равно MinInt, то значит, процесс первым подошел к процедуре обмена и далее процесс заносит в слово состояния канала дескриптор процесса, а в рабочую область процесса помещается значение регистра W и адрес передаваемых данных, после чего управление передаётся диспетчеру процесса.
Если при проверке окажется, что содержимое слова состояния канала не равно MinInt, то это значит, что процесс подошёл к операции обмена вторым и тогда по содержимому слова состояния канала находится процесс, с которого необходимо выполнить обмен и соответственно область памяти, из которой следует прочитать данные при операции ввода или в которой следует записать в случае операции вывода.
Обмен по линкам осуществляется аналогично, с той лишь разницей, что слова состояния канала имеют в памяти фиксированные адреса и данные в процессе обмена пересылаются не между областями памяти, а передаются по линкам связи в старт-стопном режиме с квитированием байтов.
При выполнении ввода/вывода от центрального процессора требуется лишь инициализация обмена. По команде ввода/вывода вся требуемая информация об операции обмена (адрес и длина данных) помещается во внутренние регистры линка, после чего центральных процессор освобождается для дальнейших вычислений, а линк самостоятельно управляет обменом данных.
Сообщения между транспьютерами передаются между последовательностью байтов. Для передачи используется пара проводов. По одному проводу из пары – сами данные, а по другому – подтверждение приёма каждого байта. При передаче байта передаются стартовый и управляющий биты, восемь информационных битов и стоповый бит. После передачи байта отправитель ждёт подтверждения, состоящего из стартового и управляющего битов. Если управляющий бит = 1, то в подтверждении он равен 0.
Если один из общающихся через линк процессов не готов к приёму данных, байты накапливаются в регистрах данных линка.
Передача по линку асинхронна, и для организации обмена требуется только точный кварцевый генератор с частотой 5 МГц для задания тактовых сигналов транспьютера.