Системные программы, их классификация (системы программирования, операционные системы, обслуживающие программы). Функции операционных систем.


Системные программы: 1)      программы, которые решают языковую проблему общения с пользователем: а) языки программирования; б) библиотеки 2)      управляющие программы (ОС) 3)      обслуживающие (сервисные) программы, утилиты ОС – комплекс взаимосвязанных программ предназначенных для: 1) повышения эффективности аппаратуры ЭВМ путем рационального управления её ресурсами. 2) обеспечения удобств пользователю путем представления ему “виртуальной машины”. В ОС различного класса могут добавляться другие функции.

Функции ОС:

1) управление ресурсами ЭВМ. а) вычислительные ресурсы (процессор),    б) память (в том числе файлы). в) внешние устройства,                                 г) устройства ввода/вывода. д) данные Методы управления: а) ведет учет ресурсов б) удовлетворяет запросы на предоставление ресурсов в) арбитраж между процессами Критерии управления а) достижение максимальной производительности. б) минимальное время реакции системы на внешнее событие. 2) предоставление пользователю виртуальной машины со своим набором команд, удобным для человека (команды высокого уровня, взамен реальной ЭВМ с ограниченным набором команд). Сервис для оператора обеспечивается через программу-оболочку, shell (пример – командная строка ДОСа). API – Application Program Interface. Достоинства виртуальной машины: а) её легче программировать, чем программировать сам процессор. б) скрытие от программиста аппаратных особенностей ЭВМ. в) обеспечение переносимости программ и их независимости от аппаратуры. г) механизм системы вызовов предоставляет возможность пользовательским программам выполнять привилегированные (запрещенные) действия. д) API это способ управления, создания и уничтожения объектов ядра ОС. (пример: открытый файл, объект ядра и так далее). е) предоставление стандартизированного доступа к устройствам различных типов, доступа к устройствам как к файлам. Так например, дескриптор stdin = 0, stdout = 1, stderr = 2. В некоторых ОС возможны переназначения стандартных потоков ввода/вывода, например: Prog > fileout < filein (в данном случае поток вывода меняется на файл fileout, ввода – на filein) 3) определяет интерфейс пользователя (он так же может отсутствовать). 4) разделение ресурсов между процессами и пользователями (обеспечение многозадачного и многопользовательского режима работы) и организация взаимодействия задач. Осуществляется с помощью: а) разделяемой памяти, б) сообщения между процессами. в) канал  (pipe) – имеет точно такой же интерфейс, как и файлы. “Prog1 | Prog2” – переключение стандартного вывода первого процесса на стандартный ввод второго процесса. в) сокет – интерфейс с другой машиной. г) сигнал – похоже на прерывание, но на более высоком уровне. 5) организация межмашинного взаимодействия (сетевые и распределенные вычислительные системы). 6) защитная функция – защита самой ОС, пользовательских приложений и данных от действий пользователя и других программ, как ошибочных, так и злонамеренных. 7) средство обеспечения безопасности, разграничение прав пользователей. Принцип “3-х А”: а) аутентификация – проверка пользователя: login&password, б) авторизация – права пользователей, в) аудит – ведение журналов. 8) обеспечение отказоустойчивости системы и резервирование устройств, данных и так далее.

Классификация ОС:

1) по области применения: а) офисные, настольные: Windows, Linux. б) микроЭВМ: WindowsCE, PalmOS, Symbean, Linux. в) ОС для серверов, БД (требование – надежность): Unix и их клоны (HP, Solaris и так далее) г) промышленные ОС – ОС реального времени: QNX, Unix, DOS, WindowsCE (с 3-ей версии). д) цифровая обработка сигналов (ЦОС): SPOX, RTX. и так далее. 2) по набору реализуемых функций: а) общего назначения: Windows, Unix, MacOS. Признаки – многозадачность, многопользовательность, защита, виртуальная память, графический интерфейс, сетевые возможности. б) дисковые ОС – ОС с ограниченным набором функций – запуск процесса и доступ к файлам. в) ОС виртуальных машин. 3) по времени реакции на внешнее событие: а) системы жесткого реального времени (RT или РВ) – обеспечивается полная реентерабельность. Примеры: QNX, системы ЦОС. б) ОС мягкого реального времени – гарантируется среднее время реакции: Unix, DOS. в) ОС нереального времени – не гарантируется даже среднее время реакции, возможна даже утеря событий Windows. 4) по организации ядра: а) монолитное ядро – Unix, Windows, DOS. б) микроядро (очень маленькое ядро, а значит, может быть помещаться даже в КЭШе, в данном ядре присутствуют только функции для аппаратуры) – QNX