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

ЛИЧНЫЙ КАБИНЕТ 

 

Здравствуйте гость!

 

Логин:

Пароль:

 

Запомнить

 

 

Забыли пароль? Регистрация

Повышение уникальности

Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «StudentHelp», которое позволит вам всего за несколько минут, выполнить повышение уникальности любого файла в формате MS Word. После такого повышения уникальности, ваша работа легко пройдете проверку в системах антиплагиат вуз, antiplagiat.ru, etxt.ru или advego.ru. Программа «StudentHelp» работает по уникальной технологии и при повышении уникальности не вставляет в текст скрытых символов, и даже если препод скопирует текст в блокнот – не увидит ни каких отличий от текста в Word файле.

Результат поиска


Наименование:


Диплом Информатика и управление в технических системах

Информация:

Тип работы: Диплом. Предмет: Информатика. Добавлен: 24.04.2012. Страниц: 131. Уникальность по antiplagiat.ru: < 30%

Описание (план):


СОДЕРЖАНИЕ

ВВЕДЕНИЕ 5
1. ФУНКЦИИ ОДНОПРОГРАММНОЙ СИСТЕМЫ 8
1.1. Виртуальная машина пользователя прикладной программы 8
1.2. Виртуальные машины для запуска программ 11
1.3. Виртуальная машина прикладной программы 13
1.4. Структура аппаратных средств 15
2. ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР 18
2.1. Архитектура процессора i8086 18
2.2. Адресация памяти 21
2.3. Алгоритм работы процессора 24
2.4. Работа со стеком 26
2.5. Процедуры 28
2.6. Прерывания 31
2.6.1. Внешние аппаратные прерывания 31
2.6.2. Исключения 32
2.6.3. Программные прерывания 33
2.6.4. Алгоритм выполнения прерывания 34
3. ВЫПОЛНЕНИЕ ПРИКЛАДНЫХ ПРОГРАММ В СРЕДЕ MS-DOS 38
3.1. Получение прикладной программы 38
3.2. Структура прикладной программы 41
3.2.1. Префикс программного сегмента 41
3.2.2. Программа типа com 45
3.2.3. Программа типа exe 47
3.3. Распределение памяти 50
3.4. Запуск прикладных программ 54
3.5. Резидентные программы 58
4.ФАЙЛОВАЯ ОРГАНИЗАЦИЯ ИНФОРМАЦИИ 65
4.1. Файлы 65
4.2. Файловые системы 68
4.2.1. Структура файловой системы 68
4.2.2. Атрибуты файла 71
4.2.3. Размещение элементов файловой системы 72
4.2.4. Расположение информации о размещении файла 74
4.2.5. Объединение файловых систем 75
4.3. Операции над файлами 75
4.3.1. Создание и открытие файла 75
4.3.2. Операции чтения и записи 78
4.3.3. Закрытие и уничтожение файла 80
4.3.4. Пример программы 82
4.3.5. Другие операции 84

5. УПРАВЛЕНИЕ ПЕРИФЕРИЙНЫМИ УСТРОЙСТВАМИ 86
5.1. Введение 86
5.2. Синхронный ввод-вывод 89
5.3. Асинхронный ввод-вывод с прерываниями 92
5.3.1. Контроллер прерываний 92
5.3.2. Алгоритм обработки прерываний 93
5.3.3. Пример драйвера 94
5.4. Прямой доступ в память 100
5.5. Асинхронный вывод с общей памятью 105
5.5.1. Видеоадаптер 105
5.5.2. Видеопамять 107
5.5.3. Управление курсором 110
5.5.4. Логическая схема 111
6. ЛАБОРАТОРНЫЕ РАБОТЫ 113
Введение 113
Лабораторная работа №1. Программирование драйвера экрана 113
Лабораторная работа №2. Программирование драйвера клавиатуры 115
КОНТРОЛЬНАЯ РАБОТА № 2 122
РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА 126
ПРИЛОЖЕНИЕ. ГРАФИЧЕСКИЙ ЯЗЫК ПРЕДСТАВЛЕНИЯ
ЛОГИЧЕСКИХ СТРУКТУР 127



ВВЕДЕНИЕ

