சன் மைக்ரோசிஸ்டம்ஸின் சோலாரிஸ் பெரும்பாலும் செயலிழந்த நிலையில், அதன் தொழில்நுட்ப மரபு நவீன சிஸ்டம்ஸ் இன்ஜினியரிங்க்கான ஆழ்ந்த உத்வேகமாக உள்ளது. சோலாரிஸின் முன்னோடியான கண்டுபிடிப்புகள் நவீன இயக்க முறைமைகள், இணைய உலாவிகள் மற்றும் மொழி இயக்க நேரங்களின் கட்டமைப்பை அமைதியாக வடிவமைத்து, இன்றைய வளமான மென்பொருள் அடுக்கில் நிலைத்திருக்கும் அடிப்படை முன்னுதாரணங்களை நிறுவியது.
நினைவக மேலாண்மை மற்றும் முக்கிய நினைவக சேமிப்பிடம் ஆகியவற்றைக் கவனியுங்கள். சோலாரிஸிற்கான ஸ்லாப் அலோகேட்டர், முன் தொடங்கப்பட்ட கர்னல் பொருட்களைத் தேக்குவதற்குக் கண்டுபிடிக்கப்பட்டது, இது ஒதுக்கீடு மற்றும் துண்டு துண்டாக மாற்றத்தின் மேல்நிலையை வெகுவாகக் குறைத்து நவீன கர்னல்கள் மற்றும் தரவுத்தளங்களுக்கான வரைபடமாக மாறியது. இதேபோல், OpenZFS ஆனது ஒரு கோப்பு முறைமை மற்றும் தருக்க தொகுதி மேலாளர் ஆகியவற்றை தானியங்கு தணிக்கை திரட்டல் மற்றும் தரவுகளின் சுய பழுதுபார்ப்புடன் இணைப்பதன் மூலம் சேமிப்பகத்தில் புரட்சியை ஏற்படுத்தியது. லினக்ஸ் ஈபிபிஎஃப் போன்ற நவீன கருவிகளை நேரடியாக ஊக்கப்படுத்திய நேரடி கர்னல் மற்றும் பயனர் இடத்தை நிகழ்நேர சோதனைக்கு அனுமதிக்கும் டைனமிக் டிரேசிங் கட்டமைப்பான டிடிரேஸ் மூலம் கணினி கண்காணிப்பு மாற்றப்பட்டது. மேலும், கன்டெய்னரைசேஷன் சோலாரிஸை அறிமுகப்படுத்துவதற்கு நீண்ட காலத்திற்கு முன்பே கிளவுட் உள்கட்டமைப்பு ஆதிக்கம் செலுத்தியது பிராந்தியங்கள்OS மட்டத்தில் பாதுகாப்பான மெய்நிகராக்கத்திற்கு முன்னோடியாக உள்ளது.
இந்த முன்னேற்றங்களுக்கு கூடுதலாக, சோலாரிஸ் டர்ன்ஸ்டைல்களை அறிமுகப்படுத்தினார், இது மியூடெக்ஸ் மேல்நிலை மற்றும் முன்னுரிமை தலைகீழ் தடுப்பதை நிவர்த்தி செய்ய வடிவமைக்கப்பட்ட ஒரு புத்திசாலித்தனமான ஒத்திசைவு பொறிமுறையாகும்.
சோலாரிஸ் மெதுவான நிகழ்நேர நடத்தைக்காக மியூடெக்ஸ்களைப் பூட்டுவதை பெரிதும் நம்பியிருந்தார், இதனால் இரண்டு பெரிய சிக்கல்கள் ஏற்பட்டன. முதலாவதாக, நன்றாகச் சரிசெய்வதற்கு ஆயிரக்கணக்கான சிறிய பூட்டுகள் தேவைப்படுகின்றன; ஒவ்வொரு பூட்டிலும் கனமான கணக்கியல் தகவலை உள்ளிடுவது அதிக அளவு நினைவகத்தை வீணாக்குகிறது. இரண்டாவதாக, முன்னுரிமை தலைகீழ் ஒரு உயர்-முன்னுரிமை பணி ஒரு குறைந்த முன்னுரிமை பணியுடன் பூட்டப்பட்டிருக்கும் போது ஏற்படுகிறது, இது ஒரு நடுத்தர-முன்னுரிமை பணியால் முன்கூட்டியே தடுக்கப்பட்டு, கணினியை காலவரையின்றி நிறுத்தும். பூட்டுகளை உயர்த்தாமல் இதைத் தீர்க்க, கர்னல்கள் முன்னுரிமை மரபுரிமையைப் பயன்படுத்துகின்றன மற்றும் பூட்டு வைத்திருப்பவரின் முன்னுரிமையை தற்காலிகமாக உயர்த்துகின்றன, இருப்பினும் சார்புச் சங்கிலிகளை திறமையாகக் கண்காணிப்பது மிகவும் கடினம்.
தனிப்பட்ட பூட்டுதல் கட்டமைப்புகளிலிருந்து காத்திருப்பு பயன்முறையைப் பிரிப்பதன் மூலம் டர்ன்ஸ்டைல்கள் இதைத் தீர்க்கின்றன. ஒவ்வொரு நூலும் உருவாக்கத்தின் போது அதன் சொந்த டூர்னிக்கெட்டை பிரிக்கிறது. ஒரு நூல் போட்டியிட்ட பூட்டுடன் பிணைக்கப்படும் போது, அது அதற்கு முன்னர் ஒதுக்கப்பட்ட டர்ன்ஸ்டைலை அந்த பூட்டுக்கு ஒதுக்கி, உலகளாவிய ஹாஷ் அட்டவணை மற்றும் பூட்டின் மெய்நிகர் முகவரியுடன் ஒரு பக்கெட் மூலம் அதை வரைபடமாக்குகிறது. இது தேவையற்ற பூட்டுகளை நுண்ணிய (பெரும்பாலும் ஒற்றை பைட் அல்லது வார்த்தைக்கு) வைத்திருக்கும் போது மாறும் முன்னுரிமை மரபுரிமைக்கு அனுமதிக்கிறது. இருப்பினும், இது ஒரு உன்னதமான பொறியியல் வர்த்தகத்தை உருவாக்குகிறது: ஒரு பூட்டுக்கு குறைந்தபட்ச நினைவக மேல்நிலைக்கு ஈடாக, அதிக சர்ச்சையின் கீழ் பூட்டு செயல்பாடு உலகளாவிய ஹாஷ் பக்கெட் தேடல்கள் மற்றும் பஸ் ஒத்திசைவுக்கான உள்ளூர் கேச் அணுகலை வர்த்தகம் செய்கிறது, இது ஹாஷ் பக்கெட் பூட்டு சர்ச்சையில் ஒரு தடையாக இருக்கலாம்.
இந்த கட்டிடக்கலை டிஎன்ஏ நவீன மென்பொருளில் ஆழமாக இயங்குகிறது, இது மொழி இயக்க நேரங்கள், உலாவி இயந்திரங்கள் மற்றும் பயனர்-வெளி நூலகங்களை பாதிக்கிறது.
Go இல், இயக்க நேரம் ஒவ்வொரு பழமையானவற்றின் ஒத்திசைவு நிலையை நிரப்பாமல் மில்லியன் கணக்கான goroutines இடையே பாரிய ஒத்திசைவை நிர்வகிக்கிறது. Go இயக்க நேரத்தின் sema.go இல் செயல்படுத்தப்படும் உள் இயக்க நேர செமாஃபோர்கள் மூலம் Go இதைச் செய்கிறது. ஒவ்வொரு பூட்டு, மியூடெக்ஸ் அல்லது சேனல் செயல்பாட்டிற்கும் காத்திருப்பு வரிசைகளை ஒதுக்குவதற்குப் பதிலாக, செம்டேபிள் எனப்படும் உலகளாவிய ரூட் அட்டவணையை Go பயன்படுத்துகிறது. ஒரு கோரூட்டின் ஒரு ஒத்திசைவு புள்ளியில் தடுக்கும் போது, குறிப்பிட்ட செமாரூட் வாளியைக் கண்டறிய அதன் நினைவக முகவரி ஹாஷ் செய்யப்பட்டு, அந்த வாளியுடன் பிணைக்கப்பட்டுள்ள நிலுவையிலுள்ள சூடோ கட்டமைப்புகளின் அளவோடு பிணைக்கப்படும். இது மேல்நிலையை முற்றிலுமாக நீக்குகிறது, ஒத்திசைவு மாறிகளை மிகவும் இலகுவாக வைத்திருக்கிறது, மேலும் நினைவக அபராதம் இல்லாமல் Go ஐ திறமையாக அளவிட அனுமதிக்கிறது.
இணைய உலாவிகளில், நினைவக திறன் மற்றும் பூட்டு வேகம் ஆகியவை மிக முக்கியமானவை, உலாவி இயந்திரங்கள் தனித்துவமான கட்டமைப்பின் அதே தத்துவத்தை பின்பற்ற முன்னணியில் உள்ளன. WebKit இதை WTF::ParkingLot, ஒரு கையடக்க பயனர்-நிலை பார்க்கிங் பொறிமுறையை அறிமுகப்படுத்தி சாதித்தது. WTF::Lock போன்ற பூட்டுகளை இயக்க முறைமை மியூடெக்ஸ் அல்லது மாற்றக்கூடிய நிலையின் சுமையை சுமக்க விடாமல், WebKit நிலையான பூட்டுகளை அற்பமான அளவிற்கு குறைத்துள்ளது. ஒரு நூலைத் தடுக்க வேண்டியிருக்கும் போது, ParkingLot ஆல் நிர்வகிக்கப்படும் ஒரே நேரத்தில் உலகளாவிய ஹாஷ் அட்டவணையில் அதன் முகவரியைப் பதிவு செய்வதன் மூலம் அது “பார்க்” செய்கிறது. இது ஸ்லீப் மற்றும் வேக் மெஷின்களிலிருந்து பூட்டை முழுவதுமாகப் பிரித்து, பொருந்தாத பூட்டுகளிலிருந்து வீக்கத்தை நீக்குகிறது.
இந்த வடிவமைப்பு முறை உலாவிகள் மற்றும் நிர்வகிக்கப்பட்ட காலவரிசைகளுக்கு அப்பாற்பட்ட பயனர் விண்வெளி சுற்றுச்சூழல் அமைப்புகளிலும் ஆழமான தாக்கத்தை ஏற்படுத்தியுள்ளது. ஒரு குறிப்பிடத்தக்க உதாரணம் ரஸ்ட் பார்க்கிங்_லாட் பாக்ஸ், இது வெப்கிட்டின் பார்க்கிங்லாட் வடிவமைப்பை ரஸ்ட் சுற்றுச்சூழல் அமைப்பில் தெளிவாகக் கொண்டுவருகிறது. பூட்டு முகவரிகள் மூலம் நிலுவையில் உள்ள ஹாஷ் வரிசைகளின் வெளிப்புற அட்டவணையை பராமரிப்பதன் மூலம், நிலையான இயக்க முறைமையின் ஆதிநிலைகளை மீறும் செயல்திறன் மற்றும் நியாயத்தன்மை பண்புகளை வழங்கும் அதே வேளையில், பெட்டியானது ஒத்திசைவு ப்ரிமிட்டிவ்களை மிகச் சிறியதாக இருக்க அனுமதிக்கிறது.
இந்த நவீன சூழல்கள் அனைத்திலும், அடிப்படைக் கொள்கையானது வரலாற்றுச் சிறப்புமிக்க சோலாரிஸ் டர்ன்ஸ்டைலைப் போலவே உள்ளது: பகிரப்பட்ட வெளிப்புறத் தரவுக் கட்டமைப்பிற்கு நூல் ஒத்திசைவின் கனமான தூக்குதலை ஏற்றி, தனிப்பட்ட பூட்டுகளை மெல்லியதாகவும், வேகமாகவும், மலிவாகவும் ஆக்குங்கள்.
Leave a Reply