Курсовая работа (т): Виджет для переносного ПК: мониторинг состояния аппаратного обеспечения

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Виджет для переносного ПК: мониторинг состояния аппаратного обеспечения

Факультет компьютерных систем и сетей

Кафедра информатики








ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовому проекту

на тему: "Виджет для переносного ПК: мониторинг состояния аппаратного обеспечения"

Дисциплина: Архитектура вычислительных систем (АВС)



Выполнила: студентка группы 353501,

Новикова С.А.

Руководитель: ассистент кафедры информатики,

Плехова Т.В.

Оглавление

 

Введение

1. Анализ предметной области

1.1 Аппаратное обеспечение

1.1 Процессы и потоки

1.2 Обзор аналогов

1.3 Постановка задачи

2. Используемые технологии

2.1 C#

2.2 WPF и MUI

2.3 Visual Studio 2013

3. Программная реализация

3.1 Возможности платформы.net

3.2 Windows Management Instrumentation

3.3 Open Hardware Monitor

3.4 Процесс планирования и разработки

4. Описание применения

4.1 Окно мониторинга ЦПУ

4.2 Окно мониторинга ОЗУ

4.3 Окно мониторинга жестких дисков

4.4 Окно мониторинга батареи

4.5 Окно активных процессов

4.6 Окно настроек

Заключение

Список использованных источников

Приложения

Введение

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

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

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

Мониторинг необходим в случае обычной работы компьютера. Также он имеет большое значение при, так называемом, аппаратном разгоне. Данный режим работы предполагает изменение некоторых важных характеристик для достижения наибольшего быстродействия системы. В этом случае повышается скорость работы отдельных аппаратных компонентов, что приводит к "системному стрессу": увеличиваются температуры и напряжения различных устройств. Для того чтобы система продолжала функционировать, необходимо быть в курсе всех ее критических параметров.

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

1. Анализ предметной области


1.1 Аппаратное обеспечение


Аппаратное обеспечение вычислительных систем - обобщённое название оборудования, на котором работают компьютеры и сети компьютеров.

К аппаратному обеспечению обычно относят:

·        центральный процессор <https://ru.wikipedia.org/wiki/%D0%A6%D0%B5%D0%BD%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%80> (процессоры)

·        оперативную память <https://ru.wikipedia.org/wiki/%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%B0%D1%8F_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D1%8C>

·        системную логику <https://ru.wikipedia.org/wiki/%D0%A7%D0%B8%D0%BF%D1%81%D0%B5%D1%82>

·        периферийные устройства

·        сетевое оборудование <https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%82%D0%B5%D0%B2%D0%BE%D0%B5_%D0%BE%D0%B1%D0%BE%D1%80%D1%83%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5>

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

1.1 Процессы и потоки


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

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

·        Каждый процесс обладает собственной памятью. Потоки же, запущенные внутри него, разделяют память между собой;

·        Процесс внутри ОС обладает собственным идентификатором. Потоки существуют внутри процесса и обладают идентификатором внутри работающего приложения.

·        Каждый поток имеет собственный стек и собственный набор регистров;

При корректной реализации потоки имеют определенные преимущества над процессами. Им требуется:

·        Меньше времени для создания нового потока, поскольку создаваемый поток использует адресное пространство текущего процесса;

·        Меньше времени для его завершения;

·        Меньше времени для переключения между двумя потоками в пределах одного процесса;

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

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

1.2 Обзор аналогов


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

·        CoolMon v.2.0 Final. Позволяет наблюдать за количеством процессов, температурой и загруженностью процессора, скорости вращения вентиляторов.

·        Open Hardware Monitor. Обеспечивает мониторинг процессора, жестких дисков, видеокарты, вентиляторов.

·        PC Accelerator 2004. Предназначена для оптимищации и ускорения работы компьютера. Позволяет изменять настройки привода CD-ROM, рендеринга видеокарты, различных приложений.

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

.3 Постановка задачи


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

В данной курсовой работе будет реализовано приложение по сбору информации об аппаратном обеспечении компьютера.

Задачами программного обеспечения являются:

·        мониторинг состояния жестких дисков: оценка памяти, температуры;

·        мониторинг состояния оперативной памяти;

·        мониторинг состояния аккумулятора: статус, напряжение;

·        отслеживание активных процессов и их модулей.

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

2. Используемые технологии


Приложение "Мониторинг аппаратного обеспечения" реализовано на языке C# в среде программирования Visual Studio 2013 с использованием технологии Windows Presentation Foundation (WPF).

.1 C#


98% преимуществ C# относятся к преимуществам.net, а не к преимуществам самого языка, к которым относятся сборщик мусора, нормальная поддержка исключений, обширная стандартная кодобаза, атрибуты и отражение, делегаты (хотя, на самом деле, можно было обойтись и без них) и события, промежуточный код, декларативные механизмы обеспечения безопасности выполнения кода, межъязыковое взаимодействие, свойства, индексы, достаточно полная и непротиворечивая система типов и т.д.# разрабатывался как язык программирования прикладного уровня для CLR, и, как таковой, зависит, прежде всего, от возможностей самой CLR. Это касается, прежде всего, системы типов C#, которая отражает BCL. Присутствие или отсутствие тех или иных выразительных особенностей языка диктуется тем, может ли конкретная языковая особенность быть транслирована в соответствующие конструкции CLR. Так, с развитием CLR от версии 1.1 к 2.0 значительно обогатился и сам C#; подобного взаимодействия следует ожидать и в дальнейшем. (Однако, эта закономерность была нарушена с выходом C# 3.0, представляющего собой расширения языка, не опирающиеся на расширения платформы.net.) CLR предоставляет C#, как и всем другим.net - ориентированным языкам, многие возможности, которых лишены "классические" языки программирования. Например, сборка мусора не реализована в самом C#, а производится CLR для программ, написанных на C# точно так же, как это делается для программ на VB.net, J# и др.

Среди достоинств самого C# можно выделить анонимные делегаты и лямбда-выражения, продолжения (continuations), встроенная в язык реализация некторых популярных примитивных паттернов проектирования (например, итераторов), большая степень выразительности, синтаксический сахар для типичных задач (в том числе linq), вывод типов из инициализации, нормальная поддержка модульности, частично определяемые типы и ещё много чего по мелочи. Приятно радует сведение к минимуму неявных преобразований типов и перегрузок унарных операторов.

Есть у C# и недостатки по отношению к C++, но в целом применение C# почти всегда гораздо дешевле при большем спектре решаемых с его помощью задач, нежели применение C++.

.2 WPF и MUI


Windows Presentation Foundation (WPF) - это технология для построения клиентских приложений Windows, являющаяся частью платформы.net. WPF разработана как альтернатива технологии Windows Forms. Основные особенности технологии WPF:

.        Собственные методы построения и рендеринга элементов. В Windows Forms классы для элементов управления делегируют функции отображения системным библиотекам, таким как user32. dll. В WPF любой элемент управления полностью строится самой WPF.

. Независимость от разрешения устройства вывода. Для указания размеров в WPF используется собственная единица измерения, равная 1/96 дюйма. Кроме этого, технология WPF ориентирована на использование не пиксельных, а векторных примитивов.

. Декларативный пользовательский интерфейс. В WPF визуальное содержимое окна можно полностью описать на языке XAML. Это язык разметки, основанный на XML. Применение XAML является предпочтительным, но не обязательным - приложения WPF можно создавать, используя только код.

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

. Анимация. В WPF анимация - неотъемлемая часть программного каркаса. Анимация определяется декларативными дескрипторами, и WPF запускает её в действие автоматически.

. Приложения на основе страниц. В WPF можно строить приложения с кнопками навигации, которые позволяют перемещаться по коллекции страниц. Кроме этого, специальный тип приложения WPF - XBAP - может быть запущен внутри браузера.

. Стили и шаблоны. Стили стандартизируют форматирование и позволяют повторно использовать его по всему приложению. Шаблоны дают возможность изменить способ отображения любых элементов управления, даже таких основополагающих, как кнопки или поля ввода.

Для упрощения создания пользовательского интерфейса использовался шаблон MUI (Modern User Interface) for WPF. Он представляет собой набор элементов управления и стилей, применяемых к готовому WPF-приложению. MUI является проектом с открытым кодом и используется в Windows Phone и Windows Store. Особенность данного шаблона интерфейса - возможность изменения внешнего вида приложения в течение его работы.

.3 Visual Studio 2013


Visual Studio включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и как отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных. Visual Studio позволяет создавать и подключать сторонние дополнения (плагины) для расширения функциональности практически на каждом уровне, включая добавление поддержки систем контроля версий исходного кода (как например, Subversion и Visual SourceSafe), добавление новых наборов инструментов (например, для редактирования и визуального проектирования кода на предметно-ориентированных языках программирования или инструментов для прочих аспектов процесса разработки программного обеспечения (например, клиент Team Explorer для работы с Team Foundation Server).

В Visual Studio 2013 добавлены новые возможности:

·        Team Explorer;

·        режим карты для просмотра кода;

·        Система CodeLens;

·        Облачная структура в Visual Studio Online;

3. Программная реализация


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

3.1 Возможности платформы.net


При реализации системы по сбору информации о процессах/потоках были использованы возможности платформы.net.

Статический класс Process из пространства имен System. Diagnostic предоставляет доступ к локальным и удаленным. В работе использовались методы GetProcesses (), GetProcessByName () для получения процесса. Экземплярное свойство ProseccName позволяет получить информацию о процессе, а так же получить доступ к модулям данного процесса. Свойство Modules возвращает коллекцию всех модулей, относящихся к данному процессу. Названия файлов - значения свойства ModuleName каждого модуля (Приложение А)

.2 Windows Management Instrumentation


Windows Management Instrumentation (WMI) - это одна из базовых технологий для централизованного управления и слежения за работой различных частей компьютерной инфраструктуры под управлением платформы Windows.

Технология WMI - это расширенная и адаптированная под Windows реализация стандарта WBEM, принятого многими компаниями, в основе которого лежит идея создания универсального интерфейса мониторинга и управления различными системами и компонентами распределенной информационной среды предприятия с использованием объектно-ориентированных идеологий и протоколов HTML и XML.

В основе структуры данных в WBEM лежит Common Information Model (CIM), реализующая объектно-ориентированный подход к представлению компонентов системы. CIM является расширяемой моделью, что позволяет программам, системам и драйверам добавлять в неё свои классы, объекты, методы и свойства., основанный на CIM, также является открытой унифицированной системой интерфейсов доступа к любым параметрам операционной системы, устройствам и приложениям, которые функционируют в ней.