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