ስርዓተ ክወናዎች: ሶስት ቀላል ክፍሎች. ክፍል 5፡ ማቀድ፡ ባለብዙ ደረጃ ግብረ መልስ ወረፋ (ትርጉም)

የስርዓተ ክወናዎች መግቢያ

ሃይ ሀብር! ተከታታይ መጣጥፎችን ወደ እርስዎ ትኩረት ማምጣት እፈልጋለሁ - በእኔ አስተያየት የአንድ አስደሳች ሥነ ጽሑፍ ትርጉሞች - OSTEP። ይህ ጽሑፍ ዩኒክስ መሰል ኦፕሬቲንግ ሲስተሞችን ማለትም ከሂደቶች ጋር መሥራትን፣ የተለያዩ መርሐ-ግብሮችን፣ ማህደረ ትውስታን እና ሌሎች ዘመናዊ ስርዓተ ክወናን የሚያካትቱ ተመሳሳይ ክፍሎችን በጥልቀት ያብራራል። የሁሉም ቁሳቁሶች ዋናውን እዚህ ማየት ይችላሉ እዚህ. እባክዎን ትርጉሙ የተደረገው ሙያዊ ባልሆነ መልኩ (በነጻነት) መሆኑን ግን አጠቃላይ ትርጉሙን እንደያዝኩ ተስፋ አደርጋለሁ።

በዚህ ጉዳይ ላይ የላብራቶሪ ስራ እዚህ ሊገኝ ይችላል-

ሌሎች ክፍሎች፡-

እንዲሁም የእኔን ቻናል በ ላይ ማየት ይችላሉ። ቴሌግራም =)

እቅድ ማውጣት፡ ባለብዙ ደረጃ ግብረመልስ ወረፋ

በዚህ ንግግር ውስጥ በጣም ዝነኛ ከሆኑት አቀራረቦች ውስጥ አንዱን ስለማሳደግ ችግሮች እንነጋገራለን
እቅድ ማውጣት, እሱም ይባላል ባለብዙ ደረጃ ግብረመልስ ወረፋ (MLFQ) የMLFQ መርሐግብር አዘጋጅ ለመጀመሪያ ጊዜ የተገለፀው በ1962 በፈርናንዶ ጄ. ኮርባቶ በተባለው ሥርዓት ነው።
ተኳሃኝ የጊዜ መጋራት ስርዓት (ሲቲኤስኤስ)። እነዚህ ስራዎች (በኋላ ላይ የሚሰሩትን ጨምሮ
መልቲኮች) በመቀጠል ለቱሪንግ ሽልማት ታጭተዋል። እቅድ አውጪው ነበር።
ከዚያ በኋላ ተሻሽሏል እና ቀድሞውኑ ውስጥ ሊገኝ የሚችለውን መልክ አገኘ
አንዳንድ ዘመናዊ ስርዓቶች.

የMLFQ ስልተ ቀመር 2 መሰረታዊ ተደራራቢ ችግሮችን ለመፍታት ይሞክራል።
በመጀመሪያ ደረጃ, የመመለሻ ጊዜን ለማመቻቸት ይሞክራል, ይህም ባለፈው ትምህርት ላይ እንደተነጋገርነው, ከወረፋው መጀመሪያ ላይ በጣም በሚጀምርበት ዘዴ የተመቻቸ ነው.
አጭር ስራዎች. ሆኖም ግን, ስርዓተ ክወናው አንድ የተወሰነ ሂደት ለምን ያህል ጊዜ እንደሚሰራ አያውቅም, እና ይሄ
ለ SJF, STCF ስልተ ቀመሮች አሠራር አስፈላጊ እውቀት. ሁለተኛው፣ MLFQ እየሞከረ ነው።
ስርዓቱ ለተጠቃሚዎች ምላሽ ሰጪ እንዲሆን ያድርጉ (ለምሳሌ፣ ለተቀመጡት እና
ስራው እስኪጠናቀቅ ድረስ በማያ ገጹ ላይ ይመልከቱ) እና ስለዚህ ጊዜን ይቀንሱ
ምላሽ. እንደ አለመታደል ሆኖ እንደ አርአር ያሉ ስልተ ቀመሮች የምላሽ ጊዜን ያሻሽላሉ፣ ግን እጅግ በጣም ጥሩ
በመመለሻ ጊዜ መለኪያ ላይ መጥፎ ተጽዕኖ ያሳድራሉ. ስለዚህ የእኛ ችግር: እንዴት ዲዛይን ማድረግ እንደሚቻል
ምንም ሳናውቅ መስፈርቶቻችንን የሚያሟላ መርሐግብር አዘጋጅ
በአጠቃላይ የሂደቱ ተፈጥሮ? መርሐግብር አውጪው የተግባሮችን ባህሪያት እንዴት መማር ይችላል,
የትኛውን ይጀምራል እና በዚህም የተሻለ የእቅድ ውሳኔዎችን ያደርጋል?

