Está en la página 1de 8

¿Qué es una llamada al sistema?

¿Qué es la interfaz de programación de aplicaciones (API) de un


sistema operativo?

Una llamada al sistema es una petición que hace un proceso al sistema operativo
para recibir algún servicio.

La interfaz de programación de aplicaciones es el conjunto de todas las llamadas al


sistema que implementa un sistema operativo.

Se desea implementar un sistema operativo que permita ejecutar pequeñas aplicaciones en el chip de
una tarjeta inteligente. El hardware incrustado en la tarjeta dispone de tan sólo unos cuantos cientos de
kilobytes de memoria y el procesador no dispone de mecanismos de protección. De los modelos
micronúcleo y monolítico, ¿cuál escogería para desarrollar dicho sistema operativo?

Hay dos razones por la que el diseño debe ser forzosamente monolítico:

- En primer lugar, al no disponer el procesador de mecanismos de protección, el


modelo micronúcleo no tiene sentido ya que no podríamos garantizar el
aislamiento entre componentes del sistema operativo, que es la principal ventaja
de dicho modelo.
- Además de ello y en segundo lugar, los sistemas operativos diseñados bajo el
modelo monolítico son más eficientes tanto en tiempo de ejecución como en
memoria requerida, siendo este último un recurso escaso en el sistema para el
cual se diseña.
-

Microsoft intentó defender inicialmente que Windows NT, 2000 y posteriores son sistemas basados en
organización híbrida micronúcleo/monolítico. No obstante, ¿qué característica de este sistema
operativo es propia de los sistemas estrictamente monolíticos?

El hecho de que los gestores de dispositivos compartan espacio de memoria con el


Kernel y el Executive (el núcleo, en definitiva) es una característica propia de los
sistemas monolíticos. Esto se hace así por cuestiones de eficiencia, pero es
absolutamente incompatible con la afirmación de que se tratase de un sistema
operativo con organización micronúcleo.

¿Es posible que un error en el gestor (driver) de un dispositivo no crítico, como puede ser por ejemplo
una impresora o una tarjeta de sonido, pueda hacer fallar al sistema operativo Windows? ¿Por qué?

Sí, lo es. En Windows, los gestores de dispositivos se integran junto con el Executive y el
Kernel en el núcleo del sistema. Esto significa que un error de programación en un
gestor de dispositivo (driver) puede afectar al Executive o al Kernel, provocando el
fallo del sistema operativo.
Dibuje el diagrama de estados mínimo de los procesos que debe considerar cualquier planificador de
procesos, describiendo brevemente cada estado.

activación

preparado activo

apropiació
Fin bloqueo n
bloqueo

bloqueado

Estado Activo: un proceso está en este estado cuando está ejecutando instrucciones
(dispone de un procesador)
Estado Bloqueado: un proceso está en este estado cuando está esperando que se
complete una operación bloqueante, la cual se define a su vez como una operación que
puede necesitar para completarse un tiempo muy superior en orden de magnitud al
tiempo que tarda el procesador en ejecutar una instrucción. Operación bloqueante:
operación que puede requerir un tiempo muy superior en orden de magnitud al tiempo
de ejecución de una instrucción.
Estado preparado: Es el estado en que se encuentra un proceso que para activarse sólo
necesita que el planificador le asigne un procesador.

¿Qué ventajas tiene el uso de hilos frente al uso de procesos en la construcción de aplicaciones que
constan de diversas actividades que colaboran entre sí?

Si dos actividades colaboran entre si es muy probable que necesiten compartir datos o
cualquier otro tipo de recurso. Solucionar un problema de este tipo mediante hilos en
lugar de mediante procesos separados tiene como ventaja que los hilos de un mismo
proceso comparten espacio de memoria (el del proceso que lo contienen) con lo que no
necesitan hacer uso de mecanismos de comunicación ni de compartición de datos
entre procesos, resultando así más eficiente la implementación.

