Operační systémy MIPS, Kalisto a správa paměti

Podobné dokumenty
Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Operační systémy. Přednáška 8: Správa paměti II

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

HelenOS ARM port. Pavel Jančík Michal Kebrt Petr Štěpán

MS WINDOWS II. Jádro. Správa objektů. Správa procesů. Zabezpečení. Správa paměti

Systém adresace paměti

09. Memory management. ZOS 2006, L.Pešička

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba.

Pamět ová hierarchie, virtuální pamět. doc. Ing. Róbert Lórencz, CSc.

Knihovna RecDBXLib ZÁZNAMY V DATABOXU TXV

Memory Management vjj 1

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

ČÁST 1. Základy 32bitového programování ve Windows

ÚVOD DO OPERAČNÍCH SYSTÉMŮ. Správa paměti. Přímý přístup k fyzické paměti, abstrakce: adresový prostor, virtualizace, segmentace

Memory Management vjj 1

Činnost počítače po zapnutí

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Přednáška. Správa paměti I. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Paměťový podsystém počítače

Operační systémy. Přednáška 7: Správa paměti I

Assembler RISC RISC MIPS. T.Mainzer, kiv.zcu.cz

Přidělování paměti II Mgr. Josef Horálek

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Operační systémy. Správa paměti (SP) Požadavky na SP. Spojování a zavedení programu. Spojování programu (linking) Zavádění programu (loading)

MSP 430F1611. Jiří Kašpar. Charakteristika

Architektura a koncepce OS OS a HW (archos_hw) Architektura a koncepce OS Jádro OS (archos_kernel) Architektura a koncepce OS Typy OS (archos_typy)

2010/2011 ZS P i r i nc č py po ít č čů a PAMĚŤOVÝ ĚŤ SUBSYSTÉM z pohledu OS OS

MPASM a IDE pro vývoj aplikací MCU (Microchip)

Základní deska (1) Parametry procesoru (2) Parametry procesoru (1) Označována také jako mainboard, motherboard

Procesy. Procesy Přepínání kontextu (proc_ctxsw) Postup:

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Procesor. Procesor FPU ALU. Řadič mikrokód

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

MIDAM Verze 1.1. Hlavní okno :

Semestrální práce z předmětu Speciální číslicové systémy X31SCS

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

HW počítače co se nalézá uvnitř počítačové skříně

Předmluva 13 Použité konvence 14. KAPITOLA 1 Základní číselné soustavy a pojmy Číselné soustavy a převody 15 1.

Adresní mody procesoru

Technické prostředky počítačové techniky

Logická organizace paměti Josef Horálek

Pokročilé architektury počítačů

Základní deska (1) Označována také jako mainboard, motherboard. Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje:

Virtualizace. Lukáš Krahulec, KRA556

Profilová část maturitní zkoušky 2017/2018

Paměti. Paměť je zařízení, které slouží k ukládání programů a dat, s nimiž počítač pracuje

Struktura a architektura počítačů (BI-SAP) 7

Základní uspořádání pamětí MCU

Struktura a architektura počítačů (BI-SAP) 10

Operační systémy. Cvičení 4: Programování v C pod Unixem

Struktura a architektura počítačů (BI-SAP) 11

Vstupně - výstupní moduly

Jako pomůcka jsou v pravém dolním rohu vypsány binární kódy čísel od 0 do 15 a binární kódy příkazů, které máme dispozici (obr.21). Obr.

Architektury CISC a RISC, uplatnění v personálních počítačích

SÁM O SOBĚ DOKÁŽE POČÍTAČ DĚLAT JEN O MÁLO VÍC NEŽ TO, ŽE PO ZAPNUTÍ, PODOBNĚ JAKO KOJENEC PO PROBUZENÍ, CHCE

Paměti a jejich organizace

Úvod do architektur personálních počítačů

Jazyk symbolických adres

PROCESOR. Typy procesorů

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Architektura počítače

PicoBlaze lekce 1: assembler, C překladač a simulační prostředí Jiří Svozil, Leoš Kafka, Jiří Kadlec svozil@utia.cas.cz

Příloha č. I: Schéma zapojení vývojové desky PVK-PRO

Přidělování zdrojů (prostředků)

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2

Kubatova Y36SAP procesor - control unit obvodový a mikroprogramový řadič RISC Y36SAP-control unit 1

Ukázka zkouškové písemka OSY

Metody připojování periferií BI-MPP Přednáška 2

Úvod. Instrukce musí obsahovat: typ operace adresu operandu (operandů) typ operandů modifikátory adresy modifikátory operace POT POT

Procesor Intel Pentium (1) Procesor Intel Pentium (3) Procesor Intel Pentium Pro (1) Procesor Intel Pentium (2)

SIMATIC S IT. Micro Automation. Promoters Meeting October Představení CP IT SPIDER CONTROL TELESERVIS. TESTOVACÍ server.

Paralelní programování

Bootkity v teorii a praxi. Martin Dráb martin.drab@ .cz

Struktura programu v době běhu

Pohled do nitra mikroprocesoru Josef Horálek

Architektury VLIW M. Skrbek a I. Šimeček

Reprezentace dat v informačních systémech. Jaroslav Šmarda

PAMĚŤOVÝ SUBSYSTÉM. Principy počítačů I. Literatura. Parametry paměti. Parametry paměti. Dělení pamětí podle funkce. Kritéria dělení pamětí

Profilová část maturitní zkoušky 2013/2014

ORGANIZACE A REALIZACE OPERAČNÍ PAMĚTI

Paměťová hierarchie. INP 2008 FIT VUT v Brně

IUJCE 07/08 Přednáška č. 6

Vstupně výstupní moduly. 13.přednáška

Architektura počítačů Implementace procesoru

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Xbox 360 Cpu = IBM Xenon

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

Firmware řídící jednotky stejnosměrného generátoru

Management procesu I Mgr. Josef Horálek

Vysoké učení technické v Brně Fakulta informačních technologií ITP Technika personálních počítačů Služby ROM BIOS a BootROM

Procesy a vlákna (Processes and Threads)

Počítačové sítě Systém pro přenos souborů protokol FTP

Instalace a konfigurace web serveru. WA1 Martin Klíma

Transkript:

Operační systémy MIPS, Kalisto a správa paměti http://d3s.mff.cuni.cz Martin Děcký Vojtěch Horký nswi004@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics

Operační systémy, ZS 2015/2016 2 Ovládání MSIMu Spuštění msim [-c <config file>] [-i] [-t] Základní příkazy add dd mbd set přidání zařízení/pamět zobrazení zařízení zobrazení mapy pamět nastavení interních řídících proměnných iaddr, iopc, icmt, iregch, ireg, trace

Operační systémy, ZS 2015/2016 3 Ovládání MSIMu (2) Základní příkazy (2) step [n] continue md id stats echo help quit Speciální ladící instrukce provedení n instrukcí simulace výpis fyzické pamět výpis instrukcí ve fyzické pamět běhové statstky výpis řetězce DTRC, DTRO, DINT, DRV, DHLT, DVAL

Ovládání MSIMu (3) Nahlédnutí do fyzické pamět md 0x1fc00000 4 obsah pamět hexdump loader.bin id 0x1fc00000 4 obsah pamět s instrukcemi cat loader.disasm Operační systémy, ZS 2015/2016 4

Konfigurace MSIMu add dcpu cpu0 add rwm main 0 main generic 16M add rom bios 0x1fc00000 bios generic 32k bios load bios.img add dprinter output 0x10000000 add dkeyboard input 0x10000008 3 cpu0 info output redir dump.log stat tlbd md id Operační systémy, ZS 2015/2016 5

MIPS R4000 Architektura Load/store model instrukční sady Jednoduchá pipeline Většina instrukcí potřebuje jeden cyklus Během provádění instrukce se dekóduje další Branch delay slot System Control Coprocessor (CP0) Řídící registry, změna režimu procesoru Operační systémy, ZS 2015/2016 6

MIPS R4000: memory management Virtuální adresový prostor rozdělen na pevně dané segmenty Nulaúrovňové (TLB only) stránkování Virtuální KSEG3 KSEG2 (KSSEG) KSEG1 (obchází cache) KSEG0 (lze cachovat) KUSEG (2 GB dostupné z uživatelského prostoru) 0xFFFFFFFF 0 Fyzická 3.5 GB 512 MB Operační systémy, ZS 2015/2016 7

