Está en la página 1de 55

sisOpe Temario Curso: 17/18

Horas

1 INTRODUCCIN 5

2 PROCESOS Y THREADS 10

3 GESTIN DE MEMORIA 8

4 ENTRADA / SALIDA 1

5 SISTEMA DE FICHEROS 5

Introduccin 1
sisOpe 1. Introduccin Curso: 17/18

Qu sistemas operativos nos suenan?

Qu es un sistema operativo?

Evolucin 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

Introduccin 2
Qu sistemas operativos nos suenan?
Linux, MacOS, Novell Netware, Solaris, UNIX, Windows, ...
www.netmarketshare.com
Clientes_Desktop Julio_2017

Introduccin www.w3schools.com/browsers 3
Qu sistemas operativos nos suenan?
Servidores Web Activos: news.netcraft.com

45%

21%

8%

Introduccin 4
Qu sistemas operativos nos suenan?
Servidores Web Activos: news.netcraft.com

45%

21%

8%

w3techs.com/technologies/cross/web_server/operating_system
Introduccin 5
Qu sistemas operativos nos suenan?
www.top500.org Qu S.O. usan?
Windows 0
Junio/2017

Linux

Introduccin 6
Qu sistemas operativos nos suenan?

Android

iOS

Series 40

gs.statcounter.com
Introduccin 7
Qu sistemas operativos nos suenan?
www.statista.com/statistics/266136/global-market-share-held-by-smartphone-operating-systems

Android
86,1%

iOS 13,7%

Introduccin 8
Qu sistemas operativos nos suenan?
Todava ms lioso
wikipedia

Introduccin 9
Qu es un sistema operativo?
Escritorio
Mquina virtual Ventanas
Carpetas
Top Down

Bottom Up 4 ncleos Baterias

Administrador
de recursos

Memoria
RAM, L1, L2, L3
Introduccin 10
Qu es un sistema operativo?

Introduccin 11
Qu es un sistema operativo? Dnde se ubica?
Programas Gestin Reserva de Juegos
de aplicacin Bancaria Billetes
Programas Compila Editores Montador % sleep 10; bell
del sistema dores
Llamadas Intrprete de Software
comandos
al sistema S.O.
seg = 0; SERVICIOS Acceso a
repeat perifricos
alarm(1); Lenguaje mquina
pause( ); MicroArquitectura Hardware
seg++;
Dispositivos fsicos
printf (seg);
until (seg == 60);
Introduccin 12
Qu es un sistema operativo? Aspectos esenciales
Administrador de recursos CPUs, MP, Discos, ...
Mquina virtual Esperar 5 segundos?
* registros de la pastilla 68230 espera1 tst.w seg
reg_cprH equ $a00027 bne espera1
reg_cprM equ $a00029 Sin clr.b reg_tcr
reg_cprL equ $a0002b move.l oldinttimer,256
S.O. rts
reg_tcr equ $a00021
reg_tivr equ $a00023 oldinttimer ds.l 1
reg_tsr equ $a00035 seg ds.w 1
Error?
espera move.w 4(sp),seg int68230 subi.w #1,seg
move.l 256,oldinttimer clr.b reg_tsr
move.l #int68230,256 move.b #$a0,reg_tcr
move.b #$03,reg_cprH move.b #$a1,reg_tcr
move.b #$d0,reg_cprM rte
move.b #$90,reg_cprL
move.b #64,reg_tivr
move.b #$a1,reg_tcr
move.w #$2000,sr sleep (5) Con S.O.
Introduccin 13
Evolucin de los sistemas operativos (Leer libro)
1945-1955 1955-1965 1965-1980 1980..
Programacin Programacin Multiprogramacin
Cableada Lenguaje Mquina Tiempo compartido

Interaccin Distanciamiento Interaccin

Van apareciendo ms y mejores herramientas


Ensambladores, montadores, Soporte - automatizacin
cargadores Procesamiento por lotes (Batch)
Bibliotecas de funciones Secuenciacin automtica de
trabajos (monitor) JCL
comunes
Proceso OFF-LINE
Drivers
SPOOL
Compiladores (Fortran, Cobol) Multiprogramacin y Tiempo
Introduccin
compartido 14
Monoprogramacin: Ejecucin secuencial de trabajos
T5

