Saturday, May 26, 2012

கலங்கரை விளக்கம்

இறைவனடி சேர்ந்தார் வாழ்க்கை கடலை எளிதாக கடக்கின்றார் என்று வள்ளுவம் பகல்கின்றது. ஆனால், இதுவரை இறைவன் ஒரு மறைபொருளாகத்தான் இருந்திருக்கின்றார். இருந்துகொண்டு இருக்கிறார். மறைபொருளாக இருப்பவனை எப்படிப் பற்றுவது? அவனைப் பற்றுவதற்கான அறிவை அவனே எனக்கு அளிக்கவில்லை. இந்த சாதாரண அறிவிற்கு கண்கூடாக கண்டவற்றை மட்டுமே நம்பும் சக்தி உள்ளது.

இப்படி நினைக்கும் போதுதான், சமீப காலங்களில் கண்கூடாக வாழ்ந்து மறைந்த ஞானியர், மக்களுக்கு நம்பிக்கைத் தரும் கலங்கரை விளக்கமாக ஒளி வீசுகின்றனர். "இதுதான் நிதர்சனம்! இதுதான் வாழ்வின் பொருள்!!" என நூறு வீதம் நிதர்சனமாக வாழ்ந்து காட்டியவர்கள். போலிக்கு அப்பாற்ப்பட்டவர்கள். நாம் எந்த உண்மையைத் தேடி ஓடுகின்றோமோ, அந்த உண்மையே மனித உருவாய் வந்து வாழ்ந்து காட்டுகின்றது.

அப்படி, நான் பற்றிய ஒரு உண்மைதான் "ரமண மகரிஷி". எப்படி திருவண்ணாமலை அவரை தானாக அழைத்ததோ, அதுபோலத்தான் ரமணமும் எனக்குள் தானாக, கொஞ்சம் கொஞ்சமாக வந்து நிறைந்தது. இதோ என்னைச் சுற்றியிருந்த போலியான் பழக்கங்கள் போலியான நினைவுகள் கொஞ்சம் கொஞ்சமாக விலகிக்கொண்டிருக்கின்றன. நான் எந்தளவுக்கு ரமணரை மனதுக்குள் நிரப்பி வைத்திருக்கின்றேனோ அந்தளவுக்கு நான் தேடிய நிறைவு கிடைக்கிறது. தெளிவு பிறக்கிறது. பயமும் குற்ற உணர்ச்சியும் விலகுகிறது. அடுத்து என்ன செய்ய வேண்டும் எனத் தெளிவாய் தெரிகிறது. என்ன செய்தேனோ அதில் திருப்தி கிடைக்கிறது. என்னைச் சார்ந்தவர்களிடமும் ஒரு இணக்கமான சூழல் பரவுகிறது. எல்லாவற்றையும் "ரமணார்ப்பணம்" என முடிக்கும்பொழுது வாழ்வின் நிதர்சனத்தை புரிந்து கொண்டு அடுத்த அடி எடுத்து வைக்க முடிகிறது.

"ரமணர் எனது வாழ்வின் கலங்கரை விளக்கம்".

Tuesday, May 8, 2012

Micro Operating System

Testing Not to do source address selection for TCP connections

Target IPv6 addresses:
2010:0002:0002:0002:FFF2:FFF2:FFF2:FFF2/64
2010:0002:0002:0002:0002:0002:0002:0002/64

FreeBSD IPv6 address:
2010:0002:0002:0002:0002:0002:0002:0003/64

No default routers.

Now, if you do "ftp 2010:0002:0002:0002:FFF2:FFF2:FFF2:FFF2" from FreeBSD, the SYN reply should come from "2010:0002:0002:0002:FFF2:FFF2:FFF2:FFF2". Not from "2010:0002:0002:0002:0002:0002:0002:0002".

If the target performs source address selection, the reply will come from the matching address "2010:0002:0002:0002:0002:0002:0002:0002" and the connection will fail.

Monday, April 30, 2012

மழலைக் கவிதைகள்

ஹைக்கூ

வெட்டும் நகத்திலும்
களையும் தாடி முடியிலும்
ஒரு வலி.
என் பிஞ்சுக் குழந்தையை பிரிந்து
தொலைதூரத்தில் நான்.

 

ஒன்று சொல்லுங்களேன்!

"அம்மா!.. அம்மா!!"
"அப்பா!..அப்பா!!"
"ஒன்று சொல்லுங்களேன்!"
"எது முதலில் வந்தது..!?
பெற்றோர் 'பிள்ளைகள் காப்பக'த்தை
தேடியதா? அல்லது, பிள்ளைகள்
'முதியோர் இல்ல'த்தை தேடியதா?"

நான் கேட்டேனா?

பிஞ்சு பேசியது அதியசமாய்.
"அம்மா! அம்மா!! என்னை
விட்டுட்டு போகாதீங்க!"
"ஆயாவிடம் சமத்தாய் இருடா, செல்லம்!
அம்மா உனக்காகத்தான் சம்பாதிக்கப்
போகிறேன்" - அம்மாவின் குரல்.
"நான் கேட்டேனா?" - இது பிஞ்சு.

Sunday, April 29, 2012

சும்மா இருங்கள்!

உங்களால் சும்மா இருக்க முடிகிறதா? நீங்கள் நிச்சயமாக வாழ்வில் வெற்றி பெறுவீர்கள்.

நான் தினமும் குறைந்தது இருபது தடவைகள் இன்டர்நெட்டில் நியூஸ் பார்த்து விடுவேன். ஏதாவது செய்ய வேண்டுமென்றால், உடனே எங்கேவாவது ஏதாவது செய்திகள் புதிப்பிக்கப் பட்டுள்ளனவா என்று தேடி தேடி செய்திகளை படிப்பதுதான் ஒரே மன ஆறுதல். அது மனஅழுத்தத்தை குறைப்பதற்கு பதில், என்னை மனதளவிலும் உடலளவிலும் சோர்வடைய செய்வதையே நாளடைவில் உணர்ந்தேன். காலணா பிரயோசனமில்லை என்றாலும் எதற்கு அந்த செய்திகளை தேடி தேடி படிக்க வேண்டும் என்று தோன்றியது? என்னை அறியாமலேயே நான் அதில் அடிமையாகி விட்டதை உணர்ந்தேன். இப்படித்தானே குடிகாரர்களும் புகைப்பவர்களும். அவர்கள் குடிக்க செல்லும் நேரத்தில் அல்லது புகை பிடிக்க செல்லும் நேரத்தில் சும்மா கொட்டாவி விட்டுக் கொண்டு படுத்து கிடந்தால் பிரச்சினையே இல்லைதானே? ஏன் சும்மா இருக்க முடியவில்லை? சும்மா இருப்பது அவ்வளவு கடினமா? கண்டிப்பாக. குரங்கு மனதை வைத்துக் கொண்டு, சும்மா இருப்பது கடினம்தான்.

எனக்கு பயன்படாதவற்றை செய்யத் தோன்றும் நேரத்தில், சும்மா இருப்பதாக முடிவெடுத்தேன். தற்போது செய்திகளை காலையில் ஒரு தடவை மட்டும் படிக்கிறேன். யாரைப் பற்றியோ செய்திகளை அதற்கு மேல் படிப்பதில் எனக்கென்ன பிரயோசனம்? சும்மா படுக்கும் நேரத்தில், நான் செய்வதற்காக காத்திருக்கும் எத்தனையோ வேலைகள் என் கண் முன்னே வருகின்றன. எனக்குத் தேவையான தொழில்நுட்பம் சம்பந்தமான செய்திகளை அதிகளவில் படிக்கக் கற்றுக் கொண்டேன். தேவையில்லா குப்பைகளை ஒதுக்கித் தள்ளியதால் தேவையானவற்றை சேர்த்துக் கொள்ள என் மூளையில் நிறைய இடம் கிடைத்துள்ளது. அப்துல் கலாம் சொல்கிறார். "நான் திரைப்படங்களை பார்ப்பதே இல்லை. அதனால் நான் இழந்தது ஒன்றுமே இல்லை".

இந்த இளம் ஞானியை பாருங்கள்! ஸ்ரீ ரமண மகரிஷி! அவர் சும்மா இருந்தார். சும்மா இருப்பது அவ்வளவு கடினம்.


Saturday, April 21, 2012

http://www.tubetamil.com/entertainment-videos/wedding/%E0%AE%87%E0%AE%AA%E0%AF%8D%E0%AE%AA%E0%AE%9F%E0%AE%BF%E0%AE%AF%E0%AF%81%E0%AE%AE%E0%AF%8D-%E0%AE%92%E0%AE%B0%E0%AF%81-%E0%AE%A4%E0%AE%BF%E0%AE%B0%E0%AF%81%E0%AE%AE%E0%AE%A3%E0%AE%AE%E0%AF%8D.html

Writing Read Configuration Register in Flash of Armadillo-440

    Outport(2, 0xA0012384, 0x60)
                           ~~~~~~(Read Configuration Register content << 1)
    Wait(1)
    Outport(2, 0xA0012384, 0x03)
                           ~~~~~~(Read Configuration Register content << 1)
    Wait(1)
    Outport(2, 0xA0000000, 0xff) // Flash to read mode
    Wait(1)

Flash is Numonyx PC28F256P30BF. To check the flash register contents from debugger, memory map the flash to some other area and write the commands in that. Since, Flash is configured as Read-only in some debuggers, they may not allow direct write. Or, write using the debugger scripts which do not know that the address are is Flash. Make sure that the Cache is configured as Write-Through.

Friday, April 20, 2012

Why High end technologies do not fit for Indians?

They do not stop talking on mobile phones till air hostess personally warns. Almost all mobile phones will ring immediately after the flight landed irrespective of the pilot's warning.

You can see the latest induction stove in almost all houses, but they have increased the power shortage too, around 6 hours power-cut per day.

AC buses in India got fire more frequently than ordinary buses, with severe casualties than the ordinary ones.

Construction of medians and fly-overs spoils the road more, and results much more chaotic.

If you happen to go to bank, you can see there will be Token Display, but repaired long before.

Why does the traffic policeman/policewoman need to stand in automatic traffic signals? If there is an policeman/policewoman, why are the automatic traffic signals needed? And, the automatic traffic signals rests on holidays.


Thursday, April 19, 2012

எதற்கு உனக்கு வேலை வேண்டும்?

எதற்கு ஒரு வேலையே தேடி ஓடுகிறாய்? அடுத்தவன் கொடுக்கும் ஒரு வேலையே செய்யத் தெரிந்த உனக்கு தானாகவே ஒரு வேலையே செய்யத் தெரியாதா? அதற்குத் லேட்டஸ்ட் தொழில்நுட்பம் தெரிந்திருக்க வேண்டுமா? சொல்லிக் கொடுத்திருக்க வேண்டிய கல்லூரிகள் சொல்லித் தரவில்லையா? அல்லது, தொழில்நுட்பத்தை சொல்லித் தந்தாலும், தானாக தொழில் தொடங்குவதை ஊக்குவித்திருக்க மாட்டார்கள். வேலை கிடைத்து விட்டதா என்றுதான் கேட்பார்களே ஒழிய, வேலை தொடங்கி விட்டாயா என்று யார்தான் கேட்பார்கள். நீயாக ஒரு வேலையை செய்யக் கற்றுக் கொடுக்காத படிப்புக்கு பெயர் ப்ரொபெஷனல் படிப்பா? தொழில்நுட்பம் வேண்டுமானால் வா.. நான் கற்றுத் தருகிறேன். போய் தொழிலை ஆரம்பி.
வேலை கிடைக்கவில்லை என்று மட்டும் வராதே. அசையத் தெரிந்த அனைத்திற்கும் இப்புவியில் வேலை உள்ளது. "வேலை இல்லை" என்றால் "உனக்கு ஒன்றுமே செய்யத் தெரியாது" என்று அர்த்தம். உனக்கு என்னதான் செய்யத் தெரியும்? அதை செய்.. போ.
கற்பி ! ஒன்றுசேர் !! புரட்சிசெய்  !!! என்பது எல்லாவற்றுக்கும் பொருந்தும்.

பெற்றோர்களே! உங்கள் குழந்தைகளுக்கு சிறு வயதிலிருந்தே நிறைய வேலை கொடுங்கள். அல்லது, நிறைய வேலைகளை செய்ய கற்றுக் கொடுங்கள். எந்தக் குழந்தையை பார்த்தாலும் "உனக்கு என்ன செய்யத் தெரியும்?", "ஓய்வு நேரங்களில் என்ன செய்கிறாய்?" எனக் கேட்க பழகிக் கொள்ளுங்கள். "எனக்கு நன்றாக பாடத் தெரியும்", "நான் நன்றாக விளையாடுவேன்", "நான் நன்கு மரம் ஏறுவேன்", "ஓய்வு நேரங்களில் செடி வளர்க்கிறேன்", "என் பெற்றோர்களுக்கு உதவி செய்வேன்", "நான் நன்றாக சமைப்பேன்" என எது வேண்டுமானாலும் பரவாயில்லை. ஒவ்வொரு பருவத்திலும் வயதுக்கேற்ற இரண்டு, மூன்று வேலைகளை செய்ய அவர்கள் பக்குவப் பட்டிருக்க வேண்டும். இயற்கையாகவே அவர்களுக்கு எதில் நாட்டம் இருக்கிறது? எதில் திறமை இருக்கிறது? என்று பாருங்கள். அதில் அவர்களை பிரகாசிக்க விடுங்கள். தொழில்களுக்குள் பேதம் புகுத்துவது நீங்களே. சிறு வயதிலிருந்தே நம் பிள்ளை என்னென்ன செய்யப் போகிறான் என சிந்தியுங்கள். படிப்படியாக நீங்கள் சிந்திப்பதை நிறுத்திக் கொண்டு அவர்களை சிந்திக்க விடுங்கள். அவர்களுக்கு அந்த சுதந்திரத்தை கொடுங்கள். உயர்கல்வி முடித்த பிறகு திடீரென்று ஒருநாள் உட்கார்ந்து நம் பிள்ளை என்ன படிக்க வேண்டும் என யோசிக்காதீர்கள். படித்து முடித்தவுடன் இன்னும் வேலை தேடிக் கொண்டிருக்கிறான் என்று சொல்லாதீர்கள். கம்ப்யூட்டர் படித்து விட்டு வேலை தேடிக் கொண்டிருக்கும் ஒரு பிள்ளையை விட, முறையாக விவசாயம் செய்து அழகாக வாழ்ந்து கொண்டிருக்கும் ஒரு பிள்ளைதான் முறையாக வழிநடத்தப் பட்டிருக்கிறான்.

