Usanifu uliosambazwa. Usanifu wa Usanifu Uliosambazwa wa Mtandao Uliosambazwa

KATIKA mali kubwa Makumi ya maelfu ya watumiaji hufanya kazi katika tanzu. Kila shirika lina michakato yake ya ndani ya biashara: idhini ya hati, utoaji wa maagizo, nk. Wakati huo huo, michakato mingine huenda zaidi ya mipaka ya kampuni moja na huathiri wafanyikazi wa nyingine. Kwa mfano, mkuu wa ofisi ya makao makuu hutoa amri kwa kampuni tanzu, au mfanyakazi wa kampuni tanzu hutuma makubaliano ya kuidhinishwa na wanasheria wa kampuni mama. Hii inahitaji kuunda usanifu tata kwa kutumia mifumo mingi.

Aidha, ndani kampuni moja Mifumo mingi hutumiwa kutatua matatizo tofauti: mfumo wa ERP kwa shughuli za uhasibu, mitambo tofauti ya mifumo ya ECM kwa nyaraka za shirika na utawala, kwa nyaraka za kubuni na makadirio, nk.

Mfumo wa DIRECTUM utasaidia kuhakikisha mwingiliano wa mifumo tofauti ndani ya kushikilia na kwa kiwango cha shirika moja.

DIRECTUM hutoa zana rahisi za kujenga usanifu uliosimamiwa uliosambazwa kupanga na kutatua kazi zifuatazo:

  • shirika la michakato ya biashara ya mwisho hadi mwisho na maingiliano ya data kati ya mifumo kadhaa ya kampuni moja na katika kushikilia;
  • kutoa ufikiaji wa data kutoka kwa usakinishaji tofauti wa mifumo ya ECM. Kwa mfano, tafuta hati katika mifumo kadhaa maalumu: na nyaraka za kifedha, na nyaraka za kubuni na makadirio, nk.
  • kusimamia mifumo na huduma nyingi kutoka kwa sehemu moja ya udhibiti na kuunda miundombinu ya IT ya starehe;
  • usambazaji rahisi wa maendeleo kwa mifumo iliyosambazwa ya uzalishaji.

Vipengele vya Usanifu Unaosimamiwa Uliosambazwa

Mbinu za muunganisho (DCI).

Mbinu za DCI hutumika kupanga michakato ya biashara ya mwisho hadi mwisho na kusawazisha data kati ya mifumo tofauti ndani ya shirika moja au kadhaa (kushikilia).


Suluhisho huunganisha michakato ya biashara ya ndani iliyopo katika makampuni katika mchakato mmoja wa mwisho hadi mwisho. Wafanyakazi na wasimamizi wao hufanya kazi na kiolesura ambacho tayari kinajulikana cha kazi, nyaraka na vitabu vya kumbukumbu. Wakati huo huo, vitendo vya wafanyikazi ni wazi katika kila hatua: wanaweza kuona maandishi ya mawasiliano na kampuni inayohusiana, angalia hali ya idhini ya hati na shirika la mzazi, nk.

Unaweza kuunganisha usakinishaji tofauti wa DIRECTUM na aina zingine za mifumo (ERP, CRM, n.k.) kwa DCI. Kama sheria, mitambo imegawanywa na eneo la biashara, kwa kuzingatia eneo au eneo la kisheria la mashirika na mambo mengine.

Pamoja na DCI, vipengele vya ukuzaji hutolewa maelezo ya kina na mifano ya msimbo, shukrani ambayo msanidi anaweza kuunda algoriti kwa michakato ya biashara ya shirika lake.

Taratibu za DCI huruhusu idadi kubwa ya data kuhamishwa na inaweza kuhimili mizigo ya kilele. Kwa kuongeza, hutoa uvumilivu wa makosa katika tukio la kushindwa kwa mawasiliano na ulinzi wa data zinazopitishwa.

Utafutaji wa Shirikisho

Kwa kutumia utafutaji wa shirikisho, unaweza kupata kazi au hati zinazohitajika katika mifumo yote ya kibinafsi ya DIRECTUM mara moja. Kwa mfano, fanya utafutaji wakati huo huo kwenye mfumo wa kufanya kazi na kwenye mfumo na nyaraka zilizohifadhiwa.


Utafutaji ulioshirikishwa hukuruhusu:

  • tazama maendeleo ya idhini ya hati inayotoka katika shirika tanzu kupitia mteja wa wavuti;
  • kupata mikataba iliyohitimishwa na mshirika katika tanzu zote, kwa mfano, kuandaa mazungumzo. Katika kesi hii, unaweza kwenda kwenye kazi ambazo zina mikataba;
  • angalia hali ya utekelezaji wa agizo lililotumwa kutoka kwa shirika la mzazi kwa kampuni tanzu, au hati na kazi zilizoundwa kulingana nayo;
  • kupata hati wakati huo huo katika mifumo kadhaa yenye utaalam tofauti, kwa mfano, na hati na mikataba ya shirika na kiutawala;
  • pata hati za msingi za uhasibu kwa ukaguzi au upatanisho na mshirika mara moja katika mfumo wa kufanya kazi na katika mfumo na kumbukumbu ya hati;
  • kubadilishana viungo vya matokeo ya utafutaji na wenzako.

Msimamizi anaweza kubadilisha utafutaji wa kawaida, kuongeza mpya, na pia kusanidi mifumo ambayo itaonekana kwa mtumiaji.

Kituo cha Utawala wa Huduma za DIRECTUM

Mfumo wa DIRECTUM hutatua matatizo mengi tofauti: mwingiliano wa mfanyakazi, uhifadhi wa hati, nk Hii inawezekana shukrani kwa uendeshaji wa kuaminika wa huduma zake. Na makampuni makubwa hutenga mitambo nzima ya mfumo wa DIRECTUM na seti zao za huduma kwa kazi maalum, kwa mfano, kwa kuhifadhi nyaraka za kumbukumbu. Ufungaji na huduma huwekwa kwenye seva kadhaa. Miundombinu hii inahitaji kusimamiwa.

Kituo cha Utawala wa Huduma za DIRECTUM ndicho sehemu moja ya msimamizi ya kuingia kwa ajili ya kusanidi, kufuatilia, na kusimamia huduma na mifumo ya DIRECTUM. Kituo hiki ni tovuti iliyo na zana za udhibiti wa seva ya kipindi, Huduma ya Mtiririko wa Kazi, Huduma ya Kuchakata Matukio, Huduma ya Hifadhi ya Faili, Huduma za Kuingiza na Kubadilisha, Utafutaji Ulioshirikishwa na Usaidizi wa Wavuti.


Usanidi rahisi wa kuona wa mifumo na huduma za mbali hurahisisha kazi ya msimamizi. Yeye haitaji kwenda kwa kila seva na kufanya mabadiliko kwa faili za usanidi.

Huduma zinasimama na kuanza kwa mbofyo mmoja. Hali ya huduma huonyeshwa mara moja kwenye skrini.

Orodha ya mipangilio inaweza kupanuliwa na kuchujwa. Kwa chaguo-msingi, tovuti inaonyesha mipangilio ya msingi tu. Wakati huo huo, kwa mipangilio yote unaweza kuona vidokezo na mapendekezo ya kujaza.

Mfumo wa DIRECTUM hupanga kwa ufanisi kazi ya mashirika yaliyosambazwa na hutoa watumiaji kubadilishana kwa uwazi wa nyaraka, kazi na rekodi za saraka.

Kila sehemu ya usanifu unaosimamiwa unaosambazwa inaweza kutumika kando, lakini kwa pamoja italeta thamani kubwa ya biashara kwa shirika lako.

