Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_po_lektsiam.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
339.73 Кб
Скачать

Независимый от устройств слой операционной системы

Большая часть программного обеспечения ввода-вывода является независимой от устройств. Точная граница между драйверами и независимыми от устройств программами определяется системой, так как некоторые функции, которые могли бы быть реализованы независимым способом, в действительности выполнены в виде драйверов для повышения эффективности или по другим причинам.

Типичными функциями для независимого от устройств слоя являются:

  • обеспечение общего интерфейса к драйверам устройств,

  • именование устройств,

  • защита устройств,

  • обеспечение независимого размера блока,

  • буферизация,

  • распределение памяти на блок-ориентированных устройствах,

  • распределение и освобождение выделенных устройств,

  • уведомление об ошибках.

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

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

36)Операционная система ЭВМ. Управление системой.

Управление системами — это администрирование распределённых компьютерных систем масштаба предприятия. На развитие управления системами большое влияние оказали инициативы по управлению сетями связи в телекоммуникационной отрасли.

37)Системы программирования. Классификация по назначению. Составляющие программного обеспечения.

Существует множество алгоритмических языков программирования. Это определяется множеством сфер применения компьютеров и, как следствие, множеством классов решаемых на компьютере задач. Среди этого множества можно отметить такие языки, как: Fortran (Formula translator), ориентированный на написание программ, решающих научные или вычислительные задачи; COBOL, предназначенный для разработки бизнес-приложений; Pascal, язык общего назначения; С, являющийся стандартным процедурным языком программирования.

Набор программ, записанных на компьютере, составляет программное обеспечение данного компьютера. Все программы при этом можно разделить на: системное программное обеспечение и прикладные программы. К системному программному обеспечению относятся: операционная система, программы тестирования компьютера и периферийных устройств, программы обслуживания вычислительной системы (системы резервного копирования информации, программы дефрагментации дискового пространства и т.п.). Прикладные программы предназначены для решения конкретных задач и представляет собой довольно обширную группу. В зависимости от назначения компьютера в эту группу могут входить, например, программы автоматизации управления предприятием или системы бухгалтерского учета, программы для проектирования и дизайна изделий и конструкций или программы обработки текстов и верстки полиграфической продукции, программы, моделирующие различные физические процессы, или программы, имитирующие реакцию на управление транспортными средствами. Отдельную группу составляет программное обеспечение, предназначенное для разработки программ – инструментальные средства. К ним относятся все программы, предназначенные для поддержки и автоматизации разработки программного обеспечения: компиляторы, трансляторы, средства тестирования и отладки, средства разработки и анализа алгоритмов, системы поддержки версий, библиотеки стандартных программ и т.п.

Система программирования — это система для разработки новых программ на конкретном языке программирования. 

Turbo Basic, Quick Basic, Turbo Pascal, Turbo C, системы программирования, ориентированные на создание Windows-приложений:

    

пакет Borland Delphi (Дельфи) — предоставляющий качественные и очень удобные средства визуальной разработки.

пакет Microsoft Visual Basic — удобный и популярный инструмент для создания Windows-программ с использованием визуальных средств. Содержит инструментарий для создания диаграмм и презентаций.

пакет Borland C++ — одно из самых распространённых средств для разработки DOS и Windows приложений.

Язык Си разработан Деннисом Ритчи в 1972 г. как язык, пригодный для программирования новой операционной системы UNIX. Операционные системы ради повышения скорости работы традиционно писались на языке низкого уровня — ассемблере, но язык Си настолько хорошо зарекомендовал себя, что на нем было написано более 90% всего кода ОС UNIX. Язык СИ обрел популярность как так называемый язык среднего уровня, в котором удобство, краткость и мобильность языков высокого уровня сочетаются с возможностью непосредственного доступа к аппаратуре компьютера, что обычно достигаются только при программировании на языке Ассемблера. Си не очень прост в изучении и требует тщательности в программировании, но позволяет создавать сложные и весьма эффективные программы. Язык Паскаль был разработан в 1970 г. Николасом Виртом как язык обучения студентов программированию. Паскаль вырабатывает навыки соблюдения хорошего строгого стиля программирования, упрощающего разработку сложных программ.      Основные привлекательные черты Паскаля — логичность, поддержка концепций структурного и процедурного программирования, работа с динамической памятью, возможность создания своих типов данных. В Паскале программист должен всегда явно указывать, с какими конкретными переменными он желает работать и каковы типы этих переменных. Строгая типизация данных позволяет резко снизить количество ошибок, появляющихся в программе вследствие невнимательности или опечаток. В своем первоначальном виде Паскаль имел довольно ограниченные возможности, но расширенный вариант этого языка — Turbo Pascal,является очень мощным языком программирования. Интегрированная оболочка Turbo Pascal, разработанная фирмой Borland (ныне Inprise), включающая в себя редактор, компилятор, компоновщик и отладчик, вместе с интерактивной справочной системой сделали разработку программ на Паскале делом простым и приятным.

