Операционные системы Введение (часть 2) 3.Основы компьютерной архитектуры 3.1.Компьютер фон Неймана 3.2.Аппарат прерываний 3.3.Внешние устройства 3.4.Аппаратная поддержка ОС и систем программирования
Джон фон Нейман (John Von Neumann) EDVAC (Electronic Discrete Variable Computer Электронный Компьютер Дискретных Переменных) «Предварительный доклад о компьютере EDVAC» (A First Draft Report on the EDVAC) Джон Мочли (John Mauchly) и Джон Преспер Эккерт (John Presper Eckert) ENIAC (Electronic Numerical Integrator And Computer) Компьютер фон Неймана Историческая справка
Компьютер фон Неймана Структура, основные компоненты компьютера фон Неймана Принципы построения компьютера фон Неймана 1. Принцип двоичного кодирования 2. Принцип программного управления 3. Принцип хранимой программы ОЗУ ЦП АЛУУУ Внешние устройства
Оперативное запоминающее устройство ОЗУ предназначено для хранения программы, выполняющейся в компьютере. Адрес ячейки 0 1 … N–1N–1 Тег поле служебной информации. Машинное слово поле программно изменяемой информации. ячейка памяти ТегМашинное слово
Оперативное запоминающее устройство Использование содержимого поля служебной информации 1. Контроль за целостностью данных При записи слова в память контрольная сумма бит = 9 (1001b) тег = 1. Ошибки нет При чтении машинного слова 16 бит вычисляется сумма бит = 9 (1001b) и сверяется со значением тега. тег Ошибка При чтении машинного слова 16 бит вычисляется сумма бит = 8 (1000b), а тег = 1 Пример контроля за целостностью данных по четности Сбой в работе ОЗУ Ошибка не видна При чтении машинного слова 16 бит вычисляется сумма бит = 7 (111b), и тег = 1 Ошибка будет не выявлена
Оперативное запоминающее устройство Использование содержимого поля служебной информации 2. Контроль доступа к командам/данными 3. Контроль доступа к машинным типам данных
Оперативное запоминающее устройство Время доступа (access time, t access ) время между запросом на чтение слова из оперативной памяти и получением содержимого этого слова. Длительность цикла памяти (cycle time, t cycle ) минимальное время между началом текущего и последующего обращения к памяти. (t cycle >t access ) Производительность оперативной памяти скорость доступа процессора к данным, размещенным в ОЗУ.
Оперативное запоминающее устройство При расслоении памяти ОЗУ делится на К независимых банков памяти, где К = 2 L. L-разрядов номер банка (0...2 L -1) Расслоение памяти Расслоение памяти позволяет добиться увеличения скорости чтения из памяти при последовательном доступе.
Оперативное запоминающее устройство Последовательное чтение машинных слов по адресам: ОЗУ без расслоения ОЗУ с расслоением A ~ t cycle ~ t access A+1 ~ t cycle ~ t access А+2 ~ t cycle ~ t access Суммарное время: ~ 3*t cycle ~ 3*t access Расслоение памяти... Контроллер доступа к памяти Последовательность адресов i, i+1, i+2,..., i+K–1 Контроллер банка 0 Контроллер банка 1 Контроллер банка 2 Контроллер банка K–1 Банк 0Банк 1Банк 2Банк K–1 ii+1i+2i+K–1 Сравнение времени доступа Схема работы
Центральный процессор Процессор или центральный процессор (ЦП) компьютера обеспечивает последовательное выполнение машинных команд, составляющих программу, размещенную в оперативной памяти. Структура организации центрального процессора Кэш памяти L1УУАЛУ Регистровая память
Центральный процессор Устройство управления (control unit) координирует выполнение команд программы процессором. Арифметико-логическое устройство (arithmetic/logic unit) обеспечивает выполнение команд, предусматривающих арифметическую или логическую обработку операндов. Регистровая память (register memory) совокупность устройств памяти процессора - регистров. Временное хранение управляющей информации, операндов и результатов выполняемых команд. Кэш-память (cache memory) высокоскоростное устройство памяти, используемое для буферизации работы процессора с оперативной памятью.
Центральный процессор Регистровая память (регистровый файл) Регистры общего назначения (РОН) Специальные регистры: счетчик команд (program counter) указатель стека (stack pointer) слово состояние процессора (processor status word) Регистровая память
Центральный процессор Рабочий цикл процессора.… да Условие не выполняется Передача управления Логическая или арифметическая операция Выборка команды по значению СчК, формирование адреса следующей команда: СчК = СчК+1 Анализ кода операции Вычисление адресов операндов и их значений АЛУ Выполнение команды Анализ условия перехода Вычисление исполнитель- ного адреса операнда А перехода, СчК = А перехода
Центральный процессор Кэш-память (cache memory) первого уровня (L1) 1.Обмен данными между кэшем и оперативной памятью осуществляется блоками фиксированного размера 2. Адресный тег блока содержит служебную информацию о блоке (соответствие области ОЗУ, свободен/занят блок, …) 3.Нахождение данных в кэше – попадание (hit). Если искомых данных нет в кэше, то фиксируется промах (cache miss) 4.При возникновении промаха происходит обновление содержимого кэша вытеснение. Стратегии вытеснения: случайная вытеснение наименее популярного (LRU Least-Recently Used) 5. Вытеснение кэша данных: сквозное кэширование (write-through caching) кэширование с обратной связью (write-back cache) тег модификации (dirty bit )
Центральный процессор Сокращается количество обращений к ОЗУ Существенно увеличивается скорость доступа к памяти в случае использования ОЗУ с «расслоением», так как обмены блоков с памятью будут проходить практически параллельно Следствие использования кэш-памяти (cache memory) Проблемы, возникающие при использовании кэша Усложнение логики процессора
Аппарат прерываний Прерывание событие в компьютере, при возникновении которого в процессоре происходит предопределенная последовательность действий. Внутренние инициируются схемами контроля работы процессора Внешние события, возникающие в компьютере в результате взаимодействия центрального процессора с внешними устройствами Типы прерываний
Аппарат прерываний Этап аппаратной обработки прерываний Завершение текущей команды Блокировка прерываний. Сохранение актуального состояния процессора прерывание Программный этап обработки прерывания
Аппарат прерываний Программный этап обработки прерываний … да нет Идентификация типа прерывания Прерывани е «короткое» обработка Выход из прерывания: восстановление состояния процессора в точке прерывания, возврат, снятие блокировки прерываний «Полное» сохранение регистров Фатальное прерывани е да Снятие блокировки прерывания Завершение обработки прерывания Завершение прерванной программы
Аппарат прерываний Модели организации прерываний 1.С помощью регистра прерываний Имеется специальный регистр прерываний, в определённые биты которого при возникновении прерываний заносятся «1». 2.С помощью вектора прерываний В фиксированной области памяти находится вектор адресов обработчиков прерываний. 3.С помощью слова состояния процессора Имеется специальный регистр, в котором хранится состояние процессора. При возникновении прерывания в определённую часть данного регистра заносится код прерывания.
Аппарат прерываний Модель организации прерываний с использованием «регистра прерываний» Периферийные регистры Главный регистр прерываний прерывания Произошло прерывание 1 ОС передается адрес входа в соответствующую программу Обработка прерывания периферийного устройства
Аппарат прерываний Модель организации прерываний с использованием «вектора прерываний» Адрес программы обработки прерывания 1 Адрес программы обработки прерывания 2 Адрес программы обработки прерывания Вектор прерываний ОЗУ Прерывание 2 Запуск программы- обработчика прерывания 2
Аппарат прерываний Модель организации прерываний с использованием регистра «слово состояние процессора» Код прерывания PSW: Поле кода прерывания
Внешние устройства
Внешниие запоминающие устройства Устройства ввода и отображения информации Устройства приема и передачи данных Устройства последователь- ного доступа Устройства прямого доступа Магнитная лента Магнитный диск Магнитный барабан Оптические диски Печатающие устройства Барабанные Струйные Графопостроители Мониторы CRT TTF(LCD) Устройства ввода информации Сканеры Клавиатуры Мышь Модем Факс Сетевая карта Частичная иерархия внешних устройств
Внешние устройства Внешние запоминающие устройства (ВЗУ) Обмен данными: записями фиксированного размера блоками записями произвольного размера Доступ к данным: операции чтения и записи (жесткий диск, CD-RW) только операции чтения (CD-ROM, DVD-ROM, …) Последовательного доступа: Магнитная лента Прямого доступа: Магнитные диски Магнитный барабан Магнито-электронные ВЗУ прямого доступа
Устройство последовательного доступа Магнитная лента Маркер конца ленты Маркер конца i-ой записи Маркер начала i-ой записи Маркер начала ленты i-ая запись
Устройство прямого доступа Магнитные диски штанга сектор Условный цилиндр головка Операции, необходимые для начала чтения (позиционирования) 1.Установка головки на требуемую дорожку 2.Поворот для совмещения головки с началом сектора
Устройство прямого доступа Магнитный барабан трек сектор головки Операции, необходимые для начала чтения (позиционирования) 1.Поворот для совмещения головки с началом сектора
Устройство прямого доступа Магнитно-электронные ВЗУ прямого доступа трек сектор головки +–+– +–+– –+–+ Операции, необходимые для начала чтения (позиционирования)
обращение к внешнему устройству Модели синхронизации при обмене с внешними устройствами Синхронная организация обмена обращение к внешнему устройству выполнение процесса 1 приостановка выполнения программы, ожидание завершения обмена завершение обработки прерывания обработка прерывания 1 Примечание: процесс выполняется до возникновения следующего прерывания Асинхронная организация обмена обращение к внешнему устройству
Потоки данных и управление внешними устройствами ЦП Внешнее устройство ОЗУ 1. Непосредственное управление внешними устройствами центральным процессором ОЗУЦП контроллер внеш- него устройства Внешние устройства 2. Синхронное управление внешними устройствами использованием контроллеров внешних устройств 3. Асинхронное управление внешними устройствами с использованием контроллеров внешних устройств
Потоки данных и управление внешними устройствами 4.Использование контроллера прямого доступа к памяти (DMA) при обмене. 5.Управление внешними устройствами с использованием процессора или канала ввода/вывода. ОЗУ Внешнее устройство ЦП DMA контроллер + контроллер или процессор ввода/вывода
ЦП: Иерархия устройств хранения информации РОН КЭШ L2 ОЗУ ВЗУ прямого доступа с внутренней кэш буферизации (оперативный доступ к данным) ВЗУ прямого доступа без кэш буферизации (оперативный доступ к данным) ВЗУ долговременного хранения данных (архивы, резервные копии...) КЭШ L1 Увеличение ёмкости Увеличение времени доступа Уменьшение скорости чтения/записи Увеличение времени хранения информации
Аппаратная поддержка ОС и систем программирования Мультипрограммный режим режим, при котором возможна организация переключения выполнения с одной программы на другую. программа 1 t1t1 t2t2 t3t3 время обмена программы 1 (операции ввода/вывода) программа 2 программа 3 программа 1 t
1. Аппарат защиты памяти 2. Специальный режим операционной системы (привилегированный режим или режим супервизора) 3. Аппарат прерываний (как минимум, прерывание по таймеру) Базовая аппаратная поддержка мультипрограммного режима
Аппаратная поддержка программных систем и мультипрограммного режима Проблемы: Вложенные обращения к подпрограммам Накладные расходы при смене обрабатываемой программы Перемещаемость программы по ОЗУ Фрагментация памяти
Перемещаемость программы по ОЗУ Соответствие адресов, используемых в программе, области ОЗУ, в которой будет размещена данная программа Загрузка и начало выполнения ОЗУ Буфер программ, ожидающих начала обработки ОС Программа 1 Программа 2 … … Программа К …
Фрагментация памяти V 1 своб. V 2 своб. V 3 своб. V 4 своб. V K своб. Буфер программ, ожидающих начала обработки V 1 прог. V 2 прог. V L прог. Проблема фрагментации: V i прог. > V j своб. для i,j (несмотря на то, что i ) => деградация системы ОС Программа N1 1 Программа N2 2 Программа N3 3 Программа N4 4 … K Программа 1 Программа 2 … Программа L Не смотря на то, что имеется достаточное количество места в памяти, разместить ни одну из программ не удаётся.
Аппаратная поддержка программных систем и мультипрограммного режима Способы решения проблем 1.Регистровые окна решают проблемы сохранения/восстановления регистров 2.Системный стек решает проблемы, возникающие при смене обрабатываемой программы 3.Базирование адресов решает проблему переносимости программ 4.Страничная память решает проблемы переносимости программ и дефрагментации памяти
Регистровые окна (Register windows) Окно N–1 Окно 0 Окно 1 Виртуальные регистры CWP указатель текущего окна (current window pointer) SWP указатель сохраненного окна (saved window pointer) Окно 0 Множество физических регистров 0 K-1 Окно 1 Окно N–1...
Регистровые окна Использование оптимизация вложенных обращений функций. При обращении в функцию: да нет CWP = (CWP+1)%N CWP == SWP Прерывание Откачка окна CWP в память SWP = (SWP ++ )%N Использование окна CWP, вызов функции
Регистровые окна При выходе из функции: да нет CWP = (CWP–1+N)%N (CWP+1)%N==SW P Прерывание Восстановление окна (CWP+1)%N Если есть ещё сохранённые окна SWP = (SWP–N+1)%N Продолжение выполнения Использование оптимизация вложенных обращений функций.
Регистровые окна Пример: СWP = 0 SWP = 0 0 А 1 (А 2 (А 3 (А 4 (А 5 ( ))))) Main 1 0) Main СWP = 1 SWP = 0 Main A 1 1) СWP =0 SWP = 1 A2A1A2A1 2)2) СWP = 1 SWP = 0 A2A3A2A3 3)3) СWP = 0 SWP = 1 A4A3A4A3 4)4) СWP = 1 SWP = 0 A4A5A4A5 5)5) Main A 2 Main A1A1 A1A1 A 3 A 1 А 1 (А 2 (А 3 (А 4 (А 5 ( )))))
Регистровые окна Модель организации регистровой памяти в Intel Itanium «Динамическое» окно можно заказать окно произвольного размера (от регистра GR32 до регистра GR32+N (N=0,..,95). Оптимизация работы с физическими регистрами Физические регистры RSE 1 GR0 … GR31 GR32 … GR127 Статические регистры (Static Registers) 1 Register Store Engine ОЗУ Динамические регистры (Stacked Registers)
Аппаратная организация системного стека Использование системного стека может частично решать проблему минимизации накладных расходов при смене обрабатываемой программы и/или обработке прерываний. Регистровый буфер (специальные регистры или КЭШ L1) Оперативная память Вершина стека SP (указатель стека) Основание стека Команды работы со стеком: PUSH добавить новый элемент POP удалить элемент из вершины стека
Виртуальная память. Базирование Исходный текст программы Транслятор Объектный модуль Библиотека объектных модулей, редактор внешних связей Исполняемый модуль Проблема – установление соответствия между программной адресацией и физической памятью В исполняемом модуле используется программная (логическая или виртуальная) адресация
Виртуальная память. Базирование Аппарат виртуальной памяти аппаратные средства компьютера, обеспечивающие преобразование (установление соответствия) программных адресов, используемых в программе в адреса физической памяти, в которой размещена программа во время выполнения. Базирование адресов реализация одной из моделей аппарата виртуальной памяти.
Виртуальная память. Базирование А исп. прог. Базирование адресов решение проблемы перемещаемости программы по ОЗУ. Абсолютный адрес А исп. физ. = А исп. прог. Относительный (адрес относительно начала программы) А исп. физ. = А исп. прог. +
Виртуальная память. Базирование Базирование адресов средство отображения виртуального адресного пространства программы в физическую память «один в один». Программное (виртуальное) адресное пространство 0 L -1 Физическая память Базирование памяти решает проблему перемещения, но не решает проблему фрагментации. Для решения проблемы фрагментации используются более развитые механизмы организации ОЗУ и виртуальной памяти
Виртуальная память. Страничная организация памяти 0 -я страница 1 -я страница... Память аппаратно разделена на блоки фиксированного размера страницы. Размер страницы 2 k номер страницы номер в странице Количество страниц ограничено размером поля «номер страницы» k k-1 0 Структура адреса
Виртуальная память. Страничная организация памяти А исп. вирт. Таблица страниц процессора А исп. физ. Преобразование виртуального адреса в физический замена номера виртуальной страницы на соответствующий номер физической страницы kk-10 Номер виртуальной страницы Номер в странице kk-10 Номер физической страницы Номер в странице …
Виртуальная память. Страничная организация памяти Виртуальное адресное пространство множество виртуальных страниц, доступных для использования в программе. Количество виртуальных страниц определяется размером поля «номер виртуальной страницы» в адресе. Физическое адресное пространство оперативная память, подключенная к данному компьютеру. Физическая память может иметь произвольный размер по отношению к размеру виртуальной памяти (число физических страниц может быть меньше, больше или равно числу виртуальных страниц).
Виртуальная память. Страничная организация памяти Модельный пример организации страничной виртуальной памяти нет да А исп. вирт. Номер виртуальной страницы Номер в странице 0 1 i m-1 0: 1: i: m-1: i 0 i -ой виртуальной странице соответствует физическая страница с номером i Получаем физический адрес, продолжение работы Полученный виртуальный адрес не размещен в ОЗУ Обращение в «чужую» память Страница откачена в целях оптимизации использования ОЗУ Прерывание «защита памяти» Причина? СТОП Подкачка нужной страницы, вычисление физического адреса, продолжение работы программы