(Nyenzo za tovuti http://se.math.spbu.ru)

Utangulizi.

Leo, karibu mifumo yote mikubwa ya programu inasambazwa. Mfumo uliosambazwa- mfumo ambao usindikaji wa habari haujajilimbikizia kwenye kompyuta moja, lakini inasambazwa kati ya kompyuta kadhaa. Wakati wa kubuni mifumo iliyosambazwa, ambayo ina mengi sawa na muundo wa programu kwa ujumla, baadhi ya vipengele maalum bado vinapaswa kuzingatiwa.

Kuna sifa sita kuu za mifumo iliyosambazwa.

  1. Kugawana rasilimali. Mifumo iliyosambazwa inaruhusu ushiriki wa vifaa vyote (anatoa ngumu, vichapishaji) na rasilimali za programu (faili, wakusanyaji).
  2. Uwazi.Huu ni uwezo wa kupanua mfumo kwa kuongeza rasilimali mpya.
  3. Usambamba.Katika mifumo iliyosambazwa, michakato mingi inaweza kukimbia wakati huo huo kwenye kompyuta tofauti kwenye mtandao. Michakato hii inaweza kuingiliana wakati inaendesha.
  4. Scalability . Chini ya scalability uwezekano wa kuongeza mali na mbinu mpya inaeleweka.
  5. Uvumilivu wa makosa. Uwepo wa kompyuta kadhaa huruhusu kurudia habari na kupinga baadhi ya makosa ya vifaa na programu. Mifumo iliyosambazwa inaweza kusaidia utendakazi nusu katika tukio la hitilafu. Kushindwa kwa mfumo kamili hutokea tu katika tukio la makosa ya mtandao.
  6. Uwazi.Watumiaji wanapewa ufikiaji kamili wa rasilimali kwenye mfumo, na wakati huo huo habari kuhusu usambazaji wa rasilimali katika mfumo wote imefichwa kutoka kwao.

Mifumo iliyosambazwa pia ina idadi ya hasara.

  1. Utata. Ni vigumu zaidi kuelewa na kutathmini mali ya mifumo iliyosambazwa kwa ujumla, ni vigumu zaidi kubuni, kupima na kudumisha. Pia, utendaji wa mfumo unategemea kasi ya mtandao, si wasindikaji binafsi. Kusambaza rasilimali kunaweza kubadilisha kwa kiasi kikubwa kasi ya mfumo.
  2. Usalama. Kwa kawaida, mfumo unaweza kupatikana kutoka kwa mashine kadhaa tofauti, na ujumbe kwenye mtandao unaweza kutazamwa na kuingiliwa. Kwa hiyo, ni vigumu zaidi kudumisha usalama katika mfumo uliosambazwa.
  3. Udhibiti. Mfumo unaweza kuwa na aina tofauti za kompyuta ambazo matoleo tofauti ya mifumo ya uendeshaji yanaweza kusakinishwa. Hitilafu kwenye mashine moja zinaweza kuenea kwa njia zisizotabirika kwa mashine nyingine.
  4. Kutotabirika . Majibu ya mifumo iliyosambazwa kwa matukio fulani haitabiriki na inategemea mzigo kamili wa mfumo, shirika lake na mzigo wa mtandao. Kwa kuwa vigezo hivi vinaweza kubadilika kila mara, muda wa kujibu ombi unaweza kutofautiana sana mara kwa mara.

Kutoka kwa mapungufu haya, inaweza kuonekana kwamba wakati wa kubuni mifumo iliyosambazwa, matatizo kadhaa hutokea ambayo watengenezaji wanahitaji kuzingatia.

  1. Utambulisho wa Rasilimali . Rasilimali katika mifumo iliyosambazwa ziko kwenye kompyuta tofauti, kwa hivyo mfumo wa kutaja rasilimali unapaswa kuundwa ili watumiaji waweze kufungua kwa urahisi na kurejelea rasilimali wanazohitaji. Mfano ni mfumo wa URL (Uniform Resource Locator) unaofafanua majina ya kurasa za Wavuti.
  2. Mawasiliano. Utendakazi wa ulimwengu wote wa Mtandao na utekelezaji bora wa itifaki za TCP/IP kwenye Mtandao kwa mifumo mingi iliyosambazwa hutumika kama mfano wa njia bora zaidi ya kupanga mawasiliano kati ya kompyuta. Hata hivyo, katika baadhi ya matukio ambapo utendaji maalum au uaminifu unahitajika, zana maalum zinaweza kutumika.
  3. Ubora wa huduma ya mfumo . Kigezo hiki kinaonyesha utendakazi, upatikanaji, na kutegemewa. Ubora wa huduma huathiriwa na mambo kadhaa: usambazaji wa michakato, rasilimali, vifaa na uwezo wa kukabiliana na mfumo.
  4. Usanifu wa programu . Usanifu wa programu unaelezea usambazaji wa kazi za mfumo katika vipengele vya mfumo, pamoja na usambazaji wa vipengele hivi kwa vichakataji. Ikiwa huduma ya mfumo wa hali ya juu itadumishwa, ni muhimu kuchagua usanifu sahihi.

Kazi ya wabunifu wa mfumo wa kusambazwa ni kubuni programu na vifaa ili kutoa sifa zote muhimu za mfumo uliosambazwa. Na hii inahitaji kujua faida na hasara za usanifu mbalimbali wa mfumo uliosambazwa. Kuna aina tatu za usanifu wa mfumo uliosambazwa.

  1. Usanifu wa mteja/seva . Katika mfano huu, mfumo unaweza kuwakilishwa kama seti ya huduma zinazotolewa na seva kwa wateja. Katika mifumo kama hiyo, seva na wateja hutofautiana sana kutoka kwa kila mmoja.
  2. Usanifu wa tabaka tatu . Katika mfano huu, seva hutoa huduma kwa wateja sio moja kwa moja, lakini kupitia seva ya mantiki ya biashara.

Aina mbili za kwanza tayari zimetajwa zaidi ya mara moja; wacha tuangalie kwa karibu ya tatu.

  1. Usanifu wa Kitu Kilichosambazwa . Katika kesi hii, hakuna tofauti kati ya seva na wateja na mfumo unaweza kuwakilishwa kama seti ya vitu vinavyoingiliana, eneo ambalo haijalishi sana. Hakuna tofauti kati ya mtoa huduma na watumiaji wake.

Usanifu huu unatumiwa sana siku hizi na pia huitwa usanifu wa huduma za wavuti. Huduma ya wavuti ni programu inayopatikana kupitia Mtandao na kutoa huduma fulani, fomu ambayo haitegemei mtoa huduma (kwani muundo wa data wa ulimwengu wote hutumiwa - XML) na jukwaa la uendeshaji. Hivi sasa kuna teknolojia tatu tofauti zinazounga mkono dhana ya mifumo ya kitu kilichosambazwa. Hizi ni teknolojia za EJB, CORBA na DCOM.

Kwanza, maneno machache kuhusu XML ni kwa ujumla. XML ni umbizo la data zima ambalo hutumika kutoa huduma za Wavuti. Huduma za wavuti zinatokana na viwango na itifaki zilizo wazi: SOAP, UDDI na WSDL.

  1. SABUNI ( Itifaki ya Ufikiaji wa Kitu Rahisi), iliyotengenezwa na muungano wa W3C, inafafanua muundo wa maombi kwa huduma za Wavuti. Ujumbe kati ya huduma ya Wavuti na mtumiaji wake huwekwa kwenye kinachojulikana kama bahasha za SOAP (wakati mwingine pia huitwa bahasha za XML). Ujumbe wenyewe unaweza kuwa na ombi la kufanya kitendo fulani, au jibu - matokeo ya kufanya kitendo hiki.
  2. WSDL (Lugha ya Maelezo ya Huduma ya Wavuti).Kiolesura cha huduma ya Wavuti kinaelezewa katika hati za WSDL (na WSDL ni sehemu ndogo ya XML). Kabla ya kupeleka huduma, msanidi huandika maelezo yake katika WSDL, anabainisha anwani ya huduma ya Wavuti, itifaki zinazotumika, orodha ya shughuli zinazoruhusiwa, ombi na umbizo la majibu.
  3. UDDI (Maelezo ya Universal, Ugunduzi na Muunganisho) - itifaki ya kutafuta huduma za Wavuti kwenye mtandao ( http://www.uddi.org/). Ni sajili ya biashara ambayo watoa huduma za Wavuti husajili huduma na watengenezaji hupata huduma muhimu za kujumuisha katika programu zao.

Kutoka kwa ripoti inaweza kuonekana kuwa huduma za Wavuti ni bora na hakuna suluhisho mbadala, na swali pekee ni uchaguzi wa zana za maendeleo. Hata hivyo, sivyo. Njia mbadala ya huduma za Wavuti ipo; ni Wavuti ya Semantiki, hitaji ambalo lilizungumzwa na muundaji wa WWW Tim Berners-Lee miaka mitano iliyopita.

Ikiwa kazi ya huduma za Wavuti ni kuwezesha mawasiliano kati ya programu, basi Mtandao wa semantic umeundwa kutatua tatizo ngumu zaidi - kwa kutumia njia za metadata ili kuongeza ufanisi wa thamani ya habari ambayo inaweza kupatikana kwenye Wavuti. Hili linaweza kufanywa kwa kuacha mbinu inayolenga hati kwa niaba ya inayolenga kitu.

Bibliografia

  1. SommervilleI. Uhandisi wa programu.
  2. Dranica A. Java dhidi ya NET. - "Computerra", #516.
  3. Rasilimali za mtandao.

Mifumo ya habari ya kiotomatiki iliyosambazwa sasa imekuwa ukweli wa kila siku. Mifumo mingi ya habari ya kiotomatiki ya shirika hutumia hifadhidata zilizosambazwa. Mbinu za usambazaji wa data na usimamizi wa data zilizosambazwa, mbinu za usanifu zinazohakikisha uboreshaji wa mfumo, kutekeleza kanuni za usanifu wa seva nyingi za mteja, pamoja na usanifu wa safu ya kati, zimeandaliwa.

Usanifu wa rununu unaanza kutekelezwa. Hii inatumika kwa mifumo ya hifadhidata na programu za Wavuti.

Mbinu ya ujenzi wa mifumo iliyosambazwa kulingana na usanifu wa rika-kwa-rika (Peer-to-Peer) inafufuliwa, ambapo, tofauti na usanifu wa mteja-server unaotawala katika mifumo iliyosambazwa leo, majukumu ya pande zinazoingiliana katika mtandao. hazijarekebishwa. Wanapewa kulingana na hali katika mtandao na mzigo kwenye nodes zake.

Kwa sababu ya maendeleo makubwa ya teknolojia ya mawasiliano, AIS ya rununu inakua kikamilifu. Vifaa na programu kwa ajili ya uumbaji wao zimetengenezwa. Shukrani kwa hili, mifumo ya hifadhidata ya rununu ilianza kukuza. Timu nyingi za kisayansi hufanya utafiti juu ya huduma maalum za mifumo kama hii na kuunda prototypes anuwai. Teknolojia za Java zimekuwa zana muhimu kwa ukuzaji wa programu za rununu.

Kiwango cha Itifaki ya Maombi Isiyotumia Waya (WAP) kimeundwa, ambacho tayari kinatumika na baadhi ya miundo ya simu za mkononi. Kulingana na WAP na XML, muungano wa W3C ulitengeneza lugha ya kuweka alama kwa mawasiliano yasiyotumia waya, WML (Lugha ya Alama ya Wireless).

Katika maendeleo ya AIS, umakini zaidi umelipwa kwa metadata. Hapa hatua zinachukuliwa katika pande mbili - kusawazisha uwasilishaji wa metadata na kuhakikisha msaada wao katika mfumo.

AIS hutumia mbinu na njia mbalimbali za kuwasilisha metadata (aina mbalimbali za hazina za metadata). Ukosefu wa kuunganishwa katika eneo hili kwa kiasi kikubwa huchanganya ufumbuzi wa matatizo ya uhamaji wa maombi, utumiaji tena na ujumuishaji wa rasilimali za habari na teknolojia ya habari, pamoja na uhandisi upya wa AIS.

Ili kuondokana na matatizo haya, viwango vya metadata vinavyolenga teknolojia mbalimbali za habari vinaendelezwa kikamilifu. Katika eneo hili, viwango kadhaa vya kimataifa, kitaifa na viwanda tayari vipo ambavyo vinafafanua uwasilishaji wa metadata na ubadilishanaji wa metadata katika AIS. Baadhi yao tayari wamepata hadhi ya viwango vya ukweli. Tutajiwekea kikomo hapa kwa kutaja tu muhimu zaidi kati yao.

Huenda kiwango cha kwanza katika kitengo hiki kilikuwa lugha ya maelezo ya data ya CODASYL kwa hifadhidata za muundo wa mtandao. Viwango vya hivi majuzi zaidi ni pamoja na: kiwango cha lugha ya maswali ya SQL kwa hifadhidata za uhusiano, ambayo ina ufafanuzi wa kinachojulikana kama schema ya habari - seti ya uwakilishi wa miundo ya hifadhidata ya uhusiano; sehemu ya kiwango cha hifadhidata ya kitu cha ODMG ambacho kinafafanua violesura vya hazina za schema; kiwango cha kimataifa IRDS (Mifumo ya Kamusi ya Rasilimali ya Habari), ambayo inaelezea mifumo ya kuunda na kudumisha saraka za rasilimali za habari za shirika.

Kisha, tunapaswa kutaja kiwango cha CWM (Common Warehouse Metamodel) kilichoundwa na muungano wa OMG kwa ajili ya kuwakilisha metadata ya maghala ya data, kulingana na kiwango cha OIM (Open Information Model) kilichoundwa hapo awali kwa madhumuni mapana na muungano wa MDC (Meta Data Coalition).

Jukwaa jipya la teknolojia ya XML kwa Wavuti pia linajumuisha viwango vya kuwakilisha metadata. Usaidizi wa metadata ni moja ya uvumbuzi muhimu zaidi wa Wavuti, unaobadilisha sana teknolojia ya kudhibiti rasilimali zake za habari. Ingawa teknolojia ya hifadhidata hapo awali ilihitaji usaidizi wa metadata, Wavuti ya kizazi cha kwanza haikuauni metadata.

Viwango vya metadata ya wavuti ni sehemu ndogo ya lugha ya XML inayotumiwa kuelezea muundo wa kimantiki wa baadhi ya aina ya hati ya XML. Maelezo haya yanaitwa DTD (Ufafanuzi wa Aina ya Hati). Kwa kuongeza, jukwaa la XML linajumuisha kiwango cha Schema cha XML, ambacho hutoa uwezo wa juu zaidi wa kuelezea hati za XML. Kiwango cha RDF (Mfumo wa Ufafanuzi wa Rasilimali) hufafanua lugha rahisi ya uwakilishi wa maarifa kwa ajili ya kuelezea maudhui ya hati za XML. Hatimaye, kiwango kinachoendelea cha OWL (Ontology Web Language) kinafafanua lugha rasmi ya maelezo ya ontolojia inayokusudiwa kwa Wavuti wa kisemantiki.

Kiwango cha lugha cha UML (Lugha Iliyounganishwa ya Kuiga), ambayo hutoa uwakilishi wa metadata wa zana za CASE kwa uchanganuzi na muundo wa kitu kinachoonekana, iliundwa na muungano wa OMG. Lugha hii inatumika katika bidhaa nyingi za programu za CASE. Muungano wa OMG pia uliunda kiwango cha XMI (XML Metadata Interchange) kwa ajili ya kubadilishana metadata kati ya zana za CASE kwa kutumia lugha ya UML.

Pia inafaa kutaja hapa ni kiwango cha Dublin Core (DC) - seti ya vipengele vya metadata kwa kuelezea maudhui ya nyaraka za asili mbalimbali. Kiwango hiki kilipata umaarufu haraka na kupatikana, haswa, matumizi makubwa katika mazingira ya Wavuti (tazama Sehemu ya 3.3).

Kazi ya kuunda viwango vilivyopo na kuunda viwango vipya vya kuwasilisha metadata kwa AIS inaendelea. Maelezo ya kina zaidi kuhusu viwango vinavyohusika yanaweza kupatikana katika encyclopedia.

Katika sura iliyotangulia, tuliangalia mifumo iliyounganishwa vizuri ya wasindikaji wengi yenye kumbukumbu iliyoshirikiwa, miundo ya data ya kernel iliyoshirikiwa, na dimbwi la pamoja ambalo michakato inaitwa kwa ajili ya utekelezaji. Mara nyingi, hata hivyo, ni kuhitajika, ili kuhakikisha kugawana rasilimali, kusambaza wasindikaji kwa namna ambayo hawana uhuru wa mazingira ya uendeshaji na hali ya uendeshaji. Tuseme, kwa mfano, mtumiaji wa kompyuta binafsi anahitaji kufikia faili ziko kwenye mashine kubwa, lakini wakati huo huo kudumisha udhibiti wa kompyuta binafsi. Ingawa programu zingine kama vile uuCP zinaauni uhamishaji wa faili wa mtandao na vitendaji vingine vya mtandao, matumizi yao hayatafichwa kutoka kwa mtumiaji kwa sababu mtumiaji anajua kuwa anafanya kazi kwenye mtandao. Kwa kuongezea, inapaswa kuzingatiwa kuwa programu kama wahariri wa maandishi haifanyi kazi na faili zilizofutwa kama zile za kawaida. Watumiaji wanapaswa kuwa na utendakazi wa kawaida wa mfumo wa UNIX na, isipokuwa adhabu zinazowezekana za utendakazi, hawapaswi kukumbana na ukiukaji wowote wa mpaka wa mashine. Kwa hiyo, kwa mfano, kazi ya kazi za mfumo wa wazi na wa kusoma na faili kwenye mashine za mbali haipaswi kutofautiana na kazi zao na faili za mifumo ya ndani.

Usanifu wa mfumo uliosambazwa umeonyeshwa kwenye Mchoro 13.1. Kila kompyuta iliyoonyeshwa kwenye takwimu ni moduli inayojitosheleza inayojumuisha CPU, kumbukumbu na viambajengo. Kuzingatia mtindo haujakiukwa ingawa kompyuta haina mfumo wa faili wa ndani: lazima iwe na vifaa vya pembeni vya mawasiliano na mashine zingine, na faili zote zinazomilikiwa zinaweza kupatikana kwenye kompyuta nyingine. Kumbukumbu ya kimwili inayopatikana kwa kila mashine haitegemei michakato inayoendeshwa kwenye mashine zingine. Kipengele hiki hutofautisha mifumo iliyosambazwa kutoka kwa mifumo mingi ya usindikaji iliyounganishwa vizuri iliyojadiliwa katika sura iliyotangulia. Ipasavyo, kernel ya mfumo kwenye kila mashine hufanya kazi kwa kujitegemea na hali ya nje ya uendeshaji wa mazingira yaliyosambazwa.

Kielelezo 13.1. Mfano wa mfumo na usanifu uliosambazwa


Mifumo iliyosambazwa, iliyoelezewa vizuri katika fasihi, imegawanywa jadi katika vikundi vifuatavyo:

Mifumo ya pembeni, ambayo ni vikundi vya mashine ambazo zina kawaida tofauti na zimeunganishwa na mashine moja (kawaida kubwa). Wachakataji wa pembeni hushiriki mzigo wao wa kazi na kichakataji cha kati na kusambaza simu zote kwa mfumo wa uendeshaji kwake. Madhumuni ya mfumo wa pembeni ni kuongeza utendakazi wa jumla wa mtandao na kuruhusu kichakataji kujitolea kwa mchakato mmoja katika mazingira ya uendeshaji ya UNIX. Mfumo unaendesha kama moduli tofauti; Tofauti na mifano mingine ya mfumo uliosambazwa, mifumo ya pembeni haina uhuru halisi, isipokuwa katika kesi zinazohusiana na utumaji wa mchakato na ugawaji wa kumbukumbu ya ndani.

Mifumo inayosambazwa kama vile "Newcastle", ikiruhusu mawasiliano ya mbali kwa kutumia majina ya faili za mbali kwenye maktaba (jina limechukuliwa kutoka kwa makala "Muunganisho wa Newcastle" - tazama). Faili zilizofutwa zina vipimo (jina la sehemu) ambalo lina herufi maalum au sehemu ya jina la ziada inayotangulia mzizi wa mfumo wa faili kwenye njia ya utaftaji. Utekelezaji wa njia hii hauhusishi kufanya mabadiliko kwenye msingi wa mfumo, kwa sababu hiyo ni rahisi zaidi kuliko njia nyingine zilizojadiliwa katika sura hii, lakini chini ya kubadilika.

Mifumo iliyosambazwa kabisa "ya uwazi", ambayo kufikia faili ziko kwenye mashine zingine, inatosha kutaja majina yao ya kawaida ya kiwanja; Ni jukumu la kernel kutambua faili hizi kuwa zimefutwa. Njia za utafutaji za faili, zilizotajwa katika majina yao yaliyohitimu, mipaka ya mashine kwenye sehemu za mlima, bila kujali ni pointi ngapi hizo ziliundwa wakati wa kuweka mifumo ya faili kwenye diski.

Katika sura hii tutaangalia usanifu wa kila modeli; habari zote zinazotolewa hazitokani na matokeo ya maendeleo maalum, lakini kwa habari iliyochapishwa katika makala mbalimbali za kiufundi. Hii inadhania kuwa kushughulikia, kuelekeza, kudhibiti mtiririko, kutambua makosa na kusahihisha ni wajibu wa moduli za itifaki na viendesha kifaa, kwa maneno mengine, kwamba kila muundo hautegemei mtandao unaotumiwa. Mifano ya kutumia vitendaji vya mfumo iliyotolewa katika sehemu inayofuata ya mifumo ya pembeni hufanya kazi vivyo hivyo kwa mifumo kama Newcastle na mifumo iliyo wazi kabisa, ambayo itajadiliwa baadaye; Kwa hiyo, tutawaangalia kwa undani mara moja, na katika sehemu zinazotolewa kwa aina nyingine za mifumo, tutazingatia hasa vipengele vinavyofautisha mifano hii kutoka kwa wengine wote.

13.1 WASANDIKA WA PEMBENI

Usanifu wa mfumo wa pembeni umeonyeshwa kwenye Mchoro 13.2. Madhumuni ya usanidi huu ni kuboresha utendakazi wa jumla wa mtandao kwa kusambaza upya michakato inayoendesha kati ya vichakataji vya kati na vya pembeni. Kila kichakataji cha pembeni hakina viunzi vingine vya ndani isipokuwa vile vinavyohitaji kuwasiliana na kichakataji cha kati. Mfumo wa faili na vifaa vyote viko kwenye processor ya kati. Hebu tuchukue kwamba michakato yote ya mtumiaji inaendesha kwenye processor ya pembeni na haisogei kati ya wasindikaji wa pembeni; Mara baada ya kuhamishiwa kwa processor, wanabaki juu yake hadi kukamilika. Kichakataji cha pembeni kina toleo jepesi la mfumo wa uendeshaji iliyoundwa kwa ajili ya kuchakata simu za ndani kwa mfumo, kudhibiti ukatizaji, ugawaji kumbukumbu, kufanya kazi na itifaki za mtandao na kiendesha kifaa kwa mawasiliano na kichakataji cha kati.

Mfumo unapoanzishwa kwenye kichakataji cha kati, punje hupakia mfumo wa uendeshaji wa ndani kwenye kila kichakataji cha pembeni kupitia njia za mawasiliano. Mchakato wowote unaoendeshwa kwenye pembezoni unahusishwa na mchakato wa satelaiti wa kichakataji cha kati (tazama); Wakati mchakato unaoendeshwa kwenye kichakataji cha pembeni huita kitendakazi cha mfumo ambacho kinahitaji huduma za kichakataji cha kati pekee, mchakato wa pembeni huwasiliana na mwandani wake na ombi hutumwa kwa kichakataji cha kati kwa usindikaji. Mchakato wa setilaiti hutekeleza utendakazi wa mfumo na kutuma matokeo kwa kichakataji cha pembeni. Uhusiano kati ya mchakato wa pembeni na mwandani wake ni sawa na uhusiano wa seva ya mteja tuliojadili kwa kina katika Sura ya 11: mchakato wa pembeni hufanya kama mteja wa mshirika wake, ambayo inasaidia kazi za mfumo wa faili. Katika kesi hii, mchakato wa seva ya mbali una mteja mmoja tu. Katika Sehemu ya 13.4 tutaangalia michakato ya seva ambayo ina wateja wengi.


Kielelezo 13.2. Usanidi wa Mfumo wa Pembeni


Kielelezo 13.3. Miundo ya ujumbe

Mchakato wa pembeni unapoita kitendakazi cha mfumo ambacho kinaweza kuchakatwa ndani ya nchi, kernel haihitaji kutuma ombi kwa mchakato shirikishi. Kwa mfano, ili kupata kumbukumbu ya ziada, mchakato unaweza kuita kazi ya sbrk kwa utekelezaji wa ndani. Walakini, ikiwa huduma za kitengo cha usindikaji cha kati zinahitajika, kwa mfano, kufungua faili, kernel husimba habari kuhusu vigezo vilivyopitishwa kwa kazi inayoitwa na hali ya utekelezaji wa mchakato katika ujumbe uliotumwa kwa mchakato wa mwenzi (Mchoro 13.3). . Ujumbe huo ni pamoja na ishara ambayo inafuata kwamba kazi ya mfumo inatekelezwa na mchakato wa satelaiti kwa niaba ya mteja, vigezo vinavyopitishwa kwa kazi hiyo, na data kuhusu mazingira ya utekelezaji wa mchakato (kwa mfano, nambari za kitambulisho za mtumiaji na kikundi), ambazo ni tofauti kwa kazi tofauti. Salio la ujumbe ni data ya urefu tofauti (kama vile jina la faili linalohitimu au data itakayoandikwa na chaguo la kukokotoa la uandishi).

Mchakato wa setilaiti husubiri maombi kutoka kwa mchakato wa pembeni; Inapopokea ombi, huamua ujumbe, huamua aina ya kazi ya mfumo, huitekeleza, na kubadilisha matokeo kuwa jibu ambalo linatumwa kwa mchakato wa pembeni. Jibu, pamoja na matokeo ya kazi ya mfumo, inajumuisha ujumbe wa hitilafu (ikiwa ipo), nambari ya ishara, na safu ya data ya urefu wa kutofautiana iliyo na, kwa mfano, habari iliyosomwa kutoka kwa faili. Mchakato wa pembeni husitisha hadi upokee jibu; inapopokea, huiondoa na kutuma matokeo kwa mtumiaji. Huu ni mpango wa jumla wa usindikaji wa simu kwa mfumo wa uendeshaji; Sasa hebu tuendelee kwa kuzingatia kwa kina zaidi kazi za kibinafsi.

Ili kueleza jinsi mfumo wa pembeni unavyofanya kazi, tutaangalia idadi ya vitendakazi: getppid, open, write, fork, exit na signal. Kitendaji cha getppid ni rahisi sana, kwani kinashughulika na ombi rahisi na fomu za majibu zinazobadilishwa kati ya vichakataji vya pembeni na vya kati. Kokwa kwenye kichakataji cha pembeni hutoa ujumbe unaoonyesha kuwa kitendakazi kilichoombwa ni kitendakazi cha getppid, na hutuma ombi kwa kichakataji cha kati. Mchakato wa setilaiti kwenye kichakataji cha kati husoma ujumbe kutoka kwa kichakataji cha pembeni, kubainisha aina ya utendaji kazi wa mfumo, kuutekeleza, na kupokea kitambulisho cha mzazi wake. Kisha hutoa jibu na kusambaza kwa mchakato wa pembeni unaosubiri mwisho mwingine wa laini ya mawasiliano. Kichakataji cha pembeni kinapopokea jibu, hukipitisha kwa mchakato ulioita kitendakazi cha mfumo wa getppid. Ikiwa mchakato wa pembeni huhifadhi data (kama vile kitambulisho cha mchakato wa mzazi) katika kumbukumbu ya ndani, si lazima kuwasiliana na mshirika wake hata kidogo.

Ikiwa kazi ya mfumo wa wazi inaitwa, mchakato wa pembeni hutuma ujumbe unaofanana kwa mshirika wake, unaojumuisha jina la faili na vigezo vingine. Ikifaulu, mchakato wa setilaiti hutenga faharisi na mahali pa kuingilia kwenye jedwali la faili, hutenga ingizo la jedwali la kifafanuzi la faili ya mtumiaji katika nafasi yake, na kurudisha kielezi cha faili kwenye mchakato wa pembeni. Wakati huu wote, kwa upande mwingine wa mstari wa mawasiliano, mchakato wa pembeni unasubiri majibu. Hana miundo yoyote aliyo nayo ambayo ingehifadhi habari kuhusu faili kufunguliwa; Ncha iliyorejeshwa kwa kufungua ni kielekezi cha ingizo katika jedwali la maelezo ya faili ya mtumiaji inayomilikiwa na mchakato shirikishi. Matokeo ya kazi yanaonyeshwa kwenye Mchoro 13.4.


Kielelezo 13.4. Kuita kitendakazi wazi kutoka kwa mchakato wa pembeni

Ikiwa kazi ya mfumo wa kuandika inaitwa, processor ya pembeni hutoa ujumbe unaojumuisha sifa ya kazi ya kuandika, maelezo ya faili, na kiasi cha data iliyoandikwa. Kisha, kutoka kwa nafasi ya mchakato wa pembeni, inakili data kwenye mchakato wa satelaiti kando ya mstari wa mawasiliano. Mchakato wa satelaiti huchambua ujumbe uliopokelewa, husoma data kutoka kwa mstari wa mawasiliano na kuiandika kwa faili inayolingana (maelezo yaliyomo kwenye ujumbe hutumiwa kama kiashiria cha faharisi na kiingilio juu ya ambayo kwenye jedwali la faili); Vitendo hivi vyote vinafanywa kwenye processor ya kati. Mwishoni mwa kazi yake, mchakato wa satelaiti hutuma ujumbe kwa mchakato wa pembeni kuthibitisha upokeaji wa ujumbe na una idadi ya byte za data zilizonakiliwa kwa mafanikio kwenye faili. Operesheni ya kusoma ni sawa; satelaiti inajulisha mchakato wa pembeni kuhusu idadi ya byte zilizosomwa (katika kesi ya kusoma data kutoka kwa terminal au kutoka kwa kituo, nambari hii hailingani kila wakati na nambari iliyoainishwa katika ombi). Ili kufanya kazi zote mbili, inaweza kuwa muhimu kutuma ujumbe wa habari mara kwa mara kwenye mtandao, ambayo imedhamiriwa na kiasi cha data iliyotumwa na ukubwa wa pakiti za mtandao.

Kazi pekee ambayo inahitaji marekebisho wakati wa kuendesha kwenye CPU ni kazi ya mfumo wa uma. Wakati mchakato unafanya kazi hii kwenye CPU, kernel huchagua processor ya pembeni kwa hiyo na kutuma ujumbe kwa mchakato maalum - seva, ikijulisha mwisho kwamba inakaribia kuanza kupakua mchakato wa sasa. Ikizingatiwa kuwa seva imekubali ombi, kernel hutumia kazi ya uma kuunda mchakato mpya wa pembeni, ikitenga kiingilio cha jedwali la mchakato na nafasi ya anwani. CPU hupakia nakala ya mchakato ulioita kitendakazi cha uma kwenye kichakataji cha pembeni, ikibatilisha nafasi mpya ya anwani iliyotengwa, kutoa satelaiti ya ndani ili kuwasiliana na mchakato mpya wa pembeni, na kutuma ujumbe kwa pembeni ili kuanzisha kaunta ya programu mchakato mpya. Mchakato wa satelaiti (kwenye CPU) ni mtoto wa mchakato ambao uliita kazi ya uma; Mchakato wa pembeni kitaalamu ni mtoto wa mchakato wa seva, lakini kimantiki ni mtoto wa mchakato ulioita kazi ya uma. Mchakato wa seva hauna muunganisho wa kimantiki na mtoto wake baada ya utendakazi wa uma kukamilika; Kazi pekee ya seva ni kusaidia katika kupakua mtoto. Kwa sababu ya kuunganisha kwa nguvu kati ya vipengele vya mfumo (wasindikaji wa pembeni hawana uhuru), mchakato wa pembeni na mchakato wa satelaiti una msimbo sawa wa kitambulisho. Uhusiano kati ya taratibu umeonyeshwa kwenye Mchoro 13.5: mstari unaoendelea unaonyesha uhusiano wa mzazi na mtoto, mstari wa dotted unaonyesha uhusiano kati ya washirika sawa.


Kielelezo 13.5. Utekelezaji wa uma kwenye CPU

Mchakato unapotekeleza utendakazi wa uma kwenye kichakataji cha pembeni, hutuma ujumbe kwa mwandani wake kwenye CPU, ambayo kisha hutekeleza mlolongo mzima wa vitendo vilivyoelezwa hapo juu. Satelaiti huchagua processor mpya ya pembeni na kufanya maandalizi muhimu ya kupakua picha ya mchakato wa zamani: hutuma ombi kwa mchakato wa pembeni wa mzazi kusoma picha yake, kwa kujibu ambayo usambazaji wa data iliyoombwa huanza mwisho mwingine. cha njia ya mawasiliano. Setilaiti husoma picha iliyotumwa na kuiandika tena kwa kizazi cha pembeni. Wakati upakuaji wa picha umekamilika, mchakato wa satelaiti hutekeleza kazi ya uma, na kuunda mtoto wake kwenye CPU, na kupitisha thamani ya kihesabu cha programu kwa mtoto wa pembeni ili wa mwisho ajue ni anwani gani ya kuanza kutekeleza. Kwa wazi, itakuwa bora ikiwa mtoto wa mchakato wa satelaiti alipewa mtoto wa pembeni kama mzazi, lakini kwa upande wetu, michakato iliyosababishwa inapata fursa ya kuendeshwa kwa wasindikaji wengine wa pembeni, sio tu ile ambayo iliundwa. . Uhusiano kati ya michakato baada ya kazi ya uma kukamilika imeonyeshwa kwenye Mchoro 13.6. Mchakato wa pembeni unapomaliza kazi yake, hutuma ujumbe unaolingana na mchakato wa satelaiti na pia huisha. Mpango wa kuzima hauwezi kutoka kwa mchakato shirikishi.


Kielelezo 13.6. Piga processor ya pembeni

Katika mifumo ya multiprocessor na uniprocessor, mchakato lazima ujibu ishara kwa njia ile ile: mchakato huo unakatisha kazi ya mfumo kabla ya kuangalia ishara, au, kinyume chake, baada ya kupokea ishara, mara moja huamka kutoka kwa hali iliyosimamishwa na kukatiza ghafla. utendaji kazi wa mfumo, ikiwa hii inaendana na kipaumbele ambacho alisimamishwa nacho. Kwa sababu mchakato wa setilaiti hufanya kazi za mfumo kwa niaba ya mchakato wa pembeni, lazima ijibu mawimbi kwa uratibu na mchakato wa pili. Ikiwa kwenye mfumo wa kichakataji kimoja mawimbi husababisha mchakato wa kusitisha utendakazi kwa njia isiyo ya kawaida, mchakato shirikishi kwenye mfumo wa vichakataji vingi UNAPASWA kufanya hivyo. Vile vile vinaweza kusema wakati ishara inasababisha mchakato wa kusitisha kazi yake kwa kutumia kazi ya kuondoka: mchakato wa pembeni hutoka na kutuma ujumbe unaofanana kwa mchakato wa mshirika, ambao, bila shaka, pia hutoka.

Mchakato wa pembeni unapoita utendakazi wa mfumo wa mawimbi, huhifadhi maelezo ya sasa katika majedwali ya ndani na kutuma ujumbe kwa mwandani wake kuarifu ikiwa mawimbi maalum yanafaa kukubaliwa au kupuuzwa. Mchakato shirikishi haujalishi kati ya ukatizaji wa mawimbi na kitendo chaguo-msingi. Jinsi mchakato unavyoitikia mawimbi hutegemea mambo matatu (Mchoro 13.7): iwapo mawimbi hufika wakati mchakato unatekeleza kitendakazi cha mfumo, kama utendakazi wa mawimbi unatumiwa kuonyesha kwamba mawimbi ya kupuuzwa, na kama ishara inatoka. kwenye kichakataji sawa cha pembeni au kwenye kichakataji kingine. Hebu tuendelee kuzingatia uwezekano mbalimbali.


algorithm ya sighandle /* algorithm ya usindikaji wa ishara */
ikiwa (mchakato wa sasa ni mwenzi wa mtu au una mfano)
ikiwa (ishara imepuuzwa)
ikiwa (ishara iliyopokelewa wakati wa utekelezaji wa kazi ya mfumo)
weka ishara mbele ya mchakato wa satelaiti;
tuma ujumbe wa ishara kwa mchakato wa pembeni;
mwingine ( /* mchakato wa pembeni */
/* ikiwa ishara ilipokelewa wakati wa utekelezaji wa kazi ya mfumo au la */
tuma ishara kwa mchakato wa mwenzi;
algorithm satellite_end_of_syscall /* kukomesha kitendakazi cha mfumo kinachoitwa na mchakato wa pembeni */
habari ya pembejeo: hakuna
habari ya pato: hakuna
ikiwa (kukatizwa kulitokea wakati kazi ya mfumo inatekelezwa)
kutuma ujumbe wa kukatiza au ishara kwa mchakato wa pembeni;
vinginevyo /* utekelezaji wa kazi ya mfumo haukukatizwa */
tuma majibu: washa bendera inayoonyesha kuwasili kwa ishara;

Kielelezo 13.7. Usindikaji wa Mawimbi katika Mfumo wa Pembeni


Wacha tuseme kwamba mchakato wa pembeni umesimamisha kazi yake wakati mchakato wa setilaiti unatekeleza utendakazi wa mfumo kwa niaba yake. Ikiwa ishara itatokea mahali pengine, mchakato wa satelaiti huigundua kabla ya mchakato wa pembeni kufanya. Kuna kesi tatu zinazowezekana.

1. Ikiwa, wakati wa kusubiri tukio fulani, mchakato wa satelaiti haukuingia katika hali iliyosimamishwa, ambayo ingetoka baada ya kupokea ishara, hufanya kazi ya mfumo hadi mwisho, kutuma matokeo ya utekelezaji kwa mchakato wa pembeni na. inaonyesha ni ishara gani ilipokea.

2. Ikiwa mchakato umeagiza kupuuza ishara ya aina hii, satelaiti inaendelea kufuata algorithm ya kutekeleza kazi ya mfumo bila kuacha hali ya kusimamishwa kwa longjmp. Jibu lililotumwa kwa mchakato wa pembeni halitakuwa na ujumbe wa kupokea ishara.

3. Ikiwa, baada ya kupokea ishara, mchakato wa satelaiti huzuia utekelezaji wa kazi ya mfumo (kupitia longjmp), inajulisha mchakato wa pembeni kuhusu hili na kuiambia nambari ya ishara.

Mchakato wa pembeni hutafuta jibu lililopokewa kwa taarifa kuhusu kupokea mawimbi na, ikiwa zipo, huchakata mawimbi kabla ya kuondoka kwenye utendaji kazi wa mfumo. Kwa hivyo, tabia ya mchakato kwenye mfumo wa wasindikaji wa aina nyingi ni sawa kabisa na tabia yake kwenye mfumo wa kichakataji-moja: hutoka bila kutoka kwa hali ya kernel, au huita kazi ya kushughulikia mawimbi iliyoainishwa na mtumiaji, au inapuuza ishara na kwa mafanikio. inakamilisha kazi ya mfumo.


Kielelezo 13.8. Katiza wakati wa kutekeleza kitendakazi cha mfumo

Tuseme, kwa mfano, kwamba mchakato wa pembeni unaita kazi ya kusoma kutoka kwa terminal inayohusishwa na kichakataji cha kati na kujisimamisha yenyewe wakati mchakato shirikishi ukifanya kazi hiyo (Mchoro 13.8). Mtumiaji akibonyeza kitufe cha kuvunja, msingi wa CPU hutuma ishara inayolingana kwa mchakato shirikishi. Ikiwa satelaiti ilikuwa katika hali iliyosimamishwa ikingojea kipande cha data kuingizwa kutoka kwenye terminal, mara moja hutoka katika hali hii na kuacha kutekeleza kazi ya kusoma. Katika jibu lake kwa ombi kutoka kwa mchakato wa pembeni, satelaiti inaripoti msimbo wa hitilafu na nambari ya ishara inayolingana na kukatiza. Mchakato wa pembeni unachambua majibu na, kwa kuwa ujumbe unaonyesha ishara ya usumbufu imefika, hutuma ishara yenyewe. Kabla ya kuondoka kwenye kipengele cha kukokotoa cha kusoma, kerneli ya pembeni hukagua mawimbi, hutambua ishara ya kukatiza kutoka kwa mchakato shirikishi, na kuichakata kama kawaida. Ikiwa, kama matokeo ya kupokea ishara ya usumbufu, mchakato wa pembeni hukatisha kazi yake kwa kutumia kazi ya kutoka, kazi hii inachukua huduma ya kuua mchakato wa rafiki. Mchakato wa pembeni ukikatiza mawimbi ya kukatiza, huita kitendakazi cha kushughulikia mawimbi kilichobainishwa na mtumiaji na kurudisha msimbo wa hitilafu kwa mtumiaji baada ya kuondoka kwenye chaguo la kukokotoa la kusoma. Kwa upande mwingine, ikiwa setilaiti inatekeleza utendakazi wa takwimu za mfumo kwa niaba ya mchakato wa pembeni, haitakatiza utekelezaji wake inapopokea mawimbi (kitendaji cha takwimu kimehakikishiwa kupona kutokana na kusimamishwa kwa aina yoyote kwa sababu ina muda mdogo wa kuisha. rasilimali). Satelaiti inakamilisha kazi na kurudisha nambari ya ishara kwenye mchakato wa pembeni. Mchakato wa pembeni hutuma ishara yenyewe na kuipokea kama pato kutoka kwa kazi ya mfumo.

Iwapo mawimbi yatatokea kwenye kichakataji cha pembeni wakati utendakazi wa mfumo unatekelezwa, mchakato wa pembeni hautajua kama udhibiti utarejea kwake hivi karibuni kutoka kwa mchakato shirikishi au kama wa pili utaingia katika hali ya kusimamishwa kwa muda usiojulikana. Mchakato wa pembeni hutuma ujumbe maalum kwa satelaiti, ikijulisha juu ya tukio la ishara. Msingi kwenye CPU hupunguza ujumbe na kutuma ishara kwa satelaiti, ambayo majibu yake ya kupokea ishara yameelezwa katika aya zilizopita (kuvunja kazi au kuikamilisha). Mchakato wa pembeni hauwezi kutuma ujumbe kwa setilaiti moja kwa moja kwa sababu setilaiti iko na shughuli nyingi katika kutekeleza utendakazi wa mfumo na haisomi data kutoka kwa laini ya mawasiliano.

Kwa kutumia mfano wa kipengele cha kukokotoa cha kusoma, mchakato wa pembeni haujui ikiwa mshirika wake anasubiri pembejeo kutoka kwa terminal au kufanya vitendo vingine. Mchakato wa pembeni hutuma ujumbe wa ishara kwa satelaiti: ikiwa satelaiti iko katika hali ya kusimamishwa na kipaumbele kinachoruhusu usumbufu, mara moja hutoka katika hali hii na kuacha kutekeleza kazi ya mfumo; vinginevyo, kazi inatekelezwa hadi kukamilika kwa mafanikio.

Hatimaye, zingatia kisa cha mawimbi kuwasili kwa wakati usiohusishwa na utekelezaji wa chaguo za kukokotoa za mfumo. Ikiwa ishara inatoka kwa kichakataji kingine, satelaiti huipokea kwanza na kutuma ujumbe wa ishara kwa mchakato wa pembeni, bila kujali ikiwa ishara inahusu mchakato wa pembeni au la. Kerneli ya pembeni inasimbua ujumbe na kutuma ishara kwa mchakato, ambayo hujibu kama kawaida. Ikiwa ishara inatoka kwa processor ya pembeni, mchakato hufanya vitendo vya kawaida bila kutumia huduma za satelaiti yake.

Mchakato wa pembeni unapotuma ishara kwa michakato mingine ya pembeni, husimba ujumbe wa kuua na kuutuma kwa mchakato shirikishi ambao hutekeleza kazi inayoitwa ndani ya nchi. Ikiwa baadhi ya michakato ambayo ishara imekusudiwa iko kwenye wasindikaji wengine wa pembeni, satelaiti zao zitapokea ishara (na kuguswa na risiti yake kwa njia iliyoelezwa hapo juu).

13.2 MAWASILIANO YA NEWCASTLE

Katika sehemu iliyotangulia, tuliangalia aina ya mfumo uliounganishwa sana, ambao una sifa ya kutuma simu zote kwa kazi za mfumo mdogo wa usimamizi wa faili unaotokea kwenye kichakataji cha pembeni kwa kichakataji cha mbali (kati). Sasa hebu tuendelee kuzingatia mifumo isiyounganishwa sana, ambayo inajumuisha mashine zinazofikia faili zilizo kwenye mashine zingine. Katika mtandao wa kompyuta binafsi na vituo vya kazi, kwa mfano, watumiaji mara nyingi hupata faili ziko kwenye mashine kubwa. Katika sehemu mbili zifuatazo, tutaangalia usanidi wa mfumo ambao kazi zote za mfumo zinafanywa katika mifumo ndogo ya ndani, lakini wakati huo huo inawezekana kupata faili (kupitia kazi za mfumo mdogo wa usimamizi wa faili) ziko kwenye mashine nyingine.

Mifumo hii hutumia mojawapo ya njia mbili zifuatazo ili kutambua faili zilizofutwa. Katika mifumo mingine, herufi maalum huongezwa kwa jina la faili kiwanja: kijenzi cha jina kinachotangulia herufi hii hutambulisha mashine, jina lililobaki hutambulisha faili iliyo kwenye mashine hii. Kwa hiyo, kwa mfano, jina la kiwanja


"sftig!/fs1/mjb/rje"


inabainisha faili "/fs1/mjb/rje" iliyoko kwenye mashine "sftig". Mpango huu wa utambuzi wa faili unafuata mkataba ulioanzishwa na programu ya uucp ya kuhamisha faili kati ya mifumo ya aina ya UNIX. Katika mpango mwingine, faili zilizofutwa zinatambuliwa kwa kuongeza kiambishi awali maalum kwa jina, kwa mfano:


/../sftig/fs1/mjb/rje


ambapo "/../" ni kiambishi awali kinachoonyesha kwamba faili imefutwa; sehemu ya pili ya jina la faili ni jina la mashine ya mbali. Mpango huu hutumia syntax inayojulikana ya majina ya faili katika mfumo wa UNIX, kwa hiyo, tofauti na mpango wa kwanza, hapa programu za watumiaji hazihitaji kukabiliana na kutumia majina ambayo yana muundo usio wa kawaida (tazama).


Kielelezo 13.9. Kuunda maombi kwa seva ya faili (processor)


Tutatumia sehemu iliyosalia ya sehemu hii kuangalia muundo wa mfumo unaotumia kiungo cha Newcastle, ambapo kernel haitambui faili za mbali; kazi hii imetolewa kabisa kwa subroutines kutoka kwa maktaba ya kawaida ya C, ambayo katika kesi hii hufanya jukumu la interface ya mfumo. Taratibu hizi huchanganua sehemu ya kwanza ya jina la faili, ambayo katika njia zote mbili za utambulisho zilizofafanuliwa ina dalili kwamba faili iko mbali. Huku ni kuondoka kutoka kwa kawaida ambapo taratibu za maktaba hazichanganui majina ya faili. Mchoro 13.9 unaonyesha jinsi maombi kwa seva ya faili yanavyoundwa. Ikiwa faili ni ya ndani, kernel ya mfumo wa ndani hushughulikia ombi kwa njia ya kawaida. Hebu fikiria kesi ya reverse:


open("/../sftig/fs1/mjb/rje/file", O_RDONLY);


Utaratibu wa wazi wa maktaba ya C huchanganua vipengele viwili vya kwanza vya jina la faili kiwanja na hujifunza kwamba faili inapaswa kutafutwa kwenye mashine ya mbali "sftig". Ili kuwa na habari juu ya ikiwa mchakato hapo awali ulikuwa na muunganisho na mashine fulani, subroutine huunda muundo maalum ambao unakumbuka ukweli huu, na ikiwa jibu ni hasi, huanzisha unganisho na seva ya faili inayoendesha kwenye kijijini. mashine. Mchakato unapotoa ombi lake la kwanza la usindikaji wa mbali, seva ya mbali inakubali ombi, huandika sehemu za msimbo wa kitambulisho cha mtumiaji na kikundi ikiwa ni lazima, na kuunda mchakato shirikishi wa kuchukua hatua kwa niaba ya mchakato wa mteja.

Ili kutimiza maombi ya mteja, setilaiti lazima iwe na ruhusa sawa za faili kwenye mashine ya mbali na mteja. Kwa maneno mengine, mtumiaji "mjb" lazima awe na haki sawa za kufikia faili za mbali na za ndani. Kwa bahati mbaya, inawezekana kwamba msimbo wa kitambulisho cha mteja "mjb" unaweza sanjari na msimbo wa utambulisho wa mteja mwingine kwenye mashine ya mbali. Kwa hivyo, wasimamizi wa mfumo kwenye mashine zinazofanya kazi kwenye mtandao wanapaswa kuhakikisha kwamba kila mtumiaji amepewa msimbo wa utambulisho ambao ni wa kipekee kwa mtandao mzima, au wafanye ubadilishaji wa msimbo wakati wa kuunda ombi la huduma ya mtandao. Ikiwa hii haijafanywa, mchakato wa satelaiti utakuwa na haki za mteja mwingine kwenye mashine ya mbali.

Suala nyeti zaidi ni kupata haki za mtumiaji bora kufanya kazi na faili zilizofutwa. Kwa upande mmoja, mteja wa superuser haipaswi kuwa na haki sawa juu ya mfumo wa mbali, ili usichanganye udhibiti wa usalama wa mfumo wa mbali. Kwa upande mwingine, baadhi ya programu, ikiwa hazijapewa haki za superuser, hazitaweza kufanya kazi. Mfano wa programu kama hiyo ni programu ya mkdir (tazama Sura ya 7), ambayo huunda saraka mpya. Mfumo wa mbali haungeruhusu mteja kuunda saraka mpya kwa sababu haki za mtumiaji mkuu hazitumiki kwenye tovuti ya mbali. Tatizo la kuunda saraka za mbali hutumika kama sababu kubwa ya kurekebisha kazi ya mfumo wa mkdir katika mwelekeo wa kupanua uwezo wake katika kuanzisha moja kwa moja miunganisho yote muhimu kwa mtumiaji. Walakini, kupata programu za setuid (ambazo ni pamoja na programu ya mkdir) kupata haki za mtumiaji bora juu ya faili zilizofutwa bado ni shida ya kawaida ambayo inahitaji kushughulikiwa. Labda suluhisho bora la tatizo hili litakuwa kuweka sifa za ziada kwa faili zinazoelezea upatikanaji wao na wakubwa wa mbali; Kwa bahati mbaya, hii ingehitaji mabadiliko katika muundo wa faharisi ya diski (katika suala la kuongeza sehemu mpya) na ingeleta mkanganyiko mwingi katika mifumo iliyopo.

Ratiba ya wazi ikikamilika kwa mafanikio, maktaba ya ndani huacha alama inayolingana katika muundo unaoweza kufikiwa na mtumiaji ulio na anwani ya nodi ya mtandao, kitambulisho cha mchakato wa setilaiti, kifafanuzi cha faili na maelezo mengine sawa. Taratibu za maktaba ya kusoma na kuandika huamua, kulingana na maelezo, ikiwa faili imefutwa, na ikiwa jibu ni chanya, hutuma ujumbe kwa satelaiti. Mchakato wa mteja huingiliana na mshirika wake katika matukio yote ya upatikanaji wa kazi za mfumo zinazohitaji huduma za mashine ya mbali. Ikiwa mchakato unapata faili mbili ziko kwenye mashine moja ya mbali, hutumia satelaiti moja, lakini ikiwa faili ziko kwenye mashine tofauti, hutumia satelaiti mbili: moja kwenye kila mashine. Satelaiti mbili pia hutumiwa wakati michakato miwili inapata faili kwenye mashine ya mbali. Wakati wa kupiga simu kitendakazi cha mfumo kupitia setilaiti, mchakato huu hutoa ujumbe unaojumuisha nambari ya utendaji kazi, jina la njia ya utafutaji, na maelezo mengine muhimu sawa na yaliyojumuishwa katika muundo wa ujumbe katika mfumo wenye vichakataji vya pembeni.

Utaratibu wa kufanya shughuli kwenye saraka ya sasa ni ngumu zaidi. Wakati mchakato unapochagua saraka ya mbali kama saraka ya sasa, utaratibu wa maktaba hutuma ujumbe unaofanana kwa satelaiti, ambayo hubadilisha saraka ya sasa, na utaratibu unakumbuka kuwa saraka iko mbali. Katika visa vyote ambapo jina la njia ya utaftaji huanza na herufi nyingine isipokuwa kufyeka (/), utaratibu hutuma jina kwa mashine ya mbali, ambapo mchakato mwenza hufuata njia inayoanzia kwenye saraka ya sasa. Ikiwa saraka ya sasa ni ya ndani, utaratibu hupitisha tu jina la njia ya utafutaji kwenye kernel ya mfumo wa ndani. Kazi ya mfumo wa chroot hufanya vile vile kwenye saraka ya mbali, lakini utekelezaji wake kwenye kernel ya mfumo wa ndani huenda bila kutambuliwa; kusema madhubuti, mchakato unaweza kupuuza operesheni hii, kwani maktaba tu ndio hurekodi utekelezaji wake.

Mchakato unapoita kitendakazi cha uma, utaratibu wa maktaba unaolingana hutuma ujumbe kwa kila setilaiti. Michakato ya setilaiti hufanya operesheni ya uma na kutuma vitambulisho vya watoto wao kwa mteja mzazi. Mchakato wa mteja huendesha kazi ya mfumo wa uma, ambayo huhamisha udhibiti kwa mtoto aliyezalishwa; mtoto wa ndani hufanya mazungumzo na satelaiti ya mtoto ya mbali, ambayo anwani zake huhifadhiwa na utaratibu wa maktaba. Ufafanuzi huu wa kazi ya uma hurahisisha michakato ya satelaiti kudhibiti faili zilizo wazi na saraka za sasa. Wakati mchakato wa kufanya kazi na faili za mbali unatoka (kwa kupiga kazi ya kuondoka), utaratibu hutuma ujumbe kwa wenzao wote wa mbali ili wafanye hivyo wakati wanapokea ujumbe. Vipengele vingine vya utekelezaji wa kazi za mfumo wa exec na kutoka vimefunikwa katika mazoezi.

Faida ya mawasiliano ya aina ya Newcastle ni kwamba ufikiaji wa mchakato wa faili za mbali unakuwa "wazi" (usioonekana kwa mtumiaji), na hakuna mabadiliko yanayohitajika kufanywa kwa msingi wa mfumo. Hata hivyo, maendeleo haya pia yana idadi ya hasara. Kwanza kabisa, utekelezaji wake unaweza kupunguza utendaji wa mfumo. Kutokana na matumizi ya maktaba ya C iliyopanuliwa, kiasi cha kumbukumbu kinachotumiwa na kila mchakato huongezeka, hata ikiwa mchakato haupati faili za mbali; Maktaba huiga vitendaji vya kernel na inahitaji nafasi zaidi ya kumbukumbu. Kuongezeka kwa ukubwa wa michakato husababisha muda mrefu wa kuanza na kunaweza kusababisha ugomvi zaidi kwa rasilimali za kumbukumbu, kuruhusu kazi kupangwa na kupangwa mara kwa mara. Maombi ya ndani yatatekelezwa polepole zaidi kwa sababu ya kuongezeka kwa muda wa kila ombi kwa kernel; kushuka kunaweza pia kutokea katika usindikaji wa maombi ya mbali, gharama ya kutuma kwa mtandao huongezeka. Uchakataji wa ziada wa maombi ya mbali katika kiwango cha mtumiaji huongeza idadi ya swichi za muktadha, upakuaji na uendeshaji wa kurasa. Hatimaye, ili kufikia faili za mbali, programu lazima zijazwe tena na maktaba mpya; programu za zamani na moduli za vitu vilivyotolewa hazitaweza kufanya kazi na faili zilizofutwa bila hii. Hasara hizi zote hazipo katika mfumo ulioelezwa katika sehemu inayofuata.

13.3 "UWAZI" MIFUMO YA FAILI ILIYOGAWANYWA

Neno "usambazaji wa uwazi" linamaanisha kwamba watumiaji wanaofanya kazi kwenye mashine moja wanaweza kufikia faili zilizo kwenye mashine nyingine bila kutambua kwamba kwa kufanya hivyo wanavuka mipaka ya mashine, kama vile wanavyofanya kwenye mashine yao wenyewe wakati wa kusonga kutoka sehemu moja ya faili hadi nyingine. pointi za mlima wa msalaba. Majina ambayo mchakato wa kufikia faili ziko kwenye mashine za mbali ni sawa na majina ya faili za ndani: hazina vibambo tofauti. Katika usanidi ulioonyeshwa kwenye Mchoro 13.10, saraka ya /usr/src inayomilikiwa na mashine B imewekwa kwenye saraka ya /usr/src inayomilikiwa na mashine A. Mipangilio hii ni rahisi ikiwa ungependa kutumia msimbo wa chanzo sawa wa mfumo, ambao uko katika jadi. saraka ya "/usr/src". Watumiaji wanaotumia mashine A wanaweza kufikia faili zilizo kwenye mashine B kwa kutumia sintaksia ya kawaida ya jina la faili (kwa mfano: "/usr/src/cmd/login.c"), na kernel yenyewe huamua ikiwa faili itafutwa au ya ndani. Watumiaji kwenye mashine B wanaweza kufikia faili zao za ndani (bila kujua kwamba faili zile zile zinaweza pia kufikiwa na watumiaji kwenye mashine A), lakini kwa upande mwingine hawana ufikiaji wa faili zilizo kwenye mashine A. Bila shaka, chaguzi nyingine zinawezekana, hasa. zile ambazo mifumo yote ya mbali imewekwa kwenye mzizi wa mfumo wa ndani, kuruhusu watumiaji kufikia faili zote kwenye mifumo yote.


Kielelezo 13.10. Mifumo ya faili baada ya kupachika kwa mbali

Kufanana kati ya kuweka mifumo ya faili za ndani na kufichua mifumo ya faili ya mbali kulisababisha urekebishaji wa kazi ya kupachika kwa mifumo ya faili ya mbali. Katika kesi hii, kernel ina jedwali la kupanuka la umbizo lililowekwa. Kwa kufanya kazi ya mlima, kernel hupanga muunganisho wa mtandao na mashine ya mbali na huhifadhi habari zinazoonyesha uunganisho huu kwenye meza ya mlima.

Shida ya kufurahisha ni ya njia ambazo ni pamoja na "..". Ikiwa mchakato utafanya saraka ya sasa kwenye mfumo wa faili wa mbali, matumizi ya baadaye ya ".." katika jina yatarudisha mchakato kwenye mfumo wa faili wa ndani badala ya kuiruhusu kufikia faili juu ya saraka ya sasa. Kurudi tena kwa Mchoro 13.10, kumbuka kuwa wakati mchakato wa mashine A, ikiwa imechagua hapo awali saraka "/usr/src/cmd" iliyoko kwenye mfumo wa faili wa mbali kama saraka ya sasa, hutekeleza amri.



saraka ya sasa itakuwa saraka ya mizizi ya mashine A, si mashine B. Algorithm ya namei inayoendesha kwenye kernel ya mfumo wa mbali, ikiwa imepokea mfuatano wa herufi "..", hukagua kama mchakato wa kupiga simu ni wakala wa mchakato wa mteja, na ikiwa jibu ni chanya, huweka, ikiwa mteja anashughulikia saraka ya sasa ya kufanya kazi kama mzizi wa mfumo wa faili wa mbali.

Mawasiliano na mashine ya mbali huchukua moja ya aina mbili: simu ya utaratibu wa mbali au simu ya kazi ya mfumo wa mbali. Katika fomu ya kwanza, kila utaratibu wa punje unaoshughulika na faharasa hukagua ikiwa faharasa inaelekeza kwenye faili ya mbali na, ikiwa ni hivyo, kutuma ombi kwa mashine ya mbali ili kutekeleza operesheni iliyobainishwa. Mpango huu unafaa kwa kawaida katika muundo wa abstract wa usaidizi wa mifumo ya faili ya aina mbalimbali, iliyoelezwa katika sehemu ya mwisho ya Sura ya 5. Hivyo, kupata faili ya mbali inaweza kuanzisha uhamisho wa ujumbe kadhaa kwenye mtandao, idadi ambayo imedhamiriwa na idadi ya shughuli zilizotajwa kwenye faili, na ongezeko la sambamba la wakati wa kukabiliana na ombi, kwa kuzingatia muda wa kusubiri uliokubaliwa kwenye mtandao. Kila seti ya utendakazi wa mbali inajumuisha angalau vitendo vya kufunga fahirisi, kuhesabu marejeleo, n.k. Ili kuboresha kielelezo, suluhu mbalimbali za uboreshaji zimependekezwa kuhusiana na kuchanganya shughuli kadhaa katika ombi moja (ujumbe) na kuhifadhi data muhimu zaidi ( sentimita. ).


Kielelezo 13.11. Kufungua faili ya mbali


Fikiria mchakato unaofungua faili ya mbali "/usr/src/cmd/login.c", ambapo "src" ndio sehemu ya kupachika. Kwa kuchanganua jina la faili (kwa kutumia mpango wa namei-iget), kernel hutambua kuwa faili imefutwa na kutuma ombi kwa mashine ambako iko ili kupata index iliyofungwa. Baada ya kupokea jibu linalohitajika, kernel ya ndani huunda nakala ya faharisi kwenye kumbukumbu inayolingana na faili ya mbali. Kisha kernel huangalia haki muhimu za kufikia faili (kusoma, kwa mfano), kwa kutuma ujumbe mwingine kwa mashine ya mbali. Utekelezaji wa algoriti iliyo wazi huendelea kama ilivyopangwa katika Sura ya 5, kutuma ujumbe kwa mashine ya mbali inavyohitajika hadi kanuni ikamilike na faharasa ikomeshwe. Uhusiano kati ya miundo ya data ya kernel mwishoni mwa algorithm iliyo wazi imeonyeshwa kwenye Mchoro 13.11.

Ikiwa mteja anaita kazi ya mfumo wa kusoma, kernel ya mteja inafunga faharisi ya ndani, inatoa ombi la kufuli kwa faharisi ya mbali, itatoa ombi la kusoma kwa data, inakili data kwa kumbukumbu ya ndani, inatoa ombi la kutolewa kwa faharisi ya mbali, na hutoa faharasa ya ndani. Mpango huu unalingana na semantics ya kernel iliyopo ya processor moja, lakini mzunguko wa matumizi ya mtandao (simu kadhaa kwa kila kazi ya mfumo) hupunguza utendaji wa mfumo mzima. Hata hivyo, ili kupunguza trafiki ya mtandao, shughuli nyingi zinaweza kuunganishwa kuwa ombi moja. Katika mfano na kazi ya kusoma, mteja anaweza kutuma ombi moja la jumla la "kusoma" kwa seva, na seva yenyewe, wakati wa kutekeleza, hufanya uamuzi wa kukamata na kutolewa index. Kupunguza trafiki ya mtandao pia kunaweza kupatikana kwa kutumia vibafa vya mbali (kama ilivyojadiliwa hapo juu), lakini uangalifu lazima uchukuliwe ili kuhakikisha kuwa vitendakazi vya faili vya mfumo vinavyotumia vibafa hivi vinaendeshwa ipasavyo.

Katika fomu ya pili ya mawasiliano na mashine ya mbali (wito kwa kazi ya mfumo wa mbali), kernel ya ndani hugundua kuwa kazi ya mfumo inahusu faili ya mbali na kutuma vigezo vilivyoainishwa katika simu yake kwa mfumo wa mbali, ambao hufanya kazi. na kurejesha matokeo kwa mteja. Mashine ya mteja hupokea matokeo ya kazi na kuondoka kwenye hali ya simu. Kazi nyingi za mfumo zinaweza kufanywa kwa kutumia ombi moja tu la mtandao na kupokea jibu ndani ya muda unaofaa, lakini sio vipengele vyote vinavyofaa katika mtindo huu. Kwa mfano, baada ya kupokea ishara fulani, kernel huunda faili kwa mchakato unaoitwa "msingi" (Sura ya 7). Uundaji wa faili hii hauhusiani na kazi maalum ya mfumo, lakini inakamilisha shughuli kadhaa kama vile kuunda faili, kuangalia haki za ufikiaji, na kufanya shughuli kadhaa za uandishi.

Katika kesi ya kazi ya mfumo wa wazi, ombi la kutekeleza kazi iliyotumwa kwa mashine ya mbali inajumuisha sehemu ya jina la faili, sehemu iliyobaki ya jina la njia ya utafutaji ambayo inatofautisha faili ya mbali, na bendera mbalimbali. Katika mfano wa awali wa kufungua faili "/usr/src/cmd/login.c", kernel hutuma jina "cmd/login.c" kwa mashine ya mbali. Ujumbe huo pia unajumuisha data ya utambulisho, kama vile misimbo ya utambulisho ya mtumiaji na kikundi, muhimu ili kuthibitisha haki za ufikiaji wa faili kwenye mashine ya mbali. Ikiwa jibu litapokelewa kutoka kwa mashine ya mbali inayoonyesha kuwa kazi iliyofunguliwa ilifanikiwa, kernel ya ndani huchagua fahirisi ya bure kwenye kumbukumbu ya mashine ya ndani na kuiweka alama kama fahirisi ya faili ya mbali, huhifadhi taarifa kuhusu mashine ya mbali na faharasa ya mbali. , na mara kwa mara hutenga ingizo jipya kwenye jedwali la faili. Ikilinganishwa na faharasa halisi kwenye mashine ya mbali, faharasa inayomilikiwa na mashine ya ndani ni rasmi na haikiuki usanidi wa kielelezo, ambao kwa ujumla ni sawa na usanidi unaotumiwa wakati wa kuita utaratibu wa mbali (Mchoro 13.11). Ikiwa kitendakazi kinachoitwa na mchakato kinapata faili ya mbali kwa mpini wake, kernel ya ndani hujifunza kutoka kwa index (ya ndani) kwamba faili iko mbali, hutengeneza ombi ambalo linajumuisha kazi inayoitwa, na kuituma kwa mashine ya mbali. Ombi lina pointer kwa index ya mbali, ambayo mchakato wa satelaiti unaweza kutambua faili ya mbali yenyewe.

Baada ya kupokea matokeo ya kutekeleza kazi yoyote ya mfumo, kernel inaweza kugeukia huduma za programu maalum ya kusindika (ikikamilika ambayo kernel itamaliza kufanya kazi na kazi), kwa sababu usindikaji wa ndani wa matokeo yanayotumiwa katika processor moja. mfumo sio mzuri kila wakati kwa mfumo wenye vichakataji vingi. Matokeo yake, mabadiliko yanawezekana katika semantics ya algorithms ya mfumo yenye lengo la kutoa msaada kwa ajili ya utekelezaji wa kazi za mfumo wa mbali. Hata hivyo, wakati huo huo, mtiririko wa chini wa ujumbe huzunguka kwenye mtandao, kuhakikisha muda wa chini wa majibu ya mfumo kwa maombi yanayoingia.

13.4 MODEL ILIYOSAMBAZWA BILA TARATIBU ZA KUHAMISHA

Kutumia michakato ya uhamishaji (michakato ya satelaiti) katika mfumo uliosambazwa kwa uwazi hurahisisha kufuatilia faili za mbali, lakini jedwali la mchakato wa mfumo wa mbali umejaa michakato ya satelaiti ambayo haifanyi kazi mara nyingi. Katika mipango mingine, michakato maalum ya seva hutumiwa kusindika maombi ya mbali (tazama na). Mfumo wa mbali una seti (dimbwi) ya michakato ya seva ambayo huwapa mara kwa mara kushughulikia maombi yanayoingia ya mbali. Baada ya kuchakata ombi, mchakato wa seva hurudi kwenye dimbwi na kuwa tayari kushughulikia maombi mengine. Seva haihifadhi muktadha wa mtumiaji kati ya maombi mawili, kwa sababu inaweza kushughulikia maombi kutoka kwa michakato kadhaa mara moja. Kwa hiyo, kila ujumbe unaofika kutoka kwa mchakato wa mteja lazima ujumuishe taarifa kuhusu mazingira ya utekelezaji wake, yaani: misimbo ya utambulisho wa mtumiaji, saraka ya sasa, ishara, n.k. Michakato ya satellite hupokea data hii wakati wa kuonekana kwao au wakati wa utekelezaji wa kazi za mfumo.

Wakati mchakato unafungua faili ya mbali, kernel ya mfumo wa mbali inapeana faharisi kwa marejeleo yanayofuata ya faili. Mashine ya ndani ina jedwali la maelezo ya faili ya mtumiaji, jedwali la faili, na jedwali la faharasa yenye seti ya kawaida ya maingizo, yenye ingizo katika jedwali la faharasa linalotambulisha mashine ya mbali na faharasa ya mbali. Katika hali ambapo utendakazi wa mfumo (kwa mfano, soma) unatumia kielezi cha faili, kernel hutuma ujumbe unaoelekeza kwenye ingizo la mbali lililowekwa hapo awali na kusambaza taarifa zinazohusiana na mchakato: msimbo wa kitambulisho cha mtumiaji, ukubwa wa juu unaoruhusiwa wa faili, n.k. Ikiwa kidhibiti cha mbali. mashine ina mchakato wa seva, mwingiliano na mteja huchukua fomu iliyoelezwa hapo awali, hata hivyo, uhusiano kati ya mteja na seva huanzishwa tu kwa muda wa kazi ya mfumo.

Ukitumia seva badala ya michakato ya setilaiti, kudhibiti mtiririko wa data, mawimbi na vifaa vya mbali kunaweza kuwa ngumu zaidi. Maombi yanayofika kwa idadi kubwa kwa mashine ya mbali kwa kukosekana kwa idadi ya kutosha ya seva lazima iwekwe kwenye foleni. Hii inahitaji itifaki ya kiwango cha juu kuliko ile inayotumika kwenye mtandao mkuu. Katika modeli ya setilaiti, kwa upande mwingine, upakiaji wa ombi huondolewa kwa sababu maombi yote ya mteja yanachakatwa kwa usawazishaji. Mteja anaweza kuwa na angalau ombi moja linalosubiri.

Kushughulikia ishara zinazokatiza utekelezaji wa kazi ya mfumo pia inakuwa ngumu zaidi wakati wa kutumia seva, kwani mashine ya mbali lazima itafute seva inayofaa ili kuhudumia kazi hiyo. Haiwezekani hata kwamba, kwa sababu ya shughuli nyingi za seva zote, ombi la kutekeleza kitendakazi cha mfumo liko katika hali ya uchakataji. Masharti ya ushindani kutokea pia hutokea wakati seva inarudisha matokeo ya kutekeleza kitendakazi cha mfumo kwenye mchakato wa kupiga simu na jibu la seva linajumuisha kutuma ujumbe unaolingana wa kuashiria kupitia mtandao. Kila ujumbe lazima uweke alama kwa njia ambayo mfumo wa mbali unaweza kuitambua na, ikiwa ni lazima, kukatiza kazi ya michakato ya seva. Wakati wa kutumia satelaiti, mchakato unaoshughulikia ombi la mteja hutambuliwa moja kwa moja, na wakati ishara inapokelewa, kuangalia ikiwa ombi limechakatwa au la si vigumu.

Hatimaye, ikiwa kitendakazi cha mfumo kinachoitwa na mteja husababisha seva kusitisha kwa muda usiojulikana (kwa mfano, inaposoma data kutoka kwa terminal ya mbali), seva haiwezi kuchakata maombi mengine, na hivyo kufungia dimbwi la seva. Ikiwa michakato kadhaa itafikia vifaa vya mbali mara moja na ikiwa idadi ya seva ni mdogo kutoka juu, shida inayoonekana kabisa hutokea. Hii haifanyiki kwa satelaiti kwa sababu setilaiti imetengwa kwa kila mchakato wa mteja. Suala jingine linalohusiana na matumizi ya seva kwa vifaa vya mbali litajadiliwa katika Zoezi 13.14.

Licha ya faida zinazotolewa na utumiaji wa michakato ya satelaiti, hitaji la maingizo ya meza ya mchakato wa bure katika mazoezi inakuwa kali sana hivi kwamba katika hali nyingi bado wanaamua kutumia huduma za michakato ya seva kushughulikia maombi ya mbali.


Kielelezo 13.12. Mchoro wa dhana ya mwingiliano na faili za mbali kwenye kiwango cha kernel

13.5 HITIMISHO

Katika sura hii, tulichunguza miradi mitatu ya kufanya kazi na faili zilizo kwenye mashine za mbali, ambazo hushughulikia mifumo ya faili ya mbali kama ugani wa moja ya ndani. Tofauti za usanifu kati ya mipango hii zinaonyeshwa kwenye Mchoro 13.12. Wote, kwa upande wake, hutofautiana na mifumo ya multiprocessor iliyoelezwa katika sura iliyopita kwa kuwa hapa wasindikaji hawashiriki kumbukumbu ya kimwili. Mfumo wa kichakataji wa pembeni unajumuisha seti iliyounganishwa vizuri ya vichakataji ambavyo hushiriki rasilimali za faili kwenye kichakataji cha kati. Mawasiliano ya aina ya Newcastle hutoa ufikiaji wa siri ("uwazi") kwa faili za mbali, lakini si kupitia kernel ya mfumo wa uendeshaji, lakini kupitia matumizi ya maktaba maalum ya C. Kwa sababu hii, mipango yote ambayo ina nia ya kutumia aina hii ya mawasiliano lazima irudishwe, ambayo kwa ujumla ni hasara kubwa ya mpango huu. Umbali wa faili unaonyeshwa na mlolongo maalum wa wahusika unaoelezea mashine ambayo faili iko, na hii ni sababu nyingine inayozuia uhamishaji wa programu.

Katika mifumo iliyosambazwa ya uwazi, marekebisho ya kazi ya mfumo wa mlima hutumiwa kufikia faili za mbali. Fahirisi kwenye mfumo wa ndani zimewekwa alama kama zikirejelea faili za mbali, na kernel ya ndani hutuma ujumbe kwa mfumo wa mbali unaoelezea utendaji kazi wa mfumo ulioombwa, vigezo vyake, na faharasa ya mbali. Mawasiliano katika mfumo uliosambazwa wa uwazi unasaidiwa kwa aina mbili: kwa njia ya simu ya utaratibu wa mbali (ujumbe hutumwa kwa mashine ya mbali iliyo na orodha ya shughuli zinazohusiana na index) na kwa namna ya simu kwa mfumo wa mbali. kazi (ujumbe unaelezea kazi iliyoombwa). Sehemu ya mwisho ya sura inachunguza masuala yanayohusiana na usindikaji maombi ya mbali kwa kutumia michakato ya satelaiti na seva.

13.6 MAZOEZI

*1. Eleza utekelezaji wa kazi ya mfumo wa kuondoka kwenye mfumo na wasindikaji wa pembeni. Je! ni tofauti gani kati ya kesi hii na wakati mchakato unaisha baada ya kupokea ishara isiyoeleweka? Je, kernel inapaswaje kutupa yaliyomo kwenye kumbukumbu?

2. Taratibu haziwezi kupuuza ishara za SIGKILL; eleza kile kinachotokea katika mfumo wa pembeni wakati mchakato unapokea ishara kama hiyo.

*3. Eleza utekelezaji wa utendaji wa mfumo wa exec kwenye mfumo wenye vichakataji vya pembeni.

*4. Je, kichakataji cha kati kinapaswa kusambaza vipi michakato kati ya vichakataji vya pembeni ili kusawazisha mzigo wa jumla?

*5. Ni nini hufanyika ikiwa kichakataji cha pembeni hakina kumbukumbu ya kutosha kushughulikia michakato yote iliyobadilishwa kwake? Je! michakato inapaswa kupakuliwa na kubadilishwa kwenye mtandao?

6. Fikiria mfumo ambao maombi kwa seva ya faili ya mbali hutumwa ikiwa kiambishi awali maalum kimegunduliwa katika jina la faili. Acha mchakato uite kazi execl("/../sftig/bin/sh", "sh", 0); Inayoweza kutekelezwa inakaa kwenye mashine ya mbali, lakini lazima itekelezwe kwenye mfumo wa ndani. Eleza jinsi moduli ya mbali inavyohamishwa kwenye mfumo wa ndani.

7. Ikiwa msimamizi anahitaji kuongeza mashine mpya kwenye mfumo uliopo uliounganishwa na Newcastle, ni ipi njia bora ya kufahamisha moduli za maktaba ya C kuhusu hili?

*8. Wakati utekelezaji unatekelezwa, kernel hufuta nafasi ya anwani ya mchakato, ikijumuisha jedwali za maktaba zinazotumiwa na kiungo cha Newcastle kufuatilia marejeleo ya faili za mbali. Baada ya kutekeleza chaguo hili, mchakato lazima uhifadhi uwezo wa kufikia faili hizi kwa vishikizo vyao vya zamani. Eleza utekelezaji wa wakati huu.

*9. Kama inavyoonyeshwa katika Sehemu ya 13.2, kupiga simu kitendakazi cha mfumo wa kutoka kwenye mifumo iliyo na muunganisho wa Newcastle husababisha ujumbe kutumwa kwa mchakato shirikishi, na kuufanya usitishwe. Hii inafanywa katika kiwango cha kawaida cha maktaba. Ni nini hufanyika wakati mchakato wa ndani unapokea ishara inayoiambia kutoka kwa hali ya kernel?

*10. Jinsi gani, kwenye mfumo ulio na kiunga cha Newcastle ambapo faili za mbali zinatambuliwa kwa kuongeza kiambishi awali maalum kwa jina la faili, mtumiaji anaweza kutaja sehemu ya ".." (saraka ya mzazi) ya jina la faili ili kupita sehemu ya mbali ya mlima?

11. Kutoka kwa Sura ya 7, tunajua kwamba ishara mbalimbali huleta mchakato wa kutupa yaliyomo kwenye kumbukumbu kwenye saraka ya sasa. Nini kifanyike ikiwa saraka ya sasa inatoka kwa mfumo wa faili wa mbali? Je, ungetoa jibu gani ikiwa mfumo unatumia muunganisho wa aina ya Newcastle?

*12. Je, kunaweza kuwa na athari gani kwa michakato ya ndani ikiwa michakato yote ya satelaiti au seva ziliondolewa kwenye mfumo?

*13. Fikiria jinsi mfumo unaosambazwa kwa uwazi unavyoweza kutekeleza algoriti ya kiungo, ambayo inaweza kuchukua majina mawili ya faili za mbali kama vigezo, na algoriti ya exec, ambayo inahusisha kutekeleza shughuli nyingi za usomaji wa ndani. Fikiria aina mbili za mawasiliano: simu ya utaratibu wa mbali na simu ya kazi ya mfumo wa mbali.

*14. Wakati wa kufikia kifaa, mchakato wa seva unaweza kuingia katika hali ya kusimamishwa, ambayo itaamshwa na dereva wa kifaa. Kwa kawaida, ikiwa idadi ya seva ni mdogo, mfumo hautaweza tena kukidhi maombi ya mashine ya ndani. Njoo na muundo unaotegemeka ili si michakato yote ya seva kusimamishwa wakati wa kusubiri I/O inayohusiana na kifaa ikamilike. Chaguo za kukokotoa za mfumo hazitaacha kutekeleza wakati seva zote ziko na shughuli.


Kielelezo 13.13. Usanidi na seva ya terminal

*15. Mtumiaji anapoingia kwenye mfumo, nidhamu ya mstari wa mwisho huhifadhi taarifa kwamba terminal ni waendeshaji terminal inayoongoza kundi la michakato. Kwa sababu hii, wakati mtumiaji anabonyeza kitufe cha "kuvunja" kwenye kibodi cha terminal, michakato yote kwenye kikundi hupokea ishara ya kukatiza. Fikiria usanidi wa mfumo ambao vituo vyote vimeunganishwa kimwili na mashine moja, lakini usajili wa mtumiaji unatekelezwa kimantiki kwenye mashine nyingine (Mchoro 13.13). Katika kila kesi ya mtu binafsi, mfumo huunda mchakato wa getty kwa terminal ya mbali. Ikiwa maombi kwa mfumo wa mbali yanasindika kwa kutumia seti ya michakato ya seva, ni lazima ieleweke kwamba wakati utaratibu wa wazi unafanywa, seva inachaacha kusubiri uunganisho. Wakati kazi iliyofunguliwa inakamilika, seva inarudi kwenye bwawa la seva, na kuvunja muunganisho wake na terminal. Je, ishara ya kukatiza inasababishwa vipi na kubonyeza kitufe cha "kuvunja" hutumwa kwa anwani za michakato iliyojumuishwa katika kikundi kimoja?

*16. Kushiriki kumbukumbu ni kipengele asilia kwa mashine za ndani. Kutoka kwa mtazamo wa kimantiki, ugawaji wa eneo la kawaida la kumbukumbu ya kimwili (ya ndani au ya mbali) inaweza pia kufanywa kwa michakato ya mashine tofauti. Eleza utekelezaji wa wakati huu.

*17. Kanuni za upakuaji na upakuaji kwenye ombi lililojadiliwa katika Sura ya 9 huchukulia matumizi ya kifaa cha ndani cha upakuaji. Ni mabadiliko gani yanapaswa kufanywa kwa algoriti hizi ili kuwezesha usaidizi wa vifaa vya upakiaji wa mbali?

*18. Hebu tuchukue kwamba kushindwa mbaya kulitokea kwenye mashine ya mbali (au mtandao) na itifaki ya safu ya mtandao wa ndani ilirekodi ukweli huu. Tengeneza mpango wa uokoaji kwa mfumo wa ndani unaofikia seva ya mbali na maombi. Kwa kuongeza, tengeneza mpango wa kurejesha mfumo wa seva ambao umepoteza mawasiliano na wateja.

*19. Wakati mchakato unapata faili ya mbali, inawezekana kwamba mchakato huo utasafiri kwa mashine nyingi ili kupata faili. Kama mfano, wacha tuchukue jina "/usr/src/uts/3b2/os", ambapo "/usr" ni saraka ya mashine A, "/usr/src" ndio sehemu ya msingi ya mashine B, " /usr/src/uts /3b2" ni sehemu ya mlima wa mzizi wa mashine C. Kupitia mashine kadhaa hadi mahali pa mwisho inaitwa "multihop". Hata hivyo, ikiwa kuna muunganisho wa mtandao wa moja kwa moja kati ya mashine A na C, kutuma data kupitia mashine B hakutakuwa na ufanisi. Eleza vipengele vya utekelezaji vya "multi-hop" katika mfumo uliounganishwa wa Newcastle na katika mfumo wa "wazi" uliosambazwa.

Kwa sasa, mifumo yote ya taarifa iliyotengenezwa kwa madhumuni ya kibiashara ina usanifu uliosambazwa, unaohusisha matumizi ya mitandao ya kimataifa na/au ya ndani.

Kwa kihistoria, usanifu wa seva ya faili ulikuwa wa kwanza kuenea, kwa kuwa mantiki yake ni rahisi na ni rahisi kuhamisha mifumo iliyopo ya habari kwa usanifu huo. Kisha ikabadilishwa kuwa usanifu wa mteja wa seva, ambayo inaweza kufasiriwa kama mwendelezo wake wa kimantiki. Mifumo ya kisasa inayotumika katika mtandao wa kimataifa wa INTERNET hasa ni ya usanifu wa vitu vilivyosambazwa (ona Mtini. III15 )


IC inaweza kuwakilishwa kama inayojumuisha vipengele vifuatavyo (Mchoro III-16)

III.03.2. Programu za seva ya faili.

Huu ni usanifu wa kwanza uliosambazwa kihistoria (Kielelezo III-17). Imepangwa kwa urahisi sana: data pekee iko kwenye seva, na kila kitu kingine ni cha mashine ya mteja. Kwa kuwa mitandao ya ndani ni nafuu kabisa, na kutokana na ukweli kwamba kwa usanifu huo programu ya maombi ni ya uhuru, usanifu huo hutumiwa mara nyingi leo. Tunaweza kusema kwamba hii ni tofauti ya usanifu wa seva ya mteja, ambayo faili za data pekee ziko kwenye seva. Kompyuta tofauti za kibinafsi zinaingiliana tu kupitia hifadhi ya kawaida ya data, hivyo mipango iliyoandikwa kwa kompyuta moja ni rahisi kukabiliana na usanifu huo.


Faida:

Faida za usanifu wa seva ya faili:

Urahisi wa shirika;

Haipingani na mahitaji muhimu ya hifadhidata ili kudumisha uadilifu na kutegemewa.

msongamano wa mtandao;

Kutotabirika kwa jibu la ombi.

Mapungufu haya yanaelezewa na ukweli kwamba ombi lolote kwenye hifadhidata husababisha kiasi kikubwa cha habari kuhamishwa kwenye mtandao. Kwa mfano, kuchagua safu mlalo moja au zaidi kutoka kwa jedwali, jedwali zima linapakuliwa kwa mashine ya mteja na DBMS hufanya uteuzi hapo. Trafiki kubwa ya mtandao ni hatari sana wakati wa kuandaa ufikiaji wa mbali kwa hifadhidata.

III.03.2. b Maombi ya seva ya mteja.

Katika kesi hii, kuna usambazaji wa majukumu kati ya seva na mteja. Kulingana na jinsi wamegawanywa nene Na mteja mwembamba.


Katika mfano wa mteja mwembamba, kazi zote za maombi na usimamizi wa data hufanyika kwenye seva. Kiolesura cha mtumiaji katika mifumo hii "huhamishwa" kwenye kompyuta binafsi, na programu ya programu yenyewe hufanya kazi za seva, i.e. huendesha michakato yote ya programu na kudhibiti data. Mfano wa mteja mwembamba unaweza pia kutekelezwa ambapo wateja ni kompyuta au vituo vya kazi. Vifaa vya mtandao huendesha kivinjari cha Mtandao na kiolesura kinachotekelezwa ndani ya mfumo.

Kuu dosari mifano nyembamba ya mteja - mzigo mkubwa kwenye seva na mtandao. Mahesabu yote yanafanywa kwenye seva, na hii inaweza kusababisha trafiki kubwa ya mtandao kati ya mteja na seva. Kompyuta za kisasa zina nguvu ya kutosha ya kompyuta, lakini haitumiki katika mfano wa benki / mteja mwembamba

Kwa kulinganisha, mfano mnene wa mteja hutumia nguvu ya usindikaji ya mashine za ndani: programu yenyewe imewekwa kwenye kompyuta ya mteja. Mfano wa aina hii ya usanifu ni mifumo ya ATM, ambayo ATM ni mteja na seva ni kompyuta kuu inayohifadhi hifadhidata ya akaunti za mteja.

III.03.2. c Usanifu wa seva ya mteja wa ngazi mbili na tatu.

Usanifu wote uliojadiliwa hapo juu ni wa ngazi mbili. Wanatofautisha kati ya kiwango cha mteja na kiwango cha seva. Kwa kusema kweli, IC ina viwango vitatu vya kimantiki:

· Kiwango cha mtumiaji;

· Kiwango cha maombi:

· Safu ya data.

Kwa hiyo, katika mfano wa ngazi mbili, ambapo tabaka mbili tu zinahusika, matatizo hutokea kwa uboreshaji na utendaji ikiwa mfano wa mteja mwembamba umechaguliwa, au matatizo yanayohusiana na usimamizi wa mfumo ikiwa mfano wa mteja mnene unachukuliwa. Matatizo haya yanaweza kuepukwa ikiwa unatumia mfano unaojumuisha ngazi tatu, ambapo mbili kati yao ni seva (Mchoro III-21).

Seva ya data

Kwa kweli, seva ya maombi na seva ya data inaweza kupatikana kwenye mashine moja, lakini hawawezi kufanya kazi za kila mmoja. Jambo zuri kuhusu mfano wa tabaka tatu ni kwamba inatenganisha kimantiki utekelezaji wa programu na usimamizi wa data.

Jedwali III-5 Matumizi ya aina tofauti za usanifu

Usanifu Maombi
Mteja mwembamba wa tabaka mbili 1 Mifumo ya urithi ambayo haitumiki kutenganisha utekelezaji wa programu na usimamizi wa data. 2 Programu zinazotumia kompyuta nyingi lakini zinazotumia data nyingi. 3 Maombi yenye kiasi kikubwa cha data, lakini kiasi kidogo cha mahesabu.
Mteja mnene wa tabaka mbili 1 Programu ambapo mtumiaji anahitaji usindikaji wa kina wa data, yaani, taswira ya data. 2 Programu zilizo na seti isiyobadilika ya vitendakazi vya mtumiaji inayotumika kwa mazingira yenye udhibiti mzuri wa mfumo.
Mteja wa seva wa ngazi tatu 1 Programu kubwa zilizo na seli na maelfu ya wateja 2 Programu ambazo data na mbinu za kuichakata hubadilika mara kwa mara. 3 Programu zinazounganisha data kutoka kwa vyanzo vingi.

Muundo huu unafaa kwa aina nyingi za programu, lakini unawekea kikomo watengenezaji wa IS, ambao lazima waamue mahali pa kutoa huduma, watoe usaidizi wa kubadilika, na kuunda zana za kuunganisha wateja wapya.

III.03.2. d Usanifu wa kitu kilichosambazwa.

Njia ya jumla zaidi hutolewa na usanifu wa kitu kilichosambazwa, sehemu kuu ambazo ni vitu. Wanatoa seti ya huduma kupitia miingiliano yao. Vitu vingine hutuma maombi, bila kufanya tofauti kati ya mteja na seva. Vitu vinaweza kupatikana kwenye kompyuta tofauti kwenye mtandao na kuingiliana kwa kutumia vifaa vya kati, sawa na basi ya mfumo, ambayo inakuwezesha kuunganisha vifaa mbalimbali na uingiliano wa usaidizi kati ya vifaa vya vifaa.

Meneja wa Dereva wa ODBC
Dereva 1
Dereva K
DB 1
DB K
Kufanya kazi na SQL

Usanifu wa ODBC unajumuisha vipengele vifuatavyo:

1. Maombi (kwa mfano, IS). Inafanya kazi zifuatazo: huomba muunganisho kwa chanzo cha data, hutuma maswali ya SQL kwa chanzo cha data, hufafanua eneo la kuhifadhi na umbizo la maswali ya SQL, huchakata makosa na kumjulisha mtumiaji kuzihusu, hufanya au kurudisha nyuma shughuli, kuomba muunganisho. kwa chanzo cha data.

2. Meneja wa Kifaa. Hupakia viendeshi kulingana na mahitaji ya programu, hutoa kiolesura kimoja kwa programu zote, na kiolesura cha msimamizi wa ODBC ni sawa na hakitegemei DBMS ambayo programu itaingiliana nayo. Kidhibiti cha Dereva kilichotolewa na Microsoft ni DLL iliyopakiwa kwa nguvu.

3. Dereva inategemea DBMS. Kiendeshaji cha ODBC ni maktaba ya kiunganishi chenye nguvu (DLL) ambayo hutekeleza utendakazi wa ODBC na kuingiliana na chanzo cha data. Dereva ni programu ambayo huchakata ombi la utendakazi fulani mahususi kwa DBMS (inaweza kurekebisha maombi kwa mujibu wa DBMS) na kurejesha matokeo kwa programu. Kila DBMS inayoauni teknolojia ya ODBC lazima iwape wasanidi programu kiendeshaji cha DBMS hiyo.

4. Chanzo cha data kina maelezo ya udhibiti yaliyobainishwa na mtumiaji, taarifa kuhusu chanzo cha data na hutumika kufikia DBMS mahususi. Katika kesi hii, OS na zana za jukwaa la mtandao hutumiwa.

Muundo wa nguvu

Mtindo huu unahusisha vipengele vingi, ambavyo angalau michoro 5 hutumiwa katika UML, angalia aya. 2.04.2- 2.04.5.

Hebu tuangalie kipengele cha usimamizi. Mtindo wa usimamizi unakamilisha mifano ya kimuundo.

Haijalishi jinsi muundo wa mfumo unavyoelezewa, unajumuisha seti ya vitengo vya kimuundo (kazi au vitu). Ili waweze kufanya kazi kwa ujumla, wanapaswa kudhibitiwa, na habari za udhibiti hazipatikani katika michoro za tuli. Mitindo ya udhibiti hutengeneza mtiririko wa udhibiti kati ya mifumo.

Kuna aina mbili kuu za udhibiti katika mifumo ya programu.

1. Usimamizi wa kati.

2. Usimamizi wa matukio.

Usimamizi wa kati unaweza kuwa:

· Kihierarkia- kulingana na kanuni ya "kurudisha simu" (hivi ndivyo programu za mafunzo hufanya kazi mara nyingi)

· Mfano wa dispatcher, ambayo hutumiwa kwa mifumo inayofanana.

KATIKA mifano ya dispatcher Inachukuliwa kuwa moja ya vipengele vya mfumo ni dispatcher. Inasimamia uanzishaji na uzima wa mifumo na uratibu wa michakato mingine ya mfumo. Mchakato unaweza kwenda sambamba kwa kila mmoja. Mchakato ni programu, mfumo mdogo au utaratibu unaoendeshwa kwa sasa. Mtindo huu pia unaweza kutumika katika mifumo ya mfuatano, ambapo programu ya udhibiti huita mfumo mdogo wa mtu binafsi kulingana na vijiwezo fulani vya serikali (kupitia opereta. kesi).

Usimamizi wa Tukio inachukulia kutokuwepo kwa utaratibu wowote mdogo unaowajibika kwa usimamizi. Udhibiti unafanywa na matukio ya nje: kushinikiza kifungo cha panya, kushinikiza kibodi, kubadilisha usomaji wa sensorer, kubadilisha usomaji wa timer, nk. Kila tukio la nje husimbwa na kuwekwa kwenye foleni ya tukio. Ikiwa mmenyuko wa tukio katika foleni hutolewa, basi utaratibu (subroutine) unaohusika na tukio hili unaitwa. Matukio ambayo mfumo huathiri yanaweza kutokea katika mifumo mingine midogo au katika mazingira ya nje ya mfumo.

Mfano wa usimamizi huo ni shirika la programu katika Windows.

Miundo yote ya miundo iliyoelezwa hapo awali inaweza kutekelezwa kwa kutumia udhibiti wa kati au udhibiti wa matukio.

Kiolesura cha mtumiaji

Wakati wa kuendeleza mfano wa interface, mtu anapaswa kuzingatia sio tu kazi za programu zinazoundwa, lakini pia sifa za ubongo zinazohusiana na mtazamo wa habari.

III.03.4. sifa za kisaikolojia za mtu zinazohusiana na mtazamo na usindikaji wa habari.

Sehemu ya ubongo, ambayo inaweza kuitwa takriban processor ya utambuzi, mara kwa mara, bila ushiriki wa fahamu, inashughulikia habari zinazoingia, inalinganisha na uzoefu wa zamani na kuiweka kwenye hifadhi.

Wakati picha inayoonekana inavutia umakini wetu, basi habari tunayopendezwa nayo huingia kwenye kumbukumbu ya muda mfupi. Ikiwa tahadhari yetu haikuvutia, basi habari katika hifadhi hupotea, ikibadilishwa na sehemu zifuatazo.

Kwa kila wakati wa wakati, lengo la tahadhari linaweza kudumu kwa hatua moja, hivyo ikiwa kuna haja ya kufuatilia wakati huo huo hali kadhaa, basi lengo linatoka kutoka kwa kitu kimoja hadi kingine. Wakati huo huo, tahadhari hutawanywa, na maelezo fulani yanaweza kukosa. Pia ni muhimu kwamba mtazamo kwa kiasi kikubwa unategemea motisha.

Wakati wa kubadilisha fremu, ubongo umezuiwa kwa muda: inasimamia picha mpya, ikionyesha maelezo muhimu zaidi. Hii ina maana kwamba ikiwa majibu ya haraka ya mtumiaji inahitajika, basi hupaswi kubadilisha picha ghafla.

Kumbukumbu ya muda mfupi ni kizuizi katika mfumo wa usindikaji wa habari wa binadamu. Uwezo wake ni 7±2 vitu visivyounganishwa. Habari ambayo haijadaiwa huhifadhiwa hapo kwa si zaidi ya sekunde 30. Ili tusisahau habari fulani ambayo ni muhimu kwetu, kwa kawaida tunarudia sisi wenyewe, kusasisha habari katika kumbukumbu ya muda mfupi. Kwa hivyo, wakati wa kuunda miingiliano, inapaswa kukumbushwa katika akili kwamba wengi wanaona vigumu, kwa mfano, kukumbuka na kuingiza nambari zilizo na tarakimu zaidi ya tano kwenye skrini nyingine.

Pamoja na ukweli kwamba uwezo na muda wa kuhifadhi kumbukumbu ya muda mrefu hauna ukomo, upatikanaji wa habari ni vigumu sana. Utaratibu wa kurejesha habari kutoka kwa kumbukumbu ya muda mrefu ni asili ya ushirika. Ili kuboresha kukariri habari, imefungwa kwa data ambayo kumbukumbu tayari huhifadhi na inafanya kuwa rahisi kurejesha. Kwa sababu kumbukumbu ya muda mrefu ni ngumu kufikia, inafaa kutegemea sio kwa mtumiaji kukumbuka habari, lakini kwa mtumiaji anayeitambua.

III.03.4. b Vigezo vya msingi vya kutathmini violesura

Uchunguzi na tafiti nyingi zilizofanywa na kampuni zinazoongoza za ukuzaji programu zimeonyesha kile ambacho watumiaji wanathamini katika kiolesura:

1) urahisi wa kujifunza na kukariri - hasa kutathmini wakati wa kujifunza na muda wa kuhifadhi habari na kumbukumbu;

2) kasi ya kufikia matokeo wakati wa kutumia mfumo, ambayo imedhamiriwa na idadi ya amri na mipangilio iliyoingia au iliyochaguliwa na panya;

3) kuridhika kwa kibinafsi na uendeshaji wa mfumo (urahisi wa kufanya kazi, uchovu, nk).

