Perifèrics i Dispositius d'E/S

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en catalán con un tamaño de 16,99 KB

PERIFÈRICS O DISPOSITIUS D’E/S: La seva funció és comunicar dades entre el computador i l’entorn exterior.

LA INTERFACE TÉ 2 PARTS:

H/W à Conté els registres, element físic electrònic, controlador del dispositiu. Es connecta al dispositiu i és responsable de que operi de manera eficient.

S/W à Accedeix als registres. Fa anar el controlador (Driver). L’executa la CPU. El dissenya i el fa el fabricant i el controlador del dispositiu.

Hi ha diversitat de perifèrics (teclat, mouse, impressora,...) i el funcionament d’ells és diferent.

Què és un DRIVER/SW? (0.5) X1

És un programa desenvolupat pel fabricant d’un dispositiu i que controla el funcionament del dispositiu i l’intercanvi d’informació amb ell d’una manera + eficient ateses les característiques del dispositiu i el seu controlador HW. El programa coneix perfectament tots els detalls del funcionament eficient del dispositiu i quins són els ports d’entrada/sortida per treballar amb ell. El programa ha de ser instal·lat al sistema, se li ha de dir al S.O. que quan es necessiti operar amb el dispositiu (a petició del programa de l’usuari), el S.O. ha de fer servir aquest programa driver per fer l’operació demanada.

Què són els registres anomenats ports d’entrada/sortida, de quin tipus n’hi ha i quina funció tenen? X1

Són els registres que formen part del controlador d’un dispositiu i que poden ser accedits directament des de la CPU a través del bus del sistema. Hi ha 3 tipus:

- Registres de dades: Utilitzats per transferir les dades a/o des del dispositiu a la CPU per intercanviar informació.

- Registres de comandes (control): Per realitzar accions de control (donar ordres) sobre el funcionament del dispositiu.

- Registres d’Estat: Per conèixer en quina situació/estat es troba el dispositiu i les diferents parts que el conformen, així com en quina fase de la seva operació és en cada moment. Ex: Si a una impressora li falta paper.

En què consisteix l’entrada/sortida programada de dades? (1) x1

Una transferència programada de dades és un programa executat per la CPU que segueix la següent seqüència:

1. Envía/rep una dada s/el port del perifèric.

2. Espera en un bucle que el perifèric estigui llest per tornar-hi.

3. Torna a 1 i repeteix fins acabar la operació programada.

Com que el pas 2 manté la CPU ocupada de manera improductiva, ho solucionem incorporant les interrupcions.

Fet el pas 1, deixem la transferència i no fem cap bucle. Executem altres programes que puguin ser d’interès.

Quan el perifèric estigui llest per tornar-hi, envia un senyal a la CPU i aquesta executa una “rutina de tractament de la interrupció” que comporta enviar/rebre una altra dada. Fet això tornarà al programa d’interès que estava fent quan ha arribat la interrupció. Això es repetirà i acabarà la operació programada. Així la transferència programada de dades amb interrupció alleugereix la CPU d’estar fent un bucle improductiu.

PROCEDIMENT D’ENTRADA/SORTIDA:

1. Selecció del dispositiu

2. Estat en el que es troba ¿? – Bucle en el que llegim el RE

3. Iniciar l’operació (I/O) – Veiem si està desocupat

4. Fer l’entrada/sortida que toqui.

5. Final

Què és una INTERRUPCIÓ? Explica el procés que es desencadena quan es produeix una. I amb el retorn d’interrupció? (1.5) x2

- És un senyal asíncron que fa que es deixi d’executar el programa en curs per executar un altre programa amb la idea de resoldre una situació que requereix l’atenció immediata.

- Permet al processador executar altres instruccions mentre una operació d’E/S està en procés.

- En arribar el senyal s’acaba d’executar la instrucció en curs i es passa a executar la rutina de tractament de la interrupció (RTI) l’adreça de començament de la qual és al Registre Vector d’interrupció. Per tant es carrega l’adreça al PC.

- Es produeix un canvi de mode usuari a supervisor.

- Es salva el contingut del RE (registre d’Estat) i del PC.

- S’executa la RTI.

