Top Banner
Operatsioonisüsteemid. Операционные системы Virumaa Kolledž TTÜ Lektor Larissa Joonas 2010 3.
38

Operatsioonisüsteemid. Операционные системы

Jan 17, 2016

Download

Documents

a.mena

Virumaa Kolledž TTÜ Lektor Larissa Joonas 2010 3. Operatsioonisüsteemid. Операционные системы. Osa 2. Protsessid ja lõimed. Процессы и потоки. Protsessid. Процессы. Kõik arvutis funktsioneeriv tarkvara on organiseeritud nagu jarjestikuste protsesside kogum. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Operatsioonisüsteemid.  Операционные системы

Operatsioonisüsteemid. Операционные системы

Virumaa Kolledž TTÜLektor Larissa Joonas

2010

3.

Page 2: Operatsioonisüsteemid.  Операционные системы

2

Protsessid ja lõimed. Процессы и потоки

Osa 2

Page 3: Operatsioonisüsteemid.  Операционные системы

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.

Процессом является выполняемая (работающая) программа с текущими значениями счетчиков команд, регистров и переменных

Page 4: Operatsioonisüsteemid.  Операционные системы

4

Protsesside mudelМодель процессов

Neli ülesannet multitegumilisuses reziimis Четыре задачи в многозадачном режиме

A

B

C

D

Üks programmi loendur

Один программный счетчик

Page 5: Operatsioonisüsteemid.  Операционные системы

5

Protsesside mudelМодель процессов (2)

Nelja sõltumatu jarjestikuse protsessi printsipiaalne mudel Принципиальная модель четырех независимых

последовательных процессов

АB

CD

4 programmi loenduri

4 программных счетчика

Page 6: Operatsioonisüsteemid.  Операционные системы

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. Инициирование пакетного задания

Page 7: Operatsioonisüsteemid.  Операционные системы

7

Protsessi loomine Создание процесса (2)

Tausta protsessid kannavad nime deemonid Фоновые процессы

называются демонами

Page 8: Operatsioonisüsteemid.  Операционные системы

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). Уничтожение другим процессом (непреднамеренно)

Page 9: Operatsioonisüsteemid.  Операционные системы

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 Все процессы равноправны

Page 10: Operatsioonisüsteemid.  Операционные системы

10

Protsessi seisundidСостояния процесса (1)

Võimalikud protsessi seisundid Возможные состояния процесса

Töötav (Работающий) Valmisolev (Готовый к работе) Ootel, blokeeritud (Ожидающий )

Töötav

Ootel Valmisolev

21

3

4

Uus

Katkestatud

Page 11: Operatsioonisüsteemid.  Операционные системы

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

Page 12: Operatsioonisüsteemid.  Операционные системы

12

Protsessi seisundidСостояния процесса (2)

OS madalam kiht Нижний уровень ОС

Отвечает за прерывания и планирование Vastutab katkestuse ja planeerimise eest

Выше расположены последовательные процессы Üleval asuvad järjestikude prosessid

PlaanurPlaanur

0 1 N-1 N...

Protsessid

Page 13: Operatsioonisüsteemid.  Операционные системы

13

Process control block (PCB). Protsessi kontollimie plokk. Контрольный блок процесса

.

.

.

Avatud failide nimekiri

Mälu piir

Registrid

Programmi loendur

Protsessi number

Viit Protsessi olek

Page 14: Operatsioonisüsteemid.  Операционные системы

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

Page 15: Operatsioonisüsteemid.  Операционные системы

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. Процессы перемещаются между очередями.

Page 16: Operatsioonisüsteemid.  Операционные системы

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

Page 17: Operatsioonisüsteemid.  Операционные системы

17

Plaanurid. Планировщики Pikkaaja plaanurid. Долгосрочные

планировщики.– Valivad, mis protsess peab liikuda

valmise protsesside järjekorra. Выбирают, какой процесс будет перемещен в очередь готовых процессов.

Lühike aja plaanurid. Краткосрочные планировщики.– Valivad, missugune protsess peab

liikuda CPU-sse. Выбирают, какой процесс должен быть передан ЦПУ для выполнения.

Page 18: Operatsioonisüsteemid.  Операционные системы

18

Protsesside RealiseerimineРеализация процессов (1)

Protsesside tabel Таблица процессов

Katkestuste vektor Вектор прерываний

Page 19: Operatsioonisüsteemid.  Операционные системы

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

Page 20: Operatsioonisüsteemid.  Операционные системы

20

Klient-Serveri Kommunikatsioon

Sockets Remote Procedure Calls Remote Method Invocation (Java)

Page 21: Operatsioonisüsteemid.  Операционные системы

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.

Page 22: Operatsioonisüsteemid.  Операционные системы

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

Page 23: Operatsioonisüsteemid.  Операционные системы

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

Page 24: Operatsioonisüsteemid.  Операционные системы

24

LõimedПотоки

Mitme programmi samaaegne töö protsessi keskkonnas. Programmid on sõltumatud.

Возможность одновременного выполнения в среде процесса нескольких программ, в достаточной степени независимых

Lihtsustatud protsessid Упрощенные процессы

Mitmelõimelisus Многопоточность

Page 25: Operatsioonisüsteemid.  Операционные системы

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)

Page 26: Operatsioonisüsteemid.  Операционные системы

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 Учетная информация

Page 27: Operatsioonisüsteemid.  Операционные системы

27

Lõime mudelМодель потока (3)

Elemendid, mis on individuaalsed igale lõimele• Элементы, индивидуальные для каждого потока

– Programmi loendur Программный счетчик

– Registrid Регистры

– Pinu Стэк

– Seisund Состояние

Page 28: Operatsioonisüsteemid.  Операционные системы

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.• Процессы как правило запускаются с одним потоком

Page 29: Operatsioonisüsteemid.  Операционные системы

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 Параллелизм при работе с несколькими

процессорами

Page 30: Operatsioonisüsteemid.  Операционные системы

30

Lõimete kasutamine Использование потоков (2)

• Mitmelõimega veebserver– Многопоточный веб-сервер

• Teksti redaktor.

– Текстовый редактор

Page 31: Operatsioonisüsteemid.  Операционные системы

31

Kolm viisi serveri konstrueerimisele. Три способа конструирования сервера

• Paralleltöö, süsteemi kutsed blokeerimisega

– Параллелизм, системные запросы с блокировкой

• Mitte paralleltöö, süsteemi kutsed blokeerimisega

– Без параллелизма, системные запросы с блокировкой

• Paralleltöö, süsteemi kutsed blokeerimiseta, katkestused

– Параллелизм, системные запросы без блокировки, прерывания

Page 32: Operatsioonisüsteemid.  Операционные системы

32

Lõimed kasutaja ruumisПотоки в пространстве пользователя (1)

Protsesside tabel

Lõimed

Lõimede tabel

Kasutaja ruum

Tuuma ruum

Page 33: Operatsioonisüsteemid.  Операционные системы

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 Поток должен добровольно отдать управление

Page 34: Operatsioonisüsteemid.  Операционные системы

34

Lõimede realiseerimine tuumasРеализация потоков в ядре (1)

Protsesside tabel

Lõimed

Kasutaja ruum

Tuuma ruum

Lõimede tabel

Page 35: Operatsioonisüsteemid.  Операционные системы

35

Lõimede realiseerimine tuumas Реализация потоков в ядре (2)

Lõimede korduv kasutamine Повторное использование потоков

Lõimede planeerimise võimalus Возможность планирования потоков

Süsteemikutse kõrge hind Высокая цена системных запросов

Page 36: Operatsioonisüsteemid.  Операционные системы

36

Kasutaja lõimede multiplekseerimine tuuma lõimedesМультиплексирование потоков пользователя в потоках ядра

Lõimed

Kasutaja ruum

Tuuma ruum

Page 37: Operatsioonisüsteemid.  Операционные системы

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

Ядро назначает каждому процессу некоторое количество виртуальных процессоров

Page 38: Operatsioonisüsteemid.  Операционные системы

38

Üles ujuvad lõimedВсплывающие потоки

Olemasolev lõim

Kasutaja ruum

Tuuma ruum

Üles ujuv lõim

Kasutaja ruum

Tuuma ruum

Sissetulev sõnum