የችግሩ ዋና ነገር: ያለ ፍጹም እውቀት የተግባሮችን መቼት እንዴት ማቀድ እንደሚቻል?
በተመሳሳይ ጊዜ የምላሽ ጊዜን የሚቀንስ መርሐግብር አዘጋጅ እንዴት እንደሚንደፍ
በይነተገናኝ ተግባራት እና በተመሳሳይ ጊዜ ሳያውቅ የመመለሻ ጊዜን ይቀንሳል
የተግባር አፈፃፀም ጊዜ እውቀት?

ማስታወሻ፡ ከቀደምት ክስተቶች እንማራለን።

የMLFQ ወረፋ የሚማረው ስርዓት ጥሩ ምሳሌ ነው።
የወደፊቱን ለመተንበይ ያለፉ ክስተቶች. ብዙውን ጊዜ ተመሳሳይ ዘዴዎች አሉ።
በስርዓተ ክወና (እና ሌሎች ብዙ የኮምፒዩተር ሳይንስ ቅርንጫፎች ቅርንጫፎችን ጨምሮ) ይገኛሉ
የሃርድዌር ትንበያዎች እና መሸጎጫ ስልተ ቀመሮች)። ተመሳሳይ ጉዞዎች
የሚቀሰቀሱት ተግባራት የባህሪ ደረጃዎች ሲኖራቸው እና ሊተነብዩ በሚችሉበት ጊዜ ነው።
ሆኖም ግን, ትንበያዎች በጣም ቀላል ስለሆኑ በዚህ ዘዴ መጠንቀቅ አለብዎት
ትክክል ያልሆነ ሆኖ ስርዓቱን ከከፋ ውሳኔዎች እንዲወስድ ሊያደርግ ይችላል።
ያለ እውቀት ይሆናል ።

MLFQ: መሰረታዊ ህጎች

የ MLFQ ስልተ ቀመር መሰረታዊ ህጎችን እንመልከት። እና ምንም እንኳን የዚህ ስልተ ቀመር አተገባበር
ብዙ አሉ, መሰረታዊ አቀራረቦች ተመሳሳይ ናቸው.
በምንመለከተው ትግበራ፣ MLFQ ብዙ ይኖረዋል
የተለዩ ወረፋዎች, እያንዳንዳቸው የተለየ ቅድሚያ ይኖራቸዋል. በማንኛውም ጊዜ፣
ለመፈጸም ዝግጁ የሆነ ተግባር በአንድ ወረፋ ውስጥ ነው. MLFQ ቅድሚያ የሚሰጣቸውን ነገሮች ይጠቀማል፣
የትኛውን ተግባር ለመፈጸም እንደሚሄድ ለመወሰን, ማለትም. ከፍተኛ ጋር ተግባር
ቅድሚያ (ከከፍተኛ ቅድሚያ የሚሰጠው ተግባር ከወረፋው) መጀመሪያ ይጀምራል
ወረፋ
እርግጥ ነው, በተሰጠው ወረፋ ውስጥ ከአንድ በላይ ተግባራት ሊኖሩ ይችላሉ, ስለዚህ
ስለዚህ ተመሳሳይ ቅድሚያ ይኖራቸዋል. በዚህ ሁኔታ, ዘዴው ጥቅም ላይ ይውላል
ከእነዚህ ተግባራት መካከል ሩጫን ለማስያዝ RR።
ስለዚህ ለ MLFQ ወደ ሁለት መሰረታዊ ህጎች ደርሰናል፡-

  • ደንብ 1፡ ቅድሚያ (ሀ) > ቅድሚያ (ለ) ከሆነ ተግባር A ይጀምራል (ቢ አይሆንም)
  • ደንብ 2፡ ቅድሚያ (A) = ቅድሚያ (ቢ) ከሆነ፣ ኤ&B RR መጠቀም ጀምረዋል።

ከላይ በተጠቀሰው መሰረት, MLFQ ለማቀድ ዋና ዋና ነገሮች
ቅድሚያ የሚሰጣቸው ነገሮች ናቸው። ለእያንዳንዱ ቋሚ ቅድሚያ ከመስጠት ይልቅ
ተግባር, MLFQ በሚታየው ባህሪ ላይ በመመስረት ቅድሚያውን ይለውጣል.
ለምሳሌ አንድ ተግባር የቁልፍ ሰሌዳ ግቤትን በመጠባበቅ ላይ እያለ በቋሚነት በሲፒዩ ላይ ሥራ እየጣለ ከሆነ ፣
MLFQ የሂደቱን ቅድሚያ ከፍ ያደርገዋል ምክንያቱም እንደዛ ነው።
በይነተገናኝ ሂደት መሥራት አለበት። ከሆነ በተቃራኒው ተግባሩ ያለማቋረጥ እና
ሲፒዩ ለረጅም ጊዜ ይጠቀማል፣ MLFQ ዝቅ ያደርገዋል
ቅድሚያ የሚሰጠው. ስለዚህ, MLFQ በሚሰሩበት ጊዜ የሂደቶችን ባህሪ ያጠናል
እና ባህሪያትን ይጠቀሙ.
በአንድ ወቅት ወረፋዎቹ ምን ሊመስሉ እንደሚችሉ በምሳሌ እንሳል
ጊዜ እና ከዚያ እንደዚህ ያለ ነገር ያገኛሉ
ስርዓተ ክወናዎች: ሶስት ቀላል ክፍሎች. ክፍል 5፡ ማቀድ፡ ባለብዙ ደረጃ ግብረ መልስ ወረፋ (ትርጉም)

