ఆపరేటింగ్ సిస్టమ్స్: త్రీ ఈజీ పీసెస్. పార్ట్ 2: సంగ్రహణ: ప్రక్రియ (అనువాదం)
ఆపరేటింగ్ సిస్టమ్స్ పరిచయం
హలో, హబ్ర్! నేను మీ దృష్టికి వ్యాసాల శ్రేణిని అందించాలనుకుంటున్నాను - నా అభిప్రాయంలో ఆసక్తికరమైన ఒక సాహిత్యం యొక్క అనువాదాలు - OSTEP. ఈ పదార్థం యునిక్స్ లాంటి ఆపరేటింగ్ సిస్టమ్ల పనిని చాలా లోతుగా పరిశీలిస్తుంది, అవి ప్రక్రియలు, వివిధ షెడ్యూలర్లు, మెమరీ మరియు ఆధునిక OSని రూపొందించే ఇతర సారూప్య భాగాలతో పని చేస్తాయి. మీరు ఇక్కడ అన్ని మెటీరియల్స్ యొక్క అసలైనదాన్ని చూడవచ్చు ఇక్కడ. అనువాదం వృత్తిపరంగా (చాలా స్వేచ్ఛగా) జరిగిందని దయచేసి గమనించండి, కానీ నేను సాధారణ అర్థాన్ని నిలుపుకున్నానని ఆశిస్తున్నాను.
OS వినియోగదారులకు అందించే అత్యంత ప్రాథమిక సంగ్రహణను చూద్దాం: ప్రక్రియ. ప్రక్రియ యొక్క నిర్వచనం చాలా సులభం - ఇది నడుస్తున్న ప్రోగ్రామ్. ప్రోగ్రామ్ డిస్క్లో ఉన్న నిర్జీవమైన విషయం - ఇది సూచనల సమితి మరియు బహుశా కొన్ని స్టాటిక్ డేటా ప్రారంభించబడటానికి వేచి ఉంది. ఇది ఆ బైట్లను తీసుకొని వాటిని అమలు చేసే OS, ప్రోగ్రామ్ను ఉపయోగకరమైనదిగా మారుస్తుంది.
చాలా తరచుగా, వినియోగదారులు ఒకే సమయంలో ఒకటి కంటే ఎక్కువ ప్రోగ్రామ్లను అమలు చేయాలనుకుంటున్నారు, ఉదాహరణకు, మీరు మీ ల్యాప్టాప్లో బ్రౌజర్, గేమ్, మీడియా ప్లేయర్, టెక్స్ట్ ఎడిటర్ మరియు వంటి వాటిని అమలు చేయవచ్చు. నిజానికి, ఒక సాధారణ వ్యవస్థ పదుల లేదా వందల కొద్దీ ప్రక్రియలను ఏకకాలంలో అమలు చేయగలదు. ఈ వాస్తవం సిస్టమ్ను ఉపయోగించడానికి సులభతరం చేస్తుంది, CPU ఉచితం కాదా అనే దాని గురించి మీరు ఎప్పుడూ చింతించాల్సిన అవసరం లేదు, మీరు ప్రోగ్రామ్లను అమలు చేస్తారు.
ఇది సమస్యను పెంచుతుంది: అనేక CPUల భ్రమను ఎలా అందించాలి? మీరు ఒక భౌతిక CPU మాత్రమే కలిగి ఉన్నప్పటికీ, OS దాదాపు అనంతమైన CPUల యొక్క భ్రమను ఎలా సృష్టించగలదు?
OS ఈ భ్రమను CPU వర్చువలైజేషన్ ద్వారా సృష్టిస్తుంది. ఒక ప్రక్రియను ప్రారంభించడం ద్వారా, దానిని ఆపివేయడం, మరొక ప్రక్రియను ప్రారంభించడం మరియు మొదలైన వాటి ద్వారా, OS అనేక వర్చువల్ CPUలు ఉన్నాయనే భ్రమను కలిగి ఉంటుంది, వాస్తవానికి ఒకటి లేదా అంతకంటే ఎక్కువ భౌతిక ప్రాసెసర్లు ఉంటాయి. ఈ సాంకేతికత అంటారు కాలానుగుణంగా CPU వనరుల విభజన. ఈ టెక్నిక్ వినియోగదారులు కోరుకున్నంత ఎక్కువ ఏకకాల ప్రక్రియలను అమలు చేయడానికి అనుమతిస్తుంది. ఈ పరిష్కారం యొక్క ధర పనితీరు - CPU అనేక ప్రక్రియల ద్వారా భాగస్వామ్యం చేయబడితే, ప్రతి ప్రక్రియ మరింత నెమ్మదిగా ప్రాసెస్ చేయబడుతుంది.
CPU వర్చువలైజేషన్ని అమలు చేయడానికి మరియు ముఖ్యంగా దీన్ని బాగా చేయడానికి, OSకి తక్కువ-స్థాయి మరియు ఉన్నత-స్థాయి మద్దతు రెండూ అవసరం. తక్కువ స్థాయి మద్దతు అంటారు యంత్రాంగాలు కార్యాచరణ యొక్క అవసరమైన భాగాన్ని అమలు చేసే తక్కువ-స్థాయి పద్ధతులు లేదా ప్రోటోకాల్లు. అటువంటి కార్యాచరణకు ఉదాహరణ కాంటెక్స్ట్ స్విచింగ్, ఇది OSకి ఒక ప్రోగ్రామ్ను ఆపడానికి మరియు ప్రాసెసర్లో మరొక ప్రోగ్రామ్ను అమలు చేసే సామర్థ్యాన్ని ఇస్తుంది. ఈ సమయ విభజన అన్ని ఆధునిక ఆపరేటింగ్ సిస్టమ్లలో అమలు చేయబడుతుంది.
ఈ మెకానిజమ్ల పైన "విధానాలు" రూపంలో OSలో కొంత లాజిక్ నిర్మించబడింది. విధానం ఆపరేటింగ్ సిస్టమ్ కోసం ఒక నిర్దిష్ట నిర్ణయం తీసుకునే అల్గోరిథం. ఇటువంటి విధానాలు, ఉదాహరణకు, ముందుగా ఏ ప్రోగ్రామ్ను ప్రారంభించాలో (కమాండ్ల జాబితా నుండి) నిర్ణయించండి. కాబట్టి, ఉదాహరణకు, ఈ సమస్య అనే విధానం ద్వారా పరిష్కరించబడుతుంది షెడ్యూలర్ (షెడ్యూలింగ్ విధానం) మరియు పరిష్కారాన్ని ఎన్నుకునేటప్పుడు, ఇది అటువంటి డేటా ద్వారా మార్గనిర్దేశం చేయబడుతుంది: స్టార్టప్ చరిత్ర (చివరి నిమిషాల్లో ఏ ప్రోగ్రామ్ లాంచ్ చేయబడింది), ఈ ప్రక్రియ ఏ లోడ్ను కలిగి ఉంటుంది (ఏ రకాల ప్రోగ్రామ్లు ప్రారంభించబడ్డాయి), పనితీరు కొలమానాలు (సిస్టమ్ అయినా ఇంటరాక్టివ్ ఇంటరాక్షన్ కోసం లేదా నిర్గమాంశ కోసం ఆప్టిమైజ్ చేయబడింది ) మరియు మొదలైనవి.
సంగ్రహణ: ప్రక్రియ
ఆపరేటింగ్ సిస్టమ్ ద్వారా అమలు చేయబడిన రన్నింగ్ ప్రోగ్రామ్ యొక్క సారాంశాన్ని మనం పిలుస్తాము ప్రక్రియ. ఇంతకు ముందు చెప్పినట్లుగా, ప్రక్రియ అనేది ఏదైనా తక్షణ సమయంలో, కేవలం రన్నింగ్ ప్రోగ్రామ్. ఈ ప్రోగ్రామ్ యాక్సెస్ చేసే లేదా దాని అమలు సమయంలో ప్రభావితం చేసే వివిధ సిస్టమ్ వనరుల నుండి సారాంశ సమాచారాన్ని మనం పొందగల ప్రోగ్రామ్.
ప్రక్రియ యొక్క భాగాలను అర్థం చేసుకోవడానికి, మీరు సిస్టమ్ యొక్క స్థితులను అర్థం చేసుకోవాలి: ప్రోగ్రామ్ దాని ఆపరేషన్ సమయంలో ఏమి చదవగలదు లేదా మార్చగలదు. ఏ సమయంలోనైనా, ప్రోగ్రామ్ యొక్క అమలు కోసం సిస్టమ్ యొక్క ఏ అంశాలు ముఖ్యమైనవో మీరు అర్థం చేసుకోవాలి.
సిస్టమ్ స్టేట్లోని స్పష్టమైన అంశాలలో ఒకటి ప్రక్రియను కలిగి ఉంటుంది మెమరీ. సూచనలు మెమరీలో ఉన్నాయి. ప్రోగ్రామ్ చదివే లేదా వ్రాసే డేటా కూడా మెమరీలో ఉంది. అందువలన, ఒక ప్రక్రియ పరిష్కరించగల మెమరీ (అడ్రస్ స్పేస్ అని పిలుస్తారు) ప్రక్రియలో భాగం.
సిస్టమ్ స్థితి యొక్క భాగం కూడా రిజిస్టర్లు. అనేక సూచనలు రిజిస్టర్ల విలువను మార్చడం లేదా వాటి విలువను చదవడం లక్ష్యంగా పెట్టుకున్నాయి, తద్వారా రిజిస్టర్లు కూడా ప్రక్రియ యొక్క ఆపరేషన్లో ముఖ్యమైన భాగంగా మారతాయి.
యంత్ర స్థితి కొన్ని ప్రత్యేక రిజిస్టర్ల నుండి కూడా ఏర్పడిందని గమనించాలి. ఉదాహరణకి, IP - సూచన పాయింటర్ — ప్రోగ్రామ్ ప్రస్తుతం అమలు చేస్తున్న సూచనలకు పాయింటర్. కూడా ఉంది స్టాక్ పాయింటర్ మరియు దానికి సంబంధించినది ఫ్రేమ్ పాయింటర్, వీటిని నిర్వహించడానికి ఉపయోగించబడతాయి: ఫంక్షన్ పారామితులు, స్థానిక వేరియబుల్స్ మరియు రిటర్న్ చిరునామాలు.
చివరగా, ప్రోగ్రామ్లు తరచుగా ROM (రీడ్-ఓన్లీ మెమరీ)ని యాక్సెస్ చేస్తాయి. ఈ “I/O” (ఇన్పుట్/అవుట్పుట్) సమాచారం ప్రక్రియ ద్వారా ప్రస్తుతం తెరిచిన ఫైల్ల జాబితాను కలిగి ఉండాలి.
ప్రాసెస్ API
ప్రక్రియ ఎలా పని చేస్తుందనే దానిపై మన అవగాహనను మెరుగుపరచడానికి, ఏదైనా ఆపరేటింగ్ సిస్టమ్ ఇంటర్ఫేస్లో చేర్చవలసిన సిస్టమ్ కాల్ల ఉదాహరణలను అధ్యయనం చేద్దాం. ఈ APIలు ఏదైనా OSలో ఒక రూపంలో లేదా మరొక రూపంలో అందుబాటులో ఉంటాయి.
● సృష్టించు (సృష్టి): OS తప్పనిసరిగా కొత్త ప్రక్రియలను సృష్టించడానికి మిమ్మల్ని అనుమతించే కొన్ని పద్ధతిని కలిగి ఉండాలి. మీరు టెర్మినల్లో కమాండ్ను నమోదు చేసినప్పుడు లేదా ఐకాన్పై డబుల్ క్లిక్ చేయడం ద్వారా అప్లికేషన్ను ప్రారంభించినప్పుడు, కొత్త ప్రాసెస్ను సృష్టించి, ఆపై పేర్కొన్న ప్రోగ్రామ్ను ప్రారంభించడానికి కాల్ OSకి పంపబడుతుంది.
● తొలగింపు: ప్రాసెస్ను రూపొందించడానికి ఇంటర్ఫేస్ ఉన్నందున, OS ప్రక్రియను తీసివేయడాన్ని బలవంతం చేసే సామర్థ్యాన్ని కూడా అందించాలి. చాలా ప్రోగ్రామ్లు సహజంగా ప్రారంభమవుతాయి మరియు అవి నడుస్తున్నప్పుడు వాటి స్వంతంగా ముగుస్తాయి. లేకపోతే వినియోగదారు వారిని చంపగలరని కోరుకుంటారు మరియు ప్రక్రియను ఆపడానికి ఒక ఇంటర్ఫేస్ ఉపయోగకరంగా ఉంటుంది.
● వేచి (వేచి ఉంది): కొన్నిసార్లు ప్రక్రియ పూర్తయ్యే వరకు వేచి ఉండటం ఉపయోగకరంగా ఉంటుంది, కాబట్టి వేచి ఉండే సామర్థ్యాన్ని అందించే కొన్ని ఇంటర్ఫేస్లు అందించబడతాయి.
● ఇతర నియంత్రణ (వివిధ నియంత్రణ): చంపడం మరియు ప్రక్రియ కోసం వేచి ఉండటంతో పాటు, ఇతర వివిధ నియంత్రణ పద్ధతులు కూడా ఉన్నాయి. ఉదాహరణకు, చాలా ఆపరేటింగ్ సిస్టమ్లు ప్రక్రియను స్తంభింపజేసే సామర్థ్యాన్ని అందిస్తాయి (నిర్దిష్ట వ్యవధిలో దాని అమలును ఆపివేస్తాయి) ఆపై దాన్ని తిరిగి ప్రారంభించండి (అమలును కొనసాగించండి)
● స్థితి (స్టేట్): ప్రాసెస్ యొక్క స్థితి గురించి కొంత సమాచారాన్ని పొందడం కోసం వివిధ ఇంటర్ఫేస్లు ఉన్నాయి, అంటే అది ఎంతకాలం నడుస్తోంది లేదా ప్రస్తుతం ఏ స్థితిలో ఉంది.
ప్రక్రియ సృష్టి: వివరాలు
ప్రోగ్రామ్లు సరిగ్గా ప్రక్రియలుగా ఎలా రూపాంతరం చెందుతాయి అనేది ఆసక్తికరమైన విషయాలలో ఒకటి. ముఖ్యంగా OS ప్రోగ్రామ్ను ఎలా ఎంచుకుంటుంది మరియు అమలు చేస్తుంది. ప్రక్రియ ఎలా సరిగ్గా సృష్టించబడుతుంది.
అన్నింటిలో మొదటిది, OS తప్పనిసరిగా ప్రోగ్రామ్ కోడ్ మరియు స్టాటిక్ డేటాను మెమరీలోకి లోడ్ చేయాలి (ప్రాసెస్ అడ్రస్ స్పేస్లోకి). ప్రోగ్రామ్లు సాధారణంగా డిస్క్ లేదా సాలిడ్-స్టేట్ డ్రైవ్లో కొన్ని ఎక్జిక్యూటబుల్ ఫార్మాట్లో ఉంటాయి. అందువల్ల, ప్రోగ్రామ్ మరియు స్టాటిక్ డేటాను మెమరీలోకి లోడ్ చేసే ప్రక్రియకు OS ఆ బైట్లను డిస్క్ నుండి రీడ్ చేయగలగాలి మరియు వాటిని మెమరీలో ఎక్కడో ఉంచాలి.
ప్రారంభ ఆపరేటింగ్ సిస్టమ్లలో, లోడ్ చేసే ప్రక్రియ ఆసక్తిగా జరిగింది, అంటే ప్రోగ్రామ్ ప్రారంభించబడటానికి ముందు మొత్తం కోడ్ మెమరీలోకి లోడ్ చేయబడింది. ఆధునిక ఆపరేటింగ్ సిస్టమ్లు దీన్ని సోమరిగా చేస్తాయి, అంటే, ప్రోగ్రామ్ అమలు సమయంలో అవసరమైనప్పుడు మాత్రమే కోడ్ లేదా డేటా ముక్కలను లోడ్ చేస్తుంది.
కోడ్ మరియు స్టాటిక్ డేటా OS మెమరీలోకి లోడ్ అయిన తర్వాత, ప్రక్రియ అమలు కావడానికి ముందు మరికొన్ని విషయాలు చేయాల్సి ఉంటుంది. స్టాక్ కోసం కొంత మెమరీని తప్పనిసరిగా కేటాయించాలి. ప్రోగ్రామ్లు స్థానిక వేరియబుల్స్, ఫంక్షన్ పారామీటర్లు మరియు రిటర్న్ అడ్రస్ల కోసం స్టాక్ను ఉపయోగిస్తాయి. OS ఈ మెమరీని కేటాయించి ప్రక్రియకు ఇస్తుంది. స్టాక్ను కొన్ని ఆర్గ్యుమెంట్లతో కూడా కేటాయించవచ్చు, ప్రత్యేకంగా ఇది మెయిన్() ఫంక్షన్ యొక్క పారామితులను నింపుతుంది, ఉదాహరణకు argc మరియు argv శ్రేణితో.
ఆపరేటింగ్ సిస్టమ్ ప్రోగ్రామ్ హీప్కు కొంత మెమరీని కూడా కేటాయించవచ్చు. డైనమిక్గా కేటాయించబడిన డేటాను స్పష్టంగా అభ్యర్థించడానికి ప్రోగ్రామ్ల ద్వారా హీప్ ఉపయోగించబడుతుంది. ఫంక్షన్కు కాల్ చేయడం ద్వారా ప్రోగ్రామ్లు ఈ స్థలాన్ని అభ్యర్థిస్తాయి malloc () మరియు ఫంక్షన్కు కాల్ చేయడం ద్వారా దానిని స్పష్టంగా క్లియర్ చేస్తుంది ఉచిత(). లింక్డ్ షీట్లు, హాష్ టేబుల్లు, చెట్లు మరియు ఇతర డేటా స్ట్రక్చర్ల కోసం హీప్ అవసరం. మొదట, హీప్కి కొద్ది మొత్తంలో మెమరీ కేటాయించబడుతుంది, అయితే కాలక్రమేణా, ప్రోగ్రామ్ నడుస్తున్నప్పుడు, హీప్ లైబ్రరీ API కాల్ malloc() ద్వారా మరింత మెమరీని అభ్యర్థించవచ్చు. ఈ కాల్లను సంతృప్తి పరచడంలో సహాయపడటానికి ఆపరేటింగ్ సిస్టమ్ మరింత మెమరీని కేటాయించే ప్రక్రియలో పాల్గొంటుంది.
ఆపరేటింగ్ సిస్టమ్ ప్రారంభ విధులను కూడా నిర్వహిస్తుంది, ముఖ్యంగా I/Oకి సంబంధించినవి. ఉదాహరణకు, UNIX సిస్టమ్స్లో, డిఫాల్ట్గా ప్రతి ప్రాసెస్లో ప్రామాణిక ఇన్పుట్, అవుట్పుట్ మరియు ఎర్రర్ కోసం 3 ఓపెన్ ఫైల్ డిస్క్రిప్టర్లు ఉంటాయి. ఈ హ్యాండిల్స్ టెర్మినల్ నుండి ఇన్పుట్ను చదవడానికి అలాగే స్క్రీన్పై సమాచారాన్ని ప్రదర్శించడానికి ప్రోగ్రామ్లను అనుమతిస్తాయి.
అందువలన, మెమరీలోకి కోడ్ మరియు స్టాటిక్ డేటాను లోడ్ చేయడం, స్టాక్ను సృష్టించడం మరియు ప్రారంభించడం మరియు I/O టాస్క్లను నిర్వహించడానికి సంబంధించిన ఇతర పని చేయడం ద్వారా, OS ప్రక్రియను అమలు చేయడానికి దశను సిద్ధం చేస్తుంది. చివరగా, ఒక చివరి పని మిగిలి ఉంది: ప్రోగ్రామ్ను దాని ఎంట్రీ పాయింట్ ద్వారా అమలు చేయడం, ప్రధాన() ఫంక్షన్ అని పిలుస్తారు. ప్రధాన() ఫంక్షన్ని అమలు చేయడం ద్వారా, OS CPU నియంత్రణను కొత్తగా సృష్టించిన ప్రక్రియకు బదిలీ చేస్తుంది, అందువలన ప్రోగ్రామ్ అమలు చేయడం ప్రారంభమవుతుంది.
ప్రక్రియ స్థితి
ప్రక్రియ అంటే ఏమిటి మరియు అది ఎలా సృష్టించబడుతుందనే దాని గురించి ఇప్పుడు మనకు కొంత అవగాహన ఉంది, అది ఉండగల ప్రక్రియ స్థితులను జాబితా చేద్దాం. దాని సరళమైన రూపంలో, ఒక ప్రక్రియ ఈ రాష్ట్రాల్లో ఒకదానిలో ఉంటుంది:
● రన్నింగ్. నడుస్తున్నప్పుడు, ప్రక్రియ ప్రాసెసర్పై నడుస్తుంది. అంటే సూచనలు అమలులో ఉన్నాయని అర్థం.
● రెడీ. సిద్ధంగా ఉన్న స్థితిలో, ప్రక్రియ అమలు చేయడానికి సిద్ధంగా ఉంది, కానీ కొన్ని కారణాల వలన OS పేర్కొన్న సమయంలో దాన్ని అమలు చేయదు.
● నిరోధిత. నిరోధించబడిన స్థితిలో, ఒక ప్రక్రియ కొన్ని కార్యకలాపాలను నిర్వహిస్తుంది, అది కొన్ని సంఘటనలు జరిగే వరకు అమలు చేయడానికి సిద్ధంగా ఉండకుండా నిరోధిస్తుంది. ఒక సాధారణ ఉదాహరణ ఏమిటంటే, ఒక ప్రక్రియ IO ఆపరేషన్ను ప్రారంభించినప్పుడు, అది బ్లాక్ చేయబడుతుంది, తద్వారా కొన్ని ఇతర ప్రక్రియలు ప్రాసెసర్ను ఉపయోగించవచ్చు.
మీరు ఈ రాష్ట్రాలను గ్రాఫ్ రూపంలో ఊహించవచ్చు. చిత్రంలో మనం చూడగలిగినట్లుగా, OS యొక్క అభీష్టానుసారం రన్నింగ్ మరియు READY మధ్య ప్రాసెస్ స్థితి మారవచ్చు. ప్రక్రియ యొక్క స్థితి READY నుండి RUNNINGకి మారినప్పుడు, ప్రక్రియ షెడ్యూల్ చేయబడిందని అర్థం. వ్యతిరేక దిశలో - లేఅవుట్ నుండి తీసివేయబడింది. ఒక ప్రక్రియ బ్లాక్ చేయబడినప్పుడు, ఉదాహరణకు, నేను IO ఆపరేషన్ను ప్రారంభిస్తాను, కొన్ని సంఘటనలు జరిగే వరకు OS దానిని ఈ స్థితిలో ఉంచుతుంది, ఉదాహరణకు IO పూర్తయ్యే వరకు. ఈ సమయంలో READY స్థితికి మారవచ్చు మరియు OS అలా నిర్ణయిస్తే వెంటనే రన్నింగ్ స్థితికి మారవచ్చు.
ఈ రాష్ట్రాల ద్వారా రెండు ప్రక్రియలు ఎలా కదులుతాయో ఒక ఉదాహరణ చూద్దాం. ప్రారంభించడానికి, రెండు ప్రక్రియలు నడుస్తున్నాయని మరియు ప్రతి ఒక్కటి CPUని మాత్రమే ఉపయోగిస్తున్నాయని ఊహించుదాం. ఈ సందర్భంలో, వారి రాష్ట్రాలు ఇలా ఉంటాయి.
కింది ఉదాహరణలో, మొదటి ప్రక్రియ, కొంత సమయం రన్ అయిన తర్వాత, IOని అభ్యర్థిస్తుంది మరియు బ్లాక్ చేయబడిన స్థితిలోకి ప్రవేశిస్తుంది, ఇది మరొక ప్రక్రియను అమలు చేయడానికి అనుమతిస్తుంది (FIG 1.4). ప్రాసెస్ 0 CPUని ఉపయోగించడం లేదని OS చూస్తుంది మరియు ప్రాసెస్ 1ని ప్రారంభిస్తుంది. ప్రాసెస్ 1 రన్ అవుతున్నప్పుడు, IO పూర్తయింది మరియు ప్రాసెస్ 0 యొక్క స్థితి READYకి మారుతుంది. చివరగా, ప్రక్రియ 1 పూర్తయింది మరియు పూర్తయిన తర్వాత, ప్రాసెస్ 0 ప్రారంభమవుతుంది, అమలు చేస్తుంది మరియు దాని పనిని పూర్తి చేస్తుంది.
డేటా నిర్మాణం
OS అనేది ఒక ప్రోగ్రామ్, మరియు ఏదైనా ఇతర ప్రోగ్రామ్ లాగానే, ఇది వివిధ సంబంధిత సమాచారాన్ని ట్రాక్ చేసే కొన్ని కీలక డేటా నిర్మాణాలను కలిగి ఉంటుంది. ప్రతి ప్రక్రియ యొక్క స్థితిని ట్రాక్ చేయడానికి, OS కొన్నింటికి మద్దతు ఇస్తుంది ప్రక్రియ జాబితా READY స్థితిలో ఉన్న అన్ని ప్రక్రియల కోసం మరియు ప్రస్తుతం అమలవుతున్న ప్రక్రియలను ట్రాక్ చేయడానికి కొంత అదనపు సమాచారం. అలాగే, OS బ్లాక్ చేయబడిన ప్రక్రియలను పర్యవేక్షించాలి. IO పూర్తయిన తర్వాత, OS తప్పనిసరిగా అవసరమైన ప్రక్రియను మేల్కొలిపి, అమలు చేయడానికి సిద్ధంగా ఉన్న స్థితిలో ఉంచాలి.
ఉదాహరణకు, OS తప్పనిసరిగా ప్రాసెసర్ రిజిస్టర్ల స్థితిని భద్రపరచాలి. ప్రక్రియ ఆగిపోయిన సమయంలో, రిజిస్టర్ల స్థితి ప్రక్రియ యొక్క చిరునామా స్థలంలో నిల్వ చేయబడుతుంది మరియు దాని ఆపరేషన్ కొనసాగుతున్న సమయంలో, రిజిస్టర్ల విలువలు పునరుద్ధరించబడతాయి మరియు ఈ ప్రక్రియ యొక్క అమలును కొనసాగించండి.
సిద్ధంగా, నిరోధించబడిన, నడుస్తున్న రాష్ట్రాలతో పాటు, మరికొన్ని రాష్ట్రాలు ఉన్నాయి. కొన్నిసార్లు, సృష్టి సమయంలో, ఒక ప్రక్రియ INIT స్థితిలో ఉండవచ్చు. చివరగా, ఒక ప్రక్రియ ఇప్పటికే పూర్తయినప్పుడు దానిని తుది స్థితిలో ఉంచవచ్చు, కానీ దాని సమాచారం ఇంకా క్లియర్ చేయబడలేదు. UNIX సిస్టమ్స్లో ఈ స్థితిని అంటారు జోంబీ ప్రక్రియ. పేరెంట్ ప్రాసెస్ పిల్లల రిటర్న్ కోడ్ని తెలుసుకోవాలనుకునే సందర్భాల్లో ఈ స్థితి ఉపయోగకరంగా ఉంటుంది, ఉదాహరణకు, సాధారణంగా 0 విజయాన్ని మరియు 1 లోపాన్ని సూచిస్తుంది, అయితే ప్రోగ్రామర్లు వివిధ సమస్యలను సూచించడానికి అదనపు అవుట్పుట్ కోడ్లను జారీ చేయవచ్చు. పేరెంట్ ప్రాసెస్ ముగిసినప్పుడు, చైల్డ్ ప్రాసెస్ ముగిసే వరకు వేచి ఉండడానికి వేచి ఉండటం () వంటి తుది సిస్టమ్ కాల్ని చేస్తుంది మరియు రద్దు చేయబడిన ప్రక్రియతో అనుబంధించబడిన ఏదైనా డేటాను క్లియర్ చేయగలదని OSకి సిగ్నల్ చేస్తుంది.
ఉపన్యాసంలోని ముఖ్యాంశాలు:
● ప్రక్రియ - OSలో నడుస్తున్న ప్రోగ్రామ్ యొక్క ప్రధాన సంగ్రహణ. ఏ సమయంలోనైనా, ఒక ప్రక్రియను దాని స్థితి ద్వారా వివరించవచ్చు: దాని చిరునామా స్థలంలోని మెమరీ కంటెంట్లు, ఇన్స్ట్రక్షన్ పాయింటర్ మరియు స్టాక్ పాయింటర్తో సహా ప్రాసెసర్ రిజిస్టర్ల కంటెంట్లు మరియు ఓపెన్ ఫైల్లు చదవడం లేదా వ్రాయడం వంటి IO సమాచారం.
● ప్రాసెస్ API ప్రాసెస్లకు ప్రోగ్రామ్లు చేయగల కాల్లను కలిగి ఉంటుంది. సాధారణంగా ఇవి సృష్టించడం, తొలగించడం లేదా ఇతర కాల్లు.
● ఈ ప్రక్రియ అమలులో ఉన్న, సిద్ధంగా ఉన్న, బ్లాక్ చేయబడిన అనేక రాష్ట్రాల్లో ఒకటి. షెడ్యూలింగ్, షెడ్యూలింగ్ నుండి మినహాయింపులు లేదా వేచి ఉండటం వంటి వివిధ ఈవెంట్లు ప్రక్రియ యొక్క స్థితిని ఒకదాని నుండి మరొకదానికి మార్చగలవు.
● ప్రక్రియ జాబితా సిస్టమ్లోని అన్ని ప్రక్రియల గురించి సమాచారాన్ని కలిగి ఉంటుంది. దానిలోని ప్రతి ఎంట్రీని ప్రాసెస్ కంట్రోల్ బ్లాక్ అని పిలుస్తారు, వాస్తవానికి ఇది ఒక నిర్దిష్ట ప్రక్రియ గురించి అవసరమైన మొత్తం సమాచారాన్ని కలిగి ఉన్న నిర్మాణం.