Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Утилита діагностики компьютера

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Серед пакетів сервісних утиліт, безперечно, «першим серед рівних «, є Norton Utilities що його випускає фірмою Symantec вже доросший до 2002;й версії. Яка Входить в окремий пакет утиліта System Information надає зручно сгруппированную інформацію з всім основним компонентами комп’ютера. Є можливість деталізації інформації з деяким розділах, а як і сформувати звіт. Досить наочно й барвисто… Читати ще >

Утилита діагностики компьютера (реферат, курсова, диплом, контрольна)

Техническое завдання … 2 Анотація … 3 Запровадження … 5.

Глава 1. Огляд і аналіз подібних програм і выбор

мови программирования.

1. Огляд і аналіз таких програм … 7.

2. Актуальність завдання … 18.

3. Вибір мови програмування … 19.

Глава 2. Розробка алгоритмов.

1. Розробка алгоритму … 22.

2. Взаємодія між модулями … 27.

Глава 3. Експлуатаційна часть.

1. Керівництво програмісту … 28.

3.2 Керівництво користувачеві … 38.

Укладання … 44.

Список використовуваної літератури … 45.

Приложение 1 Лістинг програми Додаток 2 Граф — листи Технічне задание.

Розробити утиліту діагностику і тестування основних пристроїв ЭВМ.

Ця утиліта варта ухвали і тестування основних пристроїв ЕОМ, як-от жорсткий диск, центральний процесор, оперативна пам’ять і т.д.

Системные вимоги до программе:

. Intel 486DX 50 MHz і выше.

. ОС Windows 95 / 98 / 2000 / ХР.

. ОЗУ 16 Mb.

. Вільного місця на диску щонайменше 2 Mb.

Аннотация.

Ця пояснювальну записку містить інформацію про виконаною випускний роботі. Випускна робота є утиліту діагностику і тестування основних пристроїв ЭВМ.

Пояснювальна записка содержит:

Сторінок — 45.

Малюнків — 21.

Граф-листов — 4.

Також до випускний роботі додається лістинг вихідної програми, яке у собі 27 сторінок вихідного откомпилированного тексту програми складеного мовою програмування Borland Delphi 6.0 Enterprise.

Аннотация.

Бул тушундуруучу катта менин бутуруу ішим жонундо жазылган. Бутуруу ишимдин темасы бул электрондук эсептоочу машинаны діагностика жана тест кылган программа.

Катта томонкулор бар:

Барактар — 45.

Суроттор — 21.

Чийилген кагаздар — 4.

Андан башка бутуруу ишине программанын коду кошулган. Бул програма Borland Delphi 6.0 Enterprise программалоо тилинде жазылган жана анын колому — 27 барак.

Annotation.

This explanatory note have information about tesis. Tesis about utility which is making diagnostic main components of PC.

Explanatory note contents:

Pages — 45.

Images — 21.

Flowgraph — 4.

There is also source code of program, which is contains 27 pages of code which was compiled in Borland Delphi 6.0 Enterprise.

Комп’ютер давно став невід'ємною ознакою нашого побуту — на роботі, і майже. Але чи досить добре знаємо свого залізного помічника, його сильні й слабкі боку? Давно відомо, що найбільшої ефективністю має добре збалансована система, без явних чи прихованих «пляшкових горлечок «окремих складових частин, що перешкоджають досягненню всієї системою максимальної продуктивності при мінімальних матеріальних затратах.

Навряд чи знайдеться знавець, вміє по зовнішнім виглядом комп’ютера відрізнити одну «трієчку» (80 386) одної (Pentium III), або ж «четвірку» (80 486) одної «четвірки» (Pentium IV). Якщо ж корпус не сірий стандартний, а оригінальний чорний чи з металевим блиском, притому незвичайної компонування, то завдання ще більше ускладнюється: який завжди вдасться впізнати навіть XT. Звісно, неcколько допоможе шильдик «Intel Inside» чи світлове табло з цифрами, які мають показувати тактову частоту. Та ось лихо, перше може відсутні, а інформація другою неможливо пов’язані з реальним значенням. Та й ПК — це зовсім як процесор, корисно щонибудь знати і жорсткому диску чи звуковий плате.

Частина даних вдасться отримати, якщо для ОС встановлено Windows. Хіба робити, якщо ОС окремо не змогла визначити тип устрою чи взагалі його знайти? Або встановлено не Windows, а будь-яка інша система, яка повинна повідомити ці дані? І тут допоможе надійдуть спеціальні утиліти, призначені визначення конфігурації комп’ютера. Більша частина з них написана для DOS. З одного боку, це пояснюється лише тим, що у DOS програма має повний доступом до «залозу», тоді як і Windows він утруднений. З іншого — DOS усе є якимось «загальним знаменником» багатьом ОС, т. е. програми нею теоретично мають працювати скрізь, хоча, можливо, і з декотрими обмеженнями. Та й завантажити DOS з однієї дискеты.

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

Глава 1. Огляд і аналіз подібних програм і выбор

мови программирования.

1.1 Огляд і аналіз подібних программ.

У цьому огляді я оглянув продукти, доступні через Сеть.

Norton Utilities.