Данное пособие предназначено для обучения студентов специальности «Информатика и управление в технических системах» по односеместровой дисциплине «Электронно-вычислительные машины и вычислительные системы». Основной целью данного курса является получение студентами знаний и навыков по использованию и построению системных управляющих программ для однопрограммных вычислительных систем.
Вычислительной системой (ВС) называется система, состоящая из аппаратных и программных средств, предназначенная для выполнения некоторого множества задач по переработке информации. При отсутствии таких задач ни сама ВС, ни её подсистемы не нужны.
Каждая задача, решаемая ВС, имеет алгоритм решения. Алгоритм – правило, определяющее последовательность действий над исходными данными, приводящую к получению искомых результатов. Форма представления алгоритма решения задачи, ориентированная на машинную реализацию, называется прикладной программой.
Обязательной подсистемой любой ВС является аппаратное обеспечение, называемое обычно аппаратурой. Сюда входят центральный процессор (ЦП), выполняющий машинные команды, из которых состоит любая машинная программа (в том числе и прикладная), а также оперативная память (ОП), предназначенная для хранения программ и обрабатываемых ими данных. Кроме того, любая ВС имеет периферийные аппаратные устройства: устройства ввода-вывода (например, дисплей и клавиатуру) и устройства внешней памяти (например, винчестер).
Несмотря на то, что ВС в составе двух названных подсистем (аппаратура и прикладные программы) в принципе пригодна для решения задач по переработке информации, практическое применение такой системы ограничивается лишь простейшими задачами. Это обусловлено тем, что разработка даже простой (в смысле решаемой задачи) прикладной программы на “голой” аппаратуре представляет собой очень трудоёмкий процесс. Уменьшение трудоёмкости прикладного программирования возможно по следующим направлениям:
1) изменение среды выполнения прикладной программы, приводящее к её упрощению;
2) предоставление разработчику прикладной программы возможности разрабатывать не реальную, а виртуальную (кажущуюся) программу.
Реализация перечисленных направлений обеспечивается за счет включения в ВС системных программ. Кроме того, применение системных программ позволяет создавать мультипрограммные ВС. В отличие от однопрограммной ВС, позволяющей выполнять прикладные программы только по одной (каждая следующая программа ждет завершения предыдущей), мультипрограммная ВС выполняет одновременно несколько прикладных программ. Реализация такой системы требует значительных усилий на обеспечение защиты данных одной прикладной программы от воздействия других прикладных программ. Кроме того, требуется выполнять распределение ресурсов ВС между прикладными программами.
В настоящем пособии рассматриваются вопросы организации однопрограммных ВС. Особое внимание в ходе этого рассмотрения уделяется интерфейсам между всеми тремя подсистемами ВС – прикладными программами, системными программами, аппаратурой. Значительное место в пособии занимают также принципы организации аппаратуры и системного программного обеспечения.
В качестве примера реализации аппаратуры и операционной системы для однопрограммной ВС в данном пособии рассматриваются центральный процессор Intel 8086 (сокращенно – i8086) и операционная система MS-DOS. Данный выбор обусловлен, во-первых, тем, что MS-DOS является самой распространенной однопрограммной операционной системой. Во-вторых, эта система разрабатывалась для совместного использования с процессором i8086, который аппаратно имитируется всеми последующими процессорами фирмы Intel. Выбор примера реализации однопрограммной ВС позволяет, во-первых, вести изложение на достаточно конкретном уровне. Во-вторых, многие результаты изложения могут быть перенесены на другие однопрограммные ВС, а в некоторой степени и на мультипрограммные системы.
Для изучения данного пособия требуется наличие первоначальных знаний и навыков по программированию на языке ассемблера для процессора i8086. Для их получения рекомендуются пособия автора по курсу “Информатика” [1, 2], но можно пользоваться и другими доступными учебными пособиями по этому языку программирования.
Так как пособие ориентировано, прежде всего, на получение студентами знаний и навыков по разработке управляющих программ, в нем имеется достаточно большое (9) число законченных программ, а также фрагменты программ. Почти все эти программы получены автором пособия и являются рабочими (не считая драйверов для гипотетических устройств).
В завершении данного пособия приведены методические указания по выполнению лабораторных и контрольных работ. Целью выполнения лабораторных работ является получение практических навыков по программированию операций ввода-вывода на уровне аппаратных интерфейсов (на уровне портов). Программирование ведется на языке ассемблера для процессора i8086 в среде операционной системы MS-DOS. В качестве устройств ввода-вывода используются экран и клавиатура.
Целью выполнения контрольной работы №1 является закрепление основных определений и теоретических положений данного курса. Данная контрольная работа выполняется в диалоге с компьютерной контролирующей программой.
Целью выполнения контрольной работы №2 является развитие навыков программирования на ассемблере задач, описание которых приведено в настоящем пособии.
Изучение курса “ЭВМ и ВС” заканчивается получением зачета и сдачей компьютерного экзамена. Для получения зачета требуется успешно выполнить две лабораторные и две контрольные работы, подтвердив это соответствующими отчетами. Отчеты по всем лабораторным и контрольным работам предоставляются в ТМЦДО в виде файлов на дискете.
При выполнении второй контрольной работы, а также при выполнении первой лабораторной работы используется номер варианта (от 1 до 20). Этот номер рассчитывается по формуле:
V = (20 x K) div 100,
где V – искомый номер варианта (при V = 0 выбирается номер варианта 20);
K – значение двух последних цифр пароля (число от 00 до 99);
div – целочисленное деление (после деления отбрасывается дробная часть).


1. ФУНКЦИИ ОДНОПРОГРАММНОЙ СИСТЕМЫ

1.1. Виртуальная машина пользователя прикладной программы

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



Рис.1. Подсистемы ВС
Многообразие прикладных программ чрезвычайно велико. Некоторые из этих программ, имеющие наибольшее распространение, включены в состав системных программ. Несмотря на это, для остальных системных программ и для аппаратуры эти программы выглядят точно также, как и обычные прикладные программы. Подобные программы будем называть далее системными обрабатывающими программами. К ним относятся системы программирования и утилиты.
Пользователями систем программирования являются программисты – не самая многочисленная, но очень важная часть пользователей ВС. Конечной задачей любого программирования является получение реальной программы, записанной на машинном языке. Только такая программа может быть понята и выполнена центральным процессором. К сожалению, трудоемкость программирования на таком языке очень велика и не позволяет записывать на нем сколько-нибудь сложные (по решаемым задачам) программы. Решением данной проблемы является предоставление программисту возможности разрабатывать не реальную, а виртуальную прикладную программу.
Виртуальная прикладная программа записывается на языке программирования, отличном от языка машинных команд. Преобразование этой программы в реальную программу выполняет совокупность системных программ, называемая системой программирования. В её состав входят стандартные подпрограммы и лингвистический процессор. Благодаря наличию системы программирования программист работает на виртуальной машине пользователя системы программирования (рис.2). Эта ВМ “понимает” операторы используемого языка программирования, а также команды управления работой лингвистического процессора.
Лингвистический процессор – системная программа, выполняющая перевод описания алгоритма с одного языка на другой. Сущность алгоритма при этом сохраняется, но форма его представления, ориентированная на программиста, преобразуется в форму, ориентированную на ЦП. Лингвистические процессоры делятся на трансляторы и интерпретаторы. В результате работы транслятора алгоритм, записанный на языке программирования (исходная виртуальная программа), преобразуется в алгоритм, записанный на машинном языке. (На самом деле, как будет показано позже, машинная программа является результатом совместной работы нескольких лингвистических процессоров.)
Трансляторы делятся на компиляторы и ассемблеры. Исходная программа для транслятора–ассемблера записывается на языке-ассемблере. Один оператор данного языка транслируется в одну машинную команду. Исходная программа для компилятора записывается на языке программирования высокого уровня. Каждый оператор такого языка транслируется в несколько машинных команд. Примерами языков высокого уровня являются Паскаль и Си.


ВМ_П_СП – виртуальная машина пользователя системы программирования;
ВМ_ПП – виртуальная машина прикладной программы.

Рис.2. Виртуальная машина пользователя системы программирования

