Технології паралельних та розподілених обчислень



Дата конвертації17.06.2016
Розмір445 b.


Технології паралельних та розподілених обчислень

  • Судаков О.О.

  • “Паралельні та розподілені обчислення” Лекція 3


План

  • Операційні системи для паралельних та розподілених обчислень

  • Програмні технології для паралельних та розподілених обчислень

  • Апаратні засоби паралельних та розподілених обчислень



Операційні системи для паралельних та розподілених обчислень



Операційні системи

  • Операційна система – набір програмних засобів для керування апаратурою та прикладними програмами, а ткож для забезпечення їх взаємодією одна з одною та з користувачем

  • Операційна система виконує віртуалізацію апаратних та інших ресурсів для прикладних програм і користувачів

    • віртуальна пам’ять
    • віртуальний процесор[и]
    • віртуальна файлова система
    • віртуальні канали обміну даними


Віртуальний ресурс

  • Створюється ілюзія того, що програма або користувач монопольно використовує ресурс:

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


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

  • Багатозадачні – в операційній системі може одночасно виконуватись декілька задач (можливий псевдопаралелізм)

  • Із підтримкою багатопроцесорності – задачі й сама операційна система може виконуватись одразу на декількох процесорах однієї машини (SMP, NUMA)

  • Мережеві – операційні системи різних комп’ютерів повинні взаємодіяти між собою. Ніяких інших вимог не висувається

  • Розподілені – з точки зору прикладних програм декілька комп’ютерів представляються єдиною великою системою



Приклади

  • Більшість сучасних операційних систем є багатозадачними, багатопроцесорними, мережевеми (MS Windows NT, Unix/Linux)

    • Якщо WWW документ знаходиться на машині з Unix, то його можна «скачати» і прочитати під Windows
    • Якщо файли знаходяться на Windows машині, то їх можна використовувати на декількох інших Windows або Unix машинах


Приклади розподілених систем

  • Кластер робочих станцій – задача запускається на тій машині, яка менш за всіх завантажена

  • MOSIX - задача, запущена на одному комп’ютері може переміщатися між усіма комп’ютерами системи

  • VAX VMS – усі програми що працюють в операційній системі можуть використовувати усі ресурси усіх комп’ютерів системи



Типи розподілених ОС

  • Single system image – операційна система керує всіма ресурсами усіх комп’ютерів системи

  • Distributed system image – операційна система кожного комп’ютера керує тільки ресурсами свого комп’ютера



Приклади

  • Beowulf кластер – декілька образів операційної системи

  • MOSIX кластер – один образ операційної системи



Принципи побудови

  • Прозорість ресурсів

    • Розташування – не залежить від розташування ресурсу
    • Міграції – не залежить від переміщень ресурсу
    • Копіювання – не залежить від кількості копій ресурсу
    • Конкуренції – усі конфлікти по сумісному використанню ресурсів вирішуються автоматично
    • Паралелізму – паралельне виконання можливе без участі користувача
  • Децентралізація

  • Масштабованість

    • Можна нарощувати або скорочувати кількість ресурсів
  • Стійкість

    • У разі помилки система повинна відновлюватися


Порівняння типів операційних систем



Фізичні та логічні ресурси

  • фізичні

    • процесор,
    • пам’ять,
    • хранилище даних,
    • комунікаційна підсистема
  • Логічні

    • процес,
    • потік,
    • Адресний простір,
    • файл,
    • засоби міжпроцесорної взаємодії
      • сокет,
      • конвеєр,
      • повідомлення,
      • Сумісно використовувана область пам’яті


Процес, потік, адресний простір

  • Процес (task, process) – прикладна програма що виконується

  • Адресний простір – як пам’ять сприймається процесом

  • Потік (thread, lwp) – частина процесу, котра виконується паралельно або псевдопаралельно з іншими такими ж частинами

  • Файл – послідовність байтів, до кожного байту можна звернутися за його номером



Адресні простори (віртуалізація пам’яті)



Процеси, потоки (віртуалізація процесорів)



Файлові системи (віртуалізація систем збереження даних)



Заособи міжпроцесної взаємодії (віртуалізація засобів комунікації)



Мережеві та розподілені ОС

  • Мережеві ОС – віртуалізація файлових систем та каналів обміну для різних комп’ютерів

  • Розподілені ОС – віртуалізація процесорів, пам’яті файлових систем та каналів обміну для різних комп’ютерів



Unix-подібні операційні системи

  • Unix 1969 рік

  • Основні принципи

    • Простота перед інтелектуальністю
    • Надавати механізм, а не стратегію
    • Програми повинні робити мало, але робити це добре
    • Результати роботи однієї програми можна одразу ж подавати на вхід іншої
    • Будь-який ресурс – це файл (по можливості)
    • Засоби розробки програм і самої операційної системи повинні бути включені в операційну систему


Ієрархічна структура



