понеділок, 10 грудня 2007 р.

1.1 Структура складних систем

Як ми можемо змінити цю гнітючу картину? Через те, що проблеми, які лежать в її основі, зароджувались з внутрішньої складності програмного забезпечення, нашим вибором є спочатку вивчити як складні системи організовані в інших дисциплінах. Дійсно, коли ми відкриємо наші очі на світ навколо нас, ми будемо спостерігати успішні системи значущої складності. Деякі з цих систем працюють на людство, наприклад, космічний шатл, тунель між Англією і Францією, великі бізнесові організації. Багато навіть складніших систем присутні у природі, наприклад, система кровообігу людини та структура рослини гострого перцю.

Структура персонального комп’ютера

Персональний комп’ютер є пристроєм середньої складності. Більшість з них складається з однакових основних елементів: центральний процесор (ЦП), монітор, клавіатура та деякі види пристроїв вторинного зберігання, звичайно або CD, або DVD зчитувач та жорсткий диск. Ми можемо взяти будь-яку з цих частин та далі розбирати її. Наприклад, ЦП типово містить в собі основну пам’ять, арифметико-логічний пристрій (АЛП), та шину, до якої приєднуються периферійні пристрої. Кожна з цих частин може бути у власну чергу розібраною, АЛП може бути розділений на регістри та логіку довільного управління, котрі у власну чергу побудовані з навіть простіших елементів, таких як вентилі ТА-НІ, інвертори і тому подібне.
Тут ми бачимо ієрархічну природу складних систем. Персональний комп’ютер функціонує належним чином лише завдяки скооперованій діяльності кожної з основних частин. Разом, ці окремі частини логічно формують ціле. Дійсно, ми можемо міркувати про те, як комп’ютер працює лише тому, що ми можемо розділити його на частини, які ми можемо вивчати окремо. Тому можемо вивчати дію монітора незалежно від дії жорсткого диска. Подібно, ми можемо вивчати АЛП без уваги на підсистему основної пам’яті.
Складні системи не лише ієрархічні, але рівні цієї ієрархії представляють різні рівні абстракції, кожна побудована на іншій, та кожна зрозуміла сама собою. На кожному рівні абстракції ми знаходимо набір пристроїв, які співпрацюють задля надання послуг вищім рівням. Ми обираємо наданий рівень абстракції для задоволення наших часткових потреб. Наприклад, якщо ми спробуємо відстежити проблему розділення часу доступу у основній пам’яті, ми маємо належним чином розглянути вентильний рівень архітектури комп’ютера, але цей рівень буде непідходящим, якщо ми будемо намагатися знайти джерело проблеми у додатку електронних таблиць.
[1]

Немає коментарів: