Kas ir reetrant kodu?

Atrasts ar Google meklēšana:
http://www.avocetsystems.com/company/articles/magazine/areentra.htmRegulāra jāatbilst šādiem nosacījumiem, lai to reentrant:
Tā nekad pārveido sevi.
Tas ir, instrukcijām, programmā nekad nav mainīta.
Period.
Nekādos apstākļos.
Pārāk daudzās iegultās sistēmas joprojām pārkāpsiet šo kardināls noteikumu.
Jebkurš mainīgie mainīt ikdienas ir jāpiešķir uz īpaši "piemēram" ir funkcija

ir lūgšana.
Tādējādi, ja reentrant funkcija FOO sauc par trīs dažādas funkcijas, tad FOO dati jāuzglabā trīs dažādās jomās RAM.ANSI C standarts saka:Ar funkciju standarta bibliotēka netiek garantēts par reentrant un var pārveidot objektus ar statisko uzglabāšanas ilgumu.
Līdz ar to signālu kopējs nevar vispār,

zvaniet standarta bibliotēkas funkcijas.
 
Īsumā tas nozīmē, ka procedūra, ko var pārtraukt, un vēlreiz aicināja no pārtraukuma kopējs un to var Nested.
Varuzhan

 
Reentrant kods plaši izmanto semafori.Ikreiz, kad kontrole nonāk koda sadaļu, kur daži pasaules mainīgais ir pārveidots, kods vispirms vajadzētu veikt semafors pirms groza un pēc tam, kad tas
ir izdarīts vajadzētu atjaunot mainīgo uz atbilstošu vērtību un pēc tam atlaidiet semafors.

Basicallt reentrant kods jāmēģina izmantot vietējo mainīgie, cik vien tas ir iespējams.

 
Vienkārši tas nozīmē,
A funkcija ir reentrant ja laikā, tas tiek izpildīts, tas var atkārtoti trīs pati, vai ar jebkādiem citiem ikdienas, pārtraucot pašreizējo izpildi brītiņa.

Ir maz thumbrules, kuru varat atrast, izmantojot google

Urravas
idlebrain

 
Dear all,
Es mēģina RTOS par 8051, bet man ir problēmas ar terminu Reentrant funkcijas RTX51 Tiny.I don t izprast šo terminu, lai varētu kāds palīdzēt un pastāstīt man starpība starp Reentrant funkcijas un citas funkcijas, c.
Te ir kontekstā Reentrant funkcijas atbalstu Keil.

"The C51 Compiler sniedz atbalstu reentrant funkcijas. Reentrant funkcijas uzglabāt parametri un vietējo mainīgie par reentrant kaudze. Tas pasargā viņus no rekursīvs vai vienlaicīga zvani. RTX51 Tiny nesatur vadību par attiecīgo C51 reentrant kaudze. Tātad, ja jūs izmantojat reentrant funkcijas jūsu pieteikumu, jums jānodrošina, ka šīs funkcijas nav nepieciešami jebkādas RTX51 Tiny sistēma un ka reentrant funkcijas nav pārtraukusi apaļā robin uzdevumu pārslēgšana.
C funkcijas, kas izmanto tikai reģistri parametrs un automātisko mainīgajiem,
kas ir raksturīga reentrant, un to var saukt bez jebkādiem ierobežojumiem no RTX51 Tiny.
Non-reentrant C funkcijas nevar tikt no vairāk nekā viena uzdevums vai pārtraukt procedūru.Non-reentrant C51 funkcijas uzglabāt to parametrus un automātisko mainīgie (vietējā dati) statiskos atmiņas segmentu, kas var būt pārrakstīti, kad funkcija tiek pieprasītas no dažādiem uzdevumiem vienlaicīgi vai rekursīvi.
Jūs var izmantot ne-reentrant funkcijas no dažādiem uzdevumiem, ja jūs pārliecināties, ka tie nav saukta rekursīvi (vienlaicīgi).Parasti tas nozīmē, ka apaļā robin uzdevumu grafiku jābūt invalīdiem, un ka jūsu nav reentrant funkcijas nevar dēvēt jebkuru RTX51 Tiny sistēma.
Piezīme
Jums vajadzētu atspējot Round-Robin Task Komutācijas ja jūs vēlaties izmantot reentrant vai nav reentrant funkcija no vairāk nekā viena uzdevums vai pārtraukt.
"
Paldies par jūsu palīdzību,
Ar laba vēlējumiem,

 
Reentrant kods ir kods, kas var izsaukt jebkurš skaits pavedieni, pat to pašu tēmu.Būtībā katru reizi, kad thread zvanus ikdienas to saņem pointers uz savu datu kopumu (izņemot statiskā datu es uzņemtos).Jūs varat iedomāties, problēmas, kas varētu notikt, ja vairāki pavedieni sauc par pašu iedibinātajām un visi viņi rīkojās par vienu un to pašu datu kopumu.Alternatīva ir datu bloķēšanu, kas nav daudz alternatīvu.

 
Hi all,
Mans jautājums ir par to, kā uzrakstīt reentrant funkcijas un?protams, tas atšķiras no normālas funkcijas, bet kā?
tipisku funkciju:
anulēts hello (spēkā neesošs)
(
int x;
x = 835;
.........
printf (x);
printf ( "Hello everybody!");
)
un reentrant funkcijas būtu:
????
????
????
Paldies par jūsu atbildēm
ar laba vēlējumiem,

 
Attiecas uz s / w (funkcija), kas var izpildīt vairākas reizes
vienlaicīgi.
A reentrant funkciju var droši sauc no dažādiem uzdevumiem.

 
haha,
labs nekas

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Loti laimīgs" border="0" />
 

Welcome to EDABoard.com

Sponsor

Back
Top