በዚህ እቅድ ውስጥ, 2 ሂደቶች A እና B ከፍተኛ ቅድሚያ የሚሰጠው ወረፋ ውስጥ ናቸው. ሂደት
ሐ መሃል ላይ የሆነ ቦታ ነው፣ ​​እና ሂደት D በወረፋው መጨረሻ ላይ ነው። ከላይ በተጠቀሰው መሰረት
እንደ MLFQ አልጎሪዝም ገለጻዎች መርሐግብር አውጪው ተግባራትን የሚፈጽመው በከፍተኛ ደረጃ ብቻ ነው።
ቅድሚያ በ RR መሰረት, እና ተግባራት C, D ከስራ ውጭ ይሆናል.
በተፈጥሮ፣ የማይንቀሳቀስ ቅጽበታዊ ገጽ እይታ MLFQ እንዴት እንደሚሰራ ሙሉ ምስል አይሰጥም።
ስዕሉ በጊዜ ሂደት እንዴት እንደሚለወጥ በትክክል መረዳት አስፈላጊ ነው.

ሙከራ 1፡ ቅድሚያ እንዴት እንደሚቀየር

በዚህ ጊዜ MLFQ እንዴት ቅድሚያ የሚሰጠውን ደረጃ እንደሚቀይር መወሰን ያስፈልግዎታል
በህይወት ዑደቱ ውስጥ በሚያልፍበት ጊዜ ተግባራት (እና ስለዚህ በወረፋው ውስጥ ያለው የሥራ ቦታ)። ለ
ይህ የሥራውን ሂደት ግምት ውስጥ ማስገባት አስፈላጊ ነው: የተወሰነ መጠን
በይነተገናኝ ተግባራት ከአጭር ጊዜ የሩጫ ጊዜ ጋር (እና ስለዚህ በተደጋጋሚ የሚለቀቁ
ሲፒዩ) እና ሲፒዩ ሁሉንም የስራ ሰዓታቸውን የሚጠቀሙ ብዙ ረጅም ጊዜ የሚፈጁ ተግባራት
ለእንደዚህ አይነት ስራዎች የምላሽ ጊዜ አስፈላጊ አይደለም. እና በዚህ መንገድ የመጀመሪያውን ሙከራ ማድረግ ይችላሉ
የMLFQ ስልተ ቀመርን በሚከተሉት ህጎች ይተግብሩ።

  • ደንብ 3: አንድ ተግባር ወደ ስርዓቱ ውስጥ ሲገባ, ከከፍተኛው ጋር ባለው ወረፋ ውስጥ ይቀመጣል
  • ቅድሚያ የሚሰጡዋቸውን.
  • ደንብ 4a፡ አንድ ተግባር ለእሱ የተመደበውን የሙሉ ጊዜ መስኮት የሚጠቀም ከሆነ ያኔ ነው።
  • ቅድሚያ ይቀንሳል.
  • ደንብ4b፡ አንድ ተግባር ሲፒዩውን የሰዓት መስኮቱ ከማብቃቱ በፊት ከለቀቀ፣ ከዚያ እሱ ነው።
  • ተመሳሳይ ቅድሚያ ጋር ይቆያል.

ምሳሌ 1፡ ነጠላ የረጅም ጊዜ ስራ

በዚህ ምሳሌ ላይ እንደሚታየው, የመግቢያ ስራው በከፍተኛ ደረጃ ተቀምጧል
ቅድሚያ የሚሰጡዋቸውን. ከ10ሚሴ የጊዜ መስኮት በኋላ፣ ሂደቱ ቅድሚያ ዝቅ ይላል።
እቅድ አውጪ. ከሚቀጥለው ጊዜ መስኮት በኋላ ስራው በመጨረሻ ወደ ታች ዝቅ ብሏል
በስርአቱ ውስጥ ዝቅተኛ ቅድሚያ የሚሰጠው, በሚቆይበት ቦታ.
ስርዓተ ክወናዎች: ሶስት ቀላል ክፍሎች. ክፍል 5፡ ማቀድ፡ ባለብዙ ደረጃ ግብረ መልስ ወረፋ (ትርጉም)

ምሳሌ 2፡ አጭር ተግባር አቅርቧል

አሁን MLFQ ወደ SJF ለመቅረብ የሚሞክርበትን ምሳሌ እንመልከት። በዚህ ውስጥ
ለምሳሌ, ሁለት ተግባራት: A, ይህም ያለማቋረጥ ረጅም ጊዜ የሚፈጅ ተግባር ነው
አጭር በይነተገናኝ ተግባር የሆነውን ሲፒዩ እና ቢን መያዝ። እንበል
ተግባር B በደረሰበት ጊዜ A አስቀድሞ ለተወሰነ ጊዜ ሲሠራ እንደነበረ።
ስርዓተ ክወናዎች: ሶስት ቀላል ክፍሎች. ክፍል 5፡ ማቀድ፡ ባለብዙ ደረጃ ግብረ መልስ ወረፋ (ትርጉም)