Виконання процесу

  • В режимі задачі процес виконується тільки від імені задачі та має доступ тільки до свого адресного простору та своїх ресурсів

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

  • В режимі ядра процес має повний доступ до всх ресурсів

  • В режимі ядра процес виконує тільки код ядра

  • Всі процеси виконуються аналогічно



Планування процесів

  • Кожний процес виконується протягом інтервалу (кванту) часу

  • Або після закінчення кванта, або за «бажанням» процесу керування передається іншому процесові

  • Планування нового процесу в режимі ядра

  • Витіснення (preemption) першого процесу

  • Запуск другого процесу

  • Процедура повторюється



Переключення контексту

  • Кожен процес використовує свої ресурси

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

  • Для цього виконується перевантаження регістрів процесора та інші операції – переключення контексту

  • Переключення контексту – досить «важковагова» операція



Процеси і потоки

  • Для виконання процесів необхідно повністю переключати контекст

  • Для виконання потоків контекст переключати потрібно не повністю

  • Потік – light weight process

  • Використовувати процеси – простіше, але продуктивність нижча

  • Використовувати потоки складніше, але продуктивність вища



Обмін даними

  • Для процесів при обміні даними необхідне переключення контексту

  • Для потоків – усі дані спільні і переключення контексту нема



ОС Linux

  • Linux 1991 г

  • Ядро http://www.kernel.org

  • Множина різноманітних варіантів – поставок, сумісних з ядром за системними викликами

  • Для кожної поставки свої особливості інсталяції, адміністрування, свої програми, версії, бібліотеки



Ядро Linux

  • ~300 Мбайт коду (архів ~30 МБайт)

  • Версія 2.6.11

  • Перша цифра – старший номер

  • Друга цифра – серія

  • Третя цифра – номер випуску

  • Парні серії – стабильні ядра

  • Непарні серії – ядра в стадії розробки



Поставки Linux

  • Найбільш характерні

    • RedHat та похідні
    • Debian
    • Slackware
    • Gentoo
  • Усі мають свої особливості ядра, але усі будуть працювати зі стандартним ядром відповідної серії, яке необхідно компілювати



Інсталяція

  • Методи

    • CD,
    • мережа (http, ftp, pxe),
    • локальний диск
  • Процедура

    • Завантаження інсталятора
    • Вказання місцезнаходження інсталяції
    • Визначення обладнання
    • Розбиття жорсткого диску
    • Вибір пакетів для інсталяції
    • Копіювання інсталяції
    • Початкова конфігурація
    • Установка завантажувача


Структура файлової системи

  • Єдине дерево файлів

  • Каталог – файл, який містить інші файли

  • Каталоги разділяються символом ‘/’

  • Корневий каталог позначається ‘/’

  • Поточний каталог ‘.’

  • Каталог верхнього рівня ‘..’



Монтування

  • Пристрої відображаються на певні каталоги файлової системи (монтуються)

  • При «заходженні» до каталогу монтування робота виконується із відповідним пристроєм



Призначення стандартних каталогів



Як розмітити розділи на жорсткому диску?

  • НАйпростіщий варіант – два розділи

    • SWAP (файл подкачки) розмір 2*RAM
    • / - весь інший доступний простір
  • Для ефективного використання рекомендуеться зробити наступні окремі фізичні розділи:

    • SWAP
    • /
    • /boot (іноді)
    • /home
    • /usr (іноді)
    • /usr/local
    • /var
    • /tmp (або /var/tmp)


Вибір пакетів та інсталяція

  • Рекомендується вибрати ту конфігурацію, яка найбільше підходить

  • Для виконання лабораторних робіт найбільш підходить робоча станція, яка містить:

    • Засоби розробки
    • Програмне забезпечення для наукових обчислень
    • Мережеві утіліти
  • Завнтажувач краще установити в master boot



Використання Linux

  • Користувачі, групи

  • Вхід до системи та права доступу

  • Робота у командному рядку

    • Інтерпретатор командного рядка
    • Основні команди
    • Шляхи та системні змінні
    • Перенаправлення вводу-виводу
    • Сценарії командного рядка
  • Основи адміністрування

    • Робота з користувачами
    • Отримання інформації про систему
    • Робота з файловими системами
    • Настройка мережі
    • Інсталяція програм
    • Компіляція ядра


Користувачі та групи

  • Користувачеві системи відповідає ім’я (login) та номер (uid)

  • Користувач може належати до однієї або декількох груп

  • Кожна група має ім’я та номер (gid)

  • Приклад login saa(1000) належить до груп saa(1000),wheel(10)



Вхід до системи та права доступу

  • Для входу до системи користувач повинен ввести login і пароль

  • Після цього він потрапляє до системи з правами відповідного користувача

  • Права дають можливість використовувати ті чи інші ресурси (файли, пам’ять)

  • Кожен ресурс (файл, програма) має свої права доступу, які відповідають користувачеві, групі та всім іншим



Вхід до системи



