Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Процессы и потоки.






Потоки и процессы — это связанные понятия в вычислительной технике. Оба представляют из себя последовательность инструкций, которые должны выполняться в определенном порядке.Инструкции в отдельных потоках или процессах, однако, могут выполняться параллельно.Процессы существуют в операционной системе и соответствуют тому, что пользователи видят как программы или приложения. Поток, с другой стороны, существует внутри процесса. По этой причине потоки иногда называются " облегченные процессы". Каждый процесс состоит из одного или более потоков.Существование нескольких процессов позволяет компьютеру " одновременно" выполнять несколько задач. Существование нескольких потоков позволяет процессу разделять работу для параллельного выполнения. На многопроцессорном компьютере процессы или потоки могут работать на разных процессорах. Это позволяет выполнять реально параллельную работу.Абсолютно параллельная обработка не всегда возможна. Потоки иногда должны синхронизироваться. Один поток может ожидать результата другого потока, или одному потоку может понадобиться монопольный доступ к ресурсу, который используется другим потоком. Проблемы синхронизации являются распространенной причиной ошибок в многопоточных приложениях. Иногда поток может закончиться, ожидая ресурс, который никогда не будет доступен. Это кончается состоянием, которое называется взаимоблокировка. Отладчик Visual Studio предоставляет мощные, но простые в использовании средства отладки потоков и процессов.

Типы информационных структур для процесса (дескриптор процесса и контекст процесса). Планирование потоков. Диспетчеризация потоков.

Планирование процессов и потоков

Подсистема управления процессами и потоками в ОС ответственна за обеспечение процессов необходимыми ресурсами

ОС использует специальные информационные структуры, для хранения информации о том какие ресурсы выделены каждому процессу

Понятие процесс (задача) и поток (нить)

Понятие синхронизации потоков

Планирование и диспетчеризация потоков

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

Задачи планирования:

Определение момента времени для смены текущего активного потока

Выбор для выполнения потока из очереди готовых потоков

Диспетчеризация - это реализация решения, найденного в результате планирования

Задачи диспетчеризации:

Сохранение контекста текущего потока

Загрузка контекста нового потока

Запуск нового потока на выполнение

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

 

34. Состояния потока. Типы алгоритмов планирования. Понятие «прерывания». Классы прерываний.

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

1. внешние

2. внутренние

3. программные.

Внешние происходят при действиях пользователя или от сигналов внешних устройств при операциях ввода-вывода. Они называются аппаратными. Происходят асинхронно выполняемому потоку.

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

Алгоритмы планирования делятся на два типа:

Вытесняющие – когда решение о переключении потоков принимает ОС. Почти все современные ОС (UNIX, Windows NT/XP, OS/2, VAX/VMS) используют вытесняющие алгоритмы планирования.

Невытесняющие – когда решение о временной приостановке принимает сам выполняемый поток – в связи с ожиданием какого-либо ресурса. При этом программисты должны составлять программы так, чтобы они часто прерывались (передавать управление ОС), что затрудняет разработку программ. Зато прерывания происходят в удобный для потока момент, а накладные расходы ОС снижаются. Это реализовано в ОС NetWare для файл-серверов 3.х и 4.х, благодаря чему обеспечивается высокая скорость файловых операций.

В мультипрограммной ОС поток может находиться в одном из трех состояний:

· Выполнение – активное состояние, когда он работает

· Ожидание – пассивное состояние, когда он стоит по внутренним причинам: ждет окончания ввода/вывода, предоставления какого-либо ресурса (кроме процессора)

· Готовность – пассивное состояние, когда он готов, но выполняется другой поток (т.е. он ждет процессорного времени).

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






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.