Download Sistema monolítico Llamadas al sistema

Document related concepts
Transcript
Capítulo 1
Introducción
1.1 ¿Qué es un sistema operativo?
1.2 Evolución de los sistemas operativos
1.3 Tipos de sistemas operativos
1.4 Recordando aspectos hardware
1.5 Conceptos de sistemas operativos
1.6 Llamadas al sistema
1.7 Estructuras de los sistemas operativos
1
Introducción
Acceso a periféricos
Ruta de datos
ALU
Registros
CPU
• Un ordenador consiste de
– hardware
– Programas del sistema
– Programas de aplicación
2
¿Qué es un sistema operativo? (1)
• Es una máquina extendida
– Esconde los detalles del hardware
– Presenta una máquina virtual:
instrucciones del
+ llamadas al sistema
lenguaje máquina
– Presenta abstracciones: fichero, proceso, I/O, memoria
Por ejemplo: lectura de un fichero (Minix)
3
¿Qué es un sistema operativo? (2)
4
¿Qué es un sistema operativo? (3)
2427/* puertos de E/S utilizados por la tarea de floppy disk */
#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 */
2466 /* bytes de comandos para el controlador de floppy */
#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 */
2490 /* 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 */
5
¿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
6
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
7
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 el cálculo
Monta la cinta en 1401 que imprime los resultados
8
Evolución sistemas operativos (3)
• Un trabajo FORTRAN – 2ª generación
9
Evolución sistemas operativos (4)
• 3ª generación:
- Multiprogramación
- Simultaneous Peripheral Operation On Line
- Tiempo compartido: CTSS, MULTICS, UNIX
10
Evolución sistemas operativos (5)
• 4ª generación:
- Alta escala de integración: microcomputadores
- Control Program for Microcomputer
- Disk Operating System
- MicroSoft Disk Operating System
- 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
• 1.2.5 (leerlo)
11
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 tarjeta inteligentes
12
Conceptos de sistemas operativos (1)
• Proceso
– Un programa en ejecución.
• Espacio de direccionamiento
– Código (texto)
– Datos
– Pila
• Contexto (entrada a la tabla de procesos)
–
–
–
–
–
Registros de la CPU
PC, SP, PSW (SR).
Tabla de ficheros abiertos
Mapa de memoria
.......
13
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 una imagen de texto
• Establecer/tratar/enviar señales
– Un proceso tiene varios identificadores
• uid, identificador del propietario del proceso
• pid, identificador del propio proceso
• gid, identificador del grupo al que pertenece el proceso
14
Conceptos de sistemas operativos (3)
• Interbloqueo entre procesos
Los interbloqueos se producen por la competencia entre procesos por
conseguir los recursos del sistema
15
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)
16
Conceptos de sistemas operativos (5)
• Sistema de ficheros
17
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
18
Conceptos de sistemas operativos (7)
• Sistema de ficheros montado
• 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
19
Conceptos de sistemas operativos (8)
• Tipos de ficheros
– Ficheros ordinarios (regulares)
– Ficheros especiales
• 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: para leer y para escribir
• Comunican procesos
20
Conceptos de sistemas operativos (9)
• Shell
–
–
–
–
–
Intérprete de comandos
No es parte del sistema operativo
sh, csh, ksh, bash
Crea procesos 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
• 1.5.8 (leerlo)
21
Llamadas al sistema (1)
Veremos llamadas en POSIX
Son invocaciones de rutinas de biblioteca
22
Llamadas al sistema (2)
¿?
Ejemplo:
count = read (fd, &buffer, nbytes)
23
Llamadas al sistema (3)
24
Llamadas al sistema (4)
• Esqueleto de una shell:
while (TRUE) {
type_prompt( );
read_command(command, parameters)
/* repeat forever */
/* display prompt */
/* input from terminal */
if (fork() != 0) {
/* Parent code */
waitpid (-1, &status, 0);
} else {
/* Child code */
execve (command, parameters, 0);
}
}
/* fork off child process */
/* wait for child to exit */
/* execute command */
25
Llamadas al sistema (5)
26
Llamadas al sistema (6)
27
Llamadas al sistema (7)
Link
(a) Antes de que ast haga: link (“/usr/jim/memo”, “/usr/ast/note”)
(b) Los mismos directorios después de la llamada al sistema
28
Llamadas al sistema (8)
Mount
(a) Sistema de ficheros antes de mount (“/dev/fd0”, “/mnt/”, 0)
(b) Sistema de ficheros después de la llamada al sistema
29
Llamadas al sistema (9)
30
Llamadas al sistema (10)
brk (newDirection)
Los tres segmentos de un proceso: texto, datos, pila
(La sección 1.6.5 no entra para el examen)
31
Estructura de los S.O. (1)
Sistema monolítico
Llamadas al sistema
32
Estructura de los S.O. (2)
Sistemas por capas
Procesos de
usuario
Procesos
servidores
Tareas I/O
init
Proceso de
usuario
Proceso de
usuario
Gestor de memoria
Tarea de
disco
Tarea de
tty
Tarea de
reloj
Proceso de
usuario
.......
N4
Gestor de ficheros
N3
Tarea del
sistema
N2
Gestión de procesos
.......
N1
kernel
Capas del sistema operativo Minix
33
Estructura de los S.O. (3)
Máquinas virtuales
Estructura del VM/370 con CMS
34
Estructura de los S.O. (4)
Exokernels
• El exokernel crea N máquinas virtuales y cada una tiene asignado un
subset de los recursos hardware de la máquina real.
• El exokernel (en modo kernel) valida que el acceso a los recursos sea
correcto.
35
Estructura de los S.O. (5)
El modelo cliente-servidor
36
Estructura de los S.O. (6)
Modelo cliente-servidor en un sistema distribuido
(La sección 1.8 no entra para el examen ni las últimas secciones del
resto de los temas que sean “investigación en …”)
37