37
1 Introducción Capítulo 1 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 Estructura de los sistemas operativos

Intro - Sistemas Operativos

Embed Size (px)

DESCRIPTION

Intro - Sistemas Operativos

Citation preview

Page 1: Intro - Sistemas Operativos

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

Page 2: Intro - Sistemas Operativos

2

Introducción

• Un ordenador consiste de– hardware

– Programas del sistema

– Programas de aplicación

Ruta de datosALURegistrosCPU

Acceso aperiféricos

Page 3: Intro - Sistemas Operativos

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

Page 4: Intro - Sistemas Operativos

4

¿Qué es un sistema operativo? (2)

Page 5: Intro - Sistemas Operativos

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 */

Page 6: Intro - Sistemas Operativos

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

Page 7: Intro - Sistemas Operativos

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

Page 8: Intro - Sistemas Operativos

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

Page 9: Intro - Sistemas Operativos

9

Evolución sistemas operativos (3)

• Un trabajo FORTRAN – 2ª generación

Page 10: Intro - Sistemas Operativos

10

Evolución sistemas operativos (4)

• 3ª generación:- Multiprogramación- Simultaneous Peripheral Operation On Line- Tiempo compartido: CTSS, MULTICS, UNIX

Page 11: Intro - Sistemas Operativos

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

Page 12: Intro - Sistemas Operativos

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

Page 13: Intro - Sistemas Operativos

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

– .......

Page 14: Intro - Sistemas Operativos

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

Page 15: Intro - Sistemas Operativos

15

Conceptos de sistemas operativos (3)• Interbloqueo entre procesos

Los interbloqueos se producen por la competencia entre

procesos por conseguir los recursos del sistema

Page 16: Intro - Sistemas Operativos

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)

Page 17: Intro - Sistemas Operativos

17

Conceptos de sistemas operativos (5)• Sistema de ficheros

Page 18: Intro - Sistemas Operativos

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

Page 19: Intro - Sistemas Operativos

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

Page 20: Intro - Sistemas Operativos

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

Page 21: Intro - Sistemas Operativos

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

Page 22: Intro - Sistemas Operativos

22

Llamadas al sistema (1)

Veremos llamadas al sistema de POSIX

Son invocaciones de rutinas de biblioteca

Page 23: Intro - Sistemas Operativos

23

Llamadas al sistema (2)

Ejemplo: count = read (fd, &buffer, nbytes)

¿ ?

Page 24: Intro - Sistemas Operativos

24

Llamadas al sistema (3)

Page 25: Intro - Sistemas Operativos

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

*/ }}

Page 26: Intro - Sistemas Operativos

26

Llamadas al sistema (5)

Page 27: Intro - Sistemas Operativos

27

Llamadas al sistema (6)

Page 28: Intro - Sistemas Operativos

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

Page 29: Intro - Sistemas Operativos

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

Page 30: Intro - Sistemas Operativos

30

Llamadas al sistema (9)

Page 31: Intro - Sistemas Operativos

31

Llamadas al sistema (10)

Los tres segmentos de un proceso: texto, datos, pila

brk (newDirection)

(La sección 1.6.5 no entra)

Page 32: Intro - Sistemas Operativos

32

Estructura de los S.O. (1)

Sistema monolítico

Llamadas al sistema

Page 33: Intro - Sistemas Operativos

33

Estructura de los S.O. (2)

Capas del sistema operativo Minix

Sistemas por capas

Page 34: Intro - Sistemas Operativos

34

Estructura de los S.O. (3)

Estructura del VM/370 con CMS

Máquinas virtuales

Page 35: Intro - Sistemas Operativos

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.

Page 36: Intro - Sistemas Operativos

36

Estructura de los S.O. (5)

El modelo cliente-servidor

Page 37: Intro - Sistemas Operativos

37

Estructura de los S.O. (6)

Modelo cliente-servidor en un sistema distribuido