Kontakty Webpage přednášky: –http://ulita.ms.mff.cuni.cz/mff/sylaby/PRG017.HTML Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.

Slides:



Advertisements
Podobné prezentace
A1PRG - Programování – Seminář Ing. Michal Typová konverze, oblast platnosti, paměťové třídy 9 Verze
Advertisements

Programování v asembleru - multiprocesory Jakub Yaghob.
Programování v asembleru - multiprocesory Jakub Yaghob.
13AMT Procesory I. Lecture 2 Ing. Martin Molhanec, CSc.
Komunikace periférii.
Zásobník (LiFo) Fronta (FiFo)
Fakulta elektrotechniky a informatiky
SYSTÉM PŘERUŠENÍ U 68HC11.
Operační systémy. OPERAČNÍ SYSTÉMY pomoc operátorovi, podpora vlastností reálného času, víceuživatelských a více úlohových systémů.
Otázky k absolutoriu HW 1 - 5
Postupně tedy doplňujeme hodnoty do na začátku prázdného SFC (postupového diagramu), který je v automatu realizován krokovým řadičem.
Principy překladačů Překladač Jakub Yaghob. Literatura a slajdy Aho, Sethi, Ullman: Compilers - Principles, Techniques and Tools, Addison-Wesley 1986.
Principy překladačů Architektury procesorů Jakub Yaghob.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Instrukční soubor PIC16Fxxx osnova: Charakteristika instrukčního souboru Rozdělení instrukcí Časové průběhy (zpracování instrukcí)
Technické prostředky informačních systémů 4. Týden – Sběrnice.
Architektura a vývoj PC 2.
Tato prezentace byla vytvořena
Výrok "Pokud nejste príliš bohatí a velmi excentričtí, nebudete mít důvod, proč si dopřát luxus počítače ve vaší domácnosti." (E.Yourdon, 1975)
Alg91 Textové soubory Na rozdíl od jiných typů souborů jsou textové soubory určené pro gramotné lidské oko. Textový soubor je posloupnost znaků členěná.
C# - Testování a ladění aplikací Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
přerušení (instrukční cyklus, obsluha) vztahy mezi tématy
Informatika / …o počítači (základní pojmy, jednoduché představy) 2006.
13AMP 2. přednáška Ing. Martin Molhanec, CSc.. Stav procesu (kontext) Stav procesu je úplná informace, kterou je nutné uschovat při přerušení procesu,
TEP Přerušení č.7. Přerušení Téma Přerušení TEP Předmět TEP Juránek Leoš Ing. Autor Juránek Leoš Ing. TEP.
13AMP 3. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled I. Co je to kontext úlohy Co je to kontext úlohy Task switching (přepnutí úlohy)
Operační systémy Přednášky pro předmět Operační systémy Ing. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003.
ISO PROGRAMOVÁNÍ Frézování
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Šesté cvičení Výjimky Balíky.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
1. ELEKTRICKÝ SIGNÁL VSTUPUJE DO uPROCESORU 2.VYMAŽE DATA KTERÁ ZŮSTALA V REGISTRECH VNITŘNÍ PAMĚTI 3. NASTAVÍ REGISTR CPU – ČÍTAČ INSTRUKCÍ NA F000 ADRESA.
Vnitřní (operační paměť)
Srovnání mikrokontrolerů
Procesor Renesas H8S/2633F.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
Výrok „Vypadá to, že jsme narazili na hranici toho, čeho je možné dosáhnout s počítačovými technologiemi. Člověk by si ale měl dávat pozor na takováto.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
OSNOVA: a) Ukazatel b) Pole a ukazatel c) Pole ukazatelů d) Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 1 pro.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Instrukce procesoru.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
John von Neumannova koncepce. John von Neumann  Narozen 28. prosince 1903 Budapešť Rakousko-Uhersko  Zemřel 8. února 1957 Spojené státy americké.
Algoritmizace a programování Soubory. Oč jde? Vytvoření externího souboru Vytvoření externího souboru Tento soubor může být: Tento soubor může být: Textový.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
Vývoj architektur mikroprocesorů Od 4 bitů k superskalárnímu RISC Vývoj architektur mikroprocesorů Od 4 bitů k superskalárnímu RISC Pavel Píša
Odborný výcvik ve 3. tisíciletí Tato prezentace byla vytvořena v rámci projektu.
Stránkování MATĚJ JURIČIČ 2015/2016 EP1 SPŠ A VOŠ JANA PALACHA KLADNO.
Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/
Výukový materiál zpracován v rámci projektu
Jednočipové počítače – instrukční sada
Soubor Soubor v informatice označuje pojmenovanou sadu dat uloženou na nějakém datovém médiu, se kterou lze pracovat nástroji operačního systému jako.
Operační systémy 6. Hardwarové prostředky
Programování mikropočítačů
Správa paměti.
Výukový materiál zpracován v rámci projektu
Segmentace Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Observational studies. Curious look into available data from the CT.gov registry.
přerušení (instrukční cyklus, obsluha) vztahy mezi tématy
Informatika / …o počítači
Přednášky z distribuovaných systémů
Přepínání procesů Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Paměť.
Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/
GDPR & ePrivacy
Transkript prezentace:

Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické informace (manuály ap.): –ftp://ulita.ms.mff.cuni.cz/techdoc/index.html Maily:

