### Оглавление

Назад

Операционная Система Unix

В операционной системе UNIX процесс может быть создан единственным способом - системным вызовом порождения процесса fork, при этом процесс получает уникальный ненулевой целочисленный идентификатор, по которому система отличает его от других. При порождении создается точная копия порождающего процесса, после завершения функции fork оба процесса (порождающий и порожденный) продолжают выполнение с одинаковых точек. Процесс может узнать, является ли он отцом (по родившимся процессом) или ребенком (порожденным) по значению, возвращаемому функцией fork.

Функции семейства exec операционной системы UNIX позволяет передать управление другой программе, заменив текущий образ процесса образом новой программы, без создания нового процесса. При этом возврат к старому процессу невозможен.

В MS-DOS программа может быть загружена в память с немедленным запуском (запуск начинается с первой инструкции) или без запуска (оверлей) на выполнение, при этом для каждой программы в начале ее рабочей памяти создается специальная управляющая структура PSP - program segment prefix, которая отвечает за передачу управления в и из программы, хранит информацию об открытых файлах, параметрах, переданных программе при вызове.

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

Процесс (программа) завершаются нормальным образом по своей инициативе (вызовом специальной функции в UNIX, системным прерыванием в MS-DOS) и возвращают отцу код завершения, или аварийным образом - получив сигнал.

Распределение памяти

Распределение памяти неразрывно связано с механизмом процессов (программ).

MS-DOS является однозадачной однопользовательской системой, и поэтому программе гарантировано монопольное владение всеми ресурсами (в частности памятью); программа, работающая в среде MS-DOS, должна сама заботится о распределении памяти. При запуске новой программы, запускающая программа должна освободить столько памяти, сколько необходимо для загрузки запускаемой программы, посредством вызова специальной системной функции.

Системные функции UNIX обеспечивают выделение, изменение размера и освобождение участков памяти.

Сигнальный механизм

Сигнальный механизм UNIX (в MS-DOS не документирован и не стандартизирован) позволяет процессам и операционной системе обмениваться информацией в реальном масштабе времени.

Сигналы различаются своими номерами - целыми числами, начиная с 1 (сигнал 0 - зарезервирован). Среди них: аварийное завершение, арифметическая исключительная ситуация, разрыв связи, недопустимая инструкция, нарушение защиты памяти, запись в программный канал, не открытый для чтения, а также различные сигналы завершении. Кроме стандартных сигналов, процесс может определить собственные -'пользовательские' сигналы.

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

На каждый сигнал, определенный в системе, процесс должен иметь реакцию - действие, которое он выполняет при получении сигнала. Когда вызывается определенная для данного процесса и сигнала реакция, считается, что сигнал передан процессу, которому он был предназначен.

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

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

Допустимы три вида реакции на сигнал: игнорирование, перехват и стандартная реакция системы, перехват и вызов функции внутри процесса. Перехват и игнорирование сигналов приостановки и уничтожения процесса невозможны.

Многопользовательская зашита (Только Ос Unix)

Пользователи, которым разрешено входить в систему, перечислены в учетной базе пользователей. Пользователи объединены в группы; последние перечислены в учетной базе групп. Каждому пользователю и каждой группе присвоены целочисленные идентификаторы.

Входя в систему, пользователь сообщает ей свое имя, по которому определяется его идентификатор и права доступа. Вызывая команды, пользователь тем самым порождает процессы, которые наследуют его права, пользовательский и групповой идентификаторы.

С каждым файлом связана пара идентификаторов: пользовательский и групповой. Файл наследует эти идентификаторы от эффективных идентификаторов процесса, создавшего данный файл. Процесс, эффективный пользовательский идентификатор которого совпадает с пользовательским идентификатором файла, считается владельцем данного файла.

Файл можно читать, писать и выполнять. Если файл является каталогом, выполнение означает поиск в нем. Права процессов при доступе к файлу хранятся в атрибутах защиты файла. Эти атрибуты при создании файла, могут быть изменены только имея соответствующие права.

Проверка прав происходит, когда процесс пытается открыть файл для чтения или записи, выполнить его.