Интерпретатор в отличии от транслятора не выдаёт машинную программу целиком. Выполнив перевод очередного оператора исходной программы в соответствующую совокупность машинных команд, интерпретатор обеспечивает их выполнение. Затем преобразуется тот исходный оператор, который должен выполняться следующим по логике алгоритма и т.д.
Стандартная подпрограмма – подпрограмма, предназначенная для использования во многих прикладных программах. Примером являются подпрограммы вычисления математических функций. Вместо того, чтобы каждый раз заново программировать, например, вычисление функции sin(x), достаточно записать в свою виртуальную программу оператор вызова системной подпрограммы, выполняющей вычисление синуса. При получении машинной программы тексты стандартных подпрограмм «встраиваются» в нее транслятором.
Предоставляя программисту возможность работать с виртуальной машиной, сама система программирования “выполняется” на ВМ, аналогичной той, на которой выполняется прикладная программа (ВМ_ПП). Это обусловлено тем, что и прикладная программа, и система программирования являются машинными программами. Более того, с точки зрения самой ВС, между ними нет принципиальной разницы, так как и та и другая программы относятся к классу обрабатывающих программ. Рассмотрение ВМ_ПП отложим до следующего раздела, а пока рассмотрим еще одну разновидность системных обрабатывающих программ – утилиты.
Утилиты – обслуживающие программы, которые выполняют:
1) перенос данных с одного периферийного устройства на другое или перенос данных в пределах одного устройства. Примеры: программа копирования данных на магнитном диске; программа ввода данных с клавиатуры терминала на диск; программа распечатки информации на диске;
2) программы изменения расположения данных. Это различные программы сортировки;
3) программы для изменения представления данных. Сюда относятся
редакторы, которые осуществляют редактирование виртуальных программ и других текстов, а также программы перекодировки данных для согласования программ, использующих разные кодировки, или для обеспечения секретности.
Примером сложной утилиты является Norton Commander. Эта утилита переносит с диска на экран информацию, содержащуюся в любом каталоге любого логического диска. По запросу пользователя она выводит на экран файловую структуру любого логического диска. Кроме того, она предоставляет пользователю удобный язык управления операционной системой MS-DOS за счет того, что она переносит имя исполняемого файла программы из позиции экрана, отмеченной пользователем с помощью псевдокурсора (псевдокурсор – светящийся прямоугольник) в то место памяти, откуда это имя может взять интерпретатор команд ОС.
В отличии от систем программирования, утилиты используются не только программистами, но и пользователями–непрограммистами. Эта наиболее многочисленная категория пользователей ВС работает на виртуальных машинах, предоставляемых готовыми прикладными программами, а также утилитами.

1.2. Виртуальные машины для запуска программ
Для того чтобы пользователь мог работать на виртуальной машине, предоставляемой прикладной программой (утилитой или системой программирования), эту программу необходимо запустить. Для этого следует выполнить действия:
1) создать исполняемую ВМ_ПП. То есть для прикладной программы должны быть выделены аппаратные ресурсы (время ЦП, пространство ОП, ПУ) в объёме не менее минимально-необходимого для выполнения этой программы. Иными словами, ВМ_ПП должна опираться (отображаться) на реальную аппаратуру, достаточную для выполнения программы;
2) загрузить в эту ВМ требуемую прикладную программу, утилиту или систему программирования;
3) инициировать программу. Инициирование – запуск, приведение в действие. (Не путать с термином инициализация – начальная подготовка к работе.)
Для задания требуемой прикладной программы пользователь ВС пользуется языком управления операционной системой, называемым также командным языком или языком директив. Одна команда этого языка задаёт выполнение одной прикладной программы (утилиты или системы программирования). Поэтому язык управления ОС может рассматриваться как язык программирования очень высокого уровня.
Вспомним, что операторы языка программирования могут обрабатываться одним из двух видов лингвистических процессоров – транслятором или интерпретатором. Операторы языка управления ОС обрабатываются модулем ОС, называемым интерпретатором команд (ИК). Другие названия этого модуля: командный процессор, командная оболочка. ИК представляет собой лишь “видимую”, сравнительно небольшую часть ОС. На самом деле, чтобы интерпретировать, т.е. выполнить (преобразовав в совокупность машинных команд), очередную команду пользователя, ИК инициирует многие другие модули ОС. Одни из них ищут текст требуемой прикладной программы на диске, другие выделяют необходимые аппаратные ресурсы (обеспечивают исполняемость ВМ_ПП), третьи загружают программу в ОП и инициируют её.
Имея в своём распоряжении язык управления ОС, пользователь работает на виртуальной машине пользователя для запуска программ (ВМ_П_З) (рис.3).


