Виды параллельного взаимодействия 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Виды параллельного взаимодействия



В некоторых параллельных системах программирования передача данных между компонентами скрыта от программиста (например, с помощью механизма обещаний (англ.)), тогда как в других она должна указываться явно. Явные взаимодействия могут быть разделены на два типа:

Взаимодействие через разделяемую память (например, в Java или C#). Данный вид параллельного программирования обычно требует какой-то формы захвата управления (мутексы, семафоры, мониторы) для координации потоков между собой.

Взаимодействие c помощью передачи сообщений (например, в Erlang или occam). Обмен сообщениями может происходить асинхронно, либо c использованием метода «рандеву», при котором отправитель блокирован до тех пор, пока его сообщение не будет доставлено. Асинхронная передача сообщений может быть надёжной либо ненадёжной.

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

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

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

Недостатки: разделяемая память – меньшее быстродействие за счет пересылки данных;

обмен сообщениями – ситуация взаимного исключения, блокировка за счет непришедшего сообщения.

Преимущества: разделяемая память – нет конфликта за счет локализации данных;

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

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

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

 

Что такое фрагментация? Какие виды фрагментации бывают? Какие виды фрагментации проявляются в 3 основных схемах размещения файлов?

Фрагмента́ция — процесс дробления чего-либо на множество мелких разрозненных фрагментов. В основном используется как компьютерный термин.

 

In computer storage, fragmentation is a phenomenon in which storage space is used inefficiently, reducing storage capacity and in most cases reducing the performance. The term is also used to denote the wasted space itself.

There are three different but related forms of fragmentation: external fragmentation, internal fragmentation, and data fragmentation. Various storage allocation schemes exhibit one or more of these weaknesses. Fragmentation can be accepted in return for increase in speed or simplicity.

 

Memory fragmentation

Basic principle

" Fragmented memory " denotes all of the system's unusable free memory. Memory fragmentation usually occurs when memory is allocated dynamically (using calls like malloc). Generally, memory allocation performed during runtime is not in the form of stacks. The memory allocator wastes memory in the following ways:

1. Overhead

2. Internal Fragmentation

3. External Fragmentation.

Overhead

The memory allocator needs to store all the information related to all memory allocations. This information includes the location, size and ownership of any free blocks, as well as other internal status details. Overhead comprises of all the additional system resources that the programming algorithm requires. A dynamic memory allocator typically stores this overhead information in the memory it manages. This leads to wastage of memory. Hence, it is considered as a part of memory fragmentation.

 

Internal fragmentation

When the memory allocated is larger than required, the rest is wasted. Some reasons for excess allocation are:

1. Allocator policy - involves architectural constraints,

2. A client asks for more memory than is required.

The term "internal" refers to the fact that the unusable storage is inside the allocated region. While this may seem foolish, it is often accepted in return for increased efficiency or simplicity.

 

External fragmentation

 

External fragmentation is the inability to use free memory as the free memory is divided into small blocks of memory and these blocks are interspersed with the allocated memory. It is a weakness of certain storage allocation algorithms, occurring when an application allocates and deallocates ("frees") regions of storage of varying sizes, and the allocation algorithm responds by leaving the allocated and deallocated regions interspersed. The result is that although free storage is available, it is effectively unusable because it is divided into pieces that are too small to satisfy the demands of the application. The term "external" refers to the fact that the unusable storage is outside the allocated regions.

 

25. Какой максимальный адресуемый объем памяти для программы на 32-разрядной архитектуре? Почему объем доступной виртуальной памяти меньше максимального (куда девается разница)? На какие основные части делится виртуальная память работающей программы? Как это соотносится с форматами исполняемых файлов?

Максимум 2^32 байт. Реально доступно меньше
Такое поведение является закономерным результатом влияния определенных аппаратных и программных факторов.
Различным устройствам типичного компьютера требуется доступ через отображаемую память. Этот механизм называется MMIO. Чтобы пространство MMIO было доступно 32-разрядным операционным системам, оно должно располагаться в первых 4 ГБ адресного пространства.

Например, при наличии видеоадаптера с 256 МБ собственной памяти эта память должна отображаться в первые 4 ГБ адресного пространства. Если на компьютере уже установлено 4 ГБ системной памяти, часть адресного пространства должна быть зарезервирована для отображения памяти видеоадаптера. Для отображения памяти видеоадаптера используется часть системной памяти. В результате общий объем системной памяти, доступной операционной системе, сокращается.

То, насколько сократится объем доступной системной памяти, зависит от установленных на компьютере устройств.
Если на компьютере установлено много устройств, объем доступной памяти может составить 3 ГБ или меньше. Однако максимально возможный объем доступной памяти в 32-разрядных версиях Windows Vista обычно составляет 3,12 ГБ.

Memory-mapped I/O (MMIO) and port I/O (also called port-mapped I/O (PMIO) or isolated I/O) are two complementary methods of performing input/output between the CPU and peripheral devices in a computer. Another method, not discussed in this article, is using dedicated I/O processors — commonly known as channels on mainframe computers — that execute their own instructions.

Memory-mapped I/O (not to be confused with memory-mapped file I/O) uses the same address bus to address both memory and I/O devices, and the CPU instructions used to access the memory are also used for accessing devices. In order to accommodate the I/O devices, areas of the CPU's addressable space must be reserved for I/O. The reservation might be temporary — the Commodore 64 could bank switch between its I/O devices and regular memory — or permanent. Each I/O device monitors the CPU's address bus and responds to any of the CPU's access of address space assigned to that device, connecting the data bus to a desirable device's hardware register.



Поделиться:


Последнее изменение этой страницы: 2016-08-16; просмотров: 446; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.224.73.125 (0.006 с.)