Introducción de SODr. Alonso Ramírez Manzanares
10-Ago-2010
Partes de un sistema de computadoras
Como entender un SO
Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla de operación.
Como un administrador de recursos. Es un administrador de todos los componentes de un sistema complejo: salidas a impresora, acceso a memoria, temporizadores, discos, etc.
Un poco de historiaLa primera computadora es del matemático ingles Charles Babbage (1792-1871). También la primera programadora Ada Lovelace, se baso en ella.
En 1940 se construyeron maquina calculadoras de bulbos, como la ENIAC (50° C en operación).
1955-65, transistores y sistemas por lote
EL flujo de operación era mediante operadores (personas), por lo tanto se introdujeron los lotes de IBM.
Aquí estaba el antepasado del sistema operativo
impresión fuera de linea
1955-65, transistores y sistemas por lote
EL flujo de operación era mediante operadores (personas), por lo tanto se introdujeron los lotes de IBM.
Aquí estaba el antepasado del sistema operativo
impresión fuera de linea
1955-65, transistores y sistemas por lote
EL flujo de operación era mediante operadores (personas), por lo tanto se introdujeron los lotes de IBM.
Aquí estaba el antepasado del sistema operativo
impresión fuera de linea
Estructura de trabajo Fortran Monitor System
1965-1980, CI y multi-programación
Había 2 lineas de comp.: científicas y comerciales.
Se deseaba ejecutar los mismos programas en las 2.
IBM introdujo System/360. Con un sistema operativo enorme y lleno de errores.
Se introdujo la multi-programación.
Se uso spooling para cargar progs.
Concepto de tiempo compartido
Cada usuario tiene una terminal (puede depurar su programa con comodidad, usando poco el CPU, editando).
El CPU se asigna por turno a trabajos que requieren atención (ordenar un archivo de muchos registros).
Al tener protección por HW de datos se popularizo este esquema.
MULTICS, con una abstracción de compañía de luz, con servicio a cientos de usuarios, pero muy complejo.
Nace Unix
Bajo abstracción de un MULTICS mínimo (para un solo usuario) se evoluciona y se convierte en UNIX.
1980-hoy, cuarta generacion de computadoras personales
Con el surgimiento de Large Scale Integrated nace la computadora personal. Parecidas pero mas baratas!
Software para usuarios que no sabían nada de computación.
Unix y MS-DOS (muy primitivo pero luego mejoró).
Unix domina en estaciones de trabajo y servidores de red.
Minix
Unix se hace comercial en la version 7
Tanenbaum escribe desde cero un SO compatible con UNIX desde el punto de vista de usuario.
Diferencias Unix-MinixMinix se puede disectar
Unix(AT&T) eficiente, Minix Entendible (comentado)
Minix fue escrito desde cero y 10 años después -> es mas modular.
El minix que vamos a ver se basa en el standar POSIX (Portable Operating System Interface) “POS IX spe c i f i c a t i on i s c r i t i c a l t o s uppo r t s o f twa re i n t e r ope rab i l i t y . ” . E j emp l o : l l amada a l SO denom inada READ .
Minix necesita 30MB de disco duro.
Se parecen en que tienen varios comandos iguales.
Mas datos
Despues Linus Torvalds, hizo un clon de MINIX -> Linux
Conceptos de SO
Las llamadas al sistema se dividen en 2 categorías amplias
las de procesos
las de sistemas de archivos
ProcesosBásicamente un programa en ejecución
Tiene asociado un espacio de direcciones
Este tiene programa ejecutable, los datos del programa y su pila.
Tiene un conjunto de registros
Entre otros, contador de programa y apuntador de pila.
Pensar en procesos cuando usamos sistemas de tiempo compartido (Un proceso con sus apuntadores de archivos abiertos)
Procesos Algunos SO tienen una tabla de procesos que es un arreglo (o lista enlazada) donde se guarda la info. de cada proceso (los registros, entre otras cosas).
Entonces un proceso suspendido tiene su espacio de direcciones y su entrada en la tabla de procesos.
Entonces ahora podemos entender el concepto de creación y terminación de procesos.
El shell crea un proceso para compilar y este se autodestruye al terminar.
Jerarquía de Procesos
Donde tenemos procesos hijos y comunicación entre procesos.
ProcesosHay otras llamadas al sistema como solicitar y liberar memoria.
O cuestiones de petición de señales para comunicaciones como señales (pedir al sistema operativo que notifique que ha pasado un cierto tiempo). Parecido a interrupciones de hardware.
Ejemplo, si el hardware detecta acceso ilegal a una dirección, puede enviar una señal al proceso culpable.
Info adicional: los procesos tiene uid (user id).
Llamdas al sistema sobre Archivos
Se deben ocultar peculiaridades de los diversos dispositivos.
Se necesitan llamadas para crear, eliminar, leer y escribir archivos (o directorios, poner y quitar archivos de el).
Llamdas al sistema sobre Archivos
Se deben ocultar peculiaridades de los diversos dispositivos.
Se necesitan llamadas para crear, eliminar, leer y escribir archivos (o directorios, poner y quitar archivos de el).
Archivos y procesos
Por lo general, la profundidad de las jerarquia de archivos es mucho mas profunda que la de procesos. El tiempo también es corto (unos pocos segundos.)
Las estructuras de jerarquía de archivos son accesibles a muchos usuarios y la de procesos no.
Cada proceso tiene un directorio de trabajo actual, ahí se buscan los archivos (cambiarlo requiere una llamada al sistema).
Archivos
Los archivos y directorios se protegen con un código de protección binario de 9 bits (3 para usuario, 3 para grupo y 3 para todos los demás).
Un bit para acceso de lectura, otro para acceso de escritura y otro para acceso de ejecución. Ejemplo rwxr-x--x.
En caso de directorios, r significa permiso de búsqueda.
ArchivosCuando se abre un archivo, se verifican los permisos y el SO regresa un entero (descriptor de archivo) o un código de error.
Otro concepto importante es el sistema de archivos montado.
Archivos
Archivos especiales, con esto, dispositivos de entrada salida se pueden manejar como archivos.
Así la lectura/escritura de dispositivos usan las mínimas llamadas al sistema que con archivos.
Existen archivos especiales por bloques (como discos, donde podemos acceder directamente un bloque) y archivos especiales por caracteres (impresoras o modems, donde la entrada son flujos secuenciales).
Archivos y procesosTenemos los pipes o conductos, se pueden comunicar 2 procesos escribiendo y leyendo de un pipe como si fueran archivos de salida/entrada.
Mediante una llamada al sistema un proceso puede saber de donde lee o escribe.
El ShellEl shell no forma parte del SO pero es muy importante.
Utiliza intensivamente las llamadas al SO.
Es la interfaz primaria entre el SO y el usuario.
Tenemos el prompt $, ejemplos
$ date
$ date > file1
$ sort <archivo1 > archivo2
$ cat archivo1 arch2 arch3 | sort > /dev/lp (y si agregamos & al final)
Llamadas al Sistema
Se proporciona una biblioteca para hacer las llamadas desde C.
Ejemplo: READ
cuenta = read(file,buffer,nbytes)
Si hay un error cuenta es -1 y el identificador de error se guarda en la global errno.
Ejemplos de llamadas al sistema
Top Related