அதுபோல் படிப்பு என்பது வெறும் புத்தகப் படிப்பு மட்டும் போதாது. அன்றாட நிகழ்வுகள் பற்றிய பொது அறிவு, வார, மாத பத்திரிக்கைகள் மூலம் அறியக்கூடிய பொது அறிவு, பிற மொழித்திறன் முதலியவையும் மிக அவசியம். பிற்காலத்தில் ஒன்றை விட்டால் மற்றொன்றை பிடிக்கக் கூடிய ஆற்றலும், துணிச்சலும், தன்னம்பிக்கையும் இருப்பது மிக அவசியம். அதனால் பெற்றோர்கள் குழந்தைகளின் கற்றலில் தங்களையும் ஈடுபடுத்திக் கொள்ள வேண்டும். தரமற்ற ஊடகங்கள் மலிந்து விட்ட இக்காலத்தில், குழந்தைகளுக்குத் தேவையான செய்திகளை சேகரித்து அவர்களுக்கு அறியத் தருவது, பொது நிகழ்ச்சிகளுக்கு அழைத்துச் செல்வது, தரமான பத்திரிக்கைகளை படிக்க ஊக்கமூட்டுவது, எந்தந்த துறைகளில் சாதிக்க என்னென்ன செய்வது என்பது பற்றிய அறிவை வளர்த்துக் கொள்வது, சாதகமான இரண்டு மூன்று துறைகளை தேர்ந்தெடுத்துக் கொண்டு, அவற்றை நோக்கி குழந்தைகளை வழி நடத்துவது முதலியவை அவற்றில் அடங்கும். இந்த செயல்திட்டத்தில் குழந்தைகளை சக நண்பனாக இருந்து வழிநடத்த வேண்டுமே தவிர, அவர்களை திட்டுவதோ அடிப்பதோ கூடாது. அதே சமயம், குறிப்பிட்ட இடைவெளிகளில் அவர்களுடைய வளர்ச்சியை கண்காணிப்பது, எல்லாவற்றிலும் அவர்களுடைய கவனம் இருக்குமாறு, தினந்தோறும் அவர்களுடைய நேரத்தை பிரித்துக் கொடுத்து ஊக்கப் படுத்துவது மிக அவசியம். தேர்வுக்கு முதல் நாள் அமர்ந்து அவர்களை சோதிப்பது என்பது உங்களுடைய குறைபாடையே காட்டும்.

நான் தஞ்சாவூரில் படிக்கும் பொழுது தங்கியிருந்த வீட்டில் எங்கு பார்த்தாலும் மணிவேலைப்பாடுகளுடன் கூடிய அழகிய பொருட்களை பார்க்கலாம். அனைத்தும் அந்த முதலாளி அம்மா செய்தவை. வேலை முடித்த மதிய நேரங்களில் எப்பொழுதும் கையில் ஊசி, நூல், மணிகள், சுவெட்டர்களுடன் அவர்களை பார்க்கலாம். உயர்ந்த அரசுப் பணியில் இருந்து ஓய்வுப் பெற்ற முதலாளி அய்யா ஓய்வு நேரங்களில் தச்சுத் தொழிலில் ஈடுப்பட்டிருப்பதைப் பார்க்கலாம். சமீபத்தில் நான் படித்த ஒரு கட்டுரையில் "இந்தியாவில் உபயோகமான பொழுதுப் போக்கு என்பது மிகவும் குறைவு. இதனால் அவர்கள் இழக்கும் தொழில்நுட்ப அறிவு மிக அதிகம். நான் தற்போது செய்து கொண்டிருக்கும் இந்த தொழில் முழுக்க முழுக்க என்னுடைய பொழுதுப் போக்கிலிருந்து வந்தது. நான் சிறு வயதிலிருந்தே மின்னணுவியலில் மூழ்கியிருந்தேன். எனக்குத் தெரிந்த வல்லுனர்கள் கல்லூரி வயதிற்கு முன்பிருந்தே அந்த துறைகளை கரைத்துக் குடித்திருந்தார்கள். புகழ்பெற்ற பொறியாளர் ஜிம்மி வில்லியம்ஸ் பற்றித் தெரியுமா? அவர் உயர் கல்வி படிக்கும்பொழுது மின்னனுவியலைப் பற்றி தெரிந்து கொள்ள டிவி கடையில் வேலை பார்த்தார். மேலும் தான் வேலைக்கு செல்லும் காலம் முழுதும் கூட தன்னுடைய வீட்டில் அதற்கான அறையை ஒதுக்கி தன்னுடைய முயற்சியை தொடர்ந்தார்" என்று கூறப்பட்டுள்ளது. ஆக்கப்பூர்வமான, அதாவது, ஓய்வு நேரங்களில் அறிவை வளர்க்ககூடிய, ஆரோக்கியத்தை வளர்க்கக்கூடிய, வருமானத்தை வளர்க்கக்கூடிய, தனது கலைத்திறனை வெளிப்படுத்தக் கூடிய, தனது திறமைகளை பயன்படுத்தும் வகையில், தனது திறமைகளை வளர்த்துக்கொள்ளும் வகையில் பொழுதுப் போக்கை வளர்த்துக் கொள்ளுங்கள்.



ஏன் கம்ப்யூட்டர் தொழில் அடிக்கடி அடி வாங்குகிறது?

ஏனென்றால், கம்ப்யூட்டர் உலகத்தில் எதுவுமே உண்மையானவை அல்ல. எப்பொழுதெல்லாம் பெரும்பாலான மனிதர்கள் உண்மையானவற்றை நோக்கி ஓடுகிறார்களோ அப்பொழுதெல்லாம் கம்ப்யூட்டர் தொழில் அடி வாங்குவதாக செய்தி வரும்.  அதானால்தான் அதற்கு "சைபர்" வேல்ட் எனப் பெயர் வைத்தான். கம்ப்யுட்டரில் அப்லோட் செய்யும் போட்டோக்களில் உள்ள சிரிப்புக்கள் போலி. இவன் அனுப்பும் ஸ்மைலி போலி. இவன் உம்மென்று அமர்ந்து கொண்டு ஸ்மைலி அனுப்புகிறான். போட்டோ எடுப்பது தெரிந்ததுமே ஒருவன் சிரிப்பு போலியாகி விடுகிறது.

ஆறாவது நிலம்

