Sistemes Operatius (S.O.) Onion: Mecanisme d'entrada al sistema

Slides:



Advertisements
Presentaciones similares
SEMANA 9_2.
Advertisements

: El meu espai. Què és el Recercador És el cercador dels recursos electrònics del CRAI de la UB. Ofereix un sol punt d’accés a: bases de dades, portals.
Organización del Computador Entradas / Salidas. Modelo de I/O.
TUTORIAL BÀSIC PER A LA GESTIÓ DE LA UBICACIÓ DE LES PERSONES EN L’APLICACIÓ DEL CATÀLEG D’ESPAIS SERVEI TÈCNIC I DE MANTENIMENT.
Clase 6 Assembly - Simulador MSX88 Subrutinas.
Arquitectura 2014 Explicación 1.
Explicación 2 Interrupciones.
Symbian: un sistema operatiu per mòbils
Sistema de gestió APPCC
PROJECTE BANDA AMPLA RURAL - SATÈL·LIT
MOBILITAT D’ESTUDIANTS ERASMUS
Campus Virtual.
Campus Virtual.
BAIXAR MAPES DE L’ICC (INSTITUT CARTOGRÀFIC DE CATALUNYA)
Importar les notes al Campus Virtual
Projecte:SIRE (Sistema Integrat Recepta Electrònica)
Títols oficials. Tramesa dels títols als centres. Circuit
José Luis Molina Materiales proporcionados por Javier Ávila Molero
Google Scholar citations
PREZI Primers passos Davinia Alfonsin 4rt C Info. Tecnològica
TÍTOLS DOCTOR INTRODUCCIÓ DE SOL·LICITUDS AMB TRASLLAT O CANVI DE PROGRAMES O DEPARTAMENTS NOTES: En la introducció a.
LOCALITZADOR GRÀFIC D’ADRECES IP
CUIDATGE.
Presentació de la base de dades
Introducció de TEDIs (COACs) Versió 4.0
Frederic Mistral-Tècnic Eulàlia
ESecretaria CB Montpedrós
ENFISPO.
Un exemple de Màquina Virtual: el programa VMware
uoc-domo CONTROL DOMÒTIC AMB ARDUINO UOC-DOMO
Protocol de canvi de nom legal a canvi de nom sentit
Library and Information Science Abstract
Creació d’un mapa personalitzat
Presentació de la base de dades
PubMed i el gestor de revistes del CRAI de la UB (servei SFX)
Control de posició GPS i avís d'incidències via SMS
PERIFÈRICS ... Descobreix el que envolta l’ordinador!
Com enllaçar des de PubMed al gestor de
Departament d’Arquitectura de Computadors
Tutorials Campus Virtual Càrrega automàtica d’alumnes
Sistemes operatius per a dispositius mòbils inalàmbrics - Symbian OS -
SERVEI DE BIBLIOTECA I DOCUMENTACIÓ DE LA UIB
Pràctica amb RQDA.
Gestió electrònica del Dipòsit Legal
1 La identificació com a usuari periodista es realitza la primera vegada introduint en el camp Usuario, la lletra E seguida dels vuit dígits del DNI.
Nova eina de descobriment
Optimització de consultes en MySQL (unes notes)
Explicació de l’enunciat
SCIENCE OF SYNTHESIS.
SERVEI DE GESTIÓ I SEGUIMENT D’AVARIES
LES XARXES LOCALS i els seus components.
PRÉSTEC DE LLIBRES ELECTRÒNICS Breu tutorial
Menú Inicial. Menú Inicial Passos previs: 1- Introduir dades de l’escola obligatòries Control +V Dades optatives.
Llorenç Seguí capllonch 11 de juny de 2018
XARXES PRIVADES VIRTUALS ( VPNs )
BEGINNER EV3 PROGRAMMING Lesson
El qualificador Al qualificador s’accedeix seguint l’enllaç Qualificacions del menú Configuració del curs. També anomenat llibre de qualificacions, presenta.
Multithreading i sincronització Edgar Ros Ferrer Xavier Farré Barbera
INFORMÀTICA BÀSICA 1r ESO curs
El meu compte Des d’El meu compte podeu:
ENQUESTA DE SATISFACCIÓ INTERNA COM A EINA DE GESTIÓ COMPLEMENTÀRIA
CRAI: definició i estructura
Funcionament intern d’un ordinador
FUNCIONAMENT INTERN D’UN ORDINADOR
Reunió amb centres adscrits
TUTORIAL BÀSIC PER A LA GESTIÓ DE LA UBICACIÓ DE LES PERSONES EN L’APLICACIÓ DEL CATÀLEG D’ESPAIS SERVEI TÈCNIC I DE MANTENIMENT.
Projecte: Videojocs.cat
Evolució del comerç als barris de Barcelona
Optimització d’E/S per aplicacions paral·leles
Treballem col•laborativament: Fem un wiki (I).
Transcripción de la presentación:

Sistemes Operatius (S.O.) Onion: Mecanisme d'entrada al sistema Enginyeria en Informatica Facultat d'Informatica de Barcelona Universitat Politecnica de Catalunya

Practica d'Onion: 1a entrega fluxes.c onionlib.lib boot.c sistema.c bfs.c nucli.c

