|
Современные операционные системы
ADO в Delphi AJAX Android C++ CakePHP CMS COM CSS Delphi Flash Flex HTML Internet Java JavaScript MySQL PHP RIA SCORM Silverlight SQL UML XML Бази даних Веб-розробка Генетичні алгоритми ГІС Гітара Дизайн Економіка Інтелектуальні СДН Колір Масаж Математика Медицина Музика Нечітка логіка ООП Патерни Подання знань Розкрутка сайту, SEO САПР Сесії в PHP Системне програмування Системний аналіз Тестологія Тестування ПЗ Фреймворки Штучний інтелект
|
Современные операционные системыОперационные системы относят к числу самых сложных программных комплексов. Это связано со стремлением разработчиков сделать системы максимально удовлетворяющие требованиям удобства работы и эффективности, но при этом они не должны утратить способности к дальнейшему совершенствованию. В процессе развития операционных систем были проведены исследования на нескольких основных направлениях. Одной из главных концепций, лежащих в основе операционных систем, является концепция процессов. Этот термин впервые был применен в 60-х годах и с тех пор широко используется. В разных операционных системах под процессом понимают несколько отличающиеся действия операционных систем. Но в первом приближении процесс можно разделить на три компонента:
Таким образом, процесс реализуется в виде структуры данных. Он может выполняться или находиться в состоянии ожидания. Состояние процесса в каждый момент времени заносится в специально отведенную область данных. Использование структуры позволяет развивать мощные методы координации и взаимодействия процессов. Четкое обоснование понятия процесса позволило решить проблемы, возникающие на этапе развития операционных систем и связанных с распределением времени и синхронизацией. Были разработаны системы групповой обработки нескольких программ, при этом процессы могли запускаться в режиме разделения времени и транзакций одновременно. В ответ на сигналы, сообщающие о завершении транзакций ввода-вывода, процессор переключается с одной программы на другую. Следующим направлением развития являются системы разделения времени. Основная цель их разработки — удовлетворение потребностей каждого пользователя при условии их одновременной работы на компьютере. В этих системах используется тот факт, что пользователь реагирует на события намного медленнее, чем компьютер. Еще одним важным направлением развития являются системы обработки транзакций в реальном времени. При этом необходимо учитывать то, что большое число пользователей могут одновременно отправлять запросы в базу данных или вносить в нее изменения, и при этом не должно быть большой задержки с ответом. Прерывание стало важным инструментом, которое могли использовать системные программисты уже на ранних стадиях развития многозадачных и многопользовательских интерактивных систем. Выполнение любого задания может быть прервано при наступлении определенного события, например завершения ввода-вывода. При этом процессор сохраняет информацию о текущем состоянии программы и переключается на выполнение программы обработки прерываний, которая выясняет причину прерывания, обрабатывает его, а затем возобновляет исполнение прерванной программы. Устройство системного программного обеспечения, координирующего подобные процессы, оказалось очень сложным. При одновременной обработке многих заданий, каждое из которых включает в себя трудно предсказуемую последовательность действий, нельзя проанализировать все возможные комбинации. При малейших нарушениях в системе синхронизации система выходила из строя. Возникали трудности и с совместно используемым ресурсом, когда к нему одновременно пытаются обратиться несколько пользователей или несколько программ. Для корректной работы потребовалось разработать механизм взаимного исключения, позволяющий в каждый момент времени выполнять транзакцию только одной программе. Но в правильность реализации такого взаимного исключения при всех возможных последовательностях событий крайне трудно проверить. Также необходимо было учитывать непредсказуемое поведение программы. В условиях совместного использования памяти и процессора программы могут влиять на работу друг друга, переписывая общие области памяти непредсказуемым образом. При этом результат работы программ может зависеть от порядка, в котором они выполняются. Или ситуации, когда две или большее число программ зависают, ожидая действий друг друга. Например, двум программам может понадобиться, чтобы устройства ввода-вывода выполнили копирование с диска на магнитную ленту. Одна из этих программ управляет одним из устройств, а другая — другим. Каждая из них ждет, пока другая программа освободит нужный ресурс. Зверніть увагу на додаткові посиланняЯкщо вас цікавить...Головний розділзагрузка...
|
Сторінки, близькі за змістом
|
|
Copyright © 2008—2026 Портал Знань.
При використанні матеріалів посилання, для інтернет-ресурсів — гіперпосилання, на Znannya.org обов'язкове.
Зв'язок
|
НТУУ "КПІ" Інженерія програмного забезпечення КПІ Лабораторія СЕТ |
|