Seni bina sistem teragih. Seni bina teragih terurus Contoh sistem dengan seni bina teragih

Dalam bab sebelumnya, kami melihat sistem berbilang pemproses yang digandingkan rapat dengan memori yang dikongsi, struktur data kernel yang dikongsi dan kumpulan yang dikongsi dari mana proses dipanggil untuk pelaksanaan. Selalunya, bagaimanapun, adalah wajar, untuk memastikan perkongsian sumber, untuk mengagihkan pemproses sedemikian rupa sehingga mereka bebas daripada persekitaran operasi dan keadaan operasi. Katakan, sebagai contoh, pengguna komputer peribadi perlu mengakses fail yang terletak pada mesin yang lebih besar, tetapi pada masa yang sama mengekalkan kawalan ke atas komputer peribadi. Walaupun beberapa program seperti pemindahan fail rangkaian sokongan uucp dan fungsi rangkaian lain, penggunaannya tidak akan disembunyikan daripada pengguna kerana pengguna tahu bahawa dia sedang bekerja pada rangkaian. Di samping itu, perlu diingatkan bahawa program seperti editor teks tidak berfungsi dengan fail yang dipadam seperti yang biasa. Pengguna harus mempunyai kefungsian sistem UNIX standard dan, dengan pengecualian kemungkinan penalti prestasi, tidak seharusnya mengalami sebarang pelanggaran sempadan mesin. Jadi, sebagai contoh, kerja fungsi sistem terbuka dan baca dengan fail pada mesin jauh tidak boleh berbeza daripada kerja mereka dengan fail kepunyaan sistem tempatan.

Seni bina sistem teragih ditunjukkan dalam Rajah 13.1. Setiap komputer yang ditunjukkan dalam rajah ialah modul serba lengkap yang terdiri daripada CPU, memori dan peranti. Pematuhan terhadap model tidak dilanggar walaupun komputer tidak mempunyai sistem fail tempatan: ia mesti mempunyai peranti persisian untuk komunikasi dengan mesin lain, dan semua fail kepunyaannya boleh didapati pada komputer lain. Memori fizikal yang tersedia untuk setiap mesin adalah bebas daripada proses yang dijalankan pada mesin lain. Ciri ini membezakan sistem teragih daripada sistem berbilang pemproses yang digandingkan rapat yang dibincangkan dalam bab sebelumnya. Sehubungan itu, kernel sistem pada setiap mesin berfungsi secara bebas daripada keadaan operasi luaran persekitaran teragih.

Rajah 13.1. Model sistem dengan seni bina teragih


Sistem teragih, diterangkan dengan baik dalam literatur, secara tradisinya dibahagikan kepada kategori berikut:

Sistem persisian, iaitu kumpulan mesin yang mempunyai persamaan yang berbeza dan disambungkan kepada satu mesin (biasanya lebih besar). Pemproses persisian berkongsi beban kerja mereka dengan pemproses pusat dan memajukan semua panggilan ke sistem pengendalian kepadanya. Tujuan sistem persisian adalah untuk meningkatkan prestasi rangkaian keseluruhan dan untuk membolehkan pemproses dikhususkan kepada satu proses dalam persekitaran pengendalian UNIX. Sistem ini berjalan sebagai modul berasingan; Tidak seperti model sistem teragih lain, sistem persisian tidak mempunyai autonomi sebenar, kecuali dalam kes yang berkaitan dengan penghantaran proses dan peruntukan memori tempatan.

Sistem yang diedarkan seperti "Newcastle", membenarkan komunikasi jauh menggunakan nama fail jauh dalam perpustakaan (nama diambil daripada artikel "The Newcastle Connection" - lihat). Fail yang dipadamkan mempunyai spesifikasi (nama komponen) yang mengandungi aksara khas atau komponen nama tambahan sebelum akar sistem fail dalam laluan carian. Pelaksanaan kaedah ini tidak melibatkan membuat perubahan kepada teras sistem, akibatnya ia lebih mudah daripada kaedah lain yang dibincangkan dalam bab ini, tetapi kurang fleksibel.

Sistem pengedaran yang benar-benar "telus", di mana untuk mengakses fail yang terletak pada mesin lain, cukup untuk menentukan nama kompaun standard mereka; Ia adalah tanggungjawab kernel untuk mengiktiraf fail ini sebagai dipadam. Laluan carian untuk fail, yang dinyatakan dalam nama mereka yang layak, merentasi sempadan mesin pada titik pelekap, tidak kira berapa banyak titik tersebut terbentuk semasa memasang sistem fail pada cakera.

Dalam bab ini kita akan melihat seni bina setiap model; semua maklumat yang diberikan bukan berdasarkan hasil perkembangan tertentu, tetapi berdasarkan maklumat yang diterbitkan dalam pelbagai artikel teknikal. Ini mengandaikan bahawa pengalamatan, penghalaan, kawalan aliran, pengesanan ralat dan pembetulan adalah tanggungjawab modul protokol dan pemacu peranti, dengan kata lain, setiap model adalah bebas daripada rangkaian yang digunakan. Contoh penggunaan fungsi sistem yang diberikan dalam bahagian seterusnya untuk sistem persisian berfungsi sama untuk sistem seperti Newcastle dan untuk sistem telus sepenuhnya, yang akan dibincangkan kemudian; Oleh itu, kami akan melihatnya secara terperinci sekali, dan dalam bahagian yang dikhaskan untuk jenis sistem lain, kami akan memberi tumpuan terutamanya pada ciri yang membezakan model ini daripada semua yang lain.

13.1 PEMPROSES PERIFERAL

Seni bina sistem persisian ditunjukkan dalam Rajah 13.2. Tujuan konfigurasi ini adalah untuk meningkatkan prestasi rangkaian keseluruhan dengan mengagihkan semula proses yang sedang berjalan antara pemproses pusat dan persisian. Setiap pemproses persisian tidak mempunyai perkakasan tempatan lain selain daripada peranti yang diperlukan untuk berkomunikasi dengan pemproses pusat. Sistem fail dan semua peranti berada pada pelupusan pemproses pusat. Mari kita anggap bahawa semua proses pengguna berjalan pada pemproses persisian dan tidak bergerak antara pemproses persisian; Setelah dipindahkan ke pemproses, mereka kekal padanya sehingga selesai. Pemproses persisian mengandungi versi ringan sistem pengendalian yang direka untuk memproses panggilan tempatan ke sistem, mengurus gangguan, peruntukan memori, bekerja dengan protokol rangkaian dan dengan pemacu peranti untuk komunikasi dengan pemproses pusat.

Apabila sistem dimulakan pada pemproses pusat, kernel memuatkan sistem pengendalian tempatan pada setiap pemproses persisian melalui talian komunikasi. Sebarang proses yang berjalan di pinggir dikaitkan dengan proses satelit kepunyaan pemproses pusat (lihat); Apabila proses yang berjalan pada pemproses persisian memanggil fungsi sistem yang memerlukan perkhidmatan pemproses pusat secara eksklusif, proses persisian berkomunikasi dengan rakannya dan permintaan dihantar kepada pemproses pusat untuk diproses. Proses satelit melaksanakan fungsi sistem dan menghantar hasilnya kembali ke pemproses persisian. Hubungan antara proses persisian dan rakannya adalah serupa dengan hubungan klien-pelayan yang kami bincangkan secara terperinci dalam Bab 11: proses persisian bertindak sebagai pelanggan rakannya, yang menyokong fungsi sistem fail. Dalam kes ini, proses pelayan jauh hanya mempunyai satu pelanggan. Dalam Bahagian 13.4 kita akan melihat proses pelayan yang mempunyai berbilang pelanggan.


Rajah 13.2. Konfigurasi Sistem Periferi


Rajah 13.3. Format mesej

Apabila proses persisian memanggil fungsi sistem yang boleh diproses secara setempat, kernel tidak perlu menghantar permintaan kepada proses pendamping. Sebagai contoh, untuk mendapatkan memori tambahan, proses boleh memanggil fungsi sbrk untuk pelaksanaan tempatan. Walau bagaimanapun, jika perkhidmatan unit pemprosesan pusat diperlukan, sebagai contoh, untuk membuka fail, kernel mengekod maklumat tentang parameter yang dihantar kepada fungsi yang dipanggil dan keadaan pelaksanaan proses ke dalam mesej yang dihantar kepada proses pendamping (Rajah 13.3) . Mesej tersebut termasuk tanda yang menunjukkan bahawa fungsi sistem dilaksanakan oleh proses satelit bagi pihak klien, parameter yang dihantar kepada fungsi dan data tentang persekitaran pelaksanaan proses (contohnya, kod pengenalan pengguna dan kumpulan), yang berbeza untuk fungsi yang berbeza. Baki mesej ialah data panjang berubah-ubah (seperti nama fail atau data yang layak untuk ditulis oleh fungsi tulis).

Proses satelit menunggu permintaan daripada proses persisian tiba; Apabila ia menerima permintaan, ia menyahkod mesej, menentukan jenis fungsi sistem, melaksanakannya, dan menukar hasil menjadi respons yang dihantar ke proses persisian. Tanggapan, sebagai tambahan kepada hasil fungsi sistem, termasuk mesej ralat (jika ada), nombor isyarat dan tatasusunan data panjang berubah yang mengandungi, sebagai contoh, maklumat yang dibaca daripada fail. Proses periferi berhenti seketika sehingga ia menerima respons; apabila menerimanya, ia menyahsulitnya dan menghantar hasilnya kepada pengguna. Ini ialah skema umum untuk memproses panggilan ke sistem pengendalian; Sekarang mari kita beralih kepada pertimbangan yang lebih terperinci tentang fungsi individu.

Untuk menerangkan cara sistem persisian berfungsi, kita akan melihat beberapa fungsi: getppid, buka, tulis, garpu, keluar dan isyarat. Fungsi getppid agak mudah, kerana ia berkaitan dengan permintaan mudah dan borang tindak balas yang ditukar antara pemproses persisian dan pusat. Kernel pada pemproses persisian menjana mesej yang menunjukkan bahawa fungsi yang diminta ialah fungsi getppid, dan menghantar permintaan kepada pemproses pusat. Proses satelit pada pemproses pusat membaca mesej daripada pemproses persisian, mentafsir jenis fungsi sistem, melaksanakannya, dan menerima pengecam induknya. Ia kemudian menjana tindak balas dan menghantarnya ke proses persisian yang menunggu di hujung talian komunikasi yang lain. Apabila pemproses persisian menerima respons, ia meneruskannya kepada proses yang dipanggil fungsi sistem getppid. Jika proses persisian menyimpan data (seperti ID proses induk) dalam memori tempatan, ia tidak perlu berkomunikasi dengan rakannya sama sekali.

Jika fungsi sistem terbuka dipanggil, proses persisian menghantar mesej yang sepadan kepada rakannya, yang termasuk nama fail dan parameter lain. Jika berjaya, proses satelit memperuntukkan indeks dan titik masuk ke jadual fail, memperuntukkan entri jadual deskriptor fail pengguna dalam ruangnya dan mengembalikan deskriptor fail kepada proses persisian. Selama ini, di hujung talian komunikasi, proses persisian sedang menunggu respons. Dia tidak mempunyai sebarang struktur yang boleh digunakan untuk menyimpan maklumat tentang fail yang dibuka; Pemegang yang dikembalikan oleh buka adalah penunjuk kepada entri dalam jadual deskriptor fail pengguna yang dimiliki oleh proses pengiring. Keputusan fungsi ditunjukkan dalam Rajah 13.4.


Rajah 13.4. Memanggil fungsi terbuka daripada proses persisian

Jika fungsi sistem tulis dipanggil, pemproses persisian menjana mesej yang terdiri daripada atribut fungsi tulis, deskriptor fail dan jumlah data yang ditulis. Kemudian, dari ruang proses persisian, ia menyalin data ke proses satelit di sepanjang talian komunikasi. Proses satelit menyahsulit mesej yang diterima, membaca data dari talian komunikasi dan menulisnya ke fail yang sepadan (deskriptor yang terkandung dalam mesej digunakan sebagai penunjuk kepada indeks dan entri mengenainya dalam jadual fail); Semua tindakan ini dilakukan pada pemproses pusat. Pada penghujung kerjanya, proses satelit menghantar mesej kepada proses persisian yang mengesahkan penerimaan mesej dan mengandungi bilangan bait data yang berjaya disalin ke fail. Operasi baca adalah serupa; satelit memaklumkan proses persisian tentang bilangan bait yang sebenarnya dibaca (dalam kes membaca data dari terminal atau dari saluran, nombor ini tidak selalunya bertepatan dengan nombor yang dinyatakan dalam permintaan). Untuk melaksanakan kedua-dua fungsi, mungkin perlu menghantar mesej maklumat berulang kali melalui rangkaian, yang ditentukan oleh jumlah data yang dihantar dan saiz paket rangkaian.

