Управление выполнением программ

Средствами ОС обеспечиваются:

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

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

В однозадачных ОС (MS DOS, PC DOS, PTS-DOS, CP/M и др.) одновременно может выполняться только одна программа. Выполнение другой программы может начаться (продолжиться) только после завершения программы, выполняющейся в текущий момент. В многозадачных ОС (Windows 9x, ME, Mac OS) одновременно могут исполняться несколько программ. Многопользовательские ОС являются многозадачными, но дополнительно к этому имеют средства для разделения ресурсов не только между программами, но и различными пользователями. Например, они могут запретить программе, запущенной одним пользователем, обращаться к файлам, доступным только другим пользователям. К многопользовательским ОС относятся серверные модификации Windows NT/2000/XP, Novell Netware, почти все разновидности UNIX и многие другие ОС.

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

ОС обеспечивает разделение ресурсов ЭВМ между загруженными программами. Разделяются:

  • время использования процессора;
  • оперативная память;
  • возможности доступа к внешним устройствам;
  • возможности доступа файлам.

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

Приоритет программы- характеристика значимости программы с точки зрения ОС или пользователя ЭВМ.

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

Принцип работы виртуальной памяти таков. ОЗУ условно разделяется на страницы. Часть страниц размещается в реальной памяти, а часть - на диске. Если программа обращается к странице памяти, которая находится на диске, то ОС выгружает ненужные в данный момент страницы из реальной памяти на диск и загружает на это место нужные страницы с диска.

ОС обеспечивают обмен данными между прикладными программами.

В общем случае обмен данными может производиться:

  • через специальные файлы обмена (одна программа выгружает, а другая считывает данные);
  • через совместно используемые файлы общей базы данных;
  • через буфер промежуточного обмена;
  • c помощью высокоуровневых технологий межпрограммного обмена (DDE, OLE-automation, ODBC и др.)

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

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

В Windows организация межпрограммного взаимодействия прикладных программ реализуется через технологии ActiveX, COM (Component Object Model, компонентная объектная модель программ), DCOM (Distributed COM, распределенная объектная модель). COM и DCOM определяют принципы построения прикладных программ, при которых те или иные функции одних программ могут вызываться из других. При этом программы, поддерживающие DCOM, могут исполняться на разных компьютерах сети.