Алгоритм –это точно определенная, однозначная последовательность простых (элементарных) шагов, обеспечивающих решение любой задачи из некоторого класса. 3 страница
В состав внутренней памяти входит также постоянное запоминающее устройство (ПЗУ), в котором, в частности, хранится информация, необходимая для первоначальной загрузки компьютера в момент включения питания. Информация в ПЗУ не зависит от состояния.
Внешняя память реализуется в виде разнообразных устройств хранения информации и оформляется в виде самостоятельных блоков. Сюда относятся накопители на гибких (дискеты) и жестких магнитных дисках, оптические дисководы для работы с дисками CD, а также флеш-память.
В конструкции большинства устройств внешней памяти есть механически движущиеся части, поэтому скорость их работы существенно ниже, чем в полностью электронной внутренней памяти. Внешняя память позволяет сохранять огромные объемы информации с целью последующего использования.
Для получения информации о результатах работы компьютера существует устройство вывода – монитор (дисплей), которое позволяет представить их в доступной для человеческого восприятия форме. Для того, чтобы получить копию результатов на бумаге, используют печатающее устройство, или принтер.
Для ввода в компьютер новой информации необходимы устройства ввода. Простейшим устройством ввода является клавиатура. Широкое распространение программ с графическим интерфейсом способствовало популярности манипулятора мышь. Очень эффективным современным устройством для ввода информации в компьютер является сканер, позволяющий не просто преобразовать картинку с листа бумаги в графический компьютерный файл, но и с помощью специального программного обеспечения распознать в прочитанном изображении текст и сохранить его в виде, пригодном для редактирования в текстовом формате.
Контрольные вопросы
1. Перечислите основные характеристики ЭВМ каждого поколения.
2. К какому поколению ЭВМ относится персональный компьютер на базе процессора Pentium?
3. Кто является автором традиционной (классической) архитектуры компьютера?
4. Назовите основные устройства компьютера и их функции.
3 Структура программного обеспечения компьютера
Как было отмечено выше, современный компьютер – это единство аппаратных средств и программного обеспечения. Компьютерная программа – это закодированная информация о действиях, которые предписывается выполнять компьютеру, алгоритм для исполнения компьютером, записанный или на языке машинных двоичных кодов, или на специальном языке программирования.
Чтобы на компьютере можно было решать задачи, нужна совокупность программ – программное обеспечение.
3.1 Классификация программного обеспечения
Под программным обеспечением (ПО, Software) понимается совокупность программных средств для ЭВМ (систем ЭВМ), обеспечивающих функционирование, диагностику и тестирование их аппаратных средств, а также разработку, отладку и выполнение любых задач пользователя с соответствующим документированием, где в качестве пользователя может выступать как человек, так и любое внешнее устройство, подключенное к ЭВМ и нуждающееся в ее вычислительных ресурсах.
К программному обеспечению относится также вся область деятельности по проектированию и разработке ПО:
· технология проектирования программ (например, нисходящее проектирование, структурное и объектно-ориентированное проектирование и др.);
· методы тестирования программ;
· анализ качества работы программ;
· документирование программ;
· разработка и использование программных средств, облегчающих процесс проектирования программного обеспечения, и многое другое.
Все программы по характеру использования и категориям пользователей подразделяют на два класса — утилитарные программы и программные продукты (изделия).
Утилитарные программы («программы для себя») предназначены для удовлетворения нужд их разработчиков. Чаще всего утилитарные программы выполняют роль сервиса в технологии обработки данных либо являются программами решения функциональных задач, не предназначенных для широкого распространения.
Программные продукты (изделия, прикладное программное обеспечение) предназначены для удовлетворения потребностей пользователей, широкого распространения и продажи.
Программный продукт— комплекс взаимосвязанных программ для решения определенной проблемы (задачи) массового спроса, подготовленные к реализации как любой вид промышленной продукции.
Программные продукты можно классифицировать по разным признакам. Наиболее общей является классификация, в которой основополагающим признаком служит сфера (область) использования программных продуктов:
· аппаратная часть компьютеров и сетей ЭВМ;
· технология разработки программ;
· функциональные задачи различных предметных областей.
Исходя из этого, выделяют три класса программных продуктов (рисунок 3.1):
· системное программное обеспечение;
· инструментарий технологии программирования;
· пакеты прикладных программ.
3.2 Системное программное обеспечение ЭВМ
Системное программное обеспечение управляет всеми ресурсами ЭВМ (центральным процессором, памятью, вводом-выводом) и осуществляет общую организацию процесса обработки информации и интерфейсы между ЭВМ, пользователем, аппаратными и программными средствами. Оно разрабатывается так, чтобы компьютер мог эффективно выполнять прикладные программы.
Системное программное обеспечение(System Software) – совокупность программ и программных комплексов для обеспечения работы компьютеров и сетей ЭВМ.
Системное ПО тесно связано с типом компьютера, является его неотъемлемой частью и имеет общий характер применения, независимо от специфики предметной области решаемых с помощью ЭВМ задач.
Структура системного программного обеспечения представлена на рисунке 3.2.
Системное ПО состоит из базового программного обеспечения, которое, как правило, поставляется вместе с компьютером, и сервисного программного обеспечения, которое может быть приобретено дополнительно.
Вбазовое программноеобеспечение входят:
· базовая система ввода-вывода;
· операционная система (сетевая операционная система);
· операционные оболочки.
Базовая система ввода-вывода(BIOS, Basic Input/Output System) представляет собой набор программ, обеспечивающих взаимодействие операционной системы, и других программ с различными устройствами компьютера (клавиатурой, видеоадаптером, дисководом, таймером и др.). В функции BIOS входит также автоматическое тестирование основных аппаратных компонентов (оперативной памяти и др.) при включении машины, поиск на диске программы — загрузчика операционной системы и ее загрузка с диска в оперативную память.
Программные модули BIOS находятся в постоянном запоминающем устройстве — ПЗУ, они имеют определенные адреса, благодаря чему все приложения могут использовать их для реализации основных функций ввода-вывода.
Таким образом, BIOS — совокупность программ, предназначенных для автоматического тестирования устройств после включения питания компьютера, загрузки операционной системы в оперативную память и обеспечения взаимодействия операционной системы и приложений с различными устройствами компьютера.
Операционная системапредназначена для управления выполнением пользовательских программ, планирования и управления вычислительными ресурсами ЭВМ. Она исполняет роль связующего звена между аппаратурой компьютера, с одной стороны, и выполняемыми программами, а также пользователем — с другой.
Операционная система обычно хранится во внешней памяти компьютера — на диске. При включении компьютера она считывается с дисковой памяти и размещается в оперативном запоминающем устройстве.
Этот процесс называется загрузкой операционной системы.
В функции операционной системы входит:
· осуществление диалога с пользователем;
· ввод-вывод и управление данными;
· планирование и организация процесса обработки программ;
· распределение ресурсов (оперативной памяти, процессора, внешних устройств);
· запуск программ на выполнение;
· всевозможные вспомогательные операции обслуживания;
· передача информации между различными внутренними устройствами;
· программная поддержка работы периферийных устройств (дисплея, клавиатуры, дисковых накопителей, принтера и др.).
Операционную систему можно назвать программным продолжением устройства управления компьютера. Она скрывает от пользователя сложные ненужные подробности взаимодействия с аппаратурой, образуя прослойку между ними. В результате этого люди освобождаются от очень трудоемкой работы по организации взаимодействия с аппаратурой компьютера.
Операционные системы для компьютеров делятся:
· на одно- и многозадачные (в зависимости от возможного числа запускаемых и выполняемых прикладных процессов);
· одно- и многопользовательские (в зависимости от числа пользователей, одновременно работающих с операционной системой);
· несетевые и сетевые, обеспечивающие работу в локальной вычислительной сети ЭВМ.
Операционная система для персонального компьютера, ориентированного на профессиональное применение, должна содержать следующие основные программные компоненты:
· управление вводом-выводом;
· управление файловой системой;
· планирование процессов;
· анализ и выполнение команд, адресованных ОС.
Каждая операционная система имеет свой командный язык, который позволяет пользователю выполнять те или иные действия:
· обращаться к каталогу;
· выполнять разметку внешних носителей;
· запускать программы и др.
Анализ и исполнение команд пользователя, включая загрузку готовых программ из файлов в оперативную память и их запуск, осуществляет командный процессор операционной системы.
3.3 Прикладное программное обеспечение ЭВМ
Прикладное программное обеспечение предназначено для непосредственного решения пользовательских задач. Как было показано выше, в него входят пакеты прикладных программ и библиотеки стандартных функций.
Пакеты прикладных программ – это, в частности, наиболее известные инструментальные программные средства, такие как текстовые и графические редакторы, электронные таблицы, а также СУБД.
Библиотеки стандартных программ составляют часто используемые программы вычисления функций, решение уравнений, распространенных операций обработки данных (сортировка, нахождение максимума/минимума и т.п.).
Электронные таблицы
Одной из самых продуктивных идей в области компьютерных информационных технологий стала идея электронной таблицы. Электронная таблица (ЭТ) – удобный инструмент для экономистов, бухгалтеров, инженеров, так как она позволяет работать с большими массивами числовой информации. Таким образом, электронная таблица (табличный процессор) – прикладное программное обеспечение общего назначения, предназначенное для обработки различных данных, представимых в табличной форме.
ЭТ являются динамическими, то есть содержат так называемые «вычисляемые поля», значения которых автоматически пересчитываются по заданным формулам при изменении значений исходных данных, содержащихся в других полях. ЭТ позволяет хранить в табличной форме большое количество исходных данных, результатов, а также связей (алгебраических или логических соотношений) между ними. Также ЭТ являются эффективным средством моделирования различных вариантов и ситуаций.
На сегодняшний день самой популярной является программа Excel фирмы Microsoft.
Можно выделить следующие стандартные режимы работы табличного процессора:
- формирование таблицы;
- управление вычислениями;
- режим отображения формул;
- графический режим (дает возможность отобразить числовую информацию в виде диаграмм и графиков);
- работа ЭТ как базы данных (дает возможность искать, выбирать и сортировать данные).
Более подробное описание таблицы и правил работы с ней рассматривается в курсе «Пакеты прикладных программ».
Текстовый редактор
Стремление упростить работу с различными видами текстов (служебными бумагами, конспектами лекций, газетами, журналами, книгами и т.д.) привело к созданию большого количества программного обеспечения, ориентированного на решение этих проблем и называемого текстовыми редакторами (ТР) или текстовыми процессорами. Среди профессиональных ТР наибольшее распространение получили Microsoft Word, WordPad.
Общее назначение ТР – ввод текстов в компьютер, их редактирование, сохранение на ВЗУ и печать на бумаге.
В текстовом документе, созданном на компьютере с помощью ТР, могут использоваться разнообразные шрифты. У каждого шрифта есть свое название. Буквы одного и того же шрифта могут иметь разные начертания (прямое, курсив, полужирное). ТР дает возможность управлять размером символов и т.д.
В ТР пользователь может работать одновременно с несколькими текстовыми документами, используя многооконный режим. При этом можно переносить или копировать фрагменты текста из одних документов в другие.
Режимы работы ТР:
- ввод-редактирование текста – состояние ТР отражается в строке состояния (координаты курсора, вставка/удаление, строчные/заглавные, шрифт рус/лат), разметка строки, выравнивание текста по краям или по центру, перенос;
- форматирование – компоновка текста в требуемом виде, установка отступов, красной строки, задание колонок, положение рисунков и т.п.;
- орфографическая проверка – при проверке текста фиксируются слова (подчеркиваются красной волнистой линией), отсутствующие в словаре, что является косвенным свидетельством орфографической ошибки;
- обмен с ВЗУ – сохранение и загрузка текста, который при хранении на ВЗУ называется текстовым файлом. При этом указывается путь к необходимому каталогу;
- печать – вывод текста на бумагу. Можно управлять печатью, определив диапазон печати, вид печатаемой страницы, способ нумерации страниц;
- справка – открывается дополнительное справочное окно, содержащее краткую информацию о работе в ТР.
Более подробное описание текстового редактора и правил работы с ним рассматривается в курсе «Пакеты прикладных программ».
Графический редактор
Графические изображения – это разнообразные рисунки, картинки, чертежи, графики, которые получаются на экране компьютера, а также могут быть выведены на печать. На экране рисунки могут быть статическими (неподвижными) или динамическими (движущимися).
Для получения графических изображений на ЭВМ используется специальное программное обеспечение – графический редактор (ГР).
Организация интерфейса ГР: с одной стороны экрана располагается набор пиктограмм с изображением инструментов, которые можно использовать в процессе редактирования изображений. В нижней части экрана – палитра, из которой можно выбирать краски нужного цвета. Оставшаяся часть экрана представляет собой пустой «холст». Над холстом находится меню, позволяющее изменять режим работы ГР. В левом нижнем углу экрана выводится калибровочная шкала, которая позволяет устанавливать ширину рабочего инструмента (кисти, ластика и т.п.)
Режимы работы графического редактора:
- рисование – на холсте находится изображение инструмента. Можно наносить рисунок, редактировать его, манипулировать отдельными фрагментами. Рисовать можно в режиме «ручной» прорисовки или с помощью базовых инструментов-шаблонов (окружность, прямоугольник и т.п.) Так же можно строить изображение путем компоновки их из других, ранее созданных изображений, объединяя их с текстом и изменяя цвета.
- режим выбора и настройки инструмента – курсор (указатель) находится в поле экрана с изображением инструментов. С помощью меню можно настроить инструмент на определенный тип и ширину линии, орнамент закраски;
- режим выбора рабочих цветов – курсор находится в поле экрана с изображением цветовой палитры. В этом режиме можно установить цвет фона, цвет рисунка, изменять палитру;
- режим работы с внешними устройствами – можно выполнять команды записи рисунка на диск, считывание рисунка с диска, вывода рисунка на печать, работы со сканером.
Графический редактор позволяет также масштабировать (изменять размер) изображения, выполнять его перемещение и поворот.
Контрольные вопросы
1. Приведите классификацию программного обеспечения компьютера.
2. Какое ПО относится к системному программному обеспечению?
3. Перечислите основные функции операционной системы.
4. Приведите примеры известных вам прикладных программ.
4 Хранение информации в ОЗУ
4.1 Классификация данных
Наряду и параллельно с термином «информация» используется термин «данные». Определим его.
Данные – это сведения, характеризующие какую-то систему, явление, процесс или объект, представленные в определенной форме и предназначенные для дальнейшего использования.
Таким образом, данные – конкретная форма представления содержания информации (например, информацию о средней температуре t° за месяц можно представить в виде таблицы, графика, текстового описания).
В отличие от ненаправленной (рассеянной) информации, существующей в природе независимо от нас и наших потребностей в ней, данными называется только такая информация, которая имеет значение для потребителя, и, следовательно, предусматривает ее использование для решения каких-то задач.
Данным приписываются несколько классификационных признаков.
Важнейшим из них является тип данных. Тип определяет:
- набор допустимых значений;
- правила их обработки;
- порядок их размещения в ОЗУ, ВЗУ при хранении;
- порядок доступа к ним.
Допустимый набор типов данных и их особенности определяются программной системой или языком программирования, на котором система написана.
Следующим классификационным признаком является деление данных на элементарные (однотипные, простые) и структурированные (сложные).
К элементарным данным относятся символы, числа и логические данные. Общей и обязательной особенностью одиночных данных является то, что каждое из них имеет одно значение и собственное имя.
Значение - это содержание тех ячеек памяти, где данное располагается. Имя (идентификатор) – это обозначение данного в тексте программы.
Информационный массив, объединяющий данные и связи (отношения) между ними, называется структурированными данными (пример – страница из классного журнала, телефонный справочник).
Сложные данные также имеют значения и идентификаторы.
По возможности изменения значений данных в ходе обработки их подразделяют на переменные и постоянные (константы). Из названия видно, что переменные могут изменять свое значение по ходу исполнения программы, а константы – нет.
В зависимости от того, на каком этапе обработки данные используются, они подразделяются на исходные (входные), промежуточные и выходные.
К исходным данным относятся данные, необходимые для исполнения программы, и вводимые в нее до или в процессе работы. Исходные данные могут предварительно быть записаны на некотором носителе и вводиться с него, поступать по линиям связи от каких-то датчиков или с других компьютеров, вводиться пользователем посредством устройства ввода.
Промежуточные данные формируются в ходе исполнения программы, и чаще всего пользователю недоступны; они не отображаются на устройствах вывода, но существуют в ОЗУ или на ВЗУ.
Выходные данные являются результатом работы программы – ради них и производится обработка входных.
Таким образом, работу программы можно рассматривать как действия по преобразованию входных данных в выходные через необходимые для этого промежуточные. С точки зрения самой программы все эти виды – равноправны, то есть обрабатываются и хранятся в соответствии с их типом, а не функциональным назначением.
Представление данных при их хранении и обработке требует решения 3-х основных задач:
- определить способы представления элементарных (простых) данных;
- определить способы объединения данных в структуры;
- установить способы размещения данных на материальном носителе.
4.2 Представление элементарных данных в ОЗУ
Различными типами элементарных данных являются символы, целые числа, вещественные числа и логические данные.
Поскольку память компьютера имеет байтовую структуру, к ней привязывается представление любых данных. Неделимая совокупность байт, обрабатываемая как единое целое, называется машинным словом.
С технической точки зрения машинное слово объединяет записанные элементы в единую ячейку памяти. Доступ к машинному слову в операциях записи/чтения осуществляется по номеру ячейки памяти, который называется адресом ячейки.
Запоминающие устройства (ЗУ), в которых доступ к данным осуществляется по адресу ячейки, где они хранятся, называются устройствами с произвольным доступом (RAM – Random Access Memory). Время поиска нужной ячейки, а также время считывания/записи в ЗУ произвольного доступа одинаково для всех ячеек, независимо от адреса.
Например, особенности представления всех типов элементарных данных с помощью 16-битного машинного слова.
Представление чисел обсуждалось ранее, в первой части учебного пособия (знак, число или для нормализованной формы знак порядка – порядок – знак мантиссы – мантисса).
Символ – машинное слово делится на 2 группы по 8 бит (байт), в которые и записываются двоичные коды символов (рисунок 4.1). В слове могут быть записаны одновременно 2 символа. Операции над символами: отношение (>, <, =) и изменение с одного кода на другой.
Все остальные действия производятся со сложными символьными данными.
Логические данные могут принимать одно из 2-х значений (0 или 1): 0 соответствует логическому нулю False, а 1- логической единице True.
Для их записи было бы достаточно отвести всего один двоичный разряд. Однако в ОЗУ отсутствует доступ к отдельному биту, поэтому для представления логических данных выделяется целый байт, в младший разряд которого и помещается значение.
Значения элементарных данных формируются в ходе исполнения программы и имеют физическое представление в ОЗУ.
В отличие от них идентификаторы данных существуют только на уровне логического представления – они используются для обозначения данных в тексте программы. Однако при трансляции программы в машинный код имена заменяются номерами ячеек, в которых данные размещаются.
При исполнении такой программы обращение к данным производится по адресу ячейки, а не идентификатору.
Адреса могут быть абсолютными – в этом случае они не изменяются при загрузке программы в ОЗУ (именно такой способ адресации применяется в исполнимых файлах с расширением .com). Однако размер таких программ не может превышать 64 кБ.
В исполнимых файлах с расширением .exe на этапе трансляции устанавливается относительные адреса данных, которые конкретизируются при размещении программы в ОЗУ – это несколько замедляет начало исполнения, зато снимает ограничения на размер программы.
Ячейка (или блок ячеек) памяти, содержащая адрес другой ячейки памяти, называется указателем (pointer). Таким образом, элемент данных может храниться в какой либо ячейке памяти, а адрес этой ячейки – в указателе, при помощи которого можно позже получить эти данные. То есть значение указателя сообщит нам, где искать данные. В некотором смысле указатель указывает на данные, отчего и получил такое название.
Во многих современных языках программирования указатели включены в набор основных типов данных. Можно объявлять, выделять память и манипулировать указателями так же, как целыми числами или строками.
4.3 Структуры данных и их представление в ОЗУ
Можно указать ряд причин, поясняющих необходимость и удобство использования данных, организованных в некоторую структуру:
- отражение в организации данных логики задачи, объективно существующей взаимосвязи и взаимообусловленности между данными;
- оптимизация последовательности обработки данных;
- широкое применение при обработке данных циклических конструкций – в них при переборе нельзя автоматически менять имя переменной, однако можно изменять индексы;
- неудобство использования большого количества одиночных данных, поскольку это ведет к необходимости использования многих имен.
Перечисленные причины приводят к тому, что в современных языках и системах программирования резервируется широкий спектр различных структур данных и предусмотрена возможность создания структур удобных и необходимых пользователю
Общие замечания по структурам данных:
- логический уровень организация данных отражается в тексте программы – им определяется порядок обработки данных;
- физический уровень представления структур в ОЗУ имеет всего две разновидности: последовательные списки и связные списки; на внешнем ЗУ (ВЗУ) все структуры представляются в виде файлов;
- обработка данных возможна только после их размещения в ОЗУ; с ВЗУ определены только операции записи/чтения;
- идентификаторы, как и у одиночных данных, существуют только в тексте программы и на этапе трансляции переводятся в адреса ячеек памяти.
Примеры структур данных: массив, список, стек, дерево.
Массив – упорядоченная линейная совокупность однородных данных.
Комментарии к определению:
· упорядоченная - элементы массива пронумерованы;
· линейная - все элементы массива равноправны;
· «однородных» - если массив формируется из элементарных данных, то это могут быть данные лишь одного какого-то типа, например, массив чисел или массив символов ( A: array [1…N] of real).
Количество индексов, определяющих положение элемента в массиве, называется мерностью массива.
Если индекс единственный, массив называется одномерным (вектор). Для записи элементов одномерного массива используется обозначение mj, в языках программирования m[j].
Массив, элемент которого имеет 2 индекса, называется двумерным или матрицей (например, g[i, j], где i – номер строки, j – номер столбца, на пересечении которых находится данный элемент).
Максимальное значение индексов определяет размер массива. Размер массива указывается в блоке описания программы, поскольку при исполнении программы для хранения элементов массива резервируется необходимый объем памяти.
Допустимый набор операций над элементами массива определяется типом данных, из которых массив сформирован.
Структура информационного массива определяется один раз на этапе его создания и в процессе использования уже не изменяется.
Что касается количества записей в структурированном информационном массиве, то при представлении его в ОЗУ компьютера возможны 2 ситуации: либо под него выделяется область ОЗУ фиксированного размера, либо размер области при необходимости может меняться.
В первом варианте в начале работы программы происходит резервирование областей ОЗУ для хранения информационных массивов. В процессе выполнения программы могут меняться значения элементов массива, но не его размер. По этой причине в случае, когда размер массива не известен заранее, приходится осуществлять избыточное резервирование, что приводит к нерациональному использованию памяти компьютера.
Информационные массивы, допускающие изменение размера (но не структуры) называются динамическими. В этом случае данные могут иметь последовательное или связное представление в ОЗУ.
Размещение массива в оперативной памяти происходит в один блок ячеек с последовательными адресами (последовательное представление).
№ элемента массива | № ячейки ОЗУ | Содержание |
А[1] | ||
A[2] | ||
A[3] | ||
…. | … | … |
N | 3000+(N-1) × 12 | A[N] |
Данные (отдельные элементы массива) размещаются в соседних последовательно расположенных ячейках памяти. На размещение одного элемента может потребоваться несколько ячеек (машинное слово), но их количество одинаково для каждого элемента. Физический порядок следования полностью соответствует логическому. Такая совокупность записей называется последовательным списком.