Satu-satunya fungsi yang memerlukan pengubahsuaian apabila berjalan pada CPU ialah fungsi sistem fork. Apabila proses melaksanakan fungsi ini pada CPU, kernel memilih pemproses persisian untuknya dan menghantar mesej kepada proses khas - pelayan, memaklumkan yang terakhir bahawa ia akan mula memunggah proses semasa. Dengan mengandaikan bahawa pelayan telah menerima permintaan itu, kernel menggunakan fungsi fork untuk mencipta proses persisian baharu, memperuntukkan kemasukan jadual proses dan ruang alamat. CPU memunggah salinan proses yang dipanggil fungsi fork ke pemproses persisian, menimpa ruang alamat yang baru diperuntukkan, melahirkan satelit tempatan untuk berkomunikasi dengan proses persisian baharu dan menghantar mesej kepada persisian untuk memulakan pembilang program untuk proses baru. Proses satelit (pada CPU) adalah anak kepada proses yang dipanggil fungsi garpu; Proses persisian secara teknikalnya adalah anak kepada proses pelayan, tetapi secara logiknya ia adalah anak kepada proses yang dipanggil fungsi fork. Proses pelayan tidak mempunyai sambungan logik dengan anaknya selepas fungsi garpu selesai; Tugas pelayan hanyalah membantu dalam memunggah kanak-kanak itu. Oleh kerana gandingan yang kuat antara komponen sistem (pemproses persisian tidak mempunyai autonomi), proses persisian dan proses satelit mempunyai kod pengenalan yang sama. Hubungan antara proses ditunjukkan dalam Rajah 13.5: garis berterusan menunjukkan hubungan ibu bapa-anak, garis putus-putus menunjukkan hubungan antara rakan kongsi yang sama.


Rajah 13.5. Melaksanakan garpu pada CPU

Apabila proses melaksanakan fungsi fork pada pemproses persisian, ia menghantar mesej kepada rakannya pada CPU, yang kemudiannya melaksanakan keseluruhan urutan tindakan yang diterangkan di atas. Satelit memilih pemproses persisian baharu dan membuat persediaan yang diperlukan untuk memunggah imej proses lama: ia menghantar permintaan kepada proses persisian induk untuk membaca imejnya, sebagai tindak balas yang penghantaran data yang diminta bermula di hujung yang lain daripada saluran komunikasi. Satelit membaca imej yang dihantar dan menulis semula kepada keturunan persisian. Apabila pemunggahan imej selesai, proses satelit melaksanakan fungsi garpu, mencipta anaknya pada CPU, dan menghantar nilai pembilang program kepada anak persisian supaya yang terakhir mengetahui alamat mana untuk memulakan pelaksanaan. Jelas sekali, adalah lebih baik jika anak proses satelit diberikan kepada anak persisian sebagai ibu bapa, tetapi dalam kes kami, proses yang dihasilkan mendapat peluang untuk dijalankan pada pemproses persisian yang lain, bukan hanya di mana ia dicipta. . Hubungan antara proses selepas fungsi garpu selesai ditunjukkan dalam Rajah 13.6. Apabila proses persisian menyelesaikan kerjanya, ia menghantar mesej yang sepadan kepada proses satelit dan ia juga ditamatkan. Inisiatif untuk menutup tidak boleh datang dari proses pendamping.


Rajah 13.6. Garpu pemproses persisian

Dalam kedua-dua sistem multipemproses dan unipemproses, proses mesti bertindak balas kepada isyarat dengan cara yang sama: proses sama ada menamatkan fungsi sistem sebelum menyemak isyarat, atau, sebaliknya, apabila menerima isyarat, segera bangun daripada keadaan yang digantung dan secara tiba-tiba mengganggu fungsi sistem, jika ini konsisten dengan keutamaan. yang mana dia digantung. Oleh kerana proses satelit melaksanakan fungsi sistem bagi pihak proses persisian, ia mesti bertindak balas kepada isyarat dalam penyelarasan dengan yang terakhir. Jika pada sistem pemproses tunggal isyarat menyebabkan proses menamatkan fungsi secara tidak normal, proses pengiring pada sistem berbilang pemproses HARUS berkelakuan dengan cara yang sama. Perkara yang sama boleh dikatakan apabila isyarat menyebabkan proses menamatkan kerjanya menggunakan fungsi keluar: proses persisian keluar dan menghantar mesej yang sepadan kepada proses pendamping, yang, tentu saja, juga keluar.

Apabila proses persisian memanggil fungsi sistem isyarat, ia menyimpan maklumat semasa dalam jadual tempatan dan menghantar mesej kepada rakannya memaklumkan sama ada isyarat yang ditentukan harus diterima atau diabaikan. Proses pendamping adalah acuh tak acuh antara pemintasan isyarat dan tindakan lalai. Bagaimana proses bertindak balas kepada isyarat bergantung kepada tiga faktor (Rajah 13.7): sama ada isyarat tiba semasa proses melaksanakan fungsi sistem, sama ada fungsi isyarat digunakan untuk menunjukkan bahawa isyarat itu akan diabaikan, dan sama ada isyarat itu berasal. pada pemproses persisian yang sama atau pada pemproses lain. Mari kita teruskan untuk mempertimbangkan pelbagai kemungkinan.


algoritma sighandle /* algoritma pemprosesan isyarat */
jika (proses semasa adalah teman seseorang atau mempunyai prototaip)
jika (isyarat diabaikan)
jika (isyarat diterima semasa pelaksanaan fungsi sistem)
meletakkan isyarat di hadapan proses satelit;
menghantar mesej isyarat kepada proses persisian;
else ( /* proses persisian */
/* sama ada isyarat diterima semasa pelaksanaan fungsi sistem atau tidak */
menghantar isyarat kepada proses pendamping;
algoritma satellite_end_of_syscall /* menamatkan fungsi sistem yang dipanggil oleh proses persisian */
maklumat input: tiada
maklumat output: tiada
jika (gangguan berlaku semasa fungsi sistem sedang dilaksanakan)
menghantar mesej atau isyarat gangguan kepada proses persisian;
else /* pelaksanaan fungsi sistem tidak terganggu */
hantar respons: hidupkan bendera yang menunjukkan ketibaan isyarat;

Rajah 13.7. Pemprosesan Isyarat dalam Sistem Pinggiran


Katakan proses persisian telah menggantung kerjanya sementara proses satelit sedang melaksanakan fungsi sistem bagi pihaknya. Jika isyarat berlaku di tempat lain, proses satelit mengesannya sebelum proses persisian berlaku. Terdapat tiga kes yang mungkin.

1. Jika, semasa menunggu sesuatu peristiwa, proses satelit tidak masuk ke dalam keadaan yang digantung, dari mana ia akan keluar apabila menerima isyarat, ia melaksanakan fungsi sistem hingga tamat, menghantar hasil pelaksanaan ke proses persisian dan menunjukkan isyarat yang diterimanya.

2. Jika proses telah mengarahkan untuk mengabaikan isyarat jenis ini, satelit terus mengikuti algoritma untuk melaksanakan fungsi sistem tanpa meninggalkan keadaan longjmp yang digantung. Respons yang dihantar kepada proses persisian tidak akan mengandungi mesej penerimaan isyarat.

3. Jika, apabila menerima isyarat, proses satelit mengganggu pelaksanaan fungsi sistem (melalui longjmp), ia memberitahu proses persisian tentang perkara ini dan memberitahu nombor isyarat.

Proses persisian mencari respons yang diterima untuk mendapatkan maklumat tentang menerima isyarat dan, jika ada yang dikesan, memproses isyarat sebelum keluar dari fungsi sistem. Oleh itu, kelakuan proses pada sistem berbilang pemproses adalah sama seperti kelakuannya pada sistem pemproses tunggal: ia sama ada keluar tanpa keluar dari mod kernel, atau memanggil fungsi pengendalian isyarat yang ditentukan pengguna, atau mengabaikan isyarat dan berjaya. melengkapkan fungsi sistem.


Rajah 13.8. Sampuk semasa melaksanakan fungsi sistem

Katakan, sebagai contoh, bahawa proses persisian memanggil fungsi baca daripada terminal yang dikaitkan dengan pemproses pusat dan menggantung sendiri semasa proses pengiring melaksanakan fungsi tersebut (Rajah 13.8). Jika pengguna menekan kekunci putus, teras CPU menghantar isyarat yang sepadan kepada proses pendamping. Jika satelit berada dalam keadaan digantung menunggu sekeping data dimasukkan daripada terminal, ia segera keluar dari keadaan ini dan berhenti melaksanakan fungsi baca. Dalam tindak balasnya kepada permintaan daripada proses persisian, satelit melaporkan kod ralat dan nombor isyarat yang sepadan dengan gangguan. Proses persisian menganalisis tindak balas dan, memandangkan mesej menunjukkan isyarat gangguan telah tiba, menghantar isyarat itu kepada dirinya sendiri. Sebelum keluar dari fungsi baca, kernel persisian menyemak isyarat, mengesan isyarat gangguan daripada proses pasangan dan memprosesnya seperti biasa. Jika, akibat daripada menerima isyarat sampukan, proses persisian menamatkan kerjanya menggunakan fungsi keluar, fungsi ini menjaga untuk membunuh proses pendamping. Jika proses persisian memintas isyarat sampukan, ia memanggil fungsi pengendalian isyarat yang ditentukan pengguna dan mengembalikan kod ralat kepada pengguna apabila keluar dari fungsi baca. Sebaliknya, jika satelit melaksanakan fungsi statistik sistem bagi pihak proses persisian, ia tidak akan mengganggu pelaksanaannya apabila ia menerima isyarat (fungsi stat dijamin pulih daripada sebarang penggantungan kerana ia mempunyai tamat masa terhad untuk sumber tersebut). Satelit melengkapkan fungsi dan mengembalikan nombor isyarat kepada proses persisian. Proses periferi menghantar isyarat kepada dirinya sendiri dan menerimanya sebagai output daripada fungsi sistem.

Jika isyarat berlaku pada pemproses persisian semasa fungsi sistem sedang dilaksanakan, proses persisian akan tidak mengetahui sama ada kawalan akan segera kembali kepadanya daripada proses pengiring atau sama ada yang terakhir akan berada dalam keadaan digantung selama-lamanya. Proses periferi menghantar mesej khas kepada satelit, memaklumkan kejadian isyarat itu. Inti pada CPU menyahsulit mesej dan menghantar isyarat kepada satelit, yang tindak balasnya untuk menerima isyarat diterangkan dalam perenggan sebelumnya (menghancurkan fungsi atau membawanya ke penyelesaian). Proses periferi tidak boleh menghantar mesej kepada satelit secara langsung kerana satelit sedang sibuk melaksanakan fungsi sistem dan tidak membaca data daripada talian komunikasi.

Menggunakan contoh fungsi baca, proses persisian tidak tahu sama ada rakannya sedang menunggu input daripada terminal atau melakukan tindakan lain. Proses persisian menghantar mesej isyarat kepada satelit: jika satelit berada dalam keadaan tergantung dengan keutamaan yang membenarkan gangguan, ia segera keluar dari keadaan ini dan berhenti melaksanakan fungsi sistem; jika tidak, fungsi tersebut dilaksanakan sehingga berjaya disiapkan.

Akhir sekali, pertimbangkan kes isyarat tiba pada masa yang tidak dikaitkan dengan pelaksanaan fungsi sistem. Jika isyarat berasal dari pemproses lain, satelit menerimanya terlebih dahulu dan menghantar mesej isyarat kepada proses persisian, tidak kira sama ada isyarat berkenaan dengan proses persisian atau tidak. Kernel periferi menyahsulit mesej dan menghantar isyarat kepada proses, yang bertindak balas kepadanya seperti biasa. Jika isyarat berasal dari pemproses persisian, proses melakukan tindakan standard tanpa menggunakan perkhidmatan satelitnya.

Apabila proses persisian menghantar isyarat kepada proses persisian lain, ia mengekod mesej bunuh dan menghantarnya kepada proses pendamping yang melaksanakan fungsi yang dipanggil secara setempat. Jika beberapa proses yang dimaksudkan untuk isyarat terletak pada pemproses persisian lain, satelit mereka akan menerima isyarat (dan bertindak balas terhadap penerimaannya dengan cara yang diterangkan di atas).

13.2 KOMUNIKASI NEWCASTLE

Dalam bahagian sebelumnya, kami melihat jenis sistem gandingan rapat, yang dicirikan dengan menghantar semua panggilan ke fungsi subsistem pengurusan fail yang berlaku pada pemproses persisian kepada pemproses jauh (pusat). Sekarang mari kita teruskan untuk mempertimbangkan sistem gandingan yang kurang ketat, yang terdiri daripada mesin yang mengakses fail yang terletak pada mesin lain. Dalam rangkaian komputer peribadi dan stesen kerja, sebagai contoh, pengguna sering mengakses fail yang terletak pada mesin besar. Dalam dua bahagian seterusnya, kita akan melihat konfigurasi sistem di mana semua fungsi sistem dilakukan dalam subsistem tempatan, tetapi pada masa yang sama adalah mungkin untuk mengakses fail (melalui fungsi subsistem pengurusan fail) yang terletak pada mesin lain.

Sistem ini menggunakan salah satu daripada dua laluan berikut untuk mengenal pasti fail yang dipadam. Dalam sesetengah sistem, aksara khas ditambahkan pada nama fail kompaun: komponen nama sebelum aksara ini mengenal pasti mesin, nama selebihnya mengenal pasti fail yang terdapat pada mesin ini. Jadi, sebagai contoh, nama majmuk


"sftig!/fs1/mjb/rje"


mengenal pasti fail "/fs1/mjb/rje" yang terletak pada mesin "sftig". Skim pengenalan fail ini mengikut konvensyen yang ditubuhkan oleh program uucp untuk memindahkan fail antara sistem jenis UNIX. Dalam skema lain, fail yang dipadam dikenal pasti dengan menambahkan awalan khas pada nama, contohnya:


/../sftig/fs1/mjb/rje


di mana "/../" ialah awalan yang menunjukkan bahawa fail telah dipadamkan; komponen kedua nama fail ialah nama mesin jauh. Skim ini menggunakan sintaks biasa nama fail dalam sistem UNIX, jadi, tidak seperti skema pertama, di sini program pengguna tidak perlu menyesuaikan diri dengan menggunakan nama yang mempunyai struktur luar biasa (lihat).


Rajah 13.9. Merumus permintaan kepada pelayan fail (pemproses)


Kami akan menghabiskan seluruh bahagian ini melihat model sistem yang menggunakan pautan Newcastle, di mana kernel tidak mengenali fail jauh; fungsi ini diperuntukkan sepenuhnya kepada subrutin daripada perpustakaan C standard, yang dalam kes ini melaksanakan peranan antara muka sistem. Rutin ini menganalisis komponen pertama nama fail, yang dalam kedua-dua kaedah pengenalan yang diterangkan mengandungi petunjuk bahawa fail itu jauh. Ini adalah penyimpangan daripada norma di mana rutin perpustakaan tidak menghuraikan nama fail. Rajah 13.9 menunjukkan bagaimana permintaan kepada pelayan fail dirumuskan. Jika fail adalah setempat, kernel sistem tempatan memproses permintaan dengan cara biasa. Mari kita pertimbangkan kes terbalik:


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


Rutin terbuka perpustakaan C menghuraikan dua komponen pertama nama fail kompaun dan mengetahui bahawa fail itu harus dicari pada mesin jauh "sftig". Untuk mendapatkan maklumat tentang sama ada proses sebelum ini mempunyai sambungan dengan mesin tertentu, subrutin mencipta struktur khas di mana ia mengingati fakta ini, dan jika jawapannya negatif, ia mewujudkan sambungan dengan pelayan fail yang berjalan pada alat kawalan jauh. mesin. Apabila proses membuat permintaan pertamanya untuk pemprosesan jauh, pelayan jauh mengakui permintaan itu, menulis medan kod pengenalan pengguna dan kumpulan jika perlu, dan mencipta proses pendamping untuk bertindak bagi pihak proses klien.

Untuk memenuhi permintaan pelanggan, satelit mesti mempunyai kebenaran fail yang sama pada mesin jauh seperti pelanggan. Dalam erti kata lain, pengguna "mjb" mesti mempunyai hak akses yang sama ke kedua-dua fail jauh dan setempat. Malangnya, ada kemungkinan kod pengenalan pelanggan "mjb" mungkin bertepatan dengan kod pengenalan pelanggan lain pada mesin jauh. Oleh itu, pentadbir sistem pada mesin yang beroperasi pada rangkaian harus sama ada memastikan bahawa setiap pengguna diberikan kod pengenalan yang unik untuk keseluruhan rangkaian, atau melakukan penukaran kod pada masa merumuskan permintaan untuk perkhidmatan rangkaian. Jika ini tidak dilakukan, proses satelit akan mempunyai hak pelanggan lain pada mesin jauh.

Isu yang lebih sensitif ialah mendapatkan hak superuser untuk bekerja dengan fail yang dipadamkan. Di satu pihak, pelanggan superuser tidak sepatutnya mempunyai hak yang sama ke atas sistem jauh, supaya tidak mengelirukan kawalan keselamatan sistem jauh. Sebaliknya, sesetengah program, jika mereka tidak diberikan hak superuser, tidak akan dapat berfungsi. Contoh program sedemikian ialah program mkdir (lihat Bab 7), yang mencipta direktori baharu. Sistem jauh tidak akan membenarkan klien mencipta direktori baharu kerana hak superuser tidak terpakai pada tapak jauh. Masalah mencipta direktori jauh berfungsi sebagai sebab yang serius untuk menyemak semula fungsi sistem mkdir ke arah memperluaskan keupayaannya dalam mewujudkan semua sambungan yang diperlukan untuk pengguna secara automatik. Walau bagaimanapun, mendapatkan program setuid (yang termasuk program mkdir) untuk mendapatkan hak superuser ke atas fail yang dipadam masih merupakan masalah biasa yang perlu ditangani. Mungkin penyelesaian terbaik untuk masalah ini adalah dengan menetapkan ciri tambahan untuk fail yang menerangkan akses kepada mereka oleh pengguna super jauh; Malangnya, ini memerlukan perubahan pada struktur indeks cakera (dari segi menambah medan baharu) dan akan mewujudkan terlalu banyak kekeliruan dalam sistem sedia ada.

Jika rutin terbuka berjaya diselesaikan, perpustakaan tempatan meninggalkan tanda yang sepadan dalam struktur yang boleh diakses pengguna yang mengandungi alamat nod rangkaian, pengecam proses satelit, deskriptor fail dan maklumat lain yang serupa. Rutin perpustakaan baca dan tulis menentukan, berdasarkan deskriptor, sama ada fail dipadamkan, dan jika jawapannya positif, mereka menghantar mesej kepada satelit. Proses klien berinteraksi dengan rakannya dalam semua kes akses kepada fungsi sistem yang memerlukan perkhidmatan mesin jauh. Jika proses mengakses dua fail yang terletak pada mesin jauh yang sama, ia menggunakan satu satelit, tetapi jika fail terletak pada mesin yang berbeza, ia menggunakan dua satelit: satu pada setiap mesin. Dua satelit juga digunakan apabila dua proses mengakses fail pada mesin jauh. Apabila memanggil fungsi sistem melalui satelit, proses menjana mesej yang merangkumi nombor fungsi, nama laluan carian dan maklumat lain yang diperlukan serupa dengan yang disertakan dalam struktur mesej dalam sistem dengan pemproses persisian.

Mekanisme untuk melaksanakan operasi pada direktori semasa adalah lebih kompleks. Apabila proses memilih direktori jauh sebagai direktori semasa, rutin perpustakaan menghantar mesej yang sepadan kepada satelit, yang menukar direktori semasa, dan rutin mengingati bahawa direktori itu jauh. Dalam semua kes di mana nama laluan carian bermula dengan aksara selain daripada garis miring (/), rutin menghantar nama ke mesin jauh, di mana proses pengiring menjejak laluan bermula dalam direktori semasa. Jika direktori semasa adalah setempat, rutin hanya menghantar nama laluan carian ke kernel sistem setempat. Fungsi sistem chroot berfungsi sama pada direktori jauh, tetapi pelaksanaannya pada kernel sistem tempatan tidak disedari; Tegasnya, proses boleh mengabaikan operasi ini, kerana hanya perpustakaan merekodkan pelaksanaannya.

Apabila proses memanggil fungsi garpu, rutin perpustakaan yang sepadan menghantar mesej kepada setiap satelit. Proses satelit melakukan operasi garpu dan menghantar pengecam anak mereka kepada pelanggan induk. Proses pelanggan menjalankan fungsi sistem garpu, yang memindahkan kawalan kepada anak yang dijana; kanak-kanak tempatan menjalankan dialog dengan satelit kanak-kanak jauh, yang alamatnya disimpan oleh rutin perpustakaan. Tafsiran fungsi fork ini memudahkan proses satelit mengawal fail terbuka dan direktori semasa. Apabila proses yang berfungsi dengan fail jauh keluar (dengan memanggil fungsi keluar), rutin menghantar mesej kepada semua rakan jauhnya supaya mereka melakukan perkara yang sama apabila mereka menerima mesej. Aspek tertentu pelaksanaan fungsi sistem exec dan exit diliputi dalam latihan.

Kelebihan komunikasi jenis Newcastle ialah akses proses ke fail jauh menjadi "telus" (tidak kelihatan kepada pengguna), dan tiada perubahan perlu dibuat pada teras sistem. Walau bagaimanapun, perkembangan ini juga mempunyai beberapa kelemahan. Pertama sekali, pelaksanaannya boleh mengurangkan prestasi sistem. Disebabkan oleh penggunaan perpustakaan C yang diperluaskan, jumlah memori yang digunakan oleh setiap proses meningkat, walaupun proses itu tidak mengakses fail jauh; Perpustakaan menduplikasi fungsi kernel dan memerlukan lebih banyak ruang memori. Meningkatkan saiz proses menghasilkan masa permulaan yang lebih lama dan boleh menyebabkan lebih banyak pertikaian untuk sumber memori, membolehkan tugasan dihalakan dan dihalakan dengan lebih kerap. Permintaan tempatan akan dilaksanakan dengan lebih perlahan disebabkan peningkatan dalam tempoh setiap permintaan kepada kernel; kelembapan juga mungkin berlaku dalam pemprosesan permintaan jauh, kos penghantarannya melalui rangkaian meningkat. Pemprosesan tambahan permintaan jauh di peringkat pengguna meningkatkan bilangan suis konteks, operasi pemunggahan dan halaman. Akhir sekali, untuk mengakses fail jauh, program mesti disusun semula dengan perpustakaan baharu; program lama dan modul objek yang dibekalkan tidak akan dapat berfungsi dengan fail yang dipadam tanpa ini. Semua kelemahan ini tidak terdapat dalam sistem yang diterangkan dalam bahagian seterusnya.

13.3 SISTEM FAIL TEREDAR "TELUS".

Istilah "pengedaran telus" bermaksud bahawa pengguna yang bekerja pada satu mesin boleh mengakses fail yang terletak pada mesin lain tanpa menyedari bahawa dengan berbuat demikian mereka melintasi sempadan mesin, sama seperti mereka berada pada mesin mereka sendiri apabila berpindah dari satu bahagian fail. sistem ke sistem yang lain titik lekap silang. Nama yang memproses fail akses yang terletak pada mesin jauh adalah serupa dengan nama fail tempatan: ia tidak mengandungi aksara yang membezakan. Dalam konfigurasi yang ditunjukkan dalam Rajah 13.10, direktori /usr/src milik mesin B dipasang ke dalam direktori /usr/src milik mesin A. Konfigurasi ini mudah jika anda ingin menggunakan kod sumber sistem yang sama, secara tradisinya terletak di direktori "/usr/src". Pengguna yang berjalan pada mesin A boleh mengakses fail yang terletak pada mesin B menggunakan sintaks nama fail biasa (contohnya: "/usr/src/cmd/login.c"), dan kernel itu sendiri memutuskan sama ada fail itu dipadamkan atau setempat. Pengguna pada mesin B mempunyai akses kepada fail setempat mereka (menyedari bahawa fail yang sama juga boleh diakses oleh pengguna pada mesin A), tetapi sebaliknya tidak mempunyai akses kepada fail yang terletak pada mesin A. Sudah tentu, pilihan lain mungkin, terutamanya sistem di mana semua sistem jauh dipasang pada akar sistem setempat, membolehkan pengguna mengakses semua fail pada semua sistem.


Rajah 13.10. Sistem fail selepas pemasangan jauh

Persamaan antara memasang sistem fail tempatan dan mendedahkan sistem fail jauh membawa kepada penyesuaian fungsi pelekap untuk sistem fail jauh. Dalam kes ini, kernel mempunyai jadual pelekap format lanjutan yang boleh digunakan. Dengan melaksanakan fungsi pelekap, kernel mengatur sambungan rangkaian dengan mesin jauh dan menyimpan maklumat yang mencirikan sambungan ini dalam jadual pelekap.

Masalah yang menarik ialah dengan nama laluan yang termasuk "..". Jika proses membuat direktori semasa pada sistem fail jauh, penggunaan ".." seterusnya dalam nama akan mengembalikan proses kepada sistem fail tempatan dan bukannya membenarkannya mengakses fail di atas direktori semasa. Kembali semula ke Rajah 13.10, ambil perhatian bahawa apabila proses kepunyaan mesin A, setelah memilih direktori "/usr/src/cmd" sebelum ini yang terletak pada sistem fail jauh sebagai direktori semasa, melaksanakan arahan



direktori semasa akan menjadi direktori akar kepunyaan mesin A, bukan mesin B. Algoritma namei berjalan dalam kernel sistem jauh, setelah menerima urutan aksara "..", menyemak sama ada proses panggilan adalah ejen daripada proses klien, dan jika jawapannya positif, tetapkan, sama ada klien menganggap direktori kerja semasa sebagai punca sistem fail jauh.

Komunikasi dengan mesin jauh mengambil satu daripada dua bentuk: panggilan prosedur jauh atau panggilan fungsi sistem jauh. Dalam bentuk pertama, setiap prosedur kernel yang berkaitan dengan indeks menyemak sama ada indeks menghala ke fail jauh dan, jika ya, menghantar permintaan kepada mesin jauh untuk melaksanakan operasi yang ditentukan. Skim ini sesuai secara semula jadi ke dalam struktur abstrak sokongan untuk sistem fail pelbagai jenis, yang diterangkan dalam bahagian akhir Bab 5. Oleh itu, mengakses fail jauh boleh memulakan penghantaran beberapa mesej melalui rangkaian, yang bilangannya ditentukan oleh bilangan operasi tersirat pada fail, dengan peningkatan yang sepadan dalam masa tindak balas kepada permintaan, dengan mengambil kira masa menunggu yang diterima pada rangkaian. Setiap set operasi jauh termasuk sekurang-kurangnya tindakan penguncian indeks, pengiraan rujukan, dll. Untuk menambah baik model, pelbagai penyelesaian pengoptimuman telah dicadangkan berkaitan dengan menggabungkan beberapa operasi ke dalam satu permintaan (mesej) dan menimbal data yang paling penting ( cm.).


Rajah 13.11. Membuka fail jauh


Pertimbangkan proses yang membuka fail jauh "/usr/src/cmd/login.c", dengan "src" ialah titik pelekap. Dengan menghuraikan nama fail (menggunakan skema namei-iget), kernel mengesan bahawa fail itu dipadamkan dan menghantar permintaan kepada mesin di mana ia berada untuk mendapatkan indeks terkunci. Setelah menerima jawapan yang dikehendaki, kernel tempatan mencipta salinan indeks dalam memori yang sepadan dengan fail jauh. Kemudian kernel menyemak hak akses yang diperlukan kepada fail (untuk membaca, sebagai contoh), dengan menghantar mesej lain ke mesin jauh. Pelaksanaan algoritma terbuka diteruskan tepat seperti yang dirancang dalam Bab 5, menghantar mesej ke mesin jauh seperti yang diperlukan sehingga algoritma selesai dan indeks dibebaskan. Hubungan antara struktur data kernel pada akhir algoritma terbuka ditunjukkan dalam Rajah 13.11.

Jika pelanggan memanggil fungsi sistem baca, kernel klien mengunci indeks setempat, mengeluarkan permintaan kunci untuk indeks jauh, mengeluarkan permintaan baca untuk data, menyalin data ke memori tempatan, mengeluarkan permintaan keluaran untuk indeks jauh, dan mengeluarkan indeks tempatan. Skim ini sepadan dengan semantik kernel pemproses tunggal sedia ada, tetapi kekerapan penggunaan rangkaian (beberapa panggilan untuk setiap fungsi sistem) mengurangkan prestasi keseluruhan sistem. Walau bagaimanapun, untuk mengurangkan trafik rangkaian, berbilang operasi boleh digabungkan menjadi satu permintaan. Dalam contoh dengan fungsi baca, pelanggan boleh menghantar satu permintaan "baca" umum kepada pelayan, dan pelayan itu sendiri, apabila melaksanakannya, membuat keputusan untuk merampas dan melepaskan indeks. Mengurangkan trafik rangkaian juga boleh dicapai dengan menggunakan penimbal jauh (seperti yang dibincangkan di atas), tetapi penjagaan mesti diambil untuk memastikan fungsi fail sistem yang menggunakan penimbal ini berjalan dengan betul.

Dalam bentuk komunikasi kedua dengan mesin jauh (panggilan ke fungsi sistem jauh), kernel tempatan mengesan bahawa fungsi sistem merujuk kepada fail jauh dan menghantar parameter yang dinyatakan dalam panggilannya ke sistem jauh, yang melaksanakan fungsi dan mengembalikan hasilnya kepada pelanggan. Mesin klien menerima hasil fungsi dan keluar dari keadaan panggilan. Kebanyakan fungsi sistem boleh dilakukan menggunakan hanya satu permintaan rangkaian dan menerima respons dalam tempoh masa yang munasabah, tetapi tidak semua fungsi sesuai dengan model ini. Sebagai contoh, apabila menerima isyarat tertentu, kernel mencipta fail untuk proses yang dipanggil "teras" (Bab 7). Penciptaan fail ini tidak dikaitkan dengan fungsi sistem tertentu, tetapi melengkapkan beberapa operasi seperti mencipta fail, menyemak hak akses dan melaksanakan beberapa operasi tulis.

Dalam kes fungsi sistem terbuka, permintaan untuk melaksanakan fungsi yang dihantar ke mesin jauh termasuk sebahagian daripada nama fail, baki komponen nama laluan carian yang membezakan fail jauh dan pelbagai bendera. Dalam contoh awal membuka fail "/usr/src/cmd/login.c", kernel menghantar nama "cmd/login.c" ke mesin jauh. Mesej itu juga termasuk data pengenalan, seperti kod pengenalan pengguna dan kumpulan, yang diperlukan untuk mengesahkan hak akses kepada fail pada mesin jauh. Jika respons diterima daripada mesin jauh yang menunjukkan bahawa fungsi terbuka berjaya, kernel tempatan memilih indeks percuma dalam memori mesin tempatan dan menandakannya sebagai indeks fail jauh, menyimpan maklumat tentang mesin jauh dan indeks jauh. , dan secara rutin memperuntukkan masukan baharu dalam jadual fail. Berbanding dengan indeks sebenar pada mesin jauh, indeks yang dimiliki oleh mesin tempatan adalah formal dan tidak melanggar konfigurasi model, yang secara amnya sama dengan konfigurasi yang digunakan semasa memanggil prosedur jauh (Rajah 13.11). Jika fungsi yang dipanggil oleh proses mengakses fail jauh dengan pemegangnya, kernel tempatan belajar daripada indeks (tempatan) bahawa fail itu jauh, merumuskan permintaan yang termasuk fungsi yang dipanggil, dan menghantarnya ke mesin jauh. Permintaan itu mengandungi penunjuk ke indeks jauh, yang dengannya proses satelit boleh mengenal pasti fail jauh itu sendiri.

Setelah menerima hasil daripada melaksanakan sebarang fungsi sistem, kernel boleh menggunakan perkhidmatan program khas untuk memprosesnya (apabila selesai kernel akan selesai berfungsi dengan fungsi tersebut), kerana pemprosesan tempatan hasil yang digunakan dalam pemproses tunggal sistem tidak selalunya sesuai untuk sistem dengan berbilang pemproses. Akibatnya, perubahan mungkin berlaku dalam semantik algoritma sistem yang bertujuan untuk menyediakan sokongan untuk pelaksanaan fungsi sistem jauh. Walau bagaimanapun, pada masa yang sama, aliran minimum mesej beredar dalam rangkaian, memastikan masa tindak balas sistem minimum kepada permintaan masuk.

13.4 MODEL TEREDAR TANPA PROSES PEMINDAHAN

Menggunakan proses pemindahan (proses satelit) dalam sistem teragih yang telus menjadikannya lebih mudah untuk menjejaki fail jauh, tetapi jadual proses sistem jauh lebih sarat dengan proses satelit yang terbiar pada kebanyakan masa. Dalam skim lain, proses pelayan khas digunakan untuk memproses permintaan jauh (lihat dan). Sistem jauh mempunyai satu set (kumpulan) proses pelayan yang diberikannya dari semasa ke semasa untuk memproses permintaan jauh yang masuk. Selepas memproses permintaan, proses pelayan kembali ke kolam dan bersedia untuk memproses permintaan lain. Pelayan tidak menyimpan konteks pengguna antara dua permintaan, kerana ia boleh memproses permintaan daripada beberapa proses sekaligus. Akibatnya, setiap mesej yang tiba daripada proses klien mesti termasuk maklumat tentang persekitaran pelaksanaannya, iaitu: kod pengenalan pengguna, direktori semasa, isyarat, dll. Proses satelit menerima data ini pada masa penampilannya atau semasa pelaksanaan fungsi sistem.

Apabila proses membuka fail jauh, kernel sistem jauh memberikan indeks untuk rujukan berikutnya kepada fail. Mesin tempatan mempunyai jadual deskriptor fail pengguna, jadual fail dan jadual indeks dengan set masukan biasa, dengan entri dalam jadual indeks mengenal pasti mesin jauh dan indeks jauh. Dalam kes di mana fungsi sistem (seperti baca) menggunakan deskriptor fail, kernel menghantar mesej yang menunjuk ke inod jauh yang ditetapkan sebelum ini dan menghantar maklumat berkaitan proses: kod pengenalan pengguna, saiz fail maksimum, dsb. Jika alat kawalan jauh mesin mempunyai proses pelayan, interaksi dengan klien mengambil bentuk yang diterangkan sebelum ini, bagaimanapun, sambungan antara klien dan pelayan diwujudkan hanya untuk tempoh fungsi sistem.

Jika anda menggunakan pelayan dan bukannya proses satelit, mengurus aliran data, isyarat dan peranti jauh boleh menjadi lebih kompleks. Permintaan yang tiba dalam jumlah besar ke mesin jauh tanpa bilangan pelayan yang mencukupi mesti dibariskan. Ini memerlukan protokol tahap yang lebih tinggi daripada yang digunakan pada rangkaian utama. Dalam model satelit, sebaliknya, lebihan permintaan dihapuskan kerana semua permintaan pelanggan diproses secara serentak. Pelanggan boleh mempunyai paling banyak satu permintaan yang belum selesai.

Mengendalikan isyarat yang mengganggu pelaksanaan fungsi sistem juga menjadi lebih rumit apabila menggunakan pelayan, kerana mesin jauh kemudiannya mesti mencari pelayan yang sesuai untuk menyervis fungsi tersebut. Tidak mungkin, disebabkan kesibukan semua pelayan, permintaan untuk melaksanakan fungsi sistem berada dalam keadaan pemprosesan yang belum selesai. Keadaan untuk persaingan berlaku juga berlaku apabila pelayan mengembalikan hasil pelaksanaan fungsi sistem kepada proses panggilan dan tindak balas pelayan termasuk menghantar mesej isyarat yang sepadan melalui rangkaian. Setiap mesej mesti ditandakan sedemikian rupa sehingga sistem jauh dapat mengenalinya dan, jika perlu, mengganggu kerja proses pelayan. Apabila menggunakan satelit, proses yang memproses permintaan pelanggan dikenal pasti secara automatik, dan apabila isyarat diterima, menyemak sama ada permintaan telah diproses atau tidak tidak sukar.

Akhir sekali, jika fungsi sistem yang dipanggil oleh pelanggan menyebabkan pelayan berhenti seketika (contohnya, semasa membaca data dari terminal jauh), pelayan tidak boleh memproses permintaan lain, dengan itu membebaskan kumpulan pelayan. Jika beberapa proses mengakses peranti jauh sekali gus dan jika bilangan pelayan terhad dari atas, kesesakan yang agak ketara berlaku. Ini tidak berlaku dengan satelit kerana satelit diperuntukkan kepada setiap proses pelanggan. Isu lain yang berkaitan dengan penggunaan pelayan untuk peranti jauh akan dibincangkan dalam Latihan 13.14.

Walaupun kelebihan yang disediakan oleh penggunaan proses satelit, keperluan untuk kemasukan jadual proses percuma dalam amalan menjadi sangat meruncing sehingga dalam kebanyakan kes mereka masih menggunakan perkhidmatan proses pelayan untuk memproses permintaan jauh.


Rajah 13.12. Gambar rajah konsep interaksi dengan fail jauh di peringkat kernel

13.5 KESIMPULAN

Dalam bab ini, kami meneliti tiga skema untuk bekerja dengan fail yang terletak pada mesin jauh, yang menganggap sistem fail jauh sebagai lanjutan daripada yang tempatan. Perbezaan seni bina antara skim ini ditunjukkan dalam Rajah 13.12. Kesemuanya, sebaliknya, berbeza daripada sistem berbilang pemproses yang diterangkan dalam bab sebelumnya kerana di sini pemproses tidak berkongsi memori fizikal. Sistem pemproses persisian terdiri daripada set pemproses berganding rapat yang berkongsi sumber fail pada pemproses pusat. Komunikasi jenis Newcastle menyediakan akses tersembunyi (“telus”) kepada fail jauh, tetapi bukan melalui kernel sistem pengendalian, tetapi melalui penggunaan perpustakaan C khas. Atas sebab ini, semua program yang berhasrat untuk menggunakan jenis komunikasi ini mesti dikompilasi semula, yang secara amnya merupakan kelemahan serius skim ini. Keterpencilan fail ditunjukkan oleh urutan aksara khas yang menerangkan mesin di mana fail itu terletak, dan ini merupakan faktor lain yang mengehadkan kemudahalihan program.

Dalam sistem teragih telus, pengubahsuaian fungsi sistem pelekap digunakan untuk mengakses fail jauh. Indeks pada sistem tempatan ditandakan sebagai merujuk kepada fail jauh, dan kernel tempatan menghantar mesej kepada sistem jauh yang menerangkan fungsi sistem yang diminta, parameternya dan indeks jauh. Komunikasi dalam sistem teragih telus disokong dalam dua bentuk: dalam bentuk panggilan prosedur jauh (mesej dihantar ke mesin jauh yang mengandungi senarai operasi yang berkaitan dengan indeks) dan dalam bentuk panggilan ke sistem jauh fungsi (mesej menerangkan fungsi yang diminta). Bahagian akhir bab mengkaji isu yang berkaitan dengan memproses permintaan jauh menggunakan proses dan pelayan satelit.

13.6 SENAMAN

*1. Huraikan pelaksanaan fungsi sistem keluar pada sistem dengan pemproses persisian. Apakah perbezaan antara kes ini dan apabila proses ditamatkan apabila menerima isyarat yang tidak ditangkap? Bagaimanakah kernel harus membuang kandungan memori?

2. Proses tidak boleh mengabaikan isyarat SIGKILL; terangkan apa yang berlaku dalam sistem persisian apabila proses menerima isyarat sedemikian.

*3. Terangkan pelaksanaan fungsi sistem exec pada sistem dengan pemproses persisian.

*4. Bagaimanakah pemproses pusat mengagihkan proses antara pemproses persisian untuk mengimbangi beban keseluruhan?

*5. Apakah yang berlaku jika pemproses persisian tidak mempunyai memori yang mencukupi untuk menampung semua proses yang ditukar kepadanya? Bagaimanakah proses harus dipunggah dan ditukar pada rangkaian?

6. Pertimbangkan sistem di mana permintaan ke pelayan fail jauh dihantar jika awalan khas dikesan dalam nama fail. Biarkan proses memanggil fungsi execl("/../sftig/bin/sh", "sh", 0); Boleh laku berada pada mesin jauh, tetapi mesti dilaksanakan pada sistem tempatan. Terangkan bagaimana modul jauh dipindahkan ke sistem setempat.

7. Jika pentadbir perlu menambah mesin baharu pada sistem yang berkaitan dengan Newcastle sedia ada, apakah cara terbaik untuk memaklumkan modul perpustakaan C tentang perkara ini?

*8. Apabila exec dilaksanakan, kernel memadamkan ruang alamat proses, termasuk jadual perpustakaan yang digunakan oleh pautan Newcastle untuk menjejaki rujukan kepada fail jauh. Selepas melaksanakan fungsi, proses mesti mengekalkan keupayaan untuk mengakses fail ini dengan pemegang lama mereka. Terangkan pelaksanaan detik ini.

*9. Seperti yang ditunjukkan dalam Bahagian 13.2, memanggil fungsi sistem keluar pada sistem dengan sambungan Newcastle menyebabkan mesej dihantar ke proses pendamping, menyebabkan ia ditamatkan. Ini dilakukan di peringkat rutin perpustakaan. Apakah yang berlaku apabila proses tempatan menerima isyarat yang memberitahunya untuk keluar dalam mod kernel?

*10. Bagaimanakah, pada sistem dengan pautan Newcastle di mana fail jauh dikenal pasti dengan menambahkan awalan khas pada nama fail, bolehkah pengguna menentukan komponen ".." (direktori induk) nama fail untuk melintasi titik pelekap jauh?

11. Daripada Bab 7, kita tahu bahawa pelbagai isyarat mendorong proses untuk membuang kandungan memori ke dalam direktori semasa. Apakah yang perlu berlaku jika direktori semasa adalah daripada sistem fail jauh? Apakah jawapan yang anda akan berikan jika sistem menggunakan sambungan jenis Newcastle?

*12. Apakah kesan ke atas proses tempatan jika semua proses satelit atau pelayan dialih keluar daripada sistem?

*13. Pertimbangkan cara sistem teragih telus akan melaksanakan algoritma pautan, yang boleh mengambil dua nama fail jauh sebagai parameter, dan algoritma exec, yang melibatkan melaksanakan berbilang operasi baca dalaman. Pertimbangkan dua bentuk komunikasi: panggilan prosedur jauh dan panggilan fungsi sistem jauh.

*14. Apabila mengakses peranti, proses pelayan mungkin memasuki keadaan digantung, dari mana ia akan dibangunkan oleh pemandu peranti. Sememangnya, jika bilangan pelayan terhad, sistem tidak lagi dapat memenuhi permintaan mesin tempatan. Hasilkan reka bentuk yang boleh dipercayai supaya tidak semua proses pelayan digantung sementara menunggu I/O berkaitan peranti selesai. Fungsi sistem tidak akan berhenti melaksanakan semasa semua pelayan sibuk.


Rajah 13.13. Konfigurasi dengan pelayan terminal

*15. Apabila pengguna log masuk ke dalam sistem, disiplin talian terminal menyimpan maklumat bahawa terminal ialah terminal pengendali yang mengetuai sekumpulan proses. Atas sebab ini, apabila pengguna menekan kekunci "break" pada papan kekunci terminal, semua proses dalam kumpulan menerima isyarat gangguan. Pertimbangkan konfigurasi sistem di mana semua terminal disambungkan secara fizikal kepada satu mesin, tetapi pendaftaran pengguna dilaksanakan secara logik pada mesin lain (Rajah 13.13). Dalam setiap kes individu, sistem mencipta proses getty untuk terminal jauh. Jika permintaan kepada sistem jauh diproses menggunakan satu set proses pelayan, perlu diperhatikan bahawa apabila prosedur terbuka dilakukan, pelayan berhenti menunggu sambungan. Apabila fungsi terbuka selesai, pelayan kembali ke kolam pelayan, memutuskan sambungannya dengan terminal. Bagaimanakah isyarat gangguan disebabkan oleh menekan kekunci "break" dihantar ke alamat proses yang disertakan dalam kumpulan yang sama?

*16. Perkongsian memori ialah ciri asli kepada mesin tempatan. Dari sudut pandangan logik, peruntukan kawasan umum memori fizikal (tempatan atau jauh) juga boleh dilakukan untuk proses yang dimiliki oleh mesin yang berbeza. Terangkan pelaksanaan detik ini.

*17. Algoritma untuk proses pemunggahan dan halaman atas permintaan yang dibincangkan dalam Bab 9 menganggap penggunaan peranti pemunggahan tempatan. Apakah perubahan yang perlu dibuat pada algoritma ini untuk membolehkan sokongan untuk peranti muat naik jauh?

*18. Mari kita anggap bahawa kegagalan maut berlaku pada mesin jauh (atau rangkaian) dan protokol lapisan rangkaian tempatan merekodkan fakta ini. Membangunkan skim pemulihan untuk sistem setempat yang mengakses pelayan jauh dengan permintaan. Di samping itu, bangunkan rancangan untuk memulihkan sistem pelayan yang telah terputus hubungan dengan pelanggan.

*19. Apabila proses mengakses fail jauh, ada kemungkinan proses itu akan pergi ke berbilang mesin untuk mencari fail tersebut. Sebagai contoh, mari kita ambil nama "/usr/src/uts/3b2/os", dengan "/usr" ialah direktori kepunyaan mesin A, "/usr/src" ialah titik lekapan akar mesin B, " /usr/src/uts /3b2" ialah titik lekapan akar mesin C. Melepasi beberapa mesin ke destinasi akhir dipanggil "multihop". Walau bagaimanapun, jika terdapat sambungan rangkaian terus antara mesin A dan C, penghantaran data melalui mesin B akan menjadi tidak berkesan. Terangkan ciri pelaksanaan "multi-hop" dalam sistem tersambung Newcastle dan dalam sistem teragih "telus".

Sistem multikomputer heterogen

Bilangan terbesar sistem teragih sedia ada pada masa ini dibina mengikut skema multikomputer heterogen. Ini bermakna bahawa komputer yang merupakan sebahagian daripada sistem ini boleh menjadi sangat pelbagai, contohnya, dalam jenis pemproses, saiz memori dan prestasi I/O. Dalam amalan, peranan sesetengah komputer ini boleh dilakukan oleh sistem selari berprestasi tinggi, contohnya multipemproses atau sistem multikomputer homogen.

Rangkaian yang menghubungkan mereka juga boleh menjadi sangat heterogen.

Contoh heterogeniti ialah penciptaan sistem berbilang komputer yang besar menggunakan rangkaian dan saluran sedia ada. Sebagai contoh, bukan sesuatu yang luar biasa untuk sistem pengedaran universiti wujud, yang terdiri daripada rangkaian tempatan pelbagai jabatan yang disambungkan oleh saluran berkelajuan tinggi. Dalam sistem global, stesen yang berbeza mungkin disambungkan pula oleh rangkaian awam, seperti perkhidmatan rangkaian yang ditawarkan oleh pengendali telekomunikasi komersial, cth. SMDS atau Relay bingkai.

Tidak seperti sistem yang dibincangkan dalam perenggan sebelumnya, banyak sistem multikomputer heterogen berskala besar memerlukan pendekatan global. Ini bermakna bahawa aplikasi tidak boleh menganggap bahawa prestasi tertentu atau perkhidmatan tertentu akan tersedia untuknya pada setiap masa.

Beralih kepada isu penskalaan yang wujud dalam sistem heterogen, dan mengambil kira keperluan untuk pendekatan global yang wujud dalam kebanyakannya, kami ambil perhatian bahawa mencipta aplikasi untuk sistem multikomputer heterogen memerlukan perisian khusus. Sistem teragih mengatasi masalah ini. Untuk memastikan pembangun aplikasi tidak perlu risau tentang perkakasan yang mereka gunakan, sistem yang diedarkan menyediakan pembungkus perisian yang melindungi aplikasi daripada apa yang berlaku dalam perkakasan (iaitu, mereka menyediakan ketelusan).

Seni bina terawal dan paling asas teragih ialah seni bina pelayan-pelanggan, di mana satu pihak (pelanggan) memulakan komunikasi dengan menghantar permintaan kepada pihak lain (pelayan). Pelayan memproses permintaan dan, jika perlu, menghantar respons kepada klien (Gamb. 2.7).

nasi. 2.7. Model interaksi pelanggan-pelayan

Interaksi dalam model pelanggan-pelayan boleh sama ada segerak, apabila pelanggan menunggu pelayan menyelesaikan pemprosesan permintaannya, atau tidak segerak, di mana pelanggan menghantar permintaan kepada pelayan dan meneruskan pelaksanaannya tanpa menunggu jawapan daripada pelayan. Model klien dan pelayan boleh digunakan sebagai asas untuk menerangkan pelbagai interaksi. Mari kita pertimbangkan interaksi komponen perisian yang membentuk sistem teragih.



nasi. 2.8. Tahap aplikasi logik

Mari kita pertimbangkan aplikasi biasa, yang, mengikut konsep moden, boleh dibahagikan kepada tahap logik berikut (Rajah 2.8): antara muka pengguna (UI), logik aplikasi (AL) dan akses data (DA), bekerja dengan pangkalan data (DB) . Pengguna sistem berinteraksi dengannya melalui antara muka pengguna, pangkalan data menyimpan data yang menerangkan domain aplikasi, dan lapisan logik aplikasi melaksanakan semua algoritma yang berkaitan dengan domain aplikasi.

Memandangkan pada praktiknya, pengguna sistem yang berbeza biasanya berminat untuk mengakses data yang sama, cara paling mudah untuk mengagihkan fungsi sistem sedemikian merentasi beberapa komputer adalah dengan memisahkan tahap logik aplikasi antara satu bahagian pelayan aplikasi, yang bertanggungjawab. untuk mengakses data, dan bahagian klien yang terletak pada beberapa komputer. melaksanakan antara muka pengguna. Logik aplikasi boleh diberikan kepada pelayan, klien, atau dibahagikan antara mereka (Rajah 2.9).

nasi. 2.9. Seni bina dua peringkat

Seni bina aplikasi yang dibina atas prinsip ini dipanggil pelayan-pelanggan atau dua pautan. Dalam amalan, sistem sedemikian sering tidak diklasifikasikan sebagai diedarkan, tetapi secara rasmi mereka boleh dianggap sebagai wakil paling mudah bagi sistem teragih.

Pembangunan seni bina klien-pelayan adalah seni bina tiga peringkat, di mana antara muka pengguna, logik aplikasi dan capaian data diasingkan kepada komponen bebas sistem yang boleh dijalankan pada komputer bebas (Rajah 2.10).

nasi. 2.10. Seni bina tiga peringkat

Permintaan pengguna dalam sistem sedemikian diproses secara berurutan oleh bahagian klien sistem, pelayan logik aplikasi dan pelayan pangkalan data. Walau bagaimanapun, biasanya sistem teragih difahami sebagai sistem dengan seni bina yang lebih kompleks daripada tiga peringkat.

nasi. 2.11. Sistem runcit teragih

Berhubung dengan aplikasi automasi perusahaan, sistem teragih biasanya dipanggil sistem dengan logik aplikasi diedarkan di antara beberapa komponen sistem, yang setiap satunya boleh dilaksanakan pada komputer yang berasingan. Sebagai contoh, pelaksanaan logik aplikasi sistem jualan runcit mesti menggunakan permintaan kepada logik aplikasi pihak ketiga, seperti pembekal barangan, sistem pembayaran elektronik, atau bank yang menyediakan pinjaman pengguna (Rajah 2.11).

Satu lagi contoh sistem teragih ialah rangkaian pertukaran data langsung antara pelanggan (rangkaian peer-to-peer). Jika contoh sebelumnya mempunyai seni bina "pokok", maka rangkaian pertukaran langsung disusun dengan cara yang lebih kompleks, Rajah 2.12. Sistem sedemikian pada masa ini mungkin merupakan salah satu sistem teragih terbesar yang wujud, menghubungkan berjuta-juta komputer.

nasi. 2.12. Sistem pertukaran data langsung antara pelanggan

Pada masa ini, semua sistem maklumat yang dibangunkan untuk tujuan komersial mempunyai seni bina teragih, yang melibatkan penggunaan rangkaian global dan/atau tempatan.

Dari segi sejarah, seni bina pelayan fail adalah yang pertama tersebar luas, kerana logiknya mudah dan paling mudah untuk memindahkan sistem maklumat sedia ada kepada seni bina sedemikian. Kemudian ia telah diubah menjadi seni bina pelayan-klien, yang boleh ditafsirkan sebagai kesinambungan logiknya. Sistem moden yang digunakan dalam rangkaian INTERNET global terutamanya tergolong dalam seni bina objek yang diedarkan (lihat Rajah. III15 )


IC boleh diwakili sebagai terdiri daripada komponen berikut (Rajah III-16)

III.03.2. a Aplikasi pelayan fail.

Ini secara sejarah adalah seni bina teragih pertama (Rajah III-17). Ia disusun dengan sangat mudah: hanya data yang ada pada pelayan, dan segala-galanya adalah milik mesin klien. Oleh kerana rangkaian tempatan agak murah, dan disebabkan oleh fakta bahawa dengan seni bina sedemikian perisian aplikasi adalah autonomi, seni bina sedemikian sering digunakan hari ini. Kita boleh mengatakan bahawa ini adalah varian seni bina pelayan-klien, di mana hanya fail data terletak pada pelayan. Komputer peribadi yang berbeza berinteraksi hanya melalui storan data biasa, jadi program yang ditulis untuk satu komputer adalah paling mudah untuk menyesuaikan diri dengan seni bina sedemikian.


Kelebihan:

Kelebihan seni bina pelayan fail:

Kemudahan organisasi;

Tidak bercanggah dengan keperluan yang diperlukan untuk pangkalan data untuk mengekalkan integriti dan kebolehpercayaan.

Kesesakan rangkaian;

Ketidakpastian tindak balas kepada permintaan.

Kelemahan ini dijelaskan oleh fakta bahawa sebarang permintaan kepada pangkalan data mengakibatkan sejumlah besar maklumat dipindahkan melalui rangkaian. Contohnya, untuk memilih satu atau lebih baris daripada jadual, keseluruhan jadual dimuat turun ke mesin klien dan DBMS melakukan pemilihan di sana. Trafik rangkaian yang ketara amat berbahaya apabila mengatur akses jauh ke pangkalan data.

III.03.2. b Aplikasi pelayan-pelanggan.

Dalam kes ini, terdapat pembahagian tanggungjawab antara pelayan dan pelanggan. Bergantung pada bagaimana mereka dibahagikan tebal Dan klien kurus.


Dalam model klien nipis, semua kerja aplikasi dan pengurusan data dilakukan pada pelayan. Antara muka pengguna dalam sistem ini "dipindahkan" ke komputer peribadi, dan aplikasi perisian itu sendiri melaksanakan fungsi pelayan, i.e. menjalankan semua proses aplikasi dan mengurus data. Model klien nipis juga boleh dilaksanakan di mana pelanggan adalah komputer atau stesen kerja. Peranti rangkaian menjalankan pelayar Internet dan antara muka pengguna yang dilaksanakan dalam sistem.

Utama kecacatan model klien nipis - beban tinggi pada pelayan dan rangkaian. Semua pengiraan dilakukan pada pelayan, dan ini boleh mengakibatkan trafik rangkaian yang ketara antara klien dan pelayan. Komputer moden mempunyai kuasa pengkomputeran yang mencukupi, tetapi ia boleh dikatakan tidak digunakan dalam model bank/thin client

Sebaliknya, model klien tebal menggunakan kuasa pemprosesan mesin tempatan: aplikasi itu sendiri diletakkan pada komputer klien. Contoh seni bina jenis ini ialah sistem ATM, di mana ATM adalah pelanggan dan pelayan ialah komputer pusat yang menyelenggara pangkalan data akaun pelanggan.

III.03.2. c Seni bina pelayan pelanggan dua dan tiga peringkat.

Semua seni bina yang dibincangkan di atas adalah dua peringkat. Mereka membezakan antara tahap pelanggan dan tahap pelayan. Tegasnya, IC terdiri daripada tiga peringkat logik:

· Tahap pengguna;

· Tahap permohonan:

· Lapisan data.

Oleh itu, dalam model dua peringkat, di mana hanya dua lapisan terlibat, masalah timbul dengan skalabiliti dan prestasi jika model klien nipis dipilih, atau masalah yang berkaitan dengan pengurusan sistem jika model klien tebal diambil. Masalah ini boleh dielakkan jika anda menggunakan model yang terdiri daripada tiga peringkat, di mana dua daripadanya adalah pelayan (Gamb. III-21).

Pelayan data

Sebenarnya, pelayan aplikasi dan pelayan data boleh ditempatkan pada mesin yang sama, tetapi mereka tidak boleh melaksanakan fungsi masing-masing. Perkara yang baik tentang model tiga peringkat ialah ia secara logik memisahkan pelaksanaan aplikasi dan pengurusan data.

Jadual III‑5 Aplikasi pelbagai jenis seni bina

Seni bina Permohonan
Pelanggan nipis dua peringkat 1 Sistem warisan yang tidak praktikal untuk memisahkan pelaksanaan aplikasi dan pengurusan data. 2 Aplikasi intensif pengiraan tetapi intensif data. 3 Aplikasi dengan jumlah data yang besar, tetapi jumlah pengiraan yang kecil.
Pelanggan tebal dua peringkat 1 Aplikasi di mana pengguna memerlukan pemprosesan data yang intensif, iaitu visualisasi data. 2 Aplikasi dengan set fungsi pengguna yang agak tetap digunakan pada persekitaran dengan kawalan sistem yang mantap.
Pelayan-pelanggan tiga peringkat 1 Aplikasi besar dengan sel dan beribu-ribu pelanggan 2 Aplikasi di mana kedua-dua data dan kaedah untuk memprosesnya kerap berubah. 3 Aplikasi yang mengintegrasikan data daripada banyak sumber.

Model ini sesuai untuk pelbagai jenis aplikasi, tetapi ia mengehadkan pembangun IS, yang mesti memutuskan tempat untuk menyediakan perkhidmatan, menyediakan sokongan untuk kebolehskalaan dan membangunkan alatan untuk menyambungkan pelanggan baharu.

III.03.2. d Seni bina objek teragih.

Pendekatan yang lebih umum disediakan oleh seni bina objek teragih, komponen utamanya adalah objek. Mereka menyediakan satu set perkhidmatan melalui antara muka mereka. Objek lain menghantar permintaan, tidak membuat perbezaan antara klien dan pelayan. Objek boleh didapati pada komputer yang berbeza pada rangkaian dan berinteraksi menggunakan perisian tengah, serupa dengan bas sistem, yang membolehkan anda menyambungkan pelbagai peranti dan menyokong interaksi antara peranti perkakasan.

Pengurus Pemandu ODBC
Pemandu 1
Pemandu K
DB 1
DB K
Bekerja dengan SQL

Seni bina ODBC merangkumi komponen berikut:

1. Permohonan (contohnya, IS). Ia melaksanakan tugas berikut: meminta sambungan kepada sumber data, menghantar pertanyaan SQL kepada sumber data, menerangkan kawasan storan dan format untuk pertanyaan SQL, memproses ralat dan memberitahu pengguna tentangnya, melakukan atau melancarkan transaksi, meminta sambungan kepada sumber data.

2. Pengurus Peranti. Ia memuatkan pemacu atas permintaan aplikasi, menawarkan antara muka tunggal kepada semua aplikasi, dan antara muka pentadbir ODBC adalah sama dan bebas daripada DBMS yang mana aplikasi akan berinteraksi. Pengurus Pemacu yang disediakan oleh Microsoft ialah DLL yang dimuatkan secara dinamik.

3. Pemandu bergantung pada DBMS. Pemacu ODBC ialah perpustakaan pautan dinamik (DLL) yang melaksanakan fungsi ODBC dan berinteraksi dengan sumber data. Pemacu ialah program yang memproses permintaan untuk beberapa fungsi khusus untuk DBMS (ia boleh mengubah suai permintaan mengikut DBMS) dan mengembalikan hasilnya kepada aplikasi. Setiap DBMS yang menyokong teknologi ODBC mesti menyediakan pembangun aplikasi dengan pemacu untuk DBMS tersebut.

4. Sumber data mengandungi maklumat kawalan yang ditentukan oleh pengguna, maklumat tentang sumber data dan digunakan untuk mengakses DBMS tertentu. Dalam kes ini, alat platform OS dan rangkaian digunakan.

Model dinamik

Model ini melibatkan banyak aspek, yang mana sekurang-kurangnya 5 rajah digunakan dalam UML, lihat perenggan. 2.04.2- 2.04.5.

Mari kita lihat aspek pengurusan. Model pengurusan melengkapkan model struktur.

Tidak kira bagaimana struktur sistem diterangkan, ia terdiri daripada satu set unit struktur (fungsi atau objek). Untuk membolehkan mereka berfungsi secara keseluruhan, mereka mesti dikawal, dan maklumat kawalan tidak tersedia dalam gambar rajah statik. Model kawalan mereka bentuk aliran kawalan antara sistem.

Terdapat dua jenis kawalan utama dalam sistem perisian.

1. Pengurusan berpusat.

2. Pengurusan berasaskan acara.

Pengurusan berpusat boleh:

· berhierarki- berdasarkan prinsip "panggilan-pulangan" (ini adalah cara program latihan paling kerap berfungsi)

· Model penghantar, yang digunakan untuk sistem selari.

DALAM model penghantar Diandaikan bahawa salah satu komponen sistem adalah penghantar. Ia menguruskan kedua-dua permulaan dan penutupan sistem dan penyelarasan proses sistem lain. Proses boleh berjalan selari antara satu sama lain. Proses ialah program, subsistem atau prosedur yang sedang berjalan. Model ini juga boleh digunakan dalam sistem berjujukan, di mana program kawalan memanggil subsistem individu bergantung pada beberapa pembolehubah keadaan (melalui operator kes).

Pengurusan acara menganggap ketiadaan mana-mana subrutin yang bertanggungjawab untuk pengurusan. Kawalan dijalankan oleh peristiwa luaran: menekan butang tetikus, menekan papan kekunci, menukar bacaan sensor, menukar bacaan pemasa, dsb. Setiap acara luaran dikodkan dan diletakkan dalam baris gilir acara. Jika tindak balas kepada acara dalam baris gilir disediakan, maka prosedur (subrutin) yang bertindak balas kepada acara ini dipanggil. Peristiwa yang sistem bertindak balas boleh berlaku sama ada dalam subsistem lain atau dalam persekitaran luaran sistem.

Contoh pengurusan sedemikian ialah organisasi aplikasi dalam Windows.

Semua model struktur yang diterangkan sebelum ini boleh dilaksanakan menggunakan kawalan terpusat atau kawalan berasaskan peristiwa.

Antaramuka pengguna

Apabila membangunkan model antara muka, seseorang harus mengambil kira bukan sahaja tugas perisian yang direka, tetapi juga ciri-ciri otak yang berkaitan dengan persepsi maklumat.

III.03.4. a Ciri psikofizikal seseorang yang dikaitkan dengan persepsi dan pemprosesan maklumat.

Sebahagian daripada otak, yang secara kasar boleh dipanggil pemproses persepsi, sentiasa, tanpa penyertaan kesedaran, memproses maklumat yang masuk, membandingkannya dengan pengalaman lalu dan meletakkannya dalam simpanan.

Apabila imej visual menarik perhatian kita, maka maklumat yang kita minati memasuki ingatan jangka pendek. Jika perhatian kita tidak tertarik, maka maklumat dalam storan hilang, digantikan dengan bahagian berikut.

Pada setiap saat, tumpuan perhatian boleh ditetapkan pada satu titik, jadi jika terdapat keperluan untuk memantau beberapa situasi secara serentak, maka fokus bergerak dari satu objek yang dijejaki ke yang lain. Pada masa yang sama, perhatian tersebar, dan beberapa butiran mungkin terlepas. Ia juga penting bahawa persepsi sebahagian besarnya berdasarkan motivasi.

Apabila menukar bingkai, otak disekat untuk beberapa waktu: ia menguasai gambar baharu, menyerlahkan butiran yang paling penting. Ini bermakna jika respons pengguna yang cepat diperlukan, maka anda tidak seharusnya menukar gambar secara tiba-tiba.

Ingatan jangka pendek adalah kesesakan dalam sistem pemprosesan maklumat manusia. Kapasitinya ialah 7±2 objek tidak bersambung. Maklumat yang tidak dituntut disimpan di sana selama tidak lebih daripada 30 saat. Untuk tidak melupakan beberapa maklumat yang penting kepada kami, kami biasanya mengulanginya kepada diri sendiri, mengemas kini maklumat dalam ingatan jangka pendek. Oleh itu, apabila mereka bentuk antara muka, perlu diingat bahawa sebahagian besar mendapati sukar, sebagai contoh, untuk mengingati dan memasukkan nombor yang mengandungi lebih daripada lima digit pada skrin lain.

Walaupun pada hakikatnya kapasiti dan masa penyimpanan ingatan jangka panjang adalah tidak terhad, akses kepada maklumat adalah sangat sukar. Mekanisme untuk mendapatkan maklumat daripada ingatan jangka panjang adalah bersifat bersekutu. Untuk meningkatkan hafalan maklumat, ia terikat dengan data yang telah disimpan oleh memori dan memudahkan untuk mendapatkan semula. Oleh kerana ingatan jangka panjang sukar untuk diakses, adalah wajar untuk tidak bergantung pada pengguna mengingati maklumat, tetapi pada pengguna yang mengenalinya.

III.03.4. b Kriteria asas untuk menilai antara muka

Banyak tinjauan dan tinjauan yang dijalankan oleh firma pembangunan perisian terkemuka telah menunjukkan nilai pengguna dalam antara muka:

1) kemudahan pembelajaran dan hafalan - secara khusus menilai masa pembelajaran dan tempoh menyimpan maklumat dan ingatan;

2) kelajuan mencapai hasil apabila menggunakan sistem, yang ditentukan oleh bilangan arahan dan tetapan yang dimasukkan atau dipilih oleh tetikus;

3) kepuasan subjektif dengan operasi sistem (kemudahan operasi, keletihan, dll.).

Lebih-lebih lagi, bagi pengguna profesional yang sentiasa bekerja dengan pakej yang sama, kriteria kedua dan ketiga dengan cepat muncul di atas, dan bagi pengguna bukan profesional yang bekerja dengan perisian secara berkala dan melakukan tugas yang agak mudah - yang pertama dan ketiga.

Dari sudut pandangan ini, hari ini ciri terbaik untuk pengguna profesional ialah antara muka dengan navigasi percuma, dan untuk pengguna bukan profesional - antara muka manipulasi langsung. Telah lama diperhatikan bahawa apabila melakukan operasi menyalin fail, semua perkara lain adalah sama, kebanyakan profesional menggunakan cangkerang seperti Far, dan bukan profesional menggunakan Windows "seret dan lepas objek".

III.03.4. c Jenis antara muka pengguna

Jenis antara muka pengguna berikut dibezakan:

Primitif

Dengan navigasi percuma

Manipulasi langsung.

Antara muka adalah primitif

Primitif dipanggil antara muka yang mengatur interaksi pengguna dan digunakan dalam mod konsol. Satu-satunya sisihan daripada proses berjujukan yang disediakan oleh data ialah organisasi gelung untuk memproses berbilang set data.

Antara muka menu.

Tidak seperti antara muka primitif, ia membolehkan pengguna memilih operasi daripada senarai khas yang dipaparkan kepadanya oleh program. Antara muka ini melibatkan pelaksanaan banyak senario kerja, urutan tindakan yang ditentukan oleh pengguna. Organisasi menu seperti pokok menunjukkan bahawa mencari item dalam lebih daripada menu dua peringkat ternyata menjadi tugas yang agak sukar.


berdasarkan persekitaran pengkomputeran berbilang saluran paip yang boleh dikonfigurasikan semula L-Net

Salah satu masalah semasa dalam bidang sistem kawalan ialah pembangunan perisian untuk sistem kawalan toleransi kesalahan teragih. Penyelesaian yang wujud dalam bidang ini hari ini adalah proprietari dan, akibatnya, mahal dan tidak selalu berkesan.

Penyelesaian ini tidak menyediakan penggunaan cekap sumber pangkalan data sandaran, kedua-dua teknikal dan perisian, yang memberi kesan negatif kepada kedua-dua toleransi kesalahan dan kebolehskalaan penyelesaian tersebut. Jika seni bina rangkaian dilanggar, tidak ada kemungkinan konfigurasi semula dinamik kedua-dua proses pemprosesan maklumat dan penghantaran aliran data (kedua-dua kawalan dan maklumat). Penggunaan mikropengawal khusus dan penggunaan DCS/SCADA merumitkan pembangunan dan sokongan sistem dan pengembangan fungsinya.

