Автор работы: Пользователь скрыл имя, 19 Марта 2012 в 18:06, отчет по практике
В современном мире с развитием компьютерных технологий становится необходимым повышение уровня знаний в этой области. В связи с этим становятся актуальными вопросы углубленного изучения таких фундаментальных сфер как:
программирование на языках высокого уровня;
операционные системы и среды;
сети ЭВМ и телекоммуникации;
базы данных.
Введение 3
Глава 1 Общие сведения об организации 4
Глава 2 Программирование на языках высокого уровня 5
2.1. Основные этапы решения задач на ЭВМ 5
2.2. Критерии качества программы 9
2.3. Способы записи алгоритма 9
Глава 3 Операционные системы и среды 14
3.1. Классификация ОС 14
3.2. Информация о современных ОС 14
3.3. Основные различия между ОС 15
3.4. Принципы мультипрограммирования 15
3.5. Режимы работы ОС 16
3.6. Понятие процесса и ядра 18
3.7. Понятие событийного программирования 18
3.8. Понятие прерывания 18
Глава 4 Сети ЭВМ и телекоммуникации 20
4.1. Классификация информационно-вычислительных сетей 20
4.2. Способы коммутации 20
4.3. Каналы передачи данных 20
4.4. Способы модуляции 21
4.5. Кодирование информации 22
4.6. Алгоритмы сжатия данных 24
4.7. Методы доступа 25
4.8. Функции уровней модели OSI 26
4.9. Алгоритмы маршрутизации 28
Глава 5 Базы данных 32
5.1. Назначение и основные компоненты системы баз данных 32
5.2. Обзор современных систем управления базами данных 32
5.3. Модели данных 33
5.4. Язык манипулирования данными 34
5.5. Проектирование баз данных и их физическая организация 34
Заключение 36
Список литературы
Оглавление
Введение 3
Глава 1 Общие сведения об организации 4
Глава 2 Программирование на языках высокого уровня 5
2.1. Основные этапы решения задач на ЭВМ 5
2.2. Критерии качества программы 9
2.3. Способы записи алгоритма 9
Глава 3 Операционные системы и среды 14
3.1. Классификация ОС 14
3.2. Информация о современных ОС 14
3.3. Основные различия между ОС 15
3.4. Принципы мультипрограммирования
3.5. Режимы работы ОС 16
3.6. Понятие процесса и ядра 18
3.7. Понятие событийного программирования 18
3.8. Понятие прерывания 18
Глава 4 Сети ЭВМ и телекоммуникации 20
4.1. Классификация информационно-вычислительных сетей 20
4.2. Способы коммутации 20
4.3. Каналы передачи данных 20
4.4. Способы модуляции 21
4.5. Кодирование информации 22
4.6. Алгоритмы сжатия данных 24
4.7. Методы доступа 25
4.8. Функции уровней модели OSI 26
4.9. Алгоритмы маршрутизации 28
Глава 5 Базы данных 32
5.1. Назначение и основные компоненты системы баз данных 32
5.2. Обзор современных систем управления базами данных 32
5.3. Модели данных 33
5.4. Язык манипулирования данными 34
5.5. Проектирование баз данных и их физическая организация 34
Заключение 36
Список литературы 37
Введение
В современном мире с развитием компьютерных технологий становится необходимым повышение уровня знаний в этой области. В связи с этим становятся актуальными вопросы углубленного изучения таких фундаментальных сфер как:
программирование на языках высокого уровня;
операционные системы и среды;
сети ЭВМ и телекоммуникации;
базы данных.
Целью данного отчета является раскрытие вышеперечисленных тем с теоретической и практической точки зрения с учетом знаний и навыков полученных в ходе производственно-технической практики.
Глава 1 Ознакомление с объектом работы
1.Ознакомление с объектом практики
Организация «Центр автоматизации ООО Крафт-эксперт» адрес: г. Челябинск, ул. Кирова 19, офис 804. По профилю деятельности центр предоставляет свои услуги в следующих сферах: Автоматизация бизнеса, Услуги системного администрирования, Бухгалтерские программы, Автоматизация производства, Продажа программ и ПО.
Глава 2 Программирование на языках высокого уровня
2.1 Основные этапы решения задач на ЭВМ
На ЭВМ могут решаться задачи различного характера, например: научно-инженерные; разработки системного программного обеспечения; обучения; управления производственными процессами и т. д. В процессе подготовки и решения на ЭВМ научно-инженерных задач можно выделить следующие этапы:
1. постановка задачи;
2. математическое описание задачи;
3. выбор и обоснование метода решения;
4. алгоритмизация вычислительного процесса;
5. составление программы;
6. отладка программы;
7. решение задачи на ЭВМ и анализ результатов.
В задачах другого класса некоторые этапы могут отсутствовать, например, в задачах разработки системного программного обеспечения отсутствует математическое описание. Перечисленные этапы связаны друг с другом. Например, анализ результатов может показать необходимость внесения изменений в программу, алгоритм или даже в постановку задачи. Для уменьшения числа подобных изменений необходимо на каждом этапе по возможности учитывать требования, предъявляемые последующими этапами. В некоторых случаях связь между различными этапами, например, между постановкой задачи и выбором метода решения, между составлением алгоритма и программированием, может быть настолько тесной, что разделение их становится затруднительным.
1. Постановка задачи
На данном этапе формулируется цель решения задачи и подробно описывается ее содержание. Анализируются характер и сущность всех величин, используемых в задаче, и определяются условия, при которых она решается. Корректность постановки задачи является важным моментом, так как от нее в значительной степени зависят другие этапы.
2. Математическое описание задачи
Настоящий этап характеризуется математической формализацией задачи, при которой существующие соотношения между величинами, определяющими результат, выражаются посредством математических формул. Так формируется математическая модель явления с определенной точностью, допущениями и ограничениями. При этом в зависимости от специфики решаемой задачи могут быть использованы различные разделы математики и других дисциплин. Математическая модель должна удовлетворять по крайней мере двум требованиям: реалистичности и реализуемости. Под реалистичностью понимается правильное отражение моделью наиболее существенных черт исследуемого явления. Реализуемость достигается разумной абстракцией, отвлечением от второстепенных деталей, чтобы свести задачу к проблеме с известным решением. Условием реализуемости является возможность практического выполнения необходимых вычислений за отведенное время при доступных затратах требуемых ресурсов. Реализуемость достигается разумной абстракцией, отвлечением от второстепенных деталей, чтобы свести задачу к проблеме с известным решением. Условием реализуемости является возможность практического выполнения необходимых вычислений за отведенное время при доступных затратах требуемых ресурсов.
3. Выбор и обоснование метода
Модель решения задачи с учетом ее особенностей должна быть доведена до решения при помощи конкретных методов решения. Само по себе математическое описание задачи в большинстве случаев трудно перевести на язык машины. Выбор и использование метода решения задачи позволяет привести решение задачи к конкретным машинным операциям. При обосновании выбора метода необходимо учитывать различные факторы и условия, в том числе точность вычислений, время решения задачи на ЭВМ, требуемый объем памяти и другие. Одну и ту же задачу можно решить различными методами, при этом в рамках каждого метода можно составить различные алгоритмы.
4. Алгоритмизация вычислительного процесса
На данном этапе составляется алгоритм решения задачи согласно действиям, задаваемым выбранным методом решения. Процесс обработки данных разбивается на отдельные относительно самостоятельные блоки, и устанавливается последовательность выполнения блоков. Разрабатывается блок-схема алгоритма.
5. Составление программы
При составлении программы алгоритм решения задачи переводится на конкретный язык программирования. Для программирования обычно используются языки высокого уровня, поэтому составленная программа требует перевода ее на машинный язык ЭВМ. После такого перевода выполняется уже соответствующая машинная программа.
6. Отладка программы
Отладка заключается в поиске и устранении синтаксических и логических ошибок в программе. В ходе синтаксического контроля программы транслятором выявляются конструкции и сочетания символов, недопустимые с точки зрения правил их построения или написания, принятых в данном языке. Сообщения об ошибках ЭВМ выдает программисту, при этом вид и форма выдачи подобных сообщений зависят от вида языка и версии используемого транслятора. После устранения синтаксических ошибок проверяется логика работы программы в процессе ее выполнения с конкретными исходными данными. Для этого используются специальные методы, например, в программе выбираются контрольные точки, для которых вручную рассчитываются промежуточные результаты. Эти результаты сверяются со значениями, получаемыми ЭВМ в данных точках при выполнении отлаживаемой программы. Кроме того, для поиска ошибок могут быть использованы отладчики, выполняющие специальные действия на этапе отладки, например, удаление, замена или вставка отдельных операторов или целых фрагментов программы, вывод или изменение значений заданных переменных.
7. Решение задачи на ЭВМ и анализ результатов
После отладки программы ее можно использовать для решения прикладной задачи. При этом обычно выполняется многократное решение задачи на ЭВМ для различных наборов исходных данных. Получаемые результаты интерпретируются и анализируются специалистом или пользователем, поставившим задачу.
2.2 Критерии качества программы
Основные критерии качества программного обеспечения:
простота;
надежность;
быстродействие;
субъективное удобство использования целевой аудиторией;
мультиплатформенность;
расширяемость.
2.3 Способы записи алгоритма
Алгоритмы можно записывать разными способами, называемыми формой представления алгоритма. На практике наиболее распространены следующие формы представления алгоритмов:
– словесная (записи на естественном языке);
– графическая (изображения из графических символов);
– псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.);
– программная (тексты на языках программирования).
Словесная форма записи не так широко распространена в литературе из-за ее многословности и отсутствия наглядности.
Рассмотрим запись алгоритма в словесной форме на примере алгоритма нахождения максимального из двух значений:
Определим форматы переменных X, Y, M, где X и Y – значения для сравнения, M – переменная для хранения максимального значения.
1. Получим два значения чисел X и Y для сравнения;
2. сравним X и Y;
3. если X меньше Y, значит большее число Y;
4. поместим в переменную M значение Y;
5. если X не меньше (больше) Y, значит большее число X;
6. поместим в переменную M значение X.
Как видно из данного примера словесный способ описания обладает следующими недостатками:
– описание строго не формализуемо;
– запись получилась многословной;
– отдельные предписания (действия) допускают неоднозначность толкования.
Именно эти три причины не позволили получить широкое распространение словесной форме записи.
Графический способ оказался очень удобным средством изображения алгоритмов и получил широкое распространение в научной и учебной литературе.
Структурная (блок-) схема алгоритма – графическое изображение алгоритма в виде схемы связанных между собой с помощью стрелок (линий перехода) блоков – графических символов, каждый из которых соответствует одному шагу алгоритма. Внутри каждого блока дается описание соответствующего действия.
Графическое изображение алгоритма широко используется перед программированием задачи вследствие его наглядности, т.к. зрительное восприятие обычно облегчает процесс написания программы, ее корректировки при возможных ошибках, осмысливание процесса обработки информации.
Можно встретить даже такое утверждение: «Внешне алгоритм представляет собой схему – набор прямоугольников и других символов, внутри которых записывается, что вычисляется, что вводится в машину и что выдается на печать и другие средства отображения информации». Здесь форма представления алгоритма смешивается с самим алгоритмом.
Принцип программирования «сверху вниз» требует, чтобы блок-схема поэтапно конкретизировалась и каждый блок «расписывался» до элементарных операций. Но такой подход можно осуществить при решении несложных задач. При решении сколько-нибудь серьезной задачи блок-схема «расползется» до такой степени, что ее невозможно будет охватить одним взглядом.
Блок-схемы алгоритмов удобно использовать для объяснения работы уже готового алгоритма, при этом в качестве блоков берутся действительно блоки алгоритма, работа которых не требует пояснений. Блок-схема алгоритма должна служить для упрощения изображения алгоритма, а не для усложнения.
В таблице приведены наиболее часто употребляемые символы.
Название символа | Обозначение и пример заполнения | Пояснение |
Процесс | Вычислительное действие или последовательность действий | |
Решение | Проверка условий | |
Модификация | Начало цикла | |
Предопределенный процесс | Вычисления по подпрограмме, стандартной подпрограмме | |
Ввод-вывод | Ввод-вывод в общем виде | |
Пуск-останов | Начало, конец алгоритма, вход и выход в подпрограмму | |
Документ | Вывод результатов на печать |
Блок «процесс» применяется для обозначения действия или последовательности действий, изменяющих значение, форму представления или размещения данных. Для улучшения наглядности схемы несколько отдельных блоков обработки можно объединять в один блок. Представление отдельных операций достаточно свободно.
Блок «решение» используется для обозначения переходов управления по условию. В каждом блоке «решение» должны быть указаны вопрос, условие или сравнение, которые он определяет.
Блок «модификация» используется для организации циклических конструкций. (Слово модификация означает видоизменение, преобразование). Внутри блока записывается параметр цикла, для которого указываются его начальное значение, граничное условие и шаг изменения значения параметра для каждого повторения.
Блок «предопределенный процесс» используется для указания обращений к вспомогательным алгоритмам, существующим автономно в виде некоторых самостоятельных модулей, и для обращений к библиотечным подпрограммам.
Псевдокод представляет собой систему обозначений и правил, предназначенную для единообразной записи алгоритмов. Он занимает промежуточное место между естественным и формальным языками. С одной стороны, псевдокод близок к обычному естественному языку, поэтому алгоритмы могут на нем записываться и читаться как обычный текст. С другой стороны, в псевдокоде используются некоторые формальные конструкции и математическая символика, что приближает запись алгоритма к общепринятой математической записи. В псевдокоде не приняты строгие синтаксические правила для записи команд, присущие формальным языкам, что облегчает запись алгоритма на стадии его проектирования и дает возможность использовать более широкий набор команд, рассчитанный на абстрактного исполнителя. Однако в псевдокоде обычно имеются некоторые конструкции, присущие формальным языкам, что облегчает переход от записи на псевдокоде к записи алгоритма на формальном языке. В частности, в псевдокоде, так же, как и в формальных языках, есть служебные слова, смысл которых определен раз и навсегда. Они выделяются в печатном тексте жирным шрифтом, а в рукописном тексте подчеркиваются. Единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором служебных слов и основных (базовых) конструкций.
К таким конструкциям обычно относят ветвления (если …то … иначе …) и циклы (цикл от … до …, цикл пока, цикл до...).
При записи алгоритма в словесной форме, в виде блок-схемы или на псевдокоде допускается определенный произвол при изображении команд. Вместе с тем такая запись точна настолько, что позволяет человеку понять суть дела и исполнить алгоритм.
Однако на практике в качестве исполнителей алгоритмов используются специальные автоматы — компьютеры. Поэтому алгоритм, предназначенный для исполнения на компьютере, должен быть записан на «понятном» ему языке. И здесь на первый план выдвигается необходимость точной записи команд, не оставляющей места для произвольного толкования их исполнителем.
Следовательно, язык для записи алгоритмов должен быть формализован. Такой язык принято называть языком программирования, а запись алгоритма на этом языке — программой для компьютера.
Глава 3 Операционные системы и среды
3.1 Классификация ОС
Операционные системы можно классифицировать, используя следующие критерии:
направленность системы (для вычислительных комплексов, КПК, персональных стационарных машин и т.д.);
поддержка многопользовательского режима;
поддержка многозадачности;
поддержка многопоточности;
вытесняющая и не вытесняющая многозадачность;
многопроцессорная обработка;
способ адресации памяти;
использование сетей;
способы работы с файлами (файловая система);
организация ядра системы.
3.2 Информация о современных ОС
В настоящее время более всего распространены операционные системы семейств Windows и Unix. Гораздо меньшей распространенностью обладает ОС Mac OS X.
Наиболее распространенными среди семейства Windows являются Windows XP, Windows Vista, а так же серверные модификации Windows 2003 и 2008. Unix в свою очередь распространен в лице FreeBSD и большого числа дистрибутивов линейки Linux.
Современные операционные системы повсеместно поддерживают многоядерность, и имеют отдельные версии систем с 64х битной адресацией памяти, что позволяет адресовать большое количество оперативной памяти.
3.3 Основные различия между ОС
Многообразие существующих систем имеет огромное количество отличий в подходе к решению различных задач, такое огромное, что рассмотреть его детально не представляется возможным, поэтому ограничимся рассмотрением организации ядра системы.
По существу ядро представляет собой набор компонентов, при помощи которых система решает конкретные задачи. Большинство повсеместно распространяемых систем в стандарте предусматривают всестороннюю ориентированность на разнообразные (порой взаимоисключающие) задачи. Таким образом, они имеют большое число невостребованных инструментов, которые, однако, остаются в системе и занимают вычислительные ресурсы компьютера. Так рождается одно из фундаментальных различий систем семейств Windows и Unix.
В Windows ядро монолитно и любое вмешательство в него исключено, в то время как ядро Unix можно сконфигурировать в соответствии с конкретно стоящей перед вычислительной машиной целью тем самым избавившись от всего лишнего и увеличив устойчивость системы от сбоев.
3.4 Принципы мультипрограммирования
Мультипрограммирование — способ организации выполнения нескольких программ на одном компьютере.
Разделяют мультипрограммирование в пакетных системах, системах реального времени и мультипрограммирование в системах разделения времени.
Пакетная обработка
Пакетная обработка используется для достижения максимальной эффективности использования ресурсов вычислительной машины при выполнении вычислительных задач путём сбалансированной загрузки её компонентов. Задачи, планируемые к выполнению, называются пакетом. Переключение между задачами в пакетном режиме инициируется выполняющейся в данный момент задачей, поэтому промежутки времени выполнения той или иной задачи не определены.
Системы реального времени
В системах реального времени мультипрограммная смесь представляет собой фиксированный набор заранее разработанных предсказуемых программ. Выбор конкретной программы производится по прерываниям от объекта или в соответствии с планом.
Системы разделения времени
Системы разделения времени используются для «одновременного» выполнения нескольких программ в интерактивном режиме. В отличие от пакетного режима, все программы получают определённые временные промежутки времени для выполнения, затем система инициирует переключение. Выделяемые временные интервалы могут быть равными для всех задач, могут определяться их приоритетами и т. д.
3.5 Режимы работы ОС
Режим реального времени - режим обработки данных, при котором обеспечивается взаимодействие вычислительной системы с внешними по отношению к ней процессами в темпе, соизмеримом со скоростью протекания этих процессов. Этот режим обработки данных широко используется в системах управления и информационно-поисковых системах
Однопрограммный режим работы вычислительной системы. Аппаратные средства ЭВМ совместно с программным обеспечением образуют ВС. В зависимости от класса ЭВМ и вида операционной системы ВС могут работать в режимах однопрограммном и мультипрограммном. В однопрограммном режиме работы в памяти ЭВМ находится и выполняется только одна программ. Такой режим обычно характерен для микро-ЭВМ и персональных ЭВМ, то есть для ЭВМ индивидуального пользования.
В мультипрограммном (многопрограммном) режиме работы в памяти ЭВМ находится несколько программ, которые выполняются частично или полностью между переходами процессора от одной задачи к другой в зависимости от ситуации, складывающейся в системе.
В мультипрограммном режиме более эффективно используются машинное время и оперативная память, так как при возникновении каких-либо ситуаций в выполняемой задаче, требующих перехода процессора в режим ожидания, процессор переключается на другую задачу и выполняет ее до тех пор, пока в ней не возникает подобная ситуация, и т.д.
При реализации мультипрограммного режима требуется определять очередность переключения задач и выбирать моменты переключения, чтобы эффективность использования машинного времени и памяти была максимальной.
Мультипрограммный режим обеспечивается аппаратными средствами ЭВМ и средствами операционной системы. Он характерен для сложных ЭВМ, где стоимость машинного времени значительно выше, чем у микро-ЭВМ. Разработаны также мультипрограммные ОС, позволяющие одновременно следить за решением нескольких задач и повышать эффективность работы пользователя.
Режим пакетной обработки. В зависимости от того, в каком порядке при мультипрограммном режиме выполняются программы пользователей, различают режимы пакетной обработки задач и коллективного доступа.
В режиме пакетной обработки задачи выстраиваются в одну или несколько очередей и последовательно выбираются для их выполнения.
Режим коллективного доступа. В режиме коллективного доступа каждый пользователь ставит свою задачу на выполнение в любой момент времени, то есть для каждого пользователя в такой ВС реализуется режим индивидуального пользования. Это осуществляется обычно с помощью квантования машинного времени, когда каждой задаче, находящейся в оперативной памяти ЭВМ, выделяется квант времени. После окончания кванта времени процессор переключается на другую задачу или продолжает выполнение прерванной в зависимости от ситуации в ВС. Вычислительные системы, обеспечивающие коллективный доступ пользователей с квантованием машинного времени, называют ВС с разделением времени.
3.6 Понятие процесса и ядра
Процесс - совокупность взаимосвязанных и взаимодействующих действий, преобразующих входящие данные в исходящие.
Ядро — центральная часть операционной системы (ОС), обеспечивающая приложениям координированный доступ к ресурсам компьютера, таким как процессорное время, память и внешнее аппаратное обеспечение. Также обычно ядро предоставляет сервисы файловой системы и сетевых протоколов.
3.7 Понятие событийного программирования
Событийно-ориентированное программирование — это способ построения компьютерной программы, при котором в коде выделяется главный цикл приложения, тело которого состоит из двух частей: выборки события и обработки события.
3.8 Понятие прерывания
Прерывания – специфические сигналы, посылаемые процессору устройством или программой, когда требуется его немедленное вмешательство. В этом случае он останавливает всякую другую деятельность и вызывает программу- обработчик прерывания. По окончании ее работы он продолжает прерванную работу с того места, где она остановилась.
Прерывания бывают 2 типов :
аппаратные (генерируются схемами ПК в ответ на какое-либо действие,
например, при нажатии клавиши на клавиатуре генерируется прерывание
Иногда аппаратные прерывания генерируются устройством в случае некорректной
работы программы, например деление на 0.
программные – генерируются программой для вызова различных
подпрограмм из ОЗУ и ПЗУ.
Аппаратные прерывания процессор обрабатывает в порядке приоритета
(важности). Прерывания, требующие немедленной реакции процессора
немаскируемые (NMI). Такие прерывания процессор обрабатывает перед всеми остальными, часто они сигнализируют об аварийных ситуациях.
Глава 4 Сети ЭВМ и телекоммуникации
4.1 Классификация информационно-вычислительных сетей
В зависимости от расстояний между связываемыми узлами различают вычислительные сети:
территориальные;
локальные (ЛВС);
корпоративные.
Особо выделяют единственную в своем роде глобальную сеть Internet (реализованная в ней информационная служба World Wide Web (WWW) переводится на русский язык как всемирная паутина).
4.2 Способы коммутации
К способам коммутации относят коммутацию каналов и коммутацию пакетов.
Коммутация каналов устанавливает физическое соединение между абонентом-отправителем сообщения и получателем. Способ коммутаций каналов прост в реализации, но дает наибольшую задержку при передаче сообщения и снижает пропускную способность сети.
Коммутация пакетов не устанавливает физический канал связи между абонентами. Определяется логический канал связи, т.е. указывается адрес получателя пакета, адрес отправителя и путь передачи пакета. Поступивший в узел коммутации (УК) пакет запоминается и ждет до тех пор, пока не освободится канал к следующему УК. Пакет в каждый момент времени занимает только канал между двумя соседними УК. Это повышает пропускную способность сети и уменьшает задержку передачи пакета.
4.3 Каналы передачи данных
Каналы передачи данных делят на следующие категории:
кабельные каналы связи;
оптоволоконные каналы и беспроводные оптические связи;
беспроводные (радио) каналы и сети.
4.4 Способы модуляции
Аналоговая модуляция является таким способом физического кодирования, при котором информация кодируется изменением амплитуды, частоты или фазы синусоидального сигнала несущей частоты. На диаграмме (рис. 1, а) показана последовательность бит исходной информации, представленная потенциалами высокого уровня для логической единицы и потенциалом нулевого уровня для логического нуля. Такой способ кодирования называется потенциальным кодом, который часто используется при передаче данных между блоками компьютера.
Рисунок 1 – Различные типы модуляции
При амплитудной модуляции (рис. 1, б) для логической единицы выбирается один уровень амплитуды синусоиды несущей частоты, а для логического нуля - другой. Этот способ редко используется в чистом виде на практике из-за низкой помехоустойчивости, но часто применяется в сочетании с другим видом модуляции - фазовой модуляцией.
При частотной модуляции (рис. 1, в) значения 0 и 1 исходных данных передаются синусоидами с различной частотой - f0 и f1. Этот способ модуляции не требует сложных схем в модемах и обычно применяется в низкоскоростных модемах, работающих на скоростях 300 или 1200 бит/с.
При фазовой модуляции (рис. 1, г) значениям данных 0 и 1 соответствуют сигналы одинаковой частоты, нос различной фазой, например 0 и 180 градусов или 0,90,180 и 270 градусов.
В скоростных модемах часто используются комбинированные методы модуляции, как правило, амплитудная в сочетании с фазовой
4.5 Кодирование информации
Все виды данных в компьютерном мире представляют собой бинарный код. Каждый метод кодирования устанавливает, по какому правилу данные будут представлены в виде сигналов. В случае электрических линий передачи каждому набору бит будет приведён в соответствие определённый набор уровней электрического сигнала. Некоторые методы кодирования обладают свойством самосинхронизации, что позволяет упростить процесс декодирования. Также имеет большое значение то, какое количество данных может быть передано по физическому каналу.
Потенциальный код NRZ
Потенциальное кодирование, также называется кодированием без возвращения к нулю (NRZ). При передаче последовательности единиц, сигнал, в отличие от других методов кодирования, не возвращается к нулю в течение такта.
Достоинства метода NRZ:
простота реализации;
метод обладает хорошей распознаваемостью ошибок (благодаря наличию двух резко отличающихся потенциалов);
основная гармоника f0 имеет достаточно низкую частоту (равную N/2 Гц, где N — битовая скорость передачи дискретных данных [бит/с]), что приводит к узкому спектру.
Недостатки метода NRZ:
метод не обладает свойством самосинхронизации. Даже при наличии высокоточного тактового генератора приёмник может ошибиться с выбором момента съёма данных, так как частоты двух генераторов никогда не бывают полностью идентичными. Поэтому при высоких скоростях обмена данными и длинных последовательностях единиц или нулей небольшое рассогласование тактовых частот может привести к ошибке в целый такт и, соответственно, считыванию некорректного значения бита.
вторым серьёзным недостатком метода, является наличие низкочастотной составляющей, которая приближается к постоянному сигналу при передаче длинных последовательностей единиц и нулей. Из-за этого многие линии связи, не обеспечивающие прямого гальванического соединения между приёмником и источником, этот вид кодирования не поддерживают. Поэтому в сетях код NRZ в основном используется в виде различных его модификаций, в которых устранены как плохая самосинхронизация кода, так и проблемы постоянной составляющей.
Кодирование с возвратом к нулю
При этом способе кодирования каждый бит передается 3-мя уровнями напряжения, поэтому требует в 2 раза больше скорости по сравнению с обычной скоростью. Данный код используется в оптоволокне и является биполярным, то есть изменение сигнала происходит между 3-мя уровнями.
Манчестерское кодирование
При манчестерском кодировании каждый такт делится на две части. Информация кодируется перепадами потенциала в середине каждого такта. Единица кодируется перепадом от низкого уровня сигнала к высокому, а ноль — обратным перепадом. В начале каждого такта может происходить служебный перепад сигнала, если нужно представить несколько единиц или нулей подряд. Так как сигнал изменяется по крайней мере один раз за такт передачи одного бита данных, то манчестерский код обладает хорошими самосинхронизирующими свойствами. У манчестерского кода нет постоянной составляющей (меняется каждый такт), а основная гармоника в худшем случае (при передаче последовательности единиц или нулей) имеет частоту N Гц, а в лучшем случае (при передаче чередующихся единиц и нулей) — N/2 Гц, как и у NRZ. В среднем ширина спектра при манчестерском кодировании в два раза шире чем при NRZ кодировании.
4.6 Алгоритмы сжатия данных
Сжатие данных — процедура перекодирования данных, производимая с целью уменьшения их объёма, применяется для более рационального использования устройств хранения и передачи данных.
Сжатие бывает без потерь (когда возможно восстановление исходных данных без искажений) или с потерями (восстановление возможно с искажениями, несущественными с точки зрения дальнейшего использования восстановленных данных). Сжатие без потерь обычно используется при обработке компьютерных программ и данных, реже — для сокращения объёма звуковой, фото- и видеоинформации. Сжатие с потерями применяется для сокращения объёма звуковой, фото- и видеоинформации, оно значительно эффективнее сжатия без потерь.
Сжатие основано на устранении избыточности информации, содержащейся в исходных данных. Примером избыточности является повторение в тексте фрагментов (например, слов естественного или машинного языка). Подобная избыточность обычно устраняется заменой повторяющейся последовательности более коротким значением (кодом). Другой вид избыточности связан с тем, что некоторые значения в сжимаемых данных встречаются чаще других, при этом возможно заменять часто встречающиеся данные более короткими кодами, а редкие — более длинными (вероятностное сжатие). Сжатие данных, не обладающих свойством избыточности (например, случайный сигнал или шум), невозможно без потерь. Также, обычно невозможно сжатие зашифрованной информации.
4.7 Методы доступа
Наиболее известны и распространены три конкретные реализации методов доступа: Ethernet, Arcnet и Token Ring.
Ethernet
Этот метод был разработан фирмой Xerox в 1975 году и до сих пор наиболее популярен.
Для метода доступа Ethernet используется топология "общая шина", поэтому все сообщения, посылаемые каждым отдельным компьютером, принимаются всеми остальными компьютерами в сети, подключенными к "общей шине". Однако в целенаправленном, предназначенном для конкретной станции сообщении обязательно указан адрес станции назначения и адрес отправителя, поэтому принимает его только станция назначения, а остальные не обращают на него внимания.
Перед началом передачи станция определяет, свободен ли канал связи, и если свободен - начинает передачу. Однако возможна одновременная передача сообщений двумя и более станциями. В этом случае станции на короткое время задерживают передачу, а затем возобновляют. Практически быстродействие сети уменьшается только при одновременной работе 80 - 100 станций.
Arcnet
Arcnet применяется в локальных сетях с топологией "звезда". Один из компьютеров создает сообщение специального вида (так называемый маркер), которое передается от одного компьютера к другому последовательно. При передаче обычного информационного сообщения от одной станции к другой очередная станция дожидается маркера и дополняет его этим сообщением, а также адресами отправителя и назначения. Когда отправленный пакет достигает станции назначения, информационное сообщение отделяется от маркера и передается станции.
Token Ring
Этот метод доступа разработан фирмой IBM и предполагает топологию сети "кольцо".
Метод Token Ring во многом напоминает предыдущий метод Arcnet: он использует сообщение-маркер, передаваемое от одной станции к другой; однако здесь есть возможность разным рабочим станциям назначать различные приоритеты.
4.8 Функции уровней модели OSI
Физический уровень
Осуществляет передачу электрических или оптических сигналов в кабель или в радиоэфир и, соответственно, их приём и преобразование в биты данных в соответствии с методами кодирования цифровых сигналов.
Канальный уровень
Этот уровень предназначен для обеспечения взаимодействия сетей на физическом уровне и контроля за ошибками, которые могут возникнуть. Полученные с физического уровня данные он упаковывает во фреймы, проверяет на целостность, если нужно исправляет ошибки (посылает повторный запрос поврежденного кадра) и отправляет на сетевой уровень. Канальный уровень может взаимодействовать с одним или несколькими физическими уровнями, контролируя и управляя этим взаимодействием. Спецификация IEEE 802 разделяет этот уровень на 2 подуровня — MAC (Media Access Control) регулирует доступ к разделяемой физической среде, LLC (Logical Link Control) обеспечивает обслуживание сетевого уровня.
Сетевой уровень
Сетевой уровень модели OSI предназначен для определения пути передачи данных. Отвечает за трансляцию логических адресов и имён в физические, определение кратчайших маршрутов, коммутацию и маршрутизацию, отслеживание неполадок и заторов в сети. На этом уровне работает такое сетевое устройство, как маршрутизатор.
Протоколы сетевого уровня маршрутизируют данные от источника к получателю.
Транспортный уровень
Этот уровень модели предназначен для доставки данных без ошибок, потерь и дублирования в той последовательности, как они были переданы. При этом не важно, какие данные передаются, откуда и куда, то есть он предоставляет сам механизм передачи. Блоки данных он разделяет на фрагменты, размер которых зависит от протокола, короткие объединяет в один, а длинные разбивает. Пример: TCP, UDP.
Сеансовый уровень
Сеансовый уровень модели отвечает за поддержание сеанса связи, позволяя приложениям взаимодействовать между собой длительное время. Уровень управляет созданием/завершением сеанса, обменом информацией, синхронизацией задач, определением права на передачу данных и поддержанием сеанса в периоды неактивности приложений. Синхронизация передачи обеспечивается помещением в поток данных контрольных точек, начиная с которых возобновляется процесс при нарушении взаимодействия.
Представительский уровень
Этот уровень отвечает за преобразование протоколов и кодирование/декодирование данных. Запросы приложений, полученные с уровня приложений, он преобразует в формат для передачи по сети, а полученные из сети данные преобразует в формат, понятный приложениям. На этом уровне может осуществляться сжатие/распаковка или кодирование/декодирование данных, а также перенаправление запросов другому сетевому ресурсу, если они не могут быть обработаны локально.
Прикладной уровень
Уровень разрешает приложениям пользователя иметь доступ к сетевым службам, таким как обработчик запросов к базам данных, доступ к файлам, пересылке электронной почты. Также отвечает за передачу служебной информации, предоставляет приложениям информацию об ошибках и формирует запросы к уровню представления.
4.9 Алгоритмы маршрутизации
Алгоритмы маршрутизации могут быть классифицированы по следующим типам:
статическими или динамическими;
одномаршрутными или многомаршрутными;
одноуровневыми или иерархическими;
с интеллектом в главной вычислительной машине или в маршрутизаторе;
внутридоменными и междоменными;
алгоритмами состояния канала или вектора расстояний.
Статические и динамические алгоритмы
Статические алгоритмы маршрутизации вообще вряд ли являются алгоритмами. Распределение статических таблиц маршрутизации устанавливется администратором сети до начала маршрутизации. Оно не меняется, если только администратор сети не изменит его. Алгоритмы, использующие статические маршруты, просты для разработки и хорошо работают в окружениях, где трафик сети относительно предсказуем, а схема сети относительно проста.
Т.к. статические системы маршрутизации не могут реагировать на изменения в сети, они, как правило, считаются непригодными для современных крупных, постоянно изменяющихся сетей. Большинство доминирующих алгоритмов маршрутизации 1990гг. - динамические.
Динамические алгоритмы маршрутизации подстраиваются к изменяющимся обстоятельствам сети в масштабе реального времени. Они выполняют это путем анализа поступающих сообщений об обновлении маршрутизации. Если в сообщении указывается, что имело место изменение сети, программы маршрутизации пересчитывают маршруты и рассылают новые сообщения о корректировке маршрутизации. Такие сообщения пронизывают сеть, стимулируя маршрутизаторы заново прогонять свои алгоритмы и соответствующим образом изменять таблицы маршрутизации. Динамические алгоритмы маршрутизации могут дополнять статические маршруты там, где это уместно. Например, можно разработать "маршрутизатор последнего обращения" (т.е. маршрутизатор, в который отсылаются все неотправленные по определенному маршруту пакеты). Такой маршрутизатор выполняет роль хранилища неотправленных пакетов, гарантируя, что все сообщения будут хотя бы определенным образом обработаны.
Одномаршрутные и многомаршрутные алгоритмы
Некоторые сложные протоколы маршрутизации обеспечивают множество маршрутов к одному и тому же пункту назначения. Такие многомаршрутные алгоритмы делают возможной мультиплексную передачу трафика по многочисленным линиям; одномаршрутные алгоритмы не могут делать этого. Преимущества многомаршрутных алгоритмов очевидны - они могут обеспечить заначительно большую пропускную способность и надежность.
Одноуровневые и иерархические алгоритмы
Некоторые алгоритмы маршрутизации оперируют в плоском пространстве, в то время как другие используют иерархиии маршрутизации. В одноуровневой системе маршрутизации все маршрутизаторы равны по отношению друг к другу. В иерархической системе маршрутизации некоторые маршрутизаторы формируют то, что составляет основу маршрутизации. Пакеты из небазовых маршрутизаторов перемещаются к базовыи маршрутизаторам и пропускаются через них до тех пор, пока не достигнут общей области пункта назначения. Начиная с этого момента, они перемещаются от последнего базового маршрутизатора через один или несколько небазовых маршрутизаторов до конечного пункта назначения.
Системы маршрутизации часто устанавливают логические группы узлов, называемых доменами, или автономными системами (AS), или областями. В иерархических системах одни маршрутизаторы какого-либо домена могут сообщаться с маршрутизаторами других доменов, в то время как другие маршрутизаторы этого домена могут поддерживать связь с маршрутизаторами только в пределах своего домена. В очень крупных сетях могут существовать дополнительные иерархические уровни. Маршрутизаторы наивысшего иерархического уровня образуют базу маршрутизации.
Алгоритмы с игнтеллектом в главной вычислительной машине и в маршрутизаторе
Некоторые алгоритмы маршрутизации предполагают, что конечный узел источника определяет весь маршрут. Обычно это называют маршрутизацией от источника. В системах маршрутизации от источника маршрутизаторы действуют просто как устойства хранения и пересылки пакета, без всякий раздумий отсылая его к следующей остановке.
Другие алгоритмы предполагают, что главные вычислительные машины ничего не знают о маршрутах. При использовании этих алгоритмов маршрутизаторы определяют маршрут через объединенную сеть, базируясь на своих собственных расчетах. В первой системе, рассмотренной выше, интеллект маршрутизации находится в главной вычислительной машине. В системе, рассмотренной во втором случае, интеллектом маршрутизации наделены маршрутизаторы.
Внутридоменные и междоменные алгоритмы
Некоторые алгоритмы маршрутизации действуют только в пределах доменов; другие - как в пределах доменов, так и между ними. Природа этих двух типов алгоритмов различная.
Алгоритмы состояния канала и вектора расстояния
Алгоритмы состояния канала направляют потоки маршрутной информации во все узлы объединенной сети. Однако каждый маршрутизатор посылает только ту часть маршрутной таблицы, которая описывает состояние его собственных каналов. Алгоритмы вектора расстояния требуют от каждого маршрутизатора посылки всей или части своей маршрутной таблицы, но только своим соседям. Алгоритмы состояния каналов фактически направляют небольшие корректировки по всем направлениям, в то время как алгоритмы вектора расстояний отсылают более крупные корректировки только в соседние маршрутизаторы.
Глава 5 Базы данных
5.1 Назначение и основные компоненты системы баз данных
База данных (БД) — информационная модель, позволяющая в упорядоченном виде хранить данные о группе объектов с одинаковым набором свойств или поименованную совокупность структурированных данных. Повсеместно используется для хранения большого количества систематизированной информации в разнообразнейших сферах.
5.2 Обзор современных систем управления базами данных
Система управления базами данных (СУБД) — специализированная программа (чаще комплекс программ), предназначенная для организации и ведения базы данных.
По типу управляемой базы данных СУБД разделяются на:
иерархические;
сетевые;
реляционные;
объектно-реляционные;
объектно-ориентированные.
По архитектуре организации хранения данных:
локальные;
распределенные СУБД
По способу доступа к БД:
файл-серверные.
клиент-серверные.
встраиваемые.
5.3 Модели данных
Реляционная модель данных (РМД) — логическая модель данных, строгая математическая теория, описывающая структурный аспект, аспект целостности и аспект обработки данных в реляционных базах данных.
Структурный аспект выражается в том, что данные в базе данных представляют собой набор отношений.
Аспект целостности — отношения (таблицы) отвечают определенным условиям целостности. РМД поддерживает декларативные ограничения целостности уровня домена (типа данных), уровня отношения и уровня базы данных.
Аспект обработки — РМД поддерживает операторы манипулирования отношениями (реляционная алгебра, реляционное исчисление).
Термин «реляционный» означает, что теория основана на математическом понятии отношение (relation). В качестве неформального синонима термину «отношение» часто встречается слово таблица.
К достоинствам реляционной модели можно отнести:
простота и доступность понимания конечным пользователем — единственной информационной конструкцией является таблица;
при проектировании реляционной БД применяются строгие правила, базирующие на математическом аппарате;
полная независимость данных. При изменении структуры реляционной БД, изменения, которые требуется произвести в прикладных программах, минимальны;
для построения запросов и написания прикладных программ нет необходимости знания конкретной организации БД во внешней памяти.
Недостатки реляционной модели:
относительно низкая скорость доступа и большой объем внешней памяти.
трудность понимания структуры данных из-за появления большого кол-ва таблиц в результате логического проектирования.
далеко не всегда предметную область можно представить в виде совокупности таблиц.
к основным понятиям сетевой модели базы данных относятся: уровень, элемент (узел), связь. Узел — это совокупность атрибутов данных, описывающих некоторый объект. На схеме иерархического дерева узлы представляются вершинами графа.
5.4 Язык манипулирования данными
SQL (Structured Query Language — язык структурированных запросов) — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных.
Непроцедурный язык SQL ориентирован на операции с данными, представленными в виде логически взаимосвязанных совокупностей таблиц. Особенность предложений этого языка состоит в том, что они ориентированы в большей степени на конечный результат обработки данных, чем на процедуру этой обработки. SQL сам определяет, где находятся данные, какие индексы и даже наиболее эффективные последовательности операций следует использовать для их получения: не надо указывать эти детали в запросе к базе данных.
5.5 Проектирование баз данных и их физическая организация
Концептуальное проектирование - сбор, анализ и редактирование требований к данным. Для этого осуществляются следующие мероприятия:
обследование предметной области; изучение ее информационной структуры
выявление всех фрагментов, каждый из которых характеризуется пользовательским представлением, информационными объектами и связями между ними, процессами над информационными объектами; моделирование и интеграция всех представлений.
По окончании данного этапа получаем концептуальную модель, инвариантную к структуре базы данных. Часто она представляется в виде модели "сущность-связь".
Логическое проектирование - преобразование требований к данным в структуры данных. На выходе получаем СУБД-ориентированную структуру базы данных и спецификации прикладных программ. На этом этапе часто моделируют базы данных применительно к различным СУБД и проводят сравнительный анализ моделей.
Физическое проектирование - определение особенностей хранения данных, методов доступа и т.д.
Заключение
В ходе проделанной работы был собран и изучен необходимый материал. Во время производственно-
В результате изучения собранного материала и закрепления его на практике были раскрыты основные темы в области компьютерных технологий, как с точки зрения теории, так и с практической точки зрения.
Список литературы
1. Delphi 7: самоучитель / http://kaf_inf/lib/01_Delphi7
2. Олифер В.Г., Олифер НА. Компьютерные сети. Принципы, технологии, протоколы: Учебник для вузов. 2-е изд.- СПб: Питер, 2005- 864 с.
3. Дейт К. Введение в системы баз данных. -Москва: Вильяме, 2005. 1328 с.
4. Базы данных Учебное пособие для студ. высш. учеб. заведений //Кузин А.В., Левонисова СВ. М: ИЦ АКАДЕМИЯ. 2005
5. Ю.Голицина О.Л. Базы данных. - М.: Инфра-М,.2005
6. Базы данных / Под ред. АД. Хомоненко. - СПб.: Корона принт, 2003
7. Маллинс К.С. Администрирование баз данных: Полное справочное
руководство по методам и процедурам: пер. с англ. - М.: Кудиц-образ. -
2003.-752с.
8. Поль Дюбуа. MySQL. -Москва, С-Петербуо.г, Киев: Вильяме. - 2002.
9. Сеннов A. Access 2003. Практическая разработка баз данных. 2005, 256 с.
10. CIT-Forum: Базы данных / http://citforiwi.ru/database/
11. MySQL Biblel / http://kaf_inf/lib/mysql_bible
12.Основы проектирования реляционных баз данных / В. В. Кириллов
http://kaf_inf71ib/db_proj
13. Поль Дюбуа Применение MySQL и Perl в web-приложениях. -Москва, С-Петербуог, Киев :Вильямс. - 2002.
14. Нортон. П., Гудмен Дж. Внутренний мир персональных компьютеров. 8-е изд. Избранное от Питера Нортона/Пер. сангл.; Питер Нортон, Джон Гудмен,- К,: Диасофт, 1999. 854 с.
1