Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lektsii_SPO_kaz_1.docx
Скачиваний:
71
Добавлен:
18.02.2016
Размер:
1.35 Mб
Скачать

Windows 2000 ағындар

Windows операциялық жүйесінде көпағындықдың «бір/бір» моделін жүзеге асырады. Әрбір ағын мыналардан тұрады:

  • ағын идентификаторы (thread id);

  • регистрлер жиынтығы

  • қолданушылық және жүйелік процедураларға арналған жеке стектер

  • ағындардың жергілікті мәліметтеріне арналған жады аймағы (thread-local storage – TLS).

Linux-тағы ағын

Linux жүйесінде ағын threads емес, tasks (задачами) деп аталады.Ағын clone () жүйелік шақырумен құрылады. Жүйелік шақыру қыздарының тапсырмасы ата-аналық тапсырмасымен(үрдісімен) ортақ адресті аймақты қолдануға мүмкіндік береді.

Java-дағы ағын

Java – көпесептілікті тілдік және базалық кітапхана деңгейінде бағдарламаны өңдеуге арналған алғашқы платформа. Java ағындары келесі жолдар арқылы құрылады:

  • Thread класстың кеңейтілуі түрінде

  • құрамында жалғыз әдіс run - орындалатын ағын денесі кіретін Runnable интерфейсі бар класс түрінде

Java-дағы ағындар JVM арқылы басқарылады.ағындар тобының және сондай топтардың иерархиясы түрінде құрылуы мүмкін.

Java –дағы ағындар мүмкін болатын жағдайыны 7-суретте көрсетілген. АЖ-дегі ағындарға ұқсайды, Java-дағы ағындар жаңа болып құрылады және новый қалпында болады, одан кейін – выполняемый; wait, sleep және т.б типті әдісті шақыру кезінде ағын күту режиміне ауысады; run әдісі аяқталған кезде ағын аяқталады.

Сурет 7.  Java-дағы ағындар жағдайы.

Кілттік терминдер

Mac C-threads – MacOS жүйесіндегі қолданушылық ағын.

POSIX Pthreads – POSIX спецификацияланған стандартында және POSIX қосымшасында қолданылатын ағындар

Solaris threads Solaris ОЖ-де қолданылатын ағын.

Thread – Java тіліндегі ағындарды көрсететін класс .

Ағын атрибуттары – pthread_attr_t типінде сипатталатын POSIX ағынындағы атрибуттардың сәйкестігі.

Ағындар тобы (thread group) – өзінің аты бар ағындар үстіндегі топтық операциялармен анықталған ағындардың сәйкестігі.

Дескриптор потока POSIX-ағынына сілтеу типом pthread_t типімен сипатталады.

Тапсырма (task) –Linux-дағы ағын аты.

Ерекшелік (exception) – АЖ-дегі және объектілі-бағытталған тілдердегі қатені өңдеу кезіндегі жоғары деңгейлі

Ағынның локальді берілгендері (thread-local storage - TLS) – белгілі бір анықталған ағынға жататын және сол ағын ғана қолданатын деректер.

Көпағындық моделі – ағын ядросындағы қолданылатын ағынның көрсетілу тәсілі.

Көп/көп моделі – әр түрлі қолданушылық ағындар әр түрлі ядро ағынында көрсетілуі мүмкін көпесептілік моделі

Көп/бір моделі – көпағындық моделі, бірнеше қолданушылық ағындар бір ғана ядро ағынында көрсетілуі мүмкін көпесептілік моделі.

Бір/бір моделі – әрбір қолданушылық ағындар белгілі бір анықталған ядро ағынында көрсетілуі мүмкін көпесептілік моделі

Мьютекс (mutex) – АЖ-де қолданылатын өзара ерекшелігін қамтитын семафорлар аналогтары.

Жеңілдетілген процесс (lightweight process) – жалпы виртуалды жады аймағында ата-ана үрдісімен жұмыс істейтін.