Seni bina sistem kawalan teragih

Seni bina tipikal umum bagi sistem kawalan teragih (DCS) merangkumi tiga tahap yang berkaitan secara hierarki: tahap operator, tahap kawalan dan tahap input/output (lihat Rajah 1).

Tugas utama peringkat operator adalah untuk menyediakan antara muka mesin manusia (HMI) untuk mengkonfigurasi dan mengawal fungsi keseluruhan sistem. Tahap kawalan bertanggungjawab untuk menerima dan memproses data daripada penderia, menghantar data ke peringkat operator dan membangunkan tindakan kawalan pada penggerak. Tahap input-output mewakili penderia dan penggerak yang disambungkan terus ke objek kawalan.

Tugas perisian, dalam rangka kerja seni bina DCS umum, adalah untuk memastikan fungsi tahap operator dan sambungannya dengan tahap kawalan sistem. Akibatnya, tahap asas apabila mereka bentuk perisian dan menyelesaikan isu interaksinya dengan perkakasan ialah tahap operator. Perisian mesti menggunakan sumber perkakasan sistem yang tersedia dengan paling cekap sambil menjadi sebebas mungkin daripada seni bina perkakasan dalaman.

Perkakasan menyediakan sumber pengkomputeran, memori dan media komunikasi antara nod dalam sistem. Apabila mereka bentuk seni bina umum sistem, nod peringkat I/O tertentu yang akan disambungkan kepadanya dalam pelaksanaan khusus tidak dipertimbangkan; oleh itu, seni bina umum mempertimbangkan tahap operator dan tahap kawalan. Perkakasan mestilah meluas, memenuhi piawaian moden, dan mempunyai semua sifat dan keupayaan yang diperlukan untuk melaksanakan seni bina.

