OS లో సెమాఫోర్ మరియు మానిటర్ మధ్య వ్యత్యాసం
విషయము
సెమాఫోర్ మరియు మానిటర్ రెండూ పరస్పర మినహాయింపులో భాగస్వామ్య వనరులను యాక్సెస్ చేయడానికి ప్రక్రియలను అనుమతిస్తాయి. రెండూ ప్రాసెస్ సింక్రొనైజేషన్ సాధనం. బదులుగా, అవి ఒకదానికొకటి చాలా భిన్నంగా ఉంటాయి. ఎక్కడ సెమాఫోర్ పూర్ణాంక వేరియబుల్, ఇది ప్రారంభించడం కాకుండా వేచి () మరియు సిగ్నల్ () ఆపరేషన్ ద్వారా మాత్రమే నిర్వహించబడుతుంది. మరోవైపు, ది మానిటర్ రకం అనేది ఒక వియుక్త డేటా రకం, దీని నిర్మాణం ఒక ప్రక్రియను ఒక సమయంలో సక్రియం చేయడానికి అనుమతిస్తుంది. ఈ వ్యాసంలో, సెమాఫోర్ మరియు మానిటర్ మధ్య తేడాలను క్రింద చూపిన పోలిక చార్ట్ సహాయంతో చర్చిస్తాము.
- పోలిక చార్ట్
- నిర్వచనం
- కీ తేడాలు
- ముగింపు
పోలిక చార్ట్
పోలిక కోసం ఆధారం | సెమాఫోర్ | మానిటర్ |
---|---|---|
ప్రాథమిక | సెమాఫోర్స్ ఒక పూర్ణాంక వేరియబుల్ S. | మానిటర్ ఒక నైరూప్య డేటా రకం. |
యాక్షన్ | సెమాఫోర్ ఎస్ యొక్క విలువ వ్యవస్థలో భాగస్వామ్య వనరుల సంఖ్యను సూచిస్తుంది | మానిటర్ రకం షేర్డ్ వేరియబుల్స్ మరియు షేర్డ్ వేరియబుల్పై పనిచేసే విధానాల సమితిని కలిగి ఉంటుంది. |
యాక్సెస్ | ఏదైనా ప్రక్రియ భాగస్వామ్య వనరులను యాక్సెస్ చేసినప్పుడు అది S లో వేచి () ఆపరేషన్ చేస్తుంది మరియు భాగస్వామ్య వనరులను విడుదల చేసినప్పుడు అది S పై సిగ్నల్ () ఆపరేషన్ చేస్తుంది. | ఏదైనా ప్రక్రియ మానిటర్లోని షేర్డ్ వేరియబుల్స్ను యాక్సెస్ చేయాలనుకున్నప్పుడు, దానిని విధానాల ద్వారా యాక్సెస్ చేయాలి. |
కండిషన్ వేరియబుల్ | సెమాఫోర్లో కండిషన్ వేరియబుల్స్ లేవు. | మానిటర్లో కండిషన్ వేరియబుల్స్ ఉన్నాయి. |
సెమాఫోర్ యొక్క నిర్వచనం
ప్రాసెస్ సింక్రొనైజేషన్ సాధనం కావడం, సెమాఫోర్ ఒక పూర్ణాంక వేరియబుల్ S. ఈ పూర్ణాంక వేరియబుల్ S కి ప్రారంభించబడింది వనరుల సంఖ్య వ్యవస్థలో ఉంది. సెమాఫోర్ S యొక్క విలువను రెండు ఫంక్షన్ల ద్వారా మాత్రమే సవరించవచ్చు వేచి() మరియు సిగ్నల్() ప్రారంభించడం కాకుండా.
నిరీక్షణ () మరియు సిగ్నల్ () ఆపరేషన్ సెమాఫోర్ S యొక్క విలువను విడదీయరాని విధంగా మారుస్తుంది. ఒక ప్రక్రియ సెమాఫోర్ విలువను సవరించేటప్పుడు, ఇతర ప్రక్రియలు సెమాఫోర్ విలువను ఏకకాలంలో సవరించలేవు. ఇంకా, ఆపరేటింగ్ సిస్టమ్ సెమాఫోర్ను కౌంటింగ్ సెమాఫోర్స్ మరియు బైనరీ సెమాఫోర్ అనే రెండు విభాగాలలో వేరు చేస్తుంది.
లో సెమాఫోర్ లెక్కింపు, సెమాఫోర్ S యొక్క విలువ వ్యవస్థలో ఉన్న వనరుల సంఖ్యకు ప్రారంభించబడుతుంది. ఒక ప్రక్రియ భాగస్వామ్య వనరులను యాక్సెస్ చేయాలనుకున్నప్పుడు, అది పని చేస్తుంది వేచి() సెమాఫోర్లో ఆపరేషన్ decrements సెమాఫోర్ విలువ ఒకటి. ఇది భాగస్వామ్య వనరును విడుదల చేసినప్పుడు, ఇది a సిగ్నల్() సెమాఫోర్లో ఆపరేషన్ ఇంక్రిమెంట్ సెమాఫోర్ విలువ ఒకటి. సెమాఫోర్ కౌంట్ వెళ్ళినప్పుడు 0, అంటే అన్ని వనరులు ఆక్రమించబడ్డాయి ప్రక్రియల ద్వారా. సెమాఫోర్ కౌంట్ 0 అయినప్పుడు ఒక ప్రక్రియకు వనరును ఉపయోగించాల్సిన అవసరం ఉంటే, అది వేచి () ను అమలు చేస్తుంది బ్లాక్ భాగస్వామ్య వనరులను ఉపయోగించుకునే ప్రక్రియ దానిని విడుదల చేస్తుంది మరియు సెమాఫోర్ విలువ 0 కంటే ఎక్కువగా ఉంటుంది.
లో బైనరీ సెమాఫోర్, సెమాఫోర్ యొక్క విలువ 0 మరియు 1 మధ్య ఉంటుంది. ఇది మ్యూటెక్స్ లాక్తో సమానంగా ఉంటుంది, అయితే మ్యూటెక్స్ ఒక లాకింగ్ విధానం అయితే, సెమాఫోర్ ఒక సిగ్నలింగ్ విధానం. బైనరీ సెమాఫోర్లో, ఒక ప్రక్రియ వనరును యాక్సెస్ చేయాలనుకుంటే అది సెమాఫోర్లో వేచి () ఆపరేషన్ చేస్తుంది మరియు decrements 1 నుండి 0 వరకు సెమాఫోర్ విలువ. ప్రక్రియ వనరును విడుదల చేసినప్పుడు, అది a సిగ్నల్() సెమాఫోర్లో ఆపరేషన్ మరియు దాని విలువను 1 కి పెంచుతుంది. సెమాఫోర్ యొక్క విలువ 0 మరియు ఒక ప్రక్రియ వనరును యాక్సెస్ చేయాలనుకుంటే అది వేచి () ఆపరేషన్ చేస్తుంది మరియు వనరులను ఉపయోగించుకునే ప్రస్తుత ప్రక్రియ వనరును విడుదల చేసే వరకు తనను తాను నిరోధించుకుంటుంది.
మానిటర్ యొక్క నిర్వచనం
ప్రాసెస్ సింక్రొనైజేషన్ కోసం సెమాఫోర్ను ఉపయోగిస్తున్నప్పుడు సంభవించే సమయ లోపాలను అధిగమించడానికి, పరిశోధకులు ఉన్నత-స్థాయి సమకాలీకరణ నిర్మాణాన్ని ప్రవేశపెట్టారు, అనగా. మానిటర్ రకం. మానిటర్ రకం ఒక నైరూప్య డేటా రకం ప్రాసెస్ సింక్రొనైజేషన్ కోసం ఉపయోగించబడుతుంది.
నైరూప్య డేటా రకం మానిటర్ రకంగా ఉండటం షేర్డ్ డేటా వేరియబుల్స్ అవి అన్ని ప్రక్రియల ద్వారా భాగస్వామ్యం చేయబడతాయి మరియు కొన్ని ప్రోగ్రామర్-నిర్వచించబడ్డాయి కార్యకలాపాలు ఇది మానిటర్లోని పరస్పర మినహాయింపులో ప్రక్రియలను అమలు చేయడానికి అనుమతిస్తుంది. ఒక ప్రక్రియ చేయవచ్చు నేరుగా యాక్సెస్ చేయదు మానిటర్లో షేర్డ్ డేటా వేరియబుల్; ప్రక్రియ దానిని యాక్సెస్ చేయాలి విధానాల ద్వారా మానిటర్లో నిర్వచించబడింది, ఇది ఒక సమయంలో మానిటర్లో షేర్డ్ వేరియబుల్స్ను యాక్సెస్ చేయడానికి ఒక ప్రక్రియను మాత్రమే అనుమతిస్తుంది.
మానిటర్ యొక్క వాక్యనిర్మాణం క్రింది విధంగా ఉంటుంది:
మానిటర్ మానిటర్_పేరు shared // షేర్డ్ వేరియబుల్ డిక్లరేషన్ విధానం P1 (...)}} విధానం P2 (..) {} విధానం Pn (...) {} ప్రారంభ కోడ్ (..) {}}
మానిటర్ అనేది మానిటర్లోని ఒక సమయంలో ఒక ప్రక్రియ మాత్రమే చురుకుగా ఉండటం వంటి నిర్మాణం. ఇతర ప్రక్రియ మానిటర్లో షేర్డ్ వేరియబుల్ను యాక్సెస్ చేయడానికి ప్రయత్నిస్తే, అది బ్లాక్ అవుతుంది మరియు గతంలో ప్రాసెస్ను యాక్సెస్ చేసినప్పుడు షేర్డ్ డేటాకు యాక్సెస్ పొందడానికి క్యూలో వరుసలో ఉంటుంది.
షరతులతో కూడిన వేరియబుల్స్ అదనపు సమకాలీకరణ విధానం కోసం ప్రవేశపెట్టారు. షరతులతో కూడిన వేరియబుల్ మానిటర్ లోపల వేచి ఉండటానికి ఒక ప్రక్రియను అనుమతిస్తుంది మరియు ఇతర ప్రక్రియ వనరులను విడుదల చేసినప్పుడు వెయిటింగ్ ప్రాసెస్ను తిరిగి ప్రారంభించడానికి అనుమతిస్తుంది.
ది షరతులతో కూడిన వేరియబుల్ రెండు ఆపరేషన్లను మాత్రమే ప్రారంభించగలదు వేచి() మరియు సిగ్నల్(). ఒక ప్రక్రియ ఉంటే ఎక్కడ పి నిరీక్షణను ప్రారంభిస్తుంది () ఆపరేషన్ ఇతర ప్రక్రియ వరకు మానిటర్లో నిలిపివేయబడుతుంది Q ఇన్వోక్ సిగ్నల్ () ఆపరేషన్ అనగా ఒక ప్రక్రియ ద్వారా సిగ్నల్ () ఆపరేషన్ సస్పెండ్ చేయబడిన ప్రక్రియను తిరిగి ప్రారంభిస్తుంది.
- సెమాఫోర్ మరియు మానిటర్ మధ్య ప్రాథమిక వ్యత్యాసం ఏమిటంటే సెమాఫోర్ ఒక పూర్ణాంక వేరియబుల్ S. ఇది వ్యవస్థలో అందుబాటులో ఉన్న వనరుల సంఖ్యను సూచిస్తుంది, అయితే మానిటర్ ఉంది నైరూప్య డేటా రకం ఇది ఒక సమయంలో క్లిష్టమైన విభాగంలో ఒకే ప్రక్రియను అమలు చేయడానికి అనుమతిస్తుంది.
- సెమాఫోర్ విలువను దీని ద్వారా సవరించవచ్చు వేచి () మరియు సిగ్నల్ () ఆపరేషన్ మాత్రమే. మరోవైపు, ఒక మానిటర్లో షేర్డ్ వేరియబుల్స్ ఉన్నాయి మరియు ప్రాసెస్ల ద్వారా షేర్డ్ వేరియబుల్స్ను యాక్సెస్ చేయగల విధానాలు మాత్రమే ఉంటాయి.
- సెమాఫోర్లో ఒక ప్రక్రియ భాగస్వామ్య వనరులను ప్రాప్యత చేయాలనుకున్నప్పుడు వేచి() వనరులను ఆపరేషన్ చేసి నిరోధించండి మరియు వనరులను విడుదల చేసినప్పుడు అది నిర్వహిస్తుంది సిగ్నల్() ఆపరేషన్. ఒక ప్రక్రియ భాగస్వామ్య వనరులను యాక్సెస్ చేయాల్సిన అవసరం ఉన్నప్పుడు మానిటర్లలో, మానిటర్లోని విధానాల ద్వారా వాటిని యాక్సెస్ చేయాలి.
- మానిటర్ రకం ఉంది కండిషన్ వేరియబుల్స్ ఏ సెమాఫోర్ లేదు.
ముగింపు:
సెమాఫోర్ కంటే మానిటర్లు అమలు చేయడం చాలా సులభం, మరియు సెమాఫోర్స్తో పోల్చితే మానిటర్లో పొరపాటు జరిగే అవకాశం తక్కువ.