Shrnutí bezpečnostních mechanismů Oblasti ochrany: –Ochrana paměti na úrovni segmentace na úrovni stránkování nebo jinak: ochrana kódu ochrana dat –Ochrana periferií globální - ochrana celého I/O prostoru a souvisejících oblastí architektury (především systém přerušení) selektivní - ochrana jednotlivých míst I/O prostoru –Ochrana systémových prostředků procesoru ochrana systémových registrů ochrana systémových polí v aplikačních registrech (EFLAGS)

Privilegované instrukce LGDT Load GDT register. LLDT Load LDT register. LTR Load task register. LIDT Load IDT register. MOV (control registers)Load and store control registers. LMSW Load machine status word. CLTS Clear task-switched flag in register CR0. MOV (debug registers)Load and store debug registers. INVD Invalidate cache, without writeback. WBINVD Invalidate cache, with writeback. INVLPG Invalidate TLB entry. HLT Halt processor. RDMSR Read Model-Specific Registers. WRMSR Write Model-Specific Registers. RDPMC Read Performance-Monitoring Counter. RDTSC Read Time-Stamp Counter.

Globální ochrana periferií I/O Sensitive (periferně citlivé?) instrukce: –IN, INS, OUT, OUTS, CLI, STI –lze je vykonat jen při splnění „IOPL-testu“: CPL  IOPL –v případě instrukcí IN, INS, OUT, OUTS lze IOPL-test „obejít“ pomocí selektivních ochraných mechanismů Další instrukce se vztahem k I/O ochraně: –instrukce POPF a IRET : jako I/O sensitive vzhledem k IF jako priviligovaná vzhledem k IOPL V obou případech jde o „měkkou“ variantu: při nesplnění prioritní podmínky se NEVYVOLÁ výjimka, ale příslušná hodnota se nezmění Příklad: EFLAGS=0x2202(IOPL=2,IF=1),[ESP]=0x1007(IOPL=1,IF=0),CPL=1  POPF  EFLAGS=0x2007(IOPL=2,IF=0)

Selektivní ochrana I/O míst Spíše selektivní ne-ochrana: –Selektivně lze určit I/O místa přístupná pomocí instrukcí IN, INS, OUT, OUTS bez ohledu na hodnotu IOPL Bitmapa I/O prostoru v TSS –0 = povolení přístupu –1 nebo nepřítomnost bitu = zákaz přístupu –za koncem platné části tabulky (před limitem TSS!) je požadován ukončovací byte=0xFF Charakteristika: –Nemá vliv na přístup k systému přerušení ( IF ) –Nemá smysl pro tásky s globálním přístupem k I/O ( CPL  IOPL ) –Je vhodná pro tásky s dobře definovaným omezeným přístupem do I/O prostoru –Je NUTNÁ pro V86 tásky (ignorují globální IOPL mechanismus)

Ladící podpora Několik nezávislých mechanismů: –Krokování programu - příznak EFLAGS[TF] –Speciální instrukce (a vektor přerušení) pro kódování jednobytového breakpointu - INT 3 –Tzv. HW-breakpointy (instrukční, datové, pro Pentium+ i I/O) - registry DRx –Možnost sledovat v ladícím systému přepínání tásků - příznak T v TSS –PentiumPro+: Prostředky pro určení posledního skoku, vyjímky n. přerušení; monitorování skoků vyvoláním ladící výjimky ap. - vyhrazené MSR s –Pentium+: prostředky pro statistické sledování chování kódu - vyhrazené MSR s

