Самодел 2 (1114717), страница 2
Текст из файла (страница 2)
+ устранение ошибок: драйвер сам анализирует ошибки и некоторое время пытается устранить их; а если ничего не помогло, то только тогда он сообщает об этом пользователю.
«Минусы»:
- прикладной программист должен быть готов к использованию разных драйверов
- прикладные программы должны модифицироваться при добавлении новых устройств
Управление логическими/виртуальными ресурсами.
В качестве решения проблем предыдущего уровня появился этот. Он привел к обобщению и созданию драйверов с едиными интерфейсами: пользователь смог работать с разными устройствами как с одним и тем же.
Логическое/виртуальное устройство (ресурс) – устройство/ресурс, некоторые эксплутационные характеристики которого (возможно все) реализованы программным образом.
Драйвер логического/виртуального ресурса - программа, обеспечивающая существование и использование соответствующего ресурса
Разветвленная иерархия виртуальных и физических устройств.
Драйверы можно разделить на 3 группы:
«А» - драйверы физических устройств
«В» - драйверы устройств аппаратного типа – для работы с виртуальными устройствами
«С» - драйверы виртуальных устройств, которым сложно сопоставить физическое устройство. (Например, драйвер файловой системы – для пользователя не ясно с чем в конечном счете он работает – с винчестером IBM или с ОЗУ и пр.)
П
ример с группами драйверов устройств:
Многоуровневая система доступа к устройствам дает упрощение программирования, создания ПО.
Ресурсы вычислительной системы - совокупность всех физических и виртуальных ресурсов.
Одна из характеристик ресурсов вычислительной системы их конечность, следовательно возникает конкуренция за обладание ресурсом между его программными потребителями.
Операционная система - это комплекс программ, обеспечивающий управление ресурсами вычислительной системы.
Средства программирования, доступные на уровнях управления ресурсами ВС:
• система команд компьютера;
• программные интерфейсы драйверов устройств (как физических, так и виртуальных)
Системы программирования.
Система программирования – это комплекс программ, обеспечивающий поддержание жизненного цикла программы в вычислительной системе.
Этапы, связанные с разработкой и внедрением программы, называются жизненным циклом.
Жизненный цикл программы в вычислительной системе
1.Проектирование
2. Кодирование
3. Тестирование и отладка
4. Ввод программной системы в эксплуатацию (внедрение) и сопровождение
исследование решаемой задачи
формирование концептуальных требований
выявление характеристик ВС (например, смартфон – устройство, включающее в себя функции телефона, элементы, возможности компьютера)
набор требуемых и возможных функций ВС
рассматриваются возможности ВС, после чего они учитываются => устанавливаются рамки использования на определенной ВС, в которой будет работать программа (программная среда, например в PC или в mainframe)
выбираются, зная всё предыдущее
(моделирование) определение какими характеристиками будет обладать готовый продукт
2. Кодирование
Этап построения кода программы на основе данных, полученных при проектировании
Средства для использования библиотек и разработки программных продуктов предназначены для коллективной работы над программным продуктом. Включают в себя контроль структурной организации, контроль межуровневых интерфейсов и т.д.
Используется система поддержки версий.
В общем случае мы не можем говорить, что программа правильна – мы можем говорить, что она правильна на определенных тестах.
Суть отладки: мы знаем, что программа работает не правильно, тогда осуществляем поиск и исправление ошибок, выявленных в тестировании или при исполнении, используя отладчики.
4. Ввод программной системы в эксплуатацию (внедрение) и сопровождение
Данный этап предполагает наличие к программе документации.
Современные технологии разработки программного обеспечения
К
аскадная модель Каскадная итерационная модель
Каскадная модель обычно вырожденная, как бы хорошо ни исследовался каждый этап. Более жизненная модель – каскадная итерационная. Но ее минус – недетерминированное время. Закончить каждый этап практически невозможно – его нужно прерывать.
Спиральная модель организации жизненного цикла программных систем направлена на создание прототипов.
Система программирования – это комплекс программ, обеспечивающий поддержание всех этапов жизненного цикла программы.
Экскурс в развитие систем программирования:
Начало 50-х годов ХХ – века. Система программирования или система автоматизации программирования включала в себя ассемблер (или автокод) и загрузчик, появление библиотек стандартных программ и макрогенераторов.
Середина 50-х – начало 60-х годов ХХ – века. Появление и распространение языков программирования высокого уровня (Фортран, Алгол-60, Кобол и др.). Формирование концепций модульного программирования.
Середина 60-х годов – начало 90-х ХХ – века. Развитие интерактивных и персональных систем, появление и развитие языков объектно-ориентированного программирования.
90-е ХХ – века – настоящее время. Появление промышленных средств автоматизации проектирования программного обеспечения, CASE-средств (Computer-Aided Software/System Engineering), унифицированного языка моделирования UML.
Средства программирования, доступные на уровне системы программирования - программные средства и компоненты СП, обеспечивающие поддержание жизненного цикла программы.
5. Прикладные системы
Прикладная система – программная система, ориентированная на решение или автоматизацию решения задач из конкретной предметной области.
Первый этап развития прикладных систем - уникальное решение для уникальных задач.
Разработка и решение на этом этапе применимы только для одной машины.
Второй этап –
развитие систем программирования и появление средств создания и использования библиотек программ.
Т ретий этап характеризуется появлением
пакетов прикладных программ – программный комплекс, содержащий много всего для решения различных задач.
Стандартизация пользовательских интерфейсов приводит к тому, что любому человеку требуется мало затрат на освоение любой программы, если он знаком с другими.
О
сновные тенденции в развитии современных прикладных систем
-
Стандартизация моделей автоматизируемых бизнес-процессов
-
B2B (business to business)
-
B2C (business to customer)
-
ERP (Enterprise Resource Planning)
-
CRM (Customer Relationship Management)
-
Открытость системы
-
API - Application Programming Interface
-
Выводы:
Пользователь и уровни структурной организации ВС:
Базовые определения и понятия:
-
Вычислительная система
-
Физические ресурсы (устройства)
-
Драйвер физического устройства
-
Логические или виртуальные ресурсы (устройства)
-
Драйвер логического/виртуального ресурса
-
Ресурсы вычислительной системы
-
Операционная система
-
Жизненный цикл программы в вычислительной системе
-
Система программирования
-
Прикладная система
1.2. Основы компьютерной архитектуры
Принципы построения компьютера фон Неймана:
1. Принцип двоичного кодирования
Вся информация кодируется в двоичных числах.
2. Принцип программного управления
Выполнение операций с операндами, выполнение программы = выполнение определенной последовательности команд.
3. Принцип хранимой программы
Для хранения программы и данных используется единое устройство хранения, состоящее из ячеек памяти, содержащих машинные слова и имеющих последовательную адресацию. Команды и данные записываются одинаково.
Всё это должно быть уже знакомо тем, кто учился во втором семестре.
Такие принципы построения компьютера привели к появлению трансляций языков программирования.
Структура, основные компоненты компьютера фон Неймана:
ЦП – центральный процессор
АЛУ – арифметико-логическое устройство
УУ – устройство управления
ОЗУ – оперативное запоминающее устройство
Современные компьютеры отошли от принципов вон Неймана:
-
Принцип параллелизма => улучшение производительности
-
Различное применение компьютеров => точность работы
Оперативное запоминающее устройство
ОЗУ (RAM) – устройство компьютера, предназначенное для хранения данных, в которых находится или может находиться выполняемая на компьютере программа. ОЗУ состоит из ячеек памяти. Ячейка памяти – это, как правило, совокупность двух полей:
т ег и машинное слово. В теге может храниться информация, которая используется для внутренних целей компьютера, таких как контроль за сохранением целостности информации, контроль доступа к командам и данным, контроль доступа к машинным типам данных.
-
Контроль за целостностью данных
П ример:
2. Контроль доступа к командам/данными
Исключение ошибок в коде, а не на аппаратном уровне. В этом случается нарушается принцип фон Неймана: контролируем, к каким данным мы обращаемся, чтобы не выполнить «данные» или не считать команды в качестве данных.
3. Контроль доступа к машинным типам данных
Чтобы при выполнении не было ошибок с типами данных, тег может контролировать, какие данные берутся
Ячейки имеют последовательные адреса. Адресация бывает прямая косвенная.
Основная характеристика производительности ОЗУ – скорость доступа процессора к данным в оперативной памяти.
-
время доступа (access time- taccess) - время между запросом на чтение слова из оперативной памяти и получением содержимого этого слова.
-
длительность цикла памяти (cycle time - tcycle) - минимальное время между началом текущего и последующего обращения к памяти.
tcycle>taccess, иногда tcycle>>taccess. Это для того, чтобы доработала что-то внутри себя.
Расслоение памяти
ОЗУ делится на К независимых банков памяти, где К = 2L. Банк – устройство, содержащее часть памяти. Причём соседние слова должны располагаться в разных банках. У каждого банка есть свой контроллер, и они объединены единым контроллером доступа к памяти. Когда мы хотим прочитать или записать в память какую-то последовательность, то отдельные её части поступают на контроллеры банков, и они записывают их одновременно.
Пусть нам надо прочитать последовательность длины n. Тогда без расслоения нам понадобилось бы время порядка n*tcycle. С расслоением на K банков наша последовательность распадётся на [n/K] частей (непоследовательных), которые будут скормлены каждая своему банку. Одна будет состоять из байтов с номером p*K, другая p*K+1 и т.д. Тогда для чтения нашей последовательности потребуется время порядка [n/K] *taccess.
Центральный процессор
Процессор или центральный процессор (ЦП) компьютера обеспечивает последовательное выполнение машинных команд, составляющих программу, размещенную в оперативной памяти.