- La RTI acaba amb una instrucció de Retorn d’Interrupció que restaura el RE i el PC i es recupera l’execució del programa que s’estava executant en el moment que va arribar la interrupció.

- Canvia de mode Supervisor a usuari.

En què consisteix el doble mode de funcionament d’un processador i quina funció té? Per a què serveix? En quin moment es produeix el canvi de mode d’usuari a supervisor i a l’inrevés? (1) x2

La CPU té 2 modes de funcionament; Usuari i Supervisor.

En el MODE USUARI la CPU i el programa que estigui executant té accés a un espai de memòria limitat; No té accés a l’espai d’entrada/sortida ni a tots els registres interns de la CPU. Hi ha instruccions del repertori que no pot executar, si ho intenta causa una excepció.

En el MODE SUPERVISOR totes les limitacions desapareixen. Pot accedir a qualsevol informació/àrea de memòria. Es passa d’usuari a supervisor quan es produeix una interrupció en general i el camí contrari quan s’executa una instrucció de Retorn d’Interrupció.

USUARI à SUPERVISOR: Quan hi ha una instrucció general

SUPERVISOR à USUARI: Instrucció de retorn de interrupció

En què consisteix i quan es produeix una interrupció HW, una EXCEPCIÓ i una INTERRUPCIÓ SW (TRAP)? (1) x3

- INTERRUPCIÓ HW: És la que es produeix per l’activació d’un senyal HW indicant que s’ha produït un fet exterior al sistema que requereix la seva atenció i és generat per un dispositiu com una impressora, disc, motor..

- EXCEPCIÓ: Situacions anòmales causades per un mal ús. Desencadena el mateix procés que l’anterior però és produïda per una causa interna a la CPU (divisió per 0, intent d’executar una instrucció privilegiada, overflow,...)

- INTERRUPCIÓ SW (TRAP): Instrucció del repertori de la CPU i pot ser inclosa al nostre programa d’usuari, que desencadena el mateix procés que les anteriors. La seva funció és poder executar serveis invocant el S.O. CANVI DE MODE USUARI A SUPERVISOR.

En què consisteix el S.O.? Com s’ estructura? (1) x2

- El S.O. ens proporciona els mecanismes per poder utilitzar el sistema d’una manera eficient i segura.

- Centralitza la gestió de tots els recursos à CONTROLA EL SISTEMA.

- Supervisa la màquina, és la capa que “oculta” el HW.

- Tots els serveis per utilitzar els recursos del sistema (memòria, fitxers, accés a la xarxa,..) han de ser sol·licitats al SO (l’únic capacitat per gestionar-los).

- El S.O. s’estructura en capes:

INTÈRPRET DE COMANDES (Nivell usuari): Programa que genera les crides al sistema per fer el que demana l’usuari en forma d’instruccions SW. Dona un nivell elevat d’abstracció.

EINES DEL SISTEMA (Nivell programador): Per tal que un programa accedeixi a les eines (serveis) del S.O. existeixen:

- LLIBRERIES DEL SISTEMA: Contenen la part complexa de la invocació, pas de paràmetres de la crida al sistema. Formen part del executable de les aplicacions i s’executa en mode usuari. Ens ofereixen una llibreria amb unes funcions fàcils d’utilitzar. Les ofereixen els sistemes per defecte amb la seva instal·lació.

- LLIBRERIES DEL LLENGUATGE: Procediments d’ús comú que es poden agregar a les aplicacions per simple referencia al procediment en qüestió (s’agrega al nostre codi al moment de compilació). Algunes utilitzen funcions de les llibreries del sistema. Ex: printf – per mostrar per pantalla.

- CRIDES AL SISTEMA (TRAP): No afegeixen codi nou al programa sinó que en temps d’execució es transfereix el control a un codi que pertany al nucli. Mecanisme a través del qual li demano serveis al S.O. Acaba generant una INTERRUPCIÓ SOFTWARE.

- NUCLI DEL SISTEMA OPERATIU: El que fa coses dins del sistema. Té un catàleg de crides al sistema/als programes (API: obrir un fitxer, esborrar-lo,...).

