Теорія операційної системи

:: Меню ::

Головна
Представлення даних в обчислювальних системах
Машинні мови
Завантаження програм
Управління оперативною пам'яттю
Сегментна і сторінкова віртуальна пам'ять
Комп'ютер і зовнішні події
Паралелізм з точки зору програміста
Реалізація багатозадачності на однопроцесорних комп'ютерах  
Зовнішні пристрої
Драйвери зовнішніх пристроїв
Файлові системи
Безпека
Огляд архітектури сучасних ОС

:: Друзі ::

Карта сайту
 

:: Статистика ::

 

 

 

 

 

Цена на ножи оптом зависит от объема закупаемого товара Наличие товара на наших складах регулярно пополняется. Заказать ножи оптом можно по телефону, или оставив заказ на нашем сайте. Главная.

Машинні мови

Центральний процесор сучасного комп'ютера — це пристрій, виконуючий команди. Повний набір команд конкретного процесора називають машинною мовою або системою команд (інколи систему команд називають також архітектурою, але це слово дуже переобтяжене різними значеннями).
Різні процесори часто мають одну і ту ж" (або що слабо варіює) систему команд — наприклад, процесори Intel 80386, 486, Pentium, Pentium II, AMD Кб, Athlon і так далі — далі в тексті книги ми називатимемо всі ці процесори х86.
Процесори, які можуть виконувати програми на одній і тій же машинній мові, називаються бінарно-сумісними . Відношення бінарної сумісності не завжди симетрично: наприклад, новіший процесор може мати додаткові команди — тоді він буде бінарно-совместім із старішим процесором того ж семе, йства, але не навпаки. Нерідко буває і так, що новіший процесор має зовсім іншу систему команд, але уміє виконувати програми на машинній мові старого процесора в так званому режимі сумісності — наприклад, всі процесори сімейства х86 можуть виконувати програми для Intel 8086 і 80286. Деякі ОС для х8б навіть надають можливість зібрати єдину програму з модулів, що використовують різні системи команд.
Ще обширніші сімейства процесорів, сумісні між собою по мові асемблера. Така сумісність означає всього лише, що кожна команда одного процесора має повний функціональний аналог в системі команд іншого, це дає можливість автоматизувати перетворення програм з однієї машинної мови в іншій. Так, Intel 8086 сумісний по мові асемблера з ранішими процесорами тієї ж фірми, 8080 і 8085.
Як вже говорилося, асиметрія стосунків сумісності зазвичай направлена від попереднього покоління процесорів до наступного: новіший (як правило, потужніше) пристрій сумісний зі своїм старішим аналогом, але не навпаки, тому часто говорять про сумісність від низу до верху. Це відношення дозволяє нам не лише класифікувати обчислювальні системи по поколіннях, але і виділяти в різних поколіннях предка і сумісних з ним нащадків, а в межах одного покоління знаходити "братів" і дальших родичів.
Дослідження генеалогій систем команд сучасних процесорів — увлекательноє заняття, якому присвячено немало публікацій, наприклад (jbayko vl2.1.2]. Інколи, окрім бінарної і асемблерною совместімостсй, при побудові таких генеалогій враховують і настільки розмите поняття, як концептуальну спорідненість — і тоді, наприклад, процесори Motorola 680x0 виявляються ріднею DEC Pdp-11.
Набори команд різних процесорів відрізняються великою різноманітністю, проте є операції, які в тій або іншій формі уміють виконувати всі сучасні процесори.
По-перше, це арифметичні операції над цілими числами в двійковій виставі. Навіть у наш час багато мікроконтроллерів надають лише операції складання і віднімання, але процесори сучасних комп'ютерів "спільного призначення" всі без виключення уміють також умножати і ділити, при чому не лише цілі, але і "речові" числа (у разд. Представлення раціональних чисел ми бачили, чим такі числа відрізняються від того, що називається дійсним числом в математичному аналізі і похідних від нього дисциплінах). Деякі спеціалізовані процесори надають і більш екзотичні математичні функції, наприклад окремі кроки алгоритму дискретного перетворення Фур'є.
Але найголовніша команда (або, точніше, найголовніше сімейство команд), яка і робить процесор повністю програмованим, — це команда переходу, точніше, як мінімум дві команди: безумовного і умовного переходу. На практиці більшість сучасних процесорів мають по декілька команд безумовного переходу (з різними механізмами обчислення адреси точки переходу), а також до десятка, а інколи і більш, команд умовного переходу за різними умовами.

