Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура ЭВМ.doc
Скачиваний:
27
Добавлен:
23.11.2019
Размер:
6.47 Mб
Скачать

Уровень 3

У этого уровня есть не­которые дополнительные особенности: набор новых команд, другая организация памяти, способность выполнять две и более программ одновременно и некоторые другие. При построении этого уровня возможно больше вариантов, чем при построении первого и второго.

Уровень 4

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

Уровни с четвертого и выше предназначены для прикладных программистов, решающих конкретные задачи. Если машинные языки уровней 1, 2 и 3 – цифровые, то уровень 4 представляет собой символическую форму одного из язы­ков более низкого уровня. На этом уровне можно писать программы в приемлемой для человека форме. Эти программы сначала компилируются на язык уровня 1, 2 или 3, а затем интерпретируются соответствующей виртуальной или фактически существующей машиной. Программа, которая выполняет компиляцию, называет­ся ассемблером.

Уровень 5

Этот уровень обычно состоит из языков, разработанных для прикладных про­граммистов. Такие языки называются языками высокого уровня. Существуют сотни языков высокого уровня, наиболее известные среди них: BASIC, С, C++, Java, LISP и Prolog. Программы, написанные на этих языках, обычно компилиру­ются на уровень 3 или 4. Необходимо отметить, что иногда также используется метод интер­претации, например, программы на языке Java или BASIC обычно интерпретируются.

Таким образом, компьютер проектируется как иерархическая структура уровней, каж­дый из которых надстраивается над предыдущим. Каждый уровень представляет собой определенную абстракцию с различными объектами и операциями. Рассмат­ривая компьютер подобным образом, мы можем не принимать во внимание не­нужные нам детали и свести сложный предмет к более простому для понимания.

Набор типов данных, операций и особенностей каждого уровня называется ар­хитектурой. Архитектура связана с аспектами, которые видны программисту, на­пример, сведения о том, сколько памяти можно использовать при написании про­граммы – часть архитектуры. А техническая сторона разработки компьютера (например, какая технология используется при создании памяти) не являются частью архитектуры.

Аппаратное и программное обеспечение

Программы, написан­ные на машинном языке (уровень 1), могут сразу выполняться электронными схемами компьютера (уровень 0), без применения интерпретаторов и компилято­ров. Эти электронные схемы вместе с памятью и средствами ввода-вывода форми­руют аппаратное обеспечение. Аппаратное обеспечение состоит из осязаемых объектов: интегральных схем, печатных плат, кабелей, источников электропита­ния, запоминающих устройств и принтеров. Абстрактные понятия, алгоритмы и команды не относятся к аппаратному обеспечению.

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

Если в самых первых компьютерах граница между программным и аппаратным обеспечением была очевидна, то со временем, произошло значительное размывание этой границы. В первую очередь благодаря тому, что в процессе развития компьютеров уровни добавлялись, удалялись и сливались. В настоящее время очень сложно отделить их друг от друга. В действительности можно сказать так – аппаратное и программное обеспечение логически эквивалентны. Т.е. любая операция, выполняемая программным обеспечением, может быть встроена в аппаратное обеспечение, и наоборот – любая команда, выполняемая аппаратным обеспечением, может быть смоделирована в программном обеспечении. Решение разделить функции аппаратного и программного обеспечения основано на следующих факторах: стоимость, скорость, надежность, а так же частота ожидаемых изменений.