38)Транслятор. Сравнение видов трансляторов. Компоновщик. Этапы подготовки исполняемых программ.

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

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

Компоновщик — программа, которая производит компоновку: принимает на вход один или несколько объектных модулей и собирает по ним исполнимый модуль. Компоновщик отвечает за то, чтобы конкретному операнду выражения соответствовала определённая область памяти

Для связывания модулей компоновщик использует таблицы имён, созданные компилятором в каждом из объектных модулей. Такие имена могут быть двух типов:

  • Определённые или экспортируемые имена — функции и переменные, определённые в данном модуле и предоставляемые для использования другим модулям;

  • Неопределённые или импортируемые имена — функции и переменные, на которые ссылается модуль, но не определяет их внутри себя.

Работа компоновщика заключается в том, чтобы в каждом модуле определить и связать ссылки на неопределённые имена. Для каждого импортируемого имени находится его определение в других модулях, упоминание имени заменяется на его адрес.Компоновщик обычно не выполняет проверку типов и количества параметров процедур и функций. Если надо объединить объектные модули программ, написанные на языках со строгой типизацией, то необходимые проверки должны быть выполнены дополнительной утилитой перед запуском редактора связей.

Этапы подготовки исполняемой программы.

1. Трансляция (компиляция) – это преобразование (перевод) исходного текста программы в объектный модуль, представляющий из себя набор машинных инструкций (команд) без стандартных программ функций (программ вычисления синуса, логарифма и.д.), модулей ввода исходных данных и вывода результатов или активных элементов управления, представляющих элементы современных операционных систем. При этом выполняется проверка правильности синтаксиса исходной программы. Если в программе будут обнаружены ошибки, то обработка программы прекращается. Если ошибок нет, то программа передается на следующий этап. Трансляция выполняется специальной программой (Транслятор, Компилятор), которая может входить в среду программирования.

2. Компоновка (или редактирование связей) – это сборка объектного модуля программы, модулей ввода-вывода и компонентов стандартной библиотеки объектных модулей в один модуль, который называется выполняемым файлом или загрузочным модулем.

3. Выполнение файла загрузочного или исполняемого модуля. На этом этапе получаем решение поставленной задачи. При этом возможно прерывание решения (аварийный останов, например, деление на ноль), зацикливание или неправильные результаты. Это возможно по следующим причинам.

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

• Ошибки в алгоритме – в этом случае необходимо вернутся к начальным этапам разработки алгоритма. Для выявления этих ошибок рекомендуется выполнить тестирование алгоритма.

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

  1. Отладка программ. Методы и средства систем программирования, облегчающие поиск синтаксических и смысловых ошибок.

Отла́дка программы — этап разработки компьютерной программы, на котором обнаруживают, локализуют и устраняют ошибки.

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

В любой разрабатываемой программе могут присутствовать различные ошибки. Однако, несмотря на их многообразие, наиболее характерные ошибки принято условно подразделять на три типа: ошибки компиляцииошибки выполнения и логические ошибки.

Ошибки при компиляции возникают в неправильно составленных программных конструкциях. К ним могут относиться нарушения правил языка VBA (ошибочно записанные ключевые слова, пропущенные разделители, неверные типы данных, нарушения правил грамматики или пунктуации и другие).

Ошибки при выполнении проявляются на стадии выполнения программы после успешной компиляции. К таким ошибкам, как правило, относятся недопустимые математические операции (деление на ноль, вычисление логарифма отрицательного числа или нуля, вычисление квадратного корня отрицательного числа), некорректные данные, введенные пользователем, и им подобные.

Логические ошибки обусловлены нарушением логики решения той или иной задачи. Например, искажением метода решения задачи, ошибочной записью математической функции и другие. Эти ошибки не мешают выполнению программы (не приводят к её прерыванию). Их проявление можно обнаружить по результатам решения задачи, ибо они будут неверными.

  1. Вычислительные сети. Назначение и оборудование.

Вычислительная сеть - информационная сеть, в состав которой входит вычислительное оборудование. Компонентами вычислительной сети могут быть ЭВМ и периферийные устройства, являющиеся источниками и приемниками данных, передаваемых по сети. Эти компоненты составляют оконечное оборудование данных (ООД). В качестве ООД могут выступать ЭВМ, принтеры, плоттеры и другое вычислительное, измерительное и исполнительное оборудование автоматических и автоматизированных систем. Собственно пересылка данных происходит с помощью сред и средств, объединяемых под названием среда передачи данных .Подготовка данных, передаваемых или получаемых ООД от среды передачи данных, осуществляется функциональным блоком, называемым аппаратурой окончания канала данных (АКД). АКД может быть конструктивно отдельным или встроенным в ООД блоком. ООД и АКД вместе представляют собой станцию данных, которую часто называют узлом сети. Примером АКД может служить модем.

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]