Documente Academic
Documente Profesional
Documente Cultură
1.
a. Objetivos memoria caché
Es la memoria más cercana al procesador, con mejor velocidad de transferencia y más
pequeña que la memoria principal
d. Principio de localidad(proximidad)
Espacial:Si un elemento es referenciado los elementos cuyas direcciones están próximas
tenderán a ser referenciados pronto. Una estrategia es estimar las posiciones cercanas para
tener acceso más temprano.
e. Tipos de interrupciones
● Interrupciones de reloj: Cuando un proceso utiliza mucho tiempo en ejecutarse, se
solicita su interrupción
● FRAPS: el sistema indica al planificador que pase al siguiente proceso
● Interrupciones E/S:
El principio funciona igual que los de 32, si tienes 64 bits, puedes direccionar un máximo
teórico de 2^64 direcciones distintas de memoria, es decir:
2^64bytes = x bytes =
k. Liste 3 procesadores
Mediatek
AMD
Intel
2.
a. Que es la multiprogramación
Característica de los SO de poder ejecutar varios programas a la vez mediante el uso de
recursos compartidos
i. Estados de un proceso
En ejecución (uno por procesador)
Bloqueado (en espera de completar E/S)
Listo para ejecutar
3.
a. Implemente un programa que cree cuatro procesos que desplieguen su
identificación (Pid) y la identificación del padre
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
main(){
int pid;
for(i=0; i<4; i++){
pid = fork();
if(!pid){
printf(“Hijo: %i, Padre: %i”, getpid(), getppid() );
}
}
return(0);
}
b. Ejecute un proceso que se llame a sí mismo (recursividad)
opción 1:
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
void main(int argc, char *argv[]){
printf("me estoy ejecutando %s\n",argv[0]);
execve(argv[0], &argv[0],0); //el argv es para que tomó
su mismo nombre
exit(0);
}
opción 2:
#include….
main(){
printf(“soy recursivo “\n);
execv(“home/Escritorio/hola”);
} // mencionar que debe estar ese archivo en esa dirección
opción 2:
#include….
void prog (void){
printf(“Se ha desviado el proceso“\n);
return NULL;
}
int main(){
signal (SIGINT, prog);
return(0);
}
PP1 2017
1.-
a) En el siguiente codigo identifique la ejecución modalidad kernel y usuario:
main(){
int x,y,z; ← Usuario
scanf(“%i %i %i”, &x,&y,&z); ← Kernel
x=x+1; ← Usuario
y=y+1; ← Usuario
x=x+y; ← Usuario
printf(“%i %i %i”,x,y,z); ← Kernel
}
b) Cuáles son los estados por lo que pasa el proceso de la pregunta anterior en un
sistema multitarea con planificación de CPU round Robin. Justifique su respuesta
Ejecución-Espera E/S- Ejecución - Ejecución - Ejecución - Espera E/S.
2.-
a) Escriba un programa que genere 10 procesos hijos y estos desplieguen en el
monitor su identificación y la identificación del padre.Luego haga lo mismo
pero genera Thread.
#include…
main(){
int pid;
for(i=0; i<10; i++){
pid = fork();
if(!pid){
printf(“Hijo: %i, Padre: %i”, getpid(), getppid() );
}
}
return(0);
}
HILO
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void main() {
for(int i=0,i<10,i++){
pthread_t thread;
int iret;
iret = pthread_create( &thread, NULL,NULL,NULL);
if(iret){
fprintf(stderr,"Error - pthread_create() return code: %d\n",iret);
exit(EXIT_FAILURE);
}
printf("pthread_create() crea thread %d retorna: %d\n",i,iret);
pthread_join( thread, NULL);
exit(EXIT_SUCCESS);
}
}
b) Explique las diferencias entre los procesos y threads creados. Cómo los
planifica el sistema operativo
● La diferencia más importante es que los hilos no son independientes entre sí,
mientras que los procesos si lo son.
● Los procesos son manejados por el procesador mientras que los hilos por la
cpu
● Un proceso puede contener varios hilos generando su funcionalidad,
mientras que los hilos no pueden ejecutar procesos.
3.-
a) Describa el procesamiento de una interrupción.
Esquema global:
Memoria
CPU Cache
principal
Esquema interno:
4.-
a) Implemente un proceso que cambia la región de texto por un programa que
despliegue “Hola Mundo” en el monitor.
}
int main(){
if( !setjmp(buf)){
first();// Cuando se ejecuta, devuelve 0 setjmp
}
else{// cuando salta longjmp, setjmp devuelve 1
printf(“main\n”);
}
return 0;
}
este es un ejemplo basico de la idea de setjmp, aqui el main() llama a first(), el cual llama a
second(), entonces este salta atras al main(), saltandose el printf() del first(), cuando se
ejecuta imprime
second
main
b. Multicomputador
2.
a. Describa características de la multitarea
● Un SO multitarea o multiproceso permite que coexistan varios procesos activos a la
vez.El SO se encarga de ir repartiendo el tiempo del procesador entre los procesos,
para que todos ellos avancen en su ejecución.Este se basa en 3 características:
○ paralelismo real entre E/S y procesador:
○ alternancia entre procesos de fases de E/S y de procedimiento
○ memoria principal capaz de almacenar procesos
b. Que es el entorno de un proceso
Consiste en un conjunto de variables que se le pasan a un proceso en el momento
de su creación, está formado por una tabla NOMBRE-VALOR que se incluye en la
pila del proceso.
Ejemplo en UNIX:
PATH=/usr/bin:/home/pepe/bin
TERM=vt100
HOME=/home/pepe
PWD=/home/pepe/libros/primero
TIMEZONE=MET
c. Que es un proceso
Es un programa en ejecución, de forma más precisa es como la cpu es gestionada
por el SO
g. Que es POSIX
Interfaz estándar de sistemas operativos de IEEE.
Objetivo: portabilidad de las aplicaciones entre diferentes plataformas y sistemas
operativos.
NO es una implementación. Sólo define una interfaz
3.
a. Cual es el propósito y el funcionamiento de la familia de llamadas al sistema
exec.
● El exec cambia el programa de un proceso
● Devuelve -1 en caso de error, en caso contrario no retorna.
● Cambia la imagen de memoria del proceso.
● El mismo proceso ejecuta otro programa.
● Los ficheros abiertos permanecen abiertos
● Las señales con la acción por defecto seguirán por defecto, las señales con
manejador tomarán la acción por defecto.
#include...
int main() {
struct sched_param sp;
printf("hola %i",sched_getscheduler(getpid()));
setpriority(0,0,10);
sp.sched_priority=sched_get_priority_max(SCHED_FIFO);
sched_setscheduler(0,SCHED_FIFO,&sp);
while(1);
}
#include...
int main(){
int rc;
int newprio = 20;
pthread_t tid;
pthread_attr_t attr;
struct sched_param param;
rc = pthread_attr_init (&attr);
rc = pthread_attr_getschedparam (&attr, ¶m);
(param.sched_priority)++;
rc = pthread_attr_setschedparam (&attr, ¶m);
param.sched_priority = newprio;
}
PP2 2016
1.
a. Explica cómo la instrucción read de un pipe se bloquea
No podemos asignar más del total de marcos libres. También hay un número mínimo de
marcos que pueden asignarse. Este número mínimo está definido por la arquitectura del
conjunto de instrucciones(máquina).
2.
a. Explique la propiedad bloqueante que tiene la llamada al sistema mq_send y
mq_recieve
3.
PP3 2016
1.
a. Explique la E/S programada, por interrupción y por DMA
● E/S programada: La transferencia de información entre un periférico y el procesador
se realiza mediante la ejecución de una instrucción de E/S.
● E/S por interrupción: El procesador envía la orden de E/S al controlador de
dispositivo y no espera, se dedica a otras tareas hasta que llega una interrupción del
dispositivo que indica que se ha realizado la operación solicitada.
● E/S por DMA: Evita el uso de la CPU transfiriendo los datos directamente entre los
dispositivos de E/S y la memoria
2.
a. Comando: cat /home/laboratorio/msg.c Describa en términos de i-nodes de
que forma el SO alcanza el archivo msg.c
b. Considere un disco con tamaño de bloque de 4 Kbytes. De qué forma el SO a
través de inode direcciona un archivo de 512 Mbytes
c. Considere un disco con tamaño de bloque de 4 Kbytes. De qué forma el SO a
través de inode direcciona un archivo de 16 Mbytes
Un bloque puede direccionar 4 KB / 4 = 1024 direcciones de bloque. En
consecuencia, el i-node direcciona los 10 primeros bloques directamente. A través
del direccionamiento indirecto simple se pueden direccionar 1024 * 1024, es decir 1
Mbytes. En consecuencia a través del direccionamiento indirecto doble bastaría
direccionar los 15 restante Mbytes ( menos los 10 bloques direccionados
directamente a través del i-node.
d. Describa cada parte de un sistema de archivos linux proyectado en un disco
3.
a. Que es un socket
Un socket es punto final de comunicación (dirección IP y puerto)
Representa un extremo de una comunicación bidireccional con una dirección
asociada
d. Características de un middleware
● Servicios y protocolos estandarizados: Sistemas abiertos
● Ofrecen servicios no incluidos en el SO (servicios de ficheros distribuidos,
servicios de nombres, ...)
● Facilitan el desarrollo de aplicaciones distribuidas
● Independientes del HW y del SO subyacente.
PP3 2017
1.
a. Diferencias entre driver, controlador y dispositivo. De un ejemplo de cada uno
● Dispositivo o periférico: Elementos que se conectan a la unidad central de proceso a
través de las unidades de entrada/salida.
● Controlador o unidad de E/S: Se encargan de hacer la transferencia de información
entre la memoria principal y los periféricos.
Son el componente electrónico a través del cual se conecta el dispositivo de E/S.
● Driver: programa que maneja al controlador.
2.
a. Describa un i-node
un I-node es una estructura propia del sistema de archivos, posee toda la
información necesaria del archivo, menos el nombre y su contenido real. Contiene
Autor, tiempos de acceso, líneas de servicios, entre otros.
sist de archivo virtual:se encarga de proporcionar la interfaz de E/S del sistema y de pasar
la información necesaria para ejecutar los servicios pedidos por el usuario
modelo de organización de archivos:proporciona el modelo de archivo del SO y los
servicios de archivos.Aquí es donde mediante algoritmos se trasladan sus direcciones
lógicas a sus direcciones físicas
servidor de bloques: se encarga de emitir los mandatos genéricos para leer y escribir
bloques a los manejadores de dispositivos
manejador de dispositivos: su función es recibir ordenes de E/S de alto nivel y traduce al
formato que entiende el controlador de dispositivo
3.
a. Implemente un programa que lea un archivo mediante acceso directo
b) En qué componente del sistema de E/S se llevan a cabo las siguientes tareas:
○ Traducción de bloques lógicos a bloques de dispositivo.
○ Escritura de mandatos al controlador del dispositivo.
○ Traducir los mandatos de E/S a mandatos del dispositivo.
○ Mantener un caché de bloques de E/S.
En el manejador de dispostivos
c) describa cómo el i-node direcciona un archivo.
Direcciona cada segmento del
archivo donde si se llena las primeras
10 direcciones se direcciona a una
tabla que contiene 10 direcciones
más, si aun falta informacion se
direcciona a una tabla de tablas que
contienen más direcciones y si
todavía faltan se direcciona a una
tabla de tablas de tablas donde cada
dato apunta a la dirección de
memoria de los segmentos del
archivo.
2.-
a) Cuál es la diferencia entre la semántica de co-utilización de UNIX y la de
versiones.
● Semántica UNIX (POSIX)
Las escrituras son inmediatamente visibles para todos los procesos con el archivo abierto.
Los procesos pueden compartir archivos. Si existe relación de parentesco pueden compartir
el puntero. La co-utilización afecta también a los metadatos.
● Semántica de versiones
Las actualizaciones se hacen sobre copias con nº versión.
Sólo son visibles cuando se consolidan versiones.
Sincronización explícita si se requiere actualización inmediata
3.-
a) Implemente un programa que copie un archivo en otro.
EXAMEN 2016
1. Explique
a. Que es la multiprogramación
Capacidad de un computador para ejecutar varios programas mediante el uso
compartido de recursos
g. Qué son las llamadas al SO, cual es la idea que sean POSIX
Mecanismo usado por una aplicación para solicitar un servicio al SO.
POSIX: estándar para portar las aplicaciones a código fuente
m. Que es un controlador
Interfaz entre el dispositivo y el bus de la CPU