Серед пакетів сервісних утиліт, безперечно, «першим серед рівних », є Norton Utilities що його випускає фірмою Symantec вже доросший до 2002;й версії. Яка Входить в окремий пакет утиліта System Information надає зручно сгруппированную інформацію з всім основним компонентами комп’ютера. Є можливість деталізації інформації з деяким розділах, а як і сформувати звіт. Досить наочно й барвисто, з допомогою кругових діаграм, оформлена інформація про ефективність й використанні диска. Протестувати процесор можна, натиснувши кнопку Benchmark. Програма видає графік зразкового швидкодії Вашої системи, за одиницю виміру приймається продуктивність РС з урахуванням процесора Intel 386SX-16MHz. Для порівняння дано рейтинги різних комп’ютерів. За всього моєму повазі до справді чудовому пакету Norton Utilities 2001, утиліта System Information є дуже посереднім інструментом щоб одержати вичерпної інформації про компонентах системи, плюс до всього дуже наочно, особливо у порівнянні з цими двома нижеописанными програмами, відбиваються систему, отже зовсім добиває своєї примітивністю і внушающими довіри результатами, тестова підсистема програми. Результат — лише удовлетворительно.

SiSoft SANDRA.

Пакет діагностичних утиліт SiSoft SANDRA 2001 (абревіатура розшифровується як System Analyzer Diagnostic and Repor-ting Assistant, що означає: помічник у проведенні аналізу та діагностики системи) є відмінним рішенням для непрофесійного користувача. До складу повної версії пакета складаються з близько 70 модулів для збору інформації про основних компонентах PC (включаючи CPU, вінчестер, відеоі аудіосистеми, принтери, комунікаційне устаткування, клавіатура, миша тощо.), тестування (перевіряються CPU, дискові нагромаджувачі, пам’ять та мережеве устаткування, включаючи Burn-in Wizard — майстер перевірки системи в екстремальних умовах, по черзі що запускає обрані тестові модулі) і вироблення рекомендацій в поліпшенні роботи. Є можливість перевірки розташування вмісту основних конфігураційних файлів. Графічний інтерфейс програми досить наочний і дозволяє їм отримати найповнішу інформацію про комп’ютері, включаючи де й недокументированную. Головне вікно програми нагадує панель управління Windows, тільки з великим кількістю ярликів. Усі вони відповідає окремої утиліті, відповідальної за збирання та відображення інформацію про певному устрої, який входить у систему, з наданням даних про виробника, версії, дати виготовлення, быстродействии тощо. Нині підтримується ОС Windows 95/98, але, за повідомленням розробників, у таких версіях Sandra орієнтуватиметься ось на підтримку Windows 2000/XP, що пов’язані з переходом програми на Unicode, підтримувану в Windows 9х лише частково. Пакет приходить у двох версіях: професійної, що є умовнобезплатної, й потребує за реєстрацію 29 $ і стандартним, повністю безплатної, але має деякі обмеження. Зокрема, відсутні ряд додаткових діагностичних модулів, а й решти предосить для докладної діагностики системи. Оцінка однозначна — отлично.

HARDiNFO PRO.

Так само цікава програма HARDiNFO PRO, розроблена фірмою Ultimate Systems для користувачів ОС Windows 95/98. Крім неї, існує варіант HARDiNFO 2000, виконує самі функції, але оптимізований для Windows Me/2000. Інтерфейс програми дуже барвистий і наочний. В кожній з закладок надано вичерпна інформацію про процесорі, аудіо-, відеоі комунікаційної підсистемах, принтерах і нагромаджувачах. Крім цього, звідти ж можна запустити відповідні перевірочні тести та деякі системні утиліти. Безплатна оцінна версія програми працездатна тільки 14-ти днів, вартість реєстрації становить 29 $. Загальні враження від програми дуже гарні, вона гідна найвищої оцінки — отлично.

Informer.

Informer 3.40 — дуже непогана вітчизняна розробка, призначена для аналізу конфігурації комп’ютера та видає за нею докладний звіт. Програма надає досить широкі можливості аналізу, як за заявам розробника, є можливість визначення 110 типів процесорів та19 — сопроцессоров, причому вимір тактовою частоти здійснюється з точністю 0.1МГц. Розпізнаються 2574 моделей моніторів, 324 виробників материнських плат, дуже багато різних накопичувачів і AGP/PCI-устройств і визначаються режими його роботи. Як недолік можна назвати повну відсутність можливості оцінити продуктивність окремих компонентів системи. Програма Informer варта використання під керівництвом ОС DOS, тому їй притаманні всі витрати примітивного псевдографического інтерфейсу, але ці у якийсь мері компенсується дуже скромними її розмірами — всього 200 Kb, що дозволяє вживати утиліту зі звичайною дискети. Informer, крім DOS, чудово працює й під Windows 95/98/Ме. Поширюється безплатно. Підсумкову оцінку можна з’ясувати, як хорошо.

Cool Info.

