Введение. Системное программное обеспечение. Состав системного программного обеспечения
Лекция 1.
Системное программирование – это процесс создания и применения программ, связанных с управлением использования и распределения ресурсов вычислительной системы, а также с задачами организации ее функционирования. Знания, полученные при изучении дисциплины «Системное программирование» используются в последующих дисциплинах специального направления и в практической деятельности.
Целью изучения дисциплины «Системное программирование» являются теоретические основы построения и практическое использование системного программного обеспечения как эффективного средства обработки данных в ЭВМ. Основное внимание уделяется вычислительным системам, системам программирования, представлению информации в машинном виде и программированию на уровне машинных кодов.
Основные задачи изучения дисциплины:
- приобретение знаний о внутренней организации операционной системы, моделях работы ее отдельных подсистем, способов организации взаимодействия процессов как в пределах одной вычислительной системы, так и в распределенных системах;
- ознакомление с технологией разработки системного программного обеспечения (ПО) и прикладных программ с использованием обращений к системным компонентам операционных систем;
- приобретение практических навыков работы над решением системных задач, включая аналитические исследования;
- усвоение принципов создания надежного программного обеспечения.
Программа — это данные, предназначенные для управления конкретными компонентами системы обработки информации в целях реализации определенного алгоритма.
Программное обеспечение (ПО) — совокупность программ системы обработки информации и программных документов, необходимых для их эксплуатации.
Системная программа — программа, предназначенная для поддержания работоспособности систем обработки информации или повышения эффективности ее использования.
Прикладная программа — программа, предназначенная для решения задачи или класса задач в определенной области применения систем обработки информации.
В соответствии с терминологией, системное программирование — это процесс разработки системных программ (в том числе, управляющих и обслуживающих).
С другой стороны, система — единое целое, состоящее из множества компонентов и множества связей между ними. Тогда системное программирование — это разработка программ сложной структуры. Эти два определения не противоречат друг другу, так как разработка программ сложной структуры ведется именно для обеспечения работоспособности или повышения эффективности систем обработки информации. Подразделение ПО на системное и прикладное является до некоторой степени устаревшим. Сегодняшнее деление предусматривает по меньшей мере три градации ПО:
§ Системное
§ Промежуточное
§ Прикладное
Промежуточное ПО (middleware) мы определяем как совокупность программ, осуществляющих управление вторичными (конструируемыми самим ПО) ресурсами, ориентированными на решение определенного (широкого) класса задач. К такому ПО относятся менеджеры транзакций, серверы БД, серверы коммуникаций и другие программные серверы. С точки зрения инструментальных средств разработки промежуточное ПО ближе к прикладному, так как не работает на прямую с первичными ресурсами, а использует для этого сервисы, предоставляемые системным ПО.
С точки зрения алгоритмов и технологий разработки промежуточное ПО ближе к системному, так как всегда является сложным программным изделием многократного и многоцелевого использования и в нем применяются те же или сходные алгоритмы, что и в системном ПО.
Современные тенденции развития ПО состоит в снижении объема как системного, так и прикладного программирования. Основная часть работы программистов выполняется в промежуточном ПО. Снижение объема системного программирования определено современными концепциями ОС, объектно-ориентированной архитектурой и архитектурой микроядра, в соответствии с которыми большая часть функций системы выносится в утилиты, которые можно отнести и к промежуточному ПО. Снижение объема прикладного программирования обусловлено тем, что современные продукты промежуточного ПО предлагают все больший набор инструментальных средств и шаблонов для решения задач своего класса.
Значительная часть системного и практически все прикладное ПО пишется на языках высокого уровня, что обеспечивает сокращение расходов на их разработку/модификацию и переносимость.
Системное ПО подразделяется на системные управляющие программы и системные обслуживающие программы.
Управляющая программа — системная программа, реализующая набор функций управления, который включает в себя управление ресурсами и взаимодействие с внешней средой системы обработки информации, восстановление работы системы после проявления неисправностей в технических средствах.
Программа обслуживания (утилита) — программа, предназначенная для оказания услуг общего характера пользователям и обслуживающему персоналу систем обработки информации.
Управляющая программа совместно с набором необходимых для эксплуатации системы утилит составляют операционную систему (ОС).
Кроме входящих в состав ОС утилит могут существовать и другие утилиты (того же или стороннего производителя), выполняющие дополнительное (опционное) обслуживание. Как правило, это утилиты, обеспечивающие разработку программного обеспечения для операционной системы.
Система программирования — система, образуемая языком программирования, компилятором или интерпретатором программ, представленных на этом языке, соответствующей документацией, а также вспомогательными средствами для подготовки программ к форме, пригодной для выполнения.
Лекция 2.