Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по ОСПО.doc
Скачиваний:
27
Добавлен:
02.05.2014
Размер:
909.82 Кб
Скачать

51. Понятия "Прагматика и семантика".

ПРАГМАТИКА---смысл программы с точки зрения её пользователя. Семантика--- смысл программы с точки зрения компьютера

ОБЬЕКТ

ЦЕЛЬ

Прагматика

Real World

Virtual World

БОРТОВОЙ КОМП.

УПРАВЛ.

ВОЗДЕЙСТ

Семантика

  1. Последовательное и параллельное программирование. Жизненный цикл по Боэму.

  1. Регистры указателя команд в процессоре ix86.

Регистры указателя команд

Может использоваться 16-разр. Регистр IP (Инстракшн Поинт), либо как 32-разр. регистр EIP

Регистр содержит относительный адрес (это смещение относительно селекора кодового сегмента) следующей команды, подлежащей выполнению.

Регистр флагов

Может быть как 16 так и 32-разр

FLAGS – 16-разр. регистр

EFLAGS – 32-разр. регистр

Флаги это битовые поля (биты) отражающие результаты выполнения операции или состояние процессора

1. Старшее полуслово регистра EFLAGS содержит всего два вида. Остальные –резерв

  • RF – флаг возобновления задачи

  • VF – флаг режима виртуального 86 процессора

2. Младшее полуслово регистра флагов

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

  1. Регистры флагов в процессоре ix86.

Указатели команды и флагов.

Содержат относительный адрес команды, подлежащей выполнению на следующем шаге. Может адресоваться как 16-ти разрядный (IP регистр), так и 32-ух разрядный (EIP регистр).

Регистр флага может быть в двух форматах: 16-ти разрядный FLAGS и 32-ух разрядный EFLAGS. Старшие два байта содержат два бита: нулевой и первый.

назначения флагов

RF

Флаг возобновления, используется для организации отладки программ.

VM

Флаг режима виртуального 8086 процессора

CF

Флаг переноса из старшего разряда. Устанавливается в случае переноса или заёма. Для 8-ми, 16-ти и 32-ух разрядных операций флаг CF устанавливается в случае переполнения 7-го, 15-го и 31-го битов.

AF

Флаг вспомогательного переноса. Упрощает сложение чисел в упакованном BCD-формате. Флаг устанавливается, если в результате операции возник перенос или заем из третьего разряда в независимости от того, с числами какой разрядности выполняется процедура.

OF

Флаг переполнения. Установлен, если в результате выполнения операции возникло знаковое переполнение.

ZF

Флаг нулевого результата, устанавливается, если результат принимает нулевое значение.

SF

Флаг знака, дублирует 7-ой, 15-ый и 31-ый бит операции.

PF

Флаг паритета, содержит бит дополнения результата до четности. Паритет числа предполагает, что количество логических единиц в числе должно быть чётным или нечётным. Например, для 0111 0100 PF=0; а для 1111 0100 PF=1.

DF

Флаг направления передачи в строковых командах, если 0 то в направлении увеличения, если 1 то в направлении уменьшения. [рис]

IF

Флаг разрешения прерываний.

TF

Флаг трассировки, переводит процессор в пошаговый режим

IOPL

Флаг уровня привилегий, предоставляет командам ввода/вывода защитный режим.

NT

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

  1. Синхронный режим чтения и записи файлов.

  2. Служебный регистр управления режимом адресации в процессоре ix86.

  3. Состав и функции элементов управления Windows.

1. Кнопки

А. кнопки

Б. флаги

В. Радио-кнопки

2. Список

3. Поле ввода.

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

  1. Способ преобразования адреса в процессоре i286. Процедура преобразования адреса заключается в сдвиге смещения на 8 разрядов вправо и сложении с селектором.

  2. Способ реализации вытесняющей многозадачности.

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

Длительность кванта времени выполнения задачи определяет уровень приоритета задачи, чем он больше, тем приоритет у задачи выше.

вытесняющая многозадачность

Преимущества:

● Защищенность ОС от сбоев отдельнми программами.

● Простота назначение приоритетов.

Недостатки:

● Необходимость в службе времени.

