Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OTVYeT_34-49.docx
Скачиваний:
7
Добавлен:
06.12.2018
Размер:
70.41 Кб
Скачать

38)Сервисы и дополнительные функции операционной системы.

Сервисы (службы) ОС

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

Исполнение программ – загрузка программы в память и ее выполнение; например, в Windows при запуске программы ОС находит в файле ее двоичного кода (.exe) так называемую заглушку для исполнения (execution stub), содержащую ссылку на код головного метода main, и запускает его. В среде .NET этот же execution stub в файле двоичного кода используется системой для вызова не непосредственно исполняемой программы, а общего окружения времени выполнения – Common Language Runtime (CLR), которое обеспечивает особый режим (managed execution) выполнения программы.

Поддержка ввода-вывода – обеспечение интерфейса для работы программ с устройствами ввода-вывода. Например, в UNIX у каждой программы есть свой стандартный ввод и стандартный вывод (по умолчанию это терминал). В более старых ОС, например, IBM 360, привязку программы к устройствам ввода-вывода требовалось специфицировать с помощью громоздких DD (Data Definition) – предложений на специальном языке управления заданиями.

Работа с файловой системой – предоставление программам интерфейса для создания, именования, удаления файлов. Об этом уже много говорилось выше.

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

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

Дополнительные функции ОС

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

Распределение ресурсов между пользователями, программами и процессами, работающими одновременно.

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

Защита – обеспечение того, чтобы доступ к любым ресурсам был контролируемым.

39)Системные вызовы, их основные виды.

Системные вызовы (system calls) являются интерфейсом между выполняемой программой и операционной системой

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

Некоторые языки (C, C++, Java и др.) позволяют выполнять системные вызовы непосредственно, не "опускаясь" до ассемблерного уровня, с помощью вызовов специальных библиотечных функций (методов) типа System("cd my_dir").

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

  • Передача параметров в регистрах; например, в IBM 360 системная макрокоманда GETMAIN выделения области основной памяти ожидает, что ей в регистре номер 1 передана длина требуемой области памяти, а сама макрокоманда в результате своего выполнения записывает также в первый регистр адрес выделенной области основной памяти. Очевидно, что подобный интерфейс не вполне надежен – слишком много не очевидных умолчаний. А вдруг программист по ошибке запишет длину области памяти не в первый, а во второй регистр? Об этой ошибке никто ему не подскажет, и результат будет бессмысленным.

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

  • Запись (проталкивание) параметров в стек программой и чтение (выталкивание) их из стека операционной системой. Такой способ гораздо лучше, так как он является стандартным способом передачи параметров при любом вызове процедуры или метода.

Различаются следующие основные виды системных вызовов:

  • Управление процессами; например, в UNIX системный вызов fork создает новый параллельный процесс с новым пространством виртуальных адресов.

  • Управление файлами; например, в UNIX системный вызов open (f, "rw") осуществляет открытие заданного файла для чтения и записи.

  • Управление устройствами; например, системный вызов rewind осуществляет перемотку (позиционирование) магнитной ленты на начало.

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

  • Коммуникации; например, системный вызов CreateSocket создает новый сокет – системную структуру для обмена информацией клиента с сервером через TCP/IP – сеть.

Из примеров нетрудно видеть, что многие из этих возможностей ОС доступны также в виде выполняемых команд.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]