Программа дисциплины для студентов



бет24/44
Дата14.03.2023
өлшемі1.8 Mb.
#470786
түріБағдарламасы
1   ...   20   21   22   23   24   25   26   27   ...   44
БА дарламасы ( Syllabus ) Павлодар, 2014ж П н ба дарламасы (Syll

Синхронды және асинхронды енгізу-шығару. Енгізу-шығару операциясына сұраныс берілген операциялардың аяқталғанын күту күйіне супервизормен ауыстырылады. Аяқталу секциясынан операцияның аяқталғаны жайлы супервизор хабарлама алған соң ол есепті орындалуға дайын күйіне ауыстырады және ол өзінің жұмысын жалғастырады. Бұл жагдай синхронды енгізу-шығару сәйкес синхронды енгізу-шығару көп ОЖ стандартты болып табылалы. Қолданбалардың орындалу жылдамдығын ұлгайту үшін кажет болғанда асинхронды енгізу-шығару қолданылады. Асинхронды енгізу-шығарудың карапайым варианты, ол сырткы кұрылғылардың деректерін буферлі шығару. Бұл кезде қолданбадағы деректер енгізу-шығару кұрылғыларына жіберілмейді, ал арнайы жүйелік буферге жіберіледі. Негізгі логикалы қолданбаға шығару операциясы бірден орындалған болып саналады, және есеп накты деректердің құрылғыларға жіберілген үрдісін күтудің қажеті жоқ. Жүйелік буферден деректерді шығаруды енгізу-шығару супервизоры атқарады.
Енгізу-шығару супервизорының нұсқауы бойынша арнайы жүйелік үрдіс жүйелік жады аймағында буферге орын бөледі. Асинхронды деректерді енгізуді де ұйымдастыруға болады. Бірак ол үшін тек қана жады аймағында кұрылғылардан оқып деректерді уакытша сақтап, бөлінген буферді операцияға сұраныс берген есеппен байланыстыру ғана емес және енгізу-шығару операциясына сұранысты екі бөлікке бөлу(екі сұранысқа).
Бірінші сұраныста деректерді оқу операциясына нұскау беріледі. Бұл сұраныста қосымша параметр беріледі - ол есеп сұранысқа жауап алатын және берілген ерекшеленген буферді идентификациялайтын жүйелік объекттің аты. Буфердің атын алып есеп өзінің жұмысын жалғастырады. Деректерді асинхронды енгізу кезінде есеп енгізу-шығару супервизоры арқылы енгізу-шығару операциясының аякталуын күту күйіне өткізілмейді, ол оры ндалу немесе орындалуға дайын күйінде калады. Бірнеше уақыттан сон программистпен анықталған қажет код арқылы есеп енгізу-шығару операциясын аяқтауға екінші сұраныста береді. Бұл жағдайда сол кұрылғыға (оның коды баска) есеп жүйелік объекттің атын көрсетеді және деректерді оқу операциясы ойдағыдай аяталған жағдайда ол оларды жүйелік буферден сол заматында алады. Егер деректер сыртқы құрылғыдан жүйелік буферге аяғына дейін жазылып үлгірмеген жағдайда, енгізу-шығару супервизоры есепті енгізу-шығару операциясының аякталуын күту күйіне ауыстырылады.
Асинхронды енгізу-шығару мультипрограммалық ОЖ қолданылады, әсіресе егер олар трелтер механизмі арқылы қолданылса.
Енгізу-шығару аппаратурасы біріккен аппаратты санашыктар сияқты қарастыруға болады. Бұл санашықтардыда сыргқы үрдістер орыіідалады. Мысалы, сыртқы күрылгыға сыртқы үрдіс біріккен операциялар ретінде көрсетіліп олар мысалы бір символдардың басылуы. Сыртқы үрдістер енгізу-шығару аппаратурасын қолдана отырып олар бір бірімен әрекеттеседі және орталык санашықта орындалатын "программалык" үрдістермен әрекеттеседі. Бұл жерде ең маңыздысы ол сыртқы үрдістің жылдамдылығы "ішкі" үрдістердің орындалуынан айырмашылығы бар. Ішкі және сыртқы үрдістер өздерінің жұмысы дұрыс орындалуы үшін олар синхрондалу қажет. Сыртқы және ішкі урдістердің жылдамдылыктарының сәйкессіздігін дұрыстау үшін буферлеу қолданылады. Буферлер арқылы деректер немесе бір үрдістен адрестелген сыртқы күрылғыға жіберіледі (сыртқы құрылғыларының деректерін шығару операциясын) немесе сыртқы үрдістен бір программалық үрдіске (деректерді оқу операциясы).
ОЖ супервизорленген бөлігі жүйелік буферлермнн басқару проблемаларын шешеді. Буферлерді бөлу, босату ғана емес және оларды бос буфер болмаған жағдайда күту есептерін супервинзор шешу қажет. Көбінесе енгізу-шығару супервизоры бұл есептерді шешу үшін ОЖ-де кабылданған стандартты синхронизация құралдарын колданады. Сондықтан егер ОЖ есептерді параллельді орындалу проблемаларын шешетін құралдары болса, онда ол асинхронды енгізу-шығаруды ұйымдастырады.
Есептерді динамикалық жоспарлау үрдістерді жоспарлауға қарағанда тиімді үлестіру әр жағдайда болады. Есептің динамикалық жоспарлауын диспетчерлеу деп атайды. Орындалып жатқан үрдістермен ағындар арасында ағымдағы қорларды үлестіруден жоспарлау көп ұйымдастырылады.
Орындалуға дайын есептердің кезегінің тізімін дайындайтын көп диспетчерлеу пәндері 6елггісі. Кызмет көрсететін пәндер екі үлкен топқа бөлінеді — пұрсаттылықты және құрсаттылықсыз.
Мультипрограммалық ОЖ-де көп есептер орындалған кезде деректерді оқуға және жазуға сұраныс көп ағындар болып етуі мүмкін, сонідықтан оларды орындау кезінде кезек пайда болады. Егер біз сұраныстарды олардың кезекке түскеніне байланысты орындайтын болсак, онда магниттік дискінің секторларына кездейсоқ қатынайтын боламыз, онда деректерді жабуға біз көп уақыт жібереміз. Өйткені деректерді іздеп табуға уақытты азайту үшін сұраныстарды кезекке дұрыстап коюға болады және олар тез орындалу үшін тиімді әдісті табу қажет. Ол проблеманы шешу үшін тиімді жоспарлау пәнін табу қажет. Белгілі пәндерді қарастырайык, олар деректерді оқу/жазу операцияларына сұраныс кезегін қайта құрады.
1. SSTS (shotest seek time-firsy)-бірінші-минималды іздеу уақытымен. Бұл пән бойынша
магниттік бастиекті позицияланғаи кезде келесі болып саналатын сұраныс ол оның цилиндрынан цилиндрға жылжу уақыты минималды болу, бұл сұраныс кезекте бірінші болуының кажеті жоқ. Бұл пәннің қасиеті, ол дискілік бағыныңқы жүйенің максималды өткізу кабілеті.

  1. Scan (сканерлеу)-бұл пән бойынша бастиек бірде бір бағытта, бірде басқа бағытта жылжиды. Жолда сәйкес сұраныстарды орындайды. Егер оқу-жазу бастиегінің жылжу кезінде сәйкес сұраныс болмаса, онда ол кері бағытта жылжиды.

  2. Next-Step-Scan-алдыңғы пәннен айырмашылығы ол жылжыту кезінде тек қана сол уақьттта болған сұраныстарды орындайды. Бастиектін оқуға-жазуға жылжу уақытында пайда болған жаңа сұраныстар, жаңа сұраныс кезегін құрайды. Бұл сұраныстарды кері жолда орындауы мүмкін.

  3. С-Scan - бүл пән бойынша бастиектің жылжуы қайталап ең сыртқы жолдардан ішкілерге, жолда бар сұраныстарға қызмет көрсетіп, содан соң қайта сырткы цилиндрға ауысады.

Енгізу-шыгару - ол операциялық жүйенің жобалауының ең қиын аймактарының бірі. Енгізу-шығару құрылғыларының коптігінен және олардың түрлі табиғаттарынан қиыншылықтар туады. Сондықтан операциялык жүйені тудырушылар арасында оңай есеп тұрған жоқ. Олар енгізу-шығару құрылғыларының тиімді басқаруы ғана емес қолданба программистер құрылғылардың түріне қарамастан деректерді оңай оқып, сақтау үшін ыңғайлы тиімді виртуальді интерфейсті құру қажет.
Бір модельге бірнеше түрлі құрылғыларды біріктіретін жүйелік енгізу-шығару әмбебап болу қажет. Біріншіден ол бар құрылғылардың қажеттіліктерін ескеру қажет. Екіншіден бірнеше параллель орындалып жатқан есептерге енгізу-шығару құрылғыларына қатынауды ескеру қажет.
Сондыктан ең негізгі болып келесі әдіс саналады: енгізу-шығаруды басқаратын операциялар привилегиялық деп аталады және операциялык жүйенің коды аркылы орындалады.
Қолданбалы программалар өздері енгізу-шығару құрылғыларымен тікелей байланысалпайды. Енгізу-шығару сұранысына керек мәндерді орнатып, енгізу-шығару супервизорына басқару беріледі.
Қордын негізгі түрлерінің бірі ол санашықтық уақыт. Есептеу жүйесіндегі қордын екінші түрі ол жады.
Жады және қатынау (деректерге қатынау үрдісі) олар әртүрлі қор болып саналады. Бұл қорлар бір бірінен бөлек қолданыла береді. Бірақ сыртқы жадының толық жұмысы орындалу үшін бұл қордың екеуі де керек. Тікелей қатынау механизмі қолданылса сыртқы құрылғылар параллельді болінуі мүмкін.
Бөлінетін құрылғыларға мысал келтірсек ол компакт-дискілерді қоятын құрылғы. Бұл тік қатынас құратын құрылғы.
Егер құрылғы тізбекті қатынау механизмі арқылы жұмыс жасайтын болса, онда ол кор бөлінбейтін кор, мысал келтірсек ол баспалар.
Ең қажетті қорлардын бірі ол программалық модуль. Программалық модульдер бір рет және бірнеше рет қолданылатын болып бөлінеді.
Жүйелік бір рет қодданылатын программалық модульдер ОЖ-е жүктелу кезінде қолданылады.
Бірнеше рет (қайталап) қолданылатын программалық модульдер привиллегиялық, привиллегиялық емес және рентабельдік болуы мүмкін.
ІІривиллегиялық программалық модульдер привиллегиялық режимде жұмыс жасайды.
Енгізу-шығару сұраныстары нақгы белгіленген бірнеше өңдеу этаптарынан өтеді. Бұл этаптарда сұраныс құрылғыға бірқатпарлы драйверлер арқылы басқарылатын немесе көпқатпарлы драйвер арқылы өтуіне байланысты айырмашылықтары бар. Әрі қарай айырмашылықтарлы оңдеу негізінде берілген енгізу-шығару типі - синхронды немесе асинхронды бойынша белгіленеді. Мысалы екі үрдіс жалпы оперативті жадының кеңістігінде жұмысын орындайды. Бұнда бөлінетін қорлар әр түрлі режимдерде орындалуы мүмкін, мысал екі урдіс екі бөлек машинада болса, бірак олар жалпы оперативті жадының орісімен байланысуы мүмкін. Бұл жағдайда жадымен буферлеу жұмысын атқарған кезде проблема түзелуі мүмкін, ойткені әр машинаның өзінің оку/жазу буферлеу механизмдері болады. Онда жағымсыз жағдай туады, физикалық жадының жағдайы оның реалды мәніне сәйкес келмейді. Сонымен қатар екі бөлек машинада жұмыс жасап отырған операциялық жүйеде проблема түзеледі.
Келесі проблема. Мысалы, екі үрдіс бір машинада орындалады. Бұл жағдайда бөлінетін жадыға қатынауды синхрондауға мүмкіндік беретін құрылымдар белгіленуі керек. Оперативті жадымем жұмыс жасап жатқан үрдістердің алмасуы дұрыс орындалу үшін жагдай жасалуы керек.
ІІІындығында есеп шешкен уақытта жалпы жады сияқты қордың бөлінуінің қажеті жоқ, бірақ бір уақытта орындалатын үрдістер бір біріне әсер етсе дейміз. Әсер ету аппаратты узүге тең. Көп операциялық жүйелер оны жүзеге асыру үшін үрдістер арасында сигналдар қолданылады. Бір үрдіс басқа үрдіске сигнал жібер деп нұсқау береді. Басқа үрдісте орындалып жатқан үрдіс үзіледі және кабылданған сигналды өңдеу қажет.
Бұл операциялық жүйенің үшінші функциясы. Операциялық жүйенің бұндай функциялары оның эксплуатациялық қасиеттеріне әсер етеді. Реалды әр операциялық жүйе көп функциялар жиынынан түрады, олар жүйенің жұмысын қамтамасыз етеді.
Әр операциялық жүйе енгізу-шығару буферлеуін қамтамасыз етеді. Негізінде ол (операциялық жүйенің негізгі функцияларының бірі. Операциялық жүйе есептеу жүйесінің түрлі компоненттерінің әр түрлі қатынас жылдамдықтарымен қүресу үшін программалық буферлеуді енгізеді, ол катынас уақытын дұрыстау және синхрондау проблемаларын шешеді.
Магниттік дискідегі жинақтауышты компьютердің орталық бөлігінің шапшандығымен салыстырғанда жылдамдыгы өте төмен. Шапшандыгғының айырмашылығы бірнеше рет. Операцияның орындалу уақыты 0,5 нс болуы мүмкін, ал магниттік бастиектің бір жолшығынан басқа жолшыққа өтуі бірнеше миллисекунд болады. Бастиектің астында оқу/жазу үшін қажег деректер секторын күтуге бірнеше уақыттық интервалы өтеді. Қазіргі жетектерді кездейсоқ таңдалған сектор деректерінің оқылуының орта ұзақтылығы 20 мс болады. Бұл команда және операнд оперативті жадыдан және бүркемеден таңдалуынан әлдеқайда төмен. Бірак, деректер үлкен пакетпен оқылады (сектор размері 512 байт, ал дискімен операциялары кезінде көбінесе оқу немесе жазу бірден бірнеше ссктордан болады).
Сонымен санашықтың оперативті жадымен жұмысының орта жылдамдылығы деректерді сыртқы жадыдан магниттік дискіден оперативті жадыға жіберу орта жылдамдылығынан 2-3 рет жоғары. Осы негізгі бағыныңқы жүйелердің үлкен келіспеушілігін дұрыстау үшін деректерді бүркемелеу немесе буферлеу қолданылады.
Дерек оқу операцияларын дискідегі жылдамдатуы ол еселенген буферлеуді қолдану. Оның мәні ол бір буферге магниттік дискіден деректер енгізілсе, онда басқа буферден алдында оқылған деректер оқылуы және сұраған есепке берілуі мүмкін. Осындай үрдіс деректерді жазган уақытта да болады. Буферлеу барлық ОЖ-де қолданылады. Бүркемелеу бір программа дискіден бірнеше рет бір деректерді оқыған кезде қажет және пайдалы. Ол деректер бүркемеге бір рет орналасқан соң дискіге қатынау керегі жоқ және программаның жұмыс жасау жылдамдылығы өседі. Бүркеме ретінде біз буферлер жиынын түсінеміз және оларды сәйкес жүйелік үрдісімен басқарамыз. Егер біз файлдың жазулары бар бірнеше секторларды оқитын болсақ, онда ол деректер бүркемеден өтіп сонда қалады (бүл буферлерді басқа секторлар ауыстырғанша). Егер деректерді қайта оқу қажет болса онда олар оперативті жадыдан оқылады дискіге қатынамай-ак жазу операцияларында жылдамдатуға болады.
Деректер бүркемеге жазылады және бұл операцияны сұраған есеп сұранысы нақты жазылады деп санаса болады. Есеп әрі қарай өзінің орындалуын жалғастырса болады., сыртқы жүйелік үрдістер бірнесе уақыттан соң деректерді дискіге жазады. Бұл операция кейінге қалдырылған жазба деп аталады. Егер кейінге қалдырылған жазба қолданбаса, онда тек бір есеп өзінің деректерін дискіге жазады, қалған қолданбалар өзінің кезегін күту керек.
Бүркеме жады-жадының шапшандық аймағы, санашық өндеу алдында деректерді буферлеу үшін қолданылады.
Кейбір ОЖ-де бүркемелеу параметрлерін айқын көрсетуге болады, ал кейбір ОЖ-де бұл параметрлерге ОЖ өзі жауап береді. WNT ОЖ-де файлдық бүркеменің және бүркемелеу параметрлерінің мөлшерін айқын түрде басқаруға болмайды. Win95/98 ОЖ-де бұл мүмкіндік бар, бірак тек қана нақтылы бүркемеге арналған жады мөлшері және буфер молшерін көрсетуге болады. MS DOS операциялық жүйесі жұмыс жасағанда компьютерді кез келген уақытта өшіруге болады, ойткені бұл жүйеде буферлеу жоқ. . UNIX және Windows операциялық жүйелерінде жұмыс уакытында машинені өшіруге болмайды, себебі бұл жағдайда ақпараттың жойылуы мүмкін. Буферлеу деңгейі жүйенің реалды тиімділігін аныктайды.
Бұдан басқа ОЖ бірнеше параллель орындалып жаткан есептердің сұраныстарын орындалуына байланысты бастиектін деректерді оқуга/жазуға жылжытуын ұлгайту жұмысын атқарады. Деректерді магниттік дискіден алу уақыты, магниттік бастиектін керек цилиндрге жылжу уақытымен берілген секторды күту уақытынан қосылады. Сонымен уақыттың көбісі деректерді іздеуге кетеді.


Достарыңызбен бөлісу:
1   ...   20   21   22   23   24   25   26   27   ...   44




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

    Басты бет