Операционные системы. Кручинин А.Ю. - 51 стр.

UptoLike

Составители: 

51
должны использовать такую ситуацию для завершения цикла просмотра
содержимого каталога.
После завершения цикла просмотра необходимо закрыть идентификатор
поиска, вызвав для этого функцию FindClose:
Функция FindClose
BOOL FindClose(HANDLE hFindFile);
Задание:
1. Написать программу:
создающую отдельный поток, которому передается название каталога, в
котором будут искаться файлы;
имеющую рекурсивную функцию FindFile, строящую «дерево» файлов и
каталогов от выбранного каталога.
Контрольные вопросы:
1. Для чего необходимо использование потоков?
2. Приведите пример многопоточного приложения.
3. Как работает функция CreateThread?
4. Объясните принцип рекурсивного поиска файлов.
Для самостоятельного изучения:
1. Функции ExitProcess, ExitThread, CreateRemoteThread.
2. Существующие компоненты для автоматизированного поиска файлов.
4.8 Синхронизация процессов и потоков
Семафор объект синхронизации, который может регулировать доступ к
некоторому ресурсу. Мьютекс переменная, которая может находиться в одном из
двух состояний: блокированном или неблокированном. Мьютекс может охранять
неразделенный ресурс, к которому в каждый момент времени допускается только
один поток, а семафор может охранять ресурс, с которым может одновременно
работать не более N потоков.
Мьютексный объект создаѐтся функцией:
Функция CreateMutex
HANDLE CreateMutex
(
LPSECURITY_ATTRIBUTES lpMutexAttributes, // атрибут безопастности
BOOL bInitialOwner, // флаг начального владельца
LPCTSTR lpName // имя объекта
);
Функция возвращает дескриптор мьютексного объекта с именем, заданным
должны использовать такую ситуацию для завершения цикла просмотра
содержимого каталога.
     После завершения цикла просмотра необходимо закрыть идентификатор
поиска, вызвав для этого функцию FindClose:

     Функция FindClose

BOOL FindClose(HANDLE hFindFile);

Задание:
1. Написать программу:
      – создающую отдельный поток, которому передается название каталога, в
котором будут искаться файлы;
      – имеющую рекурсивную функцию FindFile, строящую «дерево» файлов и
каталогов от выбранного каталога.

Контрольные вопросы:
1. Для чего необходимо использование потоков?
2. Приведите пример многопоточного приложения.
3. Как работает функция CreateThread?
4. Объясните принцип рекурсивного поиска файлов.

Для самостоятельного изучения:
1. Функции ExitProcess, ExitThread, CreateRemoteThread.
2. Существующие компоненты для автоматизированного поиска файлов.

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

     Семафор – объект синхронизации, который может регулировать доступ к
некоторому ресурсу. Мьютекс – переменная, которая может находиться в одном из
двух состояний: блокированном или неблокированном. Мьютекс может охранять
неразделенный ресурс, к которому в каждый момент времени допускается только
один поток, а семафор может охранять ресурс, с которым может одновременно
работать не более N потоков.
     Мьютексный объект создаѐтся функцией:

     Функция CreateMutex
HANDLE CreateMutex
(
    LPSECURITY_ATTRIBUTES lpMutexAttributes,       // атрибут безопастности
    BOOL bInitialOwner,                            // флаг начального владельца
    LPCTSTR lpName                                 // имя объекта
);

     Функция возвращает дескриптор мьютексного объекта с именем, заданным

                                                                                  51