Вопрос №3 Принципы проектирования информационного обеспечения программного комплекса

Вид материалаДокументы

Содержание


Вопрос №6 Ассемблеры. Определение. Области применения.
Языки ассемблера
А. 143 assembler
Вопрос №7 Управление ресурсами вычислительных систем
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   28

Вопрос №6 Ассемблеры. Определение. Области применения.


Языки программирования для микро-ЭВМ можно разде­лить на три основных уровня: машинные, алгоритмические высокого уровня и ассемблера.

Программирование на машинном языке требует очень много времени и чревато ошибками. Поэтому были разработаны языки ассемблерного типа, позволяющие повысить скорость процесса про­граммирования и уменьшить количество ошибок кодирования. Вместо чисел, используемых при написании программ на машинных языках, в языках ассемблерного типа применяются содержатель­ные мнемонические сокращения и слова естественного языка. Од­нако компьютеры не могут непосредственно воспринять программу на языке ассемблера, поэтому ее необходимо вначале перевести из машинный язык. Такой перевод осуществляется при помощи про­граммы-транслятора, называемой ассемблером.

Языки ассемблера, занимая промежуточное положение между машинными языками и языками высокого уровня (будучи при этом гораздо ближе к машинным языкам), объединяют в себе некоторые достоинства самого нижнего и самого верхнего уровней языков программирования.

Свое название языки ассемблера получили от имени про­граммы, преобразующей программу, написанную на таком языке, в машинные коды.

Язык ассемблера, обеспечивая возможность символи­ческих имен в программе и избавляя программиста от уто­мительной работы по распределению памяти ЭВМ для переменных и констант, существенно облегчает труд про­граммиста и повышает его производительность по сравне­нию с программированием на машинном языке. Язык ас­семблера позволяет также гибко и полно реализовать тех­нические возможности ЭВМ, как и машинный язык. Транс­лятор программ с этого языка, т. е. ассемблер, гораздо проще и компактней транслятора программ, требующегося для алгоритмического языка высокого уровня, а результи­рующая машинная программа на выходе ассемблера мо­жет быть столь же эффективной, как и программа, которую сразу написали на машинном языке. Поэтому неудиви­тельно, что первым транслятором, который создается для новой ЭВМ, является обычно ассемблер. Это особенно справедливо для микро-ЭВМ, в которых ограниченный объем основной памяти может значительно усложнить за­дачу создания транслятора с языка высокого уровня и заставить разработчиков программного обеспечения в течение долгого времени довольствоваться языком ассемблера.

На языке ассемблера, как правило, программируется операционная система микро-ЭВМ или по крайней мере наиболее ответственные и «узкие» места в такой системе, а также в ряде других сложных систем обработки данных.

Таким образом, язык ассемблера и сам ассемблер обычно составляют основу для создания программного обеспечения микро-ЭВМ и, в частности, операционных систем и систем реального времени, к которым предъявля­ются высокие требования с точек зрения объема занимае­мой машинной памяти и скорости выполнения программ.

Каждый язык ассемблера является машинно-зависи­мым языком и отражает аппаратурные особенности (в ча­стности, состав программно-доступных регистров) той микро-ЭВМ, для которой он создан. Их команды прямо и однозначно соответствуют командам программы на машинном языке. Чтобы ускорить процесс коди­рования программы на языке ассемблера, были разработаны и включены в ассемблеры так называемые макропроцессоры. Програм­мист пишет макрокоманду как указание необходимости выполнить действие, описываемое несколькими командами на языке ассемб­лера. Когда макропроцессор во время трансляции программы чи­тает макрокоманду, он производит макрорасширение — т. е. гене­рирует ряд команд языка ассемблера, соответствующих данной макрокоманде. Таким образом, процесс программирования значи­тельно ускоряется, поскольку программисту приходится писать меньшее число команд для определения того же самого алгоритма.

Программа, написанная на языке ассемблера, состоит из последовательности предложений, или операторов, и называется исходной программой или исходным мо­дулем.

Обратимся к толковому словарю

А. 143 assembler

ассемблер

1. Программа, используемая для пре­образования исходной программы на языке ассемблера в машинный код или перемещаемую программу.

assembly language

язык ассемблера

Система обозначений, используемая для представления в удобочитаемой форме программ, записанных в машинном коде. Язык ассемблера позволяет про­граммисту пользоваться алфавитными мнемоническими кодами операций, по своему усмотрению присваивать сим­волические имена регистрам ЭВМ и памяти, а также задавать удобные для себя схемы адресации (А.055 addres­sing schemes) (например, индексную или косвенную адресацию). Кроме того, он позволяет использовать раз­личные системы счисления (например, десятичную или шестнадцатеричную) для представления числовых кон­стант и дает возможность пользова­телю помечать специальными метками (L.001 label) строки программы с тем, чтобы к ним могли обращаться (по символическим именам) другие части программы, например в случае пере­дачи управления или при переходах.

Вопрос №7 Управление ресурсами вычислительных систем


