Logo Studenta

So-Gabriel

¡Este material tiene más páginas!

Vista previa del material en texto

CPU 
 Von Neumann 
 
 
ALU 
Registros 
Unidad de 
control 
Memoria 
Entradas y 
salidas 
Contador del 
programa 
 El procesador lee la dirección indicada por el 
contador de programa en la memoria. 
 Se copia la instrucción al registro de instrucción. 
 Si es necesario se leen mas direcciones de memoria 
para completar la instrucción. Se copian los 
operandos a otros registros. 
 Se realizan los micro pasos para completar la 
instrucción. 
 Se lee la siguiente posición de memoria. 
 
 
 Ventajas 
◦ Si bien existen otras arquitecturas, el uso de la arquitectura 
Von Neumann / Harvard es tan extenso que sería mucho 
trabajo rediseñar toda la computación sin un incremento de 
performance significativo. 
 Desventajas: 
◦ No se pueden ejecutar varias tareas simultáneamente. 
◦ El acceso al hardware esta codificado dentro del programa. 
Si se modifica el hardware hay que modificar el programa. 
◦ La interfaz con el usuario también depende del programa. 
Cada programa es distinto y el usuario debe aprender sus 
particularidades 
 
 
 Es un programa que gestiona los recursos de 
hardware y provee de servicios a los programas de 
aplicación. 
 Los programas pueden compartir el 
hardware sin quedar bloqueados. 
 
 Los programadores pueden diseñar 
programas para hardware variado. 
 
 
 Algunos sistemas operativos 
 MS-DOS 
 Windows 
 
 Linux 
 BSD 
 Mac OS X 
 
 Android 
 iOs 
 Windows phone 
 Diferencias entre windows y linux 
Diferencia Windows Linux 
Estructura de directorios Estructura con unidades y 
directorios especiales 
Estructura unificada con 
montaje de particiones 
Registro Registro de windows (regedit) Configuración en archivos 
Instalación de programas Lo mas común es bajarlo 
desde el fabricante 
Lo mas común es usar el 
gestor de paquetes 
Interfaz grafica Es parte del sistema operativo, 
no se puede desactivar 
Es un programa mas, se puede 
intercambiar 
Interfaz mas usada Interfaz grafica, siempre es la 
misma 
Línea de comandos, siempre 
es la misma 
Drivers Siempre actualizados, es el 
sistema operativo por defecto 
Algunos drivers no funcionan 
bien. 
Código fuente No liberado Libre 
 Una distribución de un sistema operativo, es 
el núcleo mínimo del SO, mas otros paquetes 
de software para satisfacer las necesidades 
de un determinado conjunto de usuarios. 
 En general se aplica a Linux debido a la gran 
variedad de componentes de software libre 
que dan lugar a innumerables 
combinaciones. 
 Sin embargo hay distribuciones de windows, 
como Windows UE. 
 Una distribución «Live» es una distribución que puede ejecutarse 
desde un medio extraíble sin necesidad de ser instalada. 
 Richard Stallman crea GNU en 1983. 
◦ Es un sistema operativo completamente libre. 
◦ «Volver al espíritu de cooperación que prevaleció en 
los tiempos iniciales de la comunidad de usuarios 
de computadoras» 
 Se hizo compatible con UNIX porque es una 
arquitectura que resulto muy estable 
◦ Hecho de pequeñas piezas individuales que realizan 
tareas simples 
 Licencias GPL 
 Algunos de los conceptos fundamentales de todos 
los sistemas operativos son: 
◦ Procesos 
◦ Manejo de bloqueos 
◦ Administración de memoria 
◦ Administración de dispositivos E/S 
◦ Archivos 
◦ Seguridad 
◦ Shell 
◦ Llamadas al sistema 
 El scheduler divide el tiempo de uso del procesador en pequeñas 
porciones. 
 Se asigna un periodo de tiempo a cada slice de tiempo. 
 Cuando se cambia de proceso se almacena el estado del procesador 
en una estructura de datos llamada TSS (registro de estado de tarea) 
 
 
 Estados de un proceso de linux 
 Ver comandos ps, pstree, top 
 
 
 Funcion fork() y wait() 
 
 
#include <stdio.h> 
#include <unistd.h> 
#include <sys/types.h> 
#include <sys/wait.h> 
 
int main() { 
 int pid; 
 int i; 
 int estado; 
 
 pid = fork(); 
 if (!pid) { 
 i = 2; 
 printf("Soy el hijo - %d\n",i); 
 } 
 else { 
 i = 3; 
 printf("Soy el padre - %d\n",i); 
 wait(&estado); 
 printf("Mi proceso hijo ya ha terminado.\n"); 
 } 
 return 0; 
} 
 
 Threads 
 
 
#include<stdio.h> 
#include<string.h> 
#include<pthread.h> 
#include<stdlib.h> 
#include<unistd.h> 
 