Además de ello, los tiempos necesarios para crear y destruir hilos son menores que los
necesarios para crear y destruir procesos.
Supongamos un sistema con memoria paginada en el que las direcciones de memoria son de 16 bits,
siendo los 4 bits de mayor peso el número lógico de página (NLP). La traducción a la dirección física
se hace mediante una tabla de páginas en la unidad de gestión de memoria. En dicha tabla se tiene para
cada página, además del número de marco, un bit P que indica si la página está presente (P=1) o
ausente (P=0). Cuando la página está ausente, el número de marco no tiene sentido. Si se intenta
acceder a una página ausente, se produce un fallo de página.

A la vista de la tabla de página, ¿qué direcciones físicas producirían las siguientes direcciones lógicas?
Indique cuáles producirían fallo de página. Por simplicidad, todas las direcciones están en
hexadecimal.

a) 0000 → 7000
b) 6FFF → Fallo de página
c) 3A10 → Fallo de página
d) 47F1 → 07F1

NLP Marco P NLP Marco P NLP Marco P NLP Marco P


0 7 1 4 0 1 8 3 1 C 0 0
1 0 0 5 6 1 9 1 1 D 0 0
2 0 0 6 5 0 A 0 0 E A 1
3 0 0 7 4 1 B 0 0 F B 1

Se desea construir un sistema orientado a la reproducción de archivos multimedia. El uso que se hace
de los discos en este tipo de sistema se caracteriza porque se procesa secuencialmente archivos de muy
gran tamaño que ocupan normalmente bloques de discos físicamente contiguos, requiriendo mantener
constante una elevada tasa de transferencia durante todo el proceso. Para este sistema, podemos elegir
entre dos modelos de disco de igual capacidad y similar precio cuyas características se muestran en la
siguiente tabla. ¿Cuál de los discos sería el más adecuado para nuestro sistema? ¿Por qué?

Modelo Velocidad de rotación Tiempo medio de búsqueda


ST380020ACE 5.400 r.p.m. 8,9 ms
ST380021A 7.200 r.p.m. 9,5 ms

Sería preferible el modelo ST380021A, que si bien tiene un peor tiempo medio de
búsqueda, tiene una mayor velocidad de rotación. El tiempo de búsqueda no va a
tener un impacto relevante con la aplicación que se le va a dar al disco, dado que al
transferir mayoritariamente sectores contiguos, el tiempo de búsqueda va a ser o bien
cero, o el tiempo de salto entre pistas consecutivas cuando se termine de procesar un
todos los sectores de un cilindro. Sin embargo, la velocidad de rotación sí que tiene un
impacto sobre el tiempo de transferencia, que será el que determinará la tasa de
transferencia de datos en la aplicación multimedia.

Se desea construir un sistema orientado a su uso como servidor de bases de datos. El uso que se hace
de los discos en este tipo de sistema se caracteriza porque se realiza gran cantidad de accesos directos a
posiciones aleatorias del disco, transfiriéndose en cada acceso unos pocos sectores, frecuentemente, un
solo sector. Para este sistema, podemos elegir entre dos modelos de disco de igual capacidad y similar
precio cuyas características se muestran en la siguiente tabla. ¿Cuál de los discos sería el más
adecuado para nuestro sistema? ¿Por qué?

Modelo Velocidad de rotación Tiempo medio de búsqueda


ST380020ACE 5.400 r.p.m. 8,9 ms
ST380021A 7.200 r.p.m. 9,5 ms

Sería preferible el modelo ST380020ACE, ya que su tiempo medio de búsqueda es menor,


y, si bien el otro disco tiene una mayor velocidad de rotación, en la aplicación a la
que va dirigido el impacto del tiempo de búsqueda va a ser mayor, ya que el disco
hará frecuentes accesos a posiciones aleatorias, transfiriéndose pocos sectores en cada
acceso, con lo que nos beneficiaremos poco de una menor demora de rotación y un
menor tiempo de transferencia.

Un fabricante de hardware de bajo coste diseña un teclado extremadamente simple que por cada
pulsación del usuario envía el código de la tecla a través de una interfaz USB. ¿Serviría este teclado
para usarlo con un PC con Windows, por ejemplo?

No, no serviría, ya que al no informar de los instantes de pulsación y liberación de


cada tecla, no podríamos detectar combinaciones de teclas, como CTRL-ALT-SUPR, o
ALT-1,2,6, etc. Estas combinaciones son necesarias en Windows.

