Перейти к основному содержанию
EDU-MMCS
Вы используете гостевой доступ (Вход)

CS221. Архитектура компьютера и операционные системы

  1. В начало
  2. Курсы
  3. Осенний семестр
  4. Фундаментальная информатика и ИТ
  5. CS221 CA&OS
  6. Материалы лабораторных работ
  7. Лаб. Занятие 13. Обязательные задания для решения ...

Лаб. Занятие 13. Обязательные задания для решения в классе

Требуемые условия завершения
Открыто с: вторник, 3 декабря 2024, 08:00
Срок сдачи: пятница, 13 декабря 2024, 13:30

Лаб. Занятие 13. Обязательные задания для решения в классе [3 балла]

Указания к выполнению
  • Программ должна быть написана на языке С
  • В программе должны создаваться несколько новых потоков. 


Задания

  1. Задан массив A вещественных значений размера n, а также вещественный отрезок [a, b] и натуральное число m. Определить, сколько элементов массива A принадлежат полуинтервалам [a, a + h), [a + h, a + 2 h), ... [a + (m - 1) h, b), где h = (b - a) / m. Счётчик для каждого полуинтервала защитить отдельным мьютексом.

  2. Написать программу, которая получает список файлов и для каждого файла вычисляет количество повторений символа.  Каждый файл должен обрабатываться в отдельном потоке, а результат записываться в глобальную переменную, которую нужно защитить мьютексом. Основной поток должен по окончании обработки выводить результаты. 

  3. В двумерном массиве заданы значения вещественной функции от двух переменных в некоторой решётке. Выполнить поиск всех максимумов заданной функции по строкам. Разделить вычисления между n потоками. Каждый поток должен вычислить значения в заданной ему части массива, а результат записывать в глобальную переменную, которую нужно защитить мьютексом.

  4. В двумерном массиве заданы значения вещественной функции от двух переменных в некоторой решётке. Выполнить поиск всех максимумов заданной функции по столбцам. Разделить вычисления между n потоками. Каждый поток должен вычислить значения в заданной ему части массива, а результат записывать в глобальную переменную, которую нужно защитить мьютексом.

  5. Для заданной квадратной целочисленной матрицы проверить свойство диагонального преобладания: сумма элементов по строке без диагонального меньше диагонального элемента. Разделить вычисления между n потоками. Каждый поток должен вычислить значения в заданном ему диапазоне, результат записывать в глобальную переменную, которую нужно защитить мьютексом. Алгоритм можно оптимизировать, прекращая вычисления, когда какой-либо из потоков обнаруживает нарушение условия.

  6. Для заданной квадратной целочисленной матрицы проверить свойство диагональной постоянности: главная диагональ и все диагонали, параллельные главной, должны состоять из одинаковых (в пределах этой диагонали) значений. Разделить вычисления между n потоками. Каждый поток должен вычислить значения в заданном ему диапазоне диагоналей, результат записывать в глобальную переменную, которую нужно защитить мьютексом. Алгоритм можно оптимизировать, прекращая вычисления, когда какой-либо из потоков обнаруживает нарушение условия.

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

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

  9. В двумерном массиве заданы значения вещественной функции от двух переменных в некоторой решётке. Посчитать сумму значений в четных и нечетных строках массива. Разделить вычисления между n потоками. Каждый поток должен вычислить значения в заданной ему части массива, а результат записывать в глобальные переменные, которые нужно защитить мьютексом.

  10. В двумерном массиве заданы значения вещественной функции от двух переменных в некоторой решётке. Посчитать количество простых чисел в массиве. Разделить вычисления между n потоками. Каждый поток должен вычислить значения в заданной ему части массива, а результат записывать в глобальные переменные, которые нужно защитить мьютексом.

  11. В двумерном массиве заданы значения вещественной функции от двух переменных в некоторой решётке. Посчитать количество простых чисел на главной диагонали. Разделить вычисления между n потоками. Каждый поток должен вычислить значения в заданной ему части массива, а результат записывать в глобальные переменные, которые нужно защитить мьютексом.

  12. В двумерном массиве заданы значения вещественной функции от двух переменных в некоторой решётке. Посчитать сумму чисел на главной диагонали. Разделить вычисления между n потоками. Каждый поток должен вычислить значения в заданной ему части массива, а результат записывать в глобальные переменные, которые нужно защитить мьютексом.


