Системное программное обеспечение NAA™ СИСТЕМАҲОИ ОПЕРАТСИОНӢ ВА БАРНОМАСОЗИИ СИСТЕМАВӢ ТЕМА 1:
Цели освоения дисциплины 2 Целью изучения дисциплины является ознакомить студентов с возможностями современных операционных систем в плане предоставляемых ими API: многозадачностью, возможностями синхронизации, эффективного управления виртуальной памятью, межпроцессорного взаимодействия и т.д. Для успешного изучения дисциплины требуется: умение программировать на языке среднего уровня (C/C++), знать архитектуру ЭВМ Ознакомление со структурой ЭВМ, ознакомление со структурой операционных систем и их сервисов на примерах MS-DOS, Windows и Linux/UNIX. Знания, полученные в рамках этого курса, могут быть применены студентами в широком спектре их дальнейшей профессиональной деятельности, например при создании автоматизированных систем обработки данных
СОДЕРЖАНИЕ Классификация системного программного обеспечения Структура СПО Утилиты и системное программирование 3
Классификация СПО КОМПЬЮТЕР = Аппаратное обеспечение ( HARDWARE ) + Программное обеспечение (SOFTWARE) 4
Классификация СПО Программа (от греч. π ρο - пред, греч. γράμμ α-запись) - термин, в переводе означающий «предписание», то есть заданную последовательность действий. Данное понятие непосредственно связано с понятием алгоритм. Программа - это текст (код), написанный на одном из языков программирования, содержащий инструкции и операторы в логической последовательности, которые заставляют работать аппаратное обеспечение, выполняя необходимые пользователю функции. Для пользователя программа чаще всего представ- ляется как инсталлятор, который нужно скачать, запустить на компьютере и установить в определенную папку с набором необходимых модулей, библиотек и файлов. 5
Классификация СПО Есть программа « сходить в магазин », а есть « приготовить еду », но чтобы исполнить эти программы необходимо выполнить ряд последовательных действий (инструкций). Например, чтобы выполнить программу «сходить в магазин», необходимо: одеться; взять деньги; выйти из дома; дойти до магазина; в магазине осуществить выбор нужных продуктов; вернуться домой. В свою очередь, эти последовательности действий могут быть и дополнительными подпрограммами со своими инструкциями. 6
Классификация СПО 7
Классификация СПО Компьютерная программа - комбинация компьютерных инструкций и данных, позволяющая аппаратному обеспечению вычислительной системы выполнять вычисления или функции управления. В системном программировании программой называются данные, которые используются процессором как инструкции по управлению компьютерной системой. В состав программы может входить как машинный код, исполняемый процессором для достижения некоторой цели, так и необходимые для этого данные. Отличительной особенностью программы является её нахождение в памяти и исполнение процессором. 8
Классификация СПО Программное обеспечение – это взаимодействие каждой из частей системы логической цепочки нулей и единиц, работающих по определённому алгоритму обработки и работы с информацией, которые так же могут являться программами. Программное обеспечение - программа или множество программ, используемых для управления компьютером. Программное обеспечение (ПО) - это программы, свод правил, документация к системе занимающейся обработкой информации. Программное обеспечение - совокупность всех программ, предназначенных для выполнения на компьютере. 9
Классификация СПО По сути, под программным обеспечением понимаются: компьютерные программы; процедуры и функции, которые входят в компьютерную программу; документация к программному обеспечению, необходимая для эсплуатации (использования) программ; набор данных обработкой которых занимается компьютерная программа. Программное обеспечение один из видом обеспечения вычислительной систему. К этой системе относятся аппаратные, математические, лингвистические, организационных, методологические обеспечения 10
Классификация СПО 11 Структура программного обеспечения компьютера Системы программирования Операционная система (ОС) Сервисные программы Архиваторы Антивирусы Коммуникационные программы Приложения общего назначения Приложения специального назначения Языки программирования Ассемблеры ФОРТРАН Паскаль С (Си) ЛОГО ЛИСП Пролог Делфи Бейсик . . . . . . . . . . Прикладное ПО Системное ПО
Классификация СПО Классификация ПО По способу исполнения программы делят на: интерпретируемые; компилируемые. По степени переносимости программы делят на: платформозависимые ; кроссплатформенные. По способу распространения и использования программы делят на: несвободные (закрытые); открытые; свободные. 12
Классификация СПО По назначению программы делят на: системные; прикладные; инструментальные. По видам программы делят на: компонент: программа, рассматриваемая как единое целое, выполняющая заданные функции и применяемая самостоятельно, либо в составе комплекса других программ; комплекс: программа, состоящая из двух или более компонентов или комплексов, которые выполняют взаимосвязанные действия, самостоятельно или в составе другого комплекса. 13
Системное программное обеспечение Системное программное обеспечение - это целый комплекс программ, которые позволяют управлять компонентами всей компьютерной системы или отдельными ее частями. СПО управляет ресурсами компьютерной системы и позволяет пользователям программировать в более выразительных языках, чем машинных язык компьютера. Состав СПО мало зависит от характера решаемых задач пользователя. Например , управлять аппаратными компонентами компьютера: процессором, оперативной памятью, видеокартой, сетевым оборудованием. 14
Системное программное обеспечение Системное программное обеспечение предназначено для: создания операционной среды функционирования других программ (другими словами, для организации выполнения программ); автоматизации разработки (создания) новых программ; обеспечения надежной и эффективной работы самого компьютера и вычислительной сети; проведения диагностики и профилактики аппаратуры компьютера и вычислительных сетей; выполнения вспомогательных технологических процессов (копирование, архивирование, восстановление файлов программ и баз данных и т.д.). 15
Системное программное обеспечение Системное программное обеспечения является эдакой прослойкой, между аппаратурой и программами компьютера. В том время как прикладное программное обеспечение решает конкретные практические задачи пользователей, системное программное обеспечение обеспечивает работу программ на компьютере, давая им специальные сервисные функции, полностью абстрагируя от аппаратной и микропрограммной части вычислительной системы, беря все под свой контроль. К системному программному обеспечению относятся: операционные системы, утилиты, системы управления базами данных, связующее программное обеспечение. 16
Системное программное обеспечение 17
Системное программное обеспечение Системный программист - программист, специализи-рующийся на системном программировании. Системы программирования. К этой категории относятся системные программы, предназначенные для разработки программного обеспечения: ассемблеры — компьютерные программы, осуществляющие преобразование программы в форме исходного текста на языке ассемблера в машинные команды в виде объектного кода; трансляторы — программы или технические средства, выполняющее трансляцию программы; 18
Системное программное обеспечение трансляторы — программы или технические средства, выполняющее трансляцию программы; компиляторы — Программы, переводящие текст программы на языке высокого уровня, в эквивалентную программу на машинном языке. интерпретаторы — Программы (иногда аппаратные средства), анализирующие команды или операторы программы и тут же выполняющие их; компоновщики (редакторы связей) — программы, которые производят компоновку — принимают на вход один или несколько объектных модулей и собирают по ним исполнимый модуль; 19
Системное программное обеспечение препроцессоры исходных текстов — это компьютерные программы, принимающие данные на входе, и выдающие данные, предназначенные для входа другой программы, например, такой, как компилятор; отладчики (англ. debugger ) — модули среды разработки или отдельные программы, предназначенные для поиска ошибок в программах; текстовые редакторы — компьютерные программы, предназначенные для создания и изменения текстовых файлов, а также их просмотра на экране, вывода на печать, поиска фрагментов текста и т. п.; библиотеки подпрограмм — сборники подпрограмм или объектов, используемых для разработки программного обеспечения. 20
Структура системного программного обеспечения 21
Утилиты и системное программирование Ути́лита (англ. utility ) — вспомогательная компьютерная программа в составе общего программного обеспечения для выполнения специализированных типовых задач, связанных с работой оборудования и операционной системы. Утилиты предоставляют доступ к возможностям (параметрам, настройкам, установкам), недоступным без их применения, либо делают процесс изменения некоторых параметров проще (автоматизируют его). Утилиты могут входить в состав операционных систем, идти в комплекте со специализированным оборудованием или распространяться отдельно. 22
Утилиты и системное программирование Классификация по функциям: Дисковые Диспетчеры файлов или файловые менеджеры Утилиты работы с реестром Средства просмотра Средства коммуникаций Управления параметрами оборудования Утилиты мониторинга оборудования Тесты оборудования Средства обеспечения компьютерной безопасности. 23
Утилиты и системное программирование Системное программирование - создание системного программного обеспечения. Системное программирование - это вид програм-мирования , который заключается в работе с системным программным обеспечением. Главным отличием системного программирования по сравнению с прикладным программированием является то, что прикладное программное обеспечение предназначено выпускать (создавать и обновлять) программы для пользователей (например, текстовые процессоры), тогда как системное программирование предназначено выпускать программы, обслуживающие аппаратное обеспечение (например, дефрагментация диска) что обусловливает значительную зависимости такого типа ПО от аппаратной части. 24
Утилиты и системное программирование Также для системного программирования характерно: программист должен учитывать аппаратное обеспечение и другие особенности системы, на которой предполагается запуск программы, и использовать эти особенности (например, применяя оптимизированные алгоритмы для определенной архитектуры ) обычно используются низкоуровневые языки программирования или диалекты которые: могут работать в ресурсно-ограниченной среде максимально рациональные и имеют минимальные задержки по времени выполнения. 25
Утилиты и системное программирование имеют малые библиотеки библиотеки периода выполнения (RTL), или вообще их не имеют позволит прямой доступ к памяти и управляющей логики позволяют программисту писать части программы на ассемблере налаживание может быть сложным, если невозможно запустить программу в режиме отладки за ограничений в ресурсах. Выполнение программы в эмулируемом среде может снять эту проблему. Системное программирование существенно отличается от прикладного программирования, что заставляет программистов специализироваться в одной из этих областей. 26
Утилиты и системное программирование Прикладное программное обеспечение - это программы, предназначенные для выполнения конкретных пользовательских задач и рассчитанные на прямое и тесное взаимодействие с пользователем. Инструментальное программное обеспечение, предназначено для использования в ходе проектирования, разработки и сопровождения других программ. Инструментальные программы можно разделить на следующее: Средство разработки программного обеспечения Среда разработки SDK Система контроля версий Система отслеживания ошибок 27
Таснифоти ТБС 28
Утилиты и системное программирование Программное обеспечение в фактах Каждая программа имеет три стадии своего существования: разработка, использование и сопровождение. Разработка программного обеспечения проходит в шесть шагов: Постановка задач (требования) Проектная стадия Создание команд Компонованные или группировка Тестирование результатов работ Написание документации 29
Утилиты и системное программирование Транслятор – программа осуществляющая перевод с одного языка программирования на другой. Компилятор – разновидность транслятора переводящая программы составленные на языках высокого уровня на машинный язык. Компоновщик – программа, обеспечивающая сборку нескольких модулей на машинном языке в единый исполняемый файл. 30 Программы на языке высокого уровня Компилятор Модули на машинном языке Компоновщик Исполняемый файл M1.asm M2.asm M3.asm Tasm.exe M1.obj M2.obj M3.obj TLink.exe M.exe