Estructura de la practica 3 fitxers donats salres.asm solib.lib / rutines.h new_maq.asm / new_maq.h 6 fitxers a generar boot.c sistema.c bfs.c nucli.c onionlib.lib fluxes.c Mes tots els .h que calguin! salres.h sistema.h / onionlib.h bfs.h ...

salres.asm int *salvar() void restaurar(void) Guarda el context de l’usuari a la pila Retorna un apuntador al context salvat Caldra modificar-la mes endevant ! void restaurar(void) Restaura el context de l’usuari de la pila NOTA: cal que us feu el fitxer de capcelera Altrament el compilador enten: int salvar()

solib.lib / rutines.h Inhibir i desinhibir les interrupcions int inhibir() / void desinhibir(int flags) Rutines d'acces als dispositius hardware escriure_pantalla_hw llegir_teclat_hw Rutines de gestio de cues ini_cua insertar cap primer

new_maq.asm / new_maq.h Dades i rutines necessaries per accedir als dispositius Taula de mapeig del teclat Taula d’adreces de pantalla Rutina d'inicialitzacio de la pantalla int *ini_pantalla()

boot.c Inhibir interrupcions Inicialitzar totes les estructures del sistema Pantalla Vector d’interrupcions Desinhibir interrupcions Canvi a mode usuari Perdua de tots els privilegis de sistema acces a estructures de dades Execucio del proces inicial

sistema.c Punt d’entrada al sistema (INT 64) (no cal inhibir les interrupcions) Salvar Accedir al registre AX Atendre peticio d’usuari Restaurar Escriure pantalla (sistema) Recollir parametres de la pila rsi_trap() { ctx = salvar (); switch (reg_AX) { (...) case N: escriure_pantalla_sis (); break; } restaurar(); escriure_pantalla_sis ( ??? ) { ... }

bfs.c sistema BFS nucli Escriure pantalla (BFS) Passa directament a nivell nucli sistema BFS nucli

nucli.c 80 columnes 25 files Escriure pantalla (nucli) Comprovar parametres Coordenades de pantalla valides Accedir al dispositiu Retorn de resultats A traves del registre AX de l’usuari Caldra accedir al CONTEXT 80 columnes 25 files

onionlib.lib Programacio en assemblador de la llibreria del sistema Indicar el servei al registre AX Cridar a la instruccio de TRAP Una rutina per cada crida a sistema Llibreria del sistema (Onion sobre i8086) public _CAS _CAS proc far . MOV AX, num_servei INT 64 RET _CAS end proc

fluxes.c codi dades No disposem d’un carregador (loader) Sistema de fitxers Gestio de memoria Codi dels processos d’usuari Inclos el proces inicial codi dades

Estat de la pila en una CAS Onion (I) Crida a la llibreria del sistema Empilar parametres Empilats de dreta a esquerra Empilar @retorn Registres CS:IP A recordar: Empilem el parametres en cridar a la subrutina usuari() { . CAS(par_1, par_2) } CS:IP usuari() par_1 par_2 Sistemes Operatius Mecanismes d'entrada al S.O.

Estat de la pila en una CAS Onion (II) Executar crida a sistema Indicar el servei que es desitja Modificar registre AX Executar instruccio TRAP Empilar PSW Empilar @retorn public _CAS _CAS proc far . MOV AX, num_servei INT 64 RET _CAS end proc CS:IP _CAS PSW CS:IP usuari() par_1 par_2 Sistemes Operatius Mecanismes d'entrada al S.O.

Estat de la pila en una CAS Onion (III) Executar ruitna d'atencio als traps Fer l'enllac dinamic push BP mov BP, SP Reservar espai per variables locals i temporals Salvar context a la pila Accedir al registre AX seleccionar el servei Cridar a la ruitna de servei sense parametres nomes empila @retorn CS:IP rsi_trap() context AX locals i temporals rsi_trap() rsi_trap() { ctx = salvar (); switch (reg_AX) { (...) case N: rut_servei_N(); break; } restaurar(); BP CS:IP _CAS PSW CS:IP usuari() par_1 par_2 Sistemes Operatius Mecanismes d'entrada al S.O.

Estat de la pila en una CAS Onion (IV) Programem la rutina de servei amb parametres Fem l'enllac dinamic Recollim els parametres amb el BP a partir de l'@retorn Declarem un parametre de mes, per saltar el que no volem struct deixalles { int brossa[N]; } A recordar: Els parametres es recullen en executar la rutina rutina_servei_N( deixalles, par_1, par_2) { (...) } BP IP:CS rsi_trap() context locals i temporals rsi_trap() BP CS:IP _CAS PSW CS:IP usuari() par_1 par_2 Sistemes Operatius Mecanismes d'entrada al S.O.

Practica d'Onion: 1a entrega fluxes.c fluxe1 onionlib.lib escriure_pantalla boot.c main() sistema.c rsi_trap escriure_pantalla_sis bfs.c escriure_pantalla_bfs nucli.c escriure_pantalla_nuc new_maq.asm ini_pantalla salres.asm salvar restaurar solib.lib escriure_pantalla_hw solib.lib vector_int

Estructura de directoris dir. principal *.c, *.asm Makefile ./include *.h ./lib *.lib