КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Иерархия памяти
Конвейеризация Конвейеризация. Иерархия памяти. (8-1) Компиляторы Тенденция к повышению вычислительной мощности команд привела к разработке некоторых очень эффективных макропроцессоров и макроязыков, упрощающих программирование на языке ассемблера. Однако развитие ассемблеров путем введения макропроцессоров не решает проблемы машинной зависимости. В связи с этим были разработаны языки высокого уровня. Языки высокого уровня открывают возможность машинно-независимого программирования. Большинству пользователей компьютер нужен только как средство реализации прикладных систем. Языки высокого уровня позволяют пользователям заниматься преимущественно задачами, специфичными для их конкретных прикладных областей, не вникая в особенности применяемых ими машин. Перевод с языков высокого уровня на машинный язык осуществляется при помощи программ, называемых компиляторами. Компиляторы и ассемблеры имеют общее название «трансляторы». Написанная пользователем программа, которая в процессе трансляции поступает на вход транслятора, называется исходной программой; программа на машинном языке, генерируемая транслятором, называется объектной программой, или выходной (целевой) программой. (Суть – выход одной команды подается на вход другой) Конвейеризация — это аппаратный способ, применяемый в высокопроизводительных вычислительных машинах с целью использования определенных типов параллелизма для повышения эффективности обработки команд. Упрощенно структуру конвейерного процессора можно представить очень похожей на технологическую линию производственного предприятия; на конвейере процессора на различных стадиях выполнения одновременно могут находиться несколько команд. Такое совмещение требует несколько большего объема аппаратуры, однако позволяет существенно сократить общее время выполнения последовательности команд. Современные вычислительные машины содержат несколько видов памяти: · основную (первичную, оперативную). · внешнюю (вторичную, массовую). · кэш-память. В основной памяти должны размещаться команды и данные, к которым будет обращаться работающая программа. Внешняя память — это магнитные ленты, диски, карты и другие носители, предназначенные для хранения информации, которая со временем будет записана в основную память. Кэш-память — это буферная память очень высокого быстродействия, предназначенная для повышения скорости выполнения работающих программ; для программ пользователя эта память, как правило, «прозрачна». Все эти виды памяти создают единую иерархию памяти; переход по уровням этой иерархии от кэш-памяти к основной и затем к внешней памяти сопровождается уменьшением стоимости и скорости и увеличением емкости памяти. Система управления вводом/выводом. Спулинг. (10-1) Система управления вводом/выводом Одна из важнейших функций ядра ОС состоит в управлении устройствами ввода/вывода компьютера. Ядро ОС должно давать этим устройствам команды, перехватывать прерывания, обрабатывать ошибки и обеспечивать интерфейс с остальной частью ОС. Устройства ввода/вывода делятся на: 1. Блочные устройства – хранят информацию в виде адресуемых блоков фиксированного размера. Обычно размеры блока меняются в пределах от одного сектора диска (512 байт) до одного цилиндра диска (32768 байт). Важное свойство блочного устройства – каждый блок может быть прочитан независимо от остальных блоков. 2. Байтовые устройства – принимают или предоставляют поток байтов или символов без какой-либо структуры. Не являются адресуемыми. Программа пользователя, как правило, общается с абстрактными устройствами; зависимую от устройства часть поддерживает ОС. Т.е. драйверы устройств входят в ядро. Устройства ввода/вывода состоят из механической и электронной частей. Механическая компонента находиться в самом устройстве, а электронная (контроллер устройства) принимает форму печатной платы, которая сопряжена с системной шиной или вставляется в слот расширения объединенной платы. Работа контроллера состоит в последовательном преобразовании потока битов в байтовую последовательность и в выполнении коррекции ошибок. У каждого контроллера есть несколько регистров (или портов), с помощью которых к нему может обращаться ЦП. У некоторых компьютеров (Motorola) такие регистры являются частью единого адресного пространства (ОП). У других (IBM PC) для этого отводится специальное адресное пространство, в котором выделяются адреса для каждого устройства. В дополнение к регистрам ввода/вывода часто используются прерывания, при помощи которых контроллер может сообщить ЦП, что его регистры готовы для записи или чтения информации. Прерывание является электрическим сигналом. Линия запроса аппаратного прерывания (IRQ – Interrupt Request Line) является одним из входов контроллера. Каждая из линий IRQ связывается с вектором прерываний, который указывает на программу обработки прерываний. ОС обменивается с устройством ввода/вывода информацией, записывая команды в регистры контроллера. Передав команду контроллеру, процессор инициирует прерывание, чтобы привлечь внимание ОС для проверки результата. ПО системы управления вводом/выводом (не надо) Оно разрабатывается исходя из принципов независимости от устройств, единообразия именования устройств и многослойности. ПО должно аккумулировать и обрабатывать ошибки устройств ввода/вывода, поддерживать синхронный (блокирующий) и асинхронный способы переноса данных, предусматривать буферизацию и различать выделенные (монопольные) устройства ввода/вывода и устройства ввода/вывода коллективного пользования. Уровни (слои) ПО можно представить следующим образом: 1. Обработчик прерываний (нижний слой) 2. Драйвер устройства ввода/вывода. 3. Независимый от аппаратуры программный модуль ОС. 4. Пользовательские программы. (верхний слой) пп 1-3 – функции ОС.
Дата добавления: 2014-01-20; Просмотров: 340; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |