Лабораторная работа №4, 4 семестр, 7 вариант

Цена:
50 руб.

Состав работы

material.view.file_icon
material.view.file_icon LAB4.PAS
material.view.file_icon Лабораторная работа-4. 4-семестр. 7 - вариант.docx
material.view.file_icon LAB4.EXE

Необходимые программы

Работа представляет собой rar архив с файлами (распаковать онлайн), которые открываются в программах:
  • Microsoft Word

Описание

Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буфера. Для контроля также выполнять вывод на экран чисел, взятых потоком-потребителем из буфера. Вывод разными потоками выполнять в разные строки и/или разным цветом; дополнительно выводить на экран индикатор того, какой именно поток работает в настоящий момент, а также содержимое буфера и текущий процент его заполненности.

На экране параллельная работа потоков может быть представлена следующим образом:

Верхняя строка (производитель): ячейка для вывода текущего сгенерированного числа, признак активности потока (слово, символ, цвет), сообщение о переполнении буфера в случае этого события. Возможно, ещё какая-то полезная информация, например, номер заполняемой ячейки.

Нижняя (или вторая) строка (потребитель): ячейка для вывода текущего прочитанного числа, признак активности потока (слово, символ, цвет), сообщение о пустом буфере в случае этого события. Возможно, информация о номере считываемой из буфера ячейки.

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

Отдельной строкой или в углу экрана отображать процент заполненности буфера.

Предусмотреть обработку критических ситуаций:

1) Случай, когда потребителю предоставлено управление, а буфер данных пуст – тогда активный поток должен напрямую отдать управление производителю, а сам уйти в режим ожидания. При этом вопрос с квантом времени для производителя может быть решён по-разному. Например, остаток недоработанного потребителем кванта может быть передан производителю, либо ему может быть выделен новый квант времени.

2) Случай, когда управление предоставлено производителю, а буфер полон и записывать результаты некуда – поток-производитель должен заблокироваться до появления свободного места в буфере и запустить поток-потребитель. Вопрос с квантом может решаться аналогично.

Для того чтобы было возможно пронаблюдать работу потоков в замедленном режиме, в каждом из потоков следует поставить дополнительную задержку (стандартный delay), величину которой задавать с клавиатуры при запуске программы, в качестве параметра командной строки. При запуске без параметров выводить сообщение примерного вида: “Программа запущена со стандартной задержкой, величина которой =…” и формат запуска программы для задания желаемой задержки.

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

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

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

Контрольные вопросы:

1. Как поведет себя программа, если первым будет выбираться на выполнение поток-потребитель?
2. Каким образом можно создать приоритет тому или другому потоку? Используя только датчик случайных чисел? Добавьте возможность задания приоритета в форме параметра командной строки.
3. Возможно ли добавление в ту же программу новых потоков? Измените программу таким образом, чтобы можно было при ее запуске указывать требуемое количество потоков. При этом функции каждого потока определяются случайным образом. Т.е. может получиться несколько потребителей и один производитель, или наоборот… В крайней ситуации – все производители или все потребители. Как поведёт себя программа в подобном случае?

Дополнительная информация

Учебное заведение: Сибирский Государственный Университет Телекоммуникаций и Информатики Межрегиональный центр переподготовки специалистов
Год сдачи: 2018г
Предмет: Операционные системы
Преподаватель: Бах О.А.
Оценка: Зачёт
Лабораторная работа №4, 4 семестр, 7 вариант
1. Создание таблиц. Создайте таблицы: Faculty (Название факультета, Курс, Количество групп на курсе ), Group (Название группы, Фамилия старосты, Количество студентов в группе), Stud (ФИО, Домашний адрес, Телефон). (см. лекцию, п.8.3) Таблица Faculty Filed name Type Size Key F_Num + * F_Name A 5 F_Kurs I F_KolGrp I Таблица Group Таблица Stud Filed nam
User Madam : 25 сентября 2018
50 руб.
Лабораторная работа №4, 5 семестр, 7 вариант
Вариант 7 Напишите на языке ПРОЛОГ программу, которая в списке слов находит слово максимальной длины и ставит его последним (если таких слов несколько, то переставляется первое найденное). Список вводится с клавиатуры, цель – внутренняя. Например: Список [“f”,”baxg”,”add”,”qw”] преобразуется в [“f”,”add”,”qw”,”baxg”]. Вариант задачи выбирается по последней цифре пароля. Текст функции сохраняйте в файле. В теле функции использование операторов set и setq не допускается!
User Madam : 27 сентября 2018
50 руб.
Лабораторная работа №4, 5 семестр, 7 вариант
Лабораторная работа №4 По дисциплине: Человеко-машинное взаимодействие Преподаватель: Ракитский А.А. Оценка: Зачёт Год сдачи: 2018г 4.1. Проведите анализ соответствия программы (по вариантам) правилам Нильсена–Молиха. 4.2. Опишите, как принципы организации графического интерфейса учтены (или не учтены) в данной программе. Вариант 7: «Алгоритм Евклида»
User Madam : 27 сентября 2018
50 руб.
Лабораторная работа №5, 4 семестр, 7 вариант
Написать программу, которая будет работать с видеопамятью. Можно выполнить любое из приведенных ниже заданий. Независимо от конкретного задания программа должна работать резидентно. Текст, присутствовавший на экране до запуска программы, не должен портиться никаким образом. В программе следует использовать два обработчика прерываний – прерываний таймера и прерываний клавиатуры. Прерывания таймера регламентируют скорость перемещения объекта, причем параметр, характеризующий величину скорости, не
User Madam : 25 сентября 2018
50 руб.
Лабораторная работа-1. 4-семестр. 7 - вариант.
Написать программу, которая должна “озвучивать” клавиатуру, т.е. после запуска этой программы нажатие любой клавиши на клавиатуре будет сопровождаться звуковым сигналом. Клавиатура при этом должна оставаться работоспособной, т.е. продолжать выполнять свои основные функции в нормальном темпе. Программа должна быть резидентной, т.е. оставаться в памяти после своего завершения. В качестве пробного варианта длительность звукового сигнала и частоту задать константами в программе. Когда будет получе
User Madam : 25 сентября 2018
50 руб.
Лабораторная работа №3, 4 семестр, 7 вариант
Написать программу “часы”, которая будет однократно перехватывать показания системных часов и от них вести отсчет времени, используя собственный счетчик прерываний таймера (в качестве основы может быть использован обработчик прерываний таймера из предыдущей работы). Показания времени – часы, минуты, секунды – следует выводить в заданном месте экрана. Формат вывода: xx:xx:xx. Обновление показаний времени выполнять дискретно, через заданное количество секунд. Программа должна работать резидентно.
User Madam : 25 сентября 2018
50 руб.
Лабораторная работа №5, 4 семестр, 7 вариант
Задание 1:Динамическое изменение SQL-запросов. 1. Разместите на форме компонент Query (закладка Data Access на панели компонентов) и определите для него следующие свойства: • DatabaseName: DBDEMOS (выберите из списка) • SQL (выбрать все поля из таблицы Country); • Active. 2. Разместите на форме компонент DataSourse (определите для него свойство DataSet), DbGrid (определите для него свойство DataSourse). 3. Разместите на форме четыре метки для полей, по которым будет формироваться запрос, шесть к
User Madam : 25 сентября 2018
50 руб.
Лабораторная работа №1, 4 семестр, 7 вариант
ЗАДАНИЕ 1: Создать форму как показано на рисунке 1. Рис.1 1. Рекомендуемый порядок размещения на форме компонентов TPanel, TDirectoryListBox, TFileListBox и TSplitter: - Panel1, Panel2 – в верхней и нижней частях клиентской области ; - DirectoryListBox1– слева на клиентской области (свойство Align); - Splitter1; - FileListBox1 – на всю оставшуюся клиентскую область (свойство Align). 2. Для установки связей между списками DriveCo
User Madam : 25 сентября 2018
50 руб.
Лабораторная работа №3 по дисциплине: Техника мультисервисных сетей. Вариант 1
«Изучение технологии спектрального уплотнения DWDM» Цель работы: Изучение технологии спектрального уплотнения DWDM: - принципов передачи сигналов с разделением по длине волны в световоде; - компонентов ВОСП-WDM; - изучение характеристик ВОСП-WDM. Структурная схема системы передач WDM Результат прохождения теста 1. Укажите полосу пропускания ВОЛС. 2. Укажите основные оптические параметры одномодового волокна. 3. Какая рекомендация описывает ступенчатое одномодовое волокно типа SF? 4. Какую про
User Roma967 : 28 января 2023
400 руб.
promo
Программирование на языках высокого уровня. Язык программирования Си (2-ой семестр). Экзамен. Билет №12
1. Динамические структуры данных. Выделение и освобождение динамической памяти. 2. Организовать меню: Создание файла, Просмотр файла, Поиск, Выход. В файле содержатся структуры со сведениями о сессии: предмет, ФИО студента, семестр, дата сдачи, оценка. Вывести информацию за заданный семестр по заданному предмету.
User Aftalick : 15 октября 2014
240 руб.
Программирование на языках высокого уровня. Язык программирования Си (2-ой семестр). Экзамен. Билет №12
Общий порядок и особенности уплаты таможенных платежей
Таможенные платежи составляют значительную долю доходной части федерального бюджета России. Именно поэтому так важно исключить все возможные случаи недополучения казной таможенных доходов. Для решения этих вопросов в таможенном законодательстве предусматривается необходимость предоставления гарантий (способов обеспечения) уплаты таможенных платежей. Эти способы представляют собой специальные меры имущественного характера, стимулирующие их уплату в надлежащем порядке путем установления дополните
User Qiwir : 28 декабря 2013
5 руб.
Теплотехника Задача 3.131 Вариант 15
Произвести расчет термодинамических параметров газовой смеси, совершающей изобарное расширение до объема V2, если известны начальная температура t1, начальное давление р1 и масса смеси m. Определить: газовую постоянную и кажущуюся молекулярную массу, начальный объем V1, основные параметры в конечном состоянии, изменение внутренней энергии, энтальпии, энтропии, теплоту и работу расширения в процессе 1-2. Исходные данные для решения задачи приведены в таблицах 1, 2. При определении моляр
User Z24 : 20 июля 2026
350 руб.
Теплотехника Задача 3.131 Вариант 15
up Наверх