தமிழருக்கு ஐந்து வகை நிலங்கள் இருந்தன.
கடலும் கடல் சார்ந்த இடமும் - நெய்தல்
உழவும் உழவு சார்ந்த இடமும் - மருதம்
மலையும் மலை சார்ந்த இடமும் - குறிஞ்சி
காடும் காடு சார்ந்த இடமும் - முல்லை
மணலும் மணல் சார்ந்த இடமும் - பாலை
அதுபோல் தற்போது ஆறாவது நிலம் ஒன்று உள்ளது. வேலையும் வேலை சார்ந்த இடமும். அதுதான் ஜப்பான். வாழ்க்கை முழுதும் அங்கேயே. உண்டு, உறங்கி, இத்யாதி, இத்யாதி...

Monday, April 16, 2012

வீட்டின் முக்கிய அம்சங்கள்

வீட்டின் முக்கிய அம்சங்கள்:
  1. சூரிய மின்சக்தி
  2. வெப்பத்தை தாங்கவல்ல வீடு (குளிர்ச்சியான வீடு)
  3. கொசுவலை அடிக்கப்பட்ட வீடு
  4. நிலநடுக்கத்தை தாங்க கூடிய வீடு
  5. லேசான வீடு
  6. குறைந்த செலவிலான வீடு
  7. தோட்டத்துடன் கூடிய வீடு
  8. பலமாடிகளை தாங்ககூடிய அளவுக்கு அஸ்திவாரம் பலமான வீடு
  9. வாகனங்கள் நிறுத்த வசதியான வீடு
  10. சாதாரண சிமென்ட் தரை 
  11. கழிவு நீர் சுத்திகரிக்கப்பட்டு செடிகளுக்கு பயன்படும் வீடு
  12. மழை நீர் சேகரிக்கும் வீடு
அஸ்திவாரம் எப்பொழுதும் போல பரவாயில்லை. மரங்களை வளர்க்கும்போது, சுற்றுச் சுவற்றையோ, அஸ்திவாரத்தையோ பதம் பார்க்காத வகையில் மரம் நடும் இடத்தில் வட்டமான உருளைகளை பதித்தோ, நீளமான கல் தகடுகளை இருபுறமும் பதித்தோ வேரின் போக்கை கட்டுப்படுத்தலாம்.
அடுத்து, எத்தனை மாடிகள் வேண்டுமோ, அத்தனை மாடிகளை எலும்புக்கூடு போன்று பிள்ளர்களை வைத்து உருவாக்கிக் கொள்வது நல்லது. இப்பொழுது, நிலநடுக்கத்தை தாங்கக் கூடிய அளவில், குறைந்தது மூன்று நான்கு மாடிகளைத் தாங்க கூடிய அளவில், கனமான கம்பிகளை பயன்படுத்த வேண்டும். பிள்ளர்களுக்கான அடிப்படைகள்:
நிலநடுக்கத்தை தாங்க:(ஆராய்ச்சி தொடர்கிறது)

குளிர்ச்சியான வீட்டிற்கு:
சிலாப்களை வெளியில் நீட்ட கம்பி பொருத்தவும். சிலாப்களில் மெலிதாக தண்ணீர் தேங்குமளவிற்கு ஓரங்களை தூக்கி வடிவமைக்கவும். வெய்யில் காலங்களில் தண்ணீர் ஊற்ற/தேங்க வசதியாக இருக்க வேண்டும். பில்லர் வரும் இடத்தில் மட்டும் சிலாப்களில் இடைவெளி விடவும். சுவற்றை ஒட்டி குழாய்கள் மற்றும் வயர்கள் இறங்க ஏதுவாக இருக்கும். கூரை ஒட்டும்போழுதே எப்பொழும் போல வயரிங் குழாய்களை பொருத்தி விடவும். ஒவ்வொரு அறைக்கும் மூன்று (நடுவில் காற்றாடி, இரண்டு ஓரங்களிலும் LED விளக்கு) வளைவான கம்பிகள் மற்றும் பவர் சாக்கெட் பொருத்தவும். பெரிய அறைகளுக்கு ஐந்து பொருத்தவும். தொங்கு விளக்குகளை பயன்படுத்தி, சுவற்றில் விளக்குகளை பொருத்தாத அளவிற்கு செய்யவும்.

செங்கல் சுவருக்கு மாற்றாக சுவர்களை வடிவமைக்கும்போது வீட்டின் உள்பக்கமாக சிலாப் அமைக்க முடியுமா என கேட்டுத் தெரிந்து கொள். முடியாத பட்சத்தில் மாற்று ஏற்பாடுகளை பற்றி சிந்திக்கவும். எடுத்துக் காட்டாக, ஒவ்வொரு அறையிலும் பெரிய மர அலமாரிகளை அமைத்து அதன் மீது கூட பொருட்களை ஏற்றிக்கொள்ளலாம். மாற்றுச் சுவர்களை சிந்திக்கும்போது ஆணி அடிக்க முடியுமா என கேட்டுத் தெரிந்து கொள். மேலும் மின் சாதனங்களை உட்பக்கமாக பதிக்க முடியுமா என தெரிந்து கொள்.(முடியாத பட்சத்திற்கு ஒரே ஒரு முன்பக்க சுவரை மட்டும் செங்கல்லில் வைத்துக்கொள்ளுமாறு டிசைன் செய்யவும்)
மாற்றுச்சுவர்கள்:
  1. Hollow Blocks
  2. LMC(Lightweight Construction Methods) using Foam Concrete (FC)/Cellular Lightweight Concrete (CLWC)

கூலான வீடு கட்டுவது எப்படி?

