107
интерпретатор көшірмесімен жалғасады, сонымен қоса жаңа
тапсырмаға дәл сол орындалу ортасы пайдаланылады.
Осылай іске қосқан кезде жаңа тапсырма өзінің қолдануына оны
шақырған тапсырма пайдаланудан айнымалыларды алатынын түсіну
қиын емес — командалық интерпретатордың көшірмесін сақтаған
кезде оның ішкі күйі де және айнымалылары да сақталады.
Шақыртылған
тапсырмалардағы
жарияланған
және
инициализацияланған барлық айнымалылар, ол аяқталғаннан кейін де,
шақырған тапсырмаға басқару берілген кезде де сол мәндерге ие
болады.
ЕНГІЗУ/ШЫҒАРУ. КОНВЕЙЕРЛІК ӨҢДЕУ
Тапсырманы орындау кезінде терминалға шығатын және
терминалдан алынатын деректер ол жерге тікелей түспейді. Деректерді
алу және жіберу үшін енгізу/шығару буфері қолданылады —
оперативті жадының аралық бөлігі, ол жерде ОЖ терминалға тікелей
жібермес бұрын және терминалдан алғаннан кейін деректерді
жинайды. Енгізу/шығару буферлерін басқару операциялық жүйенің
ядросына кіретін енгізу/шығару ішкі жүйесінің пайдаланушысынан
тәуелсіз жүреді. Енгізу/шығару буферлеріне қолжетімділік файлдарға
қолжетімділікке ұқсас жүргізіледі: қалыптасқан ереже бойынша
енгізу/шығару жүйесі үш виртуалды файлдарға ашық қолжетімділік
жасайды, олардың екеуі деректерді экранға шығару үшін қызмет етеді,
ал біреуі – терминалдан ақпарат алады. Бұл файлдар енгізу/шығару
ағынының атауын алды:
■
stdout — шығару ағыны, әдепкі қалпы бойынша — терминал
экраны;
■
stderr — қатені шығару ағыны, әдепкі қалпы бойынша — терминал
экраны;
■
stdin — енгізу ағыны, әдепкі қалпы бойынша — пернетақта.
Енгізу/шығару ағынына түсетін ақпараттар, әдетте терминал
құрылғысына сәйкес келетін /dev каталогтағы файлға бағытталады.
Тапсырманы орындау кезінде пайдаланушы деректерін файлға алып
кету үшін немесе файлдан кіріс ақпараттарды алу үшін енгізу/шығару
қайта бағытталуы ықтимал. Осы сәтте әдетте экранға шығарылатын
ақпараттар көрсетілген файлға қайта бағытталады, ал әдетте
пернетақта арқылы енгізілетін деректер файлдан алынады. Қайта
бағыттау қосылып тұрған кезде экранға деректерді шығару немесе
|