Кіріспе

Екі деңгейлі жоспарлау – компьютерлік ғылымдағы термин, процестерді алмастыруды қамтитын процестерді жоспарлауды тиімдірек орындау әдісін сипаттайды. Келесі мәселені қарастырайық: жүйеде барлығы бірдей басымдыққа ие 50 процесс бар. Дегенмен, жүйенің жадында бір уақытта тек 10 процесс сақталады. Сондықтан, әрқашан 40 процесс алмастырылып, қатты дискідегі виртуалды жадқа жазылады. Процесті алмастыру және қайта жадқа көшіруге кеткен уақыт тиісінше 50 мс құрайды. Дәстүрлі Round Robin жоспарлау схемасында, әр контексттік ауысу кезінде процесс жадтан алмастырылуы керек болады (өйткені тек 10 ең соңғы пайдаланылған процесс жадқа қайта көшіріледі). Процестердің арасынан кездейсоқ таңдау жасау ықтималдықты 80% (40/50) дейін төмендетеді. Егер мұндай жағдай туындаса, сөзсіз бір процесс жадтан шығарылуы керек. Алмастыру операциясы қымбатқа түседі және жоспарлаушы қажетсіз алмастыруларға көп уақытын жұмсайды. Екі деңгейлі жоспарлау осы мәселені шешеді. Ол екі түрлі жоспарлаушыны қолданады: төменгі деңгейдегі жоспарлаушы тек жадтағы процестердің арасынан іске қосуға болатын процестерді таңдай алады. Бұл жоспарлаушы Round Robin жоспарлаушысы бола алады. Екінші жоспарлаушы – жоғары деңгейдегі жоспарлаушы, ол жадтан процестерді алмастыру және жадқа қайта көшірумен ғана айналысады. Алмастыру операциясы көп уақыт алатындықтан, ол төменгі деңгейдегі жоспарлаушыға қарағанда әлдеқайда сирек жоспарлау жүргізеді. Осылайша, жоғары деңгейдегі жоспарлаушы ұзақ уақыт бойы жұмыс істеген жадтағы процестерді таңдап, оларды алмастырады. Олардың орнына ұзақ уақыт бойы іске қосылмаған дискідегі процестер көшіріледі. Процестерді қалай таңдау жоғары деңгейдегі жоспарлаушының іске асылуына байланысты. Келісімге келу үшін келесі айнымалыларды ескеру қажет:

Жауап беру уақыты: Процесс тым ұзақ уақытқа алмастырылмауы керек. Әйтпесе, басқа процесс (немесе пайдаланушы) қажетсіз күтуге мәжбүр болады. Егер бұл айнымалы ескерілмесе, ресурстардың жетіспеушілігі туындауы мүмкін және процесс толыққанды аяқталмай қалуы мүмкін. Процестің көлемі: Үлкен процестер кішірек процестерге қарағанда аз алмастырылуы керек, өйткені оларды алмастыруға көбірек уақыт кетеді. Олар үлкен болғандықтан, жадты олармен бөлісетін процестердің саны азаяды. Басымдық: Процестің басымдығы жоғары болған сайын, ол жадыда ұзақ уақыт қалуы керек, сонда ол тезірек аяқталады.