Не відома в нас у країні утиліта Cool Info 99, остання версія якої, 2.7i, варта роботи з управлінням Windows 95/98 й цілком сумісна з різними версіями Windows NT. Як це і більшість інших аналогічних утиліт, Cool Info 99 легко справляється з визначенням більшості компонентів сучасних комп’ютерів: процесорів, моніторів, відеоі аудиокарт, дискових накопичувачів, модулів пам’яті, принтерів, мережевих і комунікаційних систем, клавіатур, мишей. Крім цього, виводиться докладна інформацію про файлової системі, встановлених драйверах, шрифтах, тощо. Поруч із зручним графічним інтерфейсом користувача, Cool Info 99 забезпечує можливість записи отриманих успіхів у базі даних чи текстовому форматі, тоді як виміряти продуктивність устаткування годі. Cool Info 99 поширюється як shareware-продукт, тому, після 30 днів ознайомлення, виробники просять заплатити 20 доларів. Програма добротна, але не матимуть родзинки, оцінка — удовлетворительно.

Dr.Hardware.

Ще з часів DOS однієї з найбільш популярних утиліт, що тестують комп’ютерне «залізо », була Dr.Hardware. Нині вже актуальна 2001;я її версія, причому є варіанти для Windows 95/98/Ме (Standard/Professional), для Windows NT/2000 (Professional). Стандартна версія — найдешевша, варта домашніх користувачів, професійна — доповнена засобами автоматичного створення звітів і має можливість контролю моніторингу системної плати. Існує ще версія Premium, аналогічна Professional, але підтримує все операційні системи сімейства Windows: 95/98/Ме/NT/2000. У процесі аналізу Dr. Hardware збирає відомостей про встановленому устаткуванні не тільки з системного реєстру, а й використовуючи установки BIOS-а, а як і безпосереднього звертаючись до портів ввода/вывода. Це дозволяє, крім створеного ОС списку устаткування, додатково перевірити кожен компонент. Через війну Dr. Hardware може надати інформацію навіть у разі некоректною установки компонента. Результати тестування представлені у вигляді кругових і лінійних діаграм, що зручне. Програма регулярно обновляється щодня і тому може розпізнавати самі сучасні процесори, чипсеты та інші нові компоненти системи. За всіх достоїнствах Лікаря Харда, деяка ваговитість його зовнішнього оформлення Демшевського не дозволяє виставити йому найвищий бал, але добре — твердое.

HWiNFO.

Рекордсменом за частотою оновлень можна вважати утиліту HWiNFO (Hardware Info), відновлення якої виходять щомісяця. Під одним назвою тут, фактично, представлено утиліти: HWiNFO для DOS (остання версія — 4.7.6) і HWiNFO32 для WindowsNT/2000 (остання версія — 0.9beta). HWiNFO32, як з сайту розробника, підтримує і Windows 95/98, але дуже не буде обмежено й без гарантії коректності результатів. навіщо взагалі тоді декларувати таку підтримку? Як очевидне гідність можна відзначити дуже скромні, для програми подібного типу, розміри, складові всього 516Kb. Набір аналізованих пристроїв досить широкий і HWiNFO мало поступається іншим аналогічним програмам. Окрім звичних бенчмарков процесора і накопичувачів, є можливість провести тестування CPU на помилки, крім цього, відбиваються дані, котрі знімаються з сенсорів моніторингу системної плати. Хоча зовнішній вигляд програми неяскравий, вона заслуговує хорошою оцінки, але, через некоректною роботи у найпоширеніша ОС — Windows 9x, виходить лише — удовлетворительно.

PC Information.

Інформаційна програма PC Information дає досить повне уявлення про комп’ютері користувача. Цю інформацію включає даних про процесорі, системної платі, BIOS-е, моніторі, пам’яті, дискових нагромаджувачах, мережевих, відеоі звукових платах, модемах, принтерах, мишці, параметрах мережного сполуки, а як і про встановлених операційній системи та програмне забезпечення. Як завжди, більшість даних збирається автоматично, але окрема інформація про некоректно встановленому устаткуванні може бути впроваджена вручну. Програма, маючи розмір 416 Kb, не вимагає інсталяції і то, можливо запущена з дискети. Великим гідністю PC Information є підтримка всіх Ос Windows, починаючи з версії 3.1 (хто пам’ятає таку?). За бажання програму можна запускати з командної рядки, використовуючи додаткові параметри. Утиліта поширюється за принципом shareware, реєстрація за 15 $ дозволить удається зберігати й роздруковувати звіт про виконану роботу в текстовому, CSV чи HTML-формате. Оцінка — хорошо.

Звісно, розглянутими вище утилітами усе різноманіття програм, які відбивають «залізну «начинку комп’ютера, не обмежується, але навряд чи ті, що залишилися поза рамками огляду, бодай у чомусь принципово різняться від якого вже розглянутих. За великим рахунком, з них приносить практично вичерпну інформацію про апаратної конфігурації компьютера.

1.2 Актуальність задачи.

Існують багато інших програм діагностики комп’ютера, і в Вас може виникнути цілком природні питання, а якої міри моя утиліта краще існуючих, чи навіть що вона виділяється з їхньої загального низки? Кращий відповідь Ви получите, если я опишу Вам одну конкретно узяту програму, що вважається однією з найбільш «просунутих» у своїй класі - це Sisoft Sandra 2001(System Analyzer Diagnostic and Repor-ting Assistant).