ይህ ግራፍ የሁኔታውን ውጤት ያሳያል። ተግባር A፣ ልክ እንደ ማንኛውም ተግባር፣
የሲፒዩ አጠቃቀም በጣም ግርጌ ላይ ነበር። ተግባር B በጊዜ T=100 ይደርሳል እና ይመጣል
በከፍተኛ ቅድሚያ ወረፋ ውስጥ የተቀመጠ. የስራ ሰዓቱ አጭር ስለሆነ ታዲያ
የመጨረሻው ወረፋ ከመድረሱ በፊት ይጠናቀቃል.

ከዚህ ምሳሌ, የአልጎሪዝም ዋና ግብ መረዳት አለበት: ስልተ ቀመር ስለሌለው
አንድ ሥራ ረጅም ወይም አጭር መሆኑን ያውቃል ፣ ከዚያ በመጀመሪያ እሱ ተግባሩን ይወስዳል
አጭር እና ከፍተኛውን ቅድሚያ ይሰጣል. ይህ በእውነት አጭር ስራ ከሆነ, እንግዲያውስ
በፍጥነት ይጠናቀቃል, አለበለዚያ ረጅም ስራ ከሆነ, ቀስ ብሎ ይንቀሳቀሳል
ቅድሚያ ወደ ታች እና በቅርቡ እሷ በእርግጥ የማያደርግ ረጅም ሥራ መሆኑን ያረጋግጣል
ምላሽ ያስፈልገዋል።

ምሳሌ 3፡ ስለ I/Oስ?

አሁን የI/O ምሳሌን እንመልከት። ደንብ 4 ለ ላይ እንደተገለጸው፣
አንድ ሂደት ሁሉንም የአቀነባባሪውን ጊዜ ሳይጠቀም ፕሮሰሰሩን ከለቀቀ ፣
ከዚያም በተመሳሳይ የቅድሚያ ደረጃ ላይ ይቆያል. የዚህ ደንብ ዓላማ በጣም ቀላል ነው
- በይነተገናኝ ሥራ ብዙ የ I/O ሥራዎችን የሚያከናውን ከሆነ ለምሳሌ መጠበቅ
ከተጠቃሚው ቁልፍ ወይም የመዳፊት ማተሚያዎች, እንዲህ ያለው ተግባር ፕሮሰሰሩን ነጻ ያደርገዋል
ከተጠቀሰው መስኮት በፊት. የእንደዚህ ዓይነቱን ተግባር ቅድሚያ ዝቅ ማድረግ አንፈልግም ፣
እና ስለዚህ በተመሳሳይ ደረጃ ላይ ይቆያል.
ስርዓተ ክወናዎች: ሶስት ቀላል ክፍሎች. ክፍል 5፡ ማቀድ፡ ባለብዙ ደረጃ ግብረ መልስ ወረፋ (ትርጉም)

ይህ ምሳሌ ስልተ ቀመር ከእንደዚህ አይነት ሂደቶች ጋር እንዴት እንደሚሰራ ያሳያል - በይነተገናኝ ሥራ B ፣ ከመተግበሩ በፊት ለ 1ms ብቻ ሲፒዩ የሚያስፈልገው
ሁሉንም ጊዜውን ሲፒዩ በመጠቀም የሚያሳልፈው የI/O ሂደት እና ረጅም ጊዜ የሚፈጅ ኢዮብ A።
MLFQ ስለሚቀጥል ሂደት B በከፍተኛ ደረጃ ያስቀምጣል።
ሲፒዩውን ይልቀቁ። ቢ በይነተገናኝ ተግባር ከሆነ ስልተ ቀመር ተሳክቷል።
ግብዎ በይነተገናኝ ተግባራትን በፍጥነት ማካሄድ ነው።

አሁን ባለው የMLFQ ስልተ ቀመር ላይ ያሉ ችግሮች

በቀደሙት ምሳሌዎች መሰረታዊ የ MLFQ ስሪት ገንብተናል። እና እሱ ይመስላል
በመካከላቸው የሲፒዩ ጊዜን በትክክል በማሰራጨት ስራውን በጥሩ እና በታማኝነት ይሰራል
ረጅም ስራዎችን እና አጭር ወይም ከፍተኛ መጠን ያላቸውን ስራዎች መፍቀድ
በ I / O ላይ በፍጥነት ይስሩ. እንደ አለመታደል ሆኖ ይህ አካሄድ ብዙ ይዟል
ከባድ ችግሮች.
በመጀመሪያ ደረጃ, የረሃብ ችግር: ስርዓቱ ብዙ መስተጋብራዊ ካለው
ተግባራት ፣ ከዚያ ሁሉንም ፕሮሰሰር ጊዜውን ይበላሉ እና ለረጅም ጊዜ አንድ ነጠላ አይደሉም
ተግባሩ ሊፈፀም አይችልም (በረሃብ እየተራቡ ነው)።

