27
6-дәріс. Енгізу-шығару жүйесін басқару. Синхронды және асинхронды енгізу-шығару.
Енгізу-шығару жүйесін басқару –ол ОЖ-гі негізгі функцияларының бірі және ОЖ жобалауының
ең қиын аймақтарының бірі.
Енгізу-шығару құрылғыларының көптігінен және олардың түрлі табиғаттарынан қиыншылықтар
туады. Сондықтан ОЖ-ні құрушылардың арасында оңай есеп тұрған жоқ. Олар енгізу-шығару
құрылғыларының тиімді басқаруды ғана емес қолданба программистер құрылғылардың түріне
қарамастан
деректерді оңай оқып, сақтау үшін ыңғайлы, тиімді виртуальды интерфейсті құру қажет.
Бір модельге бірнеше түрлі құрылғыларды біріктіретін жүйелік енгізу-шығару әмбебап болу
қажет. Біріншіден ол бар құрылғылардың қажеттіліктерін ескеру қажет. Екіншіден бірнеше параллель
орындалып жатқан есептерге енгізу-шығару құрылғыларына қатынауды ескеру қажет.
Қолданбалы программалар өздері енгізу-шығару құрылғылары тікелей байланысалмайды.Енгізу-
шығару сұрауына керек мәндерді орнатып, енгізу-шығару супервизорына басқару беріледі.
Енгізу-шығаруды басқару режимдері. Екі негізгі енгізу-шығару режимі бар: енгізу-шығару
құрылғыларының дайындығын сұрату алмасу режимі және үзілісі бар алмасу режимі.
Егер енгізу-шығару басқаруын орталық санашық атқарса онда ол басқару құрылғысына бір енгізу-
шығару құрылғысының орындалуына команда береді. Енгізу-шығару құрылғысы команданы орындап
орталық санашыққа және сигналды басқаратын құрылғыға түсінікті сигнал жібереді.
Енгізу-шығару құрылғысының жылдамдылығы орталық санашықтың жылдамдылығынан төмен.
Сондықтан дайындық сигналын көп күту керек, сигнал шыққанша драйвер еш нәрсе орындамайды.
Сондықтан енгізу-шығару командасын беріп ол құрылғыны уақытша ұмытып басқа программаның
орындалуына көшкен жөн. Ал дайындық сигналы шыққан кезде оны
енгізу-шығару құрылғысының
үзуге сұрау деп санаймыз.
Ортақ енгізу-шығару құрылғылары, құрылғыларды жалғау. Көп құрылғылар бірігіп қолдануды
қолдамайды. Біріншіден ол тізбекті қатынайтын құрылғылар. Ондай құрылғылар жалғанған болуы
мүмкін, яғни бір есептеу үрдіске беріледі. Бірақ ол есептеу үрдістерінің параллельді жұмыс жасауына
мүмкіндік бермейді және енгізу-шығару құрылғыларының босау уақытын күтеді. Параллельді
орындалып жатқан есептер арасында енгізу-шығару құрылғыларын қолдануын ұйымдастыру үшін
виртуальді құрылғылар түсінігі енгізіледі.
Виртуализация принципін қолдану есептеу жүйесінің тиімділігін жоғарлатуға мүмкіндік береді.
Көбінесе виртуалды құрылғыға – спулинг терминін қолданады.
Спулинг дегеніміз- операциялайтын режимде құрылғылармен жұмыс иммитациясы.
Спулингтің негізгі жұмысы тізбекті қатынайтын құрылғыларының параллельді
бөлінуінің көрінісін
ұйымдастыру. Бірақ олар монопольді және жалғанған ретінде қолдану қажет.
Мысалы, егер біз бірнеше қолданбаның қорытындысын басуға жіберетін болсақ , онда біз түсініксіз
қорытындыға ұшыраймыз. Бірақ әр есептеу үрдісіне виртуальді принтер беруге болады және
ағындылар бірінші рет магнитті дискідегі арнайы спул файлына жіберіледі.
Содан соң виртуалды басу аяқталған соң қабылданған пұрсаттылықтармен және қызымет көрсету пәні
бойынша спул файлдың мәні принтерге жіберіледі. Спул файлымен басқаратын жүйелік үрдіс – спулер
деп аталады (spool-reader немесе spool-writer).
Программисті компьютерге орнатылған енгізу-шығару құрылғыларының параметрлері және
олардың мүмкіншіліктері мүмкіншілік болғанша ойландырмау керек. Оған тек қолданатын енгізу-
шығару құрылғыларының жалпы мүмкіншіліктері қажет. Мысалы,
принтер басуды білу қажет, ал
магниттік дискіде жинақтауыш берілген адрес бойынша (C-N-S координаты, цилиндр номері, бастиек
номері және сектор номері) деректерді жазу және оқу қажет.
Бірақ программист магниттік дискімен жұмыс арасында тікелей адрестеуді қолданбайды. Ол
файлдық жүйе деңгейімен жұмыс жасайды. Бұл жағдайда қандай жинақтауыш, қай типті және моделі
компьютерде қолданылғаны файлдық жүйе құрущыларын тәуелді болмауы қажет.
Негізгі болып саналатын ол жинақтауыштың бары және оның цилиндрінің, жазу-оқу бастиегінің
және магниттік диск жолының секторларының бірнеше сандарының болуы цилиндрдің, бастиектің
және секторлардың сандарының мәні жабдық кестесінен алынуы мүмкін. Бұл жағдайда программисті
құрылғының есептеу жүйесіне қалай жалғанғаны ойландырмау керек. Сондықтан ол енгізу-шығару
сұрау кезінде құрылғының логикалық атын белгілейді.
Виртуалды құрылғыға сәйкес нақты құрылғы кесте арқылы супервизормен таңдалады. Сонымен
құрылғының қосылу тәсілі оның моделі және оған сәйкес драйверлер
бірінші жабдық кестесінде
анықталады. Ол виртуалды құрылғыны жүйелік кестесімен байланыстыру үшін екінші жүйелік кестесі
28
қолданылады. Шартты біз оны виртуалды логикалық құрылғының сипаттама кестесі дейміз.(DRT-
device reference table).
Енгізу-шығару үрдісін басқару
1-әрекет. Орындалып жатқан программадан енгізу-шығару операциясына сұраныс супервизорға
түседі.
1.1-әрекет. Супервизор жүйелік шақыруды қабылданған спецификацияларға сәйкестігін тексереді
және қате болған жағдайда есепке сәйкес хабарлама жібереді.
2-әрекет. Егер сұраныс дұрыс болса онда есеп енгізу-шығару супервизорына бағытталады.
2.2-әрекет. Супервизор виртуаль аты арқылы DRT кестесінен құрылғы кестесінен сәйкес UCB
элементін табады. Егер құрылғы бос болмаса, онда есеп сипаттаушы құрылғыны күтіп тұрған есептер
тізіміне орналастырады.
3-әрекет. Егер құрылғы бос болса, онда енгізу-шығару супервизоры UCB–дан
құрылғының типін
анықтайды және қажет болса санашықты іске қосады, ол құрылғыны түсінетін және орындайтын
басқару деректерін және кодтарын ашуға мүмкіндік береді.
4-әрекет. Енгізу-шығаруды басқаратын
программа
дайын болған кезде, енгізу-шығару супервизоры
басқаруды сәйкес драйверіне береді(іске қосу секциясы).
5-әрекет. Драйвер басқару
операциясын инициялизациялайды, тайм-аут санауышын нөлдейді және
санашыққа орындалуға дайын есепті қою үшін супервизорға (есеп диспетчеріне) басқаруды
қайтарады.
6-әрекет. Жүйе жұмысты кезегімен орындайды, бірақ енгізу-шығару құрылғысы жіберілген команданы
орындап болған соң, үзуге сұраныс сигналын орнатады және үзу кестесі арқылы басқару жалғастыру
секциясына беріледі. Жаңа команданы алған соң құрылғы оны
орындайды және санашықпен
басқаруды қайтадан есеп диспетчеріне қайтарады, ал санашық өзінің жұмысын жалғастырады.
Сонымен есептердің параллель өңделуі болады, соның көрісінде санашық енгізу-шығару
операциларының басқаруын жүзеге асырады.
Достарыңызбен бөлісу: