ስርዓተ ክወናዎች: ሶስት ቀላል ክፍሎች. ክፍል 1፡ መግቢያ (ትርጉም)

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

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

በዚህ ጉዳይ ላይ የላብራቶሪ ስራ እዚህ ሊገኝ ይችላል-
- ኦሪጅናል: pages.cs.wisc.edu/~remzi/OSTEP/የቤት ስራ/የቤት ስራ.html
- ኦሪጅናል: github.com/remzi-arpacidusseau/ostep-code
- የእኔ የግል መላመድ; github.com/bykvaadm/OS/tree/master/ostep

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

የፕሮግራም አሠራር

አንድ ፕሮግራም ሲሰራ ምን ይሆናል? የሩጫ ፕሮግራም አንድ ቀላል ነገር ያደርጋል - መመሪያዎችን ያስፈጽማል. በየሰከንዱ በሚሊዮኖች እና ምናልባትም በቢሊዮን የሚቆጠሩ መመሪያዎች በአቀነባባሪው ከ RAM ይሰበሰባሉ፣ ዞሮ ዞሮ ዞሮ ዞሮ ዞሮ ዞሮ ዞሮ ዞሮ ዞሮ ዞሮ ዞሮ ዞሮ ዞሮ ዞሮ ዞሮ ዞሮ ዞሮ ዞሮ ዞሮ ዞሮ ዞሮ ዞሮ ዞሮ ዞሮ ዞሮ ዞሮ ዞሮ ዞሮ ዞሮ ዞሯል እነዚህ መመሪያዎች የየትኛው አይነት እንደሆኑ ይገነዘባል እና ያስፈጽማል. ይህ ሁለት ቁጥሮች መጨመር, ማህደረ ትውስታን መድረስ, ሁኔታን መፈተሽ, ወደ ተግባር መዝለል, ወዘተ ሊሆን ይችላል. አንድ መመሪያ ከተፈጸመ በኋላ ፕሮሰሰሩ ወደ ሌላው አፈጻጸም ይሄዳል። እና ስለዚህ መመሪያ ከትምህርት በኋላ, ፕሮግራሙ እስኪያልቅ ድረስ ይፈጸማሉ.
ይህ ምሳሌ በተፈጥሮው እንደ ቀላል ተደርጎ ይቆጠራል - በእውነቱ ፣ ፕሮሰሰርን ለማፋጠን ፣ ዘመናዊ ሃርድዌር መመሪያዎችን በተራው እንዲፈጽሙ ፣ ሊገኙ የሚችሉ ውጤቶችን ለማስላት ፣ መመሪያዎችን በአንድ ጊዜ እንዲፈጽሙ እና ተመሳሳይ ዘዴዎችን ይፈቅድልዎታል።

Von Neumann የሂሳብ ሞዴል

በእኛ የተገለፀው ቀለል ያለ የስራ ቅርጽ ከቮን ኑማን የስሌት ሞዴል ጋር ተመሳሳይ ነው. ቮን ኑማን ከኮምፒዩተር ሲስተሞች ፈር ቀዳጆች አንዱ ነው፣ እሱ ከጨዋታ ንድፈ ሃሳብ ደራሲዎች አንዱ ነው።. መርሃግብሩ በሚሰራበት ጊዜ ሌሎች በርካታ ዝግጅቶች ይከናወናሉ, ሌሎች በርካታ ሂደቶች እና የሶስተኛ ወገን አመክንዮአዊ ስራዎች, ዋና ዓላማው የስርዓቱን አጀማመር, አሠራር እና ጥገናን ቀላል ማድረግ ነው.
ፕሮግራሞችን በቀላሉ ለማስኬድ (እንዲያውም በርካታ ፕሮግራሞችን በአንድ ጊዜ እንዲሰሩ የመፍቀድ)፣ ፕሮግራሞች አንድ አይነት ማህደረ ትውስታ እንዲጋሩ እና ከተለያዩ መሳሪያዎች ጋር እንዲግባቡ የሚያስችል የሶፍትዌር ስብስብ አለ። እንዲህ ዓይነቱ የሶፍትዌር ስብስብ (ሶፍትዌር) በመሠረቱ ኦፕሬቲንግ ሲስተም ተብሎ የሚጠራ ሲሆን ተግባሮቹ ስርዓቱ በትክክል እና በብቃት መስራቱን መከታተል እንዲሁም የዚህን ስርዓት አስተዳደር ቀላልነት ማረጋገጥን ያጠቃልላል።