pthread_t tid[2]; 
unsigned char buffer [255]="Test"; 
 
void* escribir(void *arg) { 
 while (1) 
 scanf("%s",buffer); 
 return NULL; 
} 
 
int main(void) { 
 int i = 0; 
 int err; 
 
 err = pthread_create(&(tid[i]), NULL, &escribir, NULL); 
 if (err != 0) 
 printf("\nno se puede crear el thread", strerror(err)); 
 
 while(1) { 
 sleep (1); 
 puts(buffer); 
 } 
 
 return 0; 
} 
 
 Los sistemas operativos proveen distintas herramientas para comunicar procesos 
 
 Señales 
◦ Permiten la activación de una determinada función del programa cuando este recibe la señal. 
◦ Es la comunicación que usa el entorno grafico para cerrar ventanas. 
 Pipe’s y Fifo’s 
◦ Permiten enviar información entre procesos como si se tratara de un archivo. 
◦ Son unidireccionales. Un proceso escribe y el otro lee. 
◦ En el caso de las Fifo’s incluso se puede redirigir los datos con la línea de comandos. 
 File Locking 
◦ Permite bloquear un archivo mientras lo esta utilizando un proceso 
 Colas de mensajes 
◦ Igual que las Pipe’s y Fifo’s pero permite clasificar los mensajes 
 Semáforos 
◦ Permite bloquear la ejecución de un proceso desde otro proceso. 
 Memoria compartida 
◦ Permite compartir un buffer entre dos procesos 
 Archivos mapeados en memoria 
◦ Se puede acceder a un archivo como si fuera un buffer 
 Unix Sockets 
◦ Igual que las Pipe’s y Fifo’s pero bidireccionales 
 
 
 
 
 Estructura de directorios 
◦ En UNIX no hay unidades C, D, etc. Todo está ordenado en un solo 
árbol de directorios que comienza con /. 
◦ Esta configuración se detalla en el FHS (Filesystem Hierarchy 
Standard) 
 /bin /sbin y /usr/bin tienen programas 
ejectutables 
 
/etc/ tiene la configuración del sistema 
 
/home: tiene los directorios de cada usuario 
 
/lib /usr/lib: Librerías de funciones para los 
programas 
 
/usr /opt: Datos y configuración de los 
programas 
/dev: directorio con los archivos que representan cada 
dispositivo 
 
/boot: Archivos de inicio (kernel) 
 
/media /mnt: Donde se montan los dispositivos 
externos u otras particiones del disco 
 
/proc: Directorio donde cada archivo representa un 
proceso 
 
/sys y /run: Información sobre el sistema 
 
/var: Archivos variables de los programas. Por ejemplo, 
logs 
 Estructura de directorios 
◦ En UNIX no hay unidades C, D, etc. Todo está ordenado en un solo 
árbol de directorios que comienza con /. 
◦ Esta configuración se detalla en el FHS (Filesystem Hierarchy 
Standard) 
 /bin /sbin y /usr/bin tienen programas 
ejectutables 
 
/etc/ tiene la configuración del sistema 
 
/home: tiene los directorios de cada usuario 
 
/lib /usr/lib: Librerías de funciones para los 
programas 
 
/usr /opt: Datos y configuración de los 
programas 
/dev: directorio con los archivos que representan cada 
dispositivo 
 
/boot: Archivos de inicio (kernel) 
 
/media /mnt: Donde se montan los dispositivos 
externos u otras particiones del disco 
 
/proc: Directorio donde cada archivo representa un 
proceso 
 
/sys y /run: Información sobre el sistema 
 
/var: Archivos variables de los programas. Por ejemplo, 
logs 
 Los permisos para acceder están determinados por: 
◦ El usuario y el grupo de quien lo accede 
◦ El usuario y el grupo de lo que se va a acceder 
◦ La mascara de permisos de lo que se va a acceder 
 Mascara de permisos 
 
 
 
 
 
 Los grupos del sistema se encuentran definidos en /etc/grupo y se modifican 
con el comando groupadd, groupmod y groupdel. 
 Los usuarios del sistema se encuentran definidos en /etc/passwd y se 
modifican con el comando useradd,usermod y userdel. 
 La mascara de permisos y pertenencia de un archivo se modifican con chown 
y chmod 
 
 Las llamadas al sistema que provee el kernel son de muy bajo nivel y hacen 
que programar aplicaciones complejas sea difícil. 
 Hay librerías que toman tareas comunes y las agrupan permitiendo que: 
◦ Los programadores no reinventen las funciones una y otra vez 
◦ El tamaño de los programas sea menor. El archivo que implementa la función de 
varios programas es único. 
◦ Actualizar la librería corrige bugs en varios programas 
 Otras librerías proveen funciones que no están disponibles en el 
sistema utilizando las funciones del kernel.

Continuar navegando