ሁለተኛው፣ ብልህ ተጠቃሚዎች ፕሮግራሞቻቸውን እንዲጽፉ ማድረግ ይችላሉ።
መርሐ ግብሩን ማሞኘት። ማታለል አንድን ነገር በማስገደድ ላይ ነው
መርሐግብር አውጪው ሂደቱን የበለጠ የሲፒዩ ጊዜ ይሰጠዋል. አልጎሪዝም ያ
ከላይ የተገለፀው ለተመሳሳይ ጥቃቶች በጣም የተጋለጠ ነው-የጊዜ መስኮቱ በተግባር ከመድረሱ በፊት
አልቋል፣ የI/O ክዋኔን ማከናወን አለብህ (ለአንዳንዶች፣ የትኛውም ፋይል ቢሆን)
እና ስለዚህ ሲፒዩውን ነጻ ማድረግ. እንደዚህ አይነት ባህሪ በተመሳሳይ ሁኔታ ውስጥ እንዲቆዩ ያስችልዎታል
ወረፋው ራሱ እና እንደገና ትልቅ የሲፒዩ ጊዜ መቶኛ ያገኛል። ካደረጉ
ይህ ትክክል ነው (ለምሳሌ፣ ሲፒዩውን ከመልቀቁ በፊት 99% የሚሆነውን የመስኮቱን ጊዜ ያስፈጽሙ)።
እንዲህ ያለው ተግባር ፕሮሰሰሩን በብቸኝነት ሊቆጣጠር ይችላል።

በመጨረሻም, አንድ ፕሮግራም በጊዜ ሂደት ባህሪውን ሊለውጥ ይችላል. እነዚያ ተግባራት
ሲፒዩ የተጠቀመው በይነተገናኝ ሊሆን ይችላል። በእኛ ምሳሌ, ተመሳሳይ
ተግባራት ሌሎች እንደሚያደርጉት ከመርሐግብር ሰጪው የሚገባቸውን ሕክምና አያገኙም።
(የመጀመሪያ) በይነተገናኝ ተግባራት.

ለተመልካቾች ጥያቄ-በዘመናዊው ዓለም ውስጥ በጊዜ ሰሌዳው ላይ ምን ጥቃቶች ሊደረጉ ይችላሉ?

ሙከራ 2፡ ቅድሚያ ማሳደግ

ደንቦቹን ለመለወጥ እና ችግሮችን ለማስወገድ እንሞክር
መጾም። ያንን ተያያዥነት ለማረጋገጥ ምን ማድረግ እንችላለን?
የሲፒዩ ተግባራት ጊዜያቸውን ያገኛሉ (ረጅም ባይሆንም እንኳ)።
ለችግሩ ቀላል መፍትሄ, በየጊዜው መጠቆም ይችላሉ
በሲስተሙ ውስጥ የሁሉንም ተግባራት ቅድሚያ ማሳደግ. ብዙ መንገዶች አሉ።
ይህንን ለማግኘት፣ ቀላል ነገርን እንደ ምሳሌ ለመተግበር እንሞክር፡ መተርጎም
ሁሉም ተግባራት ወዲያውኑ ከፍተኛ ቅድሚያ ይሰጣሉ, ስለዚህ አዲሱ ደንብ:

  • ደንብ 5: ከተወሰነ ጊዜ S በኋላ, በስርዓቱ ውስጥ ያሉትን ሁሉንም ተግባራት ወደ ከፍተኛው ወረፋ ያንቀሳቅሱ.

አዲሱ መመሪያችን በአንድ ጊዜ ሁለት ችግሮችን ይፈታል. በመጀመሪያ, ሂደቶቹ
እንዳይራቡ ዋስትና ተሰጥቷቸዋል፡ ቅድሚያ የሚሰጣቸው ተግባራት ይከፋፈላሉ
በ RR ስልተ ቀመር መሰረት የሲፒዩ ጊዜ እና ስለዚህ ሁሉም ሂደቶች ይቀበላሉ
የሲፒዩ ጊዜ. በሁለተኛ ደረጃ, ቀደም ሲል ጥቅም ላይ የዋለ አንዳንድ ሂደት ከሆነ
አንጎለ ኮምፒውተር ብቻ በይነተገናኝ ይሆናል፣ ከከፍተኛው ጋር ወረፋው ላይ ይቆያል
የቅድሚያ ቅድሚያ የሚሰጠው የአንድ ጊዜ ጭማሪ በቀዳሚነት ወደ ከፍተኛ.
አንድ ምሳሌ እንመልከት። በዚህ ሁኔታ ውስጥ አንድ ሂደትን ከግምት ውስጥ ያስገቡ
ስርዓተ ክወናዎች: ሶስት ቀላል ክፍሎች. ክፍል 5፡ ማቀድ፡ ባለብዙ ደረጃ ግብረ መልስ ወረፋ (ትርጉም)

