ОПЕРАЦИОННЫЕ СИСТЕМЫ Вощинская Гильда Эдгаровна

Скачать презентацию ОПЕРАЦИОННЫЕ СИСТЕМЫ   Вощинская Гильда Эдгаровна Скачать презентацию ОПЕРАЦИОННЫЕ СИСТЕМЫ Вощинская Гильда Эдгаровна

ОПЕРАЦИОННЫЕ СИСТЕМЫ_3.ppt

  • Количество слайдов: 10

>ОПЕРАЦИОННЫЕ СИСТЕМЫ   Вощинская Гильда Эдгаровна ОПЕРАЦИОННЫЕ СИСТЕМЫ Вощинская Гильда Эдгаровна

>    Понятие нити Поток (нить, Thread ) – это набор команд, Понятие нити Поток (нить, Thread ) – это набор команд, который может получать время процессора. У нити собственные: Нити разделяют: • программный счетчик • адресное пространство • стек • глобальные переменные • регистры • открытые файлы • нити-потомки • таймеры • состояние • семафоры • статистическую информацию

> Реализация потоков в. Windows Использование библиотеки API Win 32 (Application Program Interface) наиболее Реализация потоков в. Windows Использование библиотеки API Win 32 (Application Program Interface) наиболее мощный и универсальный способ работы с потоками. Поток создаётся с помощью функции APIFunction function Create. Thread( Attr: Pointer; //адрес атрибутов безопасности Stack: Dword; //размер стека для потока Start: Pointer; //начальный адрес потока par: Pointer; //аргументы потока flag: Dword; // флаг создания var ID: Dword //идентификатор потока ): THandle; //дескриптор потока

>   Параметры Create. Thread Attr = nil, т. е. атрибуты безопасности по Параметры Create. Thread Attr = nil, т. е. атрибуты безопасности по умолчанию. Stack задаёт размер стека для потока. Если Stack=0, то размер совпадает с размером стека основного приложения. Start – основной. Он задаёт адрес функции, вызываемой при запуске потока. Она обязана возвращать результат типа Longint, иметь один параметр типа Pointer. При её описании указывается атрибут stdcall. Par – указатель на структуру, содержащую аргументы. Если Par=nil, то аргументов нет. Flag=0 – поток сразу начнёт работу, flag=CREATE_SUSPEND – поток начнёт работу после вызова функции Resume. Thread.

>Другие функции для работы с потоками Function Resume. Thread (h. Thread: THandle): Dword; Возобновить Другие функции для работы с потоками Function Resume. Thread (h. Thread: THandle): Dword; Возобновить работу потока после приостановки. h. Thread – дескриптор потока, полученный при создании. Возвращает число приостановленных потоков. Function Suspend. Thread (h. Thread: THandle): Dword; Приостановить поток. Function Close. Handle (h. Thread: THandle): Dword; Досрочно завершает поток после приостановки. Пример Thread_Exampl

>Существуют две модели применения потоков:  асимметричная – потоки решают разные задачи  и, Существуют две модели применения потоков: асимметричная – потоки решают разные задачи и, как правило не разделяют ресурсы; симметричная – потоки выполняют одну и ту же задачу, разделяют ресурсы и используют один и тот же код.

>     Класс TThread содержит функции API    программирования Класс TThread содержит функции API программирования потока. Свойства и методы класса TThread Описание класс_Thread Пример Multy. Thread

> Средства синхронизации потоков 1.  Метод Sinchronize Пример Synchron 1 2.  Критическая Средства синхронизации потоков 1. Метод Sinchronize Пример Synchron 1 2. Критическая секция 3. Семафоры 4. Мьютексы(двоичные семафоры)

>   Критическая секция - Это участок кода, в котором происходит обращение к Критическая секция - Это участок кода, в котором происходит обращение к критическому ресурсу. В Win 32 API синхронизация критических секций может осуществляться с помощью глобальной записи специального вида типа TRTLCritical. Section. Инициализация выполняется процедурой Initialize. Critical. Section(var lp. Critical. Section: TRTLCritical. Section); Перед входом в критическую секцию: Enter. Critical. Section(var lp. Critical. Section: TRTLCritical. Section); При выходе: Leave. Critical. Section(var lp. Critical. Section: TRTLCritical. Section); По окончании работы: Delete. Critical. Section(var lp. Critical. Section: TRTLCritical. Section); Пример Critical. Sect

>  Семафоры и мьютексы Функции для работы с семафорами и мьютксами.  Описание Семафоры и мьютексы Функции для работы с семафорами и мьютксами. Описание Semaph_Mutex Пример Sem_Mutex