
- •Лекция 1. Введение. Системное программное обеспечение. Состав системного программного обеспечения
- •Лекция 2. Принципы функционирования систем программирования
- •Этапы подготовки программы
- •Трансляторы и интерпретаторы – общая схема работы
- •Лекция 4. Назначение и функции компоновщика.
- •Раздельная компиляция
- •Переместимые коды и абсолютные коды
- •Редактирование связей с оверлеями
- •Связывание с динамически подсоединяемыми библиотеками (dll)
- •Лекция 5. Назначение и функции программы загрузчика
- •Виды загрузчиков. Загрузчики типа «компиляция-выполнение».
- •Абсолютный загрузчик
- •Настраивающий загрузчик
- •Непосредственно связывающий загрузчик
- •Динамический загрузчик
- •Программные отладчики и их эксплуатация
- •Лекция 6. Базовые понятия языка.
- •Лекция 7. Базовые понятия языка.
- •Лекция 8. Команды и алгоритмы языка.
- •Лекция 9.1. Сложные структуры данных.
- •Команда loop
- •Лекция 9.2. Сложные структуры данных. Структуры
- •Объединения
- •Лекция 2.4. Организация и использование подпрограмм
- •Передача параметров по значению
- •Передача параметров по ссылке
- •Передача параметров по возвращаемому значению
- •Передача параметров по результату
- •Передача параметров по имени
- •Передача параметров отложенным вычислением
- •Передача параметров в регистрах
- •Передача параметров в глобальных переменных
- •Передача параметров в стеке
- •Передача параметров в потоке кода
- •Передача параметров в блоке параметров
- •Лекция 2.5. Макросредства языка Ассемблер
- •Лекция 2.6. Работа с файлами, каталогами и дисками под управлением ms-dos
- •Лекция 3.1. Структура и программирование контроллера прерываний.
- •Лекция 4.1. Работа с консолью. Организация ввода/вывода информации.
- •Лекция 5.1. Системные средства управления памятью
- •Окружение dos
- •Лекция 6.1. Основы организации резидентных программ
- •7.1. Функции драйвера
- •7.2. Архитектура драйвера
- •Процесс загрузки драйверов
- •7.3 Команды драйвера
Лекция 1. Введение. Системное программное обеспечение. Состав системного программного обеспечения
Системное программирование – это процесс создания и применения программ, связанных с управлением использования и распределения ресурсов вычислительной системы, а также с задачами организации ее функционирования. Знания, полученные при изучении дисциплины «Системное программирование» используются в последующих дисциплинах специального направления и в практической деятельности.
Целью изучения дисциплины «Системное программирование» являются теоретические основы построения и практическое использование системного программного обеспечения как эффективного средства обработки данных в ЭВМ. Основное внимание уделяется вычислительным системам, системам программирования, представлению информации в машинном виде и программированию на уровне машинных кодов.
Основные задачи изучения дисциплины:
приобретение знаний о внутренней организации операционной системы, моделях работы ее отдельных подсистем, способов организации взаимодействия процессов как в пределах одной вычислительной системы, так и в распределенных системах;
ознакомление с технологией разработки системного программного обеспечения (ПО) и прикладных программ с использованием обращений к системным компонентам операционных систем;
приобретение практических навыков работы над решением системных задач, включая аналитические исследования;
усвоение принципов создания надежного программного обеспечения.
Программа — это данные, предназначенные для управления конкретными компонентами системы обработки информации в целях реализации определенного алгоритма.
Программное обеспечение (ПО) — совокупность программ системы обработки информации и программных документов, необходимых для их эксплуатации.
Системная программа — программа, предназначенная для поддержания работоспособности систем обработки информации или повышения эффективности ее использования.
Прикладная программа — программа, предназначенная для решения задачи или класса задач в определенной области применения систем обработки информации.
В соответствии с терминологией, системное программирование — это процесс разработки системных программ (в том числе, управляющих и обслуживающих).
С другой стороны, система — единое целое, состоящее из множества компонентов и множества связей между ними. Тогда системное программирование — это разработка программ сложной структуры. Эти два определения не противоречат друг другу, так как разработка программ сложной структуры ведется именно для обеспечения работоспособности или повышения эффективности систем обработки информации. Подразделение ПО на системное и прикладное является до некоторой степени устаревшим. Сегодняшнее деление предусматривает по меньшей мере три градации ПО:
Системное
Промежуточное
Прикладное
Промежуточное ПО (middleware) мы определяем как совокупность программ, осуществляющих управление вторичными (конструируемыми самим ПО) ресурсами, ориентированными на решение определенного (широкого) класса задач. К такому ПО относятся менеджеры транзакций, серверы БД, серверы коммуникаций и другие программные серверы. С точки зрения инструментальных средств разработки промежуточное ПО ближе к прикладному, так как не работает на прямую с первичными ресурсами, а использует для этого сервисы, предоставляемые системным ПО.
С точки зрения алгоритмов и технологий разработки промежуточное ПО ближе к системному, так как всегда является сложным программным изделием многократного и многоцелевого использования и в нем применяются те же или сходные алгоритмы, что и в системном ПО.
Современные тенденции развития ПО состоит в снижении объема как системного, так и прикладного программирования. Основная часть работы программистов выполняется в промежуточном ПО. Снижение объема системного программирования определено современными концепциями ОС, объектно-ориентированной архитектурой и архитектурой микроядра, в соответствии с которыми большая часть функций системы выносится в утилиты, которые можно отнести и к промежуточному ПО. Снижение объема прикладного программирования обусловлено тем, что современные продукты промежуточного ПО предлагают все больший набор инструментальных средств и шаблонов для решения задач своего класса.
Значительная часть системного и практически все прикладное ПО пишется на языках высокого уровня, что обеспечивает сокращение расходов на их разработку/модификацию и переносимость.
Системное ПО подразделяется на системные управляющие программы и системные обслуживающие программы.
Управляющая программа — системная программа, реализующая набор функций управления, который включает в себя управление ресурсами и взаимодействие с внешней средой системы обработки информации, восстановление работы системы после проявления неисправностей в технических средствах.
Программа обслуживания (утилита) — программа, предназначенная для оказания услуг общего характера пользователям и обслуживающему персоналу систем обработки информации.
Управляющая программа совместно с набором необходимых для эксплуатации системы утилит составляют операционную систему (ОС).
Кроме входящих в состав ОС утилит могут существовать и другие утилиты (того же или стороннего производителя), выполняющие дополнительное (опционное) обслуживание. Как правило, это утилиты, обеспечивающие разработку программного обеспечения для операционной системы.
Система программирования — система, образуемая языком программирования, компилятором или интерпретатором программ, представленных на этом языке, соответствующей документацией, а также вспомогательными средствами для подготовки программ к форме, пригодной для выполнения.