Què és una Crida al S.O.? Quina funció té? Com s’implementa? Quina relació hi ha amb les interrupcions? Com interactua amb el SO (demanant-li serveis) l’usuari de forma interactiva i com ho fa des d’un programa? Relacioneu els conceptes “crida al sistema”, “TRAP”, “Llibreria de Llenguatge” i “Llibreria de Sistema”. (2) x2

- Una CRIDA AL SISTEMA és una petició d’un servei al S.O.

- La seva funció és indicar què volem, com ho volem i on ho volem.

- S’implementa mitjançant una sèrie d’instruccions que permeten posar en memòria o en registres els paràmetres que necessita la crida i finalment la fa efectiva amb una instrucció TRAP.

- La relació amb les interrupcions és perquè d’aquesta manera l’execució del SO es fa en mode supervisor i els programes s’executen en mode usuari. Així protegim la feina del SO i del sistema en general.

- L’usuari interactiu necessita una aplicació que transformi comandes interactives en crides al S.O à L’INTÈRPRET DE COMANDES. D’es d’un programa ho pot fer directament o amb funcions de llibreria de llenguatge/sistema.

- La crida al sistema sempre s’acaba amb una TRAP per fer efectiva la crida. Les funcions de llibreria de sistema són versions + amigables de la crida al sistema feta en llenguatge màquina, però fan exactament el mateix (de fet el compilador les substitueix per la crida en llenguatge màquina. Les funcions de llibreria de llenguatge són ampliacions de les de sistema, per tant les inclou (amb funcionalitats afegides).

PETICIÓ D’UN SERVEI AL S.O. – CRIDA AL SISTEMA

1. Salvar CP i el PSW (Registre d’Estat)

2. Canviar a mode supervisor (pq estem anant a executar el S.O.)

3. Salvar Estat (ho fa el SW del S.O, que sap quines posicions de memòria i quins registres farà servir).

4. Averiguar quin servei es demana.

5. Executar la rutina del S.O que dona el servei corresponent.

6. Segons el servei, el treball actual:

a. Ha d’esperar à Escollir un altre procés.

b. No espera

7. Recuperar procés.

8. Recuperar CP i el PSW (executa la instrucció de retorn d’interrupció, torna a situar-nos en mode Usuari).

En general s’intenta que la CPU estigui ocupada el màxim de temps possible, ja que es molt potent com per perdre el temps esperant.

PROCESSOS à Tota l’activitat i recursos necessaris que desencadena un programa en execució. 1 procés pot arribar a executar diferents programes i 1 programa pot ser executat per diversos processos.

-A la memòria ppal poden haver varis processos i anar saltant d’un a l’altre segons el que estigui disponible. Cada procés ocupa una part de la memòria ppal que se li assigna (un codi del programa i les dades que necessita).

-L’objectiu és mantenir la CPU sempre ocupada.

-Execució en temps compartit à Processos que comparteixen la CPU.

INFORMACIÓ D’UN PROCÈS

·ESTAT DEL PROCESSADOR: Conté tots els registres interns de la CPU (del model de programació).

·IMATGE DE MEMÒRIA:Contingut de memòria en el que resideix el codi i les seves dades.

·INFORMACIÓ DE CONTROL I IDENTIFICACIÓ:Bloc de Control de Procés (BCP):

oInformació d’identificació respecte l’usuari propietari del procés (qui l’ha iniciat).

oS’inclou l’Estat del Processador.

oInformació del Control del Procés.

oInformació de planificació i l’estat en que es troba: Informació important que influeix en les decisions de quin procés s’executa a cada moment. Estat: En execució/ en espera (bloquejat/llest)

oDescripció de l’àrea de la memòria ppal en la que esta guardat el procés.

oRecursos assignats (connexió a la xarxa,...)

oComunicació entre processos (si estic enviant/rebent missatges d’altres processos).

Hi ha una part de la memòria que s’encarrega de guardar processos específics, per l’usuari àAixí ningú pot interferir en el que fan altres processos – lo maneja el S.O.

Taula de fitxersà Control dels fitxers en ús.

GRAU DE MULTIPROGRAMACIÓ

# de processos actius, residents a la memòria ppal. Un grau excessiu seria ideal però no eficient. Una bona elecció és en mig de la corba (un ↑ del grau  ↑ molt la utilització del processador).

**Els processos poder ser interromputs per pròpia voluntat o per coses externes**

ESTATS D’UN PROCÉS ACTIU

·BLOQUEJAT: El procés necessita algo que no té i es bloqueja (normalment es bloqueja per algo que ha fet ell i ha d’esperar).

·LLEST: Llest per executar-se.

·EXECUCIÓ:  El procés entrarà a executar-se fins quan ell demani alguna operació d’E/S o es produeixi un TIME-OUT

·*TIME OUT*: Cada cop que entra en execució s’inicia un “Timer” que compta un període de temps determinat; Si el temps s’acaba i el procés es segueix executant, el fem fora (en contra de la seva voluntat à INTERRUPCIÓ HW.

nExplicar codi (1) x2

1er en executar-se el codi es mostra per pantalla “Hola”.

Amb el fork() es crea un procés fill idèntic al que s’està executant (pare) i l’identificador del nou procés se li assigna a la variable “pid” del pare. A la variable “pid” del fill se li assigna un 0. Tenim 2 processos = executant-se: Pare i fill.

El procés Pare, a través del ELSE executarà el “wait (&st)” que el deixarà bloquejat a  l’espera que el fill acabi d’executar-se. Quan el fill finalitzi visualitzarà per pantalla “Adeu del pare”.

El procés Fill, a través de l’ If(pid==0) , visualitzarà per pantalla “Adeu del fill” substituirà el programa actual que està executant per un programa que està emmagatzemat a “ls” i continuarà executant aquest nou programa, fins acabar, substituint l’anterior. Si no ha tingut èxit la crida “execlp” i no s’ha produït la substitució, el procés fill acaba la seva execució amb l’exit (1).

nPaper de les variables “argv [ ]” i “argc” en relació a la funció main d’un programa i la crida al sistema “exec”. (1) x1

-Durant l’execució d’un procés podem canviar el programa que s’està executant per un altre i les seves dades. La manera de fer-ho és a través de la crida al sistema: “exec (fitxer_de_codi, paràmetres ...)”.

-Aquesta crida li demana al S.O. que agafi el codi que està emmagatzemat a fitxer_de_codi, el porti a la memòria ppal, amb les seves dades que també són al fitxer i l’executi, substituint el que s’estava executant fins ara.

-És possible passar paràmetres al nou programa especificant-los a la crida exec. Cada un dels paràmetres explicitats a la crida passen a través de la variable “argv [ ]” que és un array que conté cada un dels paràmetres en cada element de l’array, per ordre.

-Argc ens diu quants paràmetres s’han inclòs a exec.

-Les 2 variables són accessibles des del main del nou programa que s’ha portat per l’exec.

**EN LINUX TOTS ELS PROCESSOS S’HAN CREAT PER UN ALTRE PROCÉS (TOTS SÓN FILLS D’ALGUN)**

**QUAN INCLOEM LA CRIDA AL SISTEMA AL NOSTRE PROGRAMA, ES CREA UN PROCÉS CLÒNIC AL PROCES QUE ESTEM EXECUTANT EN AQUELL MOMENT**

THREAD

-Procés lleuger, “instància d’un procés”, és un procés amo dels recursos. Procés que va rebent peticions per llegir/escriure.

-Quan en comptes de passar d’un procés a un altre canviem de thread, salvem el context del processador (PC, RE,...) à Això alleugera la gestió i el funcionament de la maquina.

-La diferència entre 2 threads és el context del processador.

-Poden existir múltiples fluxos d’execució en 1 mateix procés.

èINFORMACIÓ PRÒPIA/PRIVADA D’UN FLUX (THREAD):

oCP

oPila

oRegistres

oEstat del flux (execució/llest/bloquejat).

èTOTS ELS FLUXOS D’UN MATEIX PROCÉS COMPARTEIXEN:

oEspai de memòria.

oVariables globals.

oArxius oberts.

oTemporitzadors.

oSenyals i semàfors.

Entradas relacionadas: