Введение
На сегодняшний день появилось огромное количество аппаратных средств персональных компьютеров различных производителей, которые выполняют самые разные задачи: ввод информации, выполнение кода программ, вывод результатов работы. Порой становится важной возможность определения конфигурации, так как обращение из программы к оборудованию, которое физически не установлено в системном блоке, может привести к печальным для работоспособности этой программы последствиям.
В рамках выполнения курсового проекта предлагается создать приложение для определения конфигурации компьютера.
Программа должна отображать основные сведения о конфигурации компьютера по следующим позициям:
- Видеоадаптер
- Монитор
- Жесткие диски
- Сетевые адаптеры
- Время старта и завершения работы операционной системы
- Информация о пользователях
Всю собранную информацию из вычислительной системы необходимо сохранить в общий файл (или базу данных) на сервере.
В первой главе мы рассмотрим описание теоретических сведений, необходимых для реализации проекта.
Во второй главе курсового проекта мы рассмотрим обоснование выбора технологии, а также инструментов для реализации курсового проекта.
В третьей главе опишем подробно, какие методы использовались для определения конфигурации той или иной подсистемы компьютера.
1 Описание теоретических сведений
Написание курсового проекта будет производиться для операционных систем семейства Windows (x86 и x64).
Microsoft Windows — семейство проприетарных операционных систем корпорации Microsoft, ориентированных на применение графического интерфейса при управлении. Изначально Windows была всего лишь графической надстройкой для MS-DOS. По состоянию на август 2014 года под управлением операционных систем семейства Windows по данным ресурса NetMarketShare работает более 91% персональных компьютеров. Windows работает на платформах x86, x86-64, IA-64 и ARM.
Первые версии Windows не были полноценными операционными системами, а являлись надстройками к операционной системе DOS и были по сути многофункциональным расширением, добавляя поддержку новых режимов работы процессора, поддержку многозадачности, обеспечивая стандартизацию интерфейсов аппаратного обеспечения и единообразие для пользовательских интерфейсов программ.
Операционные системы семейства Windows NT в настоящее время работают на процессорах с архитектурами x86, x86-64 и ARM. Ранние версии (до 4.0 включительно) также поддерживали некоторые RISC-процессоры: Alpha, MIPS, и Power PC. Все операционные системы этого семейства являются полностью 32- или 64- битными операционными системами, и не нуждаются в MS-DOS даже для загрузки.
Только в этом семействе представлены операционные системы для серверов. До версии Windows 2000 включительно они выпускались под тем же названием, что и аналогичная версия для рабочих станций, но с добавлением суффикса, например, «Windows NT 4.0 Server» и «Windows 2000 Datacenter Server». Начиная с Windows Server 2003 серверные операционные системы называются добавлением суффикса «Server» и года выпуска.
В основу семейства Windows NT положено разделение адресных пространств между процессами. Каждый процесс имеет возможность работать с выделенной ему памятью. Однако он не имеет прав для записи в память других процессов, драйверов и системного кода.
Семейство Windows NT относится к операционным системам с вытесняющей многозадачностью. Разделение процессорного времени между потоками происходит по принципу «карусели». Ядро операционной системы выделяет квант времени (в Windows 2000 квант равен примерно 20 мс) каждому из потоков по очереди при условии, что все потоки имеют одинаковый приоритет. Поток может отказаться от выделенного ему кванта времени. В этом случае система перехватывает у него управление (даже если выделенный квант времени не закончен) и передаёт управление другому потоку.
В связи с тем, что Windows API спроектирован для использования с языком С, в качестве языка программирования будем использовать язык С++, который является надмножеством, хотя и не в строгом смысле, языка С.
C++ — компилируемый статически типизированный язык программирования общего назначения.
C++ широко используется для разработки программного обеспечения, являясь одним из самых популярных языков программирования. Область его применения включает создание операционных систем, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений (игр). Существует множество реализаций языка C++, как бесплатных, так и коммерческих и для различных платформ.
Синтаксис C++ унаследован от языка C. Одним из принципов разработки было сохранение совместимости с C. Тем не менее, C++ не является в строгом смысле надмножеством C; множество программ, которые могут одинаково успешно транслироваться как компиляторами C, так и компиляторами C++, довольно велико, но не включает все возможные программы на C.
Язык возник в начале 1980-х годов, когда сотрудник фирмы Bell Labs Бьёрн Страуструп придумал ряд усовершенствований к языку C под собственные нужды.
Когда в конце 1970-х годов Страуструп начал работать в Bell Labs над задачами теории очередей (в приложении к моделированию телефонных вызовов), он обнаружил, что попытки применения существующих в то время языков моделирования оказываются неэффективными, а применение высокоэффективных машинных языков слишком сложно из-за их ограниченной выразительности. Так, язык Симула имеет такие возможности, которые были бы очень полезны для разработки большого программного обеспечения, но работает слишком медленно, а язык BCPL достаточно быстр, но слишком близок к языкам низкого уровня и не подходит для разработки большого программного обеспечения.
Вспомнив опыт своей диссертации, Страуструп решил дополнить язык C (преемник BCPL) возможностями, имеющимися в языке Симула. Язык C, будучи базовым языком системы UNIX, на которой работали компьютеры Bell, является быстрым, многофункциональным и переносимым. Страуструп добавил к нему возможность работы с классами и объектами. В результате практические задачи моделирования оказались доступными для решения как с точки зрения времени разработки (благодаря использованию Симула-подобных классов), так и с точки зрения времени вычислений (благодаря быстродействию C).
Программная реализация была реализована с помощью Visual Studio 6.0. Проект реализован на языке программирования C++ с использованием Windows API. Программный проект представляет собой приложение для Windows, состоящее из основного окна приложения и главного меню (рисунок 1).
Приложение для корректной работы необходимо запускать от имени Администратора. В противном случае могут не работать некоторые функции.
Главное окно приложения содержит кнопки и область экрана, куда выводится информация о конфигурации.
В результате выполнения курсового проекта была разработана программа для определения конфигурации основных компонентов вычислительной системы: видео, сетевая информация, операционная система, системная информация.
Полученный комплекс был протестирован на нескольких конфигурациях и прошел все необходимые тесты.
При выполнении проекта были приобретены навыки программирования с использованием непосредственного обращения к функциям Windows API, были получены знания по внутреннему устройству и принципам функционирования операционной системы Windows.
При выполнении проекта были приобретены навыки программирования на языке C++: использование указателей, работа с массивами, записями, работа со строками.
СКРИНШОТЫ РАБОТЫ
