→ Пошук по сайту       Увійти / Зареєструватися
Знання Операционные системы и память

Современные операционные системы

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

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

  • выполняемая программа;
  • данные, нужные для ее работы (переменные, рабочее пространство, буферы и т.д.);
  • состояние программы.

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

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

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

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

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

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

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

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

загрузка...
Сторінки, близькі за змістом