கணினி நோக்கம்
நெட்வொர்க்கில் உள்ள கணினிகளில் உள்ள கோப்புகளுக்கான தொலைநிலை அணுகலுக்கான ஆதரவு. TCP நெறிமுறையைப் பயன்படுத்தி பரிவர்த்தனைகளை (செய்திகளை) பரிமாறிக்கொள்வதன் மூலம் அனைத்து அடிப்படை கோப்பு செயல்பாடுகளையும் (உருவாக்கம், நீக்குதல், படித்தல், எழுதுதல் போன்றவை) கணினி "உண்மையில்" ஆதரிக்கிறது.
பயன்பாடுகள்
அமைப்பின் செயல்பாடு பின்வரும் சந்தர்ப்பங்களில் பயனுள்ளதாக இருக்கும்:
- மொபைல் மற்றும் உட்பொதிக்கப்பட்ட சாதனங்களுக்கான (ஸ்மார்ட்ஃபோன்கள், ஆன்-போர்டு கண்ட்ரோல் சிஸ்டம்கள், முதலியன) நேட்டிவ் அப்ளிகேஷன்களில், தகவல்தொடர்புகளில் (ஆஃப்லைனில் செல்லும் போது) சாத்தியமான தற்காலிக குறுக்கீடுகளை எதிர்கொண்டு ரிமோட் சர்வரில் உள்ள கோப்புகளை விரைவாக அணுக வேண்டும்.
- ஏற்றப்பட்ட DBMSகளில், சில சேவையகங்களில் வினவல் செயலாக்கம் மேற்கொள்ளப்பட்டு, மற்றவற்றில் தரவுச் சேமிப்பகம் மேற்கொள்ளப்பட்டால்;
- தகவல் சேகரித்தல் மற்றும் செயலாக்க விநியோகிக்கப்பட்ட பெருநிறுவன நெட்வொர்க்குகளில், அதிவேக தரவு பரிமாற்றம், பணிநீக்கம் மற்றும் நம்பகத்தன்மை தேவை;
- மைக்ரோ சர்வீஸ் கட்டமைப்பைக் கொண்ட சிக்கலான அமைப்புகளில், தொகுதிகளுக்கு இடையே தகவல் பரிமாற்றத்தில் தாமதம் மிகவும் முக்கியமானது.
அமைப்பு
கேஜ் சிஸ்டம் (இதன் செயலாக்கம் - பீட்டா பதிப்பு OS-இல் பைதான் 3.7-இல் உள்ளது) Windowsஇதில் இரண்டு முக்கிய பகுதிகள் அடங்கும்:
- கேஜ்சர்வர் — ஒரு கோப்பு சேவையக நிரல் (செயல்பாடுகளின் தொகுப்பு) நெட்வொர்க்கில் உள்ள கணினிகளில் இயங்கும், அதன் கோப்புகளுக்கு தொலைநிலை அணுகல் தேவைப்படுகிறது;
- வர்க்கம் கேஜ் கிளையன்ட் மென்பொருளுக்கான வழிமுறைகளின் நூலகத்துடன், சேவையகங்களுடனான தொடர்புகளின் குறியீட்டை எளிதாக்குகிறது.
கிளையன்ட் பக்கத்தில் கணினியைப் பயன்படுத்துதல்
கேஜ் வகுப்பின் முறைகள் வழக்கமான, "வழக்கமான" கோப்பு முறைமை செயல்பாடுகளை மாற்றுகின்றன: உருவாக்கம், திறத்தல், மூடுதல், நீக்குதல் கோப்புகள், அத்துடன் பைனரி வடிவத்தில் தரவைப் படித்தல்/எழுதுதல் (தரவின் நிலை மற்றும் அளவைக் குறிக்கிறது). கருத்துப்படி, இந்த முறைகள் சி மொழியின் கோப்பு செயல்பாடுகளுக்கு நெருக்கமாக உள்ளன, அங்கு கோப்புகளைத் திறப்பது/மூடுவது உள்ளீடு/வெளியீட்டின் "சேனல்களில்" செய்யப்படுகிறது.
வேறு வார்த்தைகளில் கூறுவதானால், புரோகிராமர் "கோப்பு" பொருள்களின் முறைகளுடன் வேலை செய்யாது (வகுப்பு _io பைத்தானில்), ஆனால் கேஜ் வகுப்பின் முறைகளுடன்.
ஒரு கேஜ் பொருளின் ஒரு நிகழ்வு உருவாக்கப்பட்டால், அது ஒரு சேவையகத்துடன் (அல்லது பல சேவையகங்களுடன்) ஆரம்ப இணைப்பை நிறுவுகிறது, கிளையண்ட் ஐடியால் அங்கீகரிக்கப்படுகிறது, மேலும் அனைத்து கோப்பு செயல்பாடுகளுக்கும் பிரத்யேக போர்ட் எண்ணுடன் உறுதிப்படுத்தலைப் பெறுகிறது. ஒரு கேஜ் பொருள் நீக்கப்பட்டால், அது சேவையகத்தைத் தொடர்புகொள்வதை நிறுத்தி கோப்புகளை மூடுமாறு அறிவுறுத்துகிறது. தகவல்தொடர்பு நிறுத்தம் சேவையகங்களால் தொடங்கப்படலாம்.
ரேம் கேச் (பஃபர்) இல் கிளையன்ட் நிரல்களின் அடிக்கடி பயன்படுத்தப்படும் கோப்பு துண்டுகளை இடையகப்படுத்துவதன் மூலம் கணினி வாசிப்பு/எழுது செயல்திறனை மேம்படுத்துகிறது.
கிளையண்ட் மென்பொருளானது வெவ்வேறு அமைப்புகளுடன் (இடையக நினைவக அளவு, சேவையகத்துடன் பரிமாற்றம் செய்யும் போது தொகுதி அளவு போன்றவை) எத்தனை கேஜ் பொருட்களையும் பயன்படுத்தலாம்.
ஒரு கேஜ் பொருள் பல சேவையகங்களில் உள்ள பல கோப்புகளுடன் தொடர்பு கொள்ள முடியும். பொருளை உருவாக்கும் போது தகவல் தொடர்பு அளவுருக்கள் (IP முகவரி அல்லது DNS சர்வர், அங்கீகாரத்திற்கான முக்கிய போர்ட், பாதை மற்றும் கோப்பு பெயர்) குறிப்பிடப்படுகின்றன.
ஒவ்வொரு கேஜ் பொருளும் ஒரே நேரத்தில் பல கோப்புகளுடன் வேலை செய்ய முடியும் என்பதால், பகிர்ந்த நினைவக இடம் இடையகத்திற்கு பயன்படுத்தப்படுகிறது. கேச் அளவு - பக்கங்களின் எண்ணிக்கை மற்றும் அவற்றின் அளவு, கேஜ் பொருளை உருவாக்கும் போது மாறும் வகையில் அமைக்கப்படும். எடுத்துக்காட்டாக, 1 ஜிபி கேச் என்பது ஒவ்வொன்றும் 1000 எம்பியின் 1 பக்கங்கள் அல்லது ஒவ்வொன்றும் 10 கேபியில் 100 ஆயிரம் பக்கங்கள் அல்லது ஒவ்வொன்றும் 1 கேபியில் 1 மில்லியன் பக்கங்கள். பக்கங்களின் அளவு மற்றும் எண்ணிக்கையைத் தேர்ந்தெடுப்பது ஒவ்வொரு பயன்பாட்டு வழக்குக்கும் ஒரு குறிப்பிட்ட பணியாகும்.
வெவ்வேறு கோப்புகளில் தகவல் எவ்வாறு அணுகப்படுகிறது என்பதைப் பொறுத்து வெவ்வேறு இடையக நினைவக அமைப்புகளை வரையறுக்க ஒரே நேரத்தில் பல கேஜ் பொருள்களைப் பயன்படுத்தலாம். அடிப்படையான ஒன்றாக, எளிமையான இடையக வழிமுறை பயன்படுத்தப்படுகிறது: கொடுக்கப்பட்ட நினைவகம் தீர்ந்த பிறகு, புதிய பக்கங்கள் குறைந்தபட்ச அணுகல்களுடன் ஓய்வுபெறும் கொள்கையின்படி பழையவற்றை இடமாற்றம் செய்கின்றன. சமச்சீரற்ற (புள்ளிவிவர அர்த்தத்தில்) பகிர்ந்த அணுகல், முதலில், வெவ்வேறு கோப்புகளுக்கு, இரண்டாவதாக, ஒவ்வொரு கோப்பின் துண்டுகளுக்கும் இடையகம் மிகவும் பயனுள்ளதாக இருக்கும்.
கேஜ் கிளாஸ் I/O ஐ தரவு முகவரிகள் மூலம் ஆதரிக்கிறது (வரிசையின் நிலை மற்றும் நீளம், கோப்பு முறைமை செயல்பாடுகளை "மாற்று"), ஆனால் குறைந்த, "உடல்" மட்டத்தில் - இடையக நினைவகத்தில் பக்க எண்கள் மூலம்.
கேஜ் பொருள்களுக்கு அசல் செயல்பாடு ஆதரிக்கப்படுகிறது "உறக்கநிலை" (“தூக்கம்”) - அவை “சரிந்து” (உதாரணமாக, சேவையகங்களுடனான தொடர்பை இழந்தால், அல்லது பயன்பாடு நிறுத்தப்பட்டால், முதலியன) கிளையன்ட் பக்கத்தில் உள்ள உள்ளூர் டம்ப் கோப்பில் விரைவாக மீட்டமைக்கப்படலாம். இந்த கோப்பு (தொடர்பு மீண்டும் தொடங்கிய பிறகு, நீங்கள் பயன்பாட்டை மறுதொடக்கம் செய்யும் போது). தற்காலிகமாக "ஆஃப்லைனில்" சென்ற பிறகு கிளையன்ட் நிரலை செயல்படுத்தும் போது போக்குவரத்தை கணிசமாகக் குறைக்க இது சாத்தியமாக்குகிறது, ஏனெனில் அடிக்கடி பயன்படுத்தப்படும் கோப்பு துண்டுகள் ஏற்கனவே தற்காலிக சேமிப்பில் இருக்கும்.
கூண்டு என்பது சுமார் 3600 கோடுகள் கொண்ட குறியீடு.
சேவையகத்தை உருவாக்குவதற்கான கோட்பாடுகள்
கேஜ்சர்வர் கோப்பு சேவையகங்களை தன்னிச்சையான எண்ணிக்கையிலான போர்ட்களுடன் இயக்க முடியும், அவற்றில் ஒன்று ("முக்கிய") அனைத்து வாடிக்கையாளர்களின் அங்கீகாரத்திற்காக மட்டுமே பயன்படுத்தப்படுகிறது, மீதமுள்ளவை தரவு பரிமாற்றத்திற்கு பயன்படுத்தப்படுகின்றன. கேஜ் சர்வர் நிரலுக்கு பைதான் மட்டுமே தேவைப்படுகிறது. இணையாக, கோப்பு சேவையகத்துடன் கூடிய கணினி வேறு எந்த வேலையையும் செய்ய முடியும்.
சேவையகம் ஆரம்பத்தில் இரண்டு முக்கிய செயல்முறைகளின் தொகுப்பாகத் தொடங்குகிறது:
- "இணைப்புகள்" - வாடிக்கையாளர்களுடன் தொடர்புகளை நிறுவுதல் மற்றும் சேவையகத்தின் முன்முயற்சியில் அதை நிறுத்துவதற்கான செயல்பாடுகளைச் செய்வதற்கான ஒரு செயல்முறை;
- "செயல்பாடுகள்" - கோப்புகளுடன் பணிபுரிய வாடிக்கையாளர்களின் பணிகளை (செயல்பாடுகள்) செய்வதற்கும், கிளையன்ட் கட்டளைகளின் அடிப்படையில் தொடர்பு அமர்வுகளை மூடுவதற்கும் ஒரு செயல்முறை.
இரண்டு செயல்முறைகளும் ஒத்திசைக்கப்படவில்லை மற்றும் மல்டிபிராசஸ் வரிசைகள், ப்ராக்ஸி பொருள்கள், பூட்டுகள் மற்றும் சாக்கெட்டுகள் ஆகியவற்றின் அடிப்படையில் செய்திகளைப் பெறுவதற்கும் அனுப்புவதற்கும் முடிவற்ற சுழல்களாக ஒழுங்கமைக்கப்பட்டுள்ளன.
இணைப்பு செயல்முறை ஒவ்வொரு கிளையண்டிற்கும் தரவைப் பெறுவதற்கும் அனுப்புவதற்கும் ஒரு போர்ட்டை ஒதுக்குகிறது. சேவையகம் தொடங்கும் போது போர்ட்களின் எண்ணிக்கை அமைக்கப்படும். போர்ட்கள் மற்றும் கிளையண்டுகளுக்கு இடையிலான மேப்பிங் இடைசெயல்-பகிர்வு ப்ராக்ஸி நினைவகத்தில் சேமிக்கப்படுகிறது.
செயல்பாடுகள் செயல்முறை கோப்பு ஆதாரங்களைப் பகிர்வதை ஆதரிக்கிறது, இதனால் பல வேறுபட்ட கிளையன்ட்கள் பகிர முடியும் (அரை-இணை, அணுகல் பூட்டுகளால் கட்டுப்படுத்தப்படுவதால்) "முதல்" கிளையண்டால் திறக்கப்பட்ட போது ஒரு கோப்பில் இருந்து தரவைப் படிக்கவும்.
கோப்புகளை உருவாக்க/நீக்க/திறக்க/மூட கட்டளைகளை செயலாக்குதல் சர்வர் "செயல்பாடு" செயல்பாட்டில் மேற்கொள்ளப்படுகிறது, கண்டிப்பாக தொடர்ச்சியாக சேவையக OS இன் கோப்பு துணை அமைப்பைப் பயன்படுத்துகிறது.
பொதுவாக வாசிப்பு/எழுதுதலை விரைவுபடுத்த, இந்த செயல்பாடுகள் "செயல்பாடுகள்" செயல்முறையால் உருவாக்கப்பட்ட நூல்களில் செய்யப்படுகின்றன. நூல்களின் எண்ணிக்கை பொதுவாக திறந்த கோப்புகளின் எண்ணிக்கைக்கு சமமாக இருக்கும். வாடிக்கையாளர்களிடமிருந்து படிக்கும்/எழுதும் பணிகள் பொது வரிசையில் சமர்ப்பிக்கப்படும் மற்றும் முதல் இலவச நூல் அதன் தலையிலிருந்து பணியை எடுக்கும். சிறப்பு தர்க்கம் சேவையகத்தின் ரேமில் தரவு மீண்டும் எழுதும் செயல்பாடுகளை அகற்ற உங்களை அனுமதிக்கிறது.
செயல்பாட்டுச் செயல்முறை கிளையன்ட் செயல்பாட்டைக் கண்காணித்து, அவர்களின் கட்டளைகளின்படி அல்லது செயலற்ற காலக்கெடுவை மீறும் போது அவர்களுக்கு சேவை செய்வதை நிறுத்துகிறது.
நம்பகத்தன்மையை உறுதிப்படுத்த, கேஜ்சர்வர் அனைத்து பரிவர்த்தனைகளின் பதிவுகளையும் வைத்திருக்கிறது. ஒரு பொதுப் பதிவில், கோப்புகளை உருவாக்க/திறக்க/மறுபெயரிட/நீக்க வேண்டிய பணிகளுடன் வாடிக்கையாளர்களிடமிருந்து வரும் செய்திகளின் நகல் உள்ளது. வேலை செய்யும் ஒவ்வொரு கோப்பிற்கும் ஒரு தனி பதிவு உருவாக்கப்படுகிறது, இதில் இந்த வேலை செய்யும் கோப்பில் தரவைப் படிக்கவும் எழுதவும் பணிகளுடன் கூடிய செய்திகளின் நகல்கள் பதிவு செய்யப்படுகின்றன, அத்துடன் எழுதப்பட்ட (புதிய) தரவுகளின் வரிசைகள் மற்றும் மேலெழுதலின் போது அழிக்கப்பட்ட தரவுகளின் வரிசைகள் (எழுதுதல்) பழையவற்றின் "மேல்" புதிய தரவு).
இந்த பதிவுகள் காப்புப்பிரதிகளில் புதிய மாற்றங்களை மீட்டமைக்கும் மற்றும் தற்போதைய உள்ளடக்கத்தை கடந்த காலத்திற்கு மாற்றும் திறனை வழங்குகின்றன.
கேஜ்சர்வர் என்பது 3100 கோடுகள் கொண்ட குறியீடு.

