Системы программирования
Системное ПО
Основные понятия. 1
Операционная система (ОС) 1
Система управления файлами. 2
Интерфейсная оболочка. 2
Системы программирования. 2
Утилиты.. 3
Понятие операционной среды.. 3
Понятие вычислительного процесса и ресурса. 4
Диаграмма состояния процесса. 6
Реализация понятия последовательного процесса в ОС (дескрипторы задач) 7
Процессы и потоки. 7
Прерывание. 8
Основные виды ресурсов. 9
Классификация ОС.. 10
Основные понятия
В англоязычной технической литературе термин System Software (системное программное обеспечение) означает программы и комплексы программ, являющиеся общими для всех, кто совместно использует технические средства компьютера, и применяемые как для автоматизации разработки (создания) новых программ, так и для организации выполнения программ существующих. С этих позиций системное программное обеспечение может быть разделено на следующие пять групп:
1. Операционные системы.
2. Системы управления файлами.
3. Интерфейсные оболочки для взаимодействия пользователя с ОС и программные среды.
4. Системы программирования.
5. Утилиты.
Рассмотрим вкратце эти группы системных программ.
Рис.1. Обобщенная структура программного обеспечения вычислительной системы
Операционная система (ОС)
ОС - комплекс управляющих и обрабатывающих программ, который:
· выступает как интерфейс между аппаратурой компьютера и пользователем с его задачами
· предназначен для наиболее эффективного использования ресурсов вычислительной системы и организации надежных вычислений
Любой из компонентов прикладного программного обеспечения обязательно работает под управлением ОС.
Основные функции ОС:
* прием от пользователя (или от оператора системы) заданий или команд, сформулированных на соответствующем языке — в виде директив (команд) оператора или в виде указаний (своеобразных команд) с помощью соответствующего манипулятора (например, с помощью мыши), — и их обработка;
* прием и исполнение программных запросов на запуск, приостановку, остановку других программ;
* загрузка в оперативную память подлежащих исполнению программ;
* инициация программы (передача ей управления, в результате чего процессор исполняет программу);
* идентификация всех программ и данных;
* обеспечение работы систем управлений файлами (СУФ) и/или систем управления базами данных (СУБД), что позволяет резко увеличить эффективность всего программного обеспечения;
* обеспечение режима мультипрограммирования, то есть выполнение двух или более программ на одном процессоре, создающее видимость их одновременного исполнения;
* обеспечение функций по организации и управлению всеми операциями ввода/вывода;
* удовлетворение жестким ограничениям на время ответа в режиме реального времени (характерно для соответствующих ОС);
* распределение памяти, а в большинстве современных систем и организация виртуальной памяти;
* планирование и диспетчеризация задач в соответствии с заданными стратегией и дисциплинами обслуживания;
* организация механизмов обмена сообщениями и данными между выполняющимися программами;
* защита одной программы от влияния другой; обеспечение сохранности данных;
* предоставление услуг на случай частичного сбоя системы;
* обеспечение работы систем программирования, с помощью которых пользователи готовят свои программы.
Система управления файлами
СУФ предназначена для организации удобного доступа к данным, организованным как файлы.
СУФ вместо низкоуровневого доступа к данным с указание физических адресов предлагает использовать логический доступ, с указанием имени файла и записи в нем. Ряд ОС позволяют работать с несколькими файловыми системами (либо с одной из них или с несколькими одновременно). В этом случае говорят о монтированных файловых системах. Имеются простейшие ОС, которые могут работать без файловых систем. Но каждая СУФ разрабатывается для работы с конкретной ОС и с конкретной файловой системой.
Известная файловая система FAT имеет много реализаций: FAT16- MSDOS, SuperFAT- OS/2, FAT32-Windows98.
Интерфейсная оболочка
Для удобства взаимодействия с ОС могут использоваться дополнительные интерфейсные оболочки. Их основное назначение — либо расширить возможности по управлению ОС, либо изменить встроенные в систему возможности. В качестве классических примеров интерфейсных оболочек и соответствующих операционных сред выполнения программ можно назвать различные варианты графического интерфейса X Window в системах семейства UNIX например, К Desktop Environment в Linux), PM Shell или Object Desktop DS/2 с графическим интерфейсом Presentation Manager; наконец, можно показать разнообразные варианты интерфейсов для семейства ОС Windows компании Microsoft, которые заменяют Explorer и могут напоминать либо MIX с его графическим интерфейсом, либо OS/2, либо MAC OS. Следует метить, что о семействе ОС компании Microsoft с общим интерфейсом, реализуемым программными модулями с названием Explorer (в файле system.ini, который находится в каталоге Windows, имеется строка SHELL=EXPLORER.EXE), всё же можно сказать, что заменяемой в этих системах является только интерфейсная оболочка, в то время как сама операционная среда остается неизменной; она интегрирована в ОС. Другими словами, операционная среда определяется программными интерфейсами, то есть API (application program interface). Интерфейс прикладного программирования (API) включает в себя управление процессами, памятью и вводом/выводом.
Ряд операционных систем могут организовывать выполнение программ, созданных для других ОС. Например, в OS/2 можно выполнять как программы, созданные для самой OS/2, так и программы, предназначенные для выполнения в среде MS-DOS и Windows 3.x. Соответствующая операционная среда организуется в операционной системе в рамках отдельной виртуальной машины. Аналогично, в системе Linux можно создать условия для выполнения некоторых программ, написанных для Windows 95/98. Определенными возможностями исполнения программ, созданных для иной операционной среды, обладает и Windows NT. Эта система позволяет выполнять некоторые программы, созданные для MS-DOS, OS/2 1.x, Windows 3.x. Правда, в своем последнем семействе ОС Windows XP разработчики решили отказаться от поддержки возможности выполнения DOS-программ.
Наконец, к этому классу системного программного обеспечения следует отнести и эмуляторы, позволяющие смоделировать в одной операционной системе какую-либо другую машину или операционную систему. Так, известна система эмуляции WMWARE, которая позволяет запустить в среде Linux любую другую ОС, например Windows. Можно, наоборот, создать эмулятор, работающий в среде Windows, который позволит смоделировать компьютер, работающий под управлением любой ОС, в том числе и под Linux, таким образом, термин операционная среда означает соответствующий интерфейс, необходимый программам для обращения к ОС с целью получить определенный сервис (Сервис (service) — обслуживание, выполнение соответствующего запроса) — выполнить операцию ввода/вывода, получить или освободить участок памяти и т. д.
Системы программирования
Система программирования представлена прежде всего такими компонентами, как транслятор с соответствующего языка, библиотеки подпрограмм, редакторы, компоновщики и отладчики. Не бывает самостоятельных (оторванных от ОС) систем программирования. Любая система программирования может работать только в соответствующей ОС, под которую она и создана, однако при этом она может позволять разрабатывать программное обеспечение и под другие ОС. Например, одна из популярных систем программирования на языке C/C++ от фирмы Watcom для OS/2 позволяет получать программы и для самой OS/2, и для DOS, и для Windows.
В том случае, когда создаваемые программы должны работать совсем на другой аппаратной базе, говорят о кросс-системах. Так, для ПК на базе микропроцессоров семейства i80x86 имеется большое количество кросс-систем, позволяющих создавать программное обеспечение для различных микропроцессоров и микроконтроллеров.
Утилиты
Под утилитами понимают специальные системные программы, с помощью которых можно как обслуживать саму операционную систему, так и подготавливать для работы носители данных, выполнять перекодирование данных, осуществлять оптимизацию размещения данных на носителе и производить некоторые другие работы, связанные с обслуживанием вычислительной системы. К утилитам следует отнести и программу разбиения накопителя на магнитных дисках на разделы, и программу форматирования, и программу переноса основных системных файлов самой ОС. Также к утилитам относятся и небезызвестные комплексы программ от фирмы Symantec, носящие имя Питера Нортона (создателя этой фирмы и соавтора популярного набора утилит для первых IBM PC). Естественно, что утилиты могут работать только в соответствующей операционной среде.