<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[SDS PLC/PAC: Měření Energie & OnlineTechnology.cz - [vyřešeno] Omezení rychlosti interpretu]]></title>
	<link rel="self" href="https://forum.sds.an-d.cz/extern.php?action=feed&amp;tid=63&amp;type=atom" />
	<updated>2011-06-28T15:58:50Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.sds.an-d.cz/viewtopic.php?id=63</id>
		<entry>
			<title type="html"><![CDATA[Re: [vyřešeno] Omezení rychlosti interpretu]]></title>
			<link rel="alternate" href="https://forum.sds.an-d.cz/viewtopic.php?pid=306#p306" />
			<content type="html"><![CDATA[<p>Pokud přijde více paketů než zvládne systém zpracovat, jsou tyto &quot;přebytečné&quot; zahozeny na úrovni MAC (má v tu chvíli plnou FIFO). </p><p>Toto je však už cílený DoS útok, a takový se dá realizovat na jakékoliv zařízení - pokud by měly být pakety omezovány v softwarové části zařízení, pak by je stejně bylo potřeba přijmou, analyzovat - určit cíl, službu, porovnat stupeň zatížení služby... </p><p>Takto to zahodí přímo HW, když systém nestíhá, a následně se TCP protokol sám postará o obnovení komunikace.</p><br /><p>Co se týká spouštění instrukcí SDS-C co 1 msec... je tam ještě jeden historický důvod, totiž existovaly programy, které s tímto počítali, a pak pomocí smyčky realizovali zpoždění (lidé jsou kreativní, co už).<br />Dnes už k tomu důvod není, existuje funkce wait() nebo odpočítávač vteřin v sys[], ale to jsme v začátcích neměli.</p><p><strong>Aktuální verze firmware má jednu z položek v sys[], která toto omezení (krok co 1 msec) vypne, a program provádí instrukce bez zdržování ihned za sebou.</strong></p>]]></content>
			<author>
				<name><![CDATA[adamn]]></name>
				<uri>https://forum.sds.an-d.cz/profile.php?id=7</uri>
			</author>
			<updated>2011-06-28T15:58:50Z</updated>
			<id>https://forum.sds.an-d.cz/viewtopic.php?pid=306#p306</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: [vyřešeno] Omezení rychlosti interpretu]]></title>
			<link rel="alternate" href="https://forum.sds.an-d.cz/viewtopic.php?pid=284#p284" />
			<content type="html"><![CDATA[<p>V jakém scénáři užití může být rovnoměrný chod programu výhoda či potřeba designu aplikace ?<br />Jinými slovy, proč by to měla být chtěná a výhodná vlastnost ?</p><p>Části kódu, který závisí na časování bude výhodnější ovládat funkčními bloky časovačů (viz námět na funkční bloky) nebo nyní navázáním na nyní dostupné čítače času.</p><p>Rozumím potřebě rozdělit čas CPU pro všechny potřeby nějakým mechanizmem, který zaručí přidělení přiměřeného času všem funkčním blokům. O to se pravděpodobně stará scheduler operačního systému. Strategie garantovat určité % času (s možností využít čas nevyužitý jinými bloky) mi přijde výhodnější než při přidělit v každé 1 ms prostor na vykonání jednoho řádku. Tím lze využít i čas CPU, který nyní využít nelze.</p><p>Doporučuji zavést systémovou proměnnou, která bude měřit buď čas potřebný na jeden průchod funkce main nebo počet provedení main za čas - pokud možno jako průměr za nějakou dobu. Doporučuji také zaznamenávat v další systémové proměnné buď maximální čas potřebný na provedení jednoho cyklu main nebo minimum provedení main za čas (např. 1s).<br />Pokud chcete napsat, že to lze i nyní v SDS-C programu, tak souhlasím, nicméně se domnívám že by to mělo být podporováno přímo systémem.</p><p>Na základě testování komunikace po Ethernetu se mi zdá, že nejsou omezeny zdroje CPU při obsluze komunikace - jinými slovy že lze SDS přetížit z venku a ovlivnit tak i vykonávání SDS-C programu. Doporučuji implementovat alespoň jednodudché omezení packet rate nebo sofistikovanější omezení komunikace pro jednotlivé klienty. Podobně pro komunikaci odcházející z SDS. Statistika z těchto omezovačů by opět mohla být někde v sys[] dostupná.</p>]]></content>
			<author>
				<name><![CDATA[michal.mu]]></name>
				<uri>https://forum.sds.an-d.cz/profile.php?id=24</uri>
			</author>
			<updated>2011-06-28T00:44:10Z</updated>
			<id>https://forum.sds.an-d.cz/viewtopic.php?pid=284#p284</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: [vyřešeno] Omezení rychlosti interpretu]]></title>
			<link rel="alternate" href="https://forum.sds.an-d.cz/viewtopic.php?pid=272#p272" />
			<content type="html"><![CDATA[<p>Pointa řešení je v tom, že krok programu co 1msec je odvozen od časovače procesoru, takže je možné očekávat rovnoměrný chod programu (za předpokladu vykonání příkazů z jedné řádky pod dobu trvání 1 msec, což spolehlivě je).</p><p>Při odstranění této vlastnosti (krok co 1 msec) by program mohl bežet i mnohem rychleji, ale různé části programu by byly provedeny různě rychle. Navíc je zde potřeba obsloužit další funkční bloky, ne jen SDS-C program, a to někdy vyžaduje více času, někdy méně - o to se stará operační systém, a proto nelze tyto časy jen tak určit.<br />Takže tím že je dán pevný krok - jeden instrukční řádek za 1 msec - tak to je něco co už lze určitým způsobem garantovat.</p><p>Samozřejmě, mohou být případy, kdy je tento pevný krok i na škodu, záleží na konkrétní aplikaci. <br />Možná se v některém z nových firmware objeví konfigurační volba, umožňující spustit program s okamžitým navazováním vykonávání instrukcí, bez synchronizace na 1 msec...</p>]]></content>
			<author>
				<name><![CDATA[adamn]]></name>
				<uri>https://forum.sds.an-d.cz/profile.php?id=7</uri>
			</author>
			<updated>2011-06-27T17:02:37Z</updated>
			<id>https://forum.sds.an-d.cz/viewtopic.php?pid=272#p272</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: [vyřešeno] Omezení rychlosti interpretu]]></title>
			<link rel="alternate" href="https://forum.sds.an-d.cz/viewtopic.php?pid=269#p269" />
			<content type="html"><![CDATA[<p>Jaký je prostor pro zrychlení ?<br />Čím je zrychlení omezeno ?</p>]]></content>
			<author>
				<name><![CDATA[michal.mu]]></name>
				<uri>https://forum.sds.an-d.cz/profile.php?id=24</uri>
			</author>
			<updated>2011-06-27T01:46:22Z</updated>
			<id>https://forum.sds.an-d.cz/viewtopic.php?pid=269#p269</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: [vyřešeno] Omezení rychlosti interpretu]]></title>
			<link rel="alternate" href="https://forum.sds.an-d.cz/viewtopic.php?pid=261#p261" />
			<content type="html"><![CDATA[<p>Tak to bylo naprogramováno na začátku vývoje, a od té doby na to nikdo nesáhl.</p><p>Jestli je potřeba, tak není problém to zpomalit, je to jen otázkou úpravy firmware.</p>]]></content>
			<author>
				<name><![CDATA[adamn]]></name>
				<uri>https://forum.sds.an-d.cz/profile.php?id=7</uri>
			</author>
			<updated>2011-06-26T07:42:00Z</updated>
			<id>https://forum.sds.an-d.cz/viewtopic.php?pid=261#p261</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[[vyřešeno] Omezení rychlosti interpretu]]></title>
			<link rel="alternate" href="https://forum.sds.an-d.cz/viewtopic.php?pid=258#p258" />
			<content type="html"><![CDATA[<p>Dobrý den,</p><p>na <a href="http://wiki.merenienergie.cz/index.php/SDS-C-START#Co_te.C4.8F_.3F">http://wiki.merenienergie.cz/index.php/ … .C4.8F_.3F</a> uvádíte:<br />&quot;Každou 1 msec je proveden jeden celý příkaz&quot;</p><p>Proč je prosím rychlost vykonávání &quot;celých příkazů&quot; omezena na 1000 za 1s ?</p>]]></content>
			<author>
				<name><![CDATA[michal.mu]]></name>
				<uri>https://forum.sds.an-d.cz/profile.php?id=24</uri>
			</author>
			<updated>2011-06-26T02:00:21Z</updated>
			<id>https://forum.sds.an-d.cz/viewtopic.php?pid=258#p258</id>
		</entry>
</feed>
