Для выполнения на компьютере какой-либо программы необходимо, чтобы она имела доступ к ресурсам компьютера

Вид материалаДокументы
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   16
Виды многопоточности:
Переключательная многопоточность. Основа – резидентные программы. Программа размещалась в памяти компьютера вплоть до перезагрузки системы, и управление ей передавалось каким-либо заранее согласованным способом.
Совместная многопоточность. Передача управления от одной программы другой. При этом возвращение управления – это проблема выполняемой программы. Возможность блокировки, при которой аварийно завершаются ВСЕ программы.
Вытесняющая многопоточность. ОС централизованно выделяет всем запущенным приложениям определенный квант времени для выполнения в соответствии с приоритетом приложения. Реальная возможность работы нескольких приложений в ПСЕВДОПАРАЛЛЕЛЬНОМ режиме. "Зависание" одного приложения не является крахом для всей системы и оставшихся приложений.



13.Архитектура микроядерных ОС, их свойства
В микроядерной архитектуре реализована минимальная часть функций ядра операционной системы.
Классические микроядра предоставляют лишь очень небольшой набор низкоуровневых примитивов, или системных вызовов, реализующих базовые сервисы операционной системы.
Сюда относятся:
управление адресным пространством оперативной памяти.
управление адресным пространством виртуальной памяти.
управление процессами и тредами (нитями, потоками).
средства межпроцессной коммуникации.
Все остальные сервисы ОС, в классических монолитных ядрах предоставляемые непосредственно ядром, в микроядерных архитектурах реализуются в адресном пространстве пользователя и называются сервисами. Примерами таких сервисов, выносимых в пространство пользователя в микроядерных архитектурах, являются сетевые сервисы, файловая система, драйверы.
Главным в микроядре являются механизмы межпроцессного взаимодействия (IPC). Микроядро в своем идеальном проявлении состоит только из средств IPC (взаимодействие приложений с ядром тоже осуществляется при помощи тех же средств)
Преимущества микроядерных систем:
Самое главное преимущество - чрезвычайно высокая степень модульности и расширяемости. Любые возможности операционной системы определяются лишь приложением пользовательского режима.
Стабильность и безопасность. Эти два свойства системы зависят только от микроядра, небольшое количество кода которого во первых позволяет тщательно отладить код, а во вторых доказать безопасность микроядра формальными, математическими методами. Остальные компоненты не являются критическими, и их можно легко перезапустить в случае сбоя.
Простота программирования. Обычно программирование под какую-либо систему, и программирование этой же самой системы сильно различаются (это связано с тем, что "внутри" монолитного ядра применяются свои собственные функции выделения памяти, взаимодействия между различными частями ядра и пр., но для приложений механизм системных вызовов предоставляет совершенно другие функции). В случае же микроядра, хоть драйвер, хоть бухгалтерская программа равны в своих правах и могут использовать одни и те же механизмы. В то же время микроядерная архитектура операционной системы вносит дополнительные накладные расходы, связанные с передачей сообщений, что отрицательно влияет на производительность.
14 . Потоки в ОС семейства Windows
Классический процесс содержит в своем адресном пространстве одну программу. Однако во многих ситуациях целесообразно поддерживать в едином адресном пространстве процесса несколько выполняющихся программ (потоков команд или просто потоков), работающих с общими данными и ресурсами.
В этом случае процесс можно рассматривать в качестве контейнера ресурсов, а все проблемы, связанные с динамикой исполнения, решаются на уровне потоков. Обычно каждый процесс начинается с одного потока, а остальные (при необходимости) создаются в ходе выполнения. Теперь уже не процесс, а поток характеризуется состоянием, поток является единицей планирования, процессор переключается между потоками, и необходимо сохранять контекст потока (что существенно проще, чем сохранение контекста процесса). Подобно процессам потоки (нити, threads) в системе описываются структурой данных, которую обычно называют блоком управления потоком (thread control block, TCB).Каждый новый процесс содержит, по крайней мере, один поток, остальные потоки создаются динамически. Потоки составляют основу планирования и могут: выполняться на одном из процессоров, ожидать события или находиться в каком-то ином состоянии
Выбор текущего потока из нескольких активных потоков, пытающихся получить доступ к процессору называется планированием. Планирование - очень важная и критичная для производительности операция, поэтому система предоставляет много рычагов для ее гибкой настройки.
Выбранный для выполнения поток работает в течение некоего периода, называемого квантом, по истечении которого поток вытесняется, то есть процессор передается другому потоку. Предполагается, что поток не знает, в какой момент он будет вытеснен. Поток также может быть вытеснен даже, если его квант еще не истек. Это происходит, когда к выполнению готов поток с более высоким приоритетом.
им приоритетом.