Системное программирование понятие определение

Системное программирование

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

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

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

На основании вышесказанного можно выделить основные признаки, отличающие системное программирование от прикладного:

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

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

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

Читайте также:  Егэ информатика 27 задание динамическое программирование

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

Классификация системных программ

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

Системные программы можно условно разделить на следующие категории:

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

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

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

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

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

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

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

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

Источник

Лекция № 12. Введение в системное программирование

Системная программа – программа, предназначенная для поддержания работоспособности прикладных программ пользователя или для повышения эффективности их использования.

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

Системное программирование – это процесс разработки системных программ.

В последнее время появилось понятие промежуточного программного обеспечения (ПО), включающего в себя элементы как системного, так и прикладного программирования.

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

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

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

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

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

Системное ПО подразделяется на системные управляющие программы и системные обслуживающие программы.

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

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

Управляющая программа совместно с набором необходимых для эксплуатации системы утилит составляют операционную систему.

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

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

Источник

Введение в системное программирование Основные понятия и определения Программы и программное обеспечение

Программа — это данные, предназначенные для управления конкретными компонентами системы обработки информации (СОИ) в целях реализации определенного алгоритма.

Определения даются по: ГОСТ 19781-90. Обеспечение систем обработки информации программное. Термины и определения. — М.:Изд-во стандартов, 1990.

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

Программное обеспечение (ПО) — совокупность программ СОИ и программных документов, необходимых для их эксплуатации

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

  1. Необходимость документирования. По определению программы становятся ПО только при наличии документации. Конечный пользователь не может работать, не имея документации. Документация делает возможным тиражирование ПО и продажу его без его разработчика. По Бруксу ошибкой в ПО является ситуация, когда программное изделие функционирует не в соответствии со своим описанием, следовательно, ошибка в документации также является ошибкой в программном изделии.
  2. Эффективность. ПО, рассчитанное на многократное использование (например, ОС, текстовый редактор и т.п.) пишется и отлаживается один раз, а выполняется многократно. Таким образом, выгодно переносить затраты на этап производства ПО и освобождать от затрат этап выполнения, чтобы избежать тиражирования затрат.
  3. Надежность. В том числе:
  • Тестирование программы при всех допустимых спецификациях входных данных
  • Защита от неправильных действий пользователя
  • Защита от взлома — пользователи должны иметь возможность взаимодействия с ПО только через легальные интерфейсы.
  1. Возможность сопровождения. Возможные цели сопровождения — адаптация ПО к конкретным условиям применения, устранение ошибок, модификация. Во всех случаях требуется тщательное структурирование ПО и носителем информации о структуре ПО должна быть программная документация. Адаптация во многих случаях м.б. передоверена пользователю — при тщательной отработке и описании сценариев инсталляции и настройки. Исправление ошибок требует развитой сервисной службы, собирающей информацию об ошибках и формирующей исправляющие пакеты. Модификация предполагает изменение спецификаций на ПО. При этом, как правило, должны поддерживаться и старые спецификации. Эволюционное развитие ПО экономит вложения пользователей.

Источник

Оцените статью