Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы Word.docx
Скачиваний:
34
Добавлен:
16.03.2016
Размер:
352 Кб
Скачать
☆

Вопросы для подготовки к сдаче лабораторной работы.

  1. Что понимается под термином ресурс в операционной системе Windows.?

  2. Каким образом в программе хранятся ресурсы?

  3. Какие виды ресурсов вы знаете?

  4. Язык описания ресурсов, приведите пример описания.

  5. Особенности хранения меню в ресурсах программы.

  6. Особенности хранения строк в ресурсах.

  7. Особенности хранения изображений в ресурсах.

  8. Каким образом извлекаются данные из ресурсов.

  9. В каких случаях ресурсы загружаются в память?

  10. Какие API функции используются для извлечения ресурсов?

Лабораторная работа №5

«Создание многопоточных приложений в ОС Windows» Концепция потоков

Поток (thread)— это объект операционной системы, который представляет собой последовательность (поток выполнения) команд программы внутри определенного процесса. Понятию поток соответствует последовательный переход процессора от одной команды к другой. Каждое приложение Win32 имеет, по крайней мере, один поток, обычно называемыйпервичным, илиглавным, но приложения имеют право создавать дополнительные потоки, предназначенные для выполнения других задач.

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

Потоки никогда не поддерживались в среде 16-разрядной Windows. Это означает, что ни одна 32-разрядная программа Delphi, написанная с использованием потоков, никогда не будет совместимой с Delphi 1. Данный момент обязательно нужно учитывать при разработ­ке приложений, предназначенных для работы на обеих платформах.

Типы многозадачности

Понятие потока во многом отличается от многозадачности, поддерживаемой в среде 16-разрядной Windows. Возможно, Вам приходилось слышать, что Win32 называ­ют операционной системой с приоритетной (preemptive), иливытесняющей, многозадачностью, а Windows 3.1 — средой скооперативной многозадачностью (cooperative multitasking).

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

В среде Windows 3.1 ответственность за возвращение управления операционной системе по завершении выполнения приложения лежит целиком на разработчике. Поэтому, когда приложению не удается корректно завершить работу и вернуть управление операционной системе, кажется, что операционная система "зависает" — все хорошо знакомы с такой печальной ситуацией. Если вдуматься, то это может пока­заться даже забавным — устойчивость работы всей системы 16-разрядной Windows полностью зависит от поведения всех ее приложений, которые должны самостоятельно защитить себя от попадания в бесконечные циклы, замкнутую цепь рекурсии и другие неприятные ситуации. А поскольку все приложения для достижения корректной работы системы должны работать согласованно, этот тип многозадачности называетсякооперативным.