Системная шина
В основе устройства ЭВМ лежит системная шина, которая служит для обмена командами и данными между компонентами ЭВМ, расположенными на материнской плате. ПУ подключаются к шине через контроллеры. Такая архитектура ЭВМ называется открытой, так как легко может быть расширена за счет подключения новых устройств. Передача информации по системной шине также осуществляется по тактам.
Системная шина включает в себя:
- кодовую шину данных для параллельной передачи всех разрядов числового кода (машинного слова) операнда из ОЗУ в МПП и обратно; имеет 64 разряда;
- кодовую шину адреса для параллельной передачи всех разрядов адреса ячейки ОЗУ; имеет 32 разряда;
- кодовую шину инструкций для передачи команд (управляющих сигналов, импульсов) во все блоки ЭВМ; простые команды кодируются одним байтом, но есть и команды, кодируемые двумя, тремя и более байтами; имеет 32 разряда;
- шину питания для подключения блоков ЭВМ к системе энергопитания.
Системная шина обеспечивает три направления передачи информации:
1) между МП и ОЗУ;
2) между МП и контроллерами устройств;
3) между ОЗУ и внешними устройствами (ВЗУ и ПУ, в режиме прямого доступа к памяти).
Все устройства подключаются к системной шине через контроллеры – устройства, которые обеспечивают взаимодействие внешних устройств и системной шины.
Чтобы освободить МП от управления обменом информацией между ОЗУ и внешними устройствами, например при чтении или записи информации, предусмотрен режим прямого доступа в память (DMA – Direct Memory Access). Таким образом, МП может заниматься выполнением других команд, не отвлекаясь на копирование информации между ОЗУ и внешними устройствами.
Характеристиками системной шины являются количество обслуживаемых ею устройств и ее пропускная способность, то есть максимально возможная скорость передачи информации. Пропускная способность шины зависит от следующих параметров:
- разрядность или ширина шины – количество бит, которое может быть передано по шине одновременно (существуют 8-, 16-, 32- и 64-разрядные шины);
- тактовая частота шины – частота, с которой передаются биты информации по шине.
Наиболее распространенные шины.
PCI (Peripheral Component Interconnect) – самая распространенная системная шина. Быстродействие шины не зависит от количества подсоединенных устройств. Поддерживает следующие режимы:
- Plug and Play (PnP) – автоматическое определение и настройка подключенного к шине устройства;
- Bus Mastering – режим единоличного управления шиной любым устройством, подключенным к шине, что позволяет быстро передать данные по шине и освободить ее.
AGP (Accelerated Graphics Port) – магистраль между видеокартой и ОЗУ. Разработана, так как параметры шины PCI не отвечают требованиям видеоадаптеров по быстродействию. Шина работает на большей частоте, что позволяет ускорить работу графической подсистемы ЭВМ.
Основные характеристики шин
Характеристика |
PCI |
AGP |
Разрядность шины данных/адреса, бит |
32/32 |
32/32 |
Рабочая частота, МГц |
66 |
133 |
Пропускная способность, Мбит/с |
264 |
2112 |
Число подключаемых устройств, шт. |
10 |
1 |
22. Обобщенная структурная схема персонального компьютера.
23. Программное обеспечение ЭВМ. Классификация и состав.
Совокупность программ, процедур и правил, а также документации, связанных с функционированием системы обработки данных, составляют программное обеспечение (ПО; software). Программное и аппаратное обеспечение в ЭВМ работают в неразрывной связи и взаимодействии.
Можно выделить следующие уровни ПО (в порядке убывания):
1) прикладной уровень;
2) служебный уровень;
3) системный уровень;
4) базовый уровень.
Базовый уровень отвечает за взаимодействие с аппаратными средствами и хранится в базовой системе ввода-вывода (BIOS). Программы и данные записываются в ПЗУ на этапе производства и не могут быть изменены во время эксплуатации. ПО базового уровня выполняет следующие функции:
- тестирование оборудования после каждого включения ЭВМ, которое состоит из инициализации системных ресурсов и регистров микросхем, тестирования ОЗУ, инициализации контроллеров, определения и подключения ВЗУ;
- передача управления загрузчику операционной системы;
- управление электропитанием при выключении ЭВМ.
Системный уровень обеспечивает взаимодействие других программ компьютера с базовым уровнем и непосредственно с аппаратным обеспечением. Совокупность ПО системного уровня образует ядро операционной системы (ОС) ЭВМ. Ядро ОС выполняет следующие функции:
- управление и распределение памяти ОЗУ и ВЗУ;
- управление процессами ввода-вывода;
- поддержка файловой системы – упорядоченной совокупности объектов различного типа (файлов), хранящихся в ВЗУ;
- управление устройствами через специальные программы – драйверы;
- организация взаимодействия и диспетчеризации процессов – выполняемых в данный момент программ и задач;
- предоставление интерфейса пользователю для управления перечисленными функциями – системы окон, меню, панелей инструментов для вызова соответствующих функций.
Драйвер устройств – это программа, которая обеспечивает взаимодействие (преобразование сигналов, данных) с компонентами ЭВМ. Почти все компоненты взаимодействуют с ОС через драйверы.
Служебный уровень автоматизирует работы по проверке и настройке компьютерной системы. Задачи, решаемые на служебном уровне, аналогичны задачам системного уровня, однако ПО служебного уровня решает их эффективней. Таким образом, служебный уровень дополняет системный уровень.
Типы служебных программ.
1. Диспетчеры файлов (файловые менеджеры). Предоставляют удобные средства для выполнения большинства операций по обслуживанию файловой системы: копированию, перемещению, переименованию файлов, созданию каталогов (папок), уничтожению объектов, поиску файлов и навигации в файловой системе.
2. Средства сжатия данных (архиваторы). Создают, обновляют и обслуживают архивных файлов, предназначенных для компактного хранения и передачи других файлов.
3. Средства диагностики. Предназначены для автоматизации процессов проверки правильности работы программного и аппаратного обеспечения и оптимизации работы компьютерной системы.
4. Средства просмотра и воспроизведения. Служат для просмотра текстовых файлов, графических изображений, воспроизведения звуковых или видеофайлов.
5. Средства обеспечения компьютерной безопасности. Служат для предотвращения несанкционированного доступа к файлам для их чтения, изменения или повреждения.
Прикладной уровень представляет собой комплекс прикладных программ, с помощью которых выполняются конкретные задачи (производственные, творческие, развлекательные и учебные).
Классификация прикладного ПО.
1. Офисные пакеты. Представляют собой комплексное решение задач, возникающих при документообороте в учреждениях и домашних условиях. Включают текстовый редактор для создания и обработки текстов; табличный процессор для подсчета и анализа числовых данных; систему управления базами данных (СУБД) для хранения и обработки данных; редактор презентаций для подготовки материалов для проведения лекций и презентаций.
2. Графические редакторы предназначены для создания и обработки графических изображений и делятся на три типа: редакторы растровой графики, редакторы векторной графики и редакторы трехмерной графики. Растровая графика состоит из массива точек разных цветов. Векторная графика представляет изображение в виде набора геометрических примитивов: точек, линий, прямоугольников, окружностей и др. Трехмерная графика строится на основе векторной графики, но к ней добавляются новые элементы, имитирующее третье измерение.
3. Системы автоматизированного проектирования (cad-системы) предназначены для автоматизации проектно-конструкторских работ в машиностроении, приборостроении, архитектуре. Позволяют проводить математические расчеты надежности конструкций.
4. Программы для работы в локальных и глобальных сетях: браузеры, клиенты электронной почты, программы для загрузки файлов.
5. Системы автоматизированного перевода. Различают электронные словари и программы перевода текстов на естественных языках.
6. Бухгалтерские системы. Предназначены для автоматизации подготовки начальных бухгалтерских документов предприятия, финансовых отчетов и их учета.
7. Игровые, обучающие и справочные программы.
8. Инструментальные языки и системы программирования. Предназначены для разработки новых программ. Предоставляют программисту удобные средства для создания и отладки программных средств.
24. Операционные системы. Основные функции и виды.
Операционная система (ОС) представляет собой комплекс системных и служебных программных средств. С одной стороны, она опирается на базовое ПО, входящее в его систему BIOS, с другой стороны, она сама является основой для ПО более высоких уровней – прикладных и большинства служебных приложений. Приложениями ОС принято называть программы, предназначенные для работы под управлением данной системы.
Основная функция всех ОС – посредническая. Она заключается в обеспечении нескольких видов взаимодействия:
- взаимодействие между пользователем с одной стороны и программным и аппаратным обеспечением ЭВМ с другой стороны, называемое интерфейсом пользователя;
- взаимодействие между программным и аппаратным обеспечением, называемое аппаратно-программным интерфейсом;
- взаимодействие между программным обеспечением разного уровня, называемое программным интерфейсом.
ОС появились и развивались в процессе совершенствования аппаратного обеспечения компьютеров, поэтому эти события исторически тесно связаны. Развитие компьютеров привело к появлению огромного количества различных ОС, из которых далеко не все широко известны. Для одной и той же аппаратной платформы существует несколько ОС. Различия между ними рассматриваются в двух категориях: внутренние и внешние. Внутренние различия характеризуются методами реализации основных функций. Внешние различия определяются наличием и доступностью приложений данной системы, необходимых для удовлетворения технических требований, предъявляемых к конкретному рабочему месту.
ОС можно подразделить по типу аппаратного обеспечения, на котором ОС работают.
Серверные ОС одновременно обслуживают множество пользователей и позволяют им делить между собой программно-аппаратные ресурсы сервера. Серверы также предоставляют возможность работы с печатающими устройствами, файлами или сетью Интернет. У Интернет-провайдеров обычно работают несколько серверов для того, чтобы поддерживать одновременный доступ к сети множества клиентов. На серверах хранятся страницы веб-сайтов и обрабатываются входящие запросы. Unix и специальная серверная версия ОС Windows являются примерами серверных ОС. Теперь для этой цели стала использоваться и ОС Linux.
Следующую категорию составляют ОС для персональных компьютеров. Их работа заключается в предоставлении удобного интерфейса для одного пользователя. Такие системы широко используются и повседневной работе. Основными ОС в этой категории являются Windows XP / Vista / 7, Apple MacOS и Linux.
Другим видом ОС являются системы реального времени. Главным параметром таких систем является время. Например, в системах управления производством компьютеры, работающие в режиме реального времени, собирают данные о промышленном процессе и используют их для управления оборудованием. Такие процессы должны удовлетворять жестким временным требованиям. Если по конвейеру передвигается автомобиль, то каждое действие должно быть осуществлено в строго определенный момент времени. Если сварочный робот сварит шов слишком рано или слишком поздно, то нанесет непоправимый вред изделию. Системы VxWorks и QNX являются ОС реального времени.
Встроенные ОС используются в смартфонах, карманных компьютерах и бытовой технике. Карманный компьютер – это маленький компьютер, помещающийся в кармане и выполняющий небольшой набор функции, например, телефонной книжки и блокнота. Смартфон – это мобильный телефон, обладающий многими возможностями карманного компьютера. Встроенные микропроцессорные системы, управляющие работой устройств бытовой техники, не считаются компьютерами, но обладают теми же характеристиками, что и системы реального времени, и при этом имеют малые размер и память и ограничения мощности, что выделяет их в отдельный класс. Примерами таких ОС являются Google Andrоid и Apple iOS.
Самые маленькие ОС работают на смарт-картах, представляющих собой устройство размером с кредитную карту и содержащих центральный процессор. На такие ОС накладываются очень жесткие ограничения по мощности процессора и памяти. Некоторые из них могут управлять только одной операцией, например электронным платежом, но другие ОС выполняют более сложные функции.
Основными функциями ОС являются:
1) распределение ресурсов ЭВМ между процессами – выделение процессам ресурсов ЭВМ в зависимости от их приоритета;
2) поддержание файловой системы – организация хранения и поиска программ и данных на внешних носителях;
3) обеспечение интерфейса пользователя – прием и выполнение команд пользователя.
Рассмотрим эти функции ОС подробнее.
25. Основы структурного программирования.
Cтруктурное программированиевоплощает принципы системного подхода в процессе создания и эксплуатации программного обеспечения ЭВМ. В основу структурного программирования положены следующие достаточно простые положения:
алгоритм и программа должны составляться поэтапно (по шагам).
сложная задача должна разбиваться на достаточно простые части, каждая из которых имеет один вход и один выход.
логика алгоритма и программы должна опираться на минимальное число достаточно простых базовых управляющих структур.
Структурное программирование иногда называют еще "программированием без GO TO". Рекомендуется избегать употребления оператора перехода всюду, где это возможно, но чтобы это не приводило к слишком громоздким структурированным программам.
26. Базовые управляющие конструкции.
Композиция, или следование − это линейная конструкция алгоритма, составленная из последовательноследующихдруг за другом функциональных вершин
Альтернатива, или ветвление– это конструкция ветвления, имеющая предикатную вершину.
Итерация, или циклы– это циклическая конструкция алгоритма, состоящая из композиции и альтернативы.
27. «Восходящий» и «нисходящий» способы проектирования программ.
При использовании восходящего подхода разработка программы идёт с самого низкого уровня. Когда исходящий компонент готов, переходят к компоненту более высокого уровня, и так далее до высшего уровня. В ходе разработки все компоненты программы собираются, иногда компоненты низких уровней попадают в библиотеки. Минусы этого подхода:
Увеличение вероятности несогласованности компонентов вследствие неполноты спецификаций;
Наличие издержек на проектирование и реализацию тестирующих программ, которые нельзя преобразовать в компоненты;
Позднее проектирование интерфейса, а соответственно невозможность продемонстрировать его заказчику для уточнения спецификаций и т.д.
Когда мы создаем программы с помощью нисходящего подхода, мы разрабатываем программу с самого высокого уровня, переходя на более низкие в процессе разработки («сверху-вниз»). При этом мы можем тестировать и отлаживать уже готовую часть программы, используя взамен компонентов низкого уровня специально подготовленные ‘’заглушки” (специально разработанные отладочные модули). При использовании нисходящего подхода применяют иерархический, операционный и комбинированный методы определения последовательности проектирования и реализации элементов.
Иерархический – разработка строго по уровням. (минусы – большое кол-во заглушек, затруднение с распределением чел.ресурсов в конце работы над проектом)
Операционный – связывает последовательность разработки модулей с порядком их выполнения при запуске программы. (минусы – проблема с людьми в начале работы, порядок выполнения модулей может зависеть от данных)
Комбинированный - учитывает следующие факторы, влияющие на последовательность разработки:
Достижимость модуля-наличие всех модулей в цепочке вызова данного модуля;
Зависимость по даныым – модули,формирующие некоторые данные,должны создаваться раньше обрабатывающих.
Обеспечение возможности выдачи результатов – модули вывода результатов должны создаваться раньше обрабатывающих.
Готовность вспомогательных модулей (закрытия файлов,завершения программ)
Наличие необходимых ресурсов
Нисходящий подход обеспечивает –
Максимально полное определение спецификаций проектируемого компонента и согласованность компонентов между собой.
Раннее определение интерфейса пользователя, демонстрация которого заказчику позволяет уточнить требования к создаваемому программному обеспечению.
Возможность нисходящего тестирования и комплексной отладки.
28. Алгоритм и схема алгоритма. Основные свойства алгоритма.
В основу работы ЭВМ положен программный принцип управления, состоящий в том, что ЭВМ выполняет действия по заранее заданной программе. Программа – это упорядоченная последовательность команд, которые понимает ЭВМ.
В основе любой программы лежит алгоритм. Алгоритм – это полное и точное описание на некотором языке конечной последовательности правил, указывающих исполнителю действия, которые он должен выполнить, чтобы за конечное время перейти от (варьируемых) исходных данных к искомому результату.
Причем интуитивно под алгоритмом понимают некоторую систему правил, обладающих определенными свойствами.
Далее, изучая понятие алгоритма, мы будем предполагать, что его исполнителем является автоматическое устройство ЭВМ. Это накладывает на запись алгоритма целый ряд обязательных требований. Сформулируем эти требования в виде перечня свойств, которыми должен обладать алгоритм, адресуемый к исполнению на ЭВМ.
1. Первым свойством алгоритма является дискретный (пошаговый) характер определяемого им процесса. Возникающая в результате такого разбиения запись алгоритма представляет собой упорядоченную последовательность отдельных предписаний (директив, команд), образующих прерывную/дискретную структуру алгоритма: только выполнив требования одного предписания можно приступить к исполнению следующего.
2. Исполнитель может выполнить алгоритм, если он ему понятен, то есть записан на понятном ему языке и содержит предписания, которые исполнитель может выполнить. Набор действий, которые могут быть выполнены исполнителем, называется системой команд исполнителя. Алгоритм не должен содержать описания действий, не входящих в систему команд исполнителя, то есть своей структурой команд и формой записи алгоритм должен быть ориентирован на конкретного исполнителя.
3. Алгоритмы, предназначенные для исполнения техническим устройством, не должны содержать предписаний, приводящих к неоднозначным действиям. Алгоритм рассчитан на чисто механическое исполнение, и если применять его повторно к одним и тем же исходным данным, то всегда должен получаться один и тот же результат; при этом и промежуточные результаты, полученные после соответствующих шагов алгоритмического процесса, тоже должны быть одинаковыми. Это свойство определенности и однозначности – детерминированности алгоритма позволяет использовать в качестве исполнителя специальные машины-автоматы.
4. Основополагающим свойством алгоритма является его массовость, применимость к некоторому классу объектов, возможность получения результата при различных исходных данных на некоторой области допустимых значений. Например, исходными данными в алгоритмах аль-Хорезми могут быть любые пары десятичных чисел. Конечно, его способ не всегда самый рациональный по сравнению с известными приемами быстрого счета. Но смысл массовости алгоритма состоит как раз в том, что он одинаково пригоден для всех случаев, требует лишь механического выполнения цепочки простых действий и при этом исполнителю нет нужды в затратах творческой энергии.
5. Цель выполнения алгоритма – получение конечного результата посредством выполнения указанных преобразований над исходными данными. В алгоритмах аль-Хорезми исходными данными и результатом являлись числа. Причем при точном исполнении всех предписаний алгоритмический процесс должен заканчиваться за конечное число шагов. Это обязательное требование к алгоритмам – требование их результативности или конечности.
В математике известны вычислительные процедуры алгоритмического характера, не обладающие свойством конечности. Например, процедура вычисления числа . Однако, если мы введем условие завершения вида «закончить после получения n десятичных знаков числа », то получим алгоритм вычисления n десятичных знаков числа . На этом принципе построены многие вычислительные алгоритмы.
6. Если алгоритм должен быть выполнен не просто за конечное время, а за разумное конечное время, то речь идет об эффективности алгоритма. Время выполнения алгоритма очень важный параметр, однако, понятие эффективности алгоритма трактуется шире, включая такие аспекты, как сложность, необходимые ресурсы, информационно-программное обеспечение. Эффективность алгоритма часто определяет возможность его практической реализации.
Схема алгоритма – это графический способ его представления с элементами словесной записи. Каждое предписание алгоритма изображается с помощью плоской геометрической фигуры – блока. Отсюда название: блок-схема. Переходы от предписания к предписанию изображаются линиями связи – линиями потоков информации, а направление переходов – стрелками. Различным по типу выполняемых действий блокам соответствуют различные геометрические фигуры.
29. Способы записи алгоритмов. Схемный способ записи. Примеры составления алгоритмов и записи их в виде схем.
Выделяют три наиболее распространенные на практике способа записи алгоритмов:
словесный (запись на естественном языке);
графический (запись с использованием графических символов);
программный (тексты на языках программирования).
Рассмотрим общие правила построения схем алгоритмов.
1. Для конкретизации содержания блока и уточнения выполняемого действия внутри блока помещаются краткие пояснения – словесные записи с элементами общепринятой математической символики.
Наименование символа |
Обозначение и размеры |
Функция |
Процесс (вычислительный блок) |
|
Выполнение операции или группы операций, в результате которых изменяются значение, форма представления или расположение данных |
Решение (логический блок) |
|
Выбор направления выполнения алгоритма в зависимости от некоторых условий |
Модификация (заголовок цикла) |
|
Выполнение операций по управлению циклом – повторением команды или группы команд алгоритма |
Пуск-останов (начало-конец) |
|
Начало или конец выполнения программы или подпрограммы |
Предопределенный процесс (вызов подпрограммы) |
|
Вызов и использование ранее созданных и отдельно описанных алгоритмов (подпрограмм) |
Ввод/вывод |
|
Общее обозначение ввода или вывода данных в алгоритме безотносительно к внешнему устройству |
Соединитель |
|
Указание прерванной связи между блокам в пределах одной страницы |
Межстраничный соединитель |
|
Указание прерванной связи между блоками, расположенными на разных листах |
30. Обработка прикладной программы под управлением ЭВМ.
----------
31. Системы программирования. Назначение и состав.
Системы программирования – это комплекс инструментальных программных средств, предназначенных для работы с программами на одном из языков программирования. Системы программирования представляют сервисные возможности программистам для разработки их собственных компьютерных программ. Системы программирования, как правило, включают в себя:
Текстовый редактор (Edit), осуществляющий функции записи и редактирования исходного текста программы;
Загрузчик программ(Load), позволяющий выбрать из директория нужный текстовый файл программы;
Запускатель программ (Run), осуществляющий процесс выполнения программы;
Компилятор (Compile), предназначенный для компиляции или интерпретации исходного текста программы в машинный код с диагностикой синтаксических и семантических (логических) ошибок;
Отладчик (Debug), выполняющий сервисные функции по отладке и тестированию программы;
Диспетчер файлов (File), предоставляющий возможность выполнять операции с файлами: сохранение, поиск, уничтожение и т.п.
32. Тестирование и отладка программ.
Тес Отладка программы – это процесс поиска и устранения ошибок. Часть ошибок формального характера, связанных с нарушением правил записи конструкций языка или отсутствием необходимых описаний, обнаруживает транслятор, производя синтаксический анализ текста программы. Транслятор выявляет ошибки и сообщает о них, указывая их тип и место в программе. Такие ошибки называются ошибками времени трансляции или синтаксическими ошибками.
Ошибочные ситуации могут возникнуть и при выполнении программы, например, деление на нуль или извлечение корня квадратного из отрицательного числа. Такие ошибки называются ошибками времени выполнения.
Программа, не имеющая ошибок трансляции и выполнения, может и не дать верных результатов из-за логических ошибок в алгоритме, т. е. алгоритмических или семантических ошибок. Ошибки подобного рода могут возникнуть на любом этапе разработки программы: постановки задачи, разработке математической модели или алгоритма. Необходим действенный контроль над процессом вычислений, позволяющий предотвращать или своевременно обнаруживать ошибки подобного рода. Для этого используются как качественный анализ задачи, основанный на различного рода интуитивных соображениях и правдоподобных рассуждениях, так и контрольный просчет или тестирование программы.
Тестирование программы – это выполнение программы на наборах исходных данных (тестах), для которых известны результаты, полученные другим методом. Система тестов подбирается таким образом, чтобы
а) проверить все возможные режимы работы программы;
б) по возможности, локализовать ошибку.
При тестировании программы простой и действенный метод дополнительного контроля над ходом её выполнения – получение контрольных точек, т. е. контрольный вывод промежуточных результатов.
Для проверки правильности работы программы иногда полезно также выполнить проверку выполнения условий задачи (например, для алгебраического уравнения найденные корни подставляются в исходное уравнение и проверяются расхождения левой и правой частей).
Для сложных по структуре программ плохо спланированные процессы алгоритмизации и программирования приводят к ошибкам, которые могут быть обнаружены лишь после многократных проверок, и процесс отладки и тестирования может потребовать значительно больше машинного времени, чем собственно само решение задачи на ЭВМ.
33. Виды ошибок в программах.
Ошибки программирования делятся на три категории: ошибки компиляции, ошибки во время выполнения и логические ошибки. Методы отладки каждого из этих типов ошибок рассматриваются в следующих трех занятиях.