கூலான வீடு கட்டுவது எப்படி?

  1. High ceiling: வீட்டின் கூரையை நன்றாக உயர்த்திக் கட்டுங்கள். அளவு:(ஆராய்ச்சி தொடருகிறது)
  2. மேற்கூரையின் அடியில் காற்று வெளியேற வசதியாக அதிக அளவில் ஓட்டை வையுங்கள். ஒரு அறைக்கு குறைந்தது இரண்டு அல்லது மூன்று காற்று வெளியேற்று கருவிகளை பொருத்தினால்(Exhaust Fans), கூரைக்கு அடியில் உள்ள சூடான காற்றை வெளியேற்றி குளிர்ந்த காற்று ஜன்னல் வழியாக அறைக்குள் நுழைய ஏதுவாகும்.
  3. மதிய வெய்யில் சுவர்களில் படாதபடி, வீட்டின் திசையை பொருத்து, வீட்டின் மேற்கூரையை வெளியில் நீட்டுங்கள். வீடு கட்டுவதற்கு முன்னால், சுமார் 11 மணியிலிருந்து நான்கு மணி வரை எந்த அளவுக்கு சூரியன் சாய்வாக எந்த திசையில் விழுகிறது? எந்த அளவுக்கு வெளியில் நீட்ட வேண்டும் என்று கணக்கெடுத்துக் கொள்ளுங்கள்.
  4. வீட்டின் வெளிப்புற பூச்சு, சூரிய ஒளியை பிரதிபலிக்கும் வண்ணம், மிகவும் லைட்டான வண்ணங்களில் இருக்கவும். வெள்ளை மிகவும் நல்லது.
  5. முடிந்த அளவுக்கு, வீட்டின் குறுக்கு நெடுக்காக நான்கு திசைகளிலும் ஜன்னல்களை அமையுங்கள். வீட்டின் குறுக்கே காற்றோட்டத்தை அதிகப்படுத்தி, கூலாக வைத்திருக்க உதவும்.
  6. வீட்டின் வெளியே சூரிய ஒளி அதிகம் விழும் திசையில், மாடிப்படி, வாகனங்கள் நிறுத்தும் கொட்டகை முதலியவற்றை அமைத்துக் கொள்ளுங்கள். நீங்கள் வசிக்கும் இடத்தை கூலாக வைத்துக் கொள்ள உதவும்.
  7. வீட்டின் மேற்கூரை திறந்த வெளியில் இருக்குமாயின், சனல் சாக்குப் பைகளை விரித்து, காலையும் மாலையும் தண்ணீர் விடுங்கள். உங்கள் வீட்டுக்கூரை வெப்பத்தை உறிஞ்சுவதை தடுக்கும்.
  8. வீட்டின் உட்புறம், அதிகளவு வெப்பத்தை உறிஞ்சும் செங்கல் மற்றும் கான்க்ரிட் சுவர்களை அமைத்துக் கொண்டு, வெளிப்புறம் வெப்பத்தை உறிஞ்சாத சுவர்களை அமைத்துக்கொள்ளுங்கள். (ஆராய்ச்சி தொடருகிறது)
  9. வீட்டை சுற்றி நிழல் தரும் மரங்களை வளர்க்க இடம் விடுங்கள்.
  10. காற்றாடிகளை முடிந்தளவுக்கு இறக்கி தொங்க விடுங்கள்.

வாங்குவதும் கொடுப்பதும்

நல்லவனாய் இரு. ஆனால் அப்பாவியாய் இராதே. விவரமாய் இரு. விழிப்பாய் இரு. ஒரு பொருளை வாங்கும்போது, "உனக்கு என்ன வேண்டும்" என்பதில் தெளிவாய் இரு. உனக்கு வேண்டியது இருக்கிறதா என்பதை சோதித்து வாங்கு. எடுத்துக்காட்டாக, போட்டோ வாங்கும்போது, வெள்ளைநிற பேக்கிரவுண்ட், தேவையான அளவுகளை குறித்து எடுத்து செல். அதை வாங்கும்போது அவை இருக்கிறதா என சோதித்து பார்.

காசை கொடுக்கும்போது, குறைந்த பட்சம் அது எப்படி கணக்கிடப்பட்டுள்ளது என்பதை தெரிந்து கொள். நீ ஒரு தடவை அதை போட்டுப்பார். அடுத்தது அது சரியான விலை தானா என்பதை உறுதி செய்.
வீட்டிலிருந்து கிளம்பும்போதே ஆகக்கூடிய காசை கணக்கிட்டு எடுத்துச் செல்வது, நீ ஏமாறுவதை தடுக்கும். பேரம் பேசக்கூடிய திறனை வளர்க்கும்.

Thursday, April 5, 2012

Howto add/delete IPv6 address in WindowsXP

① Command Prompt:
C:/>

② "netsh" command

>netsh
netsh>

③ "inerface" command
netsh>interface
netsh interface>

④ "show interface" command
netsh interface>show interface

Admin State    State          Type             Interface Name
-------------------------------------------------------------------------
有効                            専用               1394 接続
有効                            専用               ローカル エリア接続 2
有効                            専用               ワイヤレス ネットワーク接続
有効                            専用               ローカル エリア接続
有効                            ループバック           ループバック
有効                            内部               内部

⑤ "ipv6" command
netsh interface ipv6>

⑥ "add address "ローカル エリア接続 2" 2001::3" command
OK

add route 2001::3/64 "ローカル エリア接続" command

⑦ "del address "ローカル エリア接続 2" 2001::3" command
OK

Saturday, March 31, 2012

அழகு படுத்துதல்

அழகு படுத்துதல் ஒரு கலை. அழகு படுத்துதலும் வசதி படுத்துதலும் நிச்சயமாக கிரியேடிவிட்டியின் ஒரு வகை. அது ஒரு திறமை. வழக்கமாக கடைபிடிக்கப்படும் வழிமுறைகளை தாண்டி ஒன்றை அழகு படுத்துவதுதான்  டிரென்ட் செட்டர் எனப்படுகிறது. அது மிகவும் அழகாக இருக்கும்போது உனக்கான ஒரு தீராத கூட்டம் உருவாகிறது. இட் இஸ் எ வே ஆப் அற்றேஞ்சிங். ஆகவே எதையும் அழாகாக செய்ய கற்றுக்கொள். வசதி படுத்த கற்றுக்கொள். அழகை விரும்பாதவர்கள் மிகவும் குறைவு இவ்வுலகில். அழகாக இருக்க வேண்டும் என்பவர்களை அசிங்க படுத்தாதே! கற்றுக்கொள்!! உனக்கு தோணுவது போல் அழகு படுத்து. குறைந்த செலவில் அழகு படுத்துவது என்பதை கற்றுக்கொள். எதையும் எளிமையாக்கி அழகு படுத்தும்போது உலகம் உன் அடிமையாகும்.
அதனால்தான் பல நேர்முக தேர்வுகளில், இந்த அறையை எப்படி அழகாக மாற்றியமைக்கலாம் என கேள்விகள் கேட்டோ அல்லது தேர்வுக்காக காத்திருக்கும் சமயத்தில் அந்த அறையை   அழகு படுத்துதலில் ஈடுபடும் கேண்டிடேட் தேர்ந்தெடுக்கப் படுவதாக படித்திருக்கின்றோம்.
என்னுடைய அனுபவத்தில் ஜப்பானியர்கள் அழகு படுத்துவதில் கைதேர்ந்தவர்கள் என்றே கருதுகிறேன். அதானால்தான் கண்டுபிடிப்புகள் என்னவோ அமெரிக்காவாக இருந்தாலும் அதனை மேலும் அழகுபடுத்தி வசதிபடுத்தி உலகத்தை தங்கள் கைகளுக்குள் ஜப்பானியர்கள் அடக்கினார்கள். உலக மார்க்கெட்டை தங்கள் வசம் கொண்டு வந்தார்கள்.
இப்படித்தான் என்று அல்ல. உன் விருப்பம்போல் அழகுபடுத்து. அது ஒரு புதிய கண்டுபிடிப்பாக கூட பார்க்கப்படலாம். ஒரு புதிய சகாப்தத்தை உருவாக்கலாம். ஒரு ஐபோன் எப்படி உலகத்தை திரும்பி பார்க்க வைத்து சாம்சுங் போன்ற மற்ற மாடல்கள் வந்த போதும் முதலிடத்தில் இருப்பதாக நினைக்கின்றீர்கள்? அதன் அழகு. அதன் செயல் திறனையும் தாண்டி அதன் அழகு. எத்தனை தடவை அதனை திருப்பி திருப்பி அதன் அழகை ரசித்திருப்பீர்கள்! செய்ததையே செய்யாமல், எளிமையில் அழகை புகுத்தியது அதன் வெற்றிக்கு காரணம்.