Keperluan untuk DCS

Keperluan untuk DCS bukan sahaja berkaitan dengan sistem secara keseluruhan, tetapi juga komponen perkakasan dan perisiannya secara berasingan, memandangkan pendekatan khusus untuk memenuhi keperluan ini bagi komponen ini mungkin berbeza secara asas. DCS mesti pertama sekali bertolak ansur dengan kesalahan. Kaedah paling mudah untuk meningkatkan toleransi kesalahan ialah redundansi (penduaan) unit berfungsi atau gabungannya. Sifat penting kedua ialah kebolehskalaan. Kebolehskalaan adalah berdasarkan pelaksanaan algoritma khas dalam perisian dan keupayaan perkakasan untuk menggantikan dan menambah nod baharu atau komponennya. Pada masa yang sama, sistem mesti kekal mudah untuk operasinya, pembangunan unit atau modul baharu dan pengubahsuaian seni binanya.

Gambaran keseluruhan seni bina DCS

Untuk menjalankan semakan seni bina DCS, kami memilih Siemens SIMATIC PCS 7 DCS sebagai salah satu yang paling popular di pasaran dan RTS S3 sebagai DCS yang dilaksanakan berdasarkan QNX RTOS.

Siemens SIMATIC PCS 7

Seni bina sistem mempunyai semua sifat seni bina DCS umum. Stesen operator ialah komputer berdasarkan seni bina pemproses x86 dengan OS Windows dan pakej Siemens WinCC, yang menyediakan HMI. Terdapat pelayan dengan pangkalan data. Stesen operator, stesen kejuruteraan dan pelayan disambungkan oleh rangkaian tempatan berdasarkan Ethernet. Lapisan operator dikaitkan dengan lapisan pengurusan rangkaian Ethernet Industri yang berlebihan. Di peringkat kawalan terdapat pengawal logik boleh atur cara (PLC) dengan kemungkinan redundansi disebabkan pertindihan fungsi. Ia adalah mungkin untuk menyambung ke sistem luaran dan rangkaian dan mengatur akses jauh ke sistem.

RTS S3

Seni bina ini juga terdiri daripada tahap struktur DCS umum. Stesen operator adalah berdasarkan platform perkakasan yang sama seperti SIMATIC DCS, tetapi boleh dikawal sama ada oleh Windows atau Linux OS. Stesen kejuruteraan digabungkan dengan stesen pengendali. Sistem ini menyediakan persekitaran pembangunan aplikasi yang bersatu. Rangkaian Ethernet menghubungkan nod dalam lapisan operator dan lapisan operator itu sendiri ke lapisan kawalan menggunakan susunan protokol TCP/IP. Di peringkat kawalan terdapat komputer industri yang menjalankan OS QNX dengan pangkalan data mereka sendiri dan kemungkinan redundansi dengan menduplikasi kefungsian nod.

Kelemahan sistem yang diterangkan

Dalam sistem yang diterangkan di atas, platform perkakasan dan perisian yang berbeza digunakan untuk tahap operator dan tahap kawalan. Dalam peringkat operator, hanya satu seni bina pemproses boleh digunakan, dan stesen kejuruteraan khas diperlukan untuk mengkonfigurasi dan membangunkan tahap kawalan. DCS ini menawarkan, sebagai cara untuk meningkatkan toleransi kesalahan, hanya lebihan perkakasan dengan penduaan kefungsian nod berlebihan, yang merupakan penggunaan perkakasan berlebihan yang tidak rasional.

Ciri dan ciri fungsi sistem L-Net

Apabila membangunkan sistem L-Net, tugasnya adalah untuk mencipta sistem kawalan yang akan mempunyai ciri-ciri berikut:

  • Konfigurasi semula dinamik dengan pemulihan penuh fungsi dengan kerugian minimum sekiranya berlaku kegagalan hos atau gangguan topologi rangkaian.
  • Pengagihan tugas yang berkesan antara nod rangkaian cekap yang tersedia.
  • Penduaan saluran komunikasi antara nod dengan konfigurasi semula dinamik aliran data.
  • Kemudahan operasi dan penskalaan sistem.
  • Kemudahalihan dan kebolehkendalian sistem pada mana-mana platform perkakasan yang bertujuan untuk membina sistem kawalan dan sistem terbenam.

Untuk membina sistem dengan ciri-ciri yang diterangkan di atas, anda memerlukan sistem pengendalian yang direka terutamanya untuk mencipta sistem kawalan dan sistem terbenam. Analisis sistem pengendalian sedia ada menunjukkan bahawa sistem pengendalian yang paling sesuai ialah QNX 6 (Neutrino), yang mempunyai keupayaan pengagihan sumber dan rangkaian yang sangat berkesan. Keupayaan rangkaian yang luas disediakan oleh protokol rangkaian Qnet. Ia menyelesaikan masalah kebolehpercayaan dan pengimbangan beban dinamik saluran komunikasi, tetapi ia tidak menyelesaikan masalah toleransi kesalahan sistem secara keseluruhan. Hasilnya, sistem kawalan yang inovatif telah dibangunkan berdasarkan persekitaran pengkomputeran berbilang saluran paip yang diedarkan, boleh dikonfigurasikan semula. Sistem yang dibangunkan mempunyai seni bina peer-to-peer yang merangkumi tiga blok logik: blok input-output, blok suis tujuan umum dan blok persekitaran pengkomputeran boleh konfigurasi semula (RCE) (lihat Rajah 2).

Kelebihan utama seni bina ini ialah:

  • Jenis rakan sebaya
  • Desentralisasi
  • Kebolehskalaan
  • Pengagihan spatial

Ciri-ciri fungsi seni bina ini:

  • Pemprosesan saluran paip
  • Lebihan perkakasan
  • Pengagihan beban
  • Konfigurasi semula secara on-the-fly

Pada peringkat pertama seni bina terdapat blok input/output (I/O), yang merangkumi: nod input/output, suis nod input/output, antara muka input/output, sensor dan penggerak. Blok bertanggungjawab untuk mekanisme asas untuk menjana tindakan kawalan berdasarkan data daripada penderia tempatan dan data yang diterima daripada peringkat lain sistem kawalan. Tugasan yang diberikan diagihkan di kalangan nod I/O yang sihat berdasarkan prestasi relatif semasanya atau secara manual oleh pengendali. Penderia dan penggerak disambungkan melalui bas ke semua nod I/O dalam blok, yang membenarkan mana-mana nod meninjau mana-mana penderia atau bertindak pada mana-mana penggerak. Suis nod I/O menyediakan komunikasi antara semua nod I/O untuk menukar data antara mereka dan tahap lain seni bina sistem untuk menerima data kawalan dan maklumat. Dengan keupayaan perkakasan yang sesuai, nod berkomunikasi secara langsung antara satu sama lain dan dengan nod dan suis pada tahap lain sistem, yang mengurangkan masa tindak balas dalam rangkaian. Komunikasi langsung antara nod dan beban kerja tertentu nod dalam mod operasi semasa blok I/O memungkinkan untuk mengatur dalam blok pengiraan saluran paip yang diperlukan untuk operasi blok ini tanpa menggunakan kuasa pengkomputeran luaran sistem kawalan ( RCS), yang memungkinkan untuk menggunakan sumber percuma yang disediakan secara berkesan untuk nod redundansi blok I/O pada masa kegagalan.

Blok suis tujuan umum, terletak di peringkat kedua seni bina, mengatur talian komunikasi antara blok I/O dan RCS dan sistem luaran. Setiap suis boleh menyambung pautan dan suis yang berbeza dalam keseluruhan sistem kawalan. Bilangan talian komunikasi ditentukan oleh keupayaan perkakasan nod dan suis yang disertakan dalam blok. Memandangkan rangkaian Qnet membenarkan pengedaran dinamik aliran pemindahan data, penskalaan blok ini dijalankan dengan hanya menyambungkan peranti baharu dan tidak memerlukan konfigurasi, dan jika salah satu suis gagal, pemindahan data antara nod tidak akan terganggu jika suis lain menyediakan komunikasi yang sama antara nod atau mereka berkaitan secara langsung. Dalam kes ini, adalah perlu untuk menjaga lebar jalur rangkaian yang mencukupi yang diperlukan untuk menyandarkan suis yang gagal.

