Экзаменационный билет № 16




Понятие потока. Однопоточность и многопоточность.

Однопоточные и многопоточные процессы

К сожалению, до сих пор мышление многих программистов при разработке программ остается чисто последовательным. Не учитываются широкие возможности параллелизма, в частности, многопоточности. Последовательный (однопоточный) процесс – это процесс, который имеет только один поток управления (controlflow), характеризующийся изменением его счетчика команд. Поток (thread) – это запускаемый из некоторого процесса особого рода параллельный процесс, выполняемый в том же адресном пространстве, что и процесс-родитель. Схема организации однопоточного и многопоточного процессов изображена на рис. 10.1.

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

Многопоточность имеет большие преимущества:

Увеличение скорости (по сравнению с использованием обычных процессов). Многопоточность основана на использовании облегченных процессов (lightweightprocesses), работающих в общем пространстве виртуальной памяти. Благодаря многопоточности, не возникает больше неэффективных ситуаций, типичных для классической системе UNIX, в которой каждая команда shell (даже команда вывода содержимого текущей директории ls исполнялась как отдельный процесс, причем в своем собственном адресном пространстве. В противоположность облегченным процессам, обычные процессы (имеющие собственное адресное пространство) часть называют тяжеловесными (heavyweight).

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

Экономия. Благодаря многопоточности, достигается значительная экономия памяти, по причинам, объясненным выше. Также достигается и экономия времени, так как переключение контекста на облегченный процесс, для которого требуется только сменить стек и восстановить значения регистров, значительно быстрее, чем на обычный процесс (см. "Методы взаимодействия процессов ").

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

 

Объектно-ориентированный подход к построению операционных систем.

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

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

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

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

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

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: