1 / 38

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

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.

amena
Télécharger la présentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  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 hetkeseisudetähtsustega. Процессом является выполняемая (работающая) программа с текущими значениями счетчиков команд, регистров и переменных

  4. Protsesside mudelМодель процессов A • Neli ülesannet multitegumilisuses reziimis • Четыре задачи в многозадачном режиме Üks programmi loendur Один программный счетчик B C D

  5. Protsesside mudelМодель процессов (2) • Nelja sõltumatu jarjestikuse protsessi printsipiaalne mudel • Принципиальная модель четырех независимых последовательных процессов 4 programmi loenduri 4 программных счетчика А B C D

  6. Protsessi loomineСоздание процесса (1) Neli peamist sündmust mis viivad protsesside loomisele Четыре основных события, приводящих к созданию процесса • Süsteemi initialiseerimine. Инициализация системы • Töötava protsessi süsteemikutse täitmine protsessi loomiseks. Выполнение изданного работающим процессом системного запроса на создание процесса • Kasutaja kutse protsessi loomiseks. Запрос пользователя на создание процесса • Pakett töö initsieerimine. Инициирование пакетного задания

  7. Protsessi loomineСоздание процесса (2) • Tausta protsessid kannavad nime deemonid • Фоновые процессы называются демонами

  8. Protsessi lõpetamineЗавершение процесса Sündmused, mis lõpetavad protsesse События, завершающие процесс • Tavaline väljumine (tahtlik). Обычный выход (преднамеренно) • Väljumine vea pärast (tahtlik). Выход по ошибке (преднамеренно) • Väljumine peale parandamatut viga (mitte tahtlik). Выход по неисправимой ошибке (непреднамеренно) • 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) Töötav Katkestatud • Võimalikud protsessi seisundid • Возможные состояния процесса • Töötav (Работающий) • Valmisolev(Готовый к работе) • Ootel, blokeeritud (Ожидающий) 2 1 Uus 3 Ootel Valmisolev 4

  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 Katkestatud Uus 2 1 3 Ootel Valmis-olev 4

  12. Protsessi seisundidСостояния процесса(2) ... Protsessid • OS madalam kiht • Нижний уровень ОС • Отвечает за прерывания и планирование • Vastutab katkestuse ja planeerimise eest • Выше расположены последовательные процессы • Üleval asuvad järjestikude prosessid 0 1 N-1 N Plaanur

  13. Process control block (PCB). Protsessi kontollimie plokk. Контрольный блок процесса Viit Protsessi olek Protsessi number Programmi loendur Registrid Mälu piir Avatud failide nimekiri . . .

  14. CPU Ümberlülitemine protsesside vahel. Переключение между процессами Protsess P0 Protsess P0 Protsess P1 töötav töötav töötav Salvesta seisund PCB0-le tühikäigu . . . Lugeda seisund PCB1-lt Süsteemi kutse töötav tühikäigu Salvesta seisund PCB0-le . . . tühikäigu Lugeda seisund PCB1-lt töötav

  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) CPU Valmis protsessid I/O I/O jarjekord I/O kutse Aeg on läbi Tütre protsess loomiseks Loodud Katkestuse ootamine 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

  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 Host 152.36.112.205 Web-server 155.113.2.11 Socket 152.36.112.205/1625 Socket 155.113.2.11/80

  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 Stub Klient Server Võrk

  24. LõimedПотоки • Mitme programmi samaaegne töö protsessi keskkonnas. Programmid on sõltumatud. • Возможность одновременного выполнения в среде процесса нескольких программ, в достаточной степени независимых • Lihtsustatud protsessid • Упрощенные процессы • Mitmelõimelisus • Многопоточность

  25. Lõime mudelМодель потока(1) • Kolm protsessi üksiku juhtiva lõimega Три процесса с одиночными потоками управления (b) Üks protsess kolme juhtiva lõimega Один процесс с тремя потоками управления P0 P1 P2 P0 Kasutaja ruum Kasutaja ruum Tuum Tuum Tuuma ruum Tuuma ruum 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. Protsesside tabel Lõimed kasutaja ruumisПотоки в пространстве пользователя (1) Kasutaja ruum Lõimed Lõimede tabel 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. Protsesside tabel Lõimede realiseerimine tuumasРеализация потоков в ядре (1) Kasutaja ruum Lõimed Lõimede tabel Tuuma ruum

  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Мультиплексирование потоков пользователя в потоках ядра Kasutaja ruum Lõimed 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Всплывающие потоки Kasutaja ruum Kasutaja ruum Olemasolev lõim Üles ujuv lõim Sissetulev sõnum Tuuma ruum Tuuma ruum

More Related