◄ Лаб. Занятие 12. Обязательные задания для решения в классе
Лаб. Занятие 14. Обязательные задания для решения в классе. ►
Пропустить Навигация
Навигация
  • В начало

    • Страницы сайта

      • Мои курсы

      • Теги

    • Мои курсы

    • Курсы

      • Осенний семестр

        • Прикладная математика и информатика

        • Фундаментальная информатика и ИТ

          • Compiler Development

          • CMVSM

          • АЗПК

          • Frontend

          • ТеорЯП

          • Ruby Eng

          • EngCA&OS

          • CS201e

          • Компиляторы - лекции

          • CS202

          • CS211 C++ ENG

          • CS221 CA&OS

            • Общая информация

            • Материалы лабораторных работ

              • ЗаданиеЛаб. Занятие 1. Введение. Арифметика. Циклы LOOP

              • ЗаданиеЛаб. Занятие 2. Подготовка. Массивы. Условные и бе...

              • ЗаданиеЛаб. Занятие 2. Обязательные задания для решения в...

              • ЗаданиеЛаб. Занятие 3. Подготовка. Интерфейс системных вы...

              • ЗаданиеЛаб. Занятие 3. Обязательные задания для решения в...

              • СтраницаЛаб. Занятие 4. Подготовка. Подпрограммы (продолже...

              • ЗаданиеЛаб. Занятие 4. Обязательные задания для решения в...

              • ЗаданиеЛаб. Занятие 5. Подготовка. Работа с файлами

              • ЗаданиеЛаб. Занятие 5. Обязательные задания для решения в...

              • СтраницаЛаб. Занятие 6. Подготовка. Цепочечные инструкции

              • ЗаданиеЛаб. Занятие 6. Обязательные задания для решения в...

              • СтраницаЛаб. Занятие 7. Подготовка. Микропрограммирование

              • ФайлIJVM Assembly Language Specification

              • ФайлСправочник ассемблерных инструкций Java-машины

              • ЗаданиеЛаб. Занятие 7.1. Обязательные задания для решения...

              • ЗаданиеЛаб. Занятие 7.2. Обязательные задания для решения...

              • СтраницаЛаб. Занятие 8. Подготовка. Основы работы в UNIX-п...

              • ЗаданиеЛаб. Занятие 8. Обязательные задания для решения в...

              • СтраницаЛаб. Занятие 9. Подготовка. Написание сценариев

              • ЗаданиеЛаб. Занятие 9. Обязательные задания для решения в...

              • СтраницаЛаб. Занятие 10. Подготовка. Многопоточность

              • ЗаданиеЛаб. Занятие 10. Обязательные задания для решения ...

              • СтраницаЛаб. Занятие 11. Подготовка. Разделяемая память

              • ЗаданиеЛаб. Занятие 11. Обязательные задания для решения ...

              • СтраницаЛаб. Занятие 12. Подготовка. Работа с каналами

              • ЗаданиеЛаб. Занятие 12. Обязательные задания для решения ...

              • СтраницаЛаб. Занятие 13. Подготовка. Синхронизация потоков

              • ЗаданиеЛаб. Занятие 13. Обязательные задания для решения ...

              • ЗаданиеЛаб. Занятие 14. Обязательные задания для решения ...

            • Тестирование

            • Дистрибутивы и справочная информация

            • Доборы

        • Математика, механика

        • Педагогическое образование

        • Магистратура

          • Разработка мобильных приложений и компьютерных игр

        • Аспирантура

        • Вечернее отделение

        • Другое

      • Весенний семестр

        • Прикладная математика и информатика

        • Фундаментальная информатика и ИТ

        • Математика, механика

        • Педагогическое образование

        • Магистратура

          • Разработка мобильных приложений и компьютерных игр

        • Аспирантура

        • Вечернее отделение

        • Другое

      • Воскресная компьютерная школа

        • Пользователь компьютера плюс

        • Пользователь прикладных программ

        • Программирование I ступень

        • Программирование II ступень

        • Программирование III ступень

        • Архив

      • Воскресная математическая школа

        • Открытое тестирование РНОМЦ и мехмата ЮФУ - 2025

        • Олимпиадная математическая школа

        • Повышение квалификации

        • Доступная математика

        • Лаборатория математического онлайн-образования мех...

        • Осенняя универсиада

        • Научно-практическая конференция

        • ВМШ

          • ВМШ - 24

        • Летняя олимпиадная математическая школа РНОМЦ и ме...

      • Государственная итоговая аттестация

      • Дополнительное образование

      • Олимпиады

      • Видеолекции

      • Разное

      • Архив курсов

      • Заочная школа мехмата ЮФУ

Служба поддержки сайта
Вы используете гостевой доступ (Вход)
CS221 CA&OS
Сводка хранения данных
Скачать мобильное приложение Яндекс.Метрика