Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un...

30
Introducción de SO Dr. Alonso Ramírez Manzanares 10-Ago-2010

Transcript of Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un...

Page 1: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

Introducción de SODr. Alonso Ramírez Manzanares

10-Ago-2010

Page 2: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

Partes de un sistema de computadoras

Page 3: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

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.

Page 4: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

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).

Page 5: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

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

Page 6: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

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

Page 7: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

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

Page 8: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

Estructura de trabajo Fortran Monitor System

Page 9: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

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.

Page 10: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

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.

Page 11: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

Nace Unix

Bajo abstracción de un MULTICS mínimo (para un solo usuario) se evoluciona y se convierte en UNIX.

Page 12: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

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.

Page 13: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

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.

Page 14: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

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.

Page 15: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

Mas datos

Despues Linus Torvalds, hizo un clon de MINIX -> Linux

Page 16: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

Conceptos de SO

Las llamadas al sistema se dividen en 2 categorías amplias

las de procesos

las de sistemas de archivos

Page 17: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

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)

Page 18: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

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.

Page 19: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

Jerarquía de Procesos

Donde tenemos procesos hijos y comunicación entre procesos.

Page 20: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

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).

Page 21: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

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).

Page 22: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

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).

Page 23: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

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).

Page 24: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

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.

Page 25: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

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.

Page 26: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

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).

Page 27: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

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.

Page 28: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

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)

Page 29: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

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.

Page 30: Introducción de SOalram/SO/clase01.pdf · Como entender un SO Como una maquina extendida. Un programa que oculta la complejidad de los dispositivos y presenta una vista mas sencilla

Ejemplos de llamadas al sistema