ስርዓተ ክወና

ኦፕሬቲንግ ሲስተም፣ በስርዓተ ክወናው ምህፃረ ቃል፣ የኮምፒዩተር ሀብቶችን ለማስተዳደር እና የተጠቃሚዎችን ከኮምፒዩተር ጋር መስተጋብር ለማደራጀት የተነደፉ እርስ በርስ የተያያዙ ፕሮግራሞች ስብስብ ነው።.
ስርዓተ ክወናው በመጀመሪያ ደረጃ ውጤታማነቱን ያገኛል, በጣም አስፈላጊ በሆነው ዘዴ - ዘዴው ምናባዊ ፈጠራ. ስርዓተ ክወናው ከቁስ አካል (ፕሮሰሰር፣ ማህደረ ትውስታ፣ ዲስክ፣ ወዘተ) ጋር ይገናኛል እና ወደ አጠቃላይ፣ የበለጠ ሃይለኛ እና ለአጠቃቀም ቀላል የሆነ ወደ እራሱ ይቀይረዋል። ስለዚህ፣ ለአጠቃላይ ግንዛቤ፣ ስርዓተ ክወናውን ከቨርቹዋል ማሽን ጋር በደንብ ማወዳደር ይችላሉ።
ተጠቃሚዎች ለስርዓተ ክወናው ትዕዛዝ እንዲሰጡ እና የቨርቹዋል ማሽኑን አቅም ለመጠቀም (እንደ ፕሮግራም ማስኬድ ፣ ማህደረ ትውስታን መመደብ ፣ ፋይል መድረስ እና የመሳሰሉት) ኦፕሬቲንግ ሲስተሙ የተወሰነ በይነገጽ ይሰጣል ። ኤ ፒ አይ (የመተግበሪያ ፕሮግራሚንግ በይነገጽ) እና ጥሪ ማድረግ የሚችሉበት (መደወል)። አንድ የተለመደ ስርዓተ ክወና በመቶዎች የሚቆጠሩ የስርዓት ጥሪዎችን ለማድረግ ይፈቅዳል.
በመጨረሻም ቨርቹዋልላይዜሽን በርካታ ፕሮግራሞችን እንዲሰሩ ስለሚያደርግ (በመሆኑም ሲፒዩን ማጋራት) እና መመሪያዎቻቸውን እና ውሂባቸውን (በመሆኑም ማህደረ ትውስታን መጋራት) እና ዲስኮችን መድረስ (በመሆኑም የአይ/ኦ መሳሪያዎችን ማጋራት)) ኦፕሬቲንግ ሲስተም እንዲሁ ይባላል የንብረት አስተዳዳሪ. እያንዳንዱ ፕሮሰሰር፣ዲስክ እና ሜሞሪ የስርአቱ ግብአት በመሆኑ ከስርዓተ ክወናው አንዱ ሚና ይህ ኦፕሬቲንግ ሲስተም በሚሰራው ተግባር ላይ በመመስረት በብቃት፣ በታማኝነት ወይም በተገላቢጦሽ እነዚህን ሀብቶች የማስተዳደር ተግባር ይሆናል። የተነደፈ ነው።

ሲፒዩ ምናባዊነት

