Факультеті Бағдарламалық қамтамасыз ету


Ортақ енгізу-шығару құрылғылары, құрылғыларды жалғау



бет51/60
Дата27.12.2022
өлшемі2,27 Mb.
#59900
түріКонспект
1   ...   47   48   49   50   51   52   53   54   ...   60
Байланысты:
5-Дарис консп

Ортақ енгізу-шығару құрылғылары, құрылғыларды жалғау. Көп құрылғылар бірігіп қолдануды қолдамайды. Біріншіден ол тізбекті қатынайтын құрылғылар. Ондай құрылғылар жалғанған болуы мүмкін, яғни бір есептеу үрдіске беріледі. Бірақ ол есептеу үрдістерінің параллельді жұмыс жасауына мүмкіндік бермейді және енгізу-шығару құрылғыларының босау уақытын күтеді. Параллельді орындалып жатқан есептер арасында енгізу-шығару құрылғыларын қолдануын ұйымдастыру үшін виртуальді құрылғылар түсінігі енгізіледі.
Виртуализация принципін қолдану есептеу жүйесінің тиімділігін жоғарлатуға мүмкіндік береді. Көбінесе виртуалды құрылғыға – спулинг терминін қолданады.
Спулинг дегеніміз- операциялайтын режимде құрылғылармен жұмыс иммитациясы. Спулингтің негізгі жұмысы тізбекті қатынайтын құрылғыларының параллельді бөлінуінің көрінісін ұйымдастыру. Бірақ олар монопольді және жалғанған ретінде қолдану қажет.
Мысалы, егер біз бірнеше қолданбаның қорытындысын басуға жіберетін болсақ, онда біз түсініксіз қорытындыға ұшыраймыз. Бірақ әр есептеу үрдісіне виртуальді принтер беруге болады және ағындылар бірінші рет магнитті дискідегі арнайы спул файлына жіберіледі.
Программисті компьютерге орнатылған енгізу-шығару құрылғыларының параметрлері және олардың мүмкіншіліктері мүмкіншілік болғанша ойландырмау керек. Оған тек қолданатын енгізу-шығару құрылғыларының жалпы мүмкіншіліктері қажет. Бірақ программист магниттік дискімен жұмыс арасында тікелей адрестеуді қолданбайды. Ол файлдық жүйе деңгейімен жұмыс жасайды. Бұл жағдайда қандай жинақтауыш, қай типті және моделі компьютерде қолданылғаны файлдық жүйе құрущыларын тәуелді болмауы қажет.
Виртуалды құрылғыға сәйкес нақты құрылғы кесте арқылы супервизормен таңдалады. Сонымен құрылғының қосылу тәсілі оның моделі және оған сәйкес драйверлер бірінші жабдық кестесінде анықталады. Ол виртуалды құрылғыны жүйелік кестесімен байланыстыру үшін екінші жүйелік кестесі қолданылады. Шартты біз оны виртуалды логикалық құрылғының сипаттама кестесі дейміз.(DRT-device reference table).
Енгізу-шығару үрдісін басқару
1-әрекет. Орындалып жатқан программадан енгізу-шығару операциясына сұраныс супервизорға түседі.
1.1-әрекет. Супервизор жүйелік шақыруды қабылданған спецификацияларға сәйкестігін тексереді және қате болған жағдайда есепке сәйкес хабарлама жібереді.
2-әрекет. Егер сұраныс дұрыс болса онда есеп енгізу-шығару супервизорына бағытталады.
2.2-әрекет. Супервизор виртуаль аты арқылы DRT кестесінен құрылғы кестесінен сәйкес UCB элементін табады. Егер құрылғы бос болмаса, онда есеп сипаттаушы құрылғыны күтіп тұрған есептер тізіміне орналастырады.
3-әрекет. Егер құрылғы бос болса, онда енгізу-шығару супервизоры UCB–дан құрылғының типін анықтайды және қажет болса санашықты іске қосады, ол құрылғыны түсінетін және орындайтын басқару деректерін және кодтарын ашуға мүмкіндік береді.
4-әрекет. Енгізу-шығаруды басқаратын программа дайын болған кезде, енгізу-шығару супервизоры басқаруды сәйкес драйверіне береді(іске қосу секциясы).
5-әрекет. Драйвер басқару операциясын инициялизациялайды, тайм-аут санауышын нөлдейді және санашыққа орындалуға дайын есепті қою үшін супервизорға (есеп диспетчеріне) басқаруды қайтарады.
6-әрекет. Жүйе жұмысты кезегімен орындайды, бірақ енгізу-шығару құрылғысы жіберілген команданы орындап болған соң, үзуге сұраныс сигналын орнатады және үзу кестесі арқылы басқару жалғастыру секциясына беріледі. Жаңа команданы алған соң құрылғы оны орындайды және санашықпен басқаруды қайтадан есеп диспетчеріне қайтарады, ал санашық өзінің жұмысын жалғастырады. Сонымен есептердің параллель өңделуі болады, соның көрісінде санашық енгізу-шығару операциларының басқаруын жүзеге асырады.
Синхронды және асинхронды енгізу-шығару. Енгізу-шығару операциясына сұраныс берген есеп берілегн операциялардың аяқталғанын күту күйіне супервизормен ауыстырылады.
Аяқталу секциясынан операцияның аяқталғаны жайлы супервизор хабарлама алған соң ол есепті орындалуға дайын күйіне ауыстырады және ол өзінің жұмысын жалғастырады. Бұл жағдай синхронды енгізу-шығаруға сәйкес синхронды енгізу-шығару көп ОЖ стандартты болып табылады.
Қолданбалардың орындалу жылдамдығын ұлғайту үшін қажет болғанда асинхронды енгізу-шығару қолданылады. Асинхронды енгізу-шығарудың қарапайым варианты, ол сыртқы құрылғылардың деректерін буферлі шығару. Бұл кезде қолданбадағы деректер енгізу-шығару құрылғыларына жіберілмейді, ал арнайы жүйелік буферге жіберіледі. Негізгі логикалы қолданбаға шығару операциясы бірден орындалған болып саналады, және есеп нақты деректердің құрылғыларға жіберілген үрдісін күтудің қажеті жоқ. Жүйелік буферден деректерді щығаруды енгізу-шығару супервизоры атқарады.
Енгізу-шығару супервизорының нұсқауы бойынша арнайы жүйелік үрдіс жүйелік жады аймағында буферге орын бөледі. Асинхронды деректерді енгізуді де ұйымдастыруға болады. Бірақ ол үшін тек қана жады аймағында құрылғылардан оқып деректерді уақытша сақтап, бөлінген буферді операцияға сұраныс берген есеппен байланыстыру ғана емес және енгізу-шығару операциясына сұранысты екі бөлікке бөлу(екі сұранысқа).
Бірінші сұраныста деректерді оқу операциясына нұсқау беріледі. Бұл сұраныста қосымша параметр беріледі - ол есеп сұранысқа жауап алатын және берілген ерекшеленген буферді идентификациялайтын жүйелік обьекттің аты.
Буфердің атын алып есеп өзінің жұмысын жалғастырады. Деректерді асинхронды енгізу кезінде есеп енгізу-шығару супервизоры арқылы енгізу-шығару операциясының аяқталуын күту күйіне өткізілмейді, ол орындалу немесе орындалуға дайын күйінде қалады. Бірнеше уақыттан соң программистпен анықталған қажет код арқылы есеп енгізу-шығару операциясын аяқтауға екінші сұраныста береді. Бұл жағдайда сол құрылғыға (оның коды басқа) есеп жүйелік объекттің атын көрсетеді және деректерді оқу операциясы ойдағыдай аяқталған жағдайда ол оларды жүйелік буферден сол заматында алады. Егер деректер сыртқы құрылғыдан жүйелік буферге аяғына дейін жазылып үлгірмеген жағдайда, енгізу-шығару супервизоры есепті енгізу-шығару операциясының аяқталуын күту күйіне ауыстырылады.
Енгізу-шығару аппаратурасы біріккен аппаратты санашықтар сияқты қарастыруға болады. Бұл санашықтарда сыртқы үрдістер орындалады. Мысалы, сыртқы құрылғыға сыртқы үрдіс біріккен операциялар ретінде көрсетіліп олар мысалы бір символдардың басылуы.
Сыртқы үрдістер енгізу-шығару аппаратурасын қолдана отырып олар бір бірімен әрекеттеседі және орталық санашықта орындалатын программалық үрдістермен әрекеттеседі. Бұл жерде ең маңыздысы ол сыртқы үрдістің жылдамдылығы ішкі үрдістердің орындалуынан айырмашылығы бар. Ішкі және сыртқы үрдістер өздерінің жұмысы дұрыс орындалуы үшін олар синхрондалу қажет.
Сыртқы және ішкі үрдістердің жылдамдылықтарының сәйкессіздігін дұрыстау үшін буферлеу қолданылады. Буферлер арқылы деректер немесе бір үрдістен адрестелген сыртқы құрылғыға жіберіледі (сыртқы құрылғыларының деректерін шығару операциясын) немесе сыртқы үрдістен бір программалық үрдіске (деректерді оқу операциясы).
ОЖ супервизорленген бөлігі жүйелік буферлермен басқару проблемаларын шешеді. Буферлерді бөлу, босату ғана емес және оларды бос буфер болмаған жағдайда күту есептерін супервизор шешу қажет. Көбінесе енгізу-шығару супервизоры бұл есептерді шешу үшін ОЖ-де қабылданған стандартты синхронизация құралдарын қолданады. Сондықтан егер ОЖ есептерді параллельді орындалу проблемаларын шешетін құралдары болса, онда ол асинхронды енгізу-шығаруды ұйымдастырады.
Есептерді динамикалық жоспарлау үрдістерді жоспарлауға қарағанда актуалды, өйткені қорларды тиімді үлестіру әр жағдайда болады. Есептің динамикалық жоспарлауын диспетчерлеу деп атайды. Орындалып жатқан үрдістермен ағындар арасында ағымдағы қорларды үлестіруден жоспарлау көп ұйымдастырылады.
Орындалуға дайын есептердің кезегінің тізімін дайындайтын көп диспетчерлеу пәндері белгілі. Қызмет көрсететін пәндер екі үлкен топқа бөлінеді – пұрсаттылықты және пұрсаттылықсыз.
Мультипрограммалық ОЖ-де көп есептер орындалған кезде деректерді оқуға және жазуға сұраныс көп ағындар болып өтуі мүмкін, сондықтан оларды орындау кезінде кезек пайда болады. Егер біз сұраныстарды олардың кезекке түскеніне байланысты орындайтын болсақ, онда магниттік дискінің секторларына кездейсоқ қатынайтын боламыз, онда деректерді жабуға біз көп уақыт жібереміз. Өйткені деректерді іздеп табуға уақытты азайту үшін сұраныстарды кезекке дұрыстап қоюға болады және олар тез орындалу үшін тиімді әдісті табу қажет. Ол проблеманы шешу үшін қажет тиімді жоспарлау пәнін табу қажет. Белгілі пәндерді қарастырайық, олар деректерді оқу/жазу операцияларына сұраныс кезегін қайта құрады.
1. SSTF(shortest seek time-first)-бірінші-минималды іздеу уақытымен. Бұл пән бойынша магниттік бастиекті позицияланған кезде келесі болып саналатын сұраныс ол оның цилиндрынан цилиндрға жылжу уақыты минималды болу, бұл сұраныс кезекте бірінші болуының қажеті жоқ. Бұл пәннің қасиеті, ол дискілік бағыныңқы жүйенің максималды өткізу қабілеті.
2. Scan(сканерлеу)-бұл пән бойынша бастиек бірде бір бағытта, бірде басқа бағытта жылжиды. Жолда сәйкес сұраныстарды орындайды. Егер оқу-жазу бастиегінің жылжу кезінде сәйкес сұраныс болмаса, онда ол кері бағытта жылжиды.
3. Next-Step-Scan-алдыңғы пәннен айырмашылығы ол жылжыту кезінде тек қана сол уақытта болған сұраныстарды орындайды. Бастиектің оқуға-жазуға жылжу уақытында пайда болған жаңа сұраныстар, жаңа сұраныс кезегін құрайды. Бұл сұраныстарды кері жолда орындауы мүмкін .
4. C-Scan – бұл пән бойынша бастиектің жылжуы қайталап ең сыртқы жолдардан ішкілерге, жолда бар сұраныстарға қызмат көрсетіп, содан соң қайта сыртқы цилиндрға ауысады.




Достарыңызбен бөлісу:
1   ...   47   48   49   50   51   52   53   54   ...   60




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет