Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БИЛЕТ- ОТВЕТ.doc
Скачиваний:
7
Добавлен:
24.09.2019
Размер:
417.79 Кб
Скачать

3. Архитектура и структура операционных систем: Программные модули, многопоточность.

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

Программный модуль - согласно ГОСТ 19781-90 - программа или функционально завершенный фрагмент программы, предназначенный для:

-1- хранения;

-2- трансляции;

-3- объединения с другими программными модулями; и

-4- загрузки в оперативную память.

Различают:

- стандартные модули, входящие в язык программирования; и

- пользовательские модули, предназначенные для упрощения работы программистов.

Многопоточность

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

Такие потоки называют также потоками выполнения (от англ. thread of execution); иногда называют «нитями» (буквальный перевод англ. thread) или неформально «тредами».

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

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

К достоинствам многопоточности в программировании можно отнести следующее:

-Упрощение программы в некоторых случаях, за счет использования общего адресного пространства.

-Меньшие относительно процесса временны́е затраты на создание потока.

-Повышение производительности процесса за счет распараллеливания процессорных вычислений и операций ввода/вывода.

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