Intro - Sistemas Operativos

Post on 17-Jan-2016

220 views 0 download

description

Intro - Sistemas Operativos

Transcript of 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

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