● Если в ОС не реализована функция передачи управления активной задачи, то могут возникнуть простои при использовании вычислительных ресурсов.

Примеры вытесняющей многозадачности: Windows 95, Windows 98.

  1. Способ реализации кооперативной многозадачности.

При кооперативной многозадачности ОС не занимается решением задачи распределения процессорного времени. Его распределяют сами программы. причем активная программа самостоятельно решает отдавать ли активные ресурсы другой программе.

кооперативная многозадачность

Недостатки:

● Зависимость функционирования всей ОС от каждой из задач. В случаях зависания активной задачи управление к другим задачам не передается вовсе.

● Неудобство назначения уровней приоритетности исполнения программ.

Достоинства:

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

Примеры кооперативной многозадачности: Windows 3.11 и 16-ти разрядный режим Windows95.

  1. Способы ассоциации файлов (способы идентификации типа файла).

Существует три основных способа ассоциации файлов с приложениями:

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

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

● Использование ветвей – в этом случае файл состоит из двух частей: ветви данных (data forks) и ветви ресурсов (resource forks). Ветвь данных хранит непосредственно данные файла, а ветвь ресурсов – указание на программу обработчик, и путь к иконке для данного типа файлов.

  1. Способы оценки надежности ПО.

Оценка надёжности в процессе тестирования.

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

Преимущество:

  • легкость применения.

  • метод не зависит от программиста. Недостаток:

  • не гарантированное значение прогнозируемых данных.

Метрики программного обеспечения и статистические методы оценки надёжности. Метод использует статистически характеристики коллектива разработчиков. Недостаток:

  • необходимость серийного выпуска программ.

  • неоднозначность метрических оценок программного обеспечения.

Метрическая оценка - это количественная характеристика текста программы, а метрика - это конечная совокупность метрических оценок.

Метрика Холстеда, содержит метрические оценки, такие, как длинна программы, количество операторов языка.

Метрика Джилбла, оценивает структуру программы, например: количество циклов, уровень вложенность циклов.

Метрическая оценка (МО).

Ш

П2

ПЗ

П4 (по)

МО1

А1

С1

D1

Е1

МО2

А2

С2

D2

Е2

МОЗ

A3

сз

D3

ЕЗ

В

В1

В2

ВЗ

В4-?

В4=а1Е1+ а2Е+ аЗЕЗ, где

В - количество ошибок.

а - это загрузка фактора.

Е - это сам фактор (МО).

Данный статистический метод в качестве результата выдаёт набор а.

Достоинства:

- метод может быть использован на самых ранних этапах создания программы.

  1. Структура программы на ассемблере. Формы Бэкуса-Наура.

Структура программы на Ассемблере.

1. Синтаксис Ассемблера.

Предложение ассемблера существует четырёх типов:

1 .Команды и инструкции, представляет собой символические аналоги машинных кодов.

  1. Микрокоманды, оформляемые определенным образом предложения текста программы, замещаемые во время компиляции.

  2. Директивы. Являются указаниями компилятору не выполнение тех или иных действий. Нет аналогов в машинном представлении.

  3. Строки комментариев.

диаграммы Бэкуса-Наура. Синтаксические диаграммы, в них используются следующие обозначения:

  1. Прямоугольник - имена, процедуры и операнды.

  2. Кружок - знаки препинания (разделители).

Синтаксическая диаграмма позволяет представить программу в виде нескольких иерархических уровней.

При этом каждый блок этой структуры может быть представлен в виде подобной синтаксической диаграммы. Блоки синтаксической диаграммы соединяются с помощью направленных дуг. Если существует путь в предложениях соответствующих данным дугам, то такие предложения считаются корректными. Форма Бэкуса Наура совпадает с диаграммой команды с тем отличием что вместо команды появляется Мнемоника макроопределения, а имя метки соответствует адресу первого байта макрокоманды который может состоять из нескольких команд Assembler-a.

Формы Бэкуса-Ноура или синтаксические диаграммы, которые применяются для описания структуры предложений.

В состав данных форм входят следующие элементы:

1. элемент синтаксической разметки, изображаемый в виде окружности, в которой изображён знак пунктуации;

2. мнемоника - команды, операнды, директивы и др.; изображаются в виде прямоугольника;

