2024-07-11
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Prosessien välillä tarvitaan yhteistyötä. Esimerkiksi kaikki koulun johtamistasot ovat yhteydessä toisiinsa, eikä niitä voida hallita vertikaalisesti. Juuri siksi, että prosessien on tehtävä yhteistyötä. Yhteistyön edellytyksenä on, että osa tiedoista on ilmoitusvalmiita, osa on yksinkertaisesti siirrettyä dataa.
Fakta: Prosessit ovat riippumattomia, prosessi = ytimen tietorakenne, koodi ja prosessin data
Prosessiviestinnän tarkoitus:
Prosessien välisen viestinnän kustannukset voivat olla hieman korkeammat: prosessit ovat itsenäisiä, eivätkä yhden prosessin avaamat resurssit näy toiselle prosessille. Kun puhuimme vanhempi-lapsi-prosessista, vanhemman prosessin tiedot periytyivät kommunikaatioon. Se voi olla peritty, mutta ei aina peritty ja pystyy aina välittämään tietoa.
Prosessien välisen viestinnän lähtökohta: anna eri prosessien nähdä ensin sama (käyttöjärjestelmä) resurssi ("pala muistia"). Nämä kaksi prosessia ovat toisistaan riippumattomia Kommunikoinnin aikaansaamiseksi tarvitaan työkalu, nimittäin käyttöjärjestelmä, joka mahdollistaa saman muistin. Käyttäjä määrittää syyn, miksi käyttöjärjestelmä tekee tämän.
Kuinka käskeä käyttöjärjestelmä luomaan resursseja:
Liukuhihna on pohjimmiltaan muistitason tiedosto, jota ei tarvitse tyhjentää levylle.
Ensinnäkin emoprosessi avaa tiedoston kahdesti luku- ja kirjoitustilassa Syy tiedoston avaamiseen kahdesti on hankkia kaksi struct-tiedostoobjektia, jotta tiedostolle on kaksi luku- ja kirjoitusosoitinta, jotta luku- ja kirjoitustoiminnot voidaan suorittaa. Käytä itsenäisiä osoittimia Tällä tavalla lukeminen ja kirjoittaminen eivät vaikuta toisiinsa.Luku-kirjoitusosoitin tallentaa nykyisen tiedoston luku- tai kirjoituspaikan, astruct file
Tiedostossa on vain yksi luku-kirjoitusosoitin Kun kirjoitat (tai luet) tiedostoon, luku-kirjoitusosoitin liikkuu ja sitten luku-kirjoitusosoitin ei enää ole alkuperäisessä paikassa eikä voi lukea juuri kirjoitettua sisältöä, joten sinun on avattava sama tiedosto kahdesti eri tavoilla. Luo sitten aliprosessi Aliprosessi perii ylätason prosessissa avatun tiedoston. Tällä hetkellä ylä- ja alatason prosessit jakavat saman tiedostoresurssin prosessi voi siirtää tiedostokuvaajan nro 4 tiedostoon kirjoitettaessa emoprosessi voi lukea tiedostosta tiedostokuvaajan nro 3 kautta. Tällä hetkellä ylä- ja lapsiprosessit toteuttavat tiedonsiirron eli viestinnän. . Pää- ja lapsiprosessit näkevät saman muistipuskurin, jota kutsumme tässä putkitiedostoksi. Putket sallivat vain yksisuuntaisen viestinnän yksinkertaisuuden vuoksi.
Miksi vanhempi-lapsi-prosessit tulostavat tiedot samaan näyttöpäätteeseen?
Koska vastaava aliprosessi perii emoprosessia vastaavan tiedostokuvaustaulukon ja osoittaa sitten samaan tiedostoon, mikä tarkoittaa, että pääprosessi kirjoittaa tiedoston ja aliprosessi myös kirjoittaa tiedoston, ja sama kirjoitetaan puskuriin, käyttöjärjestelmä huuhdellaan samaan näyttöön.
Prosessi avaa oletuksena kolme vakiotuloa ja vakiolähtöä: 0, 1, 2... Kuinka avata 0, 1, 2 oletuksena?
Kaikki komennot ovatbash
lapsiprosessi, niin kauan kuinbash
Kun se on päällä, kaikki lapsiprosessit ovat oletuksena käytössä.
Miksi aliprosessi sulkeutuu aktiivisesti (0/1/2) vaikuttamatta pääprosessin valvontatiedoston jatkuvaan käyttöön?
muistitason viitelaskenta--
, kun muistitason viitemäärä laskee nollaan, tiedostoresurssit vapautetaan.
Vanhemman ja lapsen välinen prosessi sulkee tarpeettomat tiedostokuvaajat, miksi ne piti avata aiemmin?
Jotta lapsiprosessi voi periä. Sitä ei tarvitse sulkea, mutta on suositeltavaa sulkea se vahingossa kirjoittamisen estämiseksi.
Miksi putket ovat yksisuuntaista viestintää?
Menetelmä on yksinkertainen, vähentää kehityskustannuksia ja mahdollistaa vain yksisuuntaisen tiedonsiirron. Kaikki tiedostot päivitetään puskuriin ja sitten tiedot päivitetään tiedostoon.
Yksinkertaiset putket, joita näemme elämässä, ovat kaikki yksisuuntaisia, kuten vesiputket, joissa on yksi sisäänkäynti ja yksi uloskäynti, mikä vastaa putkistojen ominaisuuksia.
voi käyttääpipe
Nimettömän putken luomiseksi parametrit eivät vaadi tiedostopolkua ja tiedoston nimeä
int pipe(int pipefd[2]);