До складу повної версії пакета складаються з близько 70 модулів для збору інформації про основних компонентах PC (включаючи CPU, вінчестер, відеоі аудіосистеми, принтери, комунікаційне устаткування, клавіатура, миша і ін.), тестування (перевіряються CPU, дискові нагромаджувачі, пам’ять та мережеве устаткування) і формування рекомендацій в поліпшенні роботи. Є можливість перевірки розташування вмісту основних конфігураційних файлів. Графічний інтерфейс програми досить наочний і дозволяє отримати найповнішу інформацію про комп’ютері, включаючи де й недокументированную.

Єдиний недолік Сандры — те, що її професійна версія стоїть 29 долларов.

З вищевказаного, я дійшов висновку, що єдиним гідністю моєї утиліти є його безкоштовність для кінцевого користувача. 1.3. Вибір мови программирования.

Потреба з розробки й застосуванні ефективних і адекватних реальної буденної дійсності комп’ютерних програм, тож технологій сьогодні зростає. Комп’ютерна технологія незамінна, оскільки він дає можливість оптимізувати раціоналізувати управлінську функцію за рахунок нових засобів збору, передачі й перетворення информации.

Випускна робота написана в програмної середовищі Delphi. Це на питання, а чому обраний саме такий мову программирования?

Delphi має широким набором можливостей, починаючи з проектувальника форм і закінчуючи підтримкою всіх форматів популярних баз даних. Середовище усуває необхідність програмувати такі компоненти Windows загального призначення, як мітки, піктограми і навіть діалогові панелі. Працюючи в Windows, ви неодноразово бачили однакові «об'єкти» у багатьох різноманітних додатках. Діалогові панелі (наприклад, Choose File і Save File) є взірцями багаторазово використовуваних компонентів, вбудованих у Delphi, що дозволяє пристосувати ці компоненти до наявний завданню, аби вони працювали у такий спосіб, як потрібно створюваному додатку. Також тут є попередньо певні візуальні і візуальні об'єкти, включаючи кнопки, об'єкти з цими, меню вже побудовані діалогові панелі. З допомогою цих об'єктів можна, наприклад, забезпечити введення даних просто кількома натисканнями кнопок миші, не вдаючись до програмування. Та частина, що безпосередньо пов’язані з програмуванням інтерфейсу користувача системою, отримав назву візуальне программирование.

Візуальне програмування хіба що додає новий вимір при створенні додатків, дає можливість зображати ці об'єкти на екрані монітора до виконання самої програми. Без візуального програмування процес відображення вимагає написання фрагмента коду, що створює і настрающего об'єкт «за місцем». Побачити закодовані об'єкти було можливе тільки під час виконання програми. За такого підходу досягнення того, щоб об'єкти виглядали громіздко і поводилися заданим чином, стає стомлюючий процесом, який вимагає кількаразових виправлень програмного коду із наступною прогонкою програми розвитку й контролю над тим, що врешті-решт получилось.

Завдяки засобам візуальної розробки можна працювати з об'єктами, тримаючи поперед очі і одержуючи результати відразу. Здатність бачити об'єкти такими, якими вони під час виконання програми, знімає необхідність виконання безлічі операцій вручну, типові до роботи на середовищі, не яка має візуальними засобами — незалежно від цього, є вона объектно-ориентированной чи ні. Потому, як об'єкт поміщений у форму середовища візуального програмування, усі його атрибути відразу відбиваються як коду, що відповідає об'єкту як одиниці, виконуваної під час роботи программы.

Розміщення об'єктів в Delphi пов’язано з більш тісними стосунками між об'єктами і її реальним програмним кодом. Об'єкти вкладаються у вашу форму, у своїй код, відповідальний об'єктах, автоматично записується в вихідний файл. Цей код компілюється, забезпечуючи більш високу продуктивність, ніж візуальна середовище, яка інтерпретує інформацію лише хід виконання програми. Глава 2. Розробка алгоритмов.

2.1. Розробка алгоритма.

Розглянемо алгоритм роботи основний программы.

У структурної схемою програми показано основні взаємозв'язку між окремими модулями программы.

Глава 3. Експлуатаційна часть.

3.1. Керівництво программистa.

У конкурсній програмі було застосовано, дуже багато компонентів Windows, різні оброблювач подій, процедури і функції. Під час розробки програми було створено 3 модуля (Main, Diag, Example). У модулі Main былa примененa 1 процедурa.

Короткий опис основних використаних функций.

Використовуємо функцію GetComputerName щоб одержати імені комп’ютера, функцію GetUserName щоб одержати імені користувача і функцію GetSystemInfo щоб одержати інформації про процесорі (найповніше дана функція реалізована в Windows NT, де повертає і у процесорів і їх тип і т.д.).

Перейдемо до параметрами екрану. Тут ми будемо використовувати і Win32 АПІ функції і стандартні об'єкти VCL. Так щоб одержати дозволу екрана нам знадобиться об'єкт TScreen (його властивості Width і Height). Інші параметри ми матимемо через контекст драйвера устрою DC використовуючи функцію GetDeviceCaps.

Також стане в нагоді інформацію про пам’яті. Тут нас порятує функція GlobalMemoryStatus, повертає інформацію з обсягу фізичним і віртуальної памяти.

Дізнаємося інформацію про ОС. Функція GetWindowsDirectory поверне шлях до каталогу, де установлено систему, функція GetSystemDirectory — до системному каталогу. Для визначення версії ОС скористаємося функцією GetVersionEx.

