Для студентов згиа специальности 080403 ”Программное обеспечение




НазваниеДля студентов згиа специальности 080403 ”Программное обеспечение
страница2/34
Дата публикации25.02.2013
Размер3.71 Mb.
ТипМетодическое пособие
uchebilka.ru > Информатика > Методическое пособие
1   2   3   4   5   6   7   8   9   ...   34
^

Введение в системное программирование


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

Основная отличительная черта системного программирования по сравнению с прикладным программированием заключается в том, что

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

  • При системном программировании программист должен учитывать специфику аппаратной части системы, в которой функционирует программа.

  • В системном программировании обычно используется низкоуровневый язык программирования.


^

1.1 Системное и прикладное программное обеспечение


Современные ЭВМ включают два взаимосвязанных, но качественно различных компонента: технические средства (Hardware) и программное обеспечение (ПО, Software), которое в свою очередь, делится на три части: прикладное ПО, системное ПО (СПО) и программы технического обслуживания ЭВМ.

Прикладное ПО представляет собой набор программ решения конкретных задач, которыми периодически пользуются отдельные пользователи или организации. Специализированные комплекты программ решения конкретных задач называют пакетами прикладных программ (ППП).

СПО представляет собой комплекс программ, который обеспечивает функционирование ЭВМ, а также выполнение заданий пользователей. Программы СПО мало зависят от характера решаемых пользователем задач. По функциональному назначению и применяемым методам в СПО традиционно выделяют две системы программ: системы программирования (СП) и операционные системы (ОС). Система программирования – набор средств, обеспечивающих автоматизацию программирования, отладки и сопровождения программ. К СП относятся ассемблеры, компоновщики, загрузчики, препроцессоры, трансляторы, отладочные программы, библиотеки стандартных программ и т.д.

^ Операционная система – это организованная совокупность программ, разработанная специально для автоматического управления ресурсами ЭВМ.

Элементы СПО обычно тесно связаны со структурой машины, для которой созданы (должны учитываться форматы машинных команд, способы адресации, разрядность регистров и т.д.). Поэтому для частей СПО можно выделить машинозависимые характеристики и машинонезависимые характеристики.
    1. Ассемблеры



Основные функции ассемблера.

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

Большинство ассемблеров выполняет два просмотра исходной программы. Основной задачей первого просмотра является поиск символических имен и назначение им адресов [11].

Основное назначение ассемблеров состоит в трансляции, т.е. переводе мнемонических кодов операций в их эквиваленты на машинном языке.

Пример mov ax, 4 B8 0004

int 10h cd 10

push es 06

mov bl, 50 b3 32

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

В заключительной фазе своей работы ассемблер должен записать полученный объектный код на некоторое устройство вывода. Позднее эта объектная программа будет загружена в оперативную память для исполнения.

Для представления учебной объектной программы иногда используется простой формат, в котором определены три типа записей: запись-заголовок, тело программы и запись-конец. Запись-заголовок содержит имя программы её начальный адрес и длину. Тело программы содержит машинные команды и данные программы с указанием адресов их загрузки. Запись-конец отмечает конец объектной программы и определяет адрес, с которого следует начать исполнение программы (точку входа). Если этот адрес не задан, то в качестве точки входа берется адрес первой исполняемой команды. В каждой записи первым полем является признак типа записи (Head- для записи заголовка, Code- для тела программы, End- для записи конца).

Сформулируем теперь функции каждого из двух просмотров.

^ Первый просмотр (определение имен):

  1. Назначение адресов для всех предложений исходной программы.

  2. Запоминание значений (адресов), присвоенных всем меткам, для последующего их использования на втором просмотре.

  3. Выполнение некоторых директив ассемблера.

Второй просмотр (трансляция команд и генерация объектного кода).

  1. Трансляция команд (перевод кодов операций и разрешение адресных ссылок).

  2. Генерация данных, заданных директивами byte, word и др.

  3. Выполнение тех директив ассемблера, которые не были обработаны на первом просмотре.

  4. Запись объектного кода и выдача листинга.


Таблицы и алгоритмы ассемблера.

Простой ассемблер использует две основные внутренние таблицы: таблицу кодов операций (ОРТАВ) и таблицу символических имен^ (SYMТAB) [11].