S.O.
T3 E/S T
T25 T3
T
T253 T
T2 CPU ociosa 35,7% T55 6

t
9 19 28
Multiprogramacin: Ejecucin simultanea de trabajos
T5 S.O.
UCP T2
T1, T2,
T3 IT5
T2
T3 T3 T3, T4,
T5 T5, T6
T2
t
Introduccin
15 1718 15
Multiprogramacin: Ejecucin simultanea de trabajos
Grandes ventajas: Mejor aprovechamiento de CPU
Soluciones ms elegantes (si el problema es en
esencia paralelo)
Ejecucin ms rpida (si hay ms de una CPU)
Planificacin a
Algunos inconvenientes: largo plazo
Gestin de la CPU S.O.
CPU T2
Gestin de la memoria T1, T2,
IT2 T3
Proteccin T3, T4,
T5 T5, T6
Planificacin a
corto plazo
Introduccin 16
Multiprogramacin: Ejecucin simultanea de trabajos
Solucin ms sencilla y eficiente si inherentemente paralelo

Un nico proceso para


el control de la fbrica ?

Toma Contro
Datos lador

Gestin
Gestin BD
usuarios
usuarios
Programacin concurrente? 17
Multiprogramacin: Ejecucin simultanea de trabajos
3. Aumento cuantitativo de las prestaciones

T5

T3

T2
t
10 18 28
Ejecucin Ejecucin Ejecucin
paralela pseudo secuencial
paralela

Introduccin 18
Tiempo compartido: Sistema multiprogramado interactivo
Aprovechar la potencia de un servidor por varios usuarios a la vez

Red

Orgenes MULTICS: Queran dar servicio a toda una ciudad


Cada vez menos importante?
Futuro Grandes redes de PCs y comparticin de recursos?

Distinguir entre multiusuario y tiempo compartido


Introduccin 19
Multiprogramacin: No ofrece sensacin de interaccin
Un proceso puede
T5 retrasar mucho
al resto
T3

T2
t
15 1718
Planificacin expulsora
T5 Round Robin, ......

T3
Sobrecarga de gestin!!
T2
t
Introduccin
18 Seguro? 20
Tipos de sistemas operativos
Mainframe
Batch, transacciones, tiempo compartido
OS/390, UNIX y Linux
Servidores
Servicios de impresin, 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?
Introduccin 21
Tipos de sistemas operativos
Tarjetas inteligentes (MULTOS, TIBC, JavaCard, )

Se vendern 9.715 millones en 2016 ?


Introduccin 22
Tipos de sistemas operativos
Redes de sensores inalmbricos

protothreads
tasks
Introduccin 23
Conceptos de sistemas operativos UNIX: Proceso
Qu es un proceso? Programa en ejecucin
Qu lo caracteriza? Contexto del proceso
Evoluciona
Vector de estado
Nmero fijo de
Registros (PC, SP, .....)
procesos o variable?
Memoria (Esttica, Dinmica)
P1 Archivos en uso
Cdigo
P2 P3 P5 Fijo
Identificador

P4 P7 Quin es P1?

El Padre de todos (primer proceso del


P6 sistema). En sistemas tipo Unix, es el
proceso init.
Introduccin 24
Conceptos : Proceso: operaciones y algunos atributos

Operaciones
Crear un proceso (relacin padre-hijo)
Terminar un proceso
Comunicacin y sincronizacin entre procesos
Esperar a que termine uno de los hijos
Establecer, tratar y enviar seales

Un proceso tiene varios identificadores


pid: el propio proceso
uid: el usuario que lanz el proceso No existe?
gid: el grupo al que pertenece el uid

Introduccin 25
Conceptos : Interbloqueo entre procesos

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

Introduccin 26
Conceptos : Gestin de memoria y E/S

Gestin de memoria
Asignacin y liberacin de memoria
Mecanismos de proteccin
Gestin de huecos y compactacin
Gestin de la memoria virtual (paginacin, segmentacin)

Gestin de dispositivos de E/S


Teclados, monitores, impresoras, discos, ...
Software de E/S independiente del dispositivo (proteccin,
buffering, esquema de nombrado, tamao de bloque, ...)
Software de entrada salida dependiente del dispositivo (drivers)