Friday, March 30, 2012

Howto add/delete IPv6 address in FreeBSD

To add:
# ifconfig {interface-name} inet6 {IPv6-Address} prefixlen {routed-bit}
# ifconfig le0 inet6 001:470:1e04:5ea::10 prefixlen 64


To delete:
# ifconfig em0 inet6 2001:db8:bdbd::123/48 delete

Wednesday, February 29, 2012

SSL Client Data dump test using OpenSSL

① Command at OpenSSL server is as follows:

OpenSSL> s_server -accept 443 -cert ser.txt -key key.txt -verify 1 -WWW


② Send the following data from SSL Client:

   char http_request[] = "GET /index.txt HTTP/1.0\r\n"
                                "User-Agent: SSL Client\r\n"
                                "Accept: text/plain\r\n"
                                "\r\n";
③ Place index.txt at "OpenSSL-Win32/bin". If you get error "Error opening 'index.txt'", check the file name is set correctly. Sometimes the file extension also set as name. It may be "index.txt.txt".

④ When you send the command shown in ②, OpenSSL server will send the index.txt to the SSL client. Set the index.txt with arbitrary sizes and test the client.

DVMRP packet sample data (packet dump)

DVMRP (Distance Vector Multicast Routing Protocol) V3 Probe packet capture dump is as follows:

0000  01 00 5e 00 00 04 00 09 41 4d 89 b0 08 00 45 c0   ..^.....AM....E.
0010  00 20 69 40 00 00 01 02 ae 2e c0 a8 01 01 e0 00   . i@............
0020  00 04 13 01 0c 8d 00 0e ff 03 03 ab dd b4 00 00   ................
0030  00 00 00 00 00 00 00 00 00 00 00 00               ............

Monday, February 27, 2012

Few Questions for Embedded

What is static?
What is different when a global variable is declared as static and without static?
What the memory types of C?
When stack is allocated?
What is happening when malloc is called?
What library malloc is included?
What is difference between Semaphore and Mutex? What is the similarity?

Friday, February 3, 2012

Difference betweenn MII and RMII

In MII,

25 MHz clock is used and four data signals TXD0, TXD1, TXD2, TXD3 and RXD0, RXD1, RXD2, RXD3 are used.

But, in RMII, pins are reduced by half and clock is increased by double. 50MHz Clock is used and TXD0, TXD1 and RXD0, RXD1 signals are used. Other data pins are grounded.

Thursday, February 2, 2012

difference between Static and dynamic RAM

http://computer.howstuffworks.com/question452.htm

Your computer probably uses both static RAM and dynamic RAM at the same time, but it uses them for different reasons because of the cost difference between the two types. If you understand how dynamic RAM and static RAM chips work inside, it is easy to see why the cost difference is there,­ and you can also understand the names.
Dynamic RAM is the most common type of memory in use today. Inside a dynamic RAM chip, each memory cell holds one bit of information and is made up of two parts: a transistor and a capacitor. These are, of course, extremely small transistors and capacitors so that millions of them can fit on a single memory chip. The capacitor holds the bit of information -- a 0 or a 1 (see How Bits and Bytes Work for information on bits). The transistor acts as a switch that lets the control circuitry on the memory chip read the capacitor or change its state.
A capacitor is like a small bucket that is able to store electrons. To store a 1 in the memory cell, the bucket is filled with electrons. To store a 0, it is emptied. The problem with the capacitor's bucket is that it has a leak. In a matter of a few milliseconds a full bucket becomes empty. Therefore, for dynamic memory to work, either the CPU or the memory controller has to come along and recharge all of the capacitors holding a 1 before they discharge. To do this, the memory controller reads the memory and then writes it right back. This refresh operation happens automatically thousands of times per second.
This refresh operation is where dynamic RAM gets its name. Dynamic RAM has to be dynamically refreshed all of the time or it forgets what it is holding. The downside of all of this refreshing is that it takes time and slows down the memory.
Static RAM uses a completely different technology. In static RAM, a form of flip-flop holds each bit of memory (see How Boolean Gates Work for detail on flip-flops). A flip-flop for a memory cell takes 4 or 6 transistors along with some wiring, but never has to be refreshed. This makes static RAM significantly faster than dynamic RAM. However, because it has more parts, a static memory cell takes a lot more space on a chip than a dynamic memory cell. Therefore you get less memory per chip, and that makes static RAM a lot more expensive.
So static RAM is fast and expensive, and dynamic RAM is less expensive and slower. Therefore static RAM is used to create the CPU's speed-sensitive cache, while dynamic RAM forms the larger system RAM space.

Wednesday, February 1, 2012

When pull-up is used?

Pull-up is used when multiple (at least two or more) outputs share a single pin. For example, multiple outputs connected in a bus or a single pin is used as input as well as output pins between two devices. So, it can be summarized as 1) bus 2) bidirectional input/output pins 3) High speed communication buses will need tri-state and will use pull-ups.

http://en.wikipedia.org/wiki/Three-state_logic

http://wiki.answers.com/Q/What_is_Tri-state_logic

Tuesday, January 31, 2012

What is EtherCAT?

EtherCAT - Ethernet for Control Automation Technology - is an open high performance Ethernet-based fieldbus system. The development goal of EtherCAT was to apply Ethernet to automation applications which require short data update times (also called cycle times) with low communication jitter (for synchronization purposes) and low hardware costs.


http://en.wikipedia.org/wiki/EtherCAT

For Electronics Circuit Design to start with

Do you know any FPGA vendors other than Xilinx and ALTERA?

low-tier FPGA companies: Lattice Semiconductor, SiliconBlue, Acrhonix, Quicklogic
start-ups: InPa

In that an FPGA vendor called Actel is bought by Microsemi.

Microsemi FPGA named product of the year
http://dangerousprototypes.com/2011/01/22/microsemi-fpga-named-product-of-the-year

Monday, January 30, 2012

Windows on ARM processors?

Yes, the next version of Windows7 will be Windows8 and it runs on ARM processors. But, the demo of Windows8 on ARM processors are tightly controlled by MicroSoft. We can expect many things new in Windows8.

Wednesday, January 25, 2012

do you know dynamically loaded libraries?

Apart from Static and Shared Libraries, there is a third type of libraries that are used by programs. These are called dynamically loaded libraries. These libraries are built as normal shared or statically linked libraries.

The difference is that they are not loaded at program startup, instead you would use the dlsym() and dlopen() application programming interface to activate the library. This is how you get web browser plugin's, modules (Apache), or just in time compilers to work. When you are done using the library, you would call dlclose() to remove the library from memory. Errors are handled via the dlerror() application programming interface.

See Dynamic Loading:

 http://en.wikipedia.org/wiki/Dynamic_loading

Dynamic loading is a mechanism by which a computer program can, at run time, load a library (or other binary) into memory, retrieve the addresses of functions and variables contained in the library, execute those functions or access those variables, and unload the library from memory. Unlike static linking and loadtime linking, this mechanism allows a computer program to startup in the absence of these libraries, to discover available libraries, and to potentially gain additional functionality.

