Моделирование структуры данных "очередь FIFO"
Машинное представление очереди и реализация операций. Исходный код программы, демонстрирующей процесс функционирования очереди FIFO. Работа данной очереди на примере последовательности натуральных чисел, которые сначала добавлялись, а затем удалялись.
Рубрика | Экономико-математическое моделирование |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 19.01.2015 |
Размер файла | 382,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Лабораторная работа № 1
Название работы: Моделирование структуры данных «очередь FIFO»
Цель работы: Подробное изучение моделирования и способа организации данных в очереди FIFO
Теоретическая часть
Понятие очереди
Очередью FIFO («First in - First out» - «первым вошёл - первым вышел») называется такой последовательный список с переменной длиной, в котором включение элементов выполняется только с одной стороны списка (эту сторону часто называют концом или хвостом очереди), а исключение - с другой стороны (называемой началом или головой очереди).
Основные операции над очередью.
При работе с очередью применяют следующие основные операции:
Push - включение в очередь нового элемента. Если в позиции уже есть элемент, то он смещается, чтобы освободить место для нового элемента. Все последующие элементы перестраиваются с учётом нового.
Pop - удаление элемента из очереди.
Clear - очистка очереди. Обнуление всех элементов очереди.
Print - вывод на экран содержимого очереди.
Структурный вид очереди приведён на рис. 1.
Рис. 1. Структурный вид очереди.
Машинное представление очереди и реализация операций
При включении элемента в очередь последний записывается по адресу, определяемому указателем на конец, после чего этот указатель увеличивается на единицу. При исключении элемента из очереди выбирается элемент, адресуемый указателем на начало, после чего этот указатель уменьшается на единицу. Очевидно, что со временем указатель на конец очереди при очередном включении элемента достигнет верхней границы той области памяти, которая выделена для очереди. Однако, если операции включения чередовались с операциями исключения элементов, то в начальной части, отведенной под очередь памяти, имеется свободное место. Для того, чтобы места, занимаемые исключенными элементами, могли быть повторно использованы, очередь замыкается в кольцо: указатели (на начало и на конец), достигнув конца выделенной области памяти, переключаются на ее начало. Такая организация очереди в памяти называется кольцевой очередью. Если в процессе работы с кольцевой очередью число операций включения превышает число операций исключения, то может возникнуть ситуация, в которой указатель конца «догонит» указатель начала. Это ситуация заполненной очереди и попытки записи в нее блокируются.
Использования типа данных «очередь».
Очередь в программировании используется, как и в реальной жизни, когда нужно совершить какие-то действия в порядке их поступления, выполнив их последовательно. Примером может служить организация событий в Windows. Когда пользователь оказывает какое-то действие на приложение, то в приложении не вызывается соответствующая процедура (ведь в этот момент приложение может совершать другие действия), а ему присылается сообщение, содержащее информацию о совершенном действии, это сообщение ставится в очередь, и только когда будут обработаны сообщения, пришедшие ранее, приложение выполнит необходимое действие. Клавиатурный буфер BIOS организован в виде кольцевого массива, обычно длиной в 16 машинных слов, и двух указателей: на следующий элемент в нём и на первый незанятый элемент.
Практическая часть
На рис. 2 представлен исходный код программы, демонстрирующей процесс функционирования очереди.
Рис. 2 (начало). Исходный код программы, моделирующей очередь FIFO.
Рис. 2 (продолжение). Исходный код программы, моделирующей очередь FIFO.
На рис. 3 представлено консольное окно программы, отображающее результаты функционирования очереди при добавлении элементов.
Рис. 3. Окно программы при добавлении элементов в очередь FIFO.
На рис. 4 представлено окно программы, отображающее результаты функционирования очереди при удалении всех элементов, кроме одного.
Рис. 4. Окно программы при удалении элементов из очереди.
На рис. 5 представлена гистограмма изменения совокупности значений элементов, входящих в очередь, в зависимости от последовательно проводимых операций добавления и удаления элементов.
Рис. 5. Гистограмма изменения совокупности элементов.
Вывод
машинное очередь операция
В данной лабораторной работе мы подробно изучили моделирование очереди FIFO и способ организации данных в ней. В ходе работы на вычислительной машине была смоделирована очередь FIFO. Кроме того была показана работа данной очереди на примере последовательности натуральных чисел, которые сначала добавлялись, а затем удалялись.
Размещено на Allbest.ru
Подобные документы
Модель работы отдела обслуживания клиентов в банке. Статистика очереди и загруженности операторов в течение одного рабочего дня. Определение процента необслуженных клиентов. Определение необходимости подключения к работе отдела третьего оператора.
лабораторная работа [1,4 M], добавлен 09.01.2012Расчет экономического эффекта работы банка. Алгоритм имитационного моделирования работы кассового зала. Функция распределения экспоненциального закона. Корректировка времени обслуживания клиентов у касс и продвижения очереди. Листинг программы.
контрольная работа [57,5 K], добавлен 03.10.2008Задача оптимального планирования производства. Составление двойственной задачи, её решение по теоремам двойственности. Предельные вероятности состояний. Среднее время ожидания заявки в очереди. Принятие управленческих решений на основе теории игр.
контрольная работа [218,5 K], добавлен 15.05.2015Расчет экономического эффекта работы банка. Имитационное моделирование на основании предварительно установленных зависимостей. Функция распределения экспоненциального закона. Корректировка времени обслуживания клиентов у касс и продвижения очереди.
контрольная работа [68,2 K], добавлен 03.10.2008Обзор методов решения задачи. Расчет количества клиентов, выручки, средний размер очереди и количество отказов за период моделирования. Алгоритм моделирования процесса, разработка его программной реализации. Машинный эксперимент с разработанной моделью.
курсовая работа [932,5 K], добавлен 15.01.2011Построение сетевого графика согласно данным структурно-временной таблицы. Определение вероятности отказа и средней длины очереди для систем массового обслуживания. Решение игры в чистых стратегиях, по принципу доминирования и графическим методом.
контрольная работа [455,9 K], добавлен 13.11.2010Система массового обслуживания типа M/M/1, ее компоненты. Коэффициент использования обслуживающего устройства. Обозначение M/D/1 для системы массового обслуживания. Параметры и результаты моделирования систем. Среднее время ожидания заявки в очереди.
лабораторная работа [984,8 K], добавлен 19.05.2013На основе экстраполяции значений прогнозирующей функции осуществить прогноз выпуска продукции на квартал следующего года . Коэффициент простоя системы, среднее число клиентов в системе, среднюю длину очереди, среднее время пребывания клиента в системе.
контрольная работа [93,3 K], добавлен 11.04.2007Структура и параметры эффективности функционирования систем массового обслуживания. Процесс имитационного моделирования. Распределения и генераторы псевдослучайных чисел. Описание метода решения задачи вручную. Перевод модели на язык программирования.
курсовая работа [440,4 K], добавлен 30.10.2010Моделирование работы регулировочного участка цеха. Выбор методов решения задачи. Критерий оценки эффективности процесса функционирования системы - вероятность отказа агрегату в первичной обработке. Алгоритмизация модели системы и ее машинная реализация.
курсовая работа [36,3 K], добавлен 27.01.2011