Krokování programu Krokování programu umožňuje nastavení příznaku EFLAGS[TF] = 1 Procesor generuje ladící výjimku PO každé instrukci, která měla PŘED začátkem vykonávání nastaven příznak TF  jedná se o hlášení  instrukce nulující příznak TF ještě vyvolá výjimku Příznak TF je automaticky nulován při průchodu branou přerušení  obslužné rutiny přerušení se vykonávají nekrokovaně při návratu z přerušení je krokovací režim obnoven znovunastavením příznaku TF při vyzvednutí registru EFLAGS ze zásobníku

SW breakpointy Jsou nejčastěji realizovány vkládáním instrukcí typu INT n do kódu Pro instrukci INT 3 existuje jednobytový kód (0xCC) - ostatní instrukce typu INT n mají pouze dvoubytové kódování

Ladící registry a HW breakpointy Pomocí ladících registrů DRx je možno zadat až 4 HW breakpointy Adresy breakpointů jsou určeny obsahem registrů DR0 - DR3 : Obsahem registrů DR0 - DR3 je LINEÁRNÍ adresa!

Registr DR7 - řídící registr ladícího systému Význam hodnot polí „R/W“: –00Instrukční breakpoint (Fault) –01Datový breakpoint - zápis (Trap) –10I/O breakpoint (Pentium+; Trap) / Nedefinováno (386, 486) –11Datový breakpoint - čtení n. zápis (Trap) Význam hodnot polí „LEN“: –001 byte (jediná povolená hodnota pro instrukční breakpoint) –012 byte –10Nedefinováno –114 byte

Registr DR6 - stavový registr ladícího systému Nastavením bitových polí v registru DR6 procesor signalizuje příčinu vzniku ladící výjimky Je základním (a jediným) zdrojem informace pro obslužnou rutinu ladící výjimky

Instrukční HW breakpointy a příznak RF Problém: restart instrukce s instrukčním breakpointem Řešení: příznak EFLAGS[RF] (Restart Flag): –Je-li nastaven (=1), procesor negeneruje ladící výjimku pro instrukční breakpointy –Procesor příznak RF nuluje po úspěšném vykonání každé instrukce s výjimkou instrukce IRETD a instrukcí, které způsobily přepnutí tásků ( JMP, CALL, INT ) –Tyto instrukce jsou také JEDINÝM způsobem, jak příznak RF nastavit 16-bitová instrukce IRET příznak RF nemění ( RF je 17. bit registru EFLAGS ) Stejně tak ho nemění instrukce POPF, a to ani ve své 32-bitové podobě ( POPFD )! –Speciální pravidla platí i pro zjišťování hodnoty příznaku RF : instrukce PUSHF(D) ho na zásobník NEULOŽÍ (uložená hodnota je vždy 0) –Procesor pravděpodobně automaticky nastavuje příznak RF před obsluhou každé výjimky typu chyba (Fault), kromě ladící výjimky generované pro instrukční breakpoint

Někdy to prostě nevyjde... Kolem chování příznaku RF se vznáší mlha: –„The processor does not set the RF flag in the copy of the EFLAGS register pushed on the stack before entry into any fault handler.“ (manuál Pentia) –„The processor sets this flag (RF) prior to calling an exception handler for any exception except a debug exception and prior to calling an interrupt handler when a string instruction has been interrupted.“(manuál Pentia Pro) –„The processor sets the RF flag automatically prior to calling an exception handler for any fault-class exception except a debug exception that was generated in response to an instruction breakpoint.“(manuál Pentia II, III)

Ladící systém a HW podpora multitáskingu Při nastavení příznaku T v TSS tásku dojde k vyvolání ladící výjimky při předání řízení do tásku Opět mlha: –„The exception occurs after control has passed to the new task, but before the first instruction of that task is executed.“(manuál Pentia) –„This exception is generated after program control has passed to the new task, and after the first instruction of that task is executed.“(manuál Pentia Pro+)