What does /sbin mean?

sbin is short for static binaries.Those are the executable binaries statically linked with static libraries.

Sunday, January 22, 2012

About QNX


 POSIX API
complete use of MMU hardware.
two fundamental principles:
  ・microkernel architecture
  ・message-based interprocess communication

----
 A microkernel OS is structured as a tiny kernel that provides the minimal services used by a team of optional cooperating processes, which in turn provide the higher-level OS functionality. The microkernel itself lacks filesystems and many other services normally expected of an OS - those services are provided by optional processes.
----
Unlike threads, the microkernel itself is never scheduled for execution. The processor executes code in the microkernel only as the result of an explicit kernel call, an exception, or in response to a hardware interrupt.

message-passing services ? the microkernel handles the routing of all messages between all threads throughout the entire system.
scheduling services ? the microkernel schedules threads for execution using the various POSIX realtime scheduling policies.
timer services ? the microkernel provides the rich set of POSIX timer services.
process management services ? the microkernel and the process manager together form a unit (called procnto). The process manager portion is responsible for managing processes, memory, and the pathname space.
----
 The only real difference between system services and applications is that OS services manage resources for clients.
---
In QNX Neutrino, a message is a parcel of bytes passed from one process to another. The OS attaches no special meaning to the content of a message ? the data in a message has meaning for the sender of the message and for its receiver, but for no one else.

Message passing not only allows processes to pass data to each other, but also provides a means of synchronizing the execution of several processes. As they send, receive, and reply to messages, processes undergo various “changes of state” that affect when, and for how long, they may run. Knowing their states and priorities, the microkernel can schedule all processes as efficiently as possible to make the most of available CPU resources. This single, consistent method ? message-passing ? is thus constantly operative throughout the entire system.
----
A thread can be thought of as the minimum “unit of execution,” the unit of scheduling and execution in the microkernel. A process, on the other hand, can be thought of as a “container” for threads, defining the “address space” within which threads will execute. A process will always contain at least one thread.

The OS can be configured to provide a mix of threads and processes (as defined by POSIX). Each process is MMU-protected from each other, and each process may contain one or more threads that share the process's address space.

http://www.qnx.com/developers/docs/6.5.0/topic/com.qnx.doc.neutrino_getting_started/s1_procs.html

http://www.qnx.com/developers/docs/6.5.0/topic/com.qnx.doc.neutrino_prog/process.html

Although threads within a process share everything within the process's address space, each thread still has some “private” data. In some cases, this private data is protected within the kernel (e.g. the tid or thread ID), while other private data resides unprotected in the process's address space (e.g. each thread has a stack for its own use). Some of the more noteworthy thread-private resources are:

----
http://www.qnx.com/developers/docs/6.5.0/topic/com.qnx.doc.neutrino_sys_arch/kernel.html#Priority_inheritance_mutexes

http://www.qnx.com/developers/docs/6.5.0/topic/com.qnx.doc.neutrino_sys_arch/ipc.html#Priority_inheritance_messages
--
Scheduling policies
To meet the needs of various applications, QNX Neutrino provides these scheduling algorithms:

FIFO scheduling
round-robin scheduling
sporadic scheduling
----
Note that in general, mutexes are much faster than semaphores, which always require a kernel entry. Semaphores don't affect a thread's effective priority; if you need priority inheritance, use a mutex.
--
Interrupt latency
Interrupt latency is the time from the assertion of a hardware interrupt until the first instruction of the device driver's interrupt handler is executed.

Worst-case interrupt latency will be this time plus the longest time in which the OS, or the running system process, disables CPU interrupts.
--
Scheduling latency
In some cases, the low-level hardware interrupt handler must schedule a higher-level thread to run. In this scenario, the interrupt handler will return and indicate that an event is to be delivered. This introduces a second form of latency ? scheduling latency ? which must be accounted for.

Scheduling latency is the time between the last instruction of the user's interrupt handler and the execution of the first instruction of a driver thread. This usually means the time it takes to save the context of the currently executing thread and restore the context of the required driver thread. Although larger than interrupt latency, this time is also kept small in a QNX Neutrino system.
--
When the hardware interrupt occurs, the processor will enter the interrupt redirector in the microkernel. This code pushes the registers for the context of the currently running thread into the appropriate thread table entry and sets the processor context such that the ISR has access to the code and data that are part of the thread the ISR is contained within. This allows the ISR to use the buffers and code in the user-level thread to resolve the interrupt and, if higher-level work by the thread is required, to queue an event to the thread the ISR is part of, which can then work on the data the ISR has placed into thread-owned buffers.

Since it runs with the memory-mapping of the thread containing it, the ISR can directly manipulate devices mapped into the thread's address space, or directly perform I/O instructions. As a result, device drivers that manipulate hardware don't need to be linked into the kernel.
----
This inherent blocking synchronizes the execution of the sending thread, since the act of requesting that the data be sent also causes the sending thread to be blocked and the receiving thread to be scheduled for execution. This happens without requiring explicit work by the kernel to determine which thread to run next (as would be the case with most other forms of IPC). Execution and data move directly from one context to another.

A server process receives messages and pulses in priority order. As the threads within the server receive requests, they then inherit the priority (but not the scheduling policy) of the sending thread. As a result, the relative priorities of the threads requesting work of the server are preserved, and the server work will be executed at the appropriate priority. This message-driven priority inheritance avoids priority-inversion problems.
----
Once you have a file descriptor to a shared-memory object, you use the mmap() function to map the object, or part of it, into your process's address space. The mmap() function is the cornerstone of memory management within QNX Neutrino
----

Why Mutex is faster than semaphore?

I do not think that this is true for all OS.
In some OS, It may be true because of the implementation. For example, in QNX, it is written as follows:

--------------------------------------------------------------------------------
 Note that in general, mutexes are much faster than semaphores, which always require a kernel entry. Semaphores don't affect a thread's effective priority; if you need priority inheritance, use a mutex. For more information, see "Mutexes: mutual exclusion locks," earlier in this chapter.
--------------------------------------------------------------------------------
On most processors, acquisition of a mutex doesn't require entry to the kernel for a free mutex. What allows this is the use of the compare-and-swap opcode on x86 processors and the load/store conditional opcodes on most RISC processors.
Entry to the kernel is done at acquisition time only if the mutex is already held so that the thread can go on a blocked list; kernel entry is done on exit if other threads are waiting to be unblocked on that mutex. This allows acquisition and release of an uncontested critical section or resource to be very quick, incurring work by the OS only to resolve contention.
--------------------------------------------------------------------------------

Since because of the nature of the Mutex, only one task can aquire and only the owner can unlock it, the implementation may be very simple. Just flip a bit between 0 and 1, using hardware instructions.
Since the scope of the semaphore is larger, such as number of counts and waking up of other tasks, the implementation may be little complex and may consume more time than mutex.

What kind of scheduling policies?

uITRON supports only priority based pre-emptive scheduling. However, Round-Robin scheduling can be implemented by the application through assigning the tasks the same priority and calling rot_rdq periodically from cyclic handler etc.

