
- •1. Устройство и функционирование компьютеров
- •1.1. Компьютер – универсальная вычислительная машина.
- •1.2. Двоичная система счисления и представление информации в компьютере.
- •1.3. Принципы работы компьютера.
- •1.3.1. Взаимодействие процессора и оперативной памяти компьютера
- •1.3.2. Машинная команда
- •1.3.3. Машинная программа.
- •1.4. Классификация вычислительных устройств.
- •1.5. Основные устройства компьютера, его архитектура.
- •1.5.1. Оперативная память.
- •1.5.2. Центральный процессор.
- •1.5.3. Системные шины.
- •1.5.4. Монитор.
- •1.5.5. Устройства ввода информации.
- •1.5.6. Внешние запоминающие устройства.
- •1.5.7. Устройства вывода информации.
- •1.5.8. Некоторые другие устройства.
- •2. Понятие о программах и программировании.
- •2.1. Компьютерные программы и языки программирования.
- •3. Операционная система компьютера
- •3.1. Функции операционной системы
- •3.2. Функционирование операционной системы.
- •3.3. Управление выполнением программ
- •3.4. Управление памятью
- •3.5. Управление файловой системой
- •3.6. Управление прерываниями
- •3.7. Операционная система ms dos.
- •3.8. Операционная система Windows.
- •3.9. Операционная система unix.
- •6. Вычислительные сети и распределенная обработка данных.
- •6.1. Назначение и преимущества сетей.
- •6.2.Основные понятия и сетевая терминология.
- •6.3.Модель взаимодействия открытых систем.
- •6.4.Телекоммуникационные системы – основные функции и компоненты.
- •6.5.Топология локальной сети
- •6.6.Технологии функционирования локальной сети.
- •6.7.Системное обеспечение работы в сети.
- •7. Интернет
- •7.1. Что такое Интернет.
- •7.2.История Интернета
- •7.3.Типы сервисов Интернет
- •7.3.1.Электронная почта
- •7.3.2.Сетевые новости Usenet
- •7.3.3.Списки рассылки
- •7.3.5.Www (World Wide Web - всемирная паутина)
- •7.3.6.Сервис telnet.
- •7.4.Доменная адресация в Интернет
- •7.5.Маршрутизация в сетях tcp/ip
- •7.6.Установка в сети протоколов tcp/ip
- •7.7.Семейство протоколов tcp/ip
- •7.7.1.Структура протоколов tcp/ip
- •7.7.2.Ethernet-кадр
- •7.7.3.Протокол slip
- •7.7.4.Протокол ppp
- •7.7.5.Межсетевой протокол ip
- •7.7.6.Протокол udp
- •7.7.7.Протокол tcp
- •7.7.8.Другие протоколы.
- •7.8.Язык Java.
- •7.9.Язык vrml
- •7.10.Проблемы Интернета
- •7.11.Интранет - информационное обслуживание на основе Интернет
- •7.12.Поиск информации с применением серверов глобального поиска и каталогов
- •8.Приложения.
- •8.1.Содержание курса (осень 2003г.)
- •8.2.Список вопросов к курсу «Экономическая информатика»
- •Литература.
- •1. Устройство и функционирование компьютеров 1
- •8.Приложения. 60
- •1. Устройство и функционирование компьютеров 1
- •2. Понятие о программах и программировании. 19
- •3. Операционная система компьютера 22
- •4. Программирование на языке Паскаль. 34
- •5. Программирование на vba (Visual Basic for Application) 63
- •6. Вычислительные сети и распределенная обработка данных. 73
- •7. Интернет 84
- •8.Приложения. 100
1. Устройство и функционирование компьютеров
1.1. Компьютер – универсальная вычислительная машина.
Из трех составляющих информационного обслуживания – оборудование, программное обеспечение, организация – одинаково важны все три. Если ставить одну из них на первое место в ущерб другим (а чаще всего недооценивается организация информационного обслуживания), то это неизбежно уменьшит эффективность остальных. Поэтому менеджер должен иметь представление о каждой из этих составляющих. Однако начинать изучение, по нашему мнению, следует с оборудования.
Вряд ли выпускник вуза, не специализированного на изучении компьютеров, будет непосредственно иметь дело с большим компьютером и тем более c суперкомпьютером. Однако можно гарантировать, что с персональными компьютерами, с локальными сетями и c Интернетом он будет сталкиваться регулярно. Конечно, можно пользоваться всеми этими вещами, не задумываясь над тем, как они устроены. Но практика показывает, что отсутствие хотя бы общего представления о работе компьютера, о функционировании компьютерных сетей, о возможностях систем управления базами данных, о принципах организации Интернета существенно ограничивает профессиональный рост менеджеров, не позволяя им полноценно принимать участие, например, в проектах по внедрению и развитию информационных систем на предприятии.
Данный курс представляет собой введение в экономическую информатику и посвящен изложению общих представлений о компьютерах, другом техническом оборудовании, технологии его использования, а также о различном программном обеспечении. Эти сведения, помимо расширения общего кругозора, должны дать тот необходимый фундамент, который поможет усвоить последующие более сложные вопросы построения информационных систем.
В первой части обсуждаются самые общие принципы автоматизации обработки информации, связанные с ее хранением и преобразованием. Особенностью компьютерной индустрии является то, что интеграция оборудования и программного обеспечения в ней больше, чем в любой другой области. В результате этого особенно велика роль различных соглашений, правил, стандартов, которых все обязаны придерживаться, и организаций, следящих за их выполнением. Знание этих особенностей неотделимо от знания истории их появления и развития.
При изложении принципов работы компьютера основное внимание уделяется концептуальным вещам. Это делается по двум причинам: во-первых, обилие цифр часто отвлекает от сути явления или метода, во-вторых, характеристики устройств меняются с такой скоростью, что они устаревают прежде, чем учебник выходит в свет. Однако во многих случаях приводятся конкретные значения параметров, чтобы дать более точное представление по тому или иному вопросу.
Начнем с понятия алгоритма. Понятие алгоритма является центральным во всем курсе информатики. Слово «алгоритм» принято связывать с именем арабского ученого Аль-Хорезми. При рассмотрении практических вопросов, которым, в основном, и посвящена данная книга, нас интересует не столько формальное определение данного понятия, сколько его использование. Один из фундаментальных подходов к определению алгоритма, тесно связанный с практикой, рассматривает алгоритм в единстве с исполнителем алгоритма и системой инструкций – действий, который исполнитель алгоритма умеет выполнять. Алгоритм представляет собой такую последовательность действий исполнителя алгоритма, которая приводит к поставленной цели.
В теории алгоритмов каждое элементарное действие определено строго формально, то есть полностью заданы состояния исполнителя до и после этого действия. Исполнителя алгоритма можно назвать вычислительной машиной. То, над чем производятся действия исполнителя, в теории обычно является числами или символами некоторого алфавита. Алгоритм должен быть составлен предварительно до начала работы машины. В такой ситуации его принято называть программой.
Понятие интуитивного алгоритма существенно шире, чем понятие программы. Очень многие правила или инструкции во многих областях знания или практической жизни являются алгоритмами. Таковы, например, правила поведения в обществе, должностные инструкции, инструкции к бытовой технике и т.д.
Пользователи, начинающие работать на компьютере, как правило, не задумываются над тем, каким образом компьютер функционирует. Для них естественно одушевлять компьютер, приписывая ему некоторую долю разумности и самостоятельности. Между тем компьютер ничего не делает самостоятельно. Все его действия обусловлены теми программами, которые в него заложены. Эти инструкции однозначно определяют действия, которые он должен выполнить в текущей ситуации. Ситуация определяется поставленной целью и конкретными данными, предоставленными к этому моменту для достижения этой цели. Для того, чтобы компьютер правильно функционировал, соответствующие программы должны быть кем-то составлены.
Весь процесс программирования подразумевает, прежде всего, формулировку цели программы, затем анализ содержания задачи и, наконец, создание программы для компьютера. Для этого программист должен уметь учитывать все ситуации, которые могут встретиться в процессе работы программы, и предусмотреть для них правильное действие.
Программировать в широком смысле - значит составить такое предписание для компьютера, чтобы он совершил то целенаправленное действие, которое от него ожидается. Причем обязателен один важный аспект этого процесса - повторяемость. Вы один раз совершаете некую работу - составляете программу - после чего компьютер получает возможность выполнять нужное действие всякий раз, когда это от него требуется. Современные программы дискретны и состоят из отдельных элементарных операций – команд. Команда позволяет компьютеру в каждой ситуации однозначно и правильно выполнить следующее действие. Весь процесс программирования в общем случае подразумевает, прежде всего, формулировку цели программы, затем анализ содержания задачи и, наконец, создание программы для компьютера. Для этого программист должен уметь учитывать все случаи, которые могут встретиться в процессе работы программы, и предусмотреть для них правильное действие.
Проблемами алгоритмизации при решении математических задач занимались Паскаль, Декарт, Лейбниц, Лаплас и многие другие великие ученые. Особый интерес в этой области был инициирован Гильбертом в связи с его знаменитыми проблемами. В двадцатом веке формальная теория алгоритмов бурно развивалась. Можно назвать такие фамилии, как Гедель, Клини, Черч, Тьюринг, Пост, Марков, Петер.
Параллельно с теорией делались попытки создать практически работающие вычислительные устройства. В 1642г. Паскаль изобрел устройство, выполняющее сложение чисел, а в 1673г. Лейбниц сконструировал арифмометр, позволяющий выполнять четыре арифметических действия. В первой половине XIX в. английский математик Чарльз Бэббидж попытался построить универсальную машину, которая должна была выполнять любые вычисления без участия человека. Программы для нее вводилась с помощью перфокарт, которые уже тогда употреблялись в ткацких станках. Реально такая машина (но не механическая, а электронная) была построена в США в 1943г.
Согласно теории вычислительный процесс есть результат функционирования автоматически работающей вычислительной машины. Компьютер как абстрактная вычислительная машина представляет собой комбинацию памяти – устройства для хранения данных – и процессора – устройства для проведения вычислений. Однако то же самое можно сказать про обыкновенный калькулятор. Компьютер отличается от калькулятора наличием программы, которая может организовать процесс вычислений таким образом, что они будут реализовывать заданный алгоритм. Память компьютера состоит из конечного набора ячеек, предназначенных для хранения элементарных данных (в теории элементарные данные представляют собой фиксированный конечный набор – алфавит).
Текущее состояние компьютера определяется совокупностью данных, хранящихся в памяти компьютера, и текущим положением программы, выполняемой компьютером. Различается входная, промежуточная и выходная информация. Входная информация помещается в память перед началом программы, выходная информация остается в памяти после конца программы. Одна элементарная операция при работе машины заключается в том, что изменяется содержимое нескольких участков памяти. Само изменение зависит от других данных и задается формальной инструкцией - командой. Все возможные команды составляют конечный набор данных. Программой называется упорядоченная совокупность команд.
Эта конструкция почти без изменений реализована в современных компьютерах. Компьютером представляет собой универсальное вычислительное устройство, предназначенное для выполнения произвольных алгоритмов. Этим он отличается от вычислительных устройств, являющихся частью производственных комплексов и выполняющих внутри них специальные функции. Любая информация хранится в памяти компьютера в цифровой форме (в двоичной системе счисления) и размещается в специальном устройстве, которое называется оперативной памятью компьютера. Алгоритм отображается в компьютере в форме машинной программы и состоит из отдельных инструкций – машинных команд. Очередная машинная команда производит с данными в оперативной памяти определенные действия. Число различных типов машинных команд ограничено.
В соответствии с одним из принципов Фон Неймана (см. ниже) программа также лежит в оперативной памяти и принципиально не отделена от данных. Поэтому в процессе выполнения программы ее отдельные команды можно рассматривать как данные, в частности, их можно изменять. Другими словами, вследствие использования принципа хранимой программы машинная программа в процессе своего выполнения может изменять саму себя. Этой возможностью современные программы широко пользуются. Более того, иначе эффективную программу составить просто невозможно.
Отметим основные свойства алгоритмов, лежащих в основе работы современных компьютеров:
Привязка к языку. Каждый конкретный алгоритм формулируется в рамках некоторой теории и оформляется с использованием средств, определенных в этой теории. Обычно это некоторый алгоритмический язык, например язык программирования. Алгоритмический язык представляет собой систему обозначений и правил для записи алгоритмов и особенностей из выполнения.
Дискретность. Алгоритм представляет собой структурированное конечное множество элементарных действий; все типы элементарных действий задаются заранее списком.
Детерминированность. В каждый момент времени работы алгоритма выбор следующей команды определяется однозначно.
Массовость. Алгоритм должен быть применим ко многим различным наборам входной информации, а не к одному единственному.
Повторяемость. Алгоритм должен давать один и тот же результат при одних и тех же входных значениях.
Конечность. Алгоритм должен давать решение задачи за конечное число шагов.
Понятие интуитивного алгоритма существенно шире, чем понятие программы на компьютере. Очень многие правила или инструкции во многих областях знания или практической жизни являются алгоритмами. Таковы, например, правила поведения в обществе, должностные инструкции, инструкции к бытовой технике и т.д.
Формулировка желаемого результата некоторого действия в большинстве случаев ничего не говорит о содержании самого действия. Очень часто построение алгоритма является очень сложной задачей, требующей оригинальных решений. Проблема в том, что при обычном описании на естественном языке многие детали как очевидные остаются за кадром. Однако если мы формулируем формальное предписание, которое должно быть истолковано компьютером однозначно и не содержать неопределенности, мы должны предусмотреть все возможные варианты развития событий, все варианты возможных данных и правильно на них реагировать. А для этого необходимо иметь адекватные средства для описания маленьких, элементарных шагов алгоритма и для описания структуры алгоритма.
Алгоритмы для первых компьютеров изображались в форме блок-схем. Блок-схема представляет собой изображение на бумаге. Элементарное действие алгоритма изображается текстом в одном блоке схемы, а линии, соединяющие блоки, указывают последовательность работы блоков. Поскольку реально выбор того или иного продолжения работы зачастую зависит от данных, поступивших на обработку, очередной блок может иметь не одно, а несколько продолжений, и для него необходимо указывать, каким условиям соответствует то или иное продолжение. Принято проверки такого рода выделять в отдельный блок специального типа (условный блок). Обычный блок имеет одно продолжение, условный блок - несколько продолжений, соответствующих различным вариантам проверки условия. Иногда для удобства условный блок заключается в ромбовидные рамки. Тем или иным образом зачастую выделяют и другие типы блоков (с помощью овальных, косых или иных рамок).
Описание на языке блок-схем очень хорошо читаемо, его легко модифицировать и, главное, оно естественно отражает сущность процесса алгоритмизации задачи. Критерии выделения блока носят отчасти субъективный характер. Общая схема может содержать небольшое число крупных блоков. Крупные блоки также изображаются в виде блок-схемы, состоящей из более мелких блоков, и т.д. Таким образом, в результате получается подробная блок-схема алгоритма решения задачи.
Контрольные вопросы по теме.
Каково самое общее предназначение компьютера?
Что означает определение «универсальный» по отношении к компьютеру?
Что означают определения «дискретный» и «конечный» по отношению к алгоритму?
Для чего нужны блок-схемы?