Наведемо функцію BIOSInfo з параметром, що характеризує поточну ОС. Важливо, що єдиний спосіб отримання дату BIOS різний. Для NT одержимо інформацію з, а Windows 95/98 з відповідного ділянки пам’яті. Ці дві способу взаимоисключаемы, тому що в Windows 95/98 немає відповідного розділу реєстру, а прямий доступом до пам’яті в NT невозможен.

Розглянемо функцію SystemParametersInfo, що дозволяє управляти деякими настройками системи. Область застосування цієї функції для NT і Windows 95/98 різна. Зумисно виберемо деяку загальну частина для обох систем.

Можна дозволити користувачеві змінювати і зберігати настройки системи з своєму смаку. Тут можна використовувати функцію SystemParametersInfo. Для компонентів tbKeyboardSpeed, tbKeyboardDelay, cbScreenSaverActive, cbSpeaker, edSSTimeOut в ObjectInspector перейдемо на закладку Events і змінимо подія OnChange (для tbKeyboardSpeed, tbKeyboardDelay), OnClick (для cbScreenSaverActive, cbSpeaker) і OnExit для edSSTimeOut на Change.

Використання Delphi спільно з фунциями Microsoft Win32 АПІ дозволить програмісту створити більш функціонально багаті і гнучкі приложения.

Процедури модуля Main:

procedure TForm11. Timer1Timer (Sender: TObject);

Ця процедура використовується для показу сплэш-окна при початковій завантаженні програми. Після свого виконання вона показує головну форму.

Процедури модуля Diag: procedure TDiadnostic. AboutClick (Sender: TObject); Процедура виконує функцію відкриття вікна чи форми. Це ж саме можна реалізувати двома способами:

1) Form1. Show;

2) Form1. Visible:=True;

procedure GetPrName (processor1:Tlabel); Процедура визначає тип процессора.

procedure GetRegInfoWinNT;

Процедура використовується щоб одержати інформації з Windows. У частковості, використовується для выода інформації про Основною Системі ВведенняВывода.

Найчастіше дуже важливою виявляється інформацію про типі BIOS. Рядок типу BIOS зберігається за адресою 0FFA68, а рядок дати BIOS за адресою 0FFFF5. Це фізичні адреси, отже адреси «сегмент:смещение »: 0F000: FA68 і 0F000: FFF5.

При включенні комп’ютера BIOS инициализирует свої фінансові ресурси і шукає, починаючи з адреси 0C0000, ПЗУ встановлених карт. Кожне ПЗУ має підпис, яка символізується байтами 55AAh, якщо BIOS знаходить ці байти, він довідається розмір ПЗУ, що зберігається у наступному байті і має число сторінок по 512 байт, після чого наскільки можна вважає контрольну суму цього ПЗУ (повинна бути дорівнює нулю) і передає управління на 4-ый байт. Також BIOS вважає контрольну суму байт CMOS, розміщених у осередках 10h-2Dh. Позаяк у цих осередках зберігається важлива, продовжити роботи, інформація, і її ушкодження недопустимы.

Виходячи з цього, програма визначає тип BIOS і вважає контрольні суми Відео ПЗУ і CMOS.

function GetDisplayDevice: string; дана функція визначає основні параметри відеокарти, такі як розмір пам’яті і рядок даних производителя.

function LocalIP: string; дана функція повертає IP адресу поточного компьютера.

Function GetCPUSpeed: Double;

З’ясовуємо тактову частоту процессора.

function CheckDriveType (ch:char): String; повертає тип диска (змінний, жесткий).

procedure TDiadnostic. FormCreate (Sender: TObject); створює головне вікно программы.

function getprintername: string;

Повертає ім'я принтера, мережного чи локального.

procedure TDiadnostic. Button4Click (Sender: TObject); виконує відновлення інформації про стан памяти.

procedure TDiadnostic. disknameChange (Sender: TObject); виконує зміну імені диска.

procedure TDiadnostic. FormClose (Sender: TObject; var Action: TCloseAction);

Процедура виконує функцію виходу з програми. Миттєвий вихід із программы.

Вихід із програми то можна організувати кількома способами, такими как:

— Application. Terminate;

— Form1. Hide;

— Form1. Visible:=False;

— Form1. Close;

Ці команди мало відрізняються одна від друга. Єдиним відмінностями може те, перший вихід працює набагато швидше, тобто. додаток закривається мгновенно.

function OpenCD (Drive: Char): Boolean; виконує функцію відкриття сд-рома.

function CloseCD (Drive: Char): Boolean; виконує функцію закриття сд-рома.

procedure TDiadnostic. SpeedButton1Click (Sender: TObject);

Процедура виконує функцію відкриття вікна чи форми. У разі відкривається вікно тестування процессора.

Процедури модуля Example:

procedure TForm1. Button1Click (Sender: TObject); виконує вимір тактовою частоти процессора.

Слід варто детальніше сказати про ідентифікації процесора. Як відомо, в процесорах п’ятого покоління, соціальній та деяких четвертого покоління, з’явилася команда CPUID. У цю команду дозволяє більше дізнатися про встановленому у системі процесорі. Обмін інформацією відбувається після основні регістри (EAX, EBX, ECX, EDX).

