Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебно-методическое пособие по дисциплине Программное обеспечение систем управления. Автоматизация технологических процессов и производства

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
В Pentium таблицы страниц могут храниться в кэш – памяти, что не приводит к потере быстродействия при формировании адреса. Такое двухступенчатое разделение памяти на страницы даёт каждому приложению теоретическое ограничение по используемой памяти в 1 миллион страниц по 4 килобайта каждая. Всё управление памятью производится с помощью манипуляций с таблицами страниц. В 32-битовых дескрипторах страниц отводится ещё 12 битов, кроме тех, которые используются для адресации страниц. Один из этих битов показывает возможность доступа к конкретной странице (он называется битом доступа), другой показывает, была ли произведена запись в эту страницу (он называется битом «мусора»). Ещё один бит – бит присутствия показывает, была ли страница сброшена на диск и должна ли быть подкачана обратно в память. Ещё один бит («чтения/записи») показывает, разрешена ли запись в данную страницу памяти.
Виртуальные адреса при работе в вычислительной среде Windows имеют разрядность 32 бита. Программа и данные имеют адреса в диапазоне от 0x00000000 до 0x7FFFFFFF. Сама операционная система использует адреса от 0х00000000 до 0хFFFFFFFF. В этой области располагаются точки входа в динамически подключаемые библиотеки Windows. Общее количество доступной памяти для программы определяется как количество свободной физической памяти плюс количество свободного места на жёстком диске, доступного для свопинга страниц. Как правило, при управлении виртуальной памятью Windows использует процедуру с именем LRU (least recently used) для определения того, какие страницы будут сброшены на диск. Бит доступа и бит мусора помогают осуществить эту операцию. Страницы кода (программы) не должны сбрасываться на диск, поскольку запись в его страницы запрещена, они могут быть просто загружены из файла с расширением .ЕХЕ или динамически подключаемой библиотеки.
Некоторые страницы кода (программы) могут использоваться разными приложениями. Это относится и к динамически подключаемым библиотекам. В таких случаях несколько программ, выполняемых одновременно, могут использовать одни и те же функции или подпрограммы Windows, не требуя, чтобы один и тот же код загружался в память несколько раз. Достаточно одной копии. При динамическом выделении памяти каждый выделяемый блок не обязательно получает свою собственную страницу. Последовательное выделение небольших объёмов памяти производится в одной и той же физической странице с ближайшего 4-разрядного адреса (то есть для одного байта используется 16 битов). Если какой-либо блок расширяется, то он может быть физически перемещён в памяти, если следующий за ним блок памяти занят. По рассмотренным выше спецификациям строятся операционные модели при отображениях информации между парами хранящих сред с
51
целью анализа управляющей архитектуры и решения задач оптимального управления. Для выделения памяти грамматика языка С предусматривает средства для определения в программе указателя. Например, указатель на массив целых чисел записывается так: Int *p. В этой записи указатель р – это 32-разрядное число, не инициализированное. После такого объявления указателя можно выделить блок памяти, на который будет указывать р, следующим образом
P = (int*) malloc (1024); При этом выделяется блок памяти размером 1024 байта, который
может хранить 256 32-разрядных целых числа. Если появилась запись о том, что указателю присваивается значение, то присвоение памяти не было успешным.
Аналогичный блок памяти выделяется при применении оператора:
P = (int*)calloc (256 , sizeof (int));
Здесь int * и два параметра функции calloc перемножаются, в результате
чего выделяются 1024 байта. Кроме того функция calloc производит обнуление содержимого блока памяти.
Для увеличения размера памяти используется вызов функции:
P = (int*) realloc (p , 2048);
Здесь указатель р, который является параметром функции, отличается по значению от первоначально заданного при увеличении блока выделяемой памяти. Указатель р в левой части – возвращаемое значение.
По окончании работы с памятью необходимо вызвать функцию:
Free ( p );
Важно отметить, что все операции по управлению памятью,
осуществляемые с помощью библиотечных функций алгоритмического языка С, можно делать самостоятельно, используя систему команд микропроцессора или используя вызовы функций из соответствующей библиотеки ядра операционной системы Windows. Например, выделение блока памяти для указателя на целое при вызове функции Windows можно осуществить с помощью оператора:
P = ( int*) GlobalAlloc ( aiFlags , dwSize) ;
В качестве параметров эта функция использует набор флагов и размер выделяемого блока памяти в байтах. Эта функция возвращает виртуальный адрес, который может использоваться в программе для доступа к выделенной памяти. Возвращаемое значение, идентифицированное как NULL, обозначает то, что имеющейся свободной области памяти недостаточно для выделения.
В Windows (начиная с 95 версии) блок памяти может быть переме­щён в физической памяти при сохранении виртуального адреса неизменным. Для перемещения сначала определяются указатель и переменная типа GLOBALHANDLE следующим образом:
52
int*;
GLOBALHANDLE hGlobal;
Затем выделяется память ,например, так
hGlobal = GlobalAlloc (GHNO , 1024);
Функция GlobalAlloc определена как возвращаемое значение типа GLOBALHANDLE.
Для фиксации блока памяти при обращениях к нему можно использовать оператор
P = (int*) GlobalLock (hGlobal);
где функция GlobalLock преобразует описатель памяти в указатель. Пока блок зафиксирован, Windows не изменяет его виртуальный адрес. Когда заканчивается работа с блоком, для снятия фиксации вызывается функция
GlobalUnlock (hGlobal);
Этот вызов даёт возможность свободно перемещать блок в виртуальной памяти.
Для освобождения памяти вызывается функция с параметром-
описателем, а не указателем. Перемещение блока в виртуальной памяти не означает перемещения содержимого мест хранения, а производится манипуляция с таблицами страниц. Это означает перенумерацию информации новыми номерами виртуальной памяти, то есть переформирование графиков таблиц соответствий.
Windows поддерживает ряд функций, начинающихся со слова Virtual, используемых для управления виртуальной памятью. В Windows
любой блок виртуальной памяти может находиться в одном из трёх состояний: первое состояние - блок спроецирован на память (committed), второе состояние - блок свободен или доступен для будущего выделения (free), третье состояние - блок зарезервирован (reserved). Зарезервированный блок виртуальной памяти не отображается в физическую память. Просто адреса в пределах этого блока будут недоступны до тех пор, пока всему блоку или какой-либо его части не будет передан блок физической памяти. Когда появится необходимость обратиться по виртуальному адресу в пределах этого блока, этому адресу приписывается столько физической памяти, сколько необходимо.
Для обеспечения файлового ввода/вывода данных и применения инструментальных средств алгоритмического языка С, как правило, используют библиотечные функции этого языка везде, где это возможно. Если не пользоваться стандартной библиотекой времени выполнения для осуществления файлового ввода/вывода, то можно использовать функции, поддерживаемые Windows. Например, функцией CreateFile:
hFile = CreateFile (szName, dwAccess,
dwShare, NULL, dwCreate, dwFlags, 0);
53
Эта функция может быть использована для открытия существующего файла, при обмене между процессами, а также коммуникационных средств.
При завершении работы с файлами их необходимо закрывать, используя функцию CloseHandle с описателем файла в качестве параметра. При функционировании 32-разрядных Windows можно читать данные из файла и записывать данные в файл так, как будто это блок внутренней памяти.
Заключение
При создании АСУ ТП большое внимание уделяется: проблемам планирования и руководства реализацией планов, методологии, технологии и организации этих функций управления, использованию комплексов экономико-математических моделей и других научных методов в практике управления; изучению и учету человеческих факторов (социально­психологических и т.п.) в процессах хозяйственного управления, взаимодействию человека и машины в АСУ; проблемам проектирования и внедрения АСУ в целом. Управление как обработка данных основано на комплексном применении экономико-математических методов и моделей, современной информационно-вычислительной техники.
54
Содержание лекций
1. Определение программного продукта. Эффективное программное обеспечение. Методы разработки ППП и СПО. Спецификации программного продукта. Оценки трудоёмкости создания современного программного продукта. Классификация видов ПО.
2. Управление информационными ресурсами. Автоматизированная информационная система, используемая для обработки информации и принятия управленческих решений. Даётся определение и обсуждается системное программное обеспечение, управляющее вычислительным процессом. Определяются управляющие параметры, вводятся оценки качества управления. Файлы и файловые системы. Сетевые операционные системы. Стэк протоколов. Системное программное обеспечение, связанное с трансляцией языков программирования. Определяются трансляторы и интерпретаторы.
3. Электронный документ как структурированная копия первичного документа, отражённая в памяти компьютера и на экране дисплея. Функциональные ППП работы с документами и увязка их с ППП Excel и др. графическими программами. Форматы текстовых документов, шрифты и программное обеспечение для обработки документов - текстовые редакторы и текстовые процессоры. Особое место отводится процессорам электронных таблиц и СУБД. Анализируются различные модели данных - иерархическая, сетевая, реляционная.
4. Проблемы проектирования управляющего программного обеспечения для механических систем, состоящих из существенного числа датчиков и исполнительных механизмов – систем, чьей работой необходимо управлять. Эти системы часто включают компьютерный интерфейс оператора, а также внутренние и внешние соединения. Система прерывания и её функции. Примеры алгоритмов программ реакции на различные внутренние и внешние события, дисциплины обслуживания прерывания. Архитектурные особенности семейства контроллеров на примере семейства Motorolla 68000. Использование и программирование таймеров и драйверов АЦП и ЦАП. Использование кросс-систем для автоматизации программирования приложений контроллеров. Стандарт GKS и его реализация в виде графического пользовательского интерфейса. Управление видеорежимами графической подсистемы. Рассмотрены управляющие параметры, описывается графический интерфейс операционной системы. Описывается комплексная проблема управления памятью. Приводятся методы формального описания управления. Как пример рассматриваются вопросы управления памятью в персональных компьютерах, работающих в режимах мультипрограммирования.
55
Контрольная работа
Контрольная работа предполагает выполнение следующих пунктов.
1. Представление отчёта по изучению архитектуры контроллера СРВ в
части моделей программирования приложений и супервизора (отчёт представляется в виде нескольких страниц и графической иллюстрации).
2. Выбор по усмотрению студента и программирование на алгоритмическом языке небольшого куска системной или прикладной программы. Оформление исходного кода с комментариями. Разработка описания программы в соответствии с ГОСТ ЕСПД или международными стандартами на программный продукт.
3. Решение управленческих задач АСУ ТП с помощью офисных приложений. Задачи следует решать с использованием табличного процессора MS Excel, СУБД Accеss, и они должны быть оформлены с помощью символьного процессора МS Word. Задачи выбираются студентами самостоятельно.
Пример и методические указания по выполнению заданий этого раздела рассматриваются на примере решения конкретной задачи.
Фирма ООО «Инициатива» осуществляет деятельность, связанную со строительными работами и продажей строительных материалов. Цены на товары и услуги представлены на рис. 15, данные о фирмах, заказы которых должны быть выполнены в сентябре 2007 г. – на рис. 16. Построить таблицы по приведенным ниже табличным данным (рис. 15, 16, 17). Организовать межтабличные связи для автоматического заполнения граф: «Наименование фирмы», «Наименование товара» и автоматический подсчет суммы заказов каждой фирмы-заказчика в выходных документах (рис. 17 и 18). Результаты вычислений представить в виде документа, содержащего итоговые суммы за месяц по каждой фирме-заказчику, в целом по фирме ООО "Инициатива" и в графическом виде. Рассчитать и заполнить форму заказа (рис. 18).
\
56
Код товара
Наименование
товара
Характеристика товара
Единица измерения
Цена, руб.
1
Изготовление дверей
Материал фирмы, сосна, влажность 8%
кв. м.
3000,00
2
Изготовление фундамента
Материал фирмы, бетон
куб. м.
1200,00
3
Кровельные работы
Материал фирмы, оцинкованная сталь
кв. м.
300,00
4
Пиломатериалы
Хвойные породы дерева
куб. м.
3000,00
Код фирмы
Наименование
фирмы
Адрес
Телефон
Контактная персона
1
Сервис
Кутузовский пр., 2
222-22-32
Сидоров В.В.
2
Проект-М
ул. Ботаническая, 3
331-09-65
Бородин К.П.
3
Факториал
ул. Тверская, 15
976-43-23
Власова И.А.
4
Приват
ул. Ордынка, 33
123-34-56
Столетова С.М.
5
Медик
ул. Грибоедова, 46
456-34-12
Кравченко А.И.
Рис. 15. Базовый прайс-лист
Рис. 16. Список фирм-заказчиков
57
Дата
Наименова- ние фирмы
Код фирмы
Код заказа
Наименова­ние товара
Код товара
Коли­чество
Сумма, руб.
02.0
9.07
4 19 4
30
02.0
9.07
4 19 1
10
05.0
9.07
5 20 1
34
05.0
9.07
5 20 4
100
08.0
9.07
1 21 2
120
15.0
9.07
2 22 4
56
15.0
9.07
2 22 3
200
17.0
9.07
3 23 2
23
30.0
9.07
4 24 3
200
ООО "Инициатива"
Заказ
№______
Дата
выполнения
______
_____
Наименование
фирмы
Код фирмы
Наименование
товара
Код
товара
Количество
Сумма,
руб.
ИТОГО
Принял
______
______
Дата
______
______
Рис. 18. Форма заказа
Рис. 17. Список заказов за месяц
58
В отчете по практической части алгоритм решения задачи следует представить в соответствии с приведенным примером.
Описание последовательности решения задачи в среде MS Excel
Запустить табличный процессор MS Excel. Создать книгу с именем «Инициатива». Лист 1 переименовать в лист с названием Товары. На рабочем листе Товары MS Excel создать таблицу базового прайс-листа. Заполнить таблицу базового прайс-листа исходными данными (рис. 19).
Рис. 19. Расположение таблицы «Базовый прайс-лист»
на рабочем листе Товары MS Excel
Лист 2 переименовать в лист с названием Заказчики. На рабочем листе Заказчики MS Excel создать таблицу, в которой будет содержаться список фирм-заказчиков. Заполнить таблицу со списком фирм-заказчиков исходными данными (рис. 20).
Рис. 20. Расположение таблицы «Список фирм-заказчиков»
на рабочем листе Заказчики MS Excel
59
1. Разработать структуру шаблона таблицы «Список заказов за месяц»
Колонка
электронной
таблицы
Наименование (реквизит)
Тип
данных
Формат данных
длина
точность
A
Дата
дата 8
B
Наименование фирмы
текстовый
50
C
Код фирмы
числовой
5
D
Код заказа
числовой
5
E
Наименование товара
текстовый
50
F
Код товара
числовой
5
G
Количество
числовой
10
Y
Сумма, руб.
числовой
20
2
(рис. 21).
Рис. 21. Структура шаблона электронной таблицы
«Список заказов за месяц»
Лист 3 переименовать в лист с названием Список заказов. На рабочем листе Список заказов MS Excel создать таблицу, в которой будет содержаться список заказов за месяц (рис. 22).
Рис. 22. Расположение таблицы «Список заказов за месяц»
на рабочем листе Список заказов MS Excel
60
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]