Дәрiске әдiстемелiк нұсқау
Дәрiсте берiлген материалды игеру үшiн процестіңмоделіне және жағдайына берiлген анықтамаларына көңiл бөлу керек, дәрiсте берiлген негiзгi мәселелер мен сұрақтарға мән берiңiз. Процестіңжағдайына талдау жасаңыз.
5.2 Ағындардың қолданылуы
Мақсаты:
Ағындардың қолдануын түсіндіру.
Дәріс жоспары:
1. Көп ағындарды қолдану қажеттігі
Тақырып бойынша негізгі түсінік:
Ағындардың бізге қажеттілігі көптеген қосымшалардың мезгіл мезгіл бұғатталатын біраз әрекеттерді орындауынан шығады. Қосымшаны квазипараллель режімде жіберілген бірнеше тізбектелген ағындарға бөліп бағдарламалық сұлбаны едәуір жеңілдетуге болады. Олар адрестік кеңістікті және ондағы барлық деректерді бірігіп пайдаланады. Соңғы айтылған мүмкіншілік белгілі бір қосымшалар үшін өте маңызды, себебі, бұл жағдайда әртүрлі адрестік кеңістікті пайдаланатын параллельдік процестер жарамайды.
Ағындарды оңай жасап, оңай жоюға болады, себебі, олармен ешқандай ресурстар байланысты емес. Көпшілік жүйелерде ағынды жасауға процесті жасаудан 100 есе аз уақыт кетеді. Бұл қасиет ағындар санын жылдам өзгерту қажет болғанда өте пайдалы.
Ағындарды қолдайтын тағы бір себеп, ол өнімділік. Ағындар концепциясы өнімділіктің өсуін бермейді, егер олар процессордың мүмкіншіліктерімен шектелген болса. Бірақ, бір мезгілде көп көлемді есептеуді және енгізу-шығару амалдарын орындау қажеттілігі туса, онда ағындардың болуы осы әрекеттердің түрін уақыт бойынша қосып, олардың жалпы жұмысының өнімділігін арттыруға мүмкіндік береді.
Ең соңында, ағындар концепциясы көп процессорлы нағыз параллелизмі бар жүйеде өте пайдалы.
Ағындардың қажеттілігіне нақты мысал:
Мәтінді редактірлеуді аламыз. Пайдаланушы мәтінді редактірлеп терезеге шығарады. Олардың беттері ешбір өзгерусіз өз орындарында болады. Пайдаланушы өзіне керек емес жағдайда оны өзгертіп, өшіре алады.
Пайдаланушы кітап жазсын. Егер кітаптың авторы кітапты бір файлда сақтаған болса, онда керектіні іздеп табу және глобальды орын ауыстыру оңай болады. Дегенмен әрбір бөлімді жеке-жеке файлда да сақтауға болады. Бірақ файлдар саны көбейіп, орын ауыстыруға да, қоюға да, сонымен қатар түзеуге де өте қиын болады. Мысалы, кітапты басуға бергенде, автордың қалауы бойынша өзгерту керек болсын. Егер кітап бір файлда жазылса, онда оны бір командамен орындауға болады. Ал егер кітап 300 файлда жазылса, онда осы 300 файлды ашып 300 команда орындау керек болады.
Егер пайдаланушы көлемі 800 бет болатын құжаттың бірінші бетінен бір жолды алып тастаса не болатыны елестетейік. Пайдаланушы осы беттерді оқып, 600-ші беттегі сөйлемді өзгерткісі келсе, ол мәтіндік редакторға 600-ші бетке көшу туралы команда береді. Мәтіндік редактор барлық құжатты 600-ші бетке дейін форматтап шығады, себебі, форматтау алдында ол осы бет қай жерден басталатынын білмейді. Бұл едәуір уақытты алады.
Осы айтылғандарға ағындар көмектеседі. Мәтіндік редактор екі ағынды бағдарлама түрінде жазылған болсын. Бірінші ағын пайдаланушымен интерактивті әрекеттеседі, ал екінші ағын аялық режімде барлық құжатты форматтайды. Бірінші бетте сөйлем жойыла салысымен, интерактивті ағын аялық режімге құжатты форматтау туралы команда береді. Сол кезде бірінші ағын пернетақтадан команда алуын жалғастыра береді. Екінші ағын құжатты форматтауын пайдаланушы өзінің жұмысын жасап отырып байқамай қалады.
Компьютердің кенеттен сөніп қалуына немесе басқа апаттық жағдайларға байланысты пайдаланушының біркүндік жұмысының нәтижесінен айырылып қалмауы үшін көптеген мәтіндік редакторлар бірнеше минут сайын мәтінді автоматты сақтап отырады. Осыған алдыңғы екі ағынды қатыстырмай, онымен үшінші ағын айналасады.
Бірақ осы жоғарыда айтылған жағдайларда үш процесті модель жарамайды. Себебі, үш процесс бір құжатпен жұмыс істеуі қажет. Ол мүмкін емес. Ал үш ағын бірге ортақ жадты пайдаланып бір құжатқа бір мезгілде қатынас жасауына болады. Мұнда жағдай басқа көптеген интерактивті бағдарламалар сияқты. Динамикалық электрондық кесте бағдарламасы пайдаланушыны матрицаның кейбір элементтерін толтыруға мүмкіндік береді. Оның қалған элементтері күрделі формулалар көмегімен орындалған есептеу арқылы толтырылады. Егер пайдаланушы бір элементте өзгеріс ендірсе, онда басқа элементтер автоматты түрде қайта есептеледі. Мұнда бірінші ағын аялық режімде қайта есептеумен айналасады, екінші ағын пайдаланушыға элементтерді өзгертуге мүмкіндік береді, ал үшінші ағын нәтижені мезгіл мезгіл сақтап отырады.
Негізі түсінік бойынша ағындармен жұмыс істеудің практикалық дағдыларын меңгермейінше, онымен жұмыс істеу мүмкін емес; жалпы принциптерін білмейінше, жүйенің тиімді қолдануды үйрене алмайсыз және қазіргі дербес компьютердің кез келген пайдаланушысында ертеме, кешпе пайда болатын проблемаларды шеше алмайсыз.
|