Параметри задаються через регістр EAX. Отже, щоб отримати інформацію версію процесора, я записав у EAX 1 і викликав CPUID, після чого EAX зберігався результат. А, щоб отримати виробника процесора, я записав у EAX 0 і викликав CPUID, після чого основних регістрах перебуває, унікальна кожному за виробника, рядок. Для AMD це «AuthenticAMD », для Intel ;

" GenuineIntel ", для Cyrix — «CyrixInstead ». Тепер розповім про ідентифікації процесорів, які мають інструкції CPUID. Зрозуміло, що таке докладну інформацію, у разі отримати неможливо. Т.к. програма вимагає процесор не нижче третього покоління, започаткував перевірку саме від цього покоління. Наявність 386-го процесора визначається недосягненістю записи 18-го біта регістру прапорів, якщо біт доступний записи, то я перевіряю наявність підтримки команди CPUID, якщо вона підтримується, то процесор 486-ой. Якщо ж CPUID підтримується, так далі все визначення припадає саме з цього команду.

Наявність підтримки команди CPUID визначається доступністю для записи 21-го біта регістру флагов.

procedure TForm1. pcc2PrecizeProc (Sender: TObject); використовується для тестування швидкості виконання арифметичних операцій, саме для обчислення часу складання 100 цілих чисел.

procedure TForm1. pcc3PrecizeProc (Sender: TObject); використовується для обчислення часу складання 100 цілих 64-битных чисел.

procedure TForm1. pcc4PrecizeProc (Sender: TObject); використовується для складання 100 речовинних чисел.

procedure TForm1. Button2Click (Sender: TObject); власне виконує 3 перелічених вище процедуры.

procedure TForm1. pcc5PrecizeProc (Sender: TObject); використовується для тестування швидкості системної шины.

procedure TForm1. Button3Click (Sender: TObject); при натисканні даної кнопки процесор послідовно виробляє обчислення над 64-мя операціями NOP, розташованими у разі в памчти, у другомув кэше, і потім обчислює затримку передати команд з памяти.

procedure TForm1. Button4Click (Sender: TObject); використовується для тестування швидкості виклику докладання в оперативну пам’ять (викликається блокнот).

procedure TForm1. pcc7PrecizeProc (Sender: TObject); тут тестується швидкість заповнення кэша.

procedure TForm1. pcc8PrecizeProc (Sender: TObject); з’ясовуємо кількість тактів, необхідні виконання однієї операції NOP.

NOP — Порожня операция.

————————————————————————————;

O D I T P. S Z A P C.

————————————————————————————————.

¦Код Інструкція Такти Опис ¦

¦операції ¦

+————T————-T——-T——-T——-T———T—————————-+.

¦ ¦ ¦486 ¦386 ¦286 ¦86 ¦ ¦

+————+————-+——-+——-+——-+———+—————————-+.

¦90 ¦NOP ¦1 ¦3 ¦3 ¦3 ¦Ні операції. ¦

L————+————-+——-+——-+——-+———+—————————-;

Операція NOP не виконує ніякої операції. NOP — це однебайтовая інструкція, що займає місце, але але з впливає вміст машини (крім (E)IP).

NOP — це псевдонім інструкції XCHG (E)AX, (E)AX.

procedure TProcessorClockCounter. TestPrecizeProc; цю процедуру поміщає невеличкий код в кеш память.

procedure TProcessorClockCounter. TestPrecizeProcInCache; цю процедуру тестує шматок коду, вже що у кеш-пам'яті procedure TDiadnostic. SpeedButton2Click (Sender: TObject);

цю процедуру висвічує повідомлення у тому, що ваша програма тестування пам’яті завантажена в оперативну память.

Тестуванню піддається пам’ять, розташована вище — першого мегабайта, на випадок клопотів. Програма використовує три різновиду тестування: Та що біжить Одиниця, Який Біжить Ноль,.

Шахова дошка. Перш ніж розпочати тестування, програма визначає обсяг пам’яті, встановленої у системі. І тому останні чотири байта, кожного мегабайта, записується число, потім вона читається і порівнюється. Якщо він не збігаються з записаним, отже цього й наступних мегабайт пам’яті не существует.

Особливості застосовуваних тестів такі. Тест «Бегущая.

Одиниця «чи «Який Біжить Нуль «у тому, що у кожен байт пам’яті записується значення 0FFh чи 0 відповідно, потім це значення порівнюється. Розбіжність свідчить про помилці. У тесті «Шахова дошка «на згадку про записуються значення вида.

1 010 1010b, потім вони зсуваються і порівнюються. Розбіжність — ошибка.

3.2. Керівництво пользователю.

Програма функціонує з такого принципу:

За першого запуску програми з’являється вікно з пропозицією почекати, поки програма збере інформацію про системе.

після цього з’являється головне вікно программы.

у ньому вміщені такі закладки:

1. Загальні - загальна інформація, тобто. тип процесора, операційна система, версія ОС, ім'я користувача, организация.

2. Диски — інформацію про всіх дисках, встановлених у системі, як-от жорстких дисків, СД-РОМ, флоппи-диски, і навіть інформація про їхнє ємності, метке.

томи, і файловій системе.

