Смекни!
smekni.com

Аппаратура, программное обеспечение и микропрограммы (стр. 7 из 8)

Наличие в машине нескольких режимов работы обеспечивает защиту программ и данных. В режиме супервизора могут выполняться любые команды (включая привилегированные), а в режиме задачи — только непривилегированные. Эти режимы определяют

границу между возможностями пользователя и возможностями операционной системы. В некоторых машинах предусматриваются более двух подобных режимов работы.

Системы виртуальной памяти в обычном случае дают возможность программам работать с гораздо более широким диапазоном адресов, чем адресное пространство имеющейся основной памяти. Это позволяет освободить программиста от ограничений, связанных с емкостью основной памяти.

Метод прямого доступа к памяти исключает необходимость прерывать работу центрального процессора при передаче каждого байта блока данных во время выполнения операций ввода-вывода — в этом случае требуется только один сигнал прерывания, вырабатываемый при завершении передачи всего блока. Каждый символ записывается в основную память и читается из нее с захватом цикла памяти — здесь каналу предоставляется приоритет, поскольку центральный процессор может и подождать.

В архитектурах компьютеров высокого быстродействия применяются конвейеры, которые позволяют совмещать работу нескольких команд, в каждый конкретный момент времени находящихся на различных стадиях выполнения.

В современных вычислительных машинах реализуется иерархическая структура памяти, включающая кэш-память, основную (первичную, оперативную) память и внешнюю (вторичную, массовую) память; при переходе с уровня на уровень иерархии в указанном порядке емкости памяти увеличиваются, а стоимость в расчете на байт уменьшается.

Программное обеспечение — это программы, состоящие из команд, которые интерпретируются аппаратными средствами; команды определяют алгоритмы, обеспечивающие решение задач. Программы для компьютера можно писать на машинном языке, языке ассемблера или языках высокого уровня. Программисты редко работают непосредственно на машинных языках — программы в машинных кодах генерируются при помощи ассемблеров и компиляторов. Макропроцессоры дают возможность программистам, работающим на языке ассемблера, писать макрокоманды, которые порождают много команд на языке ассемблера. Компиляторы обеспечивают трансляцию программ, написанных на языках высокого уровня, на машинный язык. Интерпретаторы непосредственно выполняют исходные программы, не генерируя при этом объектные модули.

Процедурно-ориентированные языки являются универсальными, а проблемно-ориентированные языки специализируются для эффективного решения задач определенных классов. Компиляторы без оптимизации работают быстро, однако генерируют- относительно неэффективные коды; оптимизирующие компиляторы позволяют получать эффективные коды, но работают гораздо медленнее, чем без оптимизации.

Абсолютные загрузчики осуществляют загрузку программ в конкретные ячейки, адреса которых указываются при компиляции; перемещающие загрузчики могут размещать программы в различных свободных участках памяти. Привязка программы к памяти по абсолютным адресам осуществляется во время трансляции, а привязка перемещаемых программ — во время загрузки или даже во время выполнения.

Связывающие загрузчики объединяют отдельные блоки программы, создавая единый модуль, готовый к выполнению; этот выполняемый модуль размещается в основной памяти. Редакторы связей также осуществляют объединение программ, однако сформированный ими готовый к выполнению модуль записывается во внешнюю память для последующего использования.

Микропрограммирование — это написание программ, которые управляют элементарными операциями аппаратуры; микропрограммирование играет исключительно важную роль в современных архитектурах компьютеров и операционных системах. Динамическое микропрограммирование предусматривает возможность простой загрузки новых микропрограмм в управляющую память для непосредственного выполнения.

Команды вертикального микрокода очень похожи на команды машинного языка; типичная вертикальная микрокоманда указывает, что необходимо выполнить определенную операцию с определенными данными. Горизонтальный микрокод содержит команды с более широкими возможностями — они позволяют задавать одновременное выполнение многих операций над многими элементами данных.

Микропрограммирование зачастую применяется при эмуляции, позволяя сделать один компьютер функциональным эквивалентом другого компьютера. Эмуляция особенно необходима и полезна в тех случаях, когда пользователям приходится переводить свои программы с машины на машину.

Микропрограммирование позволяет реализовать микродиагностику, т. е. контроль ошибок с гораздо большей степенью детализации, чем это возможно для команд машинного языка.

Благодаря микропрограммированию можно специализировать компьютер применительно к требованиям конкретных пользователей. Поставщики компьютеров обычно предлагают факультативные средства микропрограммной поддержки, позволяющие повысить скоростные характеристики; реализация часто выполняемых последовательностей команд при помощи микрокода сокращает время их выполнения. Многие функции операционных систем в современных вычислительных машинах реализуются не обычными программами, а микропрограммами, и благодаря этому, как правило, обеспечивается более высокая скорость выполнения и более надежная защита.

Терминология

абсолютный загрузчик (absolute loader)

автономный режим (оф-лайн) (off-line)

адресное пространство (диапазон адресов) (address space)

аппаратура, аппаратные средства (hardware)

ассемблер (assembler)

базовый регистр, регистр базы (base register)

байт-мультиплексныйканал (byte-multiplex or channel)

библиотекаподпрограмм (subroutine library)

блок-мультиплексныйканал (block-multiplexor channel)

быстрыйкомпиляторбезоптимизации (quick-and-dirty compiler)

буфер (buffer)

буферизация с переключением («триггерная» буферизация) (flip-flop buffering)

вертикальный микрокод (vertical microcode)

виртуальная память (virtual storage)

внешняя (вторичная, массовая)

память (secondary storage)

время загрузки (load time)

входной, фронтальный процессор (front end processor)

выходная, целевая программа (target program)

горизонтальный микрокод (horizontal microcode)

готовая, заранее ассемблированная IOCS (preassembled IOCS)

граничные регистры (bounds registers)

двойная буферизация (double buffering)

двухадресныекоманды (two-address instructions)

загрузочный модуль, модуль загрузки (load module)

загрузчик (loader)

захват цикла (памяти) (cycle stealing)

защитапамяти (storage protection)

иерархияпамяти (storage hierarchy)

интервальныйтаймер (interval timer)

интерпретатор (interpreter)

интерфейс ввода-вывода (I/O interface)

исходная программа (source program)

канал (channel)

канал прямого доступа к памяти (DMA channel)

ключизащитыпамяти (storage protect keys)

компиляторы (compilers)

конвейеризация (pipelining)

контроллерустройствввода-вывода (I/O device controller)

координированный (упорядоченный) доступ (sequentialization of access)

кэш-память (cache storage)

макрокоманда (macro instruction)

макропроцессор (macro processor)

макрорасширение (macro expansion)

машинно-зависимый (machine-dependent)

машинно-независимый (machine-independent)

машинныйязык (machine language)

микродиагностика (microdiagnostics)

микрокод (microcode)

микрокоманда (microinstruction)

микропрограмма (microprogram)

микропрограммирование (microprogramming)

микропрограммнаяподдержка (microcode assists)

микропрограммноеобеспечение (firmware)

мультиплексныеканалы (multiplexor channels)

мультипроцессорнаяобработка (multiprocessing)

объединениепрограмм (program combination)

объектнаяпрограмма (object program)

одноадресныекоманды (single-address instructions)

опрос (регулярный, упорядоченный) (polling)

оптимизирующий компилятор (optimizing compiler)

основная (первичная, оперативная) память (primary storage)

относительная адресация, адресация «база + смещение» (base-plus-displacement addressing)

перемещаемая (позиционно-независимая) программа (location-independent program)

перемещающий загрузчик (relocating loader)

плотность записи (recording density)

подканал (subchannel)

последовательное внешнее запоминающее устройство (sequential device)

прерывание по завершению (операции) ввода-вывода (I/O completion interrupt)

прерывания (interrupts)

привилегированныекоманды (privileged instructions)

привязка (программы к памяти) (binding)

принцип минимума привилегий (при предоставлении доступа к ресурсам и информации) (principle of least privilege)

проблемно-ориентированный (problem-oriented)

программное обеспечение (software)

простая (одиночная) буферизация (single buffering)

процедурно-ориентированный (procedure-oriented)

процессор ввода-вывода (stand-alone processor)

процессор-сателлит (satellite processor)

прямой доступ к памяти (ПДП) (Direct Memory Access, DMA)

расслоение памяти (интерливинг) (storage interleaving)

регистрперемещения (relocation register)

редакторсвязей (linkage editor)

режим задачи (пользователя) (problem state)

режим выполнения программ (execution states)

режим супервизора (supervisor state)

режим он-лайн (on-line)

связывающий загрузчик (linking loader)

сегментация (segmentation)

селекторныйканал (selector channel)

спулинг (ввод-вывод с буферизацией) (spooling)

стандартный интерфейс ввода-вывода (standard I/O interface)

степень (глубина) детализации защиты (granularity of protection)

страничная организация памяти (paging)

система управления вводом-выводом (input-output control system IOCS)

транслятор (translator)

трехадресныекоманды (three-address instruction)

управляющая память (control storage)

устройство прямого (непосредственного) доступа (direct access device)

часы истинного (реального, календарного) времени (time-of-day clock)

эмулятор (emulator)

эмуляция (emulation)

язык ассемблера, язык ассемблерного типа (assembly language)

DMA

IOCS

Упражнения

2.1 Укажите различия между аппаратурой, программным обеспечением и микропрограммами.