ሲፒዩ እና ሁለት በይነተገናኝ, አጭር ሂደቶች. በሥዕሉ ላይ በግራ በኩል, ስዕሉ ያለቅድሚያ ማስተዋወቅ ባህሪን ያሳያል, እናም ለረጅም ጊዜ የሚቆይ ተግባር በስርዓቱ ውስጥ ሁለት መስተጋብራዊ ተግባራት ከደረሱ በኋላ ረሃብ ይጀምራል. በቀኝ በኩል ባለው ስእል ላይ የቅድሚያ ጭማሪ በየ 50 ሚ.ሰ እና ስለዚህ ሁሉም ሂደቶች የሲፒዩ ጊዜ እንደሚያገኙ ዋስትና ተሰጥቷቸዋል እና በየጊዜው ይጀምራል። በዚህ ጉዳይ ላይ 50ms እንደ ምሳሌ ተወስዷል, በእውነቱ ይህ ቁጥር ትንሽ ከፍ ያለ ነው.
በግልጽ ለማየት እንደሚቻለው, ከጊዜ ወደ ጊዜ እየጨመረ የመጣውን S ጊዜ መጨመር
ምክንያታዊ ጥያቄ: ምን ዋጋ ማዘጋጀት አለበት? ከተከበሩት አንዱ
የሲስተም መሐንዲሶች ጆን ኦውስተርሃውት እንደ ቮ-ዱ ባሉ ስርዓቶች ውስጥ ያሉትን መጠኖች ጠርተውታል።
ቋሚ ፣ ምክንያቱም በሆነ መንገድ ጥቁር አስማት ለትክክለኛነት ስለፈለጉ
በማሳየት ላይ። እና በሚያሳዝን ሁኔታ, ኤስ እንዲህ አይነት ሽታ አለው. እርስዎም ዋጋውን ካዘጋጁ
ትልቅ - ረጅም ስራዎች በረሃብ ይጀምራሉ. እና ዋጋው በጣም ዝቅተኛ ከሆነ
በይነተገናኝ ተግባራት ተገቢውን የሲፒዩ ጊዜ አይቀበሉም።

ሙከራ 3፡ የተሻለ የሂሳብ አያያዝ

አሁን ሌላ የምንፈታው ችግር አለን: እንዴት እንደማይቻል
መርሐ ግብራችን እንዲታለል ይፍቀዱ? ለዚህ ዕድል ተጠያቂዎቹ ሰዎች ናቸው።
ደንቦች 4a, 4b, ይህም አንድ ሥራ ቅድሚያ እንዲይዝ ያስችለዋል, ፕሮሰሰር ነፃ
የተመደበው ጊዜ ከማለፉ በፊት. ይህንን እንዴት መቋቋም እንደሚቻል?
በዚህ ጉዳይ ላይ ያለው መፍትሔ በእያንዳንዱ ላይ የሲፒዩ ጊዜ የተሻለ የሂሳብ አያያዝ ተደርጎ ሊወሰድ ይችላል
MLFQ ደረጃ ፕሮግራሙ የተጠቀመበትን ጊዜ ከመርሳት ይልቅ
ለተጠቀሰው ጊዜ ፕሮሰሰር ፣ ከግምት ውስጥ መግባት እና መቀመጥ አለበት። በኋላ
ሂደቱ የተመደበለትን ጊዜ ተጠቅሞበታል, ወደ ቀጣዩ ደረጃ ዝቅ ማድረግ አለበት
ቅድሚያ ደረጃ. አሁን ሂደቱ እንዴት ጊዜውን እንደሚጠቀም ምንም ችግር የለውም - እንዴት
በማቀነባበሪያው ላይ ያለማቋረጥ ወይም እንደ ብዙ ጥሪዎች ማስላት። ስለዚህም
ደንብ 4 በሚከተለው ቅጽ እንደገና መፃፍ አለበት

  • ደንብ 4: አንድ ተግባር አሁን ባለው ወረፋ ውስጥ የተመደበለትን ጊዜ ከተጠቀመ በኋላ (ምንም ያህል ጊዜ ሲፒዩን ቢያልቅ) የዚያ ተግባር ቅድሚያ ይቀንሳል (ወደ ወረፋው ይወርዳል)።

አንድ ምሳሌ እንመልከት፡-
ስርዓተ ክወናዎች: ሶስት ቀላል ክፍሎች. ክፍል 5፡ ማቀድ፡ ባለብዙ ደረጃ ግብረ መልስ ወረፋ (ትርጉም)»

ስዕሉ መርሐግብር አውጪውን ለማታለል ከሞከሩ ምን እንደሚፈጠር ያሳያል
ከቀደምት ደንቦች 4a ጋር ቢሆን, 4b በግራ በኩል ያለው ውጤት ሊገኝ ይችላል. መልካም አዲስ
ደንቡ በቀኝ በኩል ያለው ውጤት ነው. ከጥበቃ በፊት፣ ማንኛውም ሂደት ከመጠናቀቁ በፊት ወደ I/O መደወል ይችላል።
ስለዚህ ምንም አይነት ባህሪ ሳይወሰን ጥበቃን ካነቃቁ በኋላ ሲፒዩውን ይቆጣጠሩ
I/O፣ አሁንም በወረፋው ውስጥ ይወርዳል እና ስለዚህ በቅንነት ማጉደል አይችልም።
የሲፒዩ ሀብቶችን ይቆጣጠሩ።

