Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Операційні системи

Содержание

/25Лекція 4План лекціїМультипрограмування Означення процесу і потокуМоделі процесів і потоківКерування потоками, плануванняОпис процесів і потоків: керуючий блок, образ, дескриптор і контекстСтани потоків
Операційні системиЛекція 5Керування процесами  і потоками /25Лекція 4План лекціїМультипрограмування Означення процесу і потокуМоделі процесів і потоківКерування потоками, плануванняОпис /25Лекція 4МультипрограмуванняМультипрограмування, або багатозадачність (multitasking) – спосіб організації обчислювального процесу, в якому /25Лекція 4Процеси і потокиПроцес – це абстракція, що описує програму, яка виконується /25Лекція 4Моделі процесів і потоківОднозадачні системи – один адресний простір (один процес), /25Лекція 4Потоки ядра  і потоки користувачаЯдро ОС керує потоками ядра. Керування /25Лекція 4Переваги і недоліки багатопотоковості+ (переваги)Реалізація різних видів паралелізму (concurrency) – багатопроцесорних /25Лекція 4Завдання підсистеми керування процесами (потоками)Створення та знищення процесів і потоківПланування виконання /25Лекція 4Опис процесів і потоківКеруючий блок потоку (Thread Control Block, TCB)Ідентифікаційні дані /25Лекція 4Опис процесів і потоківІдентифікаційні дані потокуСтан процесораКеруючий блок потокурегістри процесора, лічильник /25Лекція 4Приклади структур,  що описують процесиOS/360 – Task Control Block, TCB /25Лекція 4Образи процесу і потокуОбраз потокуКеруючий блок потокуСтек ядраСтек користувачаОбраз процесуКеруючий блок /25Лекція 4Образ процесу /25Лекція 4Дескриптор і контекст процесу (UNIX)Дескриптор – структура, що містить інформацію, необхідну /25Лекція 4Стани потоків /25Лекція 4Створення процесівНеобхідні діїСтворити інформаційні структури, що описують процес (керуючий блок: дескриптор, /25Лекція 4Черги процесів (потоків) /25Лекція 4Керування процесами в UNIX/LinuxОбраз процесу містить:Керуючий блокКод програмиСтек процесуГлобальні даніІдентифікатор процесу /25Лекція 4Керування процесами в UNIX/LinuxКеруючий блок в Linux – структура task_struct, містить /25Лекція 4Багатопотоковість у LinuxТрадиційна реалізація: бібліотека LinuxThreadsПотоки – це процеси, що користуються /25Лекція 4Багатопотоковість у SolarisМодель багатопотоковості – 1:1 (починаючи з Solaris 8)Кожен потік /25Лекція 4Керування процесами у WindowsАдресний простір процесу складається з набору адрес віртуальної /25Лекція 4Структури даних процесу у WindowsДоступні лише у привілейованому режимі:Для виконавчої системи /25Лекція 4Керування потоками у WindowsЕлементи потоку:Вміст набору регістрів, який визначає стан процесораДва /25Лекція 4Структури даних потоку у WindowsДоступні лише у привілейованому режимі:Для виконавчої системи
Слайды презентации

Слайд 2 /25
Лекція 4
План лекції
Мультипрограмування
Означення процесу і потоку
Моделі процесів

/25Лекція 4План лекціїМультипрограмування Означення процесу і потокуМоделі процесів і потоківКерування потоками,

і потоків
Керування потоками, планування
Опис процесів і потоків: керуючий блок,

образ, дескриптор і контекст
Стани потоків

Слайд 3 /25
Лекція 4
Мультипрограмування
Мультипрограмування, або багатозадачність (multitasking) – спосіб організації

/25Лекція 4МультипрограмуванняМультипрограмування, або багатозадачність (multitasking) – спосіб організації обчислювального процесу, в

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

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

Слайд 4 /25
Лекція 4
Процеси і потоки
Процес – це абстракція, що

/25Лекція 4Процеси і потокиПроцес – це абстракція, що описує програму, яка

описує програму, яка виконується в даний момент
Складові частини процесу:
Послідовність

виконуваних команд процесора
Набір адрес пам'яті (адресний простір), у якому розташовані команди процесора і дані для них
Потік (нитка, thread) – набір послідовно виконуваних команд процесора
У багатопотокових системах процес – це сукупність одного або декількох потоків і захищеного адресного простору, у якому ці потоки виконуються

Слайд 5 /25
Лекція 4
Моделі процесів і потоків
Однозадачні системи – один

/25Лекція 4Моделі процесів і потоківОднозадачні системи – один адресний простір (один

адресний простір (один процес), у якому може виконуватись один

потік
Деякі сучасні вбудовані системи – один адресний простір (один процес), у якому можуть виконуватись кілька потоків
Однопотокова модель процесів (традиційні системи UNIX) – багато процесів, але у кожному з них лише один потік
Багатопотоковість, або модель потоків (більшість сучасних ОС) - багато процесів, у кожному з яких може бути багато потоків

Слайд 6 /25
Лекція 4
Потоки ядра і потоки користувача
Ядро ОС керує

/25Лекція 4Потоки ядра і потоки користувачаЯдро ОС керує потоками ядра. Керування

потоками ядра. Керування потоками користувача здійснюють спеціальні системні бібліотеки

(підтримка потоків POSIX)
Існують різні схеми багатопотоковості:

Слайд 7 /25
Лекція 4
Переваги і недоліки багатопотоковості
+ (переваги)
Реалізація різних видів

/25Лекція 4Переваги і недоліки багатопотоковості+ (переваги)Реалізація різних видів паралелізму (concurrency) –

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

розподілених застосувань
Масштабованість (особливо із зростанням кількості процесорів)
Необхідно менше ресурсів, ніж для підтримки процесів
Ефективний обмін даними через спільну пам'ять
– (недоліки)
Складність розроблення й налагодження багатопотокових застосувань
Зниження надійності застосувань (можливі “гонки”, витоки пам'яті, втрата даних)
Можливість зниження продуктивності застосувань

Слайд 8 /25
Лекція 4
Завдання підсистеми керування процесами (потоками)
Створення та знищення

/25Лекція 4Завдання підсистеми керування процесами (потоками)Створення та знищення процесів і потоківПланування

процесів і потоків
Планування виконання процесів або потоків, тобто розподіл

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

Слайд 9 /25
Лекція 4
Опис процесів і потоків
Керуючий блок потоку (Thread

/25Лекція 4Опис процесів і потоківКеруючий блок потоку (Thread Control Block, TCB)Ідентифікаційні

Control Block, TCB)
Ідентифікаційні дані потоку
Стан процесора потоку (регістри процесора,

лічильник інструкцій, покажчик на стек)
Інформація для планування потоків
Керуючий блок процесу (Process Control Block, PCB)
Ідентифікаційні дані процесу
Інформація про потоки цього процесу (наприклад, покажчики на їхні керуючі блоки)
Інформація, на основі якої можна визначити права процесу на використання ресурсів
Інформація про розподіл адресного простору процесу
Інформація про ресурси введення-виведення та файли, які використовує процес
Таблиця процесів (потоків) – зв'язний список або масив відповідних керуючих блоків

Слайд 10 /25
Лекція 4


Опис процесів і потоків

Ідентифікаційні дані потоку
Стан процесора



Керуючий

/25Лекція 4Опис процесів і потоківІдентифікаційні дані потокуСтан процесораКеруючий блок потокурегістри процесора,

блок потоку
регістри процесора,
лічильник інструкцій,
покажчик на стек
Інформація для

планування потоків


Керуючий блок процесу

Ідентифікаційні дані процесу

Інформація про потоки цього процесу

Інформація про ресурси введення-виведення та файли, які використовує процес

Інформація, що визначає права процесу на використання ресурсів

Інформація про розподіл адресного простору процесу


Слайд 11 /25
Лекція 4
Приклади структур, що описують процеси
OS/360 – Task

/25Лекція 4Приклади структур, що описують процесиOS/360 – Task Control Block, TCB

Control Block, TCB (керуючий блок задачі)
OS/2 – Process Control

Block, PCB (керуючий блок процесу)
UNIX – proc, дескриптор процесу
Windows – object-process (об'єкт-процес)

Слайд 12 /25
Лекція 4
Образи процесу і потоку
Образ потоку
Керуючий блок потоку
Стек

/25Лекція 4Образи процесу і потокуОбраз потокуКеруючий блок потокуСтек ядраСтек користувачаОбраз процесуКеруючий

ядра
Стек користувача
Образ процесу
Керуючий блок процесу
Програмний код користувача
Дані користувача
Інформація образів

потоків процесу

Слайд 13 /25
Лекція 4
Образ процесу

/25Лекція 4Образ процесу

Слайд 14 /25
Лекція 4
Дескриптор і контекст процесу (UNIX)
Дескриптор – структура,

/25Лекція 4Дескриптор і контекст процесу (UNIX)Дескриптор – структура, що містить інформацію,

що містить інформацію, необхідну для планування процесів. Ця інформація

необхідна протягом усього часу життєвого циклу процесу
Ідентифікатор процесу
Стан процесу
Пріоритет процесу
Розміщення процесу в оперативній пам'яті і на диску
Ідентифікатор користувача, що створив процес
Контекст – структура, що містить інформацію, необхідну для відновлення виконання процесу (менш оперативна, але більш об'ємна частина інформації, ніж у дескрипторі)
Стан регістрів процесора
Коди помилок виконаних системних викликів
Інформація про відкриті файли і незавершені операції введення-виведення
Таблиця процесів – список дескрипторів
Контекст зв'язаний з образом процесу і переміщується разом з ним (наприклад, може бути витісненим з оперативної пам'яті на диск)

Слайд 15 /25
Лекція 4
Стани потоків

/25Лекція 4Стани потоків

Слайд 16 /25
Лекція 4
Створення процесів
Необхідні дії
Створити інформаційні структури, що описують

/25Лекція 4Створення процесівНеобхідні діїСтворити інформаційні структури, що описують процес (керуючий блок:

процес (керуючий блок: дескриптор, контекст)
Виділити оперативну пам’ять
Завантажити кодовий сегмент

процесу в оперативну пам’ять
Поставити дескриптор процесу у чергу готових процесів
Створення у два етапи (POSIX)
fork() – створює точну копію поточного процесу
exec() – заміняє код поточного процесу на код іншого
Створення в один етап (Windows) – CreateProcess()
(це не системний виклик, а бібліотечна функція)
Копіювання під час запису
Під час виклику fork() дані з пам'яті предка у пам’ять нащадка не копіюють, а натомість відображають адресний простір і помічають області пам'яті як захищені від запису
У разі спроби запису виділяють пам’ять і здійснюють копіювання

Слайд 17 /25
Лекція 4
Черги процесів (потоків)

/25Лекція 4Черги процесів (потоків)

Слайд 18 /25
Лекція 4
Керування процесами в UNIX/Linux
Образ процесу містить:
Керуючий блок
Код

/25Лекція 4Керування процесами в UNIX/LinuxОбраз процесу містить:Керуючий блокКод програмиСтек процесуГлобальні даніІдентифікатор

програми
Стек процесу
Глобальні дані
Ідентифікатор процесу PID – унікальний
Підтримується зв’язок предок-нащадок
Ідентифікатор

процесу-предка PPID вказують під час створення
Якщо предок завершує роботу, то PPID:=1 (процес init)
Створення процесу: fork(), exec() (Linux – execve())

Слайд 19 /25
Лекція 4
Керування процесами в UNIX/Linux
Керуючий блок в Linux

/25Лекція 4Керування процесами в UNIX/LinuxКеруючий блок в Linux – структура task_struct,

– структура task_struct, містить в собі і дескриптор, і

контекст
В ядрі до версії 2.4 керуючі блоки зберігались у масиві максимального розміру 4 кБ (“таблиця процесів системи”)
В ядрі версії 2.4 і вище – дві динамічні структури без обмеження довжини
Хеш-таблиця (дає змогу швидко знаходити процес за його PID)
Кільцевий двозв’язний список, що забезпечує виконання дій у циклі для усіх процесів системи
У UNIX SVR4 і BSD керуючий блок складається з двох структур
proc – дескриптор (утворюють таблицю процесів)
user (u) – контекст (пов'язаний з процесом)

Слайд 20 /25
Лекція 4
Багатопотоковість у Linux
Традиційна реалізація: бібліотека LinuxThreads
Потоки –

/25Лекція 4Багатопотоковість у LinuxТрадиційна реалізація: бібліотека LinuxThreadsПотоки – це процеси, що

це процеси, що користуються спільними структурами даних, але мають

окремі стеки
Створення потоку: системний виклик clone()
Недоліки:
Створення потоку збільшує кількість процесів у системі
Кожний потік має власний PID (це суперечить POSIX)
Існує зв’язок предок-нащадок (чого не повинно бути)
Кожне багатопотокове застосування обов'язково створює додатковий потік-менеджер
Нова реалізація: NPTL (Native POSIX Threads Library), що спирається на нові функціональні можливості ядра
Як процес у системі реєструють лише перший потік застосування
Усі потоки процесу повертають один і той самий PID
Зв’язок предок-нащадок між потоками не підтримується
Потік-менеджер не потрібен
Зняті обмеження на кількість потоків у системі
У більшості UNIX-систем, на відміну від Linux, реалізована повна підтримка POSIX Threads

Слайд 21 /25
Лекція 4
Багатопотоковість у Solaris
Модель багатопотоковості – 1:1 (починаючи

/25Лекція 4Багатопотоковість у SolarisМодель багатопотоковості – 1:1 (починаючи з Solaris 8)Кожен

з Solaris 8)
Кожен потік користувача відповідає одному окремому потоку

ядра (Kernel Thread, kthread)
Фактично планування здійснюється для потоків ядра – це найголовніша відмінність від традиційної системи UNIX
Кожен потік ядра в процесі повинен мати власний “легкий” процес (Lightweight process, LWT) – віртуальне середовище виконання, що має власний стек

Слайд 22 /25
Лекція 4
Керування процесами у Windows
Адресний простір процесу складається

/25Лекція 4Керування процесами у WindowsАдресний простір процесу складається з набору адрес

з набору адрес віртуальної пам'яті, які цей процес може

використовувати
Адреси можуть бути пов'язані з оперативною пам'яттю, а можуть – з відображеними у пам’ять ресурсами
Адресний простір процесу недоступний іншим процесам
Процес володіє системними ресурсами, такими як файли, мережні з'єднання, пристрої введення-виведення, об’єкти синхронізації
Процес не має прямого доступу до процесора
Процес містить стартову інформацію для потоків, які у ньому створюються
Процес обов'язково має містити хоча б один потік

Слайд 23 /25
Лекція 4
Структури даних процесу у Windows
Доступні лише у

/25Лекція 4Структури даних процесу у WindowsДоступні лише у привілейованому режимі:Для виконавчої

привілейованому режимі:
Для виконавчої системи – об'єкт-процес виконавчої системи (Executive

Process Block, EPROCESS)
KPROCESS
Ідентифікаційна інформація (PID, PPID, ім'я файлу)
Інформація про адресний простір процесу
Інформація про ресурси, доступні процесу
PEB
Інформація для підсистеми безпеки
Для ядра – об'єкт-процес ядра (Kernel Process Block, KPROCESS)
Покажчик на ланцюжок блоків потоків ядра
Інформація, необхідна ядру для планування
Доступна у режимі користувача:
Блок оточення процесу (Process Environment Block, PEB)
Початкова адреса ділянки пам'яті, куди завантажився програмний файл
Покажчик на динамічну ділянку пам'яті, що доступна процесу

Слайд 24 /25
Лекція 4
Керування потоками у Windows
Елементи потоку:
Вміст набору регістрів,

/25Лекція 4Керування потоками у WindowsЕлементи потоку:Вміст набору регістрів, який визначає стан

який визначає стан процесора
Два стеки (для режиму ядра і

режиму користувача), що розміщені в адресному просторі процесу
Локальна пам’ять потоку (TLS)
Унікальний ідентифікатор потоку TID
Розрізняють потоки ядра і потоки користувача

  • Имя файла: operatsіynі-sistemi.pptx
  • Количество просмотров: 125
  • Количество скачиваний: 0