Удаленные потоки

Удаленные потоки

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

У функции CreateRemoteThread есть одно очень интересное применение. Вместо того чтобы вызывать функцию TerminateProcess, управляющий процесс может создать поток, выполняющийся в другом процессе, который и организует корректное завершение этого процесса. Однако в главе 10 демонстрируется более безопасный метод, позволяющий одному потоку завершить другой с использованием асинхронного вызова процедур. 

Понятие о потоках твердо упрочилось во многих ОС, и исторически так сложилось, что многие поставщики и пользователи UNIX предоставляли собственные частные варианты их реализации. Были разработаны некоторые библиотеки, обеспечивающие многопоточную поддержку вне ядра. В настоящее время стандартом в этой области являются потоки POSIX Pthreads. Потоки Pthreads включены в частные варианты реализации UNIX и Linux и иногда считаются частью UNIX. Соответствующие системные вызовы отличаются от обычных системных вызовов UNIX наличием в именах префикса pthread. Потоки Pthreads поддерживаются также некоторыми другими системами, отличными от UNIX, такими, например, как Open VMS.

Системный вызов pthread_create эквивалентен вызову CreateThread, a системный вызов pthread_exit — вызову ExitThread. Для организации ожидания одним потоком завершения другого применяется системный вызов pthread_join. Потоки Pthreads предоставляют очень полезную функцию pthread_cancel, гарантирующую, в отличие от функции TerminateThread, выполнение обработчиков завершения и уничтожение ненужных дескрипторов. Возможность уничтожения потоков была бы в Windows крайне желательной, но в главе 10 представлен метод, обеспечивающий получение такого же эффекта.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

10.4 ПОТОКИ

Из книги Архитектура операционной системы UNIX автора Бах Морис Дж

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


Восстанавливаем удаленные файлы

Из книги Сбои и ошибки ПК. Лечим компьютер сами. Начали! автора Ташков Петр

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


38. Потоки

Из книги Программирование автора Козлова Ирина Сергеевна

38. Потоки Язык C++ не обладает средствами для ввода/вывода. Ему это и не нужно; подобные средства легко и элегантно можно создать, применяя сам язык. Стандартная библиотека потокового ввода/вывода дает возможность осуществлять гибкий и эффективный с гарантией типа метод


2.2.1.1 Потоки

Из книги Руководство администратора баз данных Informix. автора Кустов Виктор

2.2.1.1 Потоки Архитектуру INFORMIX-OnLine DS называют также многопотоковой. Для каждого клиента создается так называемый поток, или нить (thread). Поток - это подзадача, выполняемая в рамках одного из серверных процессов. В некоторых случаях для обслуживания одного клиентского


7.3.1.2. Потоки

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

7.3.1.2. Потоки Потоки (streams) сетевого взаимодействия были разработаны Деннисом Ритчи для Unix Version 8 (1985). Их новая реализация называется STREAMS (именно так, в документации все буквы прописные). Впервые она стала доетупной в версии 3.0 System V Unix (1986). Средство STREAMS обеспечивало


Восстанавливаем удаленные файлы

Из книги Сбои и ошибки ПК. Лечим компьютер сами автора Донцов Дмитрий

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


7.3.1.2. Потоки

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

7.3.1.2. Потоки Потоки (streams) сетевого взаимодействия были разработаны Деннисом Ритчи для Unix Version 8 (1985). Их новая реализация называется STREAMS (именно так, в документации все буквы прописные). Впервые она стала доступной в версии 3.0 System V Unix (1986). Средство STREAMS обеспечивало


Потоки

Из книги UNIX: взаимодействие процессов автора Стивенс Уильям Ричард

Потоки Хотя концепция процессов в системах Unix используется уже очень давно, возможность использовать несколько потоков внутри одного процесса появилась относительно недавно. Стандарт потоков Posix.1, называемый Pthreads, был принят в 1995 году. С точки зрения взаимодействия


2.4.5.5. Потоки Falcon

Из книги QNX/UNIX [Анатомия параллелизма] автора Цилюрик Олег Иванович

2.4.5.5. Потоки Falcon Falcon использует два рабочих потока, чтобы обработать информацию внутри структур Falcon. Один поток посвящен перемещению совершенных изменений данных из файла регистрации на страницы и объединению индексных изменений с постоянными индексными данными.


Потоки

Из книги Windows Vista. Трюки и эффекты автора Зозуля Юрий

Потоки Последующие расширения[14] POSIX специфицируют широкий спектр механизмов «легких процессов» — потоков (группа API pthread_*()). Техника потоков вводит новую парадигму программирования вместо уже ставших традиционными UNIX-методов. Это обстоятельство часто недооценивается.


4.5. Как восстанавливать удаленные файлы

Из книги Атака на Internet автора Медведовский Илья Давыдович

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


Глава 3 Удаленные атаки на распределенные вычислительные системы

Из книги Введение в криптографию автора Циммерманн Филипп

Глава 3 Удаленные атаки на распределенные вычислительные системы Непостижимо все, что в мире есть, К тому ж изъянов в том, что есть, не счесть. О. Хайям. Рубаи Основной особенностью любой распределенной системы, как уже отмечалось, является то, что ее компоненты


Глава 4 Удаленные атаки на хосты Internet

Из книги Программирование для Linux. Профессиональный подход автора Митчелл Марк

Глава 4 Удаленные атаки на хосты Internet Многое Наша Земля повидала, Но не видала Такого скандала! Б. Заходер. География всмятку Анализ сетевого трафика InternetВ Internet базовыми протоколами удаленного доступа являются TELNET и FTP (File Transfer Protocol). TELNET – это протокол виртуального


Не полностью удалённые файлы

Из книги автора

Не полностью удалённые файлы Другая потенциальная угроза безопасности исходит из того, как большинство операционных систем удаляют файлы. Когда вы зашифровали файл и хотите удалить оригинал с открытым текстом, ОС на самом деле не стирает данные физически — она просто


Глава 4 Потоки

Из книги автора

Глава 4 Потоки Потоки, как и процессы, — это механизм, позволяющий программам выполнять несколько действий одновременно. Потоки работают параллельно. Ядро Linux планирует их работу асинхронно, прерывая время от времени каждый из них, чтобы дать шанс остальным.С