MLFQ እና ሌሎች ችግሮችን ማሻሻል

ከላይ ከተጠቀሱት ማሻሻያዎች ጋር አዳዲስ ችግሮች ይመጣሉ: ከዋናዎቹ አንዱ
ጥያቄዎች - እንዲህ ዓይነቱን መርሐግብር እንዴት እንደሚለካው? እነዚያ። ምን ያህል መሆን አለበት
ወረፋዎች? በወረፋው ውስጥ የፕሮግራሙ መስኮት መጠን ምን ያህል መሆን አለበት? እንዴት
ረሃብን እና ረሃብን ለማስወገድ የፕሮግራሙ ቅድሚያ ሊጨምር ይገባል
የፕሮግራሙን ባህሪ ለውጥ ግምት ውስጥ ያስገቡ? ለእነዚህ ጥያቄዎች ቀላል መልስ የለም
መልስ እና ከጭነቶች እና ከተከታዩ ውቅር ጋር ሙከራዎች ብቻ
እቅድ አውጪ ወደ አንዳንድ አጥጋቢ ሚዛን ሊመራ ይችላል።

ለምሳሌ፣ አብዛኛው የMLFQ አተገባበር የተለያዩ እንድትመድቡ ያስችሉሃል
ለተለያዩ ወረፋዎች የጊዜ ክፍተቶች. ከፍተኛ ቅድሚያ የሚሰጣቸው ወረፋዎች ብዙውን ጊዜ
አጭር ክፍተቶች ታዝዘዋል. እነዚህ ወረፋዎች በይነተገናኝ ተግባራትን ያካተቱ ናቸው
በጣም ሚስጥራዊነት ያለው እና 10 ወይም ከዚያ በታች መወሰድ ያለበት መካከል መቀያየር
ወይዘሪት. በአንጻሩ ዝቅተኛ ቅድሚያ የሚሰጣቸው ወረፋዎች ረጅም ጊዜ የሚፈጁ ተግባራትን ያካተቱ ናቸው።
ሲፒዩ እና በዚህ ሁኔታ, የረጅም ጊዜ ክፍተቶች በጣም በጥሩ ሁኔታ ይጣጣማሉ (100ms).
ስርዓተ ክወናዎች: ሶስት ቀላል ክፍሎች. ክፍል 5፡ ማቀድ፡ ባለብዙ ደረጃ ግብረ መልስ ወረፋ (ትርጉም)

በዚህ ምሳሌ ውስጥ በከፍተኛ ቅድሚያ ወረፋ 2 ውስጥ የሰሩ 20 ተግባራት አሉ።
ms፣ በ10ms መስኮቶች የተከፈለ። 40ms በመሃል ወረፋ (20ms መስኮት) እና በዝቅተኛ ቅድሚያ
ተግባራቶች ስራቸውን ያጠናቀቁበት የወረፋ ጊዜ መስኮቱ 40ms ሆነ።

የMLFQ የ Solaris OS ትግበራ የጊዜ መጋራት መርሐግብር አውጪዎች ክፍል ነው።
እቅድ አውጪው በትክክል በትክክል የሚገልጽ የጠረጴዛዎች ስብስብ ያቀርባል
የሂደቱ ቅድሚያ የሚሰጠው በህይወቱ ውስጥ ይለወጣል, መጠኑ ምን መሆን አለበት
የተመደበው መስኮት እና ምን ያህል ጊዜ ቅድሚያ የሚሰጣቸውን ተግባራት ማሳደግ እንዳለቦት። አስተዳዳሪ
ስርዓቶች ከዚህ ሰንጠረዥ ጋር መስተጋብር ሊፈጥሩ እና መርሐግብር አውጪው እንዲሠራ ሊያደርግ ይችላል።
በተለየ. በነባሪ ይህ ሠንጠረዥ ቀስ በቀስ መጨመር 60 ወረፋዎች አሉት
የመስኮት መጠን ከ 20ms (ከፍተኛ ቅድሚያ) እስከ ብዙ መቶ ms (ዝቅተኛ ቅድሚያ) እና
እንዲሁም ሁሉንም ተግባራት በሰከንድ አንድ ጊዜ በመጨመር።