Kwa kuongezea, kwa watumiaji wa kitaalam ambao hufanya kazi kila wakati na kifurushi sawa, kigezo cha pili na cha tatu hutoka haraka, na kwa watumiaji wasio wa kitaalamu ambao hufanya kazi na programu mara kwa mara na kufanya kazi rahisi - ya kwanza na ya tatu.

Kwa mtazamo huu, leo sifa bora kwa watumiaji wa kitaaluma ni miingiliano na urambazaji wa bure, na kwa watumiaji wasio wa kitaalamu - interfaces za kudanganywa moja kwa moja. Imejulikana kwa muda mrefu kuwa wakati wa kufanya operesheni ya kunakili faili, vitu vingine vyote vikiwa sawa, wataalamu wengi hutumia makombora kama Mbali, na wasio wataalamu hutumia Windows "buruta na kuacha vitu".

III.03.4. c Aina za violesura vya mtumiaji

Aina zifuatazo za violesura vya watumiaji zinajulikana:

Ya kwanza

Kwa urambazaji bila malipo

Udanganyifu wa moja kwa moja.

Kiolesura ni primitive

Ya kwanza inaitwa kiolesura ambacho hupanga mwingiliano wa mtumiaji na hutumiwa katika hali ya kiweko. Mkengeuko pekee kutoka kwa mchakato wa mfuatano ambao data hutoa ni upangaji wa kitanzi cha kuchakata seti nyingi za data.

Kiolesura cha menyu.

Tofauti na kiolesura cha zamani, inaruhusu mtumiaji kuchagua operesheni kutoka kwa orodha maalum iliyoonyeshwa kwake na programu. Miingiliano hii inahusisha utekelezaji wa matukio mengi ya kazi, mlolongo wa vitendo ambao huamuliwa na watumiaji. Shirika linalofanana na mti la menyu linapendekeza kwamba kutafuta kipengee katika menyu zaidi ya ngazi mbili kunageuka kuwa kazi ngumu sana.