Приветствую Вас Гость • Регистрация • Вход • RSS
Суббота, 3.12.2016
Главная » Файлы » Қазақша рефераттар » Информатика [ Добавить материал ]

Ағындарды басқару


Оқушылар,студенттер,мұғалімдер,сайт қолданушылары өз материалыңызбен бөліссеңіз қуанышты болатын едік!

31.10.2015, 22:56

Ағындарды басқару

 


Ағын түсінігі процессордың программаны орындау барысындағы
əрекеттерінің тізбектілігімен байланысты. Программа инструкцияларының мұндай тізбектілігі программа ішінде ағындарды басқару деп аталады.
Программа көпағынды деп аталады, егер бұл программада бір уақытта бірнеше программа орындала алатын болса. Бұл жағдайда ағындар параллельді (қатарлас) деп аталады. Егер программада бір уақытта бір ғана ағын орынадалатын болса, мұндай программа бір ағындық деп аталады.
2.1. Ағын күйі
Ағын бүкіл программаның динамикалық іс-əрекетін немесе программадағы қандай да бір функцияны баяндайды. Белгілеу ыңғайлы болу үшін программаны бір ағынды деп алайық. Онда ағынды келесі жұп ретінде қарастыруға болады:
ағын = (процессор, программа).
Программа процессорда орындала алады, егер бұл программа дайын болса ғана. Сонымен қатар, процессордың өзі де бос болуы керек жəне осы программаны орындауға дайын болуы керек.
Процессор мен программаның күйлерін жазу үшін келесі атауларды енгізейік: процессор үшін - "белгіленбеген", "белгіленген", ал программа үшін - "дайын емес", "дайын".
Онда ағын күйін келесі жіп күйлер арқылы анықтауға болады:
Ағын күйі = (процессор күйі, программа күйі).
Ағын күйі үшін келесі атауларды енгізейік: “тосқаулданған”("белгіленбеген", "дайын емес"), “дайын” ("белгіленбеген", "дайын") жəне “орындалуда” ("белгіленген", "дайын").
Ағынның бір күйден екінші күйге ауысу диаграммасы 2.1-суретте көрсетілгендей болуы мүмкін.
Ағынның бір күйден екінші күйге ауысулары диаграммада доғалармен
белгіленген жəне олар ағындармен жүргізілетін қандай да бір операцияларды баяндайды.
Диаграммада келесі күйлер көрсетілген:
- "жаңа" – өзінің жұмысын əлі бастамаған ағын;
- "аяқталды" – өзінің жұмысын аяқтаған ағын;
- "ұйқыда" – ағын ұйқылы күйде, яғни өзінің орыдалуын қандайда бір уақыт интервалы аралығына тоқтатқан.
Ауысулар, яғни диаграммадағы доғалар баяндайтын операциялардың атаулары олардың жанында стрелкамен көрсетілген. Операцияларды қысқаша баяндасақ, олар:
- create операциясы.
- Exit операциясы – ағын аяқталған жағдайда, ағынның өзімен орындалады жəне ағынды "орындалуда" күйінен "аяқталды" күйіне ауыстырады.
- Run операциясы – процессорлық уақытты бөліп береді жəне ағынды "дайын" күйден "орындалуда" күйіне ауыстырады.
- interrupt операциясы – ағынның орындалуын тоқтатады жəне оны " орындалуда " күйден " дайын " күйіне ауыстырады.
- Block операциясы – ағынды "орындалуда" күйінен "тосқауылданған" күйіне ауыстырады. Бұл операция қандайда бір оқиғаның болуын күткен жағдайда орындалады, мысалы, енгізу-шығару немесе ресурсты босату операциялары аяқталғанда.
- unblock операциясы – ағынды " тосқауылданған " күйінен "дайын" күйіне ауыстырады. Бұл операция ағын күткен оқиға орындалған жағдайда іске қосылады.
- suspend операциясы – ағынның орындалуын тоқтатады.
- Resume операциясы – ағынның орындалуын қайта бастайды.
- sleep операциясы – ағынды "ұйқыда" күйіне ауыстырады.
- wakeup операциясы – операциялық жүйеге ағынды оятуға мүмкіндік береді.
2.2. Ағындарды диспетчерлеу жəне жоспарлау
Мультипрограммалық операциялық жүйелерде ағындарға қызмет көрсету келесідей болады. Процессор жұмысының уақыты кванттарға (интервалдарға) бөлінеді, олар өз алдына ағындардың жұмыстары үшін үлестіріледі. Уақыт кванты біткен соң, ағынның жұмысы үзіліп, процессор басқа ағымға тағайындалады. Уақыт кванттарын ағындар арасында үлестіру жұмысымен ағындар менеджері деп аталатын арнайы программа айналысады.
Ағындар менеджері процессорды басқа ағынға ауыстырғанда келесі əрекеттерді істеуі керек:
- іске қосылатын ағынның оның үзілу кезіндегі контекстіне қайта қалпына;
- басқаруды іске қосылатын ағынға беру.
Бірдей приоритетті ағындарды басқару алгоритмін қарастырайық. Бұл ағындар процессорға кезекке тұрады. Процессор ағындарға FIFO (first in — first out), яғни бірінші келген – бірінші шығады тəртібімен қызмет көрсетеді.
Қызмет көрсетудің мұндай тəртібі циклдық қызмет көрсету деп аталады.
Өйткені аяқталмаған ағамдар келесі қызмет көрсетілгенше тосқауылданады, яғни қызмет көрсетілмей шығырылып тасталмайды. Сондай ақ, мұндай циклдық қызмет көрсету FCFS (first come — first served), яғни бірінші келді – бірінші қызмет көрсетілді деп те аталады.
Егер ағындардың приоритеттері əр түрлі болса, оларды басқаруға бірнеше кезектері бар айтарлықтай күрделі алгоритм керек болады. Бұл жағдайда əрбір кезекте бірдей приоритетті ағындар жиналады.
Бірнеше кезектерге қызмет көрсететін қарапайым алгоритм келесідей болады: бірінші болып приоритеттері жоғары ағындарға қызмет көрсетіледі.
Жалпы жағдайда ағындарды басқару екіге бөлінеді: жоспарлау жəне диспетчерлеу. Ағынды жоспарлау деп үзілген ағындарды кезекке қою үшін қолданылатын алгоритмді айтамыз. Ағындардың менеджер (диспетчер) үзілген ағынның приоритетін өзгерте алады, бұл өз алдына осы ағын тұратын кезекті өзгертуі мүмкін. Жоспарлау алгоритмі кестелер теориясы деп аталатын математикалық пəнмен зертелінеді. Ағындарды диспетчерлеу дегеніміз процессорға ағындарға қызмет көрсетуі үшін тəртіп орнатуды. Диспетчерлеу алгоритмдері жаппай қызмет көрсету теориясы деп аталатын математикалық пəнмен зерттеледі.
Ағындарды басқару алгоритмі жүйенің келесі параметрлерін оптимизациялау үшін əзірлендеі:
- микропроцессордың жұмыс істеу уақыты максималды болуы керек;
- жүйенің өткізу қабілеті максималды болуы керек;
- ағынның жүйеде болу уақыты минималды болуы керек;
- ағынның кезекте күтіп тұру уақыты минималды болуы керек;
- жүйенің тапсырыстарға жауап беру уақыты минималды болуы керек.
Жəне бұл жағдайда əр жүйе үшін ағындардың контекстеріне ауысу шығындарын азайтатын оптималды қызмет көрсету интервалдары таңдалуы керек. Жалпы жағдайда процессордың жұмыс істеу уақытын ағындар арасында бөлу орындалуына көп уақыт қажетсінбейтін ағындарды тез орындауға мүмкіндік береді, бірақ еңбекауқымдылығы жоғары ағындардың орындаулын баяулатады.
2.3 Ағынды анықтау
Windows-та ағын деп қосымшаларды орындау үшін процессорлық уақыттар берілетін ядроның объектісі. Əрбір ағынға келесі ресурстар жатады:
- атқарылатын функцияның кодасы;
- процессор регистрлерінің жиынтығы;
- қосымша жұмысына арналған стек;
- операциялық жүйенің жұмысына арналған стек;
- құрамында қауіпсіздік жүйесіне арналған ақпарат бар қатынас құру маркері.
Аталған ресурстар біріге отырып Windows-ғы ағын контекстін құрайды.
Windows-тағы əрбір ағынның құрамында дескриптормен қоса идентификатор болады. Ол жүйеде орындалып жатқан ағындар үшін ерекше болып табылады.
Ағындардың идентификаторын пайдаланушыларға ағындардың жұмысын бақылауға мүмкіндік беретін қызметтік программалар қолданады.
Windows операциялық жүйесінде ағындардың екі типі болады:
- жүйелік ағындар;
- пайдаланушылық ағындар.
Жүйелік ағындар операциялық жүйенің түрлі қызметтерін атқарады жəне олар операциялық жүйенің ядросымен іске қосылады.
Пайдаланушылық ағындар пайдаланушылар мəселелерін шеші үшін қызмет атқарады жəне қосымшалар арқылы іске қосылады.
Жұмыс істеуші ағындарды екі типті ағындар бар:
- жұмысшы ағындар (working threads);
- пайдаланушы интерфейсінің ағындары (user interface threads).
Жұмысшы ағындар қосымшаның түрлі фондық мəселелерін атқарады.
Пайдаланушы интерфейсінің ағындары терезелермен байланысты жəне терезелерге келіп түсетін хабарларды өңдеумен байланысты жұмыстарды атқарады. Əрбір қосымшада кем дегенде бірінші (primary) немесе негізгі (main) деп аталатын бір ағын болады. Консольдық қосымшаларда бұл ағын main функциясын атқарады. Графикалық интерфейсі бар қосымшаларда бұл ағын WinMain функциясын атқарады.
Бақылау сұрақтары:
1. Ядро объектілерінің пацдаланушылар санашығының міндеті.
2. CREATE_SUSPENDED белгісі не үшін қолданылады?
3. CONTEXT құрылымында қандай деректер сақталады?
4. Ағындар приоритеттерінің деңгейлері қандай диапазонды қамтиды?

 


Похожие материалы

Рахмет ретінде астында тұрған жарнамалардың біреуін басуды сұраймын!

Категория: Информатика | Добавил: Admin
Просмотров: 718 | Загрузок: 0 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]