Ағын (thread) – ата-ана процессінің сол адресті кеңістікте орындалатын паралельді үрдістің эффективті нұсқасы түріндегі қандай да бір іске қосылатын процесс.

Қолданушы деңгейіндегі ағын (user thread) – қолданушының АЖ интерфейсіне қосылған операциялардың жоғары деңгейлі ағыны.

Ядро ағыны (kernel thread) – АЖ ядросының деңгейінде қоданылатын және қолдайтын төмен деңгейлі жүйелік ағын.

Ағын пулы (ThreadPool) – NET тобындағы ағынды құрастырудың эффективті механизмі.

Сигналдар(в UNIX) – қате жағдайындағы төмен деңгейлі өңдеу механизмі.

"Күрделі" (heavyweight) процесс – оңайлатылған үрдіске қарама-қарсы өзінің адрестік кеңістігі бар классикалық үрдіс аты.

Шартты айнымалы (conditional variable) – wait және signal операцияларымен АЖ-де қолданылатын синхрондалатын объект.

Көпағындылық (multi-threading) –компьютердің паралельді архитектурасының кең тарауына байланысты бағдарламалаудың қазіргі заманғы бағыты. Ағын – жалпы адресті кеңістікте ата-ана үрдісімен орындалатын үрдістің ерекше түрі.Ағын өзінің стегімен, басқару ағынымен және регистр мағыналарымен сипатталады.

Облегченный процесс (lightweight process) – АЖ-дегі ағын іске асатын механизм.

Алғашқы процесс ұғымы қазіргі ағын концепциясына жақын болды, яғни 1970 жылдың аяғында "Эльбрус" жүйесінде іске асқан. Көпағындылық UNIX-та, содан кейін Solaris-та және Windows NT-да пайда болды. Әр түрлі АЖ-дегі кітапхана архитектурасын қолдайтын көпағындылық бір-бірінен ерекшеленеді. Алғашқы көпағындылықтың тілдік және базалық кітапхана деңгейдегі іске асуы Java-технологиясында артынан .NET-та іске асты.

Ағындар архитектурасы – көп деңгейлі:жүйелік ағын(ядро ағыны) көмегімен қолданушылық деңгейінде ағынның іске асады. Көпағындылықтың әр түрлі модель түрі бар(жүйедегі қолданушылық ағынның көрсетілуі) – бір-бір, бір-көп, көп-бір.

Көпағындылық қызықты проблемаларды қарастырады: fork және exec жүйелік семантикалық шақыруларын; ағынның тоқталуы; сигналдарды өңдеу;топтағы ағын құрылымын; жергілікті ағын деректерін қолдау (TLS);ағын синхронизациясы; тығырықтар және олардың тоқталуы

POSIX threads (Pthreads) –API АЖ-нің UNIX типті көпағындылықты қолдайтын стандартизациясы.Ағын өзінің дескрипторы және атрибуттарымен сипатталады. Ағындарды синхрондау үшін мьютекстер мен шартты айнымалылар қолданылады.

Solaris АЖ-дегі ағын жүйелік және қолданушылық түсінігімен қоса жеңілдетілген процесс түсінігі арқылы ерекшеленеді.Әрбір дәстүрлі үрдіс құрастырылған жеңілдетілген үрдісі бар тізімді сақтайды. Көпағындылықтың "көп-көп" моделі қолданылады.

Windows 2000 "бір-бір" көпағындылық моделін қолданады. Әрбір ағын өзінің нөмірін, регистр жинақтарын, жүйелік және қолданушылық процедура үшін жеке стектерін, жергілікті ағын жадын(TLS) сақтайды.).

Linux ағындары тапсырма (tasks) деп аталады және clone жүйелік шақырулары арқылы и құрылады.

Java-дағы ағындар тілдік және базалық деңгейдегі кітапханасын қолдайды. Thread объект класстарымен және классастымен көрсетіледі. Виртуалды Java машинасымен басқарылады. Ағын тобын құруға болады. АЖ қолданатын ағындар жағдайы аналогті болады.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]