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

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

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

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

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

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

Указания

Согласовывать взаимодействие процессов необходимо при помощи общих объектов синхронизации.


Задание 14.1

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

                                   begin L:   …   Read;   …   Write;   …   go to L   end;

Любое число операций Read может выполняться одновременно, но каждая операция Write – есть критическая секция по отношению как к операции Read, так и другой операции Write. Используя известные вам программные методы синхронизации, напишите программы для каждого из процессов.


Задание 14.2

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

                                   begin L:   …   Read;   …   Write;   …   go to L   end;

Любое число операций Read может выполняться одновременно, но каждая операция Write – есть критическая секция по отношению как к операции Read, так и другой операции Write. Используя операции Дейкстры и соответствующие семафоры, расставьте их относительно операций Read и Write в каждом из процессов, чтобы правильно удовлетворить указанным ограничениям. Напишите программы для каждого из процессов.


Задание 14.3

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


Задание 14.4

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


Задание 14.5

Напишите процедуры для запроса и освобождения памяти, использующие стратегию размещения «первый подходящий», и структуру данных  для хранения информации о  доступных пространствах. На вход процедуре запроса должен поступать размер запрашиваемого блока (в байтах). Процедура должна вернуть адрес блока, если запрос может быть удовлетворен. В противном случае – вернуть 0. Процедура освобождения памяти должна получать в качестве входного параметра адрес adr. Результатом ее выполнения должно быть добавление блока, начиная с адреса adr, к доступному пространству.

 

Задание 14.6

Промоделируйте работу операционной системы по планированию распределения времени ЦП "сначала самые короткие задания". Пусть через время T в системе случайным образом генерируется появление задания с указанием ожидаемого времени выполнения t и добавляется в очередь заданий выполнения в ту позицию, которая соответствует t. Задания в очереди упорядочены по возрастанию времени их выполнения. Имитируйте выделение ЦП самому короткому заданию, по истечении   времени выполнения задания "переключайте" процессор  на следующее задание. Меняя  T и диапазон для генерируемых t,  проанализируйте при каких значениях T и  диапазон для генерируемых t у "длинных" заданий появляется  шанс быть выполненными. 


Задание 14.7

Промоделируйте работу операционной системы по планированию распределения времени ЦП "сначала с наименьшим оставшимся временем выполнения". Пусть через время T в системе случайным образом генерируется появление задания с указанием ожидаемого времени выполнения t и добавляется в очередь заданий выполнения в ту позицию, которая соответствует t.  Пусть величина времени ЦП, отведенного каждому процессу - q.  Имитируйте выделение ЦП заданию "с наименьшим оставшимся временем выполнения". Во время выполнения сгенерируйте случайным образом логическое значение, 0-процесс не прерван на операции ввода вывода, 1 - процесс заблокирован операцией ввода-вывода сигнал. Переведите его в очередь заблокированных процессов, пересчитав оставшееся время выполнения. Если блокировка произошла,  "переключайте" процессор  на следующее задание. Если блокировки не было, то по истечении кванта q, найдите среди  готовых к выполнению процессов тот,  оставшимся временем выполнения которого минимально. Периодически "будите" заблокированные на операции ввода-вывода процессы. Меняя  T, q,  интервал генерации операций ввода-вывода и диапазон для генерируемых t,  проанализируйте продвижение процессов. 


Задание 14.8

Рассмотрите алгоритм планирования процессов по приоритетам с вытеснениями,  когда  приоритет каждого процесса меняется во времени. Скорость изменения приоритета пропорциональна константе a, когда процесс ждет, и константе b, когда он выполняется. Пусть через время T в системе случайным образом генерируется появление задания с указанием ожидаемого времени выполнения t и приоритетом P и добавляется в очередь заданий.  Если приоритет нового процесса больше, чем приоритет выполняемого, то ЦП сразу выделяется новому процессу. Если  имеется несколько процессов с наивысшим приоритетом, то все они обслуживаются в режиме разделения времени с очень малой величиной кванта q. Через интервал времени T приоритеты всех процессов пересчитываются. Исследуйте поведение алгоритма в полном диапазоне изменения величин a,  b, диапазона приоритетов и T.


Задание 14.9

Напишите процедуры для запроса и освобождения памяти, использующие стратегию размещения «наилучший» (best-fit), и структуру данных  для хранения информации о  доступных пространствах. На вход процедуре запроса должен поступать размер запрашиваемого блока (в байтах). Процедура должна вернуть адрес блока, если запрос может быть удовлетворен. В противном случае – вернуть 0. Процедура освобождения памяти должна получать в качестве входного параметра адрес adr. Результатом ее выполнения должно быть добавление блока, начиная с адреса adr, к доступному пространству.


Задание 14.a

Напишите процедуры для запроса и освобождения памяти, использующие стратегию размещения «наименее подходящий» ((worst-fit), и структуру данных  для хранения информации о  доступных пространствах. На вход процедуре запроса должен поступать размер запрашиваемого блока (в байтах). Процедура должна вернуть адрес блока, если запрос может быть удовлетворен. В противном случае – вернуть 0. Процедура освобождения памяти должна получать в качестве входного параметра адрес adr. Результатом ее выполнения должно быть добавление блока, начиная с адреса adr, к доступному пространству.




◄ Лаб. Занятие 13. Обязательные задания для решения в классе
Утилиты ассемблирования программ для Intel 8088 (архив для Linux) ►
Пропустить Навигация
Навигация
  • В начало

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

      • Мои курсы

      • Теги

    • Мои курсы

    • Курсы

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

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

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

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