Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

50
Introducción 1 Horas 1 INTRODUCCIÓN 4 2 PROCESOS Y THREADS 10 3 GESTIÓN DE MEMORIA 8 4 ENTRADA / SALIDA sisOpe Temario Curso: 15/16

description

sisOpeTemarioCurso: 14/15. Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2 SISTEMA DE FICHEROS6. sisOpe1. IntroducciónCurso: 14/15. ¿Qué sistemas operativos nos suenan? ¿Qué es un sistema operativo? Evolución de los sistemas operativos - PowerPoint PPT Presentation

Transcript of Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Page 1: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 1

Horas

1 INTRODUCCIÓN

4

2 PROCESOS Y THREADS

10

3 GESTIÓN DE MEMORIA

8

4 ENTRADA / SALIDA

2

5 SISTEMA DE FICHEROS

6

sisOpe TemarioCurso: 15/16

Page 2: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 2

sisOpe 1. IntroducciónCurso: 15/16

• ¿Qué sistemas operativos nos suenan?

• ¿Qué es un sistema operativo?

• Evolución de los sistemas operativos

• Recordando aspectos hardware

• Tipos de sistemas operativos

• Conceptos de sistemas operativos (tipo UNIX)

• Llamadas al sistema

• Estructura de los sistemas operativos

Page 3: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Clientes_Desktop Agosto_2015

www.netmarketshare.com

Introducción 3

¿Qué sistemas operativos nos suenan?Linux, MacOS, Novell Netware, Solaris, UNIX, Windows, ...

17

92

Hace 3 años

www.w3schools.com/browsers

Page 4: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Servidores Web Activos: news.netcraft.com

Introducción 4

¿Qué sistemas operativos nos suenan?

38%

26%

Page 5: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Junio/2015

Introducción 5

¿Qué sistemas operativos nos suenan?www.top500.org ¿Qué S.O. usan?

Windows 1 => 0,2%

Linux

Page 6: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 6

¿Qué sistemas operativos nos suenan?

gs.statcounter.com

Android

iOS

Series 40

Page 7: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 7

¿Qué sistemas operativos nos suenan?

http://www.idc.com/prodserv/smartphone-os-market-share.jsp

Android

iOS

WindowsPhone

Page 8: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 8

¿Qué sistemas operativos nos suenan?

Todavía más liosowikipedia

Page 9: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 9

Baterias

Máquina virtual

Top Down

Administrador

de recursos

Bottom Up

• Escritorio

• Ventanas

• Carpetas

¿Qué es un sistema operativo?

4 núcleos

MemoriaRAM, L1, L2, L3

Page 10: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 10

¿Qué es un sistema operativo?

?

Page 11: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 11

GestiónBancaria

Reserva de Billetes

Juegos

Compiladores

Editores Montador

Lenguaje máquina

MicroArquitectura

Dispositivos físicos

S.O.

Hardware

SoftwareIntérprete decomandos

Llamadas

al sistema

S E R V I C I O S

Programas del sistema

Programas de aplicación

Acceso a periféricos

¿Qué es un sistema operativo? ¿Dónde se ubica?

Page 12: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 12

¿Qué es un sistema operativo? Aspectos esenciales

•Administrador de recursos

* registros de la pastilla 68230reg_cprH equ $a00027reg_cprM equ $a00029reg_cprL equ $a0002b

reg_tcr equ $a00021reg_tivr equ $a00023reg_tsr equ $a00035

espera move.w 4(sp),segmove.l 256,oldinttimermove.l #int68230,256move.b #$03,reg_cprHmove.b #$d0,reg_cprMmove.b #$90,reg_cprLmove.b #64,reg_tivrmove.b #$a1,reg_tcrmove.w #$2000,sr

espera1 tst.w segbne espera1clr.b reg_tcrmove.l oldinttimer,256rts

oldinttimer ds.l 1seg ds.w 1

int68230 subi.w #1,segclr.b reg_tsrmove.b #$a0,reg_tcrmove.b #$a1,reg_tcrrte

SinS.O.

¿Esperar 5 segundos?

sleep (5) Con S.O.

•Máquina virtual

CPU’s, MP, Discos, ...

¿Error?

Page 13: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 13

Evolución de los sistemas operativos (Leer libro)

• Ensambladores, montadores, cargadores

• Bibliotecas de funciones comunes

• Drivers

• Compiladores (Fortran, Cobol)

Soporte - automatización

• Procesamiento por lotes (Batch)

• Secuenciación automática de trabajos (monitor) JCL

• Proceso OFF-LINE

• SPOOL

• Multiprogramación y Tiempo compartido

Van apareciendo más y mejores herramientas

ProgramaciónCableada

Interacción

1945-1955Programación

Lenguaje Máquina

Distanciamiento

1955-1965MultiprogramaciónTiempo compartido

Interacción

1965-1980 1980..

Page 14: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 14

Monoprogramación: Ejecución secuencial de trabajos

9 28

E/S

T2

T3

T5

t

T2 T3

T5

S.O.

T2

T3

T5T3

T5

19

T3

T5

T6

T5

T6CPU ociosa 35,7%

Multiprogramación: Ejecución simultanea de trabajos

T2

T3

T5

t

S.O.

UCP

IT2

T2

T3

T5

T1, T2, T3, T4, T5, T6

IT3IT5

15 1718

Page 15: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 15

Multiprogramación: Ejecución simultanea de trabajos

Grandes ventajas: • Mejor aprovechamiento de CPU

• Soluciones más elegantes (si el problema es en esencia paralelo)

• Ejecución más rápida (si hay más de una CPU)

• Gestión de la CPU

Planificación alargo plazo

Planificación acorto plazo

CPU

IT2

T2

T3

T5

T1, T2, T3, T4, T5, T6

Algunos inconvenientes:

S.O.

• Gestión de la memoria

Protección

Page 16: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 16

Tiempo compartido: Sistema multiprogramado interactivo

Aprovechar la potencia de un servidor por varios usuarios a la vez

Orígenes MULTICS: Querían dar servicio a toda una ciudad

¿Cada vez menos importante?

Futuro ¿Grandes redes de PC’s y compartición de recursos?

Distinguir entre multiusuario y tiempo compartido

Red

Page 17: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 17

Multiprogramación: No ofrece sensación de interacción

T2

T3

T5

t15 1718

Un proceso puederetrasar mucho

al resto

18

T2

T3

T5

t

Planificación expulsora

Round Robin, ......

¿Seguro?

¡¡Sobrecarga de gestión!!

Page 18: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 18

Mainframe• Batch, transacciones, tiempo compartido• OS/390, UNIX y Linux

Servidores• Servicios de impresión, ficheros, web• UNIX, Windows 2000 server, Linux

Multiprocesador• UNIX, Encore (RSX-II)

Ordenadores personales

Tiempo real• Hard y soft: QNX www.qnx.com

Empotrados | Computadoras de bolsillo• Palm OS, Windows CE, Symbian OS

Tarjetas inteligentes

• SCOT, TB ¿Java Card Technology?

Tipos de sistemas operativos

Page 19: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 19

Tipos de sistemas operativos

7.000 millones vendidas en 2012

• Tarjetas inteligentes (MULTOS, TIBC, Java, …)

Page 20: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 20

Tipos de sistemas operativos

• Redes de sensores inalámbricos

Page 21: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 21

¿Qué es un proceso? Programa en ejecución

¿Qué lo caracteriza? Contexto del proceso

• Vector de estado Registros (PC, SP, .....) Memoria (Estática, Dinámica) Archivos en uso

• Código• Identificador

Evoluciona

Fijo

¿Número fijo de procesos o variable?

P1

P2 P3

P4

P5

P6

P7 ¿Quién es P1?

El Padre de todos (primer proceso del sistema). En sistemas tipo Unix, es el

proceso init.

Conceptos de sistemas operativos “UNIX”: Proceso

Page 22: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 22

• Operaciones

• Crear un proceso (relación padre-hijo)

• Terminar un proceso

• Comunicación y sincronización entre procesos

• Esperar a que termine uno de los hijos

• Establecer, tratar y enviar señales

• Un proceso tiene varios identificadores• pid: el propio proceso

• uid: el usuario que lanzó el proceso

• gid: el grupo al que pertenece el uid

¿No existe?

Conceptos …: Proceso: operaciones y algunos atributos

Page 23: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 23

Se producen por la competencia entre procesos por conseguir los recursos del sistema

Conceptos …: Interbloqueo entre procesos

Page 24: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 24

• Gestión de memoria

• Asignación y 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)

Conceptos …: Gestión de memoria y E/S

Page 25: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 25

notas.txt

$HOME

/

pwdcd

/Faculty/Prof.Brown/Courses/CS101/notas.txt

CS101/notas.txt

CrearAbrirLeer

EscribirPosicionar

CerrarBorrar

Conceptos …: Sistema de ficheros: estructura jerárquica

¿Dónde reside?

?

Page 26: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 26

Antes de montar • Los ficheros en floppy son inaccesibles

Sistema de ficheros montado

Conceptos …: Sistema de ficheros: ¿varios dispositivos?

