Перспективы развития программного обеспечения

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

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 10.01.2016
Размер файла 17,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Реферат

Перспективы развития программного обеспечения

Студент Забалуева Диана Геннадьевна

1. Существующая система

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

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

2. Распараллеливание выполнения

Когда параллельность обслуживания запросов или выполнения процессов помогает работе, а когда она может сильно помешать?

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

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

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

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

3. Структуры и алгоритмы быстрой памяти

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

Время доступа к жестким дискам, повсеместно применявшимся ранее и применяющимся сейчас в качестве основных накопителей, гораздо больше времени доступа к оперативной памяти. Как уже было сказано, ранее использовавшиеся стратегии и алгоритмы в разработке баз данных были направлены на нивелирование этого фактора. Например, методы блочной организации файлов данных в СУБД, а также кэширования оперативной памяти компьютера. На сегодняшний день мы видим настоящий бум для твердотельных накопители SSD, которые отличаются тем, что имеют чрезвычайно большую скорость доступа к данным, и соотношение времени доступа оперативной памяти и к дискам существенно изменилось. Логически отсюда следует, что направление ближайших исследований в области организации СУБД будет меняться, и ведущие разработчики баз данных, возможно поменяют сам основополагающий принцип, на котором работают большинство существующих разработок и заменят структуру индексация с B*-дерева, например, на более многообещающий RB-дерево, или даже будут разработаны новые механизмы, на сегодняшний день неизвестные.

4. Проблема портирования (переноса программного обеспечения с одной операционной системы на другую)

Вообще-то не секрет, что указанная проблема достаточно серьезна. На сегодняшний день абсолютно переносимых языков программирования не существует. Да, мы привыкли считать, что наиболее переносимый язык программирования - это язык СИ и его клоны. Однако несовместимость компиляторов имеет место быть. На текущий момент сделано много попыток разработать портируемый компилятор. Но факт остается фактом: язык СИ стандартизирован, и достаточно давно, но 90% программного обеспечения, компилируемого, например в Linux, не сможет быть скомпилирован, скажем в Windows XP без изменения исходного кода. И, думается, усилия ведущих разработчиков, компиляторов будут направлены и на решение этой проблемы. Как следствие этого, к перспективам рынка программного обеспечения относится возможность портирования софта. Тут можно использовать различные подходы - использовать средства виртуализации, интерпретирующие системы, кросскопиляцию и т.д.

5. Линейные алгоритмы и структуры

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

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

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

6. Направления поиска перспектив

компьютер программный оперативный файловый

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

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

Феномен "Арабской весны" стал возможен из-за широко распространенных социальных сетей, с помощью которых организаторы беспорядков легко распространяло и получало информацию координирующего характера. Характерным примером того, что не все новые способы переноса и обработки информации жизнеспособны, можно назвать устройство для хранения информации на ZIP-drive носителе на 100Мб, которые буквально за год, два после появления их на ранке были вытеснены более удобными перезаписываемыми CD на 650/700 Мб.

Размещено на Allbest.ru

...

Подобные документы

  • Подготовка к сборке компьютера. Установка процессора, оперативной памяти, материнской платы и винчестера. Подключение питания и периферийных устройств. Решение проблем при включении. Установка программного обеспечения, операционной системы, конфигурация.

    курсовая работа [40,9 K], добавлен 26.04.2014

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

    курсовая работа [636,2 K], добавлен 23.08.2011

  • Классификация основных видов памяти компьютера. Использование оперативной памяти для временного хранения данных, используемых для работы программного обеспечения. Расчет потребления электроэнергии, формирование квитанции для потребителя в Microsoft Excel.

    курсовая работа [1,5 M], добавлен 23.04.2013

  • Улучшение параметров модулей памяти. Функционирование и взаимодействие операционной системы с оперативной памятью. Анализ основных типов, параметров оперативной памяти. Программная часть с обработкой выполнения команд и размещением в оперативной памяти.

    курсовая работа [99,5 K], добавлен 02.12.2009

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

    курсовая работа [43,9 K], добавлен 21.07.2012

  • Автоматизация расчетов выполнения весенне-полевых работ в сельском хозяйстве средствами Системы управления базы данных. Структура входной и выходной информации. Блок-схема алгоритма решения задачи. Краткое описание программного средства обработки данных.

    контрольная работа [58,8 K], добавлен 07.04.2014

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

    реферат [87,7 K], добавлен 07.03.2009

  • Установка программного обеспечения на компьютер, снабженный операционной системой Microsoft Windows XP Service Pack2: офисных программ, антивируса, программы для работы в Интернете "Opera". Диагностика корректной установки программного обеспечения.

    отчет по практике [101,1 K], добавлен 05.07.2009

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

    дипломная работа [1,9 M], добавлен 26.03.2013

  • Порядок проектирования и разработки базы данных и программного обеспечения. Информация о структуре базы данных, созданных таблицах, формах, отчетах, запросах, хранимой информации. Логическая и концептуальная модели данных; выбор программного обеспечения.

    курсовая работа [906,6 K], добавлен 20.01.2010

  • Цели и задачи программной инженерии. Понятие программного обеспечения. Шесть принципов эффективного использования программного обеспечения. Виды программного обеспечения: общесистемное, сетевое и прикладное. Принципы построения программного обеспечения.

    курсовая работа [30,4 K], добавлен 29.06.2010

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

    реферат [12,9 K], добавлен 21.02.2009

  • Практические аспекты использования прикладного программного обеспечения при разработке базы данных "Аудиторный фонд ГБОУ СПО "Старооскольский педагогический колледж". Системы управления базами данных. Описание и функциональные возможности приложения.

    курсовая работа [360,4 K], добавлен 07.10.2014

  • Цементирование обсадных колонн нефтяных скважин. Состав информационного обеспечения программного комплекса автоматизированного проектирования. Реализация инфологической модели и организация взаимодействия программного обеспечения с базой данных.

    дипломная работа [2,3 M], добавлен 22.07.2013

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

    дипломная работа [1,7 M], добавлен 13.06.2017

  • Использование моделирования в программной инженерии в процессе разработки программного обеспечения. Основные этапы процесса разработки программного обеспечения, их характеристика. Моделирование процессов, их определение фазами и видами деятельности.

    реферат [2,2 M], добавлен 25.12.2017

  • Разбиение данных по таблицам и создание связей между таблицами. Нормализация и проектирование сценария работы базы данных. Выбор программного обеспечения. Требования к аппаратным и программным средствам для работы созданного программного продукта.

    курсовая работа [30,2 K], добавлен 23.01.2011

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

    курсовая работа [405,4 K], добавлен 08.02.2016

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

    контрольная работа [537,8 K], добавлен 07.07.2012

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

    курсовая работа [1,1 M], добавлен 11.01.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.