ሌሎች የMLFQ እቅድ አውጪዎች ጠረጴዛን ወይም ማንኛውንም የተለየ አይጠቀሙም።
በዚህ ትምህርት ውስጥ የተገለጹት ደንቦች, በተቃራኒው, በመጠቀም ቅድሚያ የሚሰጣቸውን ነገሮች ያሰላሉ
የሂሳብ ቀመሮች. ለምሳሌ፣ የፍሪቢኤስዲ መርሐግብር አውጪ ቀመርን ይጠቀማል
የአሰራር ሂደቱ ለምን ያህል ጊዜ እንደሚቆይ ላይ በመመስረት አሁን ያለውን የስራ ቅድሚያ ያሰሉ
ጥቅም ላይ የዋለው ሲፒዩ. በተጨማሪም የሲፒዩ አጠቃቀም ከጊዜ ወደ ጊዜ እየበሰበሰ ይሄዳል, ወዘተ
ስለዚህ ቅድሚያ ማሳደግ ከላይ ከተገለጸው በተለየ መልኩ ይከሰታል። ይህ እውነት ነው
የመበስበስ ስልተ ቀመር ይባላል። ከስሪት 7.1 ጀምሮ፣ FreeBSD የ UL መርሐግብር አዘጋጅን ተጠቅሟል።

በመጨረሻም, ብዙ መርሐግብር አውጪዎች ሌሎች ባህሪያት አሏቸው. ለምሳሌ, አንዳንዶቹ
የጊዜ መርሐግብር አውጪዎች ለስርዓተ ክወናው አሠራር እና በዚህም ከፍተኛውን ደረጃዎች ያስቀምጣሉ
ስለዚህ ማንኛውም የተጠቃሚ ሂደት በ ውስጥ ከፍተኛ ቅድሚያ ሊሰጠው አይችልም።
ስርዓት. አንዳንድ ስርዓቶች ለማገዝ ምክር እንዲሰጡ ያስችሉዎታል
እቅድ አውጪው ቅድሚያ የሚሰጣቸውን ነገሮች በትክክል ማዘጋጀት ይችላል. ለምሳሌ, ትዕዛዙን በመጠቀም ጥሩ
የአንድን ተግባር ቅድሚያ ከፍ ማድረግ ወይም መቀነስ እና በዚህም መጨመር ወይም መጨመር ይችላሉ
የፕሮግራሙን የሲፒዩ ጊዜ የመጠቀም እድሎችን ይቀንሱ።

MLFQ፡ ማጠቃለያ

MLFQ የሚባል የእቅድ አቀራረብን ገልፀናል። ስሙ
በኦፕሬሽን መርህ ውስጥ ተዘግቷል - ብዙ ወረፋዎች አሉት እና ግብረመልስ ይጠቀማል
ተግባር ቅድሚያ ለመወሰን.
የደንቦቹ የመጨረሻ ቅፅ እንደሚከተለው ይሆናል.

  • ደንብ 1ቅድሚያ (A)> ቅድሚያ (B) ከሆነ ተግባር A ይጀምራል (ቢ አይሆንም)
  • ደንብ 2ቅድሚያ (A) = ቅድሚያ (ቢ) ከሆነ, ኤ&ቢ RR መጠቀም ጀምረዋል
  • ደንብ 3: አንድ ተግባር ወደ ስርዓቱ ውስጥ ሲገባ ከፍተኛ ቅድሚያ የሚሰጠው ወረፋ ውስጥ ነው.
  • ደንብ 4: አንድ ተግባር አሁን ባለው ወረፋ ውስጥ የተመደበለትን ጊዜ ከተጠቀመ በኋላ (ምንም ያህል ጊዜ ሲፒዩን ቢያልቅ) የዚያ ተግባር ቅድሚያ ይቀንሳል (ወደ ወረፋው ይወርዳል)።
  • ደንብ 5: ከተወሰነ ጊዜ S በኋላ, በስርዓቱ ውስጥ ያሉትን ሁሉንም ተግባራት ወደ ከፍተኛው ወረፋ ያንቀሳቅሱ.

MLFQ በሚከተለው ምክንያት ትኩረት የሚስብ ነው - ስለ እውቀት ከመጠየቅ ይልቅ
የተግባሩ ተፈጥሮ ፣ ስልተ ቀመር ያለፈውን ተግባር እና ስብስቦችን ያጠናል
በዚህ መሠረት ቅድሚያ የሚሰጣቸው ነገሮች. ስለዚህ, በአንድ ጊዜ በሁለት ወንበሮች ላይ ለመቀመጥ ይሞክራል - ለአነስተኛ ተግባራት ምርታማነትን ለማግኘት (SJF, STCF) እና በታማኝነት ረጅም ጊዜ ለመሮጥ,
ሲፒዩ የመጫኛ ስራዎች. ስለዚህ, BSD እና ተዋጽኦዎቻቸውን ጨምሮ ብዙ ስርዓቶች,
Solaris፣ Windows፣ Mac አንዳንድ አይነት አልጎሪዝምን እንደ መርሐግብር አዘጋጅ ይጠቀማሉ
MLFQ እንደ መነሻ መስመር።

ተጨማሪ ቁሳቁሶች

  1. manpages.debian.org/stretch/manpages/sched.7.en.html
  2. en.wikipedia.org/wiki/መርሐግብር_(በማስላት)
  3. pages.lip6.fr/Julia.Lawall/atc18-bouron.pdf
  4. www.usenix.org/legacy/event/bsdcon03/tech/full_papers/roberson/roberson.pdf
  5. chebykin.org/freebsd-process-scheduling

ምንጭ: hab.com

አስተያየት ያክሉ