
- •1. Двоичные формы представления программ в технологиях их отладки алгоритмическом
- •2. Логический тип данных в эвм: назначение и технологии их применения.
- •3. Гарантированность информационной безопасности: определение и составляющие
- •4. Арифметический тип данных в эвм: формы представления и организация доступа
- •Место в эвм:
- •Проблема:
- •Вопрос 36. Типы адресов
- •Вопрос 41.Ввод/вывод
- •Вопрос 43. Физические принципы организации ввода/вывода
- •5. Формализованные средства представления структуры пакетов программ и пользовательский интерфейс
- •6. Кодирование источников информации (сжатие), взаимосвязь с защитой от помех и от нсд
- •8. Организационные меры информационной безопасности: угрозы безопасности, их классификация
- •Основные элементы политики безопасности
- •Произвольное управление доступом
- •Безопасность повторного использования объектов
- •Метки безопасности
- •Принудительное управление доступом
- •Общая схема проведения работ по зи
- •Программы защиты программ
- •Программы ядра системы безопасности
- •Программы контроля
- •Цифровая (электронная) подпись на основе криптосистемы rsa
- •9. Полиномиальные алгоритмы задания декодирования линейного двоичного циклического кода. Технологии использования для защиты программ и данных от помех и нсд.
- •10. Услуги безопасности и механизмы их реализации
- •Классификация методов и средств зи
- •Семантические схемы
- •Некоторые подходы к решению проблемы зи
- •Общая схема проведения работ по зи
- •11. Математические модели синтеза и свойства двоичных псевдослучайных последовательностей максимальной длины
- •12. Модели и иерархические уровни запоминающих устройств эвм технологии доступа к программам и данным Управление памятью в современных эвм
- •Вопрос 34. Организация памяти компьютера
- •Вопрос 35. Функции ос по управлению памятью
- •Вопрос 36. Типы адресов.
- •Вопрос 37. Распределение памяти.
- •Вопрос 38. Современные методы управления памятью.
- •Вопрос 39. Виртуальная память.
- •Вопрос 40. Кэш.
- •15. Технологии парольной защиты программы пользователя, синтезированной языком программирования высокого уровня
- •Стандарт шифрования данных des
- •Принцип работы блочного шифра
- •16. Организационные меры информационной безопасности: политика безопасности, её составляющие
- •Основные элементы политики безопасности
- •Произвольное управление доступом
- •Безопасность повторного использования объектов
- •Метки безопасности
- •Принудительное управление доступом
- •Требования к политике безопасности
- •Произвольное управление доступом:
- •Повторное использование объектов:
- •Метки безопасности:
- •Целостность меток безопасности:
- •Принудительное управление доступом:
- •Требования к подотчетности Идентификация и аутентификация:
- •Предоставление надежного пути:
- •19. Форматы сообщений в вычислительных сетях и их стандартизация (протоколы)
- •20. Организационные меры информационной безопасности: операционная и технологическая гарантированность
- •Требования к гарантированности
- •Операционная гарантированность:
- •Архитектура системы:
- •Верификация спецификаций архитектуры:
- •Конфигурационное управление:
- •Надежное распространение:
1. Двоичные формы представления программ в технологиях их отладки алгоритмическом
Основной единицей хранения данных в компьютере является бит. В большинстве микрокомпьютеров восемь битов объединены в байт, при этом каждый бит байта может быть установлен или "включен" (= 1) или сброшен или "выключен" (= 0), допуская 256 разных вариантов. Таким образом, в одном байте можно представить 256 разных симво-
лов (расширенный набор кодов ASCII) или целое число в диапазоне от 0 до 255. Хотя мы привыкли записывать эти числа в десятичной форме, они могут записываться также в двоичной или шестнадцатеричной форме - их значения при этом не изменяются, а программы могут с одинаковой легкостью читать эти значения как в той, так и в другой форме. Вместо того, чтобы говорить, что в одном байте могут храниться числа от 0 до 255, можно сказать, что могут храниться двоичные числа от 00000000 до 11111111 или шестнадцатеричные числа от 00 до FF.
Простейшая структуризация ОС состоит в разделении всех компонентов ОС на модули, выполняющие основные функции (ядро) и модули, выполняющие вспомогательные функции ОС. Основными (базовыми) являются функции управления процессами, памятью, устройствами ввода/вывода и т.п.
В состав ядра входят, во-первых, функции решающие внутрисистемные задачи: переключение контекстов, загрузка/выгрузка страниц памяти, обработка прерываний. Эти функции недоступны для приложений. Во-вторых, в ядре есть средства создания прикладной программной среды приложений, которые обращаются к нему с системными вызовами при необходимости работы с аппаратными средствами ЭВМ.
Функции ядра, которые могут вызываться приложениями, образуют интерфейс прикладного программирования (API).
Для обеспечения высокой скорости работы, большая часть ядра резидентно находится в ОП.
Для повышения надежности, ядро обычно работает в привилегированном режиме, а формат модуля ядра несколько отличается от формата оттранслированных приложений пользователей.
Вспомогательные модули ОС обычно выполнены в виде библиотек процедур или отдельных приложений. Как приложения, они часто несколько стирают границу между ОС и приложениями пользователей.
Вспомогательные модули делятся на следующие группы:
Утилиты – программы, решающие отдельные задачи управления и обслуживания аппаратных и программных средств ЭВМ
Системные обрабатывающие программы – текстовые или графические редакторы, компиляторы, компоновщики, отладчики
Программы дополнительных услуг – средства настройки специального интерфейса, калькуляторы, архиваторы и т. д.
Библиотеки процедур, упрощающие разработку приложений, например, математические библиотеки, библиотеки ввода/вывода и т. д.
Вспомогательные модули обращаются к функциям ядра через системные вызовы.
Вспомогательные модули загружаются в ОП только на время своей работы, т.е. являются транзитными.
Такое строение ОС упрощает развитие и расширение возможностей ос с минимальными переделками.
Вычислительную систему можно рассматривать как состоящую из нескольких (как минимум – трех) слоев: аппаратуры, ядра ОС и приложений. Приложения могут общаться с аппаратурой только через слой ядра, но не напрямую. В более общем случае, любая сложная программная система может строиться по многослойной схеме. На основе функций нижележащего слоя, следующий слой строит свои функции – более мощные, которые, в свою очередь, являются примитивами для функций следующего слоя.
Для обращения к соседнему нижележащему уровню должен использоваться межслойный интерфейс. Между модулями слоя связи могут быть произвольными. К вышележащему слою, или вниз через слой обращаться нельзя.
Такой подход применяется и для структуры самого ядра. Оно может состоять из следующих слоев
Средства аппаратной поддержки ОС. Часть функций ОС может выполнять аппаратура: средства поддержки привилегированного режима, системы прерываний, средства переключения контекстов процессов, средства защиты областей памяти и т.д.
Машинно-зависимые компоненты ОС. Этот слой содержит программные модули, отражающие специфику используемой аппаратной платформы компьютера. Теоретически, он должен экранировать вышележащие слои от особенностей аппаратуры и облегчать переход на другие платформы.
Базовые механизмы ядра. Слой выполняет наиболее примитивные операции ядра. Сам решений об этих операциях не принимает, а лишь выполняет указания вышележащего слоя.
Менеджеры ресурсов. Этот слой состоит из мощных функциональных модулей, реализующих стратегические задачи по управлению ресурсами ВС. В слое обычно менеджеры (диспетчеры) процессов, ввода-вывода, файловой системы и оперативной памяти, Каждый из менеджеров ведет учет своего ресурса и управляет его распределением через функции базовых механизмов ядра.
Интерфейс системных вызовов. Это самый верхний слой, он образует прикладной программный интерфейс ОС (API).
Разбиение на слои может нарушаться для ускорения работы (уменьшение числа промежуточных интерфейсных затрат). Обычно "старые" ОС, например, UNIX, имеют небольшое число слоев, а молодые (Windows NT) – большее число формализованных слоев в ядре.
Прямой код двоичного числа - это само двоичное число, в котором всё цифры, отображающие его значение, записываются как в математической записи, а знак числа записывается двоичной цифрой.
При этом никакого символа отделяющего эту цифру от старшей цифры используемой при изображении его величины, не допускается.
-
p разрядное двоично-кодированное
число
- прямой код p-разрядного
двоично-кодированного веществ. числа
— прямой код
Прямой код используется при хранении чисел в памяти ЭВМ а также при выполнении операций умножения и деления. Но с прямым кодом нельзя реализовать операцию вычитания, т.е. займа старшего разряда.
По этому используют обратный и дополнительный коды (они совпадают для положительного числа).
Обратный код:
Обратный n-разрядный двоичный код положительного целого числа состоит из одноразрядного кода знака (двоичной цифры 0), за которым следует n − 1-разрядное двоичное представление модуля числа (обратный код положительного числа совпадает с прямым кодом).
- обратный код для отрицательного,
двоично-кодированного числа
p – количество разрядов
Обратный n-разрядный двоичный код отрицательного целого числа состоит из одноразрядного кода знака (двоичной цифры 1), за которым следует n − 1-разрядное двоичное число, представляющее собой инвертированное n − 1-разрядное представление модуля числа.
-
обратный код
Дополнительный код:
Наиболее распространенный способ представления отрицательных целых чисел в компьютерах. Он позволяет заменить операцию вычитания на операцию сложения, чем упрощает архитектуру ЭВМ. Дополнительный код положительного числа совпадает с прямым, а дополнительный код отрицательного числа получается инвертированием двоичного числа и прибавлением к нему единицы.
дополнительный код
ППП (Пакет Прикладных Программ) – совокупность программ, ориентированных на определенную область. В нашем случае - это система программирования Borland C++ Builder 6.
Система программирования – это пакет отладки программ пользователя, написанных на алгоритмическом языке программирования.
Компьютер может выполнять программу только в том случае, если содержащиеся в ней команды представлены в двоичном машинном коде, т.е. выражены на языке, алфавит которого состоит из логических единиц и нулей. Языки программирования, которые по своей лексике максимально приближены к естественному языку человека, называются алгоритмическими; алгоритмический язык не привязан к архитектуре компьютера, не содержит деталей, связанных с устройством машины. Т.о. алгоритмический язык, формализованный язык для однозначной записи алгоритмов. Состоит из набора символов (алфавит алгоритмического языка), синтаксических правил и семантических определений.
Общая теоретико-множественная модель ППП
Δ=<P,L,M,F>, где
P – множество проблемных (предметных) программ, которые ориентированы на отладку программы.
P={E,C,R}
E – edit - текстовый редактор – предназначен для редактирования текста программы и его перевода в двоичный ASCII код.
C – compile – компилятор в качестве транслятора – служит для получения из ASCII кода объектного файла, т.е. кодирование в двоичные коды команд (объектные коды), а также подключает библиотеки. Компилятор транслирует программу сразу целиком, и лишь после этого возможно ее выполнение. Интерпретатор же - это более простой транслятор, он последовательно транслирует операторы программы и так же по частям ее выполняет.
R – run – программа-загрузчик – создает загрузочный файл, в котором находятся двоичные команды. Загрузочный файл может быть загружен в ОЗУ непосредственно, т.е. без загрузки в ОЗУ ППП.
L – множество конструкций/элементов входного языка программирования.
M – информационная/проблемная часть ППП – определяет решаемые с помощью данного ППП задачи.
F – управляющая/системная часть ППП – множество директив, дополнительных/подключаемых библиотек функций.
Описанной теоретико-множественной модели на данный момент удовлетворяет большое множество ППП.
P={E,C,R}
E – Текстовый редактор представляет собой окно с возможностью построчного ввода текста. Он достаточно прост по интерфейсу и имеет возможности стандартного текстового редактора, аналогичные любому встроенному текстовому редактору в любую ОС, копирование, вставка элементов текста, отмена предыдущего действия, поиск по тексту и т.п. Эти возможности доступны через пункты меню, а также клавиши быстрого вызова. В результате работы с редактором создается файл *.cpp
R– в результате работы программы-загрузчика создается загрузочный файл (*.exe).
L – сочетание операторов и графических объектов языка программирования.
M - Borland C++ Builder 6 позволяет написать текст программы, отладить программу и получить загрузочный файл.
F – В Borland C++ Builder 6 существует набор библиотек (*.h), подключение которых позволяет использовать соответствующие операторы.
Если перевод символьных имен в виртуальные адреса выполняет транслятор, то задача отображения виртуального адреса на физический адрес является функцией ОС. При этом есть два разных подхода к этому процессу.
Первый способ заключается в замене виртуальных адресов на физические один раз, в момент загрузки. Это делает программа – перемещающий загрузчик, на основании информации о свободной и занятой памяти в момент загрузки.
Второй способ заключается в том, что программа, хотя и загружается в память, начиная со свободного адреса, внутри команд все адреса остаются виртуальными. В момент выполнения такой команды, виртуальный адрес в ней заменяется на физический (например, добавлением начального смещения).
Т
ехнология
отладки программы
На бумажном носителе
Операторы программ в двоичном коде
Компиляционная технология это программно
аппаратное средство
Компилятор – превращает в двоичные
управляющие команды.
Эти команды поступают в оперативную
память
Здесь уже не текст а программа с привязкой
в ОЗУ ЭВМ.