ОРТАВ используется для поиска мнемонических кодов операций и перевода их в эквивалентные им представления на машинном языке.

SYMТAB используется для хранения значений (адресов), присвоенных символическим именам.

Ещё нам потребуется счетчик адреса (LOCCTR). LOCCTR - это переменная, которая используется для назначения адресов. Начальное значение LOCCTR определяется операндом директивы ORG. После обработки очередного предложения исходной программы длина полученной команды или области данных прибавляется к LOCCTR. Таким образом, если мы встречаем помеченное предложение исходной программы, то значение этой метки определяется текущим значением LOCCTR.

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

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

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

Для повышения эффективности поиска и внесения новых имен SYMTAB на протяжении всей работы ассемблера требует тщательного подбора хеш-функции. Очень часто программисты используют много похожих друг на друга имен, например LOOP1, LOOP2, … или имена, имеющие одинаковую длину (A, X, Y, Z). Важно, чтобы используемая хеш-функция обеспечивала хорошую работу с такими неслучайными именами. Часто хороший результат достигается путем деления входного ключа на простое число, равное длине таблицы.

Хотя в качестве входной информации на этапе второго просмотра можно использовать исходную программу, однако, должна быть учтена и информация первого просмотра создается промежуточный файл, который содержит с его адресом, признаком ошибки и другой необходимой информацией. Промежуточный файл является входным второго просмотра. Рабочая копия исходной программы, содержащаяся в промежуточном файле, может быть использована для того, чтобы сохранить результаты некоторых операций, выполненных во время первого просмотра (например, операции сканирования поля операндов для определения имен и способов их адресации). Это дает возможность не выполнять их ещё раз при втором просмотре. Аналогично для кодов операций и имен могут быть сохранены указатели на таблицы ОРТАВ и SYMТAB, что позволит избежать повторных операций поиска.
1   2   3   4   5   6   7   8   9   ...   34

Похожие:

Для студентов згиа специальности 080403 ”Программное обеспечение iconМетодические указания к лабораторному практикуму для студентов згиа...
Методические указания к лабораторному практикуму для студентов згиа специальности 080403 «Программное обеспечение автоматизированных...

Для студентов згиа специальности 080403 ”Программное обеспечение iconМетодические указания для студентов специальности 080403
Згиа [8, 10] и других вузов [4]. Наиболее полно описаны курсовые, дипломные и квалификационные работы, однако большинство положений...

Для студентов згиа специальности 080403 ”Программное обеспечение iconМетодические указания к курсовой работе по дисциплине «Системное...
Методические указания к курсовой работе по дисциплине «Системное программирование и операционные системы» для студентов специальности...

Для студентов згиа специальности 080403 ”Программное обеспечение iconПравила использования программного обеспечения в рамках программы...
Используя программное обеспечение вы тем самым подтверждаете свое согласие придерживаться этих правил. Если вы не согласны, не используйте...

Для студентов згиа специальности 080403 ”Программное обеспечение iconМетодические указания по выполнению лабораторных работ по курсу “
Информационные управляющие системы и технологии, 080403 – Программное обеспечение автоматизированных систем

Для студентов згиа специальности 080403 ”Программное обеспечение iconКлассификация программного обеспечения
В отличие от аппаратного обеспечения, программы, которые выполняются на нем, неосязаемы и классифицируются как программное обеспечение....

Для студентов згиа специальности 080403 ”Программное обеспечение iconКурсовая работа выполняется на основании 'Задания на курсовую работу'...
Целью курсовой работы является закрепление практических навыков самостоятельной постановки и решения задачи обработки данных с помощью...

Для студентов згиа специальности 080403 ”Программное обеспечение icon1. Классификация программного обеспечения
Назначением ЭВМ является выполнение программ. Программа содержит команды, определяющие порядок действии компьютера. Совокупность...

Для студентов згиа специальности 080403 ”Программное обеспечение iconОпорный конспект лекций по дисциплине Компьютерная графика для специальности...
Тема. Основные понятия компьютерной графики. Аппаратное и программное обеспечение

Для студентов згиа специальности 080403 ”Программное обеспечение iconМетодические указания и задание к выполнению курсового проекта по...
Методические указания и задание к выполнению курсового проекта по дисциплине «Алгоритмическое и программное обеспечение электротехнических...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
uchebilka.ru
Главная страница


<