386.76K

Лекция 1 - Введение

1.

Системное программирование
Лекция 1
Введение в системное программирование
Лектор: Ассистент Бернацкий Павел Владимирович

2.

До того, как начать
36 часа лекций, 36 часа лабораторных работ, 36 часов
консультаций
Итоговая проверка знаний в виде Экзамена
Задания на лабораторные работы и презентации
лекций diskstation/Преподаватели/Бернацкий
Рефераты и доклады
Мысли или замечания по поводу курса «Системное
программирование» можно оставить тут –
[email protected]

3.

Системное программирование
Управление процессами и потоками
Управление памятью
Управление файлами
Отображение файлов в память
Создание статических/динамических библиотек
Component Object Model
Написание сервисов и драйверов
Перехват API вызовов
Безопасное программирование
И др.

4.

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

5.

Необходимые свойства ПО
Необходимость документирования
Эффективность
Надежность
Возможность сопровождения

6.

Основы программирования
Системная программа – программа, предназначенная
для поддержания работы СОИ или повышения
эффективности её использования
Например: операционные системы, файловые системы, драйверы, утилиты,
системы программирования
Прикладная программа – программа, предназначенная
для решения задачи или класса задач в определенной
области применения СОИ
Например: Текстовые редакторы, табличные редакторы, графические
редакторы

7.

Основы программирования
Современное деление ПО предусматривает следующие
градации:
Системное ПО
Промежуточное (связующее) ПО
Прикладное ПО

8.

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

9.

Системное ПО

10.

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

11.

Группы системного ПО
Существуют следующие группы Системного ПО:
Операционные системы
Интерфейсные оболочки (ОС)
Системы управления файлами
Системы программирования
Утилиты
Драйверы
Средства сетевого доступа

12.

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

13.

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

14.

Группы системного ПО
Операционные системы – Базовое
Интерфейсные оболочки (ОС) – Базовое
Системы управления файлами – Базовое
Системы программирования – Сервисное
Утилиты – Сервисное
Драйверы – Базовое/Сервисное
Средства сетевого доступа – Базовое

15.

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

16.

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

17.

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

18.

Системы программирования
Системы программирования включают в себя
следующие средства:
Редактор текста
Транслятор
Компоновщик
Отладчик
Библиотеки подпрограмм

19.

Этапы подготовки программы – Редактор текста
Исходный модуль – программный модуль на исходном
языке, обрабатываемый транслятором и
представляемый для него как целое, достаточное для
проведения трансляции

20.

Трансляторы
Транслятор – системная программа, преобразующая
исходную программу на одном языке программирования
в программу на другом языке

21.

Трансляторы
Виды трансляторов:
Ассемблер
Компилятор
Интерпретатор
Эмулятор
Перекодировщик
Макропроцессор

22.

Этапы подготовки программы – Компилятор
Шаг первый – Предварительная обработка кода:
Присоединение исходных файлов
Работа макропроцессоров

23.

Этапы подготовки программы – Компилятор
Шаг второй – Анализ:
Лексический анализ

24.

Этапы подготовки программы – Компилятор
Шаг второй – Анализ:
Синтаксический анализ
Семантический анализ

25.

Этапы подготовки программы – Компилятор
Шаг третий – Синтез:
Генерация машинно-независимого кода

26.

Этапы подготовки программы – Компилятор
Шаг третий – Синтез:
Оптимизация машинно-независимого кода

27.

Этапы подготовки программы – Компилятор
Шаг третий – Синтез:
Распределение памяти
Генерация машинного кода
Оптимизация машинного кода

28.

Этапы подготовки программы – Компилятор
Результатом работы компилятора является объектный
модуль
Объектный модуль – программный модуль, получаемый
в результате трансляции исходного модуля
Содержимое объектного модуля не содержит признаков
на каком языке был написан исходный модуль

29.

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

30.

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

31.

Архитектура системного ПО
Виды организации межпрограммного взаимодействия:
На уровне библиотек
На уровне сервисов, осуществляющих обмен данными по
различным протоколам
На уровне данных
Через различные технологии интеграции (ESB, CORBA,
COM, DCOM, ActiveX и др.)

32.

Системное программирование
Лекция 1
Введение в системное программирование
Лектор: Ассистент Бернацкий Павел Владимирович
English     Русский Правила