При рассмотрении операционной системы, как совокупности программ, управляющих ресурсами, то каждый компонент управления конкретным устройством должен выполнять следующие функции:
  1. Отслеживать состояние ресурса
  2. Определять, кто получает, что и в каком количестве.
  3. Выделять ресурс.
  4. Освобождать ресурс.

На практике используют централизованную или децентрализованную схему управления ресурсами. Известны системы, в которых используется обе эти схемы. Для централизо­ванной схемы характерно построение для каждого отдельного ре­сурса или определенной их совокупности отдельного распределителя, который чаще называют монитором.

Мониторы реализуются в форме некоторого объединения проце­дур доступа к ресурсам, которые он распределяет процессам-по­требителям по формализованным запросам. В составе монитора находится локализованная в них управляющая информация, необ­ходимая для организации такого доступа. Помимо этого монитор содержит механизмы и средства, которые используются при распределении ресурсов с учетом их характерных свойств. Такие ме­ханизмы строятся на основе классификационной схемы ресурсов. В состав системы распределения ресурсов входят следующие механизмы распределителя активных ресурсов; распределения пассив­ных ресурсов; виртуализации ресурсов создания и уничтожения ресурсов; ранжирования ресурсов, управления тупиковыми ситуациями; функциональной избыточности; учета ресурсов; контроля работоспособности твердых ресурсов, а также средства реконфигурации системы ресурсов; человеко-машинные средства общения.

Основное назначение монитора— реализовать определенную дисциплину распределения ресурса. При этом одновременно реа­лизуются функции по синхронизации процессов, конкурирующих между собой за право захвата ресурсов. Кроме того, осуществля­ются проверки на допустимость обращений, ведется учет использо­вания ресурса.

При децентрализованной схеме распределения процессы захва­тывают, используют и освобождают ресурсы без услуг специальных распределителей. Распределение осуществляется на оснований некоторых соглашений, устанавливаемых между процессами. Как правило, при таком виде доступа процессы могут использовать не­который набор механизмов и средств, реализованных в системе, для обеспечения корректности и облегчения действий по захвачу, использованию и освобождению ресурсов. При этом для проведения операций копирования и вос­становления можно использовать системные макрокоманды, пред­назначенные для этих целей.

При построении системы управления ресурсами независимо от выбранной схемы распределения приходится решать ряд общих задач, которые в совокупности составляют стратегию распределе­ния ресурсов в машине. Среди первоочередных следует назвать следующие:
  • выбрать приемлемое правило удовлетворения запросов на каж­дый из распределяемых ресурсов в системе с целью достижения не­обходимого эффекта;
  • обосновать и обеспечить необходимую степень динамизма в выделении и освобождении ресурсов;
  • определить степень автоматизации процесса распределения ресурсов.

В ОС ресурсы распределяются как на статической основе (до момента порождения процесса и являются далее для него постоян­ными), так и на динамической основе (по мере развития процесса-потребителя). Наиболее распространенной является ситуация, ког­да в момент порождения процесса известна и выделяется лишь часть ресурсов. Другая часть выделяется динамически, по мере развития процесса и является поэтому временной по отношению к процессу-потребителю. Динамическое распределение и освобож­дение ресурсов может происходить как по явным запросам от про­цессов, так и без явного на то указания, средствами ОС. Первую схему поэтому часто называют динамической по требованию, а вторую — динамической эвристической.

Распределение на статической основе способствует наиболее быстрому развитию процессов в системе с момента их порождения. Распределение же ресурсов на динамической основе позволяет обеспечить эффективное использование ресурсов с точки зрения минимизации их простоев.

Схема статического распределения используется в том случае, когда необходимо гарантировать выполнение процесса с момента его порождения. В качестве недостатка следует отметить возмож­ность длительных задержек заявок на порождение процесса с мо­мента поступления таких заявок в систему.

Различные схемы динамического распределения ресурсов отли­чаются средствами и способами приближения фактического интер­вала к номинальному интервалу использования ресурсов как в от­ношении каждого процесса-пользователя, так и по совокупности процессов. Длительность фактического интервала — протяжен­ность исполнения действия ИСПОЛЬЗОВАНИЕ, а длительность номинального — время между моментом исполнения действия ЗАПРОС и моментом исполнения действия ОСВОБОЖДЕНИЕ. Стремление уменьшить простои ресурсов приводит к увеличению сложности системы распределения ресурсов и, как следствие, к увеличению системных затрат на управление ресурсами.

Одним из основополагающих факторов в стратегии управления ресурсами является выбранная степень автоматизации в распределении ресурсов.

Вопрос эффективного использования ресурсов остается центральным для машин, предполагающих какой-либо вид коллективного использования. Для разработчиков персональных машин этот вопрос остается первостепенным, но решается в других условиях. Изменилась как цель использования машины, так и соотношение затрат на ресурсы. Здесь требуется увеличить комфортность ра­боты пользователя даже в ущерб рациональному использованию ресурсов. При этом действительно изменилась (и существенно, в сторону уменьшения) стои­мость твердых машинных ресурсов, но не мягких. Сделать же все ресурсы твердыми не представляется возможным, по крайней мере в ближайшем бу­дущем.