You are on page 1of 2

URV-ETSE-DEIM Estructura de Sistemes Operatius

Primer Control 4 de novembre del 2021

Normes:
- No podeu utilitzar cap mena d'apunts, ni calculadora, ni cap dispositiu electrònic.
- L’examen és individual. Si detectem còpies, tots els exàmens involucrats estaran
suspesos.
- No utilitzeu llapís ni bolígraf vermell.

Exercicis:

1.- (1 punt) Com i quan es pot executar el codi del sistema operatiu en un
mono-processador si, en aquest moment, s’està executant un procés
d’usuari?

2.- (1 punt) Especifica quines accions es realitzen en la crida al sistema per


escriure a pantalla en el cas de la pràctica que esteu implementant,
indicant per quins dels diferents estats i què s’està executant en cada
moment.

3.- (1 punt) Quina diferència hi ha entre un canvi de context i un canvi


d'estat? Quan es produeix cada un d'ells? Que s'ha de fer en cada cas?

4.- (1 punt) Com sap la rutina crearProces on ha de carregar el codi que s’ha
d’executar? Com es té constància d’on es carrega aquest codi? Com i
quan es comença a executar el procés? Com sap el processador quina
és la primera instrucció que ha d’executar?

( El problema està a la part de darrere del full )


5.- (6 punts) Tenim un sistema operatiu que té un planificador multiprogramat
de curt termini amb prioritats apropiatiu. Es vol programar un manegador
(que tindrà la màxima prioritat) per a controlar cinc càmeres que disposen
d’una base giratòria entre 0 i 180 graus. Cada una de les càmeres està
associada a una pantalla on es mostrarà la informació obtinguda per
aquella càmera, aquestes pantalles estan mapejades a memòria i poden
mostrar vídeo o un fotograma. L'associació entre la càmera i la pantalla es
fa en el moment d'inicialitzar el manegador amb la rutina
vincula(x,&buffer) on es vincula la càmera x amb l'adreça buffer que
estarà mapejada a memòria.

Les ordres que es poden executar en cada una d'aquestes càmeres són les
següents: grau(x) on x va de 0 a 180; capturaFoto(&buffer) captura un
fotograma i l’escriu a partir de l'adreça del buffer; capturaVideo(&buffer,
segons) captura el nombre de segons especificats i els escriu a partir de
l'adreça especificada en el buffer; disponible() retorna cert si la càmera
està disponible per a funcionar. A cada una d'aquestes càmeres se li ha
associat una interrupció que s'activa quan detecten moviment, i haurà de
capturar vídeo durant 6 segons emmagatzemant-ho a partir de l’adreça on
s’ha de visualitzar i també s'activarà quan finalitzin les funcions internes
grau, capturaFoto i capturaVideo.

Responeu les següents preguntes, justificant totes les respostes que feu.
a) (1 punt) Escriviu un programa d’usuari per tal que agafi un fotograma
en els punts de 0, 45, 90, 135 i 180 de cada una de les cinc càmeres
en un interval de cinc segons entre fotograma i fotograma de la
mateixa càmera i els mostri en les seves pantalles corresponents, de
la manera més ràpida i eficient possible. Podeu disposar d'una crida al
sistema delay(x) que bloqueja el procés i el posarà a la cua de ready
al cap de x segons.
b) (1 punt) Especifiqueu quins camps hauria de tenir el descriptor de
dispositiu per a cada una de les càmeres i quins camps tindran els
iorbs.
c) (2 punts) Implementa en pseudocodi la rutina d’interrupció que s'activa
per cada una de les càmeres.
d) (2 punts) Quin tipus de manegador necessitem per controlar aquestes
càmeres? Implementa’l en pseudocodi.
Molta sort a tothom

You might also like