ВМ_П_З – ВМ пользователя для запуска программ
ВМ_П_ПП – ВМ пользователя прикладной программы
ВМ_ПП – ВМ прикладной программы

Рис.3. Виртуальные машины пользователя в однопрограммной ВС
После того, как пользователь запустил прикладную программу (утилиту или систему программирования), он работает на ВМ, предоставляемой данной программой. После завершения прикладной программы пользователь опять оказывается на ВМ_П_З. Подобная смена виртуальных машин происходит до завершения текущего сеанса работы пользователя с ВС.
Как правило, однопрограммные ВС позволяют своим пользователям выдавать команды управления как по одиночке, так и группами, называемыми командными файлами. В этом случае одному сеансу работы на ВМ_П_З соответствуют несколько сеансов работы на различных ВМ_П_ПП. В остальном описанная выше схема остаётся справедливой.

1.3. Виртуальная машина прикладной программы
Предоставление разработчику прикладной программы возможности разрабатывать не реальную, а виртуальную программу многократно уменьшает трудоемкость разработки. Другим важным направлением снижения трудоемкости прикладного программирования является изменение среды выполнения прикладной программы, приводящее к её упрощению. (Понятно, что чем проще машинная программа, тем проще её разработка.)
Изменение среды выполнения прикладной программы достигается путём предоставления ей возможности пользоваться услугами системных подпрограмм управления аппаратурой. Примером такой подпрограммы является подпрограмма, выполняющая вывод символьной информации на устройство печати (принтер). Вместо того, чтобы реализовывать в своей прикладной программе функцию печати (для этого нужны сотни машинных команд), наша программа использует единственную машинную команду для вызова соответствующей системной подпрограммы. С учётом того, что для каждого аппаратного устройства в ВС имеется одна или несколько управляющих подпрограмм, прикладная программа имеет в своём распоряжении не реальную машину с “голой” аппаратурой, а виртуальную машину прикладной программы (ВМ_ПП) (рис.4).


Системные вызовы Машинные команды


ВМ_ПП предоставляет в распоряжение прикладной программы виртуальные устройства:
1) виртуальный ЦП. Несмотря на то, что в прикладной программе присутствуют только машинные команды реального ЦП, эффект от выполнения некоторых из них многократно усиливается за счёт вызова ими (при их выполнении на ЦП) системных подпрограмм. Другим отличием виртуального ЦП от реального является то, что он обслуживает нашу прикладную программу непрерывно (реальный ЦП может отвлекаться от нашей программы, выполняя другие программы);
2) виртуальная ОП. Объём этой памяти может многократно превосходить объём реальной ОП, предоставляемой в распоряжение программы. Кроме того, способ указания (способ адресации) ячеек виртуальной ОП обычно отличается от соответствующего способа для реальной ОП;
3) виртуальная ВП. Такая память имеет структуру, существенно отличную от структуры реальной ВП. Благодаря этому пользоваться виртуальной ВП намного удобнее;
4) виртуальные ПУ. Если наша программа работает с периферийным устройством путём вызова соответствующей системной подпрограммы, то эта подпрограмма и представляет для программы виртуальное ПУ.
Все перечисленные виртуальные устройства (за исключением ОП) реализуются путем вызова из прикладной программы системных управляющих подпрограмм. (Виртуальная ОП реализуется в общем случае совместными усилиями аппаратуры ЦП и управляющих программ.) Такие вызовы будем называть далее системными вызовами. Они разделяются на две группы (рис.5):
1) вызовы BIOS;
2) вызовы операционной системы (ОС)....................




Перейти к полному тексту работы


Скачать работу с онлайн повышением уникальности до 90% по antiplagiat.ru, etxt.ru или advego.ru


Смотреть похожие работы


* Примечание. Уникальность работы указана на дату публикации, текущее значение может отличаться от указанного.