Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практические ОП 04 выполнять 1-4, 5,6,10,15,16,18,23,24,26,29 за год.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.82 Mб
Скачать

Практическая работа №14 Обзор многопоточности в Java

Цель работы: научиться проводить анализ преимуществ, недостатков, проблем многопоточностивJava.

Оборудование: Персональный компьютер с ОС Linux

Индивидуальное задание. Провести анализ многопоточности, выявить особенности, достоинства и недостатки многопоточности в Java

Теоретические сведения

Работа с процессами и потоками

  • Создание процессов

    • Класс java.lang.ProcessBuilder

    • После создания потока его можно принудительно завершить или послать ему данные

  • Создание потоков

    • Наследование от класса java.lang.Thread – основной

Способы синхронизации потоков

  • Ключевое слово synchronized – критическая секция, основной

    • Объявление метода, целиком являющегося критической секцией

    • Выделение критической секции в теле метода

  • Использование типов пакета java.util.concurrent

    • CyclicBarrier

    • CountDownLatch

    • ConcurrentMap<K,V>

    • BlockingQueue<E>

Модель работы с потоками

  • В JRE до версии 1.2 использовалась модель GreenThreads

    • GreenThreads – имитация потоков операционной системы

    • JVM берёт на себя заботу о переключении между разными GreenThreads

    • Для ОС все GreenThreads управляемого процесса являются единственным потоком

    • Даже при использовании GreenThreads для ОС JVM представляется в виде нескольких потоков, например, потока, в котором запускается сборщик мусора

  • Преимущества

    • Теоретически выше скорость переключения между GreenThreads (реально работает очень медленно)

    • Требуется меньше ресурсов

    • Возможность создания большего количества GreenThreads, по сравнению с потоками

  • Недостатки

    • Невозможно выполнить GreenThreads на разных процессорах

    • В единицу времени выполняется только один GreenThread

  • Начиная с версии 1.2 в JRE по умолчанию используется модель потоков ОС, но модель GreenThreads также поддерживается

Особенности работы с потоками Java в ОС Solaris

  • В ОС Solaris для Java начиная с версии 1.2 возможна использование модели MхN для работы с потоками

Управление задачами

  • java.util.concurrent.ThreadPoolExecutor – реализация пула потоков

  • java.util.concurrent.ScheduledThreadPoolExecutor – дополнительная возможность выполнять задания по расписанию или периодически

Ход работы:

1. Ознакомиться с теоретическими сведениями.

2. Провести анализ многопоточности, выявить особенности, достоинства и недостатки. Результаты оформить в таблице.

Содержание отчета

Отчет по практической работе должен содержать следующие пункты:

- название практической работы;

- цель работы;

- краткие теоретические сведения;

- индивидуальное задание для выполнения практической работы;

- краткое описание хода выполнения работы;

- результаты выполнения работы;

- выводы.

Практическая работа №15 Методы управления памятью в операционных системах

Цель работы: научиться определять и анализировать основные характеристики памяти компьютера.

Индивидуальное задание

Провести анализ использования памяти в операционных системах

Оборудование: ПК с операционной системой Windows XP/7/8.

Теоретические сведения

Система памяти является важнейшей обязательной частью персонального компьютера, без которой он не может функционировать.

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

Основная память, в свою очередь, делится на оперативную и постоянную.

Оперативная память является главной частью основной памяти и применяется для оперативного обмена информацией, т.е. командами и данными, между процессором, внешней памятью, периферийными устройствами ПК. Устройства оперативной памяти сокращенно называют ОЗУ или RAM (RandomAccessMemory) - память с произвольным доступом. Это название соответствует тому положению, что оперативная память должна обеспечивать чтение, запись любой ячейки ОЗУ в произвольном порядке.

Оперативная память может выполняться с использованием элементов памяти динамических (DRAM) и статических (SRAM).

И динамическая, и статическая память являются энергозависимыми. При отключении питания информация будет потеряна.

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

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

Конструктивно элементы основной оперативной памяти выполнены в виде модулей, которые устанавливаются в специальные разъемы - слоты - на материнской плате. Возможна замена, дополнение модулей памяти.

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

Страничный файл, который называется также файлом подкачки, в Windows находится на жестком диске. Он используется для хранения данных и программ точно так же, как и физическая память, но его объем обычно превышает объем физической памяти. Windows использует файл подкачки (или файлы, их может быть несколько) для хранения информации, которая не помещается в RAM, производя, если нужно, обмен страниц между файлом подкачки и RAM.

Классические схемы управления памятью представлены на рисунке.

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

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

Таким образом, управление вводом/выводом — это одна из основных функций любой ОС. Одним из средств правления вводом/выводом, а также инструментом управления памятью является диспетчер задач Windows, он отображает приложения, процессы и службы, которые в текущий момент запущены на компьютере. С его помощью можно контролировать производительность компьютера или завершать работу приложений, которые не отвечают.

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

Также управлять процессами можно и «вручную» при помощи командной строки.

Команды Windows для работы с процессами:

  • at — запуск программ в заданное время

  • Schtasks — настраивает выполнение команд по расписанию

  • Start — запускает определенную программу или команду в отдельном окне.

  • Taskkill — завершает процесс

  • Tasklist — выводит информацию о работающих процессах

Для получения более подробной информации, можно использовать центр справки и поддержки или команду help (например: helpat)

  • cmd.exe — запуск командной оболочки Windows

Ход работы

  1. Отследите выполнение процесса explorer.exe при помощи диспетчера задач и командной строки.

  2. Продемонстрируйте преподавателю завершение и повторный запуск процесса explorer.exe из:

    • Диспетчера задач;

    • Командной строки.

3. Сделать выводы о взаимосвязи запушенных процессов и оперативной памятью компьютера.

Содержание отчета

Отчет по практической работе должен содержать следующие пункты:

- название практической работы;

- цель работы;

- краткие теоретические сведения;

- индивидуальное задание для выполнения практической работы;

- краткое описание хода выполнения работы;

- результаты выполнения работы;

- выводы.