En un volumen FAT existen tres archivos compuestos por los bloques que se muestran en la tabla de la
izquierda. Sabiendo que los bloques 5 y 6 tienen sectores defectuosos y que los bloques que no están ni
en uso ni defectuosos se supone que están libres, rellene la FAT que aparece a la derecha.

0 -
Archivo Bloques 1 -
f1.txt 2
2 EOF
prueba.dat 3,7,8,12
prueba.exe 9,10, 11,13,15,16 3 7
4 FREE
Nota: las entradas 0 y 1 5 BAD
están reservadas. 6 BAD
7 8
8 12
9 10
10 11
11 13
12 EOF
13 15
14 FREE
15 16
16 EOF
… …
En un sistema de archivos de tipo ext2, el tamaño del bloque es de 4K y se utilizan 32 bits para
representar los números de bloque. En dicho sistema, ¿cuántos bloques habría que transferir en el peor
de los casos para realizar un acceso directo a la posición 8192000 de un archivo? Suponga que el
nodo-i ya ha sido transferido

La posición que se desea transferir está en el bloque lógico nº 8192000/4096= 2000.


Las referencias a los 12 primeros bloques están en el nodo-i. En el bloque indirecto
simple, caben 4096 / 4 = 1024 referencias más. Por tanto, el bloque que hemos de
transferir no está referido en el indirecto simple, sino que está referido a través de un
indirecto doble que refiere a otro indirecto simple. Por tanto, hay que transferir (véase
ilustración) tres bloques: (1) Indirecto doble, (2) Indirecto simple, y (3) el bloque de
datos en cuestión.

En la reserva de disco, ¿qué ventaja tiene la reserva de escritura diferida (también llamada reserva de
lectura y escritura) sobre la reserva de escritura directa (también llamada reserva de lectura)? ¿Y qué
inconveniente(s)?

Como ventaja, gracias a la reserva de escritura diferida, la escritura también se


beneficia de la reserva de disco. De lo contrario, toda operación de escritura
implicaría inmediatamente una transferencia a disco. Como inconveniente, existe el
riesgo de que alguna escritura pueda no llegar al disco si tras realizarse (y
actualizarse la reserva) se produce una caída del sistema, o si el medio es extraido sin
esperar la actualización, etcétera.

En un volumen FAT, se dispone de la siguiente información en un directorio y en la FAT. Sabiendo que el


bloque de disco es de 1K, ¿qué bloque se debería transferir si un proceso solicitase la lectura del byte en la
posición 5200 del archivo datos.dat?
Nombre Extensión Atributos Fecha Hora Tamaño 1er Bloque 0 -
prueba avi A 12/01/2009 01:00 12341244 1004 1 -
datos dat A 11/10/2008 12:34 124000 4 2 EOF
… … … … … … … 3 EOF
4 7
5 EOF
La posición lógica 5200 se encuentra en el bloque lógico
6 EOF
5200/1024= 5,07 del archivo, es decir, el sexto bloque, o el
7 8
bloque lógico número 5 (puesto que el primer bloque lógico es
8 9
el 0). Para obtener el número de bloque físico que 9 10
corrersponde a dicho bloque lógico recurrimos al directorio y 10 11
a la FAT. El bloque lógico 0 es el 4 (se obtiene del directorio) y 11 12
los restantes, obtenidos de la FAT siguiendo los enlaces, el 7, el 12 2100
8, el 9, el 10, y el que buscamos, el 11. 13 FREE
14 15
Habría que transferir pues el bloque nº 11. 15 16
16 EOF
… …

En un sistema, la protección del sistema de archivos se lleva a cabo mediante una matriz de control de acceso.
En el sistema, se definen cuatro dominios D1, D2, D3 y D4. Los procesos de usuario se adscriben al dominio
D1 cuando comienzan su ejecución.

A la vista del siguiente fragmento de la matriz de control de acceso, ¿puede en este sistema un proceso de
usuario…

a) … leer el archivo F1? c) … copiar el archivo F1 sobre F3?


b) … leer el archivo F2? d) … copiar el archivo F2 sobre F4?