கேஜ்சர்வர் கோப்பு சேவையக நிரலை துவக்குகிறது
தொடங்கும் போது, உரையாடலில் நீங்கள் வரையறுக்க வேண்டும்:
- அங்கீகாரத்திற்கான முக்கிய துறைமுகம்;
- அங்கீகரிக்கப்பட்ட வாடிக்கையாளர்களுடன் பரிவர்த்தனைகளை பரிமாறிக்கொள்வதற்கான துறைமுகங்களின் எண்ணிக்கை (1 அல்லது அதற்கு மேற்பட்டவற்றிலிருந்து, எண்களின் தொகுப்பு பிரதான போர்ட் எண்ணுக்கு அடுத்துள்ள ஒன்றிலிருந்து தொடங்குகிறது).
கேஜ் வகுப்பைப் பயன்படுத்துதல்
வர்க்கம் கூண்டு.கேஜ்( cage_name="", pagesize=0, numpages=0, maxstrlen=0, server_ip={}, wait=0, awake=False, cache_file="" )
இந்த வகுப்பிலிருந்து பொருள்கள் உருவாக்கப்படுகின்றன, அவை கோப்பு சேவையகங்களுடன் தொடர்பு கொள்கின்றன மற்றும் இடையக நினைவகத்தைக் கொண்டுள்ளன.
அளவுருக்கள்
- கூண்டு_பெயர்(str,) - பொருளின் நிபந்தனை பெயர், இது சேவையக பக்கத்தில் உள்ள வாடிக்கையாளர்களை அடையாளம் காண பயன்படுகிறது
- பக்க அளவு(எண்ணாக) — இடையக நினைவகத்தின் ஒரு பக்கத்தின் அளவு (பைட்டுகளில்)
- எண்கள்(எண்ணாக) — இடையக நினைவக பக்கங்களின் எண்ணிக்கை
- maxstrlen(எண்ணாக) - எழுத்து மற்றும் வாசிப்பு செயல்பாடுகளில் பைட் சரத்தின் அதிகபட்ச நீளம்
- சர்வர்_ஐபி(dict என்று) - பயன்படுத்தப்பட்ட முகவரிகளைக் கொண்ட அகராதி சேவையகங்கள், இங்கு விசை என்பது சேவையகத்தின் நிபந்தனை பெயர் (பயன்பாட்டிற்குள் உள்ள சேவையக ஐடி), மற்றும் மதிப்பு என்பது முகவரியுடன் கூடிய ஒரு சரம்: “ip address:port” அல்லது “DNS:port” (பெயர்கள் மற்றும் உண்மையான முகவரிகளின் மேப்பிங் தற்காலிகமானது மற்றும் மாற்றப்படலாம்)
- காத்திரு(எண்ணாக) - போர்ட்களைப் பெறும்போது சேவையகத்திலிருந்து பதிலுக்காக காத்திருக்கும் நேரம் (வினாடிகளில்)
- விழித்து(பூலியன்) - பொருள் எவ்வாறு உருவாக்கப்படுகிறது என்பதற்கான கொடி (தவறான - ஒரு புதிய பொருள் உருவாக்கப்பட்டால், உண்மை - முன்பு "சரிந்த" ஒன்றிலிருந்து ஒரு பொருள் உருவாக்கப்பட்டால் - "உறக்கநிலை" செயல்பாட்டைப் பயன்படுத்தி, முன்னிருப்பாக தவறு)
- கேச்_கோப்பு(str,) - உறக்கநிலைக்கான கோப்பு பெயர்
முறைகள்
கூண்டு.file_create( சேவையகம், பாதை ) - ஒரு புதிய கோப்பை உருவாக்கவும்
கூண்டு.file_rename( சேவையகம், பாதை, புதிய_பெயர் ) - கோப்பை மறுபெயரிடவும்
கூண்டு.கோப்பு_நீக்கு( சேவையகம், பாதை) - ஒரு கோப்பை நீக்கவும்
கூண்டு.திறந்த( சர்வர், பாதை, மோட் ) - கோப்பைத் திறக்கவும்
திரும்பும் fchannel சேனல் எண். அளவுரு மோட் - இது கோப்பு திறப்பு முறை: "wm" - பிரத்தியேகமான (படிக்க/எழுத), "rs" - படிக்க மட்டும், மற்றும் மற்ற வாடிக்கையாளர்களால் படிக்க மட்டுமே பகிரப்பட்டது, "ws" - படிக்க/எழுத, மற்றும் படிக்க மட்டுமே பகிரப்பட்டது மற்ற வாடிக்கையாளர்கள்.
கூண்டு.நெருக்கமான (fchannel) - கோப்பை மூடவும்
கூண்டு.எழுத (fchannel, start, data ) - ஒரு கோப்பில் பைட் சரத்தை எழுதவும்
கூண்டு.படிக்க (fchannel, start, len_data ) - ஒரு கோப்பிலிருந்து பைட் சரத்தைப் படிக்கவும்
கூண்டு.போட_பக்கங்கள் ( fchannel ) - மாற்றப்பட்ட குறிப்பிட்ட சேனலின் அனைத்து பக்கங்களையும் இடையகத்திலிருந்து சேவையகத்திற்கு "தள்ளுகிறது". சேனலில் உள்ள அனைத்து செயல்பாடுகளும் சர்வரில் உள்ள ஒரு கோப்பில் உடல் ரீதியாக சேமிக்கப்பட்டுள்ளதா என்பதை உறுதிப்படுத்த வேண்டியிருக்கும் போது, அல்காரிதத்தில் உள்ள அந்த புள்ளிகளில் இது பயன்படுத்தப்படுகிறது.
கூண்டு.மிகுதி_அனைத்து () - மாற்றப்பட்ட கேஜ் வகுப்பின் உதாரணத்திற்காக, அனைத்து சேனல்களின் அனைத்து பக்கங்களையும் இடையகத்திலிருந்து சேவையகத்திற்கு "தள்ளுகிறது". எல்லா சேனல்களிலும் உள்ள அனைத்து செயல்பாடுகளும் சர்வரில் சேமிக்கப்பட்டிருப்பதை உறுதி செய்ய வேண்டியிருக்கும் போது பயன்படுத்தப்படுகிறது.
ஆதாரம்: www.habr.com
