Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Програмування



Системне програмування (або програмування систем) - рід діяльності, що полягає в роботі над системним програмним забезпеченням. Основна відмінна риса системного програмування в порівнянні з прикладним програмуванням полягає в тому, що результатом останнього є випуск програмного забезпечення, що пропонує певні послуги користувачам (наприклад, текстовий процесор). Тоді як результатом системного програмування є випуск програмного забезпечення, що пропонує сервіси по взаємодії з апаратним забезпеченням (наприклад, дефрагментація жорсткого диска), що має на увазі сильну залежність таких програм від апаратної частки. Зокрема виділимо наступне: програміст повинен зважати на специфіку апаратної частки і інші властивості системи в якій функціонує програма, використовувати ці властивості, наприклад, застосовуючи спеціально оптимізований для даної архітектури алгоритм.

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

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

Має маленьку бібліотеку часу виконання (RTL) або не має її взагалі.

Дозволяє пряме управління (прямий доступ) до пам'яті і логіки, що управляє.

Дозволяє робити асемблерні вставки в код.

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

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

Низькорівнева мова програмування (мова програмування низького рівня) - мова програмування, близький до програмуванню безпосередньо в машинних кодах використовуваного реального або віртуального (наприклад, Java, Microsoft.NET) процесора. Для позначення машинних команд зазвичай застосовується мнемонічне позначення. Це дозволяє запам'ятовувати команди не у вигляді послідовності двійкових нулів і одиниць, а у вигляді осмислених скорочень слів людської мови (зазвичай англійських).

Загальновідомий приклад низкоуровнего мови - мова асемблера, хоча правильніше говорити про групу мов асемблера. Більш того! Для одного і того ж процесора існує декілька видів мови асемблера! Вони збігаються в машинних командах, але розрізняються набором додаткових функцій (директив і макросів).

Також до мов низького рівня умовно можна зарахувати MSIL, вживаний в платформі Microsoft.NET, Форт, Java байт-код.

Спочатку, програмісти безваріантно писали на мові асемблера. Експерименти з підтримкою устаткування в мовах високого рівня (1960s привели до появи таких, як BLISS і BCPL. Проте, мова програмування Сі, що зіграла значну роль в створенні UNIX, завоювала велику популярність і розповсюдилася повсюдно до 1980-м роках.

В даний час (2006) деяке застосування знайшлося для вбудовуваного C++. Реалізація основних часток в операційній системі і при використанні мереж потребує розробників системного ПО. Наприклад, реалізація постраничности (через віртуальну пам'ять) або драйвери пристроїв.

Термін Системне програмування безпосередньо пов'язаний з терміном Системний програміст. Це програміст, що працює (що створює, відладжує, діагностує і т. п.) над системним програмним забезпеченням.

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

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

На асемблері пишуться програми або фрагменти програм, для яких критично важливі:

- швидкодія (драйвери, ігри);

- об'єм використовуваної пам'яті (завантажувальні сектори, вбудовуване (англ. embedded) програмне забезпечення, програми для мікроконтролерів і процесорів з обмеженими ресурсами, віруси, програмні захисту).

З використанням програмування на асемблері проводяться:

- оптимізація критичних до швидкості ділянок програм написаних на мові високого рівня, такому як C++. Це особливо актуально для ігрових приставок, біля яких фіксована продуктивність, і для мультимедійних кодеків, які прагнуть робити менш ресурсоємними і популярнішими;

- створення операційних систем (ОС). ОС часто пишуть на Сі, мові, яка спеціально була створена для написання однієї з перших версій Unix. Апаратні залежні ділянки коду, такі, як завантажувач ОС, рівень абстрагування від апаратного забезпечення - HAL і ядро, часто пишуться на асемблері. Асемблерний коду в ядрах Windows або Linux зовсім небагато, оскільки автори прагнуть до переносимості і надійність, але проте він присутній. Деякі любительські ОС, такі, як MENUETOS, цілком написані на асемблері. При цьому MENUETOS поміщається на дискету і містить графічний багатовіконний інтерфейс;

- програмування мікроконтролерів (МК) і інших вбудовуваних процесорів. На думку професора Танненбаума, розвиток МК повторює історичний розвиток комп'ютерів новітнього часу. На сьогоднішній день для програмування МК вельми часто застосовують ассемблер;

- створення драйверів. Деякі ділянки драйверів, що взаємодіють з апаратним забезпеченням, програмують на асемблері. Хоча в цілому в даний час драйвери прагнуть писати на мовах високого рівня у зв'язку з підвищеними вимогами до надійності. Надійність для драйверів грає особливу роль, оскільки в Windows NT і Linux драйвери працюють в режимі ядра. Одна помилка може привести до краху системи;

- створення антивірусів і інших захисних программ;

- написання трансляторів мов програмування.

Програмування на мові асемблера характерний також для нелегальних сфер діяльності в ІТ, зокрема, з використанням асемблера проводяться:





Дата публикования: 2014-11-26; Прочитано: 360 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...