Все пользователи, имеющие доступ в систему, разделены по отношению к файлу на три категории: владельцев (эффективный пользовательский идентификатор процесса совпадает с пользовательским идентификатором файла), членов группы (эффективный групповой идентификатор процесса совпадает с групповым идентификатором файла) и прочих.

Процесс может иметь зависящие от реализации привилегии, которые дают ему дополнительные права при доступе к файлу.

Если процесс не имеет привилегий, то ему разрешается доступ к файлу в трех случаях:

- процесс является владельцем файла (см. выше) и атрибуты защиты файла разрешают запрашиваемый вид действия владельцу;

- эффективный групповой идентификатор процесса совпадает с
  групповым идентификатором файла и атрибуты файла разрешают
  запрашиваемый вид действия группе;
- атрибуты файла разрешают запрашиваемый вид действия всем
  процессам.

Если ни одно из условий не выполняется, то процесс не получает доступ к файлу.

Системные вызовы операционной системы UNIX обеспечивают: получение информации о пользователях и группах в учетной базе (при наличии соответствующих привилегий) и получение информации о защите конкретного файла.

Файловая система

За основу файловой системы MS-DOS была взята файловая система UNIX, поэтому они очень похожи.

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

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

Обе операционные системы обеспечивают смену и получение имени текущего каталога, создание, удаление, переименование и перемещение файлов и каталогов, получение информации о файле или каталоге (размер, дату, время последней модификации; UNIX дополнительно обеспечивает информацию о разграничении доступа). UNIX обеспечивает создание и удаление связей файла (см.

выше).

Базовый ввод-вывод

Базовый уровень в обеих системах обеспечивает обмен с файлом, интерпретируемым как одномерный массив батов с прямым последовательным доступом.

Для каждого файла система ведет указатель чтения /записи. При чтении (записи) п байтов указатель продвигается вперед по файлу на п байтов и устанавливается в позицию очередного читаемого (записываемого) символа.

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

При записи в файл записываются очередные байты, расположенные в памяти процесса. Если возвращаемое после записи значение не равно числу записываемых байтов, это свидетельствует об ошибке. Если очередной записываемый байт оказывается за концом файла, то обеспечивается соответствующее увеличение размера файла.

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

Процесс может управлять открытым файлом, получая и задавая значения его атрибутов, а также блокируя участки файла от доступа к ним других процессов (в MS-DOS возможна только блокировка файла целиком).

По окончании работы с файлом, его следует закрыть. При завершении программы, все открытые файлы закрываются автоматически.

Особенность каталога состоит в том, что запись в него может делать только система - программа может только читать элементы каталога. MS-DOS, в отличие от UNIX, позволяет искать в каталогах файлы по маске.

Стандартный буфферизированныи Ввод/Вывод

Стандартный буферизированный ввод-вывод является надстройкой над базовым уровнем. Подобно базовому уровню, он интерпретирует файл (поток, в терминах данного уровня), как одномерный массив байтов с прямым доступом.

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