Мікропрограмні автомати
У фон-неймановських процесорів команди виконуються послідовно, відповідно до порядку розміщення в пам'яті, і лише команди умовних і безумовних переходів порушують цей порядок. "Молодші родичі" фон-неймановських процесорів, мікропрограмні автомати, часто мають потужніший засіб управління послідовністю виконання: кожна команда автомата має бітове поле, що містить номер наступної по порядку виконання команди і, таким чином, одночасно є і функціональною командою, і командою безумовного переходу. Методи реалізації умовних переходів в пристроях такого типа відрізняються великою різноманітністю.
Така структура команди полегшує розміщення програми в пам'яті (логічно послідовні команди можуть бути розміщені в будь-яких вільних ділянках), але приводить до значного збільшення довжини команди — і тому застосовна лише в пристроях з дуже невеликою довжиною адреси команди, тобто з маленькою програмною пам'яттю. Мікропрограмні автомати зазвичай компенсують це обмеження складною структурою кожної окремої команди — довжина таких команд досягає декількох сотень бітів і, насправді, вони містять по окремій команді для кожної з функціональних підсистем автомата. Але все одно, складність програм для таких пристроїв невелика в порівнянні з програмами для фон-неймановських процесорів спільного призначення, і їх часто називають не програмами, а мікрокодом.
Програмовані логічні матриці (ПЛМ), мікропрограмні автомати і фон-неймановськие процесори є безперервним спектром пристроїв зростаючої складності — причому далеко не завжди можна з упевненістю віднести конкретний пристрій до однієї з перерахованих категорій. Проста ПЛМ не може зберігати попередній достаток і здатна лише перетворювати поточні достатки своїх входів в достатки своїх виходів. Замкнувши деякі з виходів ПЛМ на деяких з її входів через простий пристрій (регістр), що запам'ятовує, ми отримуємо складніший пристрій, що володіє пам'яттю. Прості мікропрограмні автомати реалізуються на основі ПЛМ і декількох регістрів. Складніші автомати містять багато регістрів і спеціалізовані функціональні пристрої, такі, як лічильники і суматори.
Типовий сучасний фон-неймановський процесор спільного призначення, такий, як Pentium VI, є складний мікропрограмний автомат, мікрокод якого інтерпретує коди команд х86.

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

