Главная страница
Навигация по странице:

  • Обычная (стандартная

  • Высокая

  • 8.4. Внешние запоминающие устройства

  • 9. ЯЗЫКИ ПРОГРАММИРОВАНИЯ СОВРЕМЕННЫХ ЭВМ. ЭТАПЫ

  • 9.2. Машинный язык и языки программирования высокого уровня

  • Автокодом

  • С. В. Ченцова. В. Чубарьинформатикакрасноярск 2002 введение


    Скачать 0.92 Mb.
    НазваниеС. В. Ченцова. В. Чубарьинформатикакрасноярск 2002 введение
    Дата07.06.2019
    Размер0.92 Mb.
    Формат файлаpdf
    Имя файлаinfoposobie2003.pdf
    ТипДокументы
    #80810
    страница6 из 17
    1   2   3   4   5   6   7   8   9   ...   17
    локальности программ.
    Суть этого принципа заключается в следующем. Поскольку обращения к памяти носят не случайный характер, а выполняются в соответствии с исполняемой программой, то при считывании данных из памяти с высокой степенью вероятности можно предположить, что в ближайшем будущем она опять обратится к этим данным (принцип временной локальности). Кроме того, весьма вероятно и то, что в ближайшем будущем программа обратится к ячейке, которая следует за той, к которой она обращается в текущий момент времени (принцип пространственной локальности).
    В соответствии с принципом временной локальности информацию в буфере целесообразно хранить в течение некоторого времени, а принцип пространственной локальности предполагает считывание в кэш нескольких соседних ячеек памяти, то есть блока информации. Каждый блок хранится в строке буфера, а набор таких строк и составляет кэш-память.
    Таким образом, информация из основной памяти загружается в кэш блоками по 2-4 слова и хранится в нем в течение некоторого времени. При обращении центрального процессора к оперативной памяти сначала проверяется наличие запрашиваемых данных в буфере, и, если их там не оказывается, осуществляется загрузка в кэш информационного блока из оперативной памяти. Следовательно, при правильной организации алгоритма

    44
    работы буфера можно добиться того, что в подавляющем большинстве случаев процессор будет обращаться к нему, а не к более медленной оперативной памяти, что существенно повысит производительность системы.
    Виды оперативной памяти
    Оперативную память условно можно разделить на четыре вида:
    1. Обычная (стандартная) — Conventional.
    Иногда ее называют нижняя память. Она простирается от 0 до 640 Кб.
    Стандартная память—это та самая память, с которой собственно и работает компьютер. Ее общий размер и остаток после загрузки драйверов мы видим, когда нажимаем комбинацию клавиш Ctrl+L в Norton Commander или в FAR.
    Это та память, которой, как правило, не хватает ПК для работы с некоторыми программами, и ПК информирует пользователя о нехватке памяти.
    2. Верхняя (Upper) — очень важный вид памяти. Она простирается от
    640 Кб до 1 Мб и равна 384 Кб.
    (1024 Кб – 640 Кб = 384 Кб)
    Часть этой памяти используется видеоадаптером, контроллером жесткого диска, BIOS и другими устройствами, с которыми активно работает процессор.
    При этом в верхней памяти остаются незанятые участи. Программно можно создать так называемые блоки верхней памяти, куда можно загрузить часть драйверов устройств и — главное — организовать связь процессора с Дополнительной памятью.
    3.
    Дополнительная {extended) — эта память очень нужна для нормальной работы не только Windows, но и всего компьютера.
    Ее размеры в принципе не ограничены: от нескольких мегабайт до десятков Гб. Собственно дополнительная память — это та самая память, про которую мы говорим оперативная память, правда, за минусом стандартной памяти.
    Т.е., ДП = ОП – СтП.
    Дополнительная память обеспечивается драйвером HI-MEM. SYS.
    Иногда этот вид памяти называют расширенной памятью.
    Для эффективной работы Windows в расширенном режиме требуется не менее 16 Мбайт ОЗУ (а лучше 32 Мбайт).
    Спецификация дополнительной памяти (XMS), т.е. порядок, условия и т.п., определяет правила организации и доступа к этому виду памяти. Поэтому иногда дополнительную память называют XMS-память (extended memory specification).
    4. Высокая —от 1 Мб до 1 Мб 64 Кб минус 16 байт—используется для внутренних нужд компьютера.Необходимо отметить еще два вида памяти, представленной в компьютере.
    5. Отображаемая (Expanded) — часть дополнительной памяти, доступ к этой памяти неудобен и требует достаточно много времени. Большинство программ и Windows не используют эту память.
    Для эмуляции отображаемой памяти (т.е. создания, возможности обращаться к ней) и управления верхней памятью была создана так называемая спецификация отображаемой памяти — EMS — позволяющая программам MS-

    45
    DOS иметь доступ к адресам памяти за пределами 640 Кб. Для этого был создан специальный драйвер LMM386.EXE.
    6. Виртуальная — существует только в Windows. Heпутать с виртуальным логическим диском, который создается за счет дополнительной памяти и который существует пока включен компьютер. Размер виртуальной памяти, используемой Windows, составляет несколько десятков мегабайт.
    Управление памятью компьютера и ее конфигурирование осуществляется с помощью двух файлов: config.sys и autoexec.bat).
    Для просмотра загрузки оперативной памяти (и стандартной, как части оперативной памяти) можно воспользоваться специальной утилитой mem.exe, находящейся в папке Windows\Command. Запускается программа двойным щелчком мыши, при этом Windows входит в режим сеанса MS-Dos.
    Программа показывает полную раскладку всех видов оперативной памяти, все драйверы и объемы памяти, ими занимаемые. Такая информация очень полезна при оптимизации памяти компьютера, а часто и для ответа на вопрос «Куда делась память?».
    Как известно, Windows работает в так называемом защищенном режиме.
    В этой связи для нас особый интерес представляют три режима работы микропроцессора—реальный, защищенный и режим виртуального микропроцессора i8086. В первом обеспечивалась совместимость на уровне объектных кодов с устройствами i8086 и i80286, работающими в реальном режиме. Одно из основных ограничений реального режима было связано с предельным объемом адресуемой памяти, равным / Мбайт. От него свободен защищенный режим, позволяющий воспользоваться всеми преимуществами архитектуры нового процессора. Размер адресного пространства в этом случае увеличивался до 4 Гбайт. Системы защищенного режима обладают более высоким быстродействием и возможностями организации истинной многозадачности.
    Наконец, режим виртуального МП открывает возможность одновременного исполнения ОС и прикладных программ, написанных для МП
    J8086, i80286 и 80386. Поскольку объем памяти, адресуемой 386-м процессором, не ограничен значением 1 Мбайт, он позволял формировать несколько виртуальных сред I8086.
    Компьютеры с процессором i80386/486 и выше могут адресовать до
    4 Гбайт оперативной памяти. Такая возможность появляется только при защищенном режиме работы процессора (protected mode), который операционная система MS-DOS не поддерживает. Расширенная (extended) память располагается выше области адресов 1 Мбайт. Для работы с extended- памятью микропроцессор должен переходить из реального в защищенный режим и обратно. Современные микропроцессоры выполняют эту операцию достаточно легко. При наличии соответствующего программного драйвера расширенную память можно эмулировать как дополнительную.

    46
    8.4. Внешние запоминающие устройства
    Кроме вышеназванных существуют еще внешние запоминающие
    устройства (ВЗУ), служащие для хранения больших массивов информации, обращение компьютера к этим устройствам занимает значительно больше времени (от 10
    -3
    с до нескольких минут), чем к ОЗУ, ПЗУ и ППЗУ (10
    -6
    -10
    -7
    с).
    Внешние запоминающие устройства можно разделить на устройства с
    произвольным и последовательным доступом. Примером устройства с последовательным доступом может служить магнитная лента. Данные с нее можно считывать или записывать на нее только последовательно, а если порядок нарушается, нужно ждать пока лента будет перемотана на нужное место. Достоинство магнитных лент в том, что они могут содержать очень большое количество информации. Устройства для работы с магнитными лентами называются стримерами. Скорость записи на магнитную ленту составляет 4-5 Мгб в мин. Дешевизна магнитных лент позволяет использовать их для длительного хранения больших объемов информации. Обычные видеокассеты теперь тоже могут с помощью специальных устройств использоваться для записи цифровой информации. На одной кассете может храниться около 2 Гб информации.
    Устройства с произвольным доступом, позволяют получить доступ к произвольной порции данных за одно и тоже время. К таким устройствам относятся дискеты. Данные на них хранятся на концентрированных магнитных дорожках с двух сторон дискеты, поэтому чтение и запись на дискету можно производить в любом месте дискеты, подождав время, необходимое не более чем требуется для одного оборота.
    Дискеты Размером 5¼ дюйма (130 мм) имеют емкость 1,2 мегабайт, 3 ½ дюйма (90 мм) – 1.44 Мб (дискеты фирмы Toshiba – 2.8 Mб).
    Скорость работы с дискетой – несколько килобайт в секунду. Среднее время доступа – 250 мс.
    Винчестеры – жесткие несъемные магнитные диски. Емкость современных винчестеров варьируется от сотен Мб до гига- и терабайт.
    Скорость передачи данных достигает 1,5 Мб в сек.. Среднее время доступа – 10 мс.
    Оптические диски – при чтении с них используется лазер, дорожка с информацией – спиральная. Они имеют те же форматы, что и аудио-диски и позволяют воспроизводить с них звуковую информацию на компьютере через звуковую плату. Скорость передачи данных с оптических дисков до 900 Кб в сек. Среднее время доступа 300 мс. могут умещать более 500 мегабайт информации.
    Контрольные вопросы и задания:
    1. Что такое память компьютера?
    2. В каких единицах измеряется память?
    3. По какому принципу устроена память ПК?
    4. Зачем нужна шина?

    47 5. Какие операции производятся с памятью компьютера?
    6. Назовите основные характеристики памяти.
    7. Назовите виды памяти и их назначение.
    8. Назовите виды внешних запоминающих устройств.
    9. Подготовьте сообщение или реферат на тему:
     «Виды памяти современных ПК».

    48
    9. ЯЗЫКИ ПРОГРАММИРОВАНИЯ СОВРЕМЕННЫХ ЭВМ. ЭТАПЫ
    РАЗРАБОТКИ ПРОГРАММ
    9.1. Понятие программы
    Общение людей друг с другом не отличается большой конкретностью, так, если кто-нибудь на улице спросит вас, где находится «Булочная», вы можете ответить: «Пройдите вон до того дома, и поверните налево». Или, показав рукой направление, сказать: «Вон за тем домом» и спрашивающему, в большинстве случаев, будет достаточно этого , чтобы найти нужный объект.
    Если бы мы обладали компьютерным мышлением, то нам нужно было бы объяснять дорогу более подробно, учитывая последовательность выполнения этой задачи. Например: «Вам необходимо сделать такое-то количество шагов, чтобы дойти до конца пятого дома, считая от того места, где мы находимся, затем совершить поворот на 90
    о влево и пройти еще 10 метров, затем, прочтя вывески на здании, которое окажется у вас по правую руку, идентифицировать
    (т.е. определить) «Булочную». и т.д.
    С компьютером общение происходит примерно также, т.е. для того чтобы он выполнял необходимые операции, для него необходимо составлять программы. По определению, которое дано в «Математической энциклопедии», понятие программы определяется так: «Программа - план действий, подлежащих выполнению некоторым устройством, чаще всего ЭВМ.
    Предписание, алгоритм программы представляется в виде конечной совокупности команд (инструкций), каждая из которых побуждает выполнить некоторую элементарную операцию над данными, хранящимися в памяти исполнителя и имена которых являются параметрами команды».
    Пока не созданы компьютеры пятого поколения, программы компьютеру нужно переводить на понятный ему язык. Мы уже знаем, что информация в компьютере содержится в виде 0 и 1, значит и человеку необходимо было научиться передавать данные и команды компьютеру на этом, понятном ему машинном языке.
    9.2. Машинный язык и языки программирования высокого уровня
    Машинный язык – это язык команд, которые может выполнять данная машина. Машинный язык определяется устройством и схемой компьютера.
    Каждый новый компьютер порождает новый машинный язык.
    Если нам надо сложить два числа, хранящиеся в ячейках А и В, команду на машинном языке мы должны записать в виде трех элементов КАВ, где К - код (номер) операции «сложить», А и В (номера) ячеек памяти (ОЗУ), где хранятся слагаемые (операнды).
    Но одних команд для работы ЭВМ мало, так как ЭВМ сама «не знает» никаких чисел, то все требуемые программой числа (константы), должны быть введены в память вместе с программой (это называется описанием констант).
    Например, при необходимости умножить что-либо на 5, в программе должен

    49
    быть указан адрес ячейки памяти, где хранится число 5, числа которое нужно умножить на 5 и адрес ячейки, в которую следует занести результат. При обращении к этой ячейке, константа становится операндом, т.е. числом, с которым работает оператор. Программа для ЭВМ, написанная на машинном языке, представляет собой длинную колонку команд, каждая из которых состоит из трех элементов-чисел: номера кода, оператора и адресов первого и второго операндов, над которыми производится операция. Результат отправляется либо по первому адресу (А) или в специальный регистр –
    хранилище промежуточных результатов.
    Чтобы программировать на машинном языке, следует знать не только всю систему команд той ЭВМ, для которой пишется программа, но и ее устройство. Это нужно, прежде всего, для того, чтобы представлять, как будет она реагировать на ту или иную команду. Следует также следить, чтобы не
    «затереть» нужную информацию в памяти при отсылке результата в ОЗУ, ведь при этом уничтожается прежнее содержимое ячейки, куда записывается новое значение.
    Поэтому так трудно программировать на машинном языке, такая программа точно описывает весь вычислительный процесс переработки информации данной ЭВМ при решении поставленной задачи. Однако, располагая машинной программой, всегда можно узнать состояние всех блоков
    ЭВМ, а также составить оптимальные программы, которые отличаются тем, что занимают минимальный объем памяти или позволяют получить результат за кратчайшее для данной ЭВМ время.
    Написание программ в машинных кодах требует высокой квалификации от программиста. Для обеспечения его работы, в начале 50-х годов были разработаны системы, позволяющие писать программы не на машинном языке, а с использованием мнемонических обозначений машинных команд, имен точек программы и т.д. Такой язык для написания программы называется
    Автокодом или языком Ассемблера, т.е Ассемблер это символическое представление машинного языка. Программы на Ассемблере очень легко переводятся на машинный язык специальной программой, называемой тоже
    Ассемблером.
    Ассемблер и сейчас широко используется, если необходимо написание быстродействующих программ. Однако, написание программы на языке
    Ассемблера тоже очень трудоемкое занятие, поэтому, для работы программиста были созданы более удобные языки общения человека с компьютером, так называемые языки программирования высокого уровня (ЯВУ).
    Мы уже знаем, что ЭВМ, какие бы различные задачи они не решали, служат для единой цели – для переработки информации, которая в них поступает. Переработку же информации машина может произвести только тогда, когда четко изложена постановка задачи – что машина должна делать и точно дан метод ее решения – как машина должна поступать.
    Словесное описание тут не подходит т.к. это очень громоздко, неточно и нестрого. Машина требует однозначности, конкретности, точности, поэтому задачи переводят на специальный машинный язык, удобный для общения

    50
    между человеком и машиной и между машинами, но хотя перед программистами и стала задача выработать единый машинный язык для всех классов машин и для всех задач, но создать такой язык не удалось и на сегодняшний день. Например, к 1970 году существовало уже 4700 искусственных языков.
    Языки общения с компьютером делятся на языки низкого и высокого
    уровня. Языки низкого уровня это машинный и символический язык, им пользуются системные программисты - опытные пользователи, разработчики операционных систем. Языки высокого уровня приближены к естественным языкам человека и не требуют знаний об устройстве и функционировании компьютера. В связи с тем, что языки высокого уровня и первые программы появились в англоязычных странах, то они используют английский алфавит и английские слова.
    Рис.9.1
    Все языки общения с компьютером подразделяются на два больших класса языков программирования и моделирования. В первом случае используется в основном вычислительная функция компьютера. Но компьютерная функция используется не только для вычислительных задач. В настоящее время невычислительных функций, выполняемых компьютером значительно больше. И одной из важнейших невычислительных функций компьютера является моделирование. Процесс компьютерного моделирования

    51
    связан с воспроизведением (воссозданием, имитацией) поведения интересующего нас объекта, процесса, явления, системы. Программа такого моделирования может быть составлена на любом языке программирования, но лучше использовать для этого специальные языки - языки моделирования.
    Эти языки отличаются от языков программирования своей узкой специализацией. Вновь создаваемые языки являются развитием других языков.
    Приведем краткие характеристики наиболее известных языков высокого уровня.
    ФОРТРАН. Этот язык первый из самых распространенных и на сей день языков программирования. Создание этого языка было обусловлено необходимостью привлечения пользователей к составлению программ
    Название этого языка составлено из сокращения двух слов ФОРмульный
    ТРАНслятор, т.е. формульный переводчик. Он был создан в 1956 году..
    За более, чем сорокалетнюю историю ФОРТРАНА на нем было написано огромное количество прикладных программ, поэтому отказываться от этого языка нецелесообразно. Существует даже такой лозунг: «Настоящие программисты пишут только на ФОРТРАНЕ».
    В ФОРТРАН-программе операторы не нумеруются и выполняются в порядке следования в программе. При необходимости изменения этого порядка, используются метки, поставленные перед соответствующими операторами.
    Язык ФОРТРАН очень хорош для опытных программистов, хорошо владеющих математическим аппаратом, поэтому для тех, кто только осваивает азы программирования на основе языка ФОРТРАН был разработан язык Бэйсик
    (BASIC).
    БЭЙСИК. Многоцелевой язык символических инструкций для начинающих. Научиться работе на языке Бэйсик можно за час. Но, несмотря на свою простоту, он позволяет решать сложные программы. Проблемы с применением этого языка могут возникнуть из-за большого количества его диалектов. Поэтому, переходя от одной машины к другой всегда нужно интересоваться особенностями Бэйсика для этой машины.
    Все операторы Бэйсика нумеруются, и выполнение их происходит в порядке нумерации.
    В настоящее время существуют расширенные Бэйсики для решения очень сложных задач, имеющие, например, матричные операции, которые позволяют с помощью одного оператора преобразовывать большие таблицы (матрицы).
    Есть версии Бэйсика, работающие в режиме компиляции, что значительно ускоряет выполнение программ, на этом языке.
    АЛГОЛ. Этот язык был создан в 1960 году, поэтому его иногда называют
    Алгол-60, оказал большое влияние на развитие языков программирования. Этот язык применяют в научно-технических расчетах и научно-исследовательских работах.
    Существует более поздняя разработка Алгола - Алгол-68.
    К алголоподобным языкам относятся языки Паскаль и Ада.
    ПАСКАЛЬ. Этот язык - прямое развитие направлений Алгола, создан в
    1969 г. Очень популярен в настоящее время. В связи с его простотой, его часто

    52
    используют для обучения приемам программирования. Транслятор с Паскаля также прост и занимает мало места в памяти, что особенно важно для мини- и микроЭВМ, имеющих оперативную память малой емкости. Кроме того, в
    Паскале есть достаточно сильные средства для написания так называемых системных программ, для чего обычно используют язык ассемблера. Такая универсальность и компактность Паскаля сделала его наряду с Бэйсиком очень популярным, особенно для персональных компьютеров.
    АДА. Это язык создан в 1979 году, является следующим продолжением направления Алгола программировании. Его основное назначение программирование работы самых разнообразных систем управления на ЭВМ и вообще сложных программных систем. Создание больших программных систем затрудняется тем, что они ненадежны ввиду неизбежных ошибок, допускаемых при программировании. В Аде большое внимание уделяется обеспечению надежности программ даже в ущерб легкости их написания.
    Поэтому основным элементом программы на язык Ада являются подпрограммы. В отличие от других языков, где подпрограммы играют вспомогательную, в Аде они играют главную роль.
    К более поздним разработкам алголоподобных языков относятся С и С++.
    КОБОЛ. COBOL – означает – Common Business-Oriented Language. .
    Создан в 1960 году. COBOL - язык, ориентированный на экономическое применение, для обработки больших массивов данных. Кобол-программа выглядит как ряд предложений из английских слов, что значительно облегчает его применение пользователям-экономистам, администраторам и др., поэтому он пригоден для обработки деловой информации и используется в правительственных учреждениях, страховых компаниях, банках.
    PL/1. Родился в результате попытки создания единого универсального языка программирования. Разработчики этого языка стремились совместить в нем все лучшее, что есть в АЛГОЛЕ и КОБОЛЕ. Главная цель его создания - иметь в языке средства, необходимые всем категориям программистов. Это очень мощный, но очень громоздкий язык. Этот язык может обслуживать программирование как экономических, так и научно-технических задач.
    GPSS. GPSS означает «общецелевая система моделирования». Это язык высокого уровня, позволяет моделировать поведение вероятностных систем, например, систем массового обслуживания, вычислительных. Моделирование производится путем изменения состояния моделируемого объекта и сводится к генерации этих изменений, обычно, случайных. Например, моделируя процесс обслуживания в магазине, достаточно генерировать случайные времена появления покупателей и окончание их обслуживания.
    Язык программирования состоит из двух составляющих
    1   2   3   4   5   6   7   8   9   ...   17


    написать администратору сайта