Когда процесс начинает работу, он получает открытыми в обеих системах 3 стандартных потока: стандартный ввод ('stdiri - в UNIX, 'CON

1 - канал 0 в MS-DOS), стандартный вывод ('stdout1 - в UNIX, 'CON1 - канал 1 в MS-DOS), стандартную диагностику ('stderr' - в UNIX, канал 2 в MS-DOS).MS-DOS предоставляет дополнительно еще 3 стандартных потока - канал связи ('AUX' - канал 3) и стандартное устройство печати ('PRN1 - канал 4). Стандартный ввод используется как устройство чтения по умолчанию, стандартный вывод - как устройство записи по умолчанию, стандартная диагностика - для вывода сообщений об ошибках.

В обеих операционных системах средства ввода-вывода буферизированного обмена позволяют передавать символы, символьные строки, форматировать выводимую информацию. Как и на базовом уровне возможна установка позиции в потоке.

UNIX предоставляет широчайшие возможности по форматному вводу-выводу чисел: знаковый и беззнаковый форматы различной точности; преобразование и ввод/вывод в различных системах исчисления, в нормализованном представлении; вывод чисел, адресованных с помощью указателя и т. д. В операционных системах семейства MS-DOS специальных функций ввода/вывода чисел нет.

Арифметические вычисления

UNIX, имеет обширный набор математических функций для работы с действительными числами двойной точности: все тригонометрические и гиперболические функции, возведение в степень, взятие логарифма, вычисление остатка, взятие целых и дробных частей, взятие модуля числа, генерация псевдослучайных чисел. Имеются также функции целочисленного деления и вычисления модуля числа.

MS-DOS не предоставляет никаких системных вызовов для поддержки математических вычислений.

Операции с символьными данными и строками

Обе операционные системы предоставляют системные функции для преобразования строк к верхнему и нижнему регистрам, копирование, сравнение, поиск и транслитерацию строк.

UNIX дополнительно обеспечивает перевод строки символов в число и наоборот, определение типа символа (печатаемый или непечатаемый, управляющий или нет, и т.д.).

Системное время

Обе операционные системы предоставляют программе пользователя возможность узнать текущие дату и время, соответствующие григорианскому календарю. За начало отсчета в MS-DOS принята дата 1 января 1980 г. О часов 0 минут 0 секунд по Гринвичу, в UNIX 1 января 1970 г. Обе системы предоставляют возможность измерения временных интервалов короче 1 секунды с помощью специальных системных вызовов. UNIX может переводить дату и время из внутреннего числового представления в символьное (пригодное к выводу, например, на терминал); местное время в время по Гринвичу и наоборот; предоставлять информацию о часовом поясе, летнем и зимнем времени.

Конфигурация системы

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

В обеих системах имеются средства локализации, позволяющие настроить систему на конкретное национальное (местное) представление данных: представление десятичных дробей, денежных величин, даты и времени.

Рассмотрим программные интерфейсы Microsoft Windows, OS/2 и UNIX (согласно стандарту POSIX) для персональных ЭВМ, совместимых с IBM PC.

Общие сведения

Все рассматриваемые операционные системы работают в многозадачном однопользовательском режиме работы (UNIX также поддерживает и многопользовательский режим); поддерживают иерархическую файловую систему, межпроцессное взаимодействие, встроенные средства отладки программ, стандартизируют программный интерфейс для многих внешних устройств,

обычно трактуя их как файлы с последовательным доступом.

Управление памятью

Все рассматриваемые операционные системы обеспечивают выделение участка памяти для нужд программы, изменение его размера и освобождение. По-разному поддерживается концепция виртуальной памяти.

Операционная система OS/2 использует страничную модель памяти, то есть программа получает память порциями по 4 кб; подкачка также осуществляется порциями по 4 кб. Программа не может управлять процессом подкачки.

Важной особенностью OS/2 является возможность создания специальных разделяемых областей памяти, которые могут использоваться для меж процессного взаимодействия ( см. гл. межпроцессное взаимодействие).

Microsoft Windows использует сегментированную модель память. Исторически сложилось так, что ОС (а, точнее, программная оболочка) Microsoft Windows до разработки процессора 80386 работала в реальном режиме ('real mode') и защищенном режиме 80286-го процессора ('standart mode'). В реальном режиме механизм подкачки не использовался; при наличии 286-го процессора ОС позволяла выгружать на диск только MS-DOS-освские программы. С появлением процессора 80386 и использованием его защищенного режима, возможности использования виртуальной памяти резко расширились: появилась возможность выгрузить на диск любой сегмент памяти компьютера. С помощью системных вызовов, программа пользователя может управлять многими нюансами распределения памяти: разрешением на выгрузку страницы, сборкой мусора, перемещением объектов в памяти.

Файловая система

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

ОС UNIX характеризуется единственной однородной файловой системой на один или несколько компьютеров. В Microsoft Windows и OS/2 файловые системы ассоциируются с носителями (посредством логических имен - букв латинского алфавита).

Операционная система OS/2, кроме того, поддерживает свою файловую систему - HPFS (High Performance File System -высокопроизводительная файловая система), характеризующаяся хранением имен файлов и каталогов в виде В-дерева.

Внешние устройства ( такие как терминал, принтер) так же часто представляются как файлы для упрощения работы с ними.

Операционные системы предоставляют следующие системные вызовы: запрос на смену и получение имени текущего каталога; создание, открытие, закрытие, удаление, переименование и получение информации о файле или каталоге, позиционирование в них.

Все рассматриваемые операционные системы поддерживают операции блокировки файла для защиты доступа к нему со стороны других процессов в многозадачной среде.

Управление процессами

Единицей управления и потребления ресурсов в многозадачной системе является процесс. В частности, ввод-вывод выполняется синхронно, и процесс приостанавливается до его завершения. Если требуется продолжить выполнение процесса параллельно с инициированным им вводом-выводом, нужно предварительно породить другой процесс для реализации ввода-вывода. Microsoft Windows, OS/2 и UNIX предоставляют сходные системные вызовы для

обслуживания и управления процессами ('сессия' в OS/2): порождение, уничтожение.

OS/2 предоставляет гораздо более широкий спектр системных

вызовов для управления процессами. В OS/2 существуют три вида процессов: нити (цепи или треды), 'настоящие1 процессы и экранные группы. Экранные группы - наиболее независимый тип процессов. Каждая экранная группа имеет свою собственную виртуальную консоль, адресное пространство, открытые файлы, очереди и каналы (см. ниже). Внутри экранной группы могут находится один или более 'настоящих1 процессов, у каждого из которых могут быть свои открытые файлы и свое адресное пространство. Нити - самый простой класс процессов, они имеют только свое собственное адресное пространство, а все остальные ресурсы наследуют от породившего их 'настоящего' процесса. В операционной системе OS/2 планировщик задач может выделять 'настоящим' процессам кванты времени по двум алгоритмам: динамического и абсолютного приоритетов. Алгоритм динамического приоритета выражается: система подсчитывает интенсивность операций ввода-вывода, использования процессорного времени, и по ним определяет количество квантов времени, предоставляемых процессу. При использовании абсолютных приоритетов ОС распределяет кванты времени согласно числовым значениям, заданным при старте процесса. Процесс может изменять свой приоритет в небольших пределах с помощью системной функции.

В Microsoft Windows планировщика задач распределяет кванты процессорного времени аналогично алгоритму абсолютных приоритетов в операционной системе OS/2. Программа никак не может повлиять на количество предоставляемого ей процессорного времени.

В операционной системе UNIX алгоритм работы планировщика задач зависит от реализации.

Межпроцессное взаимодействие

Операционные системы используют разные термины для определения способов межпроцессного взаимодействия.

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

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

Операционная система OS/2 предоставляет три типа межпроцессного взаимодействия: каналы, очереди и семафоры.

Канал представлет собой кольцевой буфер с двумя указателями -начала и конца; используется для перенаправления ввода-вывода и стандартных файлов между процессами. Только два процесса могут читать или писать в канал - сервер и клиент.

Очередь - это упорядоченный список из 32-битных значений, интерпретируемых процессом по контексту (это может быть целое, указатель на общую область памяти или просто флаг). Любой процесс может прочесть информацию из канала в любом порядке или записать туда любую информацию.

Семафор - это объект, имеющий два устойчивых состояния (рабочее и нерабочее) и используемый для синхронизации исполнения процессов. Существует несколько видов семафоров: семафор событий, взаимного исключения, взаимного ожидания и именованный.

Когда семафор событий находится в нерабочем состоянии, операционная система блокирует исполнение всех процессов, которые запрашивают состояние семафора.

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

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

Реакция на именованный семафор зависит от процессов, совместно использующих его.

В операционных системах OS/2 и Microsoft Windows существует специальный механизм для взаимодействия процессов в реальном масштабе времени. Этот механизм называется DDE (Dynamic Data Exchange - динамический обмен данными). Он стандартизирует процесс обмена командами, сообщениями и объектами для обработки между задачами. Наиболее распространенные действия, для которых используются DDE - печать.

Другим интерфейсом для обмена данными является OLE (Object Linking and Embedding - объектное связывание со встраиванием). Этот интерфейс позволяет хранить объекты, созданные одной программой, в объектах, созданных другой программой, а также редактировать (печатать) их без нарушения целостности информации и связей.

Одним из наиболее простых, удобных и интуитивных интерфейсов межпрограммного взаимодействия является буфер обмена - Clipboard. Буфер обмена может содержать в себе один информационный объект -кусок текста, картинку и т.д. С помощью системного вызова процесс может получить копию информации, содержащейся в буфере обмена или сам поместить объект в буфер, при этом старое содержимое буфера теряется. Таким образом программы получают простой, но эффективный способ обмена информацией в процессе своей работы.

Операционная система UNIX не предоставляет этого способа обмена информацией, Microsoft Windows же позволяет задачам обмениваться информацией таким образом даже в DOS-сессиях.

Графический интерфейс пользователя

Графический интерфейс пользователя изначально был несвойственен неигровым программам, однако будучи призванным облегчить общение пользователя с компьютером и программой, хорошо прижился на IBM PC и стал неотъемлемой частью любой уважающей себя операционной системы.

Оболочка Microsoft Windows не была изначально операционной системой, да и сейчас не может считаться в полноценной операционной системой, так как она существует 'поверх' операционной системы типа MS-DOS. Она возникла в виде стандартизатора графического интерфейса и прижилась исключительно потому, что пользователь хотел видеть программу, с которой ему часто приходится работать красивой, практичной, удобной и легкой в освоении и использовании.

Для ОС UNIX также был создан специальный графический интерфейс - X-Windows; промышленный гигант - фирма IBM

выпустила вместе с операционной системой OS/2 свой вариант графического интерфейса пользователя (GUI - G

raphics User Interface) -Presentation Manager.

Функции используемые программой пользователя при работе с графическим пользовательским интерфейсом схожи, как и сами интерфейсы.

После запуска программа обычно создает одно окно с которым она ассоциируется и работает. Пользователь, работая с окном и находящимися в нем объектами заставляет операционную систему (или программную оболочку) посылать программе сообщения, активизирующие необходимые пользователю возможности программы. В процессе работы программа также

может создавать другие окна (выбора, диалога, обрабатываемого файла и др.) и получать от них сообщения, таким образом стандартизируется часто используемые элементы диалога с пользователем.

Операционная система (оболочка), ориентированная на графический интерфейс пользователя, предоставляет не только функции, поддерживающие ввод-вывод, но и широкий спектр системных вызовов, позволяющих использовать различные графические примитивы: от самых простых ( точки, линии, дуги) до самых сложных ( области, окна, курсоры ). Основным преимуществом использования графического интерфейса операционной системы является то, что с помощью него программа может создавать графические изображения, которые будут выглядеть одинаково на всех устройствах, поддерживаемых операционной системой ( принцип What We See Is What We Get - что видим, то и получаем ).

Большое внимание в графическом интерфейсе операционной системы обычно уделяется шрифтам. Исторически сложилось так, что первыми и долгое время единственными шрифтами для компьютеров оставались растровые (точечно-матричные) шрифты. Такие шрифты занимали малый объем памяти, однако, их невозможно было вращать, наклонять, уменьшать, без искажений, а увеличивать можно было только в целое число раз. С появлением графического интерфейса, операционные системы стали предоставлять системные вызовы для поддержки использования векторных шрифтов, которые не только легко масштабируются, меняют наклон и толщину, но и выглядят одинаково на всех устройствах, поддерживаемых операционной системой. Каждая операционная система поддерживает свой стандарт векторных шрифтов (TrueType для Microsoft Windows; Adobe Type Manager для OS/2; GhostScript для LINUX).

Объектно-ориентированное программирование и операционные системы

Использование объектно-ориентированного подхода к разработке программ не могло не оказать своего влияния на операционную систему. Графический интерфейс пользователя и программный интерфейс операционной системы начали также использовать объектно-ориентированный подход.

Наиболее развитый объектно-ориентированный программный интерфейс имеет операционная система OS/2. Все графические и программные примитивы представляются в ней в виде объектов (память, дисплей, принтер, папка, звуковая карта, дисковод - все это -объекты).Однако, объектно-ориентированный подход неэффективно использует ресурсы памяти, поэтому использование операционной системы OS/2 на компьютерах с 4 мб памяти (на одном из таких писался данный реферат) затруднительно.

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