የሚከተለውን ፕሮግራም አስቡበት፡-
(https://www.youtube.com/watch?v=zDwT5fUcki4&feature=youtu.be)

ስርዓተ ክወናዎች: ሶስት ቀላል ክፍሎች. ክፍል 1፡ መግቢያ (ትርጉም)

ምንም ልዩ ድርጊቶችን አይፈጽምም, በእውነቱ, የሚያደርገው ሁሉ ተግባርን መጥራት ነው አሽከርክር() የማን ተግባር የሰዓት ፍተሻን ማለፍ እና አንድ ሰከንድ ካለፈ በኋላ መመለስ ነው። ስለዚህ ተጠቃሚው እንደ ነጋሪ እሴት ያሳለፈውን ሕብረቁምፊ ላልተወሰነ ጊዜ ይደግማል።
ይህንን ፕሮግራም እናካሂድ እና "A" የሚለውን ገጸ ባህሪ እንደ ክርክር እናስተላልፈው. ውጤቱ በተለይ አስደሳች አይደለም - ስርዓቱ በቀላሉ "A" የሚለውን ገጸ ባህሪ በየጊዜው የሚያሳይ ፕሮግራም ያከናውናል.
አሁን ብዙ ተመሳሳይ ፕሮግራም አጋጣሚዎች ሲሰሩ፣ ነገር ግን የበለጠ ግልጽ ለማድረግ የተለያዩ ፊደላትን በማውጣት አማራጩን እንሞክር። በዚህ ሁኔታ ውጤቱ በተወሰነ ደረጃ የተለየ ይሆናል. ምንም እንኳን አንድ ፕሮሰሰር ቢኖረንም, ፕሮግራሙ በአንድ ጊዜ ይከናወናል. እንዴት ነው የሚሆነው? ነገር ግን የስርዓተ ክወናው, የሃርድዌር ችሎታዎች ሳይታገዝ, ቅዠትን ይፈጥራል. ሲስተሙ በርካታ ቨርቹዋል ፕሮሰሰር እንዳለው፣ አንድን ፊዚካል ፕሮሰሰር ወደ ንድፈ-ሀሳብ ገደብ የለሽ ቁጥር በመቀየር እና የሚመስሉ ፕሮግራሞችን በአንድ ጊዜ እንዲሰሩ ያስችላል። ይህ ቅዠት ይባላል ሲፒዩ ምናባዊነት.
ይህ ስዕል ብዙ ጥያቄዎችን ያስነሳል, ለምሳሌ, ብዙ ፕሮግራሞች በተመሳሳይ ጊዜ እንዲሰሩ ከፈለጉ, የትኛው ይጀምራል? የስርዓተ ክወናው "መመሪያዎች" ለዚህ ጥያቄ ተጠያቂ ናቸው. ፖሊሲዎች በስርዓተ ክወናው ውስጥ በብዙ ቦታዎች ጥቅም ላይ ይውላሉ እና ለመሳሰሉት ጥያቄዎች መልስ ይሰጣሉ፣ እና ስርዓተ ክወናው የሚተገብራቸው መሰረታዊ ስልቶች ናቸው። ስለዚህ የስርዓተ ክወናው እንደ የንብረት አስተዳዳሪ ሚና.

የማህደረ ትውስታ ምናባዊ

አሁን ትውስታን እንመልከት። በዘመናዊ ስርዓቶች ውስጥ ያለው የማስታወስ አካላዊ ሞዴል እንደ ባይት ድርድር ይወከላል.. ከማህደረ ትውስታ ለማንበብ, መጥቀስ ያስፈልግዎታል የሕዋስ አድራሻእሱን ለመድረስ. መረጃን ለመጻፍ ወይም ለማዘመን ውሂቡን እና የሕዋስ አድራሻውን የት እንደሚጽፉ መግለጽ አለብዎት።
በፕሮግራሙ አፈፃፀም ወቅት ማህደረ ትውስታ ያለማቋረጥ ይደርሳል. አንድ ፕሮግራም ሙሉውን የመረጃ አወቃቀሩን በማህደረ ትውስታ ውስጥ ያከማቻል እና የተለያዩ መመሪያዎችን በመተግበር ይደርሳል. ይህ በእንዲህ እንዳለ መመሪያው በማህደረ ትውስታ ውስጥ ተከማችቷል, ስለዚህ ለሚቀጥለው መመሪያ ለእያንዳንዱ ጥያቄም እንዲሁ ይደርሳል.

malloc () ጥሪ

ጥሪውን በመጠቀም የማህደረ ትውስታ ክልልን የሚመድበው የሚከተለውን ፕሮግራም አስቡበት malloc () (https://youtu.be/jnlKRnoT1m0)፡-

ስርዓተ ክወናዎች: ሶስት ቀላል ክፍሎች. ክፍል 1፡ መግቢያ (ትርጉም)

ፕሮግራሙ በርካታ ተግባራትን ያከናውናል. በመጀመሪያ, የተወሰነ ማህደረ ትውስታን (መስመር 7) ይመድባል, ከዚያም የተመደበውን ሕዋስ አድራሻ (መስመር 9) ያትማል, በተመደበው ማህደረ ትውስታ የመጀመሪያ ማስገቢያ ላይ ዜሮን ይጽፋል. በመቀጠል ፕሮግራሙ በ "p" ተለዋዋጭ አድራሻ ውስጥ በማህደረ ትውስታ ውስጥ የተከማቸውን እሴት የሚጨምርበት ዑደት ውስጥ ይገባል. እንዲሁም የሂደቱን መታወቂያ በራሱ ያትማል። የሂደቱ መታወቂያ ለእያንዳንዱ የሩጫ ሂደት ልዩ ነው።. ብዙ ቅጂዎችን ከጀመርን በኋላ አስደሳች ውጤት ላይ እንሰናከላለን-በመጀመሪያው ሁኔታ ምንም ካላደረጉ እና ብዙ ቅጂዎችን ብቻ ካሄዱ አድራሻዎቹ የተለያዩ ይሆናሉ። ግን ይህ በእኛ ጽንሰ-ሀሳብ ውስጥ አይወድቅም! ትክክል፣ ዘመናዊ ስርጭቶች በነባሪነት የነቃ የማህደረ ትውስታ ራንደምራይዜሽን ስላላቸው ነው። ከተሰናከለ, የሚጠበቀው ውጤት እናገኛለን - የሁለት በአንድ ጊዜ የሚሰሩ ፕሮግራሞች የማስታወሻ አድራሻዎች ይጣጣማሉ.

ስርዓተ ክወናዎች: ሶስት ቀላል ክፍሎች. ክፍል 1፡ መግቢያ (ትርጉም)

በውጤቱም, ሁለት ገለልተኛ ፕሮግራሞች ከራሳቸው የግል የአድራሻ ቦታዎች ጋር ይሰራሉ, ይህም በተራው በአካላዊ ማህደረ ትውስታ ውስጥ በስርዓተ ክወናው ካርታ ተቀርጿል.. ስለዚህ, በአንድ ፕሮግራም ውስጥ የማስታወሻ አድራሻዎችን መጠቀም በምንም መልኩ ሌሎችን አይጎዳውም, እና ለእያንዳንዱ ፕሮግራም የራሱ የሆነ አካላዊ ማህደረ ትውስታ ያለው ይመስላል, ሙሉ በሙሉ የተሰጠው ነው. እውነታው ግን አካላዊ ማህደረ ትውስታ በስርዓተ ክወናው የሚተዳደር የጋራ መገልገያ ነው.

ወጥነት

በስርዓተ ክወናዎች ውስጥ ካሉት አስፈላጊ ርዕሰ ጉዳዮች ውስጥ ሌላው - ወጥነት. ይህ ቃል በአንድ ፕሮግራም ውስጥ ከብዙ ነገሮች ጋር በአንድ ጊዜ ሲሰራ ሊከሰቱ ስለሚችሉ ችግሮች ሲናገሩ ጥቅም ላይ ይውላል. በስርዓተ ክወናው ውስጥም ቢሆን ወጥነት ያላቸው ጉዳዮች ይነሳሉ. በቀድሞው የማህደረ ትውስታ እና ፕሮሰሰር ቨርችዋል ምሳሌዎች ኦኤስኤስ ብዙ ነገሮችን በተመሳሳይ ጊዜ እንደሚያስተዳድር ተገነዘብን - የመጀመሪያውን ሂደት ይጀምራል, ከዚያም ሁለተኛው, ወዘተ. እንደ ተለወጠ, ይህ ባህሪ ወደ አንዳንድ ችግሮች ሊያመራ ይችላል. ስለዚህ, ለምሳሌ, ዘመናዊ ባለብዙ-ክር ፕሮግራሞች እንደዚህ አይነት ችግሮች ያጋጥሟቸዋል.

የሚከተለውን ፕሮግራም አስቡበት፡-

ስርዓተ ክወናዎች: ሶስት ቀላል ክፍሎች. ክፍል 1፡ መግቢያ (ትርጉም)

በዋናው ተግባር ውስጥ ያለው ፕሮግራም ጥሪውን በመጠቀም ሁለት ክሮች ይፈጥራል ፍጠር(). በዚህ ምሳሌ፣ ክር ከሌሎች ተግባራት ጋር በአንድ የማህደረ ትውስታ ቦታ ላይ የሚሰራ ተግባር ነው ተብሎ ሊታሰብ ይችላል፣ በአንድ ጊዜ ከአንድ በላይ ተግባር በግልፅ ይሰራል። በዚህ ምሳሌ, እያንዳንዱ ክር ይጀምራል እና ተግባሩን ያከናውናል ሠራተኛ () በተራው በቀላሉ ተለዋዋጭውን ይጨምራል,.

ይህንን ፕሮግራም በ1000 ክርክር እናካሂድ። እርስዎ እንደገመቱት ውጤቱ 2000 መሆን አለበት ምክንያቱም እያንዳንዱ ክር ተለዋዋጭውን 1000 ጊዜ ጨምሯል። ሆኖም, ሁሉም ነገር በጣም ቀላል አይደለም. ተጨማሪ ድግግሞሾችን በከፍተኛ ቅደም ተከተል ፕሮግራሙን ለማስኬድ እንሞክር።

ስርዓተ ክወናዎች: ሶስት ቀላል ክፍሎች. ክፍል 1፡ መግቢያ (ትርጉም)

ቁጥርን በማስገባት ለምሳሌ 100000 ውጤቱን እንደ ቁጥር 200000 እንጠብቃለን ነገር ግን ቁጥሩን 100000 ደጋግመን ብንሮጥ ትክክለኛውን መልስ ማየት ብቻ ሳይሆን የተለያዩ የተሳሳቱ መልሶችም እናገኛለን። መልሱ ቁጥሩን ለመጨመር ሶስት ክዋኔዎች ያስፈልጋሉ - ቁጥሩን ከማህደረ ትውስታ ማውጣት ፣ መጨመር እና ከዚያ ቁጥሩን መልሰው መጻፍ። እነዚህ ሁሉ መመሪያዎች በአቶሚክ (ሁሉም በአንድ ጊዜ) ስላልተፈጸሙ እንደዚህ አይነት እንግዳ ነገሮች ሊከሰቱ ይችላሉ. ይህ ችግር በፕሮግራም ውስጥ ይባላል የዘር ሁኔታ. በማይታወቅ ቅጽበት ያልታወቁ ኃይሎች የማንኛውንም ኦፕሬሽንዎን አፈጻጸም ላይ ተጽዕኖ ሊያሳድሩ ይችላሉ።

ምንጭ: hab.com

አስተያየት ያክሉ