ఫోర్క్ () మరియు vfork () మధ్య వ్యత్యాసం
విషయము
రెండు ఫోర్క్ () మరియు vfork () ఉన్నాయి సిస్టమ్ కాల్స్ ఇది ఫోర్క్ () లేదా vfork () ను ప్రారంభించిన ప్రక్రియకు సమానమైన క్రొత్త ప్రక్రియను సృష్టిస్తుంది. ఉపయోగించి ఫోర్క్ () తల్లిదండ్రులు మరియు పిల్లల ప్రక్రియను ఏకకాలంలో అమలు చేయడానికి అనుమతిస్తుంది. మరొక మార్గం, vfork () పిల్లల ప్రక్రియ దాని అమలు పూర్తయ్యే వరకు పేరెంట్ ప్రాసెస్ అమలును నిలిపివేస్తుంది. ఫోర్క్ () మరియు vfork () సిస్టమ్ కాల్ మధ్య ప్రాధమిక వ్యత్యాసం ఏమిటంటే, ఫోర్క్ ఉపయోగించి సృష్టించబడిన పిల్లల ప్రక్రియకు మాతృ ప్రక్రియ వలె ప్రత్యేక చిరునామా స్థలం ఉంటుంది. మరోవైపు, vfork ఉపయోగించి సృష్టించబడిన పిల్లల ప్రక్రియ దాని మాతృ ప్రక్రియ యొక్క చిరునామా స్థలాన్ని పంచుకోవాలి.
క్రింద చూపిన పోలిక చార్ట్ సహాయంతో ఫోర్క్ () మరియు vfork () మధ్య కొన్ని తేడాలు కనుగొందాం.
- పోలిక చార్ట్
- నిర్వచనం
- కీ తేడాలు
- ముగింపు
పోలిక చార్ట్
పోలిక కోసం ఆధారం | ఫోర్క్ () | vfork () |
---|---|---|
ప్రాథమిక | పిల్లల ప్రక్రియ మరియు మాతృ ప్రక్రియకు ప్రత్యేక చిరునామా ఖాళీలు ఉన్నాయి. | పిల్లల ప్రక్రియ మరియు మాతృ ప్రక్రియ ఒకే చిరునామా స్థలాన్ని పంచుకుంటాయి. |
అమలు | తల్లిదండ్రుల మరియు పిల్లల ప్రక్రియ ఒకేసారి అమలు చేస్తుంది. | పిల్లల ప్రక్రియ దాని అమలు పూర్తయ్యే వరకు తల్లిదండ్రుల ప్రక్రియ నిలిపివేయబడుతుంది. |
సవరణ | పిల్లల ప్రక్రియ చిరునామా స్థలంలో ఏదైనా పేజీని మారుస్తే, చిరునామా స్థలం వేరుగా ఉన్నందున ఇది మాతృ ప్రక్రియకు కనిపించదు. | పిల్లల ప్రాసెస్ చిరునామా స్థలంలో ఏదైనా పేజీని మార్చుకుంటే, వారు ఒకే చిరునామా స్థలాన్ని పంచుకున్నప్పుడు అది మాతృ ప్రక్రియకు కనిపిస్తుంది. |
కాపీ వ్రాసిన | ఫోర్క్ () కాపీ-ఆన్-రైట్ను ప్రత్యామ్నాయంగా ఉపయోగిస్తుంది, ఇక్కడ తల్లిదండ్రులు మరియు పిల్లలు ఒకే పేజీలను పంచుకుంటారు, వారిలో ఎవరైనా భాగస్వామ్య పేజీని సవరించే వరకు. | vfork () కాపీ-ఆన్-రైట్ ఉపయోగించదు. |
ఫోర్క్ యొక్క నిర్వచనం ()
ది ఫోర్క్ () సృష్టించడానికి సిస్టమ్ కాల్ ఉపయోగం కొత్త ప్రక్రియ. ఫోర్క్ () కాల్ ద్వారా సృష్టించబడిన క్రొత్త ప్రక్రియ చైల్డ్ ప్రాసెస్, ఫోర్క్ () సిస్టమ్ కాల్ను ప్రారంభించిన ప్రక్రియ. పిల్లల ప్రక్రియ యొక్క కోడ్ దాని మాతృ ప్రక్రియ యొక్క కోడ్తో సమానంగా ఉంటుంది. పిల్లల ప్రక్రియను సృష్టించిన తరువాత, రెండు ప్రక్రియలు, అంటే తల్లిదండ్రులు మరియు పిల్లల ప్రక్రియ ఫోర్క్ () తర్వాత తదుపరి స్టేట్మెంట్ నుండి వారి అమలును ప్రారంభిస్తాయి మరియు రెండు ప్రక్రియలు అమలు చేయబడతాయి ఏకకాలంలో.
తల్లిదండ్రుల ప్రక్రియ మరియు పిల్లల ప్రక్రియ ఉన్నాయి ప్రత్యేక చిరునామా స్థలం. అందువల్ల, ఏదైనా ప్రక్రియలు కోడ్లోని ఏదైనా స్టేట్మెంట్ లేదా వేరియబుల్ను సవరించినప్పుడు. ఇది ఇతర ప్రాసెస్ కోడ్లలో ప్రతిబింబించదు. పిల్లల ప్రక్రియ కోడ్ను సవరించినట్లయితే అది మాతృ ప్రక్రియను ప్రభావితం చేయదు.
వారి సృష్టి తర్వాత కొన్ని పిల్లల ప్రక్రియ వెంటనే పిలుస్తుంది కార్యనిర్వాహకుడు (). ఎగ్జిక్యూట్ () సిస్టమ్ కాల్ ప్రక్రియను భర్తీ చేస్తుంది దాని పరామితిలో పేర్కొన్న ప్రోగ్రామ్తో. అప్పుడు పిల్లల ప్రక్రియ యొక్క ప్రత్యేక చిరునామా స్థలం ఉపయోగం లేదు. ఇక్కడ ఒక ప్రత్యామ్నాయం కాపీ-ఆన్-రైట్.
ది కాపీ వ్రాసిన ఒకే చిరునామా స్థలాన్ని పంచుకోవడానికి తల్లిదండ్రులు మరియు పిల్లల ప్రక్రియను అనుమతించండి. ఏదైనా ప్రక్రియలు చిరునామా స్థలంలోని పేజీలలో వ్రాస్తే, ప్రక్రియ రెండూ స్వతంత్రంగా పనిచేయడానికి వీలుగా చిరునామా స్థలం యొక్క కాపీ సృష్టించబడుతుంది.
Vfork () యొక్క నిర్వచనం
ఫోర్క్ () యొక్క సవరించిన సంస్కరణ vfork (). ది vfork () క్రొత్త ప్రక్రియను సృష్టించడానికి సిస్టమ్ కాల్ కూడా ఉపయోగించబడుతుంది. ఫోర్క్ () మాదిరిగానే, ఇక్కడ కూడా సృష్టించబడిన క్రొత్త ప్రక్రియ పిల్లల ప్రక్రియ, vfork () ను ప్రారంభించిన ప్రక్రియ. పిల్లల ప్రాసెస్ కోడ్ పేరెంట్ ప్రాసెస్ కోడ్కు సమానంగా ఉంటుంది. ఇక్కడ, పిల్లల ప్రక్రియ అమలును నిలిపివేస్తుంది పేరెంట్ ప్రాసెస్ దాని అమలును పూర్తి చేసేవరకు ఈ ప్రక్రియ రెండూ ఒకే చిరునామా స్థలాన్ని ఉపయోగించుకుంటాయి.
పిల్లల మరియు తల్లిదండ్రుల ప్రక్రియ పంచుకున్నప్పుడు అదే చిరునామా స్థలం. ఏదైనా ప్రక్రియలు కోడ్ను సవరించినట్లయితే, అదే పేజీలను పంచుకునే ఇతర ప్రక్రియకు ఇది కనిపిస్తుంది. పేరెంట్ ప్రాసెస్ కోడ్ను మార్చుకుంటే మనం అనుకుందాం; ఇది పిల్లల ప్రక్రియ యొక్క కోడ్లో ప్రతిబింబిస్తుంది.
Vfork () ను ఉపయోగించడం వలన పిల్లల మరియు మాతృ ప్రక్రియల కోసం ప్రత్యేక చిరునామా ఖాళీలు సృష్టించబడవు. అందువల్ల, అది ఉండాలి అమలు పిల్లల ప్రక్రియ కాల్స్ కార్యనిర్వాహకుడు () అది సృష్టించిన వెంటనే. కాబట్టి, చిరునామా స్థలం వృథా కాదు, మరియు అది సమర్థవంతమైన ప్రక్రియను సృష్టించే మార్గం. vfork ఉపయోగించదు కాపీ వ్రాసిన.
- ఫోర్క్ మరియు విఫోర్క్ మధ్య ప్రాధమిక వ్యత్యాసం ఏమిటంటే, పిల్లల ప్రక్రియ సృష్టించినది ఫోర్క్ ఒక ప్రత్యేక మెమరీ స్థలం మాతృ ప్రక్రియ నుండి. అయితే, పిల్లల ప్రక్రియ సృష్టించబడింది vfork సిస్టమ్ కాల్ షేర్లు అదే చిరునామా స్థలం దాని మాతృ ప్రక్రియ.
- పిల్లల ప్రక్రియ ఫోర్క్ ఉపయోగించి సృష్టించబడింది ఏకకాలంలో అమలు చేయండి మాతృ ప్రక్రియతో. మరోవైపు, పిల్లల ప్రక్రియ vfork ఉపయోగించి సృష్టించబడింది సస్పెండ్ పేరెంట్ ప్రాసెస్ అమలు దాని పూర్తయ్యే వరకు అమలు.
- పేరెంట్ మరియు చైల్డ్ ప్రాసెస్ యొక్క మెమరీ స్థలం వేరే ప్రాసెస్ అయినందున ఏదైనా ప్రక్రియ ఇతర పేజీలను ప్రభావితం చేయదు. ఏదేమైనా, తల్లిదండ్రులు మరియు పిల్లల ప్రక్రియ పంచుకున్నప్పుడు, ఏదైనా ప్రక్రియ చేసిన మెమరీ చిరునామా సవరణ చిరునామా స్థలంలో ప్రతిబింబిస్తుంది.
- సిస్టమ్ కాల్ ఫోర్క్ () ఉపయోగిస్తుంది కాపీ వ్రాసిన ప్రత్యామ్నాయంగా, పిల్లల మరియు తల్లిదండ్రుల ప్రక్రియ ఏవైనా పేజీలను సవరించే వరకు ఒకే చిరునామా స్థలాన్ని పంచుకునేందుకు వీలు కల్పిస్తుంది. మరోవైపు, vfork కాపీ-ఆన్-రైట్ ఉపయోగించదు.
ముగింపు:
ఫోర్క్ () ను ఉపయోగించి సృష్టించిన వెంటనే చైల్డ్ ప్రాసెస్ కాల్ ఎగ్జిక్యూట్ () చేసినప్పుడు vfork () సిస్టమ్ కాల్ అమలు చేయాలి. పిల్లల మరియు తల్లిదండ్రుల ప్రక్రియ కోసం ప్రత్యేక చిరునామా స్థలం ఇక్కడ ఉపయోగపడదు.