Процессом - Virumaa Kolledž

advertisement
Operatsioonisüsteemid.
Операционные системы
Virumaa Kolledž TTÜ
Lektor Larissa Joonas
2010
3.
Osa 2
Protsessid ja lõimed. Процессы и
потоки
2
Protsessid. Процессы

Kõik arvutis funktsioneeriv tarkvara on organiseeritud nagu
jarjestikuste protsesside kogum.


Все функционирующее на компьютере программное
обеспечение организовано в виде набора последовательных
процессов
Protsess – programmi töötav ehk aktiivne koopia, jooksva
registri, käskude ja hetkeseisude tähtsustega.
Процессом является выполняемая (работающая)
программа с текущими значениями счетчиков команд,
регистров и переменных
3
Protsesside mudel
Модель процессов
A
B
C
Üks programmi
loendur
Один
программный
счетчик
D

Neli ülesannet multitegumilisuses reziimis

Четыре задачи в многозадачном режиме
4
Protsesside mudel
Модель процессов (2)
4 programmi loenduri
А

B
D
4 программных
счетчика
C
Nelja sõltumatu jarjestikuse protsessi printsipiaalne mudel

Принципиальная модель четырех независимых
последовательных процессов
5
Protsessi loomine
Создание процесса (1)
Neli peamist sündmust mis viivad
protsesside loomisele
Четыре основных события,
приводящих к созданию процесса
1)Süsteemi initialiseerimine.
Инициализация системы
2)Töötava protsessi süsteemikutse täitmine protsessi
loomiseks.
Выполнение изданного работающим процессом системного запроса
на создание процесса
3)Kasutaja kutse protsessi loomiseks.
Запрос пользователя на создание процесса
4)Pakett töö initsieerimine.
Инициирование пакетного задания
6
Protsessi loomine
Создание процесса (2)

Tausta protsessid
kannavad nime deemonid

Фоновые процессы
называются демонами
7
Protsessi lõpetamine
Завершение процесса
Sündmused, mis lõpetavad protsesse
События, завершающие процесс
1)Tavaline väljumine (tahtlik). Обычный выход (преднамеренно)
2)Väljumine vea pärast (tahtlik). Выход по ошибке
(преднамеренно)
3)Väljumine peale parandamatut viga (mitte tahtlik). Выход по
неисправимой ошибке (непреднамеренно)
4)Teise protsessi poolt hävitamine (mitte tahtlik). Уничтожение
другим процессом (непреднамеренно)
8
Protsesside hierarhia
Иерархия процессов

Emaprotsess loob tütarprotsessi, tütarprotsess võib
samuti luua oma protsesse.


Родительский процесс создает дочерний процесс,
дочерний процесс может создавать свои процессы
Hierarhia kujunemine


UNIX-is - protsesside gruppid


Образование иерархии
В UNIX это называется группой процессов
Windows-is ei ole protsesside hierarhiat


В Windows не существует иерархии процессов
Kõik protsessid on ühetaolised

Все процессы равноправны
9
Protsessi seisundid
Состояния процесса (1)
Katkes
tatud
Töötav
2
1
Uus
3
Ootel
Valmisolev
4

Võimalikud protsessi seisundid




Возможные состояния процесса
Töötav (Работающий)
Valmisolev (Готовый к работе)
Ootel, blokeeritud (Ожидающий )
10
Protsessi seisundid
Состояния процесса (2)
1. Sisend-väljundi või
sündmuse ootamine.
I/O или ожидание
события
2. Planeeritud vahetus.
Смена процесса
планировщиком
3. Katkestamine.
Прерывание
4. Sisend-väljundi või
sündmuse lõpetamine.
I/O или окончание
события
Töötav
Katkes
tatud
2
1
3
Valmisolev
Ootel
4
11
Uus
Protsessi seisundid
Состояния процесса (2)
Protsessid
0
1
...
N-1
N
Plaanur

OS madalam kiht




Нижний уровень ОС
Отвечает за прерывания и планирование
Vastutab katkestuse ja planeerimise eest
Выше расположены последовательные процессы

Üleval asuvad järjestikude prosessid
12
Process control block (PCB). Protsessi kontollimie
plokk. Контрольный блок процесса
Viit
Protsessi olek
Protsessi number
Programmi loendur
Registrid
Mälu piir
Avatud failide nimekiri
.
.
.
13
CPU Ümberlülitemine protsesside vahel.
Переключение между процессами
Protsess P0
Protsess P1
töötav
Salvesta seisund PCB0-le
tühikäigu
.
.
.
Lugeda seisund PCB1-lt
tühikäigu
Süsteemi kutse
töötav
Salvesta seisund PCB0-le
.
.
.
tühikäigu
Lugeda seisund PCB1-lt
töötav
14
Protsesside järjekorad.
Очереди процессов




Job queue – ülesande järjekord — очередь
задач. Kõik protsessid süstemis
Ready queue – valmis protsesside
järjekord — очередь готовых процессов.
Protsessid peamälus, valmis ja ootel
Device queues – riistvara järjekord —
очередь к оборудованию. Protsessid I/O
ootamise järjekorras.
Protsessid liikuvad järjekorda vahel.
Процессы перемещаются между
очередями.
15
Protsesside järjekorad.
Очереди процессов (2)
Valmis protsessid
I/O
I/O jarjekord
CPU
I/O kutse
Aeg on läbi
Loodud
Katkestus
Tütre protsess loomiseks
Katkestuse ootamine
16
Plaanurid. Планировщики

Pikkaaja plaanurid. Долгосрочные
планировщики.
–
Valivad, mis protsess peab liikuda
valmise protsesside järjekorra.
Выбирают, какой процесс будет
перемещен в очередь готовых
процессов.
Lühike aja plaanurid. Краткосрочные
планировщики.
–
Valivad, missugune protsess peab
liikuda CPU-sse. Выбирают, какой
процесс должен быть передан ЦПУ
для выполнения.
17
Protsesside Realiseerimine
Реализация процессов (1)

Protsesside tabel


Таблица процессов
Katkestuste vektor

Вектор прерываний
18
Protsesside Realiseerimine
Реализация процессов (2)
Protsesside juhtimine
Mälu juhtimine
Failide juhtimine
Registrid
Programmi loendur
Programmi seisundi
sõna
Pinuviit (Stack pointer)
Programmi seisund
Prioriteet
Planeeringu parametrid
Protsessi ID
Ema protsess
Protsessi grupp
Signaal
Protsessi stardi aeg
Aeg CPU-s
Tütre CPU-s aeg
Järgmise alarmi aeg
Viit järgmise segmentile
Viit andme segmentile
Viit pinu segmentile
Root kaust
Töö kaust
Faili deskriptorid
Kasutaja ID
Gruppi ID
Некоторые поля типичного элемента таблицы процессов
19
Tüüpiliste protsesside tabeli mõned väljad
Klient-Serveri Kommunikatsioon



Sockets
Remote Procedure Calls
Remote Method Invocation (Java)
20
Socket
Socket on kommunikatsiooni lõpp punkt.
Сокет — это конечная точка
коммуникации
 IP aadress ja port. Совокупность адреса и
порта
Socket 161.25.19.8:1625 kasutab port 1625
adressil 161.25.19.8. Сокет
161.25.19.8:1625 использует 1625 порт и
адрес 161.25.19.8.

21
Socket Communication
Host 152.36.112.205
Socket 152.36.112.205/1625
Web-server 155.113.2.11
Socket 155.113.2.11/80
22
Remote Procedure Calls (RPC). Kaug
protseduuri kutse. Удаленный вызов
процедур
Remote procedure call (RPC) abstrageerib
protseduuri kutse protsesside vahel võrgu
süsteemis. RPC – абстракция вызова
процедур между процессами в сети.
 Stubs
 The client-side stub
 The server-side stub
Stub
Klient
Server
Võrk
23
Lõimed
Потоки

Mitme programmi samaaegne töö protsessi
keskkonnas. Programmid on sõltumatud.


Lihtsustatud protsessid


Возможность одновременного выполнения в среде
процесса нескольких программ, в достаточной
степени независимых
Упрощенные процессы
Mitmelõimelisus

Многопоточность
24
Lõime mudel
Модель потока (1)
P0
P1
P2
P0
Kasutaja
ruum
Kasutaja
ruum
Tuum
Tuuma
ruum
a)
Tuum
Tuuma
ruum
b)
(a) Kolm protsessi üksiku juhtiva lõimega
Три процесса с одиночными потоками управления
(b) Üks protsess kolme juhtiva lõimega
25
Один процесс с тремя потоками управления
Lõime mudel
Модель потока (2)

Elemendid, mida kasutatakse kõikide protsessi lõimete poolt

