Введення
програма ідентифікатор інтерфейс алгоритм
Найважливішою функцією операційної системи є організація раціонального використання всіх її апаратних і інформаційних ресурсів. До основних ресурсів можуть бути віднесені процесори, пам'ять, зовнішні пристрої, дані і програми. Обчислювальна система, що розташовує одними і тими ж апаратними ресурсами, але керована різними ОС може працювати з різним ступенем ефективності. Тому знання внутрішніх механізмів операційної системи дозволяє побічно судити про її експлуатаційні можливості та характеристиках. Хоча і в однопрограмні ОС необхідно вирішувати завдання управління ресурсами (наприклад, розподіл пам'яті між додатком і ОС), головні складнощі на цьому шляху виникають в мультипрограмних ОС, в яких за ресурси конкурують відразу кілька додатків.
Мультипрограмування, або багатозадачність (multitasking), - це спосіб організації обчислювального процесу, при якому на одному процесорі поперемінно виконуються відразу кілька програм. Ці програми спільно використовують не тільки процесор, але й інші ресурси комп'ютера: оперативну і зовнішню пам'ять, пристрої введення-виведення, дані. Мультипрограмування покликане підвищити ефективність використання обчислювальної системи, проте ефективність може розумітися по-різному.
Щоб підтримувати мультипрограмування, ОС повинна визначити і оформити для себе ті внутрішні одиниці роботи, між якими буде поділятися процесор та інші ресурси комп'ютера. В даний час у більшості операційних систем визначені два типи одиниць роботи.
Процес (задача) - це більш велика одиниця роботи ОС. Процес для свого виконання вимагає кількох дрібніших робіт, для позначення яких використовують терміни «потік», або «нитка».
Процес розглядається операційною системою як заявка на споживання всіх видів ресурсів, крім одного - процесорного часу. Цей останній найважливіший ресурс розподіляється операційною системою між іншими одиницями роботи - потоками, які і отримали свою назву завдяки тому, що вони являють собою послідовності (потоки виконання) команд. Поняттю «потік» відповідає послідовний перехід процесора від однієї команди програми до іншої. У найпростішому випадку процес складається з одного потоку.
Метою даної курсової роботи є вивчення та закріплення на практиці відомостей про внутрішній устрій процесів, потоків, доменів додатків і контекстів в операційній системі Windows.
1. Теоретична частина
.1 Огляд програмних засобів
Для виконання курсової роботи була вибрана мова програмування C #.
Мова програмування С # був створений в кінці 1990-х років і став частиною общей.NET-стратегії Microsoft. Вперше він побачив світ в якості?-версії в середині 2000 року. Головним архітектором С # був Андерс Хейлсберг (Anders Hejlsberg) - один з провідних фахівців в області мов програмування, що отримав визнання у всьому світі. С # безпосередньо пов'язаний з С, C ++ і Java. Оскільки С # побудований на міцному, зрозумілому фундаменті, то перехід від цих «фундаментальних» мов до «надбудові» походить без особливих зусиль з боку програмістів [2].
Головною особливістю мови C # є його орієнтованість на платформу Microsoft.NET - творці C # ставили своєю метою надання розробникам природних засобів доступу до всіх можливостей платформи.NET. Мабуть, це рішення можна вважати більш-менш вимушеним, тому що платформа.NET спочатку пропонувала значно більшу функціональність, ніж будь-який з існуючих на той момент мов програмування [1].
Таким чином, C # являє собою нову мову програмування, орієнтований на розробку для платформи.NET і придатний як для швидкого прототипування застосувань, так і для розробки великомасштабних додатків.
Від З мову С # успадкував синтаксис, багато ключових слова і оператори. Крім того, С # побудований на поліпшеної об'єктної моделі, визначеної в C ++. С # і Java зв'язані між собою дещо складніше. Java також є нащадком С і C ++. У нього теж загальний з ними синтаксис і подібна об'єктна модель. Подібно Java C # призначений для створення стерпного коду.
У мова програмування C # входить багато корисних особливостей - простота, об'єктна орієнтованість, типова захищеність, «збірка сміття», підтримка сумісності версій і багато іншого. Дані можливості дозволяють швидко і легко розробляти програми, особливо COM + додатки і Web сервіси. При створенні C #, його автори враховували досягнення багатьох інших мов програмування: C ++, C, Java, SmallTalk, Delphi, Visual Basic і т.д. В результаті вийшов дійсно простий, зручний і сучасна мова, по потужності не поступливий С ++, але істотно підвищує прод...