Blok rangkaian komputer (RCN) boleh dikonfigurasikan semula, terletak di peringkat ketiga seni bina, menyediakan sistem pengurusan kuasa pengkomputeran tinggi untuk menyelesaikan masalah kompleks pemprosesan maklumat, membuat keputusan, pengiktirafan, dll. Blok bertanggungjawab untuk memulakan keseluruhan sistem kawalan: menyemak kebolehkendalian suis dan nod, integriti rangkaian, membina graf rangkaian keseluruhan sistem, menetapkan parameter permulaan untuk operasi blok I/O. Nod blok ini menyediakan pengarkiban kedua-dua data dan data mereka sendiri daripada blok I/O. Setiap nod blok ini boleh memainkan peranan sebagai mesin pengendali, yang direka untuk memantau operasi sistem dan membuat pelarasan pada program pengendalian kedua-dua nod ini dan semua nod sistem, melaksanakan konfigurasi semula atas permintaan.

Pengagihan beban

Salah satu tugas utama sistem L-Net adalah untuk mengagihkan beban pengkomputeran pada nod rangkaian. Penyelesaian kepada masalah ini adalah berdasarkan pembinaan saluran paip pengiraan. Untuk membina saluran paip pengiraan, graf tugas mula-mula dibina - skema untuk menukar aliran data dari sumber kepada penerima. Penderia bertindak sebagai sumber, dan penggerak bertindak sebagai penerima. Saluran paip pengiraan itu sendiri ialah pemetaan graf tugas (lihat Rajah 3) ke graf rangkaian komputer (lihat Rajah 4), dengan mengambil kira keperluan tugas untuk sumber pengkomputeran sistem dan keadaan semasanya.

Penyelesaiannya adalah dengan menggunakan perkhidmatan yang menyediakan penerima maklumat komprehensif tentang perkakasan semasa, keadaan dan sumber data yang tersedia, bekerja dengan rangkaian dan graf tugas. Akibatnya, prestasi meningkat disebabkan oleh saluran paip pengiraan dan penggunaan rasional semua sumber pengkomputeran yang tersedia untuk sistem disusun.

toleransi kesalahan

Masalah utama dengan fungsi sistem sedemikian ialah gangguan sepenuhnya saluran paip pengkomputeran jika mana-mana nod saluran paip ini gagal atau jika pemindahan data antara mereka terganggu. Cara asas protokol Qnet mencapai pemulihan sambungan antara nod apabila ia sebahagiannya terganggu disebabkan oleh talian sandaran yang disediakan oleh seni bina. Sistem L-Net menyelesaikan masalah memulihkan kefungsian sekiranya berlaku kegagalan sepenuhnya hos sistem pengkomputeran dengan mengkonfigurasi semula saluran paip pengkomputeran secara dinamik, i.e. menggunakan sumber kerja untuk menggantikan blok buruk. Sistem ini menyediakan tiga senario pemulihan (konfigurasi semula), berbeza dalam masa tindak balas kepada fakta kegagalan, masa pemulihan dan sumber perkakasan yang digunakan: apabila gagal, dengan kesediaan pasif, dengan kesediaan aktif.

  • Konfigurasi semula apabila gagal– selepas mengesan kegagalan, carian dibuat untuk perkakasan yang tersedia dan kemasukannya dalam graf tugas.
  • Konfigurasi semula dengan ketersediaan pasif– perkakasan berlebihan ditentukan terlebih dahulu, proses dilancarkan yang memastikan pelaksanaan bahagian atas graf tugas pada nod, sambungan diwujudkan, tetapi proses tidak memproses data melainkan nod utama gagal.
  • Konfigurasi semula dengan ketersediaan aktif– puncak graf tugasan dilaksanakan pada beberapa nod, yang melakukan pemprosesan data secara selari dan menghantar hasilnya.

Akibatnya, sistem disediakan dengan kesediaan yang fleksibel untuk kegagalan kedua-dua pada peringkat perisian dan perkakasan, keupayaan untuk menukar konfigurasi nod tanpa berhenti kerja dan kehilangan prestasi, sambil bebas daripada pelaksanaan rangkaian, pengkomputeran saluran paip dan nod .

Kesimpulan

Sistem L-Net yang dibangunkan, tidak seperti analog sedia ada, melibatkan penggunaan pelbagai ciri perkakasan nod DCS dengan keserasian perisian penuh mereka. Apabila nod beroperasi di bawah sistem pengendalian yang sama (QNX Neutrino), adalah mungkin untuk membinanya pada pelbagai seni bina pemproses (x86, ARM, MIPS, dll.) dengan pelbagai set antara muka dan peranti persisian. Pelaksanaan nod boleh dilakukan dalam bentuk desktop, PC industri, PC boleh pakai dan komputer papan tunggal. Semua komponen kompleks perisian DCS yang dibangunkan boleh dilancarkan pada mana-mana nodnya dengan OS QNX, sementara masih boleh menggunakan nod dengan sistem pengendalian lain. Pendekatan ini membolehkan setiap nod digunakan untuk menyelesaikan masalah pada kedua-dua peringkat operator dan peringkat pengurusan. Akibatnya, terdapat sistem interaksi yang fleksibel antara nod rakan sebaya tanpa hierarki tahap tegar yang wujud dalam seni bina DCS umum dan sistem menggunakan seni bina ini sebagai asas. Rangkaian peer-to-peer memudahkan proses penempatan, operasi, penskalaan dan penyahpepijatan sistem.

Untuk merealisasikan potensi pengkomputeran perkakasan berlebihan dalam sistem yang dibangunkan, konfigurasi dinamik dan algoritma konfigurasi semula berdasarkan protokol rangkaian Qnet dan perisian rangkaian L-Net dicadangkan. Algoritma konfigurasi dinamik adalah berdasarkan pengagihan beban pengkomputeran merentas semua nod dengan menyalurkan paip dan menyelaraskan tugas dan mengimbangi beban secara dinamik pada saluran penghantaran data antara nod. Algoritma konfigurasi semula sistem mengandaikan kehadiran tiga senario untuk memulihkan kebolehoperasian sekiranya berlaku kegagalan, bergantung pada perkakasan yang tersedia, keutamaan dan tugas yang diberikan kepada sistem: apabila kegagalan, dengan kesediaan pasif (peruntukan sumber) dan dengan kesediaan aktif ( penggunaan sumber). Konfigurasi dinamik dan algoritma konfigurasi semula meningkatkan prestasi dan kebolehpercayaan dengan memanfaatkan rizab perkakasan sedia ada dalam sistem.

Kelebihan penting sistem ialah ketelusan maksimum kedua-dua perkakasan dan teknologi perisian yang digunakan di dalamnya, yang memungkinkan untuk memudahkan sokongan teknikal sistem dan pembangunan modul baharu untuknya dengan ketara.

Kesimpulan

Penyelesaian seni bina yang dibangunkan memungkinkan untuk menambah baik penunjuk sistem kawalan teragih seperti kebolehpercayaan, prestasi, kos, skalabiliti dan kesederhanaan disebabkan oleh kemungkinan menggunakan pelbagai perkakasan, melaksanakan algoritma konfigurasi dinamik dan penggunaan sumber sistem yang rasional.

  1. http://kazanets.narod.ru/DCSIntro.htm.
  2. http://kazanets.narod.ru/PCS7Overview.htm.
  3. http://www.rts.ua/rus/news/678/0/409.
  4. Zyl S. QNX Momentics: asas aplikasi. – St. Petersburg: BHV-Petersburg, 2005.
  5. Krten R. Pengenalan kepada QNX Neutrino. Panduan untuk pembangunan aplikasi masa nyata. – St. Petersburg: BHV-Petersburg, 2011.

Kata kunci: sistem kawalan teragih, sokongan maklumat sistem kawalan, sistem boleh konfigurasi semula diedarkan.

Seni bina sistem kawalan teragih berdasarkan persekitaran pengkomputeran berbilang saluran paip yang boleh dikonfigurasikan semula L-Net

Sergey Yu. Potomskiy, Penolong Profesor Universiti Penyelidikan Kebangsaan "Sekolah Tinggi Ekonomi".

Nikita A. Poloyko, pelajar tahun kelima Universiti Penyelidikan Nasional "Sekolah Tinggi Ekonomi". Pembantu belajar. Pengaturcara. Bidang latihan: "Kawalan dan informatika dalam sistem teknikal."

Abstrak. Artikel ini ditumpukan kepada sistem kawalan teragih berdasarkan persekitaran pengkomputeran berbilang saluran paip yang boleh dikonfigurasikan semula. Seni bina sistem diberikan. Juga, ciri asas dan sifat fungsi sistem juga diberikan. Artikel ini membentangkan rasional untuk pilihan sistem pengendalian. Kelebihan asas sistem berbanding dengan perkembangan serupa yang sedia ada ditunjukkan dalam artikel.

Kata kunci: sistem kawalan teragih, sokongan perisian sistem, diedarkan boleh dikonfigurasikan semula.


Bersentuhan dengan

Menurut pakar terkenal dalam bidang sains komputer E. Tanenbaum, tidak ada definisi sistem teragih yang diterima umum dan pada masa yang sama. Sesetengah akal berpendapat bahawa diedarkan adalah sedemikian sistem pengkomputeran, di mana kerosakan komputer yang sebelum ini tidak diketahui oleh pengguna menyebabkan semua kerja mereka terhenti. Sebahagian penting sistem pengkomputeran teragih, malangnya, memenuhi definisi ini, tetapi secara rasmi ia hanya terpakai kepada sistem dengan titik kelemahan unik ( satu titik kegagalan).

Selalunya, apabila mentakrifkan sistem teragih, pembahagian fungsinya antara beberapa komputer adalah amat penting. Dengan pendekatan ini, mana-mana sistem pengkomputeran, di mana pemprosesan data dibahagikan antara dua atau lebih komputer. Berdasarkan takrifan E. Tanenbaum, sistem teragih yang agak lebih sempit boleh ditakrifkan sebagai satu set komputer bebas yang disambungkan oleh saluran komunikasi, yang dari sudut pandangan pengguna beberapa perisian kelihatan seperti satu keseluruhan.

Pendekatan untuk mentakrifkan sistem teragih ini mempunyai kelemahannya. Sebagai contoh, semua yang digunakan dalam sistem teragih sedemikian perisian boleh berfungsi pada satu komputer, walau bagaimanapun, dari sudut pandangan definisi di atas, sistem sedemikian tidak akan diedarkan lagi. Oleh itu, konsep sistem teragih mungkin harus berdasarkan analisis perisian yang membentuk sistem sedemikian.

Sebagai asas untuk menerangkan interaksi dua entiti, kami mempertimbangkan model umum interaksi klien-pelayan, di mana salah satu pihak (klien) memulakan pertukaran data dengan menghantar permintaan kepada pihak lain (pelayan). Pelayan memproses permintaan dan, jika perlu, menghantar respons kepada klien (Gamb. 1.1).


nasi. 1.1.

Interaksi dalam model pelanggan-pelayan boleh sama ada segerak, apabila pelanggan menunggu pelayan menyelesaikan pemprosesan permintaannya, atau tidak segerak, di mana pelanggan menghantar permintaan kepada pelayan dan meneruskan pelaksanaannya tanpa menunggu jawapan daripada pelayan. Model klien dan pelayan boleh digunakan sebagai asas untuk menerangkan pelbagai interaksi. Untuk kursus ini, interaksi bahagian komponen perisian yang membentuk sistem teragih adalah penting.


nasi. 1.2.

Mari kita pertimbangkan aplikasi biasa, yang, mengikut konsep moden, boleh dibahagikan kepada tahap logik berikut (Rajah 1.2): antaramuka pengguna(IP), logik aplikasi (AL) dan capaian data (DA), bekerja dengan pangkalan data (DB). Pengguna sistem berinteraksi dengannya melalui antara muka pengguna, pangkalan data menyimpan data yang menerangkan domain aplikasi, dan tahap logik aplikasi melaksanakan semua algoritma yang berkaitan dengan bidang subjek.

Memandangkan pada praktiknya, pengguna sistem yang berbeza biasanya berminat untuk mengakses data yang sama, cara paling mudah untuk mengagihkan fungsi sistem sedemikian merentasi beberapa komputer adalah dengan memisahkan tahap logik aplikasi antara satu bahagian pelayan aplikasi, yang bertanggungjawab. untuk mengakses data, dan bahagian klien yang terletak pada beberapa komputer. melaksanakan antara muka pengguna. Logik aplikasi boleh diberikan kepada pelayan, klien, atau dibahagikan antara mereka (Rajah 1.3).


nasi. 1.3.

Seni bina aplikasi yang dibina berdasarkan prinsip ini dipanggil pelayan pelanggan atau dua peringkat. Dalam amalan, sistem sedemikian sering tidak diklasifikasikan sebagai diedarkan, tetapi secara rasmi mereka boleh dianggap sebagai wakil paling mudah bagi sistem teragih.

Pembangunan seni bina pelayan pelanggan ialah seni bina tiga peringkat, di mana antara muka pengguna, logik aplikasi dan capaian data diasingkan kepada komponen bebas sistem yang boleh dijalankan pada komputer bebas (Rajah 1.4).


nasi. 1.4.

Permintaan pengguna dalam sistem sedemikian diproses secara berurutan oleh bahagian klien sistem, pelayan logik aplikasi dan pelayan pangkalan data. Walau bagaimanapun, biasanya sistem teragih difahami sebagai sistem dengan seni bina yang lebih kompleks daripada tiga peringkat.