Многоуровневая компьютерная организация
Нажми на карточку, чтобы перевернуть
Р1.pdf, стр. 1–3
Многоуровневая компьютерная организация
Многоуровневая компьютерная организация — это способ представления компьютера как системы из нескольких уровней абстракции. Каждый верхний уровень строится на основе нижнего и скрывает от пользователя сложные детали работы аппаратуры.
Физически компьютер способен выполнять только ограниченный набор простых машинных команд. Эти команды образуют машинный язык, который непосредственно понимается аппаратурой. Однако человеку неудобно писать программы на таком языке, потому что машинные команды слишком примитивны: сложить два числа, проверить число на ноль, скопировать блок данных из одной области памяти в другую.
Чтобы упростить программирование, вводятся более удобные языки. Самый нижний машинный язык можно обозначить как Я0, а соответствующую машину — как М0. Компьютер реально выполняет только команды языка Я0. Если создаётся более удобный язык Я1, то программа на нём должна быть либо транслирована, либо интерпретирована.
Трансляция — это замена всей программы, написанной на языке верхнего уровня, эквивалентной программой на языке более низкого уровня. После трансляции новая программа загружается в память и выполняется.
Интерпретация — это поочерёдная обработка команд программы. Каждая команда языка верхнего уровня переводится в команды нижнего уровня и сразу выполняется. Программа, выполняющая такую обработку, называется интерпретатором.
Для удобства можно представить, что для каждого языка существует своя виртуальная машина. Например, если есть язык Я1, можно вообразить машину М1, которая будто бы напрямую выполняет команды Я1. На самом деле команды Я1 всё равно будут переведены или интерпретированы на более низком уровне, но программист может работать так, как будто машина М1 существует реально.
Так возникает иерархия языков и машин: нижний уровень самый простой и близкий к аппаратуре, верхние уровни более удобны для человека, каждый уровень использует предыдущий как основу. Компьютер с n уровнями можно рассматривать как n разных виртуальных машин, каждая из которых имеет собственный машинный язык.
Главная идея многоуровневой организации состоит в том, что человеку не обязательно знать все детали работы нижних уровней. Прикладной программист может писать программу на языке высокого уровня и не думать о том, как именно она преобразуется в машинные команды. Но для понимания реальной работы компьютера нужно изучать все уровни: от цифровой логики до языков программирования.
Итог: многоуровневая компьютерная организация упрощает работу с компьютером за счёт уровней абстракции. Каждый уровень скрывает сложность нижнего уровня и предоставляет пользователю более удобный язык и набор операций.