Права на ресурси

  • Файли та інші ресурси належать власнику (uid) та групі (gid)

  • Права доступу відповідають

    • Читанню (r)
    • Запису (w)
    • Виконанню (x)
  • Власник та адміністратор мають право змінювати права на ресурси



Інтерпретатор командного рядка

  • В Unix-подібних системах використовується інтерпретатор командного рядка

  • Командний рядок – дуже зручний для роботи інтерфейс

  • Користувач вводить команди, а система їх виконує

  • Робота з графічною інформацією потребує графічного інтерфейсу



Інтерпретатор bash (Bourne-Again SHell)

  • Користувач вводить команди та натискає клавішу

  • Команди можуть містити параметри, які вказуються через символи <ПРОБІЛ>

  • Команди можуть мати ключі (опції), які змінюють поведінку команди

  • Опції починаються з символа -



Основні команди

  • В Unix кожна команда виконує свої функції (робить мало, але добре)

    • cd <ім’я каталога> зробити каталог <ім’я каталога> поточним
    • ls подивитись вміст каталогу
    • cat <ім’я файла>… <ім’я файла> конкатенація файлів на стандартне виведення
    • man <імя команди> подивитись документацію про команду


Ключі та опції

  • Кожна команда має ключі, які змінюють її поведінку

    • ls –l видати інформацію у розширеному вигляді
    • man –k <ключове слово> пошук інформації за ключевим словом


Текстовий редактор та переглядач

  • Редактор vi або vim

    • Перехід до режиму команд
    • Перехід до режиму редагування I
    • Вихід з редактора у режимі команд :q
    • Зберегти файл у режимі команд :w
    • Вийти не зберігаючись у режимі команд :q!
    • Зберегти файл, який тільки для читання, у режимі команд :w!
  • Перегляд файлів команда less



Інші команди

  • Кожна команда – це програма що виконується

  • Програму можна виконати, запустивши відповідний файл, із вказанням повного шляху (/bin/ls)

  • Програми, що знаходяться у стандартних шляхах запускаються тільки із вказанням ім’я програми (ls)



Шляхи та інші системні змінні

  • Стандартні шляхи зберігаються у системній змінній PATH

  • Щоб додати свій шлях, необхідно змінити змінну PATH export PATH=$PATH:<мій шлях>

  • Можна установити таким чином будь-які змінні

  • Усі змінні можна подивитись командою export



Перенаправлення вводу-виводу

  • Вивід однієї програми можна перенаправити на вхід іншої (конвеєр) ls|less (Список файлів каталога можна продивлятись у переглядачі)

  • Можна перенаправити виведення в файл ls > /tmp/file

  • Можна перенаправити дані з файлу cat

  • Можна перенаправляти майже усе, навіть мережеві з’єднання



Робота з процесами

  • Команда ps – список усіх процесів

  • Кожен процес має свій номер pid

  • Команда kill – послати сигнал процесу

  • Команда top інтерактивна робота з процесами

  • У командному рядку

    • Комбінація клавіш ctrl+c завершити поточну програму
    • Комбінація клавіш ctrl+z зупинити поточну програму
    • Команда fg поновити останню зупинену програму


Сценарії командного рядка

  • Команди можна записати послідовно в файл, котрий буде виконуватись, як одна команда (сценарій)



Адміністрування

  • Адміністратор – користувач root (uid=0)

  • Адміністратор має усі системні права

  • Такі операції, як

    • додавання та видалення користувачів,
    • монтування та розмонтування дисків,
    • настроювання мережі,
    • інсталяція системних,
    • інсталяція ядра
  • Дозволені зазвичай тільки адміністратору



Робота з користувачами

  • Список користувачів /etc/passwd

  • Додати користувача adduser <ім’я користувача>

  • Видалити користувача userdel <ім’я користувача>

  • Змінити пароль користувачу passwd <ім’я користувача>



Отримання інформації про систему

  • Файлова система /proc містить файли з інформацією

  • Команда dmesg – останні системні повідомлення

  • Каталог /var/log – усі журнали з інформацією

  • Файл /var/log/messages усі системні повідомлення



Робота із файловими системами

  • Монтування команда mount <файл пристрою> <каталог> mount /dev/fd0 /mnt/floppy

  • Розмонтування команда umount <каталог>

  • Файл /etc/fstab містить список файлових систем, котрі монтуються при старті



Настройка мережі

  • Кожному мережевому адаптеру відповідає свій мережевий інтерфейс

  • Команда ifconfig дозволяє продивлятись та встановлювати параметри



Інсталяція програм

  • Менеджер пакетів rpm

  • Проста компіляція

    • make
    • make install


Компіляція ядра

  • Каталог /usr/src/linux-2.6.11

  • Серія 2.4

    • make menuconfig
    • make dep bzImage modules modules_install install
  • Серія 2.6

    • make menuconfig
    • make all modules_install install



База даних захищена авторським правом ©pres.in.ua 2016
звернутися до адміністрації

    Головна сторінка