3. дуги, показывающие порядок следования элементов первого и второго типов в предложении. Синтаксическая диаграмма является ориентированным графом, сетью, у которой один вход и один выход. Возможны циклы. Синтаксическая диаграмма является корректной, если существует путь из начальной точки в конечную. В противном случае предложение компилятора будет отвергнуто. Использование формы Бэкуса-Ноура предполагает механизмы, композиции (объединение фрагментов структур в неделимые блоки, структуры более высокого уровня) и d-композиции.

  1. Таксономия гарантоспособности.

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

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

Надежность характеризуется вероятностью безотказной работы (ВБР). ВБР является функцией от времени Р(t)<=1.Вероятность отказа Q(t)=1-p(t).

Готовность: Kr=T р./ Т р. + Т в. (Т р.- время работы, Т р. + Т в.- время восстановления после отказа).

Ошибка – действующая неисправность.

Особенностью определения надежности является то, что величина внесенных неисправностей - величина не наблюдаемая.

  1. Тест на герметичность. Виды контроля программных текстов.

Способы контроля и тестирования.

Контролю могут быть подвержены тексты программ и модульная структура программ на

различных этапах создания ПО.

Тестирование бывает:

Полное (не реализуемо из-за сложности ПО).

Выборочное (осуществляется на основе выбранных определённым способом тестовых

примеров позволяющих активизировать максимальное количество типовых состояний

программы). Тест на герметичность: Тестирование программы на целевой платформе, т.е. на том компьютере, где эта программа будет работать.

  1. Технология OLE.

Технология OLE-это универсальный механизм для создания и обработки составных документов, содержащих одновременно объекты различного происхождения, разной природы.

Технология OLE позволяет:

- внедрять в документ объекты или фрагменты документов, созданных в других приложениях, а также редактировать эти объекты средствами создавшего их приложения;

- устанавливать связь объекта с документом другого приложения. При установлении связи этот объект продолжает «жить» собственной жизнью и обслуживать другие документы.

Сокращение OLE происходит от словосочетания Object Linking and Embedding, что можно перевести как связывание (соединение) и встраивание (включение, внедрение) объектов.

OLE является набором средств, позволяющим легко подготавливать документы, включающие в себя данные, подготовленные в различных приложениях. Чтобы объединить данные, подготовленные в различных приложениях, необходимо, чтобы эти приложения поддерживали технологию OLE.

Стандартные приложения Windows - Paintbrush, Write, Sound Recorder, Cardfile, Object Pakager поддерживают OLE. Кроме стандартных приложений Windows, многие другие приложения, разработанные фирмой Microsoft и другими независимыми фирмами, включают в себя поддержку OLE-технологии. Microsoft Word for Windows 2.0 и 6.0, Microsoft Excel 4.0 и 5.0, ZSoft PhotoFinish 2.0, Designer, FoxPro for Windows, Access и многие другие пакеты включают поддержку OLE-технологии.

При использовании OLE-технологии пользователь всегда имеет дело с одним ведущим приложением (главным) и одним ведомым (под- чиненным), а точнее, с одним ведомым.

Приложение, с помощью которого получен объект для встраивания всегда играет роль подчиненного. Это особенно характерно для

случаев передачи объектов при встраивании и связывании через буфер промежуточного обмена.

Часто используемые термины Приложение-источник и Целевое приложение касаются не подчинения приложений, а определяют генеалогию объектов.

Некоторые Windows-приложения могут выступать только в роли подчиненных, а некоторые только в роли ведущих. Например, Paintbrush в OLE технологии может играть только роль подчиненного приложения, служащего для создания и модификации отдельных объектов. Другие приложения, например, Write или Cardfile можно считать оправданным с точки зрения, что гораздо чаще приходится вставлять иллюстрации в сложные по структуре текст, чем текст в иллюстрации. Новые приложения, такие как Word, могут выполнять в рамках OLE обе эти функции.

В настоящий момент только некоторые Windows приложения являются OLE совместимыми. Среди утилит группы Accessories версии 3.1 такими на сегодняшний день являются только Write, Paintbrush и Cardfile. Но даже они "в своем кругу" не допускают вставки в произвольном направлении (т.е. из любой в любую другую). В настоящее время речь идет о поддержке наиболее оправданного с практической точки зрения "напрвления встраивания" - из Paintbrush в Write и Сardfile документа.