Элементы, совместно используемые всеми потоками процесса
» Aadressi ruum
Адресное пространство
» Globaalsed muutujad
Глобальные переменные
» Avatud failid
Открытые файлы
» Tütre protsessid
Дочерние процессы
» Alarmid
Алармы
» Signalid ja signali töötlejad Сигналы и их обработчики
» Konto informatsioon
Учетная информация
26
Lõime mudel
Модель потока (3)
Elemendid, mis on individuaalsed igale lõimele
•
Элементы, индивидуальные для каждого потока
Программный счетчик
–
Programmi loendur
–
Registrid
Регистры
–
Pinu
Стэк
–
Seisund
Состояние
27
Lõime mudel
Модель потока (4)
Iga lõim kasutab oma pinu.
У каждого потока свой собственный стек
Iga lõime pin sisaldab iga kutsutatud protseduri kohta ühte
freimi
•
Стек каждого потока содержит по одному фрейму для каждой
вызванной процедуры
Freimil on protseduuri lokaalsed muutujad ja naasmise
aadress
•
Во фрейме находятся локальные переменные процедуры и
адрес возврата
Tavaliselt protsessid käivituvad ühega lõimega.
•
28
Процессы как правило запускаются с одним потоком
Lõimete kasutamine
Использование потоков (1)

Aadressi ruumi ja andmete parallelse kasutamise
võimalus


Loomise ja hävitamise kergus (100 korda vähem
aega, kui protsessile)


Легкость создания и уничтожения (в 100 раз
меньше времени, чем на процесс)
Tööjõudlus


Возможность параллельного использования
адресного пространства и данных
Производительность работы
Parallelne töö mitmete protsessoritega

Параллелизм при работе с несколькими
процессорами
29
Lõimete kasutamine
Использование потоков (2)
•
Mitmelõimega veebserver
– Многопоточный веб-сервер
•
Teksti redaktor.
–
Текстовый редактор
30
Kolm viisi serveri konstrueerimisele. Три
способа конструирования сервера
•
Paralleltöö, süsteemi kutsed blokeerimisega
–
•
Mitte paralleltöö, süsteemi kutsed
blokeerimisega
–
•
Параллелизм, системные запросы с
блокировкой
Без параллелизма, системные запросы с
блокировкой
Paralleltöö, süsteemi kutsed blokeerimiseta,
katkestused
–
Параллелизм, системные запросы без
31
блокировки, прерывания
Lõimed kasutaja ruumis
Потоки в пространстве пользователя (1)
Kasutaja ruum
Lõimed
Lõimede tabel
Protsesside
tabel
Tuuma ruum
32
Lõimed kasutaja ruumis
Потоки в пространстве пользователя (2)

Igale protsessile on vaja oma lõimetabel


Protseduur, mis on planeerija ning hoiab informatsiooni
protsessi eest on lokaalsed protseduurid ja sellepärast
effektiivsemad


Каждый процесс имеет собственный алгоритм планирования
Blokeerivate süsteemkutsete realiseerimise probleem


Процедура, сохраняющая информацию о потоке и планировщик
являются локальными процедурами и они более эффективны
Iga protsess omab oma planeerimise algorütm


Каждому процессу необходима собственная таблица потоков
Проблема реализации блокирующих системных запросов
Lõim peab andma juhtimise tagasi vabatahtlikult

Поток должен добровольно отдать управление
33
Lõimede realiseerimine tuumas
Реализация потоков в ядре (1)
Kasutaja ruum
Lõimed
Lõimede tabel
Protsesside
tabel
Tuuma ruum
34
Lõimede realiseerimine tuumas
Реализация потоков в ядре (2)

Lõimede korduv kasutamine


Lõimede planeerimise võimalus


Повторное использование потоков
Возможность планирования потоков
Süsteemikutse kõrge hind

Высокая цена системных запросов
35
Kasutaja lõimede multiplekseerimine tuuma lõimedes
Мультиплексирование потоков пользователя в потоках ядра
Kasutaja ruum
Lõimed
Tuuma ruum
36
Planeerija aktiveerimine
Активация планировщика

Eesmärk – tuuma lõimede funktsionalsuse imiteerimine.


Kasutaja kihti lõimede võimsus


Производительность потоков уровня пользователя
Mitetarviliku ülekäigu koguse tuuma ja kasutaja ruumi vahel
vähendamine


Цель – имитация функциональности потоков ядра
Уменьшение количества ненужных переходов между
пространством пользователя и ядром
Tuum määrab igale protsessile mingi koguse virtuaalseid
protssesse

Ядро назначает каждому процессу некоторое количество
виртуальных процессоров
37
Üles ujuvad lõimed
Всплывающие потоки
Kasutaja ruum
Kasutaja ruum
Olemas
olev
lõim
Üles
ujuv
lõim
Sissetulev
sõnum
Tuuma ruum
Tuuma ruum
38
Download