Está en la página 1de 10

Examen So guia :v

Alguien ponga la diferencia (con palabras técnicas) entre multitasking y


multiprogramación.
Multitasking se refiere a la ejecución concurrente de procesos de
manera tan rápida que parece que se hacen varias cosas a la vez;
multiprogramación es, creo, siempre tener en una lista un proceso para
ejecutar, de manera que el procesador no esté perdiendo el tiempo
nunca.

1.- ¿Cuáles son los 3 principales propósitos del Sistema Operativo?

● Proporcionar en un entorno en el que el usuario pueda ejecutar programas de


un manera práctica y eficiente.
● Asignar los recursos separados de la computadora según sea necesario para
resolver el problema. El proceso de asignación debe ser lo más justo y
eficiente posible.
● Como programa de control cumple dos funciones principales: (1) Supervisión
de la ejecución de programas de usuario para evitar errores y el uso incorrecto
de la computadora. (2) Gestión de la operación y control de dispositivos de
E/S.
2.- The issue of resource utilization shows up in different forms in different types of operating
systems. List what resources must be managed carefully in the following settings:
a) Mainframe or minicomputer systems
Memoria y recursos del CPU, almacenamiento
b) Workstations connected to server
Memoria y recursos del CPU.
c) Mobile computers
Consumo de energía, recursos de memoria.
3.- Give an example of a situation in which ordinary pipes are more suitable than named
pipes and a example of a situation in which named pipes are more suitable than ordinary
pipes.

La comunicación simple funciona bien con tuberías ordinarias.


Por ejemplo: Supongamos que tenemos un proceso que cuenta los caracteres en un
archivo. Se puede usar un tubo ordinario donde el productor escribe el archivo en la
tubería y el consumidor lee los archivos y cuenta la cantidad de caracteres en el
archivo.
A continuación, para un ejemplo donde los conductos con nombre son más
adecuados, considere la situación en la que varios procesos pueden escribir
mensajes en un registro. Cuando los procesos desean escribir un mensaje en el
registro, lo escribe en el tubo con nombre. Un servidor lee los mensajes de la tubería
con nombre y los escribe en el archivo de registro.

La pipas sin nombre se utilizan para comunicar procesos internos dentro de un


mismo programa y las pipas con nombre se utilizan para comunicar procesos
separados.

3.4 Explain the role of the init process on UNIX and Linux systems in regards to process
termination.
Cuando finaliza un proceso, se mueve brevemente al estado zombie y permanece en
ese estado hasta que el padre invoca una llamada a wait (). Cuando esto ocurre, tanto
la identificación del proceso como la entrada en la tabla de proceso se liberan. Sin
embargo, si un padre no invoca a wait (), el proceso hijo sigue siendo un zombie,
siempre y cuando el padre permanezca con vida. Una vez que finaliza el proceso
principal, el proceso init se convierte en el nuevo padre del zombi. Periódicamente, el
proceso init llama a wait (), que finalmente libera el pid y la entrada en la tabla de
proceso del proceso zombie.

What is the purpose of system calls?


Las llamadas al sistema permiten que los procesos a nivel de usuario soliciten
servicios del sistema operativo.
Las llamadas al sistema proveen una interface para lo servicios del sistema operativo.

What is a thread?
Un hilo es un flujo de ejecución dentro de un proceso.
Un hilo comparte un espacio de direcciones virtuales con otros
hilos del mismo proceso.
Es menos costoso (en términos de tiempo y espacio) crear hilos de lo que es crear
procesos secundarios.
What are two differences between use-level threads and kernel-level threads? Under what
circumstances is one type better than the other?

(1) El kernel desconoce los hilos de nivel de usuario mientras que el kernel es
consciente de los hilos del kernel.
(2) Los hilos del kernel no necesitan asociarse con un proceso mientras que cada
hilo de usuario pertenece a un proceso, los hilos de kernel son más difíciles de
mantener que los hilos de usuario ya que deben de estar representados con
una estructura de datos del kernel

Kernel: ​El kernel es responsable de mantener todas las abstracciones importantes del
sistema operativo, incluidas cosas como la memoria virtual y los procesos.

2.- Por que un SO no tiene una única definición

En general, no disponemos de ninguna definición de sistema operativo que sea


completamente adecuada. Los S.O existen porque ofrecen una forma razonable de resolver
el problema de crear un sistema informático utilizable.
Script Fibonacci
TABLA DE MULTIPLICAR
PIPAS
ls | sort -r | cut -c 3-5
​ stdio.h>
#include​ <
#include​ <​ stdlib.h>
#include​ < ​ unistd.h>

int​ main​(​int​ argc​,​ ​char​ ​**​argv​){

​const​ ​int​ READ ​=​ ​0​;


​const​ ​int​ WRITE ​=​ ​1​;
​int​ fdLsSort​[​2​];
​int​ fdSortCut​[​2​];

pipe​(​fdSortCut​);

​switch​(​fork​()){

​case​ ​-​1​:
fprintf​(​stderr​,​ ​"No se pudo crear la pipa.\n"​);
​exit​(​EXIT_FAILURE​);
​break
​case​ ​0​:
pipe​(​fdLsSort​);
​switch​(​fork​()){

​case​ ​-​1​:
fprintf​(​stderr​,​ ​"No se pudo crear la pipa.\n"​);
​exit​(​EXIT_FAILURE​);
​break​;
​case​ ​0​:
close​(​STDOUT_FILENO​);
dup​(​fdLsSort​[​WRITE​]);
close​(​fdLsSort​[​READ​]);

execlp​(​"ls"​,​ ​"ls"​,​ NULL​);


​break​;

​default​:
close​(​STDIN_FILENO​);
dup​(​fdLsSort​[​READ​]);
close​(​fdLsSort​[​WRITE​]);

close​(​STDOUT_FILENO​);
dup​(​fdSortCut​[​WRITE​]);
close​(​fdSortCut​[​READ​]);

execlp​(​"sort"​,​ ​"sort"​,​ ​"-r"​,​ NULL​);


​break​;

​}
​ reak​;
b
​default​:

close​(​STDIN_FILENO​);
dup​(​fdSortCut​[​READ​]);
close​(​fdSortCut​[​WRITE​]);

execlp​(​"cut"​,​ ​"cut"​,​ ​"-c"​,​ ​"3-5"​,​ NULL​);


​break​;
​}
​ xit​(​EXIT_FAILURE​);
e

También podría gustarte