Любой компьютер имеет один или несколько микропроцессоров, память, устройства ввода-вывода или периферийные устройства типа дисплеев, клавиатуры, дисков, принтеров и сетевых устройств. Компьютерное моделирование применяется для оценки производительности компьютерных систем. В большинстве случаев для этого используют имитационное моделирование, но для решения некоторых задач анализа на предыдущем этапе применяют операционный анализ сетей СМО. Память моделируют для оценки операций с общей памятью или ее уровней (кэш-память, оперативная память, память второго или третьего уровней, которая организовывается на диске).
За организацию обработки информации в компьютерной системе отвечает ОС, которая распределяет ресурсы и руководит процессами распределения этих ресурсов между программами, выполняемыми компьютером. К этим программам принадлежат не только программы пользователей, но и системные программы ОС. Ресурсы ОС - это различные устройства (процессор, дисплей, клавиатура, накопители на магнитных дисках, модемы, принтеры и т.д.), а также память, файлы, программные модули. В случае занятости нужного ресурса, который требует программа, к нему создается очередь. Таким образом, если программы пользователей, которые выполняются компьютером, используют одинаковые ресурсы в некоторые промежутки времени, то выполнение таких программ будет существенно задерживаться.
|
|
Типичные функции ОС: выбор программы, которая будет выполняться процессором, управление общей памятью, управление операциями ввода-вывода, обработка прерываний.
Компьютерная система обычно работает в мультипрограммном или в многозадачном режиме. Классическое мультипрограммный режим построен на принципе совместимости операций, которые выполняет процессор, и операций ввода-вывода, которые выполняет программируемый контроллер или процессор ввода-вывода. Например, если компьютер выполняет вывод на печать результатов некоторой программы, то пользователь одновременно может выполнять другую программу.
Многозадачный режим построен на принципе распределения времени работы процессора между несколькими выполняемыми программами. Для каждой программы выделяется свой промежуток времени (квант времени), в течение которого она выполняется процессором. Если за это время программа не закончилась, то она прерывается и процессор начинает выполнять другую программу. Обычно прерванная программа становится в очередь к процессору последней. Таким образом, каждая выполняемая программа, несколько раз получает процессорное время для расчетов, до того как покидает компьютер. Если программа во время выполнения процессором прерывается для операций ввода-вывода (например, для записывания информации на диск), то она выводится из очереди к процессору, пока не закончит операцию записывания. Остаток процессорного времени от кванта не сохраняется, и по окончании операции записывания эта программа, когда ей будет предоставлен процессор, получает новый квант времени.
|
|
При моделировании режима распределения времени процессора возникает задача о назначении промежутков времени для определенных групп программ пользователей. Использование режима распределения времени содействует тому, что более короткие задания пользователей выполняются раньше, поскольку они набирают необходимое количество квантов процессорного времени быстрее, чем длинные задания. Это вынуждает пользователей делать задания для выполнения компьютером более короткими по времени выполнения. Если взять очень маленький квант времени, то программы пользователей будут очень часто прерываться, а каждое прерывание требует определенного времени на его обработку компьютером. Если квант времени будет стремиться к бесконечности, то программы будут обрабатываться процессором по принципу «первая поступила - первая выполняется».
В любом режиме работы (мультипрограммном или многозадачном) компьютер с одним процессором в каждый момент времени выполняет только одну программу (одну команду). Если используется мультипроцессорная система с несколькими одинаковыми процессорами, то становится возможным выполнения нескольких программ на разных процессорах. Большей частью такая система моделируется как многоканальная СМО в отличие от СМО с одним устройством обслуживания, которая моделирует работу однопроцессорной системы.
Современные ОС (Unix, Windows и др.) используют виртуальную организацию памяти для сохранности выполняемых программ. Принцип виртуальной памяти основан на том, что только некоторые части программ находятся в оперативной памяти, другие - на диске. Во время работы компьютера, если запрашивается область памяти, которая находится на диске, то эта часть программы загружается с диска в оперативную память. Если оперативной памяти недостаточно, из нее вытесняется некоторая часть другой программы, преимущественно той, к которой дольше всего не было обращений. Эти операции перемещения частей программ требуют некоторого времени, связанного с поиском нужной части программы на диске и ее считывания в память. Для ускорения операций поиска некоторые части программ могут находиться в кэш-памяти, которая обычно ускоряет операции поиска. Управление памятью требует разработки некоторой стратегии вытеснения и замещения частей программ, которая закладывается в ОС в виде алгоритма.
При выполнении операций ввода-вывода для записи или считывания данных с магнитных носителей информации, эти операции большей частью осуществляются через буфер ввода-вывода, где предварительно размещаются данные, что позволяет существенно ускорить эти операции. Выбор емкости буфера влияет на скорость выполнения операций ввода-вывода.
Обмен данными между памятью и внешними устройствами осуществляется через контроллеры ввода-вывода, но скорость их работы на порядок больше скорости электромеханических устройств. При моделировании можно считать, что эти операции выполняют сами устройства. Поиск информации на магнитных дисках (гибких или жестких) связан с перемещением головок на нужный сектор и с непосредственным выполнением операций записи или считывания данных, которые зависят от скорости вращения диска. Поэтому для моделирования времени поиска информации (перемещения головок) используют равномерное распределение, для которого минимальное и максимальное времена берут из технических характеристик устройств.
|
|
Таким образом, работу компьютерной системы, управляемой ОС, можно представить в упрощенном виде как работу сети СМО.
При моделировании обычно интересуются временем пребывания программы пользователя в компьютерной системе (от ввода программы или запроса на ее выполнение до получения результатов ее работы или ответа) или числом программ, выполненных системой за единицу времени. Типичная программа или запрос пользователя может описываться: идентификатором программы, временем поступления в систему, емкостью нужной памяти, количеством запросов к устройствам ввода-вывода и распределением их по времени, количеству данных, которые вводятся и выводятся на тех или иных устройствах, а также более детальной информацией в зависимости от цели моделирования.