Operatsioonisüsteemid. Операционные системы Virumaa Kolledž TTÜ Lektor Larissa Joonas 2010 3.
Jan 17, 2016
Operatsioonisüsteemid. Операционные системы
Virumaa Kolledž TTÜLektor Larissa Joonas
2010
3.
2
Protsessid ja lõimed. Процессы и потоки
Osa 2
3
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.
Процессом является выполняемая (работающая) программа с текущими значениями счетчиков команд, регистров и переменных
4
Protsesside mudelМодель процессов
Neli ülesannet multitegumilisuses reziimis Четыре задачи в многозадачном режиме
A
B
C
D
Üks programmi loendur
Один программный счетчик
5
Protsesside mudelМодель процессов (2)
Nelja sõltumatu jarjestikuse protsessi printsipiaalne mudel Принципиальная модель четырех независимых
последовательных процессов
АB
CD
4 programmi loenduri
4 программных счетчика
6
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. Инициирование пакетного задания
7
Protsessi loomine Создание процесса (2)
Tausta protsessid kannavad nime deemonid Фоновые процессы
называются демонами
8
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). Уничтожение другим процессом (непреднамеренно)
9
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 Все процессы равноправны
10
Protsessi seisundidСостояния процесса (1)
Võimalikud protsessi seisundid Возможные состояния процесса
Töötav (Работающий) Valmisolev (Готовый к работе) Ootel, blokeeritud (Ожидающий )
Töötav
Ootel Valmisolev
21
3
4
Uus
Katkestatud
11
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
Ootel Valmis-olev
21
3
4
Katkestatud
Uus
12
Protsessi seisundidСостояния процесса (2)
OS madalam kiht Нижний уровень ОС
Отвечает за прерывания и планирование Vastutab katkestuse ja planeerimise eest
Выше расположены последовательные процессы Üleval asuvad järjestikude prosessid
PlaanurPlaanur
0 1 N-1 N...
Protsessid
13
Process control block (PCB). Protsessi kontollimie plokk. Контрольный блок процесса
.
.
.
Avatud failide nimekiri
Mälu piir
Registrid
Programmi loendur
Protsessi number
Viit Protsessi olek
14
CPU Ümberlülitemine protsesside vahel. Переключение между процессами
Protsess P0
töötavtöötav
töötav
Salvesta seisund PCB0-le
.
.
.
Lugeda seisund PCB1-lt
Salvesta seisund PCB0-le
Lugeda seisund PCB1-lt
.
.
.
Süsteemi kutse
Protsess P0Protsess P1
töötav
töötav
tühikäigu
tühikäigu
tühikäigu
15
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. Процессы перемещаются между очередями.
16
Protsesside järjekorad.Очереди процессов (2)
Valmis protsessid CPU
I/O jarjekord I/O kutseI/O
Aeg on läbi
Tütre protsess loomiseks
Katkestuse ootamine
Loodud
Katkestus
17
Plaanurid. Планировщики Pikkaaja plaanurid. Долгосрочные
планировщики.– Valivad, mis protsess peab liikuda
valmise protsesside järjekorra. Выбирают, какой процесс будет перемещен в очередь готовых процессов.
Lühike aja plaanurid. Краткосрочные планировщики.– Valivad, missugune protsess peab
liikuda CPU-sse. Выбирают, какой процесс должен быть передан ЦПУ для выполнения.
18
Protsesside RealiseerimineРеализация процессов (1)
Protsesside tabel Таблица процессов
Katkestuste vektor Вектор прерываний
19
Protsesside RealiseerimineРеализация процессов (2)
Некоторые поля типичного элемента таблицы процессовTüüpiliste protsesside tabeli mõned väljad
Protsesside juhtimine Mälu juhtimine Failide juhtimine
RegistridProgrammi loendurProgrammi seisundi sõnaPinuviit (Stack pointer)Programmi seisundPrioriteetPlaneeringu parametridProtsessi IDEma protsessProtsessi gruppSignaalProtsessi stardi aegAeg CPU-sTütre CPU-s aegJärgmise alarmi aeg
Viit järgmise segmentileViit andme segmentileViit pinu segmentile
Root kaustTöö kaustFaili deskriptoridKasutaja IDGruppi ID
20
Klient-Serveri Kommunikatsioon
Sockets Remote Procedure Calls Remote Method Invocation (Java)
21
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.
22
Socket Communication
Socket 152.36.112.205/1625 Socket 155.113.2.11/80
Host 152.36.112.205 Web-server 155.113.2.11
23
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
Klient Server
Stub
Võrk
24
LõimedПотоки
Mitme programmi samaaegne töö protsessi keskkonnas. Programmid on sõltumatud.
Возможность одновременного выполнения в среде процесса нескольких программ, в достаточной степени независимых
Lihtsustatud protsessid Упрощенные процессы
Mitmelõimelisus Многопоточность
25
Lõime mudelМодель потока (1)
(a) Kolm protsessi üksiku juhtiva lõimegaТри процесса с одиночными потоками управления(b) Üks protsess kolme juhtiva lõimegaОдин процесс с тремя потоками управления
P0 P1 P2
Kasutaja ruum
Tuuma ruum
Tuum
Kasutaja ruum
Tuuma ruum
Tuum
P0
a) b)
26
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 Учетная информация
27
Lõime mudelМодель потока (3)
Elemendid, mis on individuaalsed igale lõimele• Элементы, индивидуальные для каждого потока
– Programmi loendur Программный счетчик
– Registrid Регистры
– Pinu Стэк
– Seisund Состояние
28
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.• Процессы как правило запускаются с одним потоком
29
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 Параллелизм при работе с несколькими
процессорами
30
Lõimete kasutamine Использование потоков (2)
• Mitmelõimega veebserver– Многопоточный веб-сервер
• Teksti redaktor.
– Текстовый редактор
31
Kolm viisi serveri konstrueerimisele. Три способа конструирования сервера
• Paralleltöö, süsteemi kutsed blokeerimisega
– Параллелизм, системные запросы с блокировкой
• Mitte paralleltöö, süsteemi kutsed blokeerimisega
– Без параллелизма, системные запросы с блокировкой
• Paralleltöö, süsteemi kutsed blokeerimiseta, katkestused
– Параллелизм, системные запросы без блокировки, прерывания
32
Lõimed kasutaja ruumisПотоки в пространстве пользователя (1)
Protsesside tabel
Lõimed
Lõimede tabel
Kasutaja ruum
Tuuma ruum
33
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
Процедура, сохраняющая информацию о потоке и планировщик являются локальными процедурами и они более эффективны
Iga protsess omab oma planeerimise algorütm Каждый процесс имеет собственный алгоритм планирования
Blokeerivate süsteemkutsete realiseerimise probleem Проблема реализации блокирующих системных запросов
Lõim peab andma juhtimise tagasi vabatahtlikult Поток должен добровольно отдать управление
34
Lõimede realiseerimine tuumasРеализация потоков в ядре (1)
Protsesside tabel
Lõimed
Kasutaja ruum
Tuuma ruum
Lõimede tabel
35
Lõimede realiseerimine tuumas Реализация потоков в ядре (2)
Lõimede korduv kasutamine Повторное использование потоков
Lõimede planeerimise võimalus Возможность планирования потоков
Süsteemikutse kõrge hind Высокая цена системных запросов
36
Kasutaja lõimede multiplekseerimine tuuma lõimedesМультиплексирование потоков пользователя в потоках ядра
Lõimed
Kasutaja ruum
Tuuma ruum
37
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
Ядро назначает каждому процессу некоторое количество виртуальных процессоров
38
Üles ujuvad lõimedВсплывающие потоки
Olemasolev lõim
Kasutaja ruum
Tuuma ruum
Üles ujuv lõim
Kasutaja ruum
Tuuma ruum
Sissetulev sõnum