QNX supports
FIFO Scheduling→Priority based pre-emptive
RoundRobin→Timeslice
Sporadic(spuraadic) scheduling→thread's priority oscillates dynamically between a foreground or normal priority and a background or low priority according to the execution time.This behavior is essential when Rate Monotonic Analysis (RMA) is being performed on a system that services both periodic and aperiodic events. Essentially, this algorithm allows a thread to service aperiodic events without jeopardizing the hard deadlines of other threads or processes in the system.

http://www.qnx.com/developers/docs/6.5.0/topic/com.qnx.doc.neutrino_sys_arch/kernel.html#SCHEDULING

See the below post for adaptive scheduling.
----
Adaptive partition schedulers are a relatively new type of partition scheduler, pioneered with the most recent version of the QNX operating system. Adaptive partitioning, or AP, allows the real-time system designer to request that a percentage of processing resources be reserved for a particular partition (group of threads and/or processes making up a subsystem). The operating system's priority-driven pre-emptive scheduler will behave in the same way that a non-AP system would until the system is overloaded (i.e. system-wide there is more computation to perform than the processor is capable of sustaining over the long term). During overload, the AP scheduler enforces hard limits on total run-time for the subsystems within a partition, as dictated by the allocated percentage of processor bandwidth for the particular partition.

If the system is not overloaded, a partition that is allocated (for example) 10% of the processor bandwidth, can, in fact, use more than 10%, as it will borrow from the spare budget of other partitions (but will be required to pay it back later). This is very useful for the non real-time subsystems that experience variable load, since these subsystems can make use of spare budget from hard real-time partitions in order to make more forward progress than they would in a fixed partition scheduler such as ARINC-653, but without impacting the hard real-time subsystems' deadlines.
 ------

Difference between process and threads

In general context, Processes are completely separated from each other in each aspect such as Execution Context(CPU register contents), MMU configuration(Memory space is protected from each other by MMU protection and Virtual address space too has to be reconfigured), address space(Global variables), stack memory and other resources. So, switching between processes consumes a lot of effort such as changing the CPU context and MMU reconfiguration.
But, threads are just different execution units within a process. They just differ in the code what they execute. It means they just differ in the CPU register contents and stack. All other, MMU configuration, Global address space and all other resources are same and shared between them. So, switching between threads require only changing of CPU register contents.

What is adaptive partitioning scheduler?

Difference between SH-2, SH-3, SH-3 and RX


How shared libraries are referred to in run-time?

How modules are linked at run time in Linux?

Anatomy of Linux loadable kernel modules
A 2.6 kernel perspective

http://www.ibm.com/developerworks/linux/library/l-lkm/

What is Copy-On-Write?

Tuesday, January 17, 2012

Static priority scheduling and Dynamic priority scheduling

 Static
----
http://www.intechopen.com/articles/show/title/a-fixed-priority-scheduling-algorithm-for-multiprocessor-real-time-systems

Dynamic
----
Dynamic priority scheduling - Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Dynamic_priority_scheduling
Earliest deadline first scheduling - Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Earliest_deadline_first_scheduling

Requirements for Hard Real-Time systems.

Minimal Latency during task-switching
Minimal jitter
Run-to-completion
Preemptive multitasking
Priority inheritence
Meet strict deadlines

You at any case meeting the customer deadline is Hard real time system. Mik san who get the and spends time in customer supports, and missing the customer deadline is soft real time system. How do you perform? What is the difference between you people?

Even customer support processing time also taken into consideration. And, finished within a finite time and deadline project is taken at any case. Sometimes, lower priority interrupts are even stopped just by reading the mail and postponing the response later. If the support is related to deadline project, that is taken into it.

Processing the interrupts (Customer support) with long time-slices and missing the deadline.

My OS is Hard Real-Time operating system? At any case, it will finish the higher priority tasks/higher priority interrupts.

Hard real time is Not about High speed or low latency time. It is about deterministic behavior of the kernel. Execution time of all components are constant. Nothing is variable. For example, definition of Task switching time.

----

In computer science, rate-monotonic scheduling is a scheduling algorithm used in real-time operating systems with a static-priority scheduling class. The static priorities are assigned on the basis of the cycle duration of the job: the shorter the cycle duration is, the higher is the job's priority.

These operating systems are generally preemptive and have deterministic guarantees with regard to response times. Rate monotonic analysis is used in conjunction with those systems to provide scheduling guarantees for a particular application.
----
Applicable to Rate monotonic Analysis.
----

Software vendor provides the way to specify the resource and real time restrictions as parameters.
Users guarantees the real time behavior of whole system using these parameters
----

So, hard real time systems are where RMA can be applied.
1) Run-to-completion
2) Priority Pre-emptive
4) Execution time(cycles) of all jobs are determined

Since the execution time(cycles) of each and every RTOS object(system calls, task switching time, interrupt processing) time is fixed, thus every job execution time is fixed. The Jitter caused by task scheduler and Interrupt processing are neglected(near to zero).

With these, apply the RMA using the parameters, number of tasks, total execution time of the job(Cj), period of the job(How long once it has to be executed) where before the next cycle it has to be completed.

-----

In this case, the scheduling algorithm is the method in which priorities are assigned. Most algorithms are classified as static priority, dynamic priority, or mixed priority. A static-priority algorithm assigns all priorities at design time, and those priorities remain constant for the lifetime of the task. A dynamic-priority algorithm assigns priorities at runtime, based on execution parameters of tasks, such as upcoming deadlines. A mixed-priority algorithm has both static and dynamic components. Needless to say, static-priority algorithms tend to be simpler than algorithms that must compute priorities on the fly.

The rate monotonic algorithm (RMA) is a procedure for assigning fixed priorities to tasks to maximize their "schedulability." A task set is considered schedulable if all tasks meet all deadlines all the time.  So, ITRON has static priority and RMA has to be used to achieve hard-real time.
-------------

What is Kernel Jitter?

A Jitter-Free Kernel for Hard Real-Time Systems

Christo Angelov, Jesper Berthing

Abstract. The paper presents advanced task management techniques featuring Boolean vectors and bitwise vector operations on kernel data structures in the context of the HARTEXTM hard real-time kernel. These techniques have been consistently applied to all aspects of task management and interaction. Hence, the execution time of system functions no longer depends on the number of tasks involved, resulting in predictable, jitter-free kernel operation. This approach has been further extended to time management resulting in a new type of kernel component, which can be used to implement timed multitasking - a novel technique providing for jitter-free execution of hard real-time tasks.

predictable dynamic scheduling is more promising but it requires the development of a new generation of safe real-time kernels, which provide a secure and predictable environment for application tasks through predictable task scheduling and interaction, extensive timing and monitoring facilities, and last but not least - predictable behaviour of the kernel itself. Such functionality cannot be efficiently accomplished using conventional kernel algorithms and data structures, i.e. linked lists used to implement system queues. Extensive linked list processing introduces substantial and largely varying overhead known as kernel jitter [4].

highly deterministic (jitter-free)....
------
The interrupts in the middle of execution of a Task or unexpected processing overhead which decreases the deterministic behaviour is called Jitter.