Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Intro
Intro
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 es un sistema operativo?
Llamadas al sistema
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
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
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
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
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, )
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?
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
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)
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?
Varios S.F. en
un mismo
dispositivo?
Particiones
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.
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
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);
}
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
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
/etc/mtab
/etc/fstab
Introduccin 46
Llamadas al sistema (Otras)
Introduccin 48
Llamadas al sistema
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
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