Нейромережі
Втім, існують вельми складні системи, що є набором примітивних "процесорів", що не мають команд переходу, — йдеться про так званих нейромережах. Ідея нейромереж була позаїмствована в нервових систем вищих тварин, які є сложносоєдіненную мережею спеціалізованих кліток, нейронів. Кожним нейроном є досить примітивний аналоговий пристрій, пороговий суматор: він має багато (інколи багато тисяч) входів і один вихід. Кожен вхід нейрона має своя вага, можливо негативна. Нейрон підсумовує сигнали зі всіх
своїх входів з врахуванням їх вагів, і, якщо результат перевершує деякий поріг, починає генерувати сигнал на виході. Підсумовування буває як лінійне, так і нелінійне, коли замість самого сигналу використовується деяка монотонна його функція. Наприклад, якщо як функція використовувати логарифм, нейрон з суматора перетвориться на помножувач.
Примітивність одиночного нейрона, що видається, компенсується їх великою кількістю, складною системою зв'язків між нейронами і їх здатністю "виучуватися", змінюючи коефіцієнти входів (ваги) і порогове значення. Біологічні нейромережі можуть зростати, створюючи додаткові з'єднання. Деякі комплекси біологічних нейронів мають фіксовану структуру зв'язків і записані на генетичному рівні ваги. Прості поведінкові реакції, обумовлені такими нейронами, називають безумовно-рефлекторними, а складні комплекси таких реакцій — інстинктом.
Нейрофізіологічні дослідження показують, що, в усякому разі, первинний аналіз видимого зображення (виділення контурів, об'єднання їх у фігури) мозок ссавців здійснює як нейромережа. Є вельми переконливі аргументи на користь того, що останні функції мозок виконує за тим же принципом — хоча точна анатомічна локалізація багатьох функцій сприйняття, розпізнавання образів, мислення, пам'яті і координації рухів до цих пір невідома, в мозку доки не виявлені структури, які могли б працювати інакше, ніж нейромережа.
Успіхи біологічних нейромереж приголомшують уяву розробників електронних обчислювальних систем, що управляють. Навіть якщо відвернутися від часто згадуваних в літературі завдань розпізнавання образів, завдання координації рухів в тому вигляді, в якому її вирішує мозок ссавців, виходить далеко за межі можливостей найсучасніших обчислювальних систем.
Дійсно, тіло ссавця (наприклад, людини) з точки зору теоретичної механіки є системою багатьох тіл (тулуба, голови, зчленувань кінцівок), зв'язаних в'язко-пружними з'єднаннями (м'язами і сухожиллями). При цьому далеко не всі ці тіла можна адекватно описати як тверді: той факт, що тулуб здатний згинатися і скручуватися, використовується людиною майже у всіх рухах і для збереження рівноваги, і для додання руху додаткового зусилля, і для інших цілей. Навіть найпримітивніша модель "паличного чоловічка" з жорстким тулубом складається з чотирнадцяти елементів: голови, тулуба і чотирьох кінцівок, кожна з яких має по три зчленування. Здавалося б, небагато, але рух кожного з цих елементів описується шістьма змінними: переміщення центру мас по трьох координатах і обертання в трьох плоскості.
Таким чином, повний рух "паличного чоловічка" описується вісімдесяти чотирма змінними. Для адекватного опису нам треба використовувати не лише самі змінні, але і їх перші похідні за часом, лінійні і кутові швидкості і відповідні ним імпульси і моменти імпульсу, так що змінних виходить 168.
Для прикладу, більшість завдань, що вирішуються у Вузівських курсах фізики і теоретичної механіки, описує одно- або двомірне рухи матеріальних крапок або одиночних твердих тіл, тобто має справу з двома або чотирма "координатами" і, відповідно, чотирма або вісьма змінними. При вирішенні рівнянь, що описують навіть такі системи, є місце подвигу. Алгоритми ж вирішення систем диференціальних рівнянь великої розмірності містять кроки, обчислювальна вартість яких швидко — швидше, ніж експоненциально— зростає із збільшенням розмірності системи. Користуючись методами теоретичної механіки, можна відносно легко записати систему диференціальних рівнянь, що описує рухи "паличного чоловічка". Вирішити ж цю систему ні аналітично, ні чисельно за прийнятний час неможливо. Причому ми ще не врахували в нашій моделі нелінійних в'язко-пружних зв'язків між окремими частинами тіла! А людський мозок вирішує цю задачу в повному вигляді і в режимі реального часу, причому не лише для складних рухів, таких, як танець або бойові мистецтва, але і для таких повсякденних дій, як вставання із стільця, виконання одного кроку або піднесло ложки до рота. Слід зазначити, що рішення цієї задачі зазвичай не відволікає скільки-небудь значної долі обчислювальних ресурсів мозку, так що ми можемо без зусиль одночасно йти, споглядати навколишній пейзаж (розпізнавання зорових образів теж не сама обчислювально дешеве завдання) і роздумувати про що-небудь.
Відносна легкість, з якою людина освоює нових типів рухів, навіть такі, які міняють механіку його тіла (тобто змінюють систему диференціальних рівнянь, яка описує поведінку тіла як механічної системи), — їзда на велосипеді, лижах, роликових ковзанах, робота простими інструментами — або ті, які дозволяють використовувати механіку чогось зовсім іншого (управління автомобілем або літальним апаратом), показує, що природженою є здатність передбачати рух і управляти поведінкою складних механічних систем взагалі, а не лише власного тіла. Ця ж легкість, можливо, свідчить також і про те, що при вирішенні цих завдань в мозку не відбувається нічого навіть віддалено схожого на запис і вирішення системи багатовимірних диференціальних рівнянь.
Технічні нейросистеми (або, якщо завгодно, імітації нейросистем) досягли набагато менших успіхів. Основна сфера вживання комп'ютерних нейро-симуляторів — пошук кореляцій в статистичних і експериментальних даних. Найбільший комерційний успіх мали апаратний реалізовані папілярні детектори і системи автофокусування відео- і фотокамер, завдання яких — крутити об'єктив, поки кількість чітких контурів в зображенні не стане максимальною. На любительських відеозйомках, а інколи і в прямому ефірі комерційного телемовлення, зустрічаються забавні моменти, коли такий автофокус набудовує різкість зовсім не на той елемент сцени, який хоче зберегти оператора, а на сторонній предмет, в зображенні якого багато дрібних елементів, — крону дерева або що-небудь в цьому роді.
У нервових системах вищих тварин можна виділити функціональні підсистеми, які з певною натяжкою зіставляються з тими або іншими модулями комп'ютерних ОС. Так, наприклад, є нейрофізіологічні свідоцтва, що лобові долі кори великих півкуль головного мозку ссавців відповідають за його здатність відкласти діяльність, направлену на досягнення якийсь одній меті, і перемкнутися на щось інше, не забуваючи, проте, ні про попередню діяльність, ні про попередню мету. Це непогано корелює з тим фактом, що людина, в якої лобові долі розвинені до безпрецедентного на тваринному світі розміру, здатна також і до побудови безпрецедентних по складності ланцюжків, направлених на досягнення цілей обхідними дорогами. Наприклад, якій з тварин прийде в голову
що гарантованого щоденного живлення і багатьох інших матеріальних винагород можна досягти за допомогою вивчення сучасних операційних систем? У людей, втім, здатність будувати складні ланцюжки проміжних дій і проміжних цілей інколи доходить і до патологічних явищ, коли забувається початкова (або, навпаки, кінцева) мета, ради якої все затівалося. У зв'язку з цим не можна не пригадати знамениту репліку Льва Троцького: "мета — ніщо, рух — все".
Лобові долі можна — як визнавалося вищим, з певною натяжкою — зіставити з планувальником багатозадачної ОС. Зрозуміло, що натяжка тут настільки велика, що навряд чи таке зіставлення сильно допоможе нам в розумінні того, що ж таке планувальник, і як він влаштований.
Не дивлячись на певну спорідненість вирішуваних завдань, нейромережі радикально відрізняються від фон-неймановських комп'ютерів. Головна відзнака полягає в тому, що нейромережа не має нічого навіть віддалено схожого на програму у фон-неймановськом сенсі. Обговорення, а також вивчення реалізацій біологічних нейромереж і розробка нейромереж технічних — заняття дуже цікаве і йому присвячено декілька наукових і інженерних дисциплін, але це заняття відвело б нас далеко убік від теми нашої книги.

 

:: Реклама ::

запчасти Hyundai Hd72 Спб, hd78 hd120 Купить колодки тормозные РЅР° спринтер источник.

 

:: Посилання ::


 

 

 


Copyright © Kivik, 2017