Introduccin 27
Conceptos : Sistema de ficheros: estructura jerrquica
/
Dnde reside?

?
$HOME

cd
pwd
Crear
Abrir
Leer
Escribir
Posicionar
Cerrar
Borrar /Faculty/Prof.Brown/Courses/CS101/notas.txt
notas.txt
Introduccin CS101/notas.txt 28
Conceptos : Sistema de ficheros: varios dispositivos?

Sistema de ficheros montado Windows? Unidades A: C: D:

Varios S.F. en
un mismo
dispositivo?

Particiones

Antes de montar Linux Windows


Los ficheros en floppy son inaccesibles
Despus de montar el floppy en b,
Los ficheros en floppy son parte del sistema de ficheros
Introduccin 29
Conceptos : Sistema de ficheros: tipos de ficheros

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

Introduccin 30
Conceptos : Intrprete de comandos

Shell
Intrprete 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
Ejecucin en background
cat file1 file2 file3 | sort > /dev/lp &

Seguridad
Bits rwx de los ficheros (propietario, grupo, otros)
rwx r-- ---
Introduccin 31
Conceptos : Intrprete de comandos
$ ps ef

Introduccin 32
Conceptos : Intrprete de comandos
$ ps ef | cut d f 1 $ ps ef | cut d f 1 | grep root

Introduccin 33
Llamadas al sistema
Pi
Gestin Reserva de Juegos
Bancaria Billetes
Compila Editores Montador sistema
Pj operativo
dores
Llamadas Intrprete de Software
comandos
Pk
al sistema S.O.
SERVICIOS Interfaz del S.O.

Lenguaje mquina POSIX


MicroArquitectura Hardware
WIN32?
Dispositivos fsicos
Introduccin 34
Llamadas (genricas) al sistema operativo
Control de Procesos: Gestin de Ficheros:
Cargar y ejecutar programas Crear, Borrar
Crear y terminar procesos Abrir, Cerrar
Leer y poner atributos Posicionarse
Esperar un tiempo Leer, Escribir
Esperar un evento Leer y poner atributos

Manejo de Dispositivos: Informacin y mantenimiento:


Solicitar y liberar dispositivo Leer y poner fecha y hora
Posicionarse Pedir estado del sistema
Leer y escribir Leer y poner atributos de
Leer y establecer atributos procesos, ficheros o
Bloquear dispositivos

Introduccin 35
Llamadas (concretas) al sistema operativo (POSIX)
Distinguir: SERVICIOS INTERFAZ IMPLEMENTACIN
Algunas llamadas de Gestin de Procesos
Fork Permite a un proceso (padre) crear un proceso (hijo)
Getpid Permite a un proceso conocer su identificacin PID

No siempre!
INTERFAZ CMO 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 libc)
Introduccin 36
Recordatorio sobre interrupciones | excepciones
vectorInt 4B
0
Externas Internas
Asncronas Sncronas
25
-------
31 div r5,r0,r3
32
Con -------
trola trap #0 ..15
dor
47
Int
rte_teclado
trap #15 -------
64
rte

SR rte_so_open
T S I2I1I0 XNZVC -------
Introduccin 255 rte 37
man getpid
System Calls getpid(2)
NAME
getpid, getpgrp, getppid, getpgid get process, process group,
and parent process IDs
SYNOPSIS Otras llamadas relativas a procesos
#include <unistd.h> pid = fork( )
int getpid () pid = waitpid(pid, &statloc, options)
int getpgrp () s = execve(name, argv, environp)
.....
exit (status)
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).
Introduccin 38
Llamadas al sistema operativo (C vs ensamblador)
Ejemplo: count ?= read (fd, &buffer, nbytes)
?

?
?

Introduccin 39
Veamos un ejemplo de utilizacin de: fork y getpid

int fork () Crea un proceso hijo. Al padre le devuelve el PID


del hijo creado y al hijo le devuelve un 0

1000 2000
Padre v = 2000 Hijo v=0
v := fork(); v := fork();
if (v = = 0) if (v = = 0)
printf (Soy el hijo); printf (Soy el hijo);
else else
printf (Soy el padre); printf (Soy el padre);

Introduccin 40
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) Seguro? Ms Hijos?
Introduccin 41
Mi primer ejecutor de comandos
#include <stdio.h>
main ( ) {
int pid, estado; char programa[20];
printf (>); %ejecutor
scanf(%s, programa); >padreHijo
while (programa[0] != 0) { --------------
if (fork( ) = = 0) { >ls
estado = execl (programa, 0); --------------
printf (Error en %s => %i\n, >0
programa, estado); %
exit (1);
} else { pid = waitpid(pid, &statloc, options)
pid = wait (&estado); s = execve(name, argv, environp)
printf (>); exit (status)
scanf (%s, programa);
} } }
Introduccin 42
Llamadas al sistema (Ficheros)

int open(nombre, modo) Descriptor de Fichero


read (df, ...), write (df, ...), lseek (df, ...)
fstat (df, ...), stat (nombre)
close (df) ls -l
otros
usuario
-rw-r----- 1 pcarazo 2062 14321 May 20 13:52 practica1.c

grupo

Descripcin Sencillo ?
Propietario, Protecciones, Tiempos,
Tamao, Tipo, etc.

Introduccin 43
Llamadas al sistema (Ficheros: ejemplo de uso)

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

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

4096?

Introduccin 44
Llamadas al sistema (Directorios)

?
?
link (/usr/jim/memo, /usr/ast/note)

ls -l unlink (/usr/jim/memo)
Introduccin 70 -rw-r----- 2 pcarazo 2062 14321 May 20 13:52 note 45
Llamadas al sistema (Mount)

Mount

d5
hola

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


(b) Sistema de ficheros despus de la llamada al sistema

/etc/mtab
/etc/fstab
Introduccin 46
Llamadas al sistema (Otras)

int 32 bits 4.294.967.296 seg


Ayer 1.505.923.366
gettimeofday Hasta
struct timeval Efecto 2106
cundo?
tv_sec
tv_usec
Antes x86_64
Introduccin 47
Llamadas al sistema (brk)

Estructura de un proceso en memoria? No


interviene
el S.O. !

Cdigo Fijo push, bsr, rts


Datos
Variable
Pila
brk (nuevaDireccion)

Introduccin 48
Llamadas al sistema

fork open mkdir chdir


getpid read rmdir chmod
wait write link kill
exec lseek unlink time
exit fstat mount brk
stat umount
close

pipe sigaction
dup alarm
pause
Introduccin 49
Estructura de los sistemas operativos
Monoltico Con cierta estructura
trap P Usuario shell
Gestor Gestor
de de
Supervisor Msj. tiempos
Kernel
Gestor Gestor
rte de de
S.O. ficheros Mem.
?? ??
Modelo Cliente/Servidor

Proceso Servidor Servidor Servidor


Usuario
Cliente Terminal Archivos Memoria
MicroKernel Supervisor
Introduccin 50
Estructura interna de MINIX (por capas)
Procesos de usuario
U
s
Init Pi Pj Pk u
a
Gestor de Sistema de Servidor de r
memoria ficheros red i
o
N Tarea de Tarea del Tarea del Tarea del Tarea
u
c disco tty reloj sistema Ethernet
l
e Gestin de Procesos
o

Complejidad aproximada: S.O.


Tareas reloj (5); disco (12); tty (25)
Servidores memoria (47); ficheros (102)
Counting Source Line of Code (SLOC) www.dwheeler.com/sloc
Introduccin 51
Estructura interna de MINIX 3

Complejidad aproximada:
Microkernel 3.200 lneas en C y 800 asm
Drivers disco (12); tty (30)
Introduccin
Servidores ficheros (111) 52
Volmen de cdigo del kernel de Linux
www.h-online.com

2.6.27

Introduccin 53
Volmen de cdigo de distribuciones de S.O.
wikipedia
Ao
2000
2002
2005
2010
2011
2009
2015 Windows 10 80 ?? 2011
2004
MSDOS 2003
1981 2009
4.000 asm 2010
2011
MINIX 1 1987 11.800C + 800asm 2012
MINIX 2 1997 62.200
2015
MINIX 3 2004 4.000 + 28.864? +
Introduccin 54
Estructura de los sistemas operativos (Mquinas virtuales)
Estructura del VM/370 con CMS

Exokernel?

Introduccin 55

También podría gustarte