1
Introducción
Capítulo 1
1.1 ¿Qué es un sistema operativo?1.2 Evolución de los sistemas operativos1.3 Tipos de sistemas operativos1.4 Recordando aspectos hardware1.5 Conceptos de sistemas operativos1.6 Llamadas al sistema1.7 Estructura de los sistemas operativos
2
Introducción
• Un ordenador consiste de– hardware
– Programas del sistema
– Programas de aplicación
Ruta de datosALURegistrosCPU
Acceso aperiféricos
3
• Es una máquina extendida– Esconde los detalles del hardware
– Presenta una máquina virtual:
instrucciones del
lenguaje máquina
– Presenta abstracciones: fichero, proceso, I/O, memoria
Por ejemplo: lectura de un fichero (Minix)
¿Qué es un sistema operativo? (1)
+ llamadas al sistema
4
¿Qué es un sistema operativo? (2)
5
¿Qué es un sistema operativo? (3)/* puertos de E/S utilizados por la tarea del disquete */#define DOR 0x3F2 /* bits de control del motor */#define FDC_STATUS 0x3F4 /* registro de estado controlador */#define FDC_DATA 0x3F5 /* registro de datos del controlador */#define DMA_ADDR 0x004 /* puerto 16 bits inferiores dir DMA */#define DMA_TOP 0x081 /* puerto 4 bits superiores dir DMA */#define DMA_COUNT 0x005 /* puerto para cuenta de DMA */#define DMA_M2 0x00C /* puerto de estado de DMA */#define DMA_M1 0x00B /* puerto de estado de DMA */#define DMA_INIT 0x00A /* puerto de inicialización de DMA *//* bytes de comandos para el controlador de disquete */#define FDC_SEEK 0x0F /* comando de búsqueda a la unidad */#define FDC_READ 0xE6 /* comando de lectura a la unidad */#define FDC_WRITE 0xC5 /* comando de escritura a la unidad */#define FDC_RECALIBRATE 0x07 /* vete al cilindro 0 *//* códigos de error */#define ERR_SEEK -1 /* error en búsqueda */#define ERR_TRANSFER -2 /* error en transferencia */#define ERR_STATUS -3 /* error al obtener el estado */#define ERR_RECALIBRATE -4 /* error al recalibrar */#define ERR_WR_PROTECT -5 /* disquete protegido contra escritura */#define ERR_DRIVE -6 /* algo va mal con la unidad */
6
¿Qué es un sistema operativo? (4)
• Es un gestor de recursos– Memoria, procesador, discos, impresoras, …– Dispositivos no compartidos (impresora)– Protección de memoria– ¿Quién utiliza qué recurso?– Multiplexación de recursos en tiempo y espacio
7
Evolución sistemas operativos (1)
• Primera generación 1945 - 1955– tubos de vacío, tarjetas cableadas
• Segunda generación 1955 - 1965– transistores, sistemas batch
• Tercera generación 1965 – 1980– circuitos integrados y multiprogramación
• Cuarta generación 1980 – hoy– Ordenadores personales
8
Evolución sistemas operativos (2)
Primeros sistemas batch (2ª generación)– Lleva las tarjetas al 1401– Lee tarjetas a la cinta– Monta la cinta en el 7094 que realiza los cálculos– Monta la cinta en 1401 que imprime los resultados
9
Evolución sistemas operativos (3)
• Un trabajo FORTRAN – 2ª generación
10
Evolución sistemas operativos (4)
• 3ª generación:- Multiprogramación- Simultaneous Peripheral Operation On Line- Tiempo compartido: CTSS, MULTICS, UNIX
11
Evolución sistemas operativos (5)
• 4ª generación:- Alta escala de integración: microcomputadores- Control Program for Microcomputer [CP/M]- Disk Operating System - MicroSoft Disk Operating System [MSDOS]- Graphical User Interface - Windows 3.x, 95, 98, NT, 2000, Me, XP, Vista- Linux (Red Hat, Debian, Caldera, ...)- Sistemas operativos de Red- Sistemas operativos distribuidos
12
Tipos de sistemas operativos (1)• Sistemas operativos para mainframe
– Batch, transacciones, tiempo compartido– OS/390
• Sistemas operativos para servidores– Servicios de impresión, ficheros, web– Unix, Windows 2000, Linux
• Sistemas operativos multiprocesador– Unix, Encore
• Sistemas operativos para ordenadores personales• Sistemas operativos de tiempo real
– Hard real-time system, soft real-time system• Sistemas operativos empotrados (embarcados)
– PalmOS, Windows CE• Sistemas operativos para tarjetas inteligentes
13
Conceptos de sistemas operativos (1)
• Proceso
– Un programa en ejecución.
• Espacio de direccionamiento– Código (texto)
– Datos
– Pila
• Contexto (entrada de la tabla de procesos)– Registros de la CPU
– PC, SP, PSW (SR).
– Tabla de ficheros abiertos
– Mapa de memoria
– .......
14
Conceptos de sistemas operativos (2)
• Proceso– operaciones asociadas a un proceso
• Crear un proceso (relación padre-hijo)
• Terminar un proceso
• Comunicación y sincronización entre procesos
• Pedir/Liberar memoria
• Esperar a que termine uno de los hijos
• Cargar un fichero ejecutable
• Establecer/tratar/enviar señales
– Un proceso tiene varios identificadores
• uid, identificador del usuario propietario del proceso
• pid, identificador del propio proceso
• gid, identificador del grupo del propietario del proceso
15
Conceptos de sistemas operativos (3)• Interbloqueo entre procesos
Los interbloqueos se producen por la competencia entre
procesos por conseguir los recursos del sistema
16
Conceptos de sistemas operativos (4)• Gestión de memoria
– Asignación/Liberación de memoria
– Mecanismos de protección
– Gestión de huecos y compactación
– Gestión de la memoria virtual (paginación, segmentación)
• Gestión de dispositivos de E/S
– Teclados, monitores, impresoras, discos, ...
– Software de E/S independiente del dispositivo (protección,
buffering, esquema de nombrado, tamaño de bloque, ...)
– Software de entrada salida dependiente del dispositivo (drivers)
17
Conceptos de sistemas operativos (5)• Sistema de ficheros
18
Conceptos de sistemas operativos (6)
• Operaciones sobre ficheros– Crear, abrir, cerrar, leer, escribir, posicionar, borrar, ...
• Un directorio también es un fichero (árbol)
• Un fichero tiene un nombre– Absoluto, desde el directorio raíz (root directory)
/Faculty/Prof.Brown/Courses/CS101
– Relativo al directorio de trabajo (working directory) si wk = /Faculty/Prof.Brown,
Courses/CS101
Existe una llamada para establecer el directorio de trabajo
• Descriptor de fichero– Cuando se abre un fichero, el SO devuelve un identificador
19
Conceptos de sistemas operativos (7)
• Antes de montar – Los ficheros del disquete son inaccesibles
• Después de montar el floppy en b,– Los ficheros del disquete forman parte del sistema de ficheros
• Sistema de ficheros montado
20
Conceptos de sistemas operativos (8)• Tipos de ficheros
– Ficheros ordinarios (regulares)
– Ficheros especiales de dispositivo• Los dispositivos de E/S se ven como ficheros.
– Especial de bloques (por ejemplo, discos, /dev/hd01)
– Especial de caracteres (por ejemplo, impresora /dev/lpt)
– Tuberías (pipes)• Un pseudofichero
• Dos descriptores: uno para leer y otro para escribir
• Comunican procesos
21
Conceptos de sistemas operativos (9)
• Shell– Intérprete de comandos
– No es parte del sistema operativo
– sh, csh, ksh, bash
– Crea procesos nuevos para ejecutar comandos
– Gestiona las redirecciones (entrada/salida) y pipes$ cat file1 file2 file3 | sort > /dev/lp
– Ejecución en background$ cat file1 file2 file3 | sort > /dev/lp &
• Seguridad– Bits rwx de los ficheros (3 juegos: propietario, grupo, otros)
rwx rwx rwx
22
Llamadas al sistema (1)
Veremos llamadas al sistema de POSIX
Son invocaciones de rutinas de biblioteca
23
Llamadas al sistema (2)
Ejemplo: count = read (fd, &buffer, nbytes)
¿ ?
24
Llamadas al sistema (3)
25
Llamadas al sistema (4)• Esqueleto de una shell:nn
while (TRUE) { /* repeat forever */
type_prompt( ); /* display prompt */ read_command(command, parameters) /* input from terminal
*/ if (fork() != 0) { /* fork off child process */ /* Parent code */ waitpid (-1, &status, 0); /* wait for child to
exit */ } else { /* Child code */ execve (command, parameters, 0); /* execute command
*/ }}
26
Llamadas al sistema (5)
27
Llamadas al sistema (6)
28
Llamadas al sistema (7)
(a) Antes de que ast haga: link (“/usr/jim/memo”, “/usr/ast/note”)
(b) Los mismos directorios después de la llamada al sistema
link
29
Llamadas al sistema (8)
(a) Sistema de ficheros antes de mount (“/dev/fd0”, “/mnt/”, 0)
(b) Sistema de ficheros después de la llamada al sistema
30
Llamadas al sistema (9)
31
Llamadas al sistema (10)
Los tres segmentos de un proceso: texto, datos, pila
brk (newDirection)
(La sección 1.6.5 no entra)
32
Estructura de los S.O. (1)
Sistema monolítico
Llamadas al sistema
33
Estructura de los S.O. (2)
Capas del sistema operativo Minix
Sistemas por capas
34
Estructura de los S.O. (3)
Estructura del VM/370 con CMS
Máquinas virtuales
35
Estructura de los S.O. (4)
Exokernels
• El exokernel crea N máquinas virtuales y cada una tiene asignado un subconjunto de los recursos hardware de la máquina real.
• El exokernel (en modo kernel) valida que el acceso a los recursos sea correcto.
36
Estructura de los S.O. (5)
El modelo cliente-servidor
37
Estructura de los S.O. (6)
Modelo cliente-servidor en un sistema distribuido
Top Related