¿Windows? Unidades A: C: D:

Después de montar el floppy en b,• Los ficheros en floppy son parte del sistema de ficheros

¿Varios S.F. en un mismo

dispositivo?

Particiones

Linux Windows

Page 27: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 27

• Ficheros ordinarios

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

• Pipes

• Un pseudofichero

• Dos descriptores: para leer y para escribir

• Comunican procesos

Conceptos …: Sistema de ficheros: tipos de ficheros

Page 28: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 28

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 (propietario, grupo, otros)

rwx r-- ---

Conceptos …: Intérprete de comandos

Page 29: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 29

Llamadas al sistema

GestiónBancaria

Reserva de Billetes

Juegos

Compiladores

Editores Montador

Lenguaje máquina

MicroArquitectura

Dispositivos físicos

S.O.

Hardware

SoftwareIntérprete decomandos

Llamadas

al sistema

S E R V I C I O S

sistemaoperativo

Pi

Pj

Pk

Interfaz del S.O.

¿POSIX

WIN32?

Page 30: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 30

Llamadas (genéricas) al sistema operativo

• Control de Procesos:Cargar y ejecutar programasCrear y terminar procesosLeer y poner atributosEsperar un tiempoEsperar un evento

• Gestión de Ficheros:Crear, BorrarAbrir, CerrarPosicionarseLeer, EscribirLeer y poner atributos

• Manejo de Dispositivos:Solicitar y liberar dispositivoPosicionarseLeer y escribirLeer y establecer atributosBloquear

• Información y mantenimiento:Leer y poner fecha y horaPedir estado del sistemaLeer y poner atributos de procesos, ficheros o dispositivos

Page 31: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 31

Llamadas (concretas) al sistema operativo (POSIX)

Algunas llamadas de Gestión de Procesos

Fork Permite a un proceso (padre) crear un proceso (hijo)

Getpid Permite a un proceso conocer su identificación PID

¿CÓMO INVOCARLAS?

• Llamada a bajo nivel Ensamblador (TRAP)

• Llamada a alto nivel:C PIIPOO Ada

package unix is

class definition unix;

man fork | getpid (Bibliotecas de llamadas al sistema)

¡No siempre!

Page 32: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

vectorInt 4B0

255Introducción 32

Recordatorio sobre interrupciones | excepciones

ExternasAsíncronas

InternasSíncronas

-------div r5,r0,r3-------trap #0

Con troladorInt

25

3132

47

..15

rte_teclado-------rte

rte_so_open-------rte

trap #15

T S I2I1I0 X N Z V CSR

64

Page 33: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 33

man getpid System Calls getpid(2)

NAME getpid, getpgrp, getppid, getpgid – get process, process group, and parent process IDs

SYNOPSIS #include <unistd.h> int getpid () int getpgrp () ..... DESCRIPTION The getpid() function returns the process ID of the calling process. The getpgrp() function returns the process group ID of the calling process. ..... SEE ALSO intro(3), exec(2), fork(2), getsid(2), setpgid(2), ....., signal(3C).

pid = waitpid(pid, &statloc, options)s = execve(name, argv, environp)exit (status)

Otras llamadas relativas a procesos

Page 34: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 34

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

¿ ?

Llamadas al sistema operativo (“C” vs ensamblador)

¿ ?

?

?

Page 35: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 35

Veamos un ejemplo de utilización de: fork y getpid

int fork () Crea un proceso hijo. Al padre le devuelve el PIDdel hijo creado y al hijo le devuelve un 0

v := fork();

if (v = = 0)

printf (“Soy el hijo”);

else

printf (“Soy el padre”);

Padre

1000

v = 2000 v = 0v := fork();

if (v = = 0)

printf (“Soy el hijo”);

else

printf (“Soy el padre”);

Hijo

2000

Page 36: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 36

Veamos un ejemplo completo (padreHijo):

#include <stdio.h>main () {

int v;v = fork();if (v = = -1) /* No se pudo crear el proceso */

printf (“Error al internar crear el proceso\n”);else if (v = = 0) /* Proceso hijo */

printf (“Hijo (%d)\n”, getpid());else /* Proceso padre */

printf (“Padre (%d) e Hijo (%d) \n”, getpid(), v);}

/* Ejemplo de salida del programa anterior */Padre (26081) e Hijo (26082)Hijo (26082)

Page 37: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 37

Mi primer ejecutor de comandos#include <stdio.h>main ( ) {

int pid, estado; char programa[20];

printf (“>”);scanf(“%s”, programa);while (programa[0] != ‘0’) {

if (fork( ) = = 0) {estado = execl (programa, 0);printf (“Error en %s => %i\n”,

programa, estado);exit (1);

} else {pid = wait (&estado);printf (“>”);scanf (“%s”, programa);

} } }

%ejecutor>padreHijo-------------->ls-------------->0%

pid = waitpid(pid, &statloc, options)s = execve(name, argv, environp)exit (status)

Page 38: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 38

Llamadas al sistema (Ficheros)

int open(nombre, modo) Descriptor de Fichero

read (df, ...), write (df, ...), lseek (df, ...)

fstat (df, ...), stat (nombre)

close (df)

Propietario, Protecciones, Tiempos,Tamaño, Tipo, etc.

Descripción

-rw-r----- 1 pcarazo 2062 14321 May 20 13:52 practica1.c

ls -l

¿ Sencillo ?

usuario

grupo

otros

Page 39: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 39

Llamadas al sistema (Ficheros: ejemplo de uso)

dforg = open (“/usr/pepe/uno.txt”, O_RDONLY, 0);

dfdst = open (“/tmp/copia.txt”,

O_WRONLY | O_CREAT | O_TRUNC, 0600);do {

leidos = read (dforg, &buf, BLOQUE);

write (dfdst, &buf, leidos);

} while (leidos == BLOQUE);

close (dforg); close (dfdst);

cp /usr/pepe/uno.txt /tmp/copia.txt

¿4096?

Page 40: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 40

Llamadas al sistema (Directorios)

??

link (“/usr/jim/memo”, “/usr/ast/note”)

70 -rw-r----- 2 pcarazo 2062 14321 May 20 13:52 note

ls -l unlink (“/usr/jim/memo”)

Page 41: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 41

Llamadas al sistema (Mount)

(a) Sistema de ficheros antes de mount (“/dev/fd0”, “/mnt/”, 0)

(b) Sistema de ficheros después de la llamada al sistema

Mount

/etc/mtab/etc/fstab

Page 42: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 42

Llamadas al sistema (Otras)

Page 43: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 43

Llamadas al sistema (brk)

¿Estructura de un proceso en memoria?

Código

Datos

Pila

Fijo

Variable

push, bsr, rts

¡ No interviene el S.O. !

brk (nuevaDireccion)

Page 44: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 44

Llamadas al sistema

• fork

• getpid

• wait

• exec

• exit

• open

• read

• write

• lseek

• fstat

• stat

• close

• mkdir

• rmdir

• link

• unlink

• mount

• umount

• chdir

• chmod

• kill

• time

• brk

• pipe

• dup

• sigaction

• alarm

• pause

Page 45: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 45

Estructura de los sistemas operativos

• Monolítico

P

S.O.

Usuario

Supervisor

rte

trap

?? ??

• Con cierta estructura

Kernel

Gestor de tiempos

Gestor deMsj.

Gestor de ficheros

Gestor deMem.

shell

• Modelo Cliente/Servidor

ProcesoCliente

ServidorTerminal

ServidorArchivos

ServidorMemoria

MicroKernel

Usuario

Supervisor

Page 46: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 46

Estructura interna de MINIX (por capas)

S.O.

Procesos de usuario

Init Pi Pj Pk

Gestor dememoria

Sistema deficheros

Servidor dered

Tarea dedisco

Tarea deltty

Tarea delreloj

Tarea delsistema

TareaEthernet

Gestión de Procesos

Nucleo

Usuario

Complejidad aproximada:Tareas reloj (5); disco (12); tty (25)Servidores memoria (47); ficheros (102)

Counting Source Line of Code (SLOC) www.dwheeler.com/sloc

Page 47: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 47

Estructura interna de MINIX 3

Complejidad aproximada:Microkernel 3.200 líneas en C y 800 asmDrivers disco (12); tty (30)Servidores ficheros (111)

Page 48: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 48

Volúmen de código del kernel de Linux

www.h-online.com

2.6.27

Page 49: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 49

Volúmen de código de distribuciones de S.O.

MSDOS1981

4.000 asm

MINIX 1 1987 11.800C + 800asmMINIX 2 1997 62.200MINIX 3 2004 4.000 + ¿28.864? + …

wikipedia

Año2000

2002

2005

2010

2011

2009

2011

2004

2003

2009

2010

2011

2012

2015

Page 50: Horas INTRODUCCIÓN 4 PROCESOS Y THREADS10 GESTIÓN DE MEMORIA8 ENTRADA / SALIDA2

Introducción 50

Estructura del VM/370 con CMS

Estructura de los sistemas operativos (Máquinas virtuales)

¿Exokernel?