F1 F2 F3 F4 D1 D2 D3 D4
Leer
D1 Escribir Entrar
Escribir
D2 Leer Escribir Entrar
D3 Leer Escribir Entrar
Leer Leer
D4 Escribir Leer
Escribir Escribir

a) Si, en el dominio D1 directamente se tiene el permiso Leer sobre el archivo F1


b) Sí, el archivo F2 se puede leer en el dominio D2, y se puede entrar en dicho
dominio desde D1
c) Sí, para copiar el archivo F1 sobre F3 es necesario disponer simultáneamente de
permiso de lectura sobre F1 y de escritura sobre F3. Esta situación se da en el
dominio D3, al cual se puede acceder desde D2 y al cual se puede acceder desde
D1
d) No, no hay ningún dominio de protección en el que se pueda simultáneamente
leer F2 y escribir F4.
Exprese la información relativa a la protección de acceso los archivos del anterior ejercicio mediante una lista
de control de acceso

F1: [D1, (Leer,Escribir)], [D3, (Leer)], [D4, (Leer, Escribir)]


F2: [D2, (Leer)], [D4, (Escribir)]
F3: [D2, (Escribir)], [D3, (Escribir)], [D4, (Leer)]
F4: [D1, (Escribir)], [D4, (Leer, Escribir)]

Un procesador marca ACME distingue los modos de ejecución supervisor y usuario y no dispone de
soporte hardware para la virtualización. Cuando en modo usuario se intenta ejecutar una instrucción
privilegiada, esta instrucción simplemente se ignora. ¿Se podría construir un hipervisor basado en
tecnología tipo 1 para este procesador? ¿Por qué?

No, sobre este procesador no se puede implementar un hipervisor tipo 1, ya que estos
hipervisores, en caso de no disponer de soporte hardware para la virtualización,
simulan la ejecución de las instrucciones privilegiadas en las máquinas virtuales
capturando la excepción que se produce al intentar ejecutarlas. Si esta excepción no se
produce, no es posible su simulación (se dice por tanto que el procesador ACME no es
virtualizable).

En una máquina virtual de un hipervisor funcionando como tipo I, el sistema operativo invitado se
dispone a ejecutar una instrucción privilegiada. El procesador virtual de dicha máquina, como es de
esperar, se encuentra en modo virtual supervisor. ¿Qué ocurrirá cuando dicho sistema operativo
invitado intente ejecutar la instrucción privilegiada?

Se transferirá el control al hipervisor, y éste se encargará de simular la ejecución de la


instrucción privilegiada, devolviendo a continuación el control al sistema operativo
invitado.

¿Cómo puede un sistema operativo como Windows o Mac OS X, del que no disponemos de código
fuente, beneficiarse de la tecnología de paravirtualización si se desea ejecutar como sistema operativo
invitado sobre un hipervisor?

Puede hacerlo incluyendo drivers paravirtualizados para el manejo de los dispositivos


más habituales (pantalla, unidades de almacenamiento, adaptador de red…). Los
drivers paravirtualizados son drivers creados por el fabricante del hipervisor de forma
que estos drivers son conscientes de la existencia del hipervisor, y cuando el sistema
operativo invitado los usa para realizar un acceso al dispositivo virtual que
gestionan, dichos drivers en lugar de intentar usar el hardware virtual mediante
instrucciones privilegiadas, realizan directamente una llamada al hipervisor, como si
de un paravirtualizador se tratase.

¿Qué inconveniente tiene el despliegue de aplicaciones mediante máquinas virtuales frente el


despliegue mediante contenedores?
El despliegue mediante máquinas virtuales tiene como inconveniente que se está (1)
virtualizando todo el hardware completo (procesadores, dispositivos…) y (2) sobre
dicho hardware si ejecuta un sistema operativo completo cuando la aplicación que se
despliega ni necesitará todo el hardware ni necesitará el sistema operativo completo.
Un contenedor, por el contrario, no virtualiza hardware, sino que sólo virtualiza el
API del sistema operativo, el sistema de archivos y la conexión de red, lo cual es mucho
más eficiente en consumo de recursos (y posiblemente, en tiempo de ejecución).

También podría gustarte