3. Принтер — інформацію про принтерах, встановлених в системе.

4. пам’ять — інформацію про системної пам’яті, про її кількості, інформацію про файлі подкачки.

5. Клавіатура і миша — інформацію про встановлених у системі клавіатурі й мыши.

6. Відеоінформацію про відеокарті, вирішенні монітора, постачальнику драйвера і т.д.

7. інформацію про процесорі - вендор, частота.

8. шрифти — інформацію про встановлених шрифтах.

9. Діагностика — зібрані такі властивості, як тестування процесора, пам’яті і перевірка лотка СД-рома, і навіть інформація про автора цій маленькій программы.

10. при натисканні на кнопку тестування процесора випадає нижеуказанное вікно, де проводять тестування процессора.

тут, можна потестировать дуже багато параметрів. Перерахуємо найбільш головні з них:

— тактова частота — тут застосовується вмонтований в мікропроцесор лічильник тактів, із якого ми отримуємо поточну тактову частоту.

— швидкість виконання арифмеических операцій — тут тестуємо, як швидко процесор виконує основні арифметичні операції з різними типами данных.

— швидкість системної шини — тут перевіряємо швидкість шини між процесором і пам’яттю, тобто. почому тактів передається інформація з-поміж них. Використовується інструкції НОП, які працюють у першому випадку оперативному пам’яті, тоді як у вотром разі - в кэш-памяти.

Наприкінці програма обчислює затримку пам’яті, тобто. скільки тактів потрібно саме у передачу даних із / на згадку про .

— швидкість виклику додатків — тут тестуємо, почому тактів викликається в оперативнюу пам’ять стандартна програма Блокнот.

— швидкість заповнення кешу — тама ми заповнюємо все 256 чи 512 кілобайтів кешу інструкціями, і дивимося, почому тактів він заполнится.

Заключение

.

Відомо, що випускна робота завершує підготовку бакалавра і показує готовність випускника вирішувати теоретичні і практичні завдання за умов реальної трудовий деятельности.

Цель випускний роботи — систематизація і навіть поглиблення теоретичних і практичних знань студента за фахом і можливості їхнього застосування в умовах практичної діяльності. Те, як студент виконав випускну роботу, показує, як і подготовлен.

У цьому випускний роботі мною розглянуто програму діагностику і тестування комп’ютера, і під час її написання я більш добре зрозумів призначення та принцип роботи основних пристроїв самого персонального комп’ютера. Вищезазначені знання, безсумнівно, знадобляться мені подальшої моєї праці. Я дуже вдячний викладацькому складу нашої кафедри за щеплену мені спроможність навчатися, попри лінь, і інші обстоятельства.

Що ж до социальной (общественной цінності) даної роботи, то я впевнений, що мені вона дуже значущою, позаяк у процесі вироблення я навчився терпимості стосовно програмам і взагалі в мене вийшла дуже хороша утилитка.

Список використовуваної литературы.

1) З. Бобровський «DELPHI 5» Навчальний курс Москва 2000 р. 2) Довідник функцій WinAPI. Додаток 1 Лістинг программы.

// головний модуль.

unit Main;

interface.

uses.

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, jpeg, ExtCtrls;

type TForm11 = class (TForm).

Image1: TImage;

Timer1: TTimer;

Label1: TLabel; procedure Timer1Timer (Sender: TObject); private.

{ Private declarations } public.

{ Public declarations } end;

var Form11: TForm11;

implementation.

uses Diag;

{$R *.dfm}.

procedure TForm11. Timer1Timer (Sender: TObject); begin diadnostic. show; timer1. Enabled:=false; end;

end. // власне модуль диагностики.

unit Diag;

interface.

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, Registry, Printers, ExtCtrls, AxCtrls, OleCtrls, vcf1, Tabs, Winspool,.

FileCtrl, ImgList, Menus, winsock, ScktComp, Systeminfo, mmsystem, Buttons, shellapi; type TDiadnostic = class (TForm).

SysInfo1: TSysInfo;

Timer1: TTimer;

Button1: TButton;

SpeedButton1: TSpeedButton;

SpeedButton2: TSpeedButton;

GroupBox3: TGroupBox;

About: TButton; procedure AboutClick (Sender: TObject); procedure FormCreate (Sender: TObject); procedure aClick (Sender: TObject); procedure disknameClick (Sender: TObject); procedure Button4Click (Sender: TObject); procedure disknameChange (Sender: TObject); procedure ListBox1DrawItem (Control: TWinControl; Index: Integer;

Rect: TRect; State: TOwnerDrawState); procedure ListBox1MeasureItem (Control: TWinControl; Index: Integer; var Height: Integer); procedure ListBox1Click (Sender: TObject); procedure FormClose (Sender: TObject; var Action: TCloseAction); procedure Timer1Timer (Sender: TObject); procedure Button1Click (Sender: TObject); procedure SpeedButton1Click (Sender: TObject); procedure SpeedButton2Click (Sender: TObject); private.

{ Private declarations } public.

{ Public declarations } end; var Diadnostic: TDiadnostic;

implementation.

uses tlhelp32, about, example; {$R *.DFM}.

function GetRootDir: string; external «Ulandll.dll «index 1;

function getboottype: string; external «UlanDll.dll » ;// index 31;