Operační systémy, ZS 2015/2016 8 Kalisto Samotné jádro kernel.bin Načteno do RAM na fyzickou adresu 0 Zavaděč loader.bin Načteno do ROM na fyzickou adresu 0x1FC00000 physical memory 0xFFFFFFFF 0x80000000 0x1FC00000 loader.bin 0x00000000 kernel.bin virtual memory 0xFFFFFFFF loader.bin 0x80000000 kernel.bin 0x1FC00000 0x00000000

Zavaděč loader.bin Role firmware Jediný zdrojový soubor kernel/boot/loader.s Skok na adresu, na které je vstupní rutna jádra Fyzická adresa 0x00000300, virtuální adresa 0x80000300 Vždy přístupná v nemapovaném segmentu nad 2 GB Použití céčkového preprocesoru v assembleru Konstanta KERNEL_ENTRY_POINT Makro ADDR_IN_KSEG0(0x300) Operační systémy, ZS 2015/2016 9

Operační systémy, ZS 2015/2016 10 Jádro kernel.bin Linkování více objektových souborů Linker skript kernel/kernel.lds Standardní výstupní formát ELF (kernel.raw) Plochý binární formát (bez hlaviček) vytvořen utlitou objcopy (volá se z kernel/makefile) Linkováno relatvně vůči bázové adrese 0x80000000 Jediná výstupní sekce.kernel Vstupní sekce.excvec vždy na začátku (kvůli přesným offsetům) Následují další vstupní sekce Explicitně se zahazují sekce.eh_frame a.reginfo Definice symbolu _kernel_end

Operační systémy, ZS 2015/2016 11 Inicializace jádra (kernel/main.c) bsp_start() Globální inicializace jádra (na bootstrap CPU) tbl_init() memory_init() threads_init() scheduler_init() vyčištění TLB zjištění velikost fyzické pamět inicializace alokátoru inicializace podpory vláken inicializace struktur plánovače nastavení registru časovače inicializace podpory časovačů timers_init() Vytvoření idle vlákna Vytvoření vlákna, výkonná funkce example() Aktvace dalšího CPU: ap_start() Inicializace plánovače, idle vlákno Přepnutí na kontext vlákna Vlastní zásobník, odmaskování výjimek

Inicializace paměti memory_init() Volná paměť začíná za kódem a statckými daty kernelu extern uint8_t _kernel_end; (definován v linker skriptu) Detekce pamět Zapsání a přečtení stejných dat Testuje se po blocích Hrubý algoritmus, který nedetekuje přesné hranice pamět Operační systémy, ZS 2015/2016 12

Alokátor haldy kernel/mm/malloc.c Jednoduchý first-fit algoritmus Po inicializaci jediný prázdný blok [heap_start; heap_end] Na začátku bloku struktura heap_block_head_t Na konci bloku struktura heap_block_foot_t Funkce malloc() štěpí volné bloky Funkce free() uvolňuje obsazené bloky a slévá dohromady sousední volné bloky H F H F H F Operační systémy, ZS 2015/2016 13

Správa paměti TLB 48 záznamů Každý záznam obsahuje dvě položky mapování stránka:rámec Stránky velikost 4 KB, 16 KB,..., 4 MB a 16 MB Nejvyšší tři bity stránky určují segment a typ přístupu 000 011 (0 2 GB) Uživatelský segment 100 101 (2 3 GB) Dva privilegované nemapované segmenty 110 111 (3 4 GB) Privilegovaný mapovaný segment kernel mapped kernel unmapped user 4 GB 3 GB 2 GB 0 Operační systémy, ZS 2015/2016 14

Operační systémy, ZS 2015/2016 15 Překlad virtuálních adres virtual address ASID page number offset TLB TLB entry G ASID page number frame number frame number offset physical address

Datové struktury kernel/adt/atomic.h Atomický číselný typ atomic_t kernel/adt/list.c Implementace jednoduchých spojových seznamů kernel/mm/malloc.c Hlavičky a patčky paměťových bloků heap_block_head_t heap_block_foot_t pole s magickou hodnotou pro detekci poškození Operační systémy, ZS 2015/2016 16

Operační systémy, ZS 2015/2016 17 Miscellanea kernel/drivers/printer.h Znakový výstup pomocí zařízení dprinter kernel/lib/debug.h Makro assert kernel/lib/print.c Výstupní rutny (analogie printf()) kernel/tests Ukázkové kernelové testy

Q&A Operační systémy, ZS 2015/2016 18