Операционные системы. Программирование в операционной среде Windows

28 3. Чтобы поток успел стартовать и вывести сообщение, необходимо после его запуска ожидать нажатия клавиши или вызвать задержку. 4. Переделать запуск потока, так чтобы он стартовал в приостановленном состоянии и возобновлялся по нажатию клавиши - 1 и приостанавливался по клавише - 2. Управление потоком осуш,ествлять из главной функции main. 5. В функции потока организовать бесконечный цикл, внутри которого выдавать сообш,ение каждые 500 мс о том, что поток активен. 6. В главной функции объявить строку и ввести ее (или определить строковую константу). Передать в функцию потока адрес строки в качестве параметра. 7. Поток должен посчитать количество заглавных латинских букв в строке, затем вывести строку и найденное количество. Обработку строки поместить в бесконечный цикл (см. п.4). 8. Создать второй поток. В функцию второго потока передавать адрес той же строки, что и в функцию первого потока. 9. Функция второго потока должна каждые 300 мс менять содержимое строки случайным образом (можно объявить несколько строк одинакового размера и менять их случайным образом). 10. Реализовать управление вторым потоком из функции main: по нажатию клавиши 3 - приостановка, 4 - возобновление второго потока. 11.Проверить работу приложения, запуская и приостанавливая потоки. Посмотреть, как обрабатывается и выводится строка. 12. Реализовать синхронизацию потоков с помош,ью критической секции. Разграничить доступ к строке в каждом из потоков: пока первый поток выводит строку, второй не может ее менять, и наоборот. При захвате ресурса каждый поток должен сообш,ать об этом. 13.Расширить возможности управления потоками из функции main: уничтожить первый поток - клавиша 5, второй - клавиша 6, вновь создать первый поток - клавиша 7, второй - клавиша 8. 14.Проверить работу приложения. Остановить один из потоков, посмотреть и объяснить работу приложения. Уничтожить один из потоков, затем вновь создать его, посмотреть и объяснить работу приложения. 2.9. Контрольные вопросы 1. Объясните понятия процесс и поток. Почему потоки называют облегченными процессами? 2. В каких случаях целесообразно использовать дополнительные потоки, а не новые процессы? 3. Как программно создать поток? 4. Какие действия выполняет система при создании потока? 5. Назначение входной функции потока. 6. Какие параметры можно передавать в функцию потока? 7. Как запустить поток в приостановленном состоянии?

RkJQdWJsaXNoZXIy MTY0OTYy