procedure TDiadnostic. AboutClick (Sender: TObject); begin form2. show; end;

procedure GetPrName (processor1:Tlabel); var SI: TsystemInfo; begin GetSystemInfo (SI); Case SI. dwProcessorType of 386: Processor1. caption:= «386 »; 486: Processor1. caption:= «486 »; 586: Processor1. caption:= «586 »; 686: Processor1. caption:= «686 »; end; end;

procedure GetRegInfoWinNT; var Registryv: TRegistry; RegPath: string; sl, sll: TStrings; begin.

RegPath := «HARDWAREDESCRIPTIONSystem »; registryv:=tregistry.Create; registryv. rootkey:=HKEY_LOCAL_MACHINE; sl := nil; try registryv. Openkey (RegPath, false); diadnostic. Label28.Caption:=(RegistryV.ReadString («SystemBiosDate »)); sl:= ReadMultirowKey (RegistryV, «SystemBiosVersion »); diadnostic. memo1.Text:=sl.Text; except end; Registryv. Free; if Assigned (sl) then sl. Free; end;

function GetDisplayDevice: string; var lpDisplayDevice: TDisplayDevice; begin lpDisplayDevice. cb := sizeof (lpDisplayDevice); EnumDisplayDevices (nil, 0, lpDisplayDevice, 0); Result:=lpDisplayDevice.DeviceString; end; procedure getinfovideo; var lpDisplayDevice: TDisplayDevice; dwFlags: DWORD; cc: DWORD; begin diadnostic. memo2.Clear; lpDisplayDevice. cb := sizeof (lpDisplayDevice); dwFlags := 0; cc:= 0; while EnumDisplayDevices (nil, cc, lpDisplayDevice, dwFlags) do begin.

Inc (cc); diadnostic. memo2.lines.add (lpDisplayDevice.DeviceString);

{Також побачимо додаткову інформацію в lpDisplayDevice} end; end; function LocalIP: string; type.

TaPInAddr = array [0.10] of PInAddr;

PaPInAddr = ^TaPInAddr; var phe: PHostEnt; pptr: PaPInAddr;

Buffer: array [0.63] of char;

I: Integer;

GInitData: TWSADATA;

begin.

WSAStartup ($ 101, GInitData);

Result := «» ;

GetHostName (Buffer, SizeOf (Buffer)); phe :=GetHostByName (buffer); if phe = nil then Exit; pptr := PaPInAddr (Phe^.h_addr_list);

I := 0; while pptr^[I] nil do begin result:=StrPas (inet_ntoa (pptr^[I]^));

Inc (I); end;

WSACleanup; end;

Function GetCPUSpeed: Double; const DelayTime = 500; var TimerHi: DWORD; TimerLo: DWORD; PriorityClass: Integer; Priority: Integer; begin PriorityClass := GetPriorityClass (GetCurrentProcess); Priority := GetThreadPriority (GetCurrentThread); SetPriorityClass (GetCurrentProcess, REALTIME_PRIORITY_CLASS); SetThreadPriority (GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL); Sleep (10); asm dw 310Fh // rdtsc mov TimerLo, eax mov TimerHi, edx end; Sleep (DelayTime); asm dw 310Fh // rdtsc sub eax, TimerLo sbb edx, TimerHi mov TimerLo, eax mov TimerHi, edx end; SetThreadPriority (GetCurrentThread, Priority); SetPriorityClass (GetCurrentProcess, PriorityClass); Result := TimerLo / (1000.0 * DelayTime); end; function CheckDriveType (ch:char): String; var DriveLetter: Char; DriveType: UInt; begin DriveLetter := Ch; DriveType := GetDriveType (PChar (DriveLetter + ": «)); Case DriveType Of 0: Result := «? »; 1: Result := «Path does not exists »; Drive_Removable: Result := «Removable »; Drive_Fixed: Result := «Fixed »; Drive_Remote: Result := «Remote »; Drive_CDROM: Result := «CD-ROM »; Drive_RamDisk: Result := «RAMDisk «else Result := «Unknown »; end; end; function GettingHWProfileName: String; var pInfo: TagHW_PROFILE_INFOA; begin GetCurrentHwProfile (pInfo); Result := pInfo. szHwProfileName; end; procedure TDiadnostic. FormCreate (Sender: TObject); var OsVerInfo: Tosversioninfo; winver, build: string;

Disks:byte; buffer: array[0.255]of char; wd: string; sp: array[0.max_path-1]of char; s: string; memorystatus: tmemorystatus; dwLength: DWORD; // sizeof (MEMORYSTATUS) dwMemoryLoad: DWORD; // percent of memory in use dwTotalPhys: DWORD; // bytes of physical memory dwAvailPhys: DWORD; // free physical memory bytes dwTotalPageFile: DWORD; // bytes of paging file dwAvailPageFile: DWORD ;// free bytes of paging file dwTotalVirtual: DWORD ;// user bytes of address space dwAvailVirtual: DWORD; // free user bytes ktype: integer;

R:Tregistry;

R2:Tregistry; disk1: integer; msgtext: string; const monitorregdir: string= «systemcurrentcontrolsetENUMDisplayDefault_Monitor » ;

Показати весь текст
Заповнити форму поточною роботою