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

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

  1. В начало
  2. Курсы
  3. Осенний семестр
  4. Фундаментальная информатика и ИТ
  5. CS221 CA&OS
  6. Общая информация
  7. Комиссия 28.09.26

Комиссия 28.09.26

Открыто с: понедельник, 28 сентября 2026, 15:00
Срок сдачи: понедельник, 28 сентября 2026, 18:00
Требуемые условия завершения

Вариант 1

  1.  [20 баллов] Создайте функцию SUM_DIG, которая подсчитывает сумму цифр составляющих число. В качестве параметра функции передаётся обрабатываемое число.  Создайте процедуру MAP, которая получает в качестве параметров через стек длину массива, адреса двух массивов одинаковой длины и функцию, которую она применяет к каждому элементу первого массива. Результат применения функции записывается в соответствующий элемент второго массива. В основной программе вызовите процедуру  MAP   для исходного массива {90, 120, 411, 172}, массива для результатов  и функции SUM_DIG. Массив для результатов такого же размера следует объявить в секции неинициализированных данных. После вызова процедуры следует распечатать на консоль массив результатов.
  2. [20 баллов] Реализуйте на языке  микроассемблера MAL инструкцию DUP_XYZ Код для инструкции подберите самостоятельно. Для работы инструкции положить на стек три числа v1, v2, v3. Инструкция должна менять содержимое стека следующим образом: значение v1, должно замениться на сумму трех величин v1+v2+v3, значение v2, должно замениться на разность трех величин v1-v2-v3, значение v3, должно замениться на v1+v2 - v3 Т.е. если до инструкции стек имел вид ....s , v1, v2, v3  (v3- значение, лежащее на вершине стека) то после выполнения  DUP_XYZ стек должен иметь вид ...s, v1+v2+v3, v1-v2-v3, v1+v2 - v3. 
  3. [20 баллов] Написать программу на языке C, которая использует потоки и разделяемую память для подсчета частоты символов в заданной строке. Программа должна разбивать строку на несколько частей, каждая из которых обрабатывается отдельным потоком.
     
       – Создайте структуру, которая будет содержать:
         ▪ Указатель на строку.
         ▪ Два целых числа: индекс начала и индекс конца части строки, которую будет обрабатывать поток.
         ▪ Массив для хранения частоты символов.
       – Используйте shmget и shmat для создания и подключения к разделяемой памяти, где будет храниться общий массив частоты символов.
     
     
       – Используйте библиотеку pthread для создания нескольких потоков (например, 4 потока).
       – Каждый поток должен обрабатывать свою часть строки и обновлять общий массив частоты символов в разделяемой памяти.
       – Программа должна считывать строку из стандартного ввода.
     
       – Разделите строку на части, которые будут обрабатываться потоками.
       – Используйте мьютексы для синхронизации доступа к общему массиву частоты символов, чтобы избежать состояния гонки.
     
     
       – После завершения работы всех потоков, главный поток должен вывести частоту каждого символа.

Вариант 2

  1. [20 баллов] Создайте функцию F, которая  вычисляет значение многочлена по формуле 3x4/8+x−12. В качестве параметра функции передаётся значение x.  Создайте процедуру MAP, которая получает в качестве параметров через стек длину массива, адреса двух массивов одинаковой длины и функцию, которую она применяет к каждому элементу первого массива. Результат применения функции записывается в соответствующий элемент второго массива. В основной программе вызовите процедуру  MAP   для исходного массива {3, 2, 1, 4}, массива для результатов  и функции F. Массив для результатов такого же размера следует объявить в секции неинициализированных данных. После вызова процедуры следует распечатать на консоль массив результатов.
  2. [20 баллов] Реализуйте на языке  микроассемблера MAL инструкцию DUP_ZYX Код для инструкции подберите самостоятельно. Для работы инструкции положить на стек три числа v1, v2, v3. Инструкция должна менять содержимое стека следующим образом: значение v1, должно замениться на v1+v2-v3, значение v2, должно замениться на разность трех величин v1-v2-v3, значение v3, должно замениться на на сумму трех величин v1+v2+v3 Т.е. если до инструкции стек имел вид ....s , v1, v2, v3  (v3- значение, лежащее на вершине стека) то после выполнения  DUP_ZYX стек должен иметь вид ...s, v1+v2-v3, v1-v2-v3, v1+v2 +v3. 
  3. [20 баллов] Написать программу на языке C, которая использует потоки и разделяемую память для подсчета частоты элементов в заданном массиве целых чисел. Программа должна разбивать массив на несколько частей, каждая из которых обрабатывается отдельным потоком.
     
       – Создайте структуру, которая будет содержать:
         ▪ Указатель на массив.
         ▪ Два целых числа: индекс начала и индекс конца части массива, которую будет обрабатывать поток.
         ▪ Массив для хранения частоты элементов массива.
       – Используйте shmget и shmat для создания и подключения к разделяемой памяти, где будет храниться общий массив частоты элементов массива.
     
     
       – Используйте библиотеку pthread для создания нескольких потоков (например, 4 потока).
       – Каждый поток должен обрабатывать свою часть массива целых чисел и обновлять общий массив частоты элементов массива в разделяемой памяти.
       – Программа должна считывать массив из файла.
     
       – Разделите массив на части, которые будут обрабатываться потоками.
       – Используйте мьютексы для синхронизации доступа к общему массиву частоты символов, чтобы избежать состояния гонки.
     
     
       – После завершения работы всех потоков, главный поток должен вывести частоту каждого числа из исходного массива.

◄ Информация для должников
Учебная карта дисциплины ►

Блоки

Пропустить Навигация

Навигация

  • В начало

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

      • Мои курсы

      • Теги

    • Мои курсы

    • Курсы

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

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

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

          • MWT-2

          • CS102 ДМ

          • SciComp 2026

          • Probability Theory and Mathematical Statistics

          • Научные Вычислительные Пакеты

          • DataSc101

          • NLP (7 семестр)

          • ДГНМ

          • Compiler Development

          • CMVSM

          • АЗПК

          • CS221 CA&OS

            • Общее

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

              • СтраницаИнформация для должников

              • ЗаданиеКомиссия 28.09.26

              • ФайлУчебная карта дисциплины

              • СтраницаЗапись на курс и режим посещения лабораторных занятий

              • СтраницаЛитература

              • ГиперссылкаФорум для обсуждения курса

              • ФайлПорядок проведения экзамена

              • ФайлЭкзаменационная программа

              • ФайлВопросы для устного ответа на экзамене

            • Материалы лекций

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

            • Контрольные работы

            • Экзамен

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

            • Доборы

            • Индивидуальные задания

            • Рисунки и программы к курсу

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

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

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

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

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

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

        • Другое

        • ОНС-Н_1

        • Прогр-ММ-2

        • Прогр-ММ-1

        • АБиМ-ИИБ26

        • МСиТВ_АБМ_2026

        • Python Eng

        • Экзамен ИКТ

        • ТестИИ

        • Информатика-Осень-ПМИ-2

        • Информатика-осень-ПМИ-1

        • ИММвс

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

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

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

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

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

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

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

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

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

        • Другое

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

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

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

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

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

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

        • Архив

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

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

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

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

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

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

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

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

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

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

        • ВМШ

          • ВМШ -2025

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

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

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

      • Олимпиады

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

      • Разное

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

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

Дополнительные блоки

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