Вопрос №3 Принципы проектирования информационного обеспечения программного комплекса
Вид материала | Документы |
СодержаниеВопрос №6 Ассемблеры. Определение. Области применения. Языки ассемблера А. 143 assembler Вопрос №7 Управление ресурсами вычислительных систем |
- Е. В. Чепин московский инженерно-физический институт (государственный университет), 30.11kb.
- Рабочая программа учебной дисциплины (модуля) case-средства проектирования программного, 143.56kb.
- Технология программирования, 643.21kb.
- Базы данных, 3110.93kb.
- А. А. Дюмин московский инженерно-физический институт (государственный университет), 30.84kb.
- Учебно-методический комплекс дисциплины разработка и стандартизация программных средств, 362.73kb.
- Методика выбора программного обеспечения турфирмой Антон Россихин (само-софт), 34.31kb.
- С. Д. Романин московский инженерно-физический институт (государственный университет), 24.74kb.
- Примерная программа наименование дисциплины Проектирование и архитектура программных, 182.2kb.
- Рабочая программа учебной дисциплины "системы автоматизированного проектирования электроустановок, 119.83kb.
Вопрос №6 Ассемблеры. Определение. Области применения.
Языки программирования для микро-ЭВМ можно разделить на три основных уровня: машинные, алгоритмические высокого уровня и ассемблера.
Программирование на машинном языке требует очень много времени и чревато ошибками. Поэтому были разработаны языки ассемблерного типа, позволяющие повысить скорость процесса программирования и уменьшить количество ошибок кодирования. Вместо чисел, используемых при написании программ на машинных языках, в языках ассемблерного типа применяются содержательные мнемонические сокращения и слова естественного языка. Однако компьютеры не могут непосредственно воспринять программу на языке ассемблера, поэтому ее необходимо вначале перевести из машинный язык. Такой перевод осуществляется при помощи программы-транслятора, называемой ассемблером.
Языки ассемблера, занимая промежуточное положение между машинными языками и языками высокого уровня (будучи при этом гораздо ближе к машинным языкам), объединяют в себе некоторые достоинства самого нижнего и самого верхнего уровней языков программирования.
Свое название языки ассемблера получили от имени программы, преобразующей программу, написанную на таком языке, в машинные коды.
Язык ассемблера, обеспечивая возможность символических имен в программе и избавляя программиста от утомительной работы по распределению памяти ЭВМ для переменных и констант, существенно облегчает труд программиста и повышает его производительность по сравнению с программированием на машинном языке. Язык ассемблера позволяет также гибко и полно реализовать технические возможности ЭВМ, как и машинный язык. Транслятор программ с этого языка, т. е. ассемблер, гораздо проще и компактней транслятора программ, требующегося для алгоритмического языка высокого уровня, а результирующая машинная программа на выходе ассемблера может быть столь же эффективной, как и программа, которую сразу написали на машинном языке. Поэтому неудивительно, что первым транслятором, который создается для новой ЭВМ, является обычно ассемблер. Это особенно справедливо для микро-ЭВМ, в которых ограниченный объем основной памяти может значительно усложнить задачу создания транслятора с языка высокого уровня и заставить разработчиков программного обеспечения в течение долгого времени довольствоваться языком ассемблера.
На языке ассемблера, как правило, программируется операционная система микро-ЭВМ или по крайней мере наиболее ответственные и «узкие» места в такой системе, а также в ряде других сложных систем обработки данных.
Таким образом, язык ассемблера и сам ассемблер обычно составляют основу для создания программного обеспечения микро-ЭВМ и, в частности, операционных систем и систем реального времени, к которым предъявляются высокие требования с точек зрения объема занимаемой машинной памяти и скорости выполнения программ.
Каждый язык ассемблера является машинно-зависимым языком и отражает аппаратурные особенности (в частности, состав программно-доступных регистров) той микро-ЭВМ, для которой он создан. Их команды прямо и однозначно соответствуют командам программы на машинном языке. Чтобы ускорить процесс кодирования программы на языке ассемблера, были разработаны и включены в ассемблеры так называемые макропроцессоры. Программист пишет макрокоманду как указание необходимости выполнить действие, описываемое несколькими командами на языке ассемблера. Когда макропроцессор во время трансляции программы читает макрокоманду, он производит макрорасширение — т. е. генерирует ряд команд языка ассемблера, соответствующих данной макрокоманде. Таким образом, процесс программирования значительно ускоряется, поскольку программисту приходится писать меньшее число команд для определения того же самого алгоритма.
Программа, написанная на языке ассемблера, состоит из последовательности предложений, или операторов, и называется исходной программой или исходным модулем.
Обратимся к толковому словарю
А. 143 assembler
ассемблер
1. Программа, используемая для преобразования исходной программы на языке ассемблера в машинный код или перемещаемую программу.
assembly language
язык ассемблера
Система обозначений, используемая для представления в удобочитаемой форме программ, записанных в машинном коде. Язык ассемблера позволяет программисту пользоваться алфавитными мнемоническими кодами операций, по своему усмотрению присваивать символические имена регистрам ЭВМ и памяти, а также задавать удобные для себя схемы адресации (А.055 addressing schemes) (например, индексную или косвенную адресацию). Кроме того, он позволяет использовать различные системы счисления (например, десятичную или шестнадцатеричную) для представления числовых констант и дает возможность пользователю помечать специальными метками (L.001 label) строки программы с тем, чтобы к ним могли обращаться (по символическим именам) другие части программы, например в случае передачи управления или при переходах.
Вопрос №7 Управление ресурсами вычислительных систем
При рассмотрении операционной системы, как совокупности программ, управляющих ресурсами, то каждый компонент управления конкретным устройством должен выполнять следующие функции:
- Отслеживать состояние ресурса
- Определять, кто получает, что и в каком количестве.
- Выделять ресурс.
- Освобождать ресурс.
На практике используют централизованную или децентрализованную схему управления ресурсами. Известны системы, в которых используется обе эти схемы. Для централизованной схемы характерно построение для каждого отдельного ресурса или определенной их совокупности отдельного распределителя, который чаще называют монитором.
Мониторы реализуются в форме некоторого объединения процедур доступа к ресурсам, которые он распределяет процессам-потребителям по формализованным запросам. В составе монитора находится локализованная в них управляющая информация, необходимая для организации такого доступа. Помимо этого монитор содержит механизмы и средства, которые используются при распределении ресурсов с учетом их характерных свойств. Такие механизмы строятся на основе классификационной схемы ресурсов. В состав системы распределения ресурсов входят следующие механизмы распределителя активных ресурсов; распределения пассивных ресурсов; виртуализации ресурсов создания и уничтожения ресурсов; ранжирования ресурсов, управления тупиковыми ситуациями; функциональной избыточности; учета ресурсов; контроля работоспособности твердых ресурсов, а также средства реконфигурации системы ресурсов; человеко-машинные средства общения.
Основное назначение монитора— реализовать определенную дисциплину распределения ресурса. При этом одновременно реализуются функции по синхронизации процессов, конкурирующих между собой за право захвата ресурсов. Кроме того, осуществляются проверки на допустимость обращений, ведется учет использования ресурса.
При децентрализованной схеме распределения процессы захватывают, используют и освобождают ресурсы без услуг специальных распределителей. Распределение осуществляется на оснований некоторых соглашений, устанавливаемых между процессами. Как правило, при таком виде доступа процессы могут использовать некоторый набор механизмов и средств, реализованных в системе, для обеспечения корректности и облегчения действий по захвачу, использованию и освобождению ресурсов. При этом для проведения операций копирования и восстановления можно использовать системные макрокоманды, предназначенные для этих целей.
При построении системы управления ресурсами независимо от выбранной схемы распределения приходится решать ряд общих задач, которые в совокупности составляют стратегию распределения ресурсов в машине. Среди первоочередных следует назвать следующие:
- выбрать приемлемое правило удовлетворения запросов на каждый из распределяемых ресурсов в системе с целью достижения необходимого эффекта;
- обосновать и обеспечить необходимую степень динамизма в выделении и освобождении ресурсов;
- определить степень автоматизации процесса распределения ресурсов.
В ОС ресурсы распределяются как на статической основе (до момента порождения процесса и являются далее для него постоянными), так и на динамической основе (по мере развития процесса-потребителя). Наиболее распространенной является ситуация, когда в момент порождения процесса известна и выделяется лишь часть ресурсов. Другая часть выделяется динамически, по мере развития процесса и является поэтому временной по отношению к процессу-потребителю. Динамическое распределение и освобождение ресурсов может происходить как по явным запросам от процессов, так и без явного на то указания, средствами ОС. Первую схему поэтому часто называют динамической по требованию, а вторую — динамической эвристической.
Распределение на статической основе способствует наиболее быстрому развитию процессов в системе с момента их порождения. Распределение же ресурсов на динамической основе позволяет обеспечить эффективное использование ресурсов с точки зрения минимизации их простоев.
Схема статического распределения используется в том случае, когда необходимо гарантировать выполнение процесса с момента его порождения. В качестве недостатка следует отметить возможность длительных задержек заявок на порождение процесса с момента поступления таких заявок в систему.
Различные схемы динамического распределения ресурсов отличаются средствами и способами приближения фактического интервала к номинальному интервалу использования ресурсов как в отношении каждого процесса-пользователя, так и по совокупности процессов. Длительность фактического интервала — протяженность исполнения действия ИСПОЛЬЗОВАНИЕ, а длительность номинального — время между моментом исполнения действия ЗАПРОС и моментом исполнения действия ОСВОБОЖДЕНИЕ. Стремление уменьшить простои ресурсов приводит к увеличению сложности системы распределения ресурсов и, как следствие, к увеличению системных затрат на управление ресурсами.
Одним из основополагающих факторов в стратегии управления ресурсами является выбранная степень автоматизации в распределении ресурсов.
Вопрос эффективного использования ресурсов остается центральным для машин, предполагающих какой-либо вид коллективного использования. Для разработчиков персональных машин этот вопрос остается первостепенным, но решается в других условиях. Изменилась как цель использования машины, так и соотношение затрат на ресурсы. Здесь требуется увеличить комфортность работы пользователя даже в ущерб рациональному использованию ресурсов. При этом действительно изменилась (и существенно, в сторону уменьшения) стоимость твердых машинных ресурсов, но не мягких. Сделать же все ресурсы твердыми не представляется возможным, по крайней мере в ближайшем будущем.