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

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

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

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

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

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

Требования к работе

  1. Разделяемую память должен создавать только первый процесс.
  2. При повторной попытке создать разделяемую память должна выдаваться ошибка.
  3. Второй(и остальные, если есть по заданию) процесс должен подключаться к уже существующей памяти.
  4. По окончании работы процессов память должна удаляться.

Задание 11.0

Реализовать программу для игры двух пользователей в игру «крестики-нолики» на поле размеров, как минимум, 3 × 3. Процесс должен дождаться запуска взаимодействующего процесса. Далее случайным образом определяется очерёдность ходов, после чего оба процесса по очереди ждут от пользователей ввода данных.


Задание 11.1

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


Задание 11.2

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


Задание 11.3

Реализовать программу, которая дожидается запуска заданного количества экземпляров своего процесса, которым назначаются последовательные номера. Дальше первый процесс генерирует случайное число, которое передаёт второму процессу. Второй процесс увеличивает число на 1 и передаёт дальше. Последний процесс после увеличения числа передаёт его первому процессу, который после его увеличения выводит на печать. Передачу значений можно организовать при помощи массива в разделяемой памяти.


Задание 11.4

Реализовать две программы, одна из которых генерирует последовательность целых чисел:

xi = [A sin (ω i)]        ∀ i = 0, 1, ..., T

для заданных A, ω и T. (Здесь квадратные скобки обозначают операцию округления). После генерирования очередной порции данных программа записывает их в буфер ограниченного размера и дожидается, пока другая программа не прочитает их оттуда. Вторая программа после получения очередной порции данных должна выводить их на печать.

 

Задание 11.5

Реализовать две программы, первая из которых, будучи запущенной в нескольких экземплярах процесса, получает свой порядковый номер и записывает его заданное количество раз в буфер ограниченного размера. Другая программа должна  забрать эти данные из буфера и вывести на печать.


Задание 11.6

Напишите программы для реализации следующей задачи. Программа клиент генерирует случайным образом N целых чисел в диапазоне от M до K и передает их серверу через разделяемую память. Сервер принимает числа и подсчитывает две суммы - отдельно для четных чисел и для нечетных. Получив все переданные числа, сервер выводит полученные значения сумм на stdout. 


Задание 11.7

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


Задание 11.8

Напишите программы для реализации следующей задачи. Программа клиент генерирует случайным образом N целых чисел в диапазоне от M до K и передает их серверу через разделяемую память. Сервер принимает числа и подсчитывает количество чисел, лежащих в диапазоне [M, (K-M)/2-1] и в диапазоне [(K-M)/2, K]. Получив все переданные числа, сервер выводит посчитанные количества  на stdout.  


Задание 11.9

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


Задание 11.a

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


Задание 11.b

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


Задание 11.c

Напишите программы для реализации следующей задачи. Программа клиент записывает в разделяемую память последовательность символов. Сервер принимает эту последовательность и заменяет все строчные латинские символы на заглавные. После чего выводит последовательность на stdout.


Задание 11.d

Напишите программы для реализации следующей задачи. Программа клиент записывает в разделяемую память последовательность символов. Сервер принимает эту последовательность и записывает ее в обратном порядке. После чего выводит результат на stdout.


Задание 11.e

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


Задание 11.f

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


Задание 11.g

Реализовать программу, которая дожидается запуска заданного количества N экземпляров своего процесса, которым назначаются последовательные номера. Дальше первый процесс генерирует последовательность из N случайных чисел, которые передаёт второму процессу. Второй процесс увеличивает второе получаемое число на 1 и передаёт дальше. Третий процесс увеличивает третье получаемое число на 1 и передаёт дальше. Последний процесс после увеличения последнего числа выводит все числа на печать. Передачу значений можно организовать при помощи массива в разделяемой памяти.


Задание 11.h

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


Задание 11.i

Реализовать 2 программы. Первая программа дожидается запуска заданного количества N экземпляров второй программы, которым назначаются последовательные номера. Дальше первый процесс генерирует последовательность из N случайных чисел, которые передаёт второй программе. Второй процесс увеличивает второе получаемое число на 1 и передаёт дальше. Третий процесс увеличивает третье получаемое число на 1 и передаёт дальше. Последний процесс после увеличения последнего числа выводит все числа на печать. Передачу значений можно организовать при помощи массива в разделяемой памяти.


Задание 11.j

Реализовать 2 программы. Первая программа дожидается запуска заданного количества экземпляров второй программы, которым назначаются последовательные номера. Дальше первая программа генерирует последовательность случайных чисел, которые передаёт второй программе. Второй процесс увеличивает каждое получаемое число на 1 и передаёт дальше. Последний процесс после увеличения чисел выводит их на печать. Передачу значений можно организовать при помощи массива в разделяемой памяти.


Задание 11.k

Реализовать 2 программы. Первая программа дожидается запуска заданного количества экземпляров второй программы, которым назначаются последовательные номера. Дальше первая программа генерирует случайное число, которое передаёт второму процессу. Второй процесс увеличивает число на 1 и передаёт дальше. Последний процесс после увеличения числа передаёт его первому процессу, который после его увеличения выводит на печать. Передачу значений можно организовать при помощи массива в разделяемой памяти.


Задание 11.l

Напишите программы для реализации следующей задачи. Программа клиент записывает в разделяемую память последовательность символов. Сервер принимает эту последовательность и выводит на stdout сам символ и его код.


Задание 11.m

Реализовать программу, которая дожидается запуска заданного количества N экземпляров своего процесса, которым назначаются последовательные номера. Дальше первый процесс генерирует последовательность из N*N случайных чисел, которые передаёт второму процессу. Второй процесс считает сколько раз его порядковый номер встретился в этой последовательности. Аналогично третий процесс считает сколько раз его порядковый номер встретился в этой последовательности. После окончания работы всех процессов первая программа выводит на консоль сгенерированную последовательность символов. Передачу значений можно организовать при помощи массива в разделяемой памяти.


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

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

      • Мои курсы

      • Теги

    • Мои курсы

    • Курсы

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

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

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

          • 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
Сводка хранения данных
Скачать мобильное приложение Яндекс.Метрика