Средства создания программных продуктов

Автор работы: Пользователь скрыл имя, 18 Февраля 2015 в 10:23, курсовая работа

Краткое описание

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

Содержание

Введение
3
1 Разработка программ для ЭВМ
5
2 Средства, используемые для создания программ
16
Заключение
27
Глоссарий
29
Список использованных источников

Прикрепленные файлы: 1 файл

Программировапние 55.doc

— 297.50 Кб (Скачать документ)

Конечная цепь проекта Farsite – это создание в 2006 году кластера из 100 тысяч компьютеров, с общим объемом дисковой памяти в 10 терабайт (10 тысяч гигабайт).

В то же время, компания IBM работает над расширением возможностей существующих операционных систем. В настоящий момент в исследовательском центре IBM ведется работа по расширению возможностей операционной системы Linux для управления компьютером с 65 тысячами процессоров. Такая система будет управлять суперкомпьютером Blue Gene с заявленной производительностью в 1 квадриллион операций с плавающей точкой в секунду.

Исследование IBM направлено на создание «самооптимизирующейся, самонастраиваемой, самовосстанавливающейся» системы, сходной по устройству с автономной нервной системой человека. Главной чертой операционной системы будущего в IBM считают ориентацию на решение конкретных задач.

Понятие и особенности алгоритмов

«Алгоритм» - одно из фундаментальный понятий информатики, а также математики. Происхождение самого термина связано с искаженным представлением (Algorithmi) имени средневекового арабского математика Мухаммеда аль-Хорезми (787 – 850). В то время алгоритмами называли описанные в трактатах аль-Хорезми правила арифметики (сложение, вычитание, умножение столбиком и деление уголком многозначных чисел) и десятичная система счисления.

В настоящее время понятие алгоритма трактуется шире. Это понятие применимо ко всем областям человеческой деятельности.

Алгоритмы встречаются не только в вычислительной технике, но и в обыденной жизни. Примеры алгоритмов из обыденной жизни:

  • поездка в институт;
  • ремонт телевизора (по инструкции);
  • поиск пропавшей вещи;
  • выращивание растений на участке и т.п.

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

Любой алгоритм обладает следующими свойствами:

  • детерминированность,
  • массовость,
  • результативность,
  • дискретность.

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

Массовость алгоритма предполагает возможность варьирования исходных данных в некоторых пределах. Это свойство определяет пригодность использования алгоритма для решения множества конкретных задач определенного класса.

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

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

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

  • словесный,
  • формально-словесный,
  • графический и др.

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

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

Графический способ описания алгоритмов представляет собой изображение логико-математической структуры алгоритма, при котором все этапы процесса обработки данных представляются с помощью определенного набора геометрических фигур (блоков), имеющих строго определенную конфигурацию в соответствии с характером выполняемых действий. (см. рис.1)

начало, конец



  • вычисления

 

  • ввод / вывод


  • проверка условия


  • модификация
  • подпрограмма

Рис. 1. Основные графические обозначения блоков программ.

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

Приведем пример: математическая постановка задачи - задано квадратное уравнение:

,

где , b, c – некоторые параметры. Вычислить его действительные корни.

Решение:

;

Если D³0, то уравнение имеет 2 действительных корня

.

Если D<0, то уравнение не имеет действительных корней.

Блок-схема алгоритма решения:

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

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

  • однозадачные (например, MS-DOS, MSX) и
  • многозадачные (OC EC, OS/2, UNIX, Windows 95).

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

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

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

  • однопользовательские (MS-DOS, Windows 3.x, ранние версии OS/2);
  • многопользовательские (UNIX, Windows NT).

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

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

  • невытесняющая многозадачность (NetWare, Windows 3.x);
  • вытесняющая многозадачность (Windows NT, OS/2, UNIX).

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

Поддержка многонитевости. Важным свойством операционных систем является возможность распараллеливания вычислений в рамках одной задачи. Многонитевая ОС разделяет процессорное время не между задачами, а между их отдельными ветвями (нитями).

Многопроцессорная обработка. Другим важным свойством ОС является отсутствие или наличие в ней средств поддержки многопроцессорной обработки - мультипроцессирование. Мультипроцессирование приводит к усложнению всех алгоритмов управления ресурсами.

В наши дни становится общепринятым введение в ОС функций поддержки многопроцессорной обработки данных. Такие функции имеются в операционных системах Solaris 2.x фирмы Sun, Open Server 3.x компании Santa Crus Operations, OS/2 фирмы IBM, Windows NT фирмы Microsoft и NetWare 4.1 фирмы Novell.

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

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

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

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

Анализ информационных рисков — это процесс комплексной оценки защищенности информационной системы с переходом к количественным или качественным показателям рисков. При этом риск — это вероятный ущерб, который зависит от защищенности системы. Итак, из определения следует, что на выходе алгоритма анализа риска можно получить либо количественную оценку рисков (риск измеряется в деньгах), либо — качественную (уровни риска; обычно: высокий, средний, низкий).

Кроме того, анализ рисков также отличается по используемому подходу; обычно условно выделяют два уровня анализа рисков: базовый и полный. Для базового анализа рисков достаточно проверить риск невыполнения требований общепринятого стандарта безопасности (обычно ISO 17799) с получением на выходе качественной оценки уровня рисков (высокий, средний, низкий).

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

Итак, основное отличие полного анализа рисков от базового состоит в необходимости построения полной модели анализируемой информационной системы. Модель должна включать: виды ценной информации, объекты ее хранения; группы пользователей и виды доступа к информации; средства защиты (включая политику безопасности), виды угроз.

 

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

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

Информация о работе Средства создания программных продуктов