Чтобы определить какие из приложений поддерживаю OLE интерфейс, необходимо из OLE-совместимого приложения выполнить директиву "ВСТАВИТЬ ОБЪЕКТ" в меню "Edit". В отрывшемся окне будет продемонстрирован список доступных встраиваемых объектов. В настоящий момент многие компиляторы уже ввели поодержку OLE в свои библиотеки: Borland C++ .

  1. Типы данных в ассемблере.

Данные бывают трех типов:

  1. Непосредственные – числовые или символьные значения являются частью команды.

  2. Данные простого типа – описываются с помощью ограниченного набора директив резервирования памяти.

  3. Данные сложного типа – были введены в язык ассемблера вследствие влияния языков высокого уровня с целью облегчения разработки программ.

Данные могут быть представлены в двух видах:

  1. Беззнаковые – числа из диапазона от 0 до 2n-1, где n – разрядность числа.

  2. Знаковые числа, – в которых старший бит, определяет знак диапазона –2n-1 до +2n-1-1

Указатель на память бывает двух типов:

  1. 32-х разрядный логический адрес (ближний тип)

  2. 48-и разрядный логический адрес, состоит из 2-х частей ( сегментная (16-ти разрядов) и 32-х разрядного смещения)

Цепочка – представляет собой набор байт, слов и т.д. объёмом не более 4 Гб.

Битовое поле – представляет собой последовательный непрерывный бит, каждый из которых не зависит друг от друга и может быть адресован индивидуально, может начинаться с любого адреса и содержать до 32-х бит.

Неупакованный двоично-десятичный тип.

Упакованный двоично-десятичный тип.

  1. Типы инструментальных программных систем. Преимущества и недостатки.

Типы инструментальных сред программирования.

Интерпретатор: - инструм. средство, которое выполняет действия под управлением текстового потока.

Программист - Текст - Интерпретатор – Действия. Примеры: Basic, скриптовые языки.

+: кроссподформенность ( свойства программы выполняются на любой аппаратной платформе); минус(-): скорость

Компилятор:- предназначен для создания файла с кодами непосредственно исполняющими ЭВМ.

Программист - Текст - Компилятор - ехе – Действия. (ехе – использ. модуль) Примеры:C++,Pascal,Assembler.

+: высокая скорость исполнения, меньшая трата времени на подготовку программы.

-: программа не кроссподформенна, длительное время исполнения, используемая программа только под целевую платформу.

Адаптированные системы: сочетают в себе и совмещает преимущества Интерпретатора и Компилятора.

Пользователь - Текст - Компилятор - ехе - Действия Команды Пример: Forth, Mathlab.

  1. Управление памятью в процессорах i386: получение линейного адреса, общая структура преобразования логических адресов в физические.

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

Логический адрес- адрес, который задает программист.

Физический адрес- адрес, который используется в аппаратуре.

Структура преобразования логических адресов в физические.

Процесс преобразования логических адресов в физические скрыт от разработчиков программы:

Преобразование адреса происходит по следующей структуре:

Селектор служит для выбора определённой строки из таблицы дескрипторов. Из этой строки определяется базовый адрес сегмента, сумма которого со смещением составляет линейный адрес в случае разделения на страницы. В противном случае это физический адрес.

  1. Файлы в UNIX.

  2. Физические дефекты и внесенные неисправности; виды внесенных неисправностей.

  3. Функция обработки событий WM_COMMAND.

Событие нажатия на кнопку, а также некоторые другие события будут сопровождаться отправкой сообщения WMCOMMAND. В качестве параметров для этого сообщения передаётся идентификатор того элемента, которому было направлено действие. В том случае, если на поле окна располагается несколько кнопок, тогда в подпрограмме обработки данного сообщения располагается конструкция множественного выбора, ключом которой служит идентификатор.

Пример:

ButtonControl B1 ButtonControl B2

:m WMCOMMAND

over Loword case

GetID: Bl ofBeependof GetID: B2 of 10. endof endcase 0 ;m