-
Data: 2009-11-10 16:31:15
Temat: Re: AVR32 - jak ruszyc z tym prockiem
Od: cepu69 <c...@t...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]SM wrote:
>> Typow implementacja watkow we wlasnym, wycisnietym sofcie ->
>> Odpytywanie non-stop wszystkich pocedurek czy czasem ktoras nie ma czegos
>> do zrobienia - jakiez to szybkie i wydajne;)
>> Wszak przeciez scheduler to diabel wcielony, ktory zzera nasze cene
>> zasoby a nasza "petla glowna" nie.
>
> Zawsze będzie wolniej.
I to jest wlasnie clue problemu. Kto powiedzial, ze zawsze : zmierzyles,
sprawdziles czy tylko tak twierdzisz bo tam jest tyle kodu???
> Nawet pomijając osługę zdarzeń, semaforów,
> mutexów, czyli robiąc w przerwaniu tylko obsługę przełączania wątków,
> to sama ta obsługa przełączania zajmuje czas.
Rescheduling jest wykonywany nie non-stop tylko gdy :
1. przyjdzie systemowe przerwanie zegarowe np. 10ms
2. w przerwaniu budzisz watek o wyzszym priorytecie niz biezacy
Pamietaj, ze przelacznie watkow jest silnie zoptymalizowani i jest napisane
w asemblerze - trzeba na stos zrzucic kontekst czyli w ARMie 16 rejestrow
natomiast twoja petla glowna tlucze non-stop.
Wszelkie elemnty programowania wspolbieznego sa uzyte tylko wtedy gdy ich
uzyjesz (same z siebie nie obciazaja systemu) a wygoda jest duza. Juz widze
te wydajna synchronizacje zadan na flagach;)
> Trzeba do kontekstu zapisać stan bierzącego wątku i odtworzyć stan
> kolejnego wątku z tablicy.
Ze stosu i jest to raptem kilkadziesiat instrukcji procesora i jestes w
nowym watku, procedurki na flagach zuzywaja wiecej czasu procesora -
pamietaj ze sa wykonywne non-stop
> Tym bardziej że ja potrzebuję akurat w przerwaniu wywoływanym
> z częstotliwością kilkuset herzów liczyć trajektorię dla
> 4 osi silników wraz z zachowaniem trapezowego profilu prędkości.
A to wyjasnia wszystko - czasochlone obliczenia w procedurze obslugi
przerwania. Nie twierdze, ze jest to zle w kazdym przypadku tj. gdy masz
tylko jedno zadanie do wykonania to jest ok - dosc typowa sytuacja na
kontrolerze.
Ale w sytuacji bardziej generycznej tj. kilka zadan do obrobienia
rownoczesnie JEST TO NIEACEPTOWEALNE bezwzgledu czy jest OS czy nie -
responsywnosc takiego systemu jest mala.
Następne wpisy z tego wątku
- 10.11.09 20:42 SM
- 10.11.09 22:36 Jerry1111
- 11.11.09 08:38 SM
- 11.11.09 10:53 Zbych
- 11.11.09 11:29 SM
- 11.11.09 12:59 Zbych
- 11.11.09 17:35 SM
- 11.11.09 17:47 SM
- 11.11.09 17:45 Zbych
- 11.11.09 18:03 Zbych
- 11.11.09 18:26 SM
- 13.11.09 07:35 SM
- 19.11.09 07:41 SM
- 20.11.09 22:42 Adam Dybkowski
- 21.11.09 03:55 SM
Najnowsze wątki z tej grupy
- Thunderbird i dysk...
- opornosc falowa
- Bateria 9V 6F22, alkaliczna v cynkowa, samorozładowanie, bateria wysokiej trwałości do miernika
- Tani zakup z ali?
- w czasach LED komary mają ciężko
- walizka z kodami
- Rejestrator temperatur - termopara, siec
- Router LTE z możliwością zmian MTU
- Fajny film widziałem...
- Jaka ładowarka sieciowa do Iphona?
- Taśma izolacyjna do prac elektrycznych
- Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
Najnowsze wątki
- 2025-07-23 Gdańsk => Programista Delphi <=
- 2025-07-23 Gdańsk => Programista Mainframe (z/OS, Assembler) <=
- 2025-07-23 Warszawa => Starszy inżynier DevOps (AWS) <=
- 2025-07-23 Gdańsk => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-23 Kraków => Senior Fullstack Engineer (Low-Code Platform) <=
- 2025-07-23 Wrocław => Senior Key Account Manager IT <=
- 2025-07-23 Trójmiasto => Head of Social Media <=
- 2025-07-23 Rzeszów => Spedytor Międzynarodowy <=
- 2025-07-23 Lublin => ERP Implementation Consultant (AP Module) <=
- 2025-07-23 Środa Wielkopolska => SAP FI/CO Internal Consultant <=
- 2025-07-23 Warszawa => Inżynier oprogramowania .Net <=
- 2025-07-23 Kraków => Kotlin Developer <=
- 2025-07-23 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-07-23 Warszawa => Java Developer <=
- 2025-07-23 Wrocław => Konsultant wdrożeniowy (systemy controlingowe) <=