Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Horas
1 INTRODUCCIÓN 5
2 PROCESOS Y THREADS 10
3 GESTIÓN DE MEMORIA 8
4 ENTRADA / SALIDA 2
5 SISTEMA DE FICHEROS 6
Introducción 1
sisOpe 1. Introducción Curso: 19/20
• Llamadas al sistema
Introducción 2
¿Qué sistemas operativos nos suenan?
Linux, MacOS, Novell Netware, Solaris, UNIX, Windows, ...
www.netmarketshare.com
Clientes_Desktop Julio_2019
8,98% 88,45%
2,10%
Introducción www.w3schools.com/browsers 3
¿Qué sistemas operativos nos suenan?
Servidores Web Activos: news.netcraft.com
37%
30%
19%
9%
5%
Introducción 4
¿Qué sistemas operativos nos suenan?
Servidores Web Activos: news.netcraft.com
37%
30%
19%
9%
5%
Introducción 5
¿Qué sistemas operativos nos suenan?
www.top500.org ¿Qué S.O. usan?
Windows 0
Junio/2019
Linux
Introducción 6
¿Qué sistemas operativos nos suenan?
Android
iOS
Series 40
gs.statcounter.com
Introducción 7
¿Qué sistemas operativos nos suenan?
https://www.statista.com/statistics/266219/global-smartphone-sales-since-1st-quarter-2009-by-
operating-system/
iOS => 54 m
Introducción 8
¿Qué sistemas operativos nos suenan?
Todavía más lioso
wikipedia
Introducción 9
¿Qué es un sistema operativo?
• Escritorio
Máquina virtual • Ventanas
• Carpetas
Top Down
Administrador
de recursos
Memoria
RAM, L1, L2, L3
Introducción 10
¿Qué es un sistema operativo?
Introducción 11
¿Qué es un sistema operativo? ¿Dónde se ubica?
Programas Gestión Reserva de Juegos
de aplicación Bancaria Billetes
Programas Compila Editores Montador % sleep 10; bell
del sistema dores
Llamadas Intérprete de Software
comandos
al sistema S.O.
seg = 0; SERVICIOS Acceso a
repeat periféricos
alarm(1); Lenguaje máquina
pause( ); MicroArquitectura Hardware
seg++;
Dispositivos físicos
printf (seg);
until (seg == 60);
Introducción 12
¿Qué es un sistema operativo? Aspectos esenciales
• Administrador de recursos CPU’s, MP, Discos, ...
• Máquina 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.
Introducción 13
Evolución de los sistemas operativos (Leer libro)
1945-1955 1955-1965 1965-1980 1980..
Programación Programación Multiprogramación
Cableada Lenguaje Máquina Tiempo compartido
S.O.
T3 E/S T
T25 T3
T
T253 T
T2 CPU ociosa 35,7% T55 6
t
9 19 28
Multiprogramación: Ejecución simultánea de trabajos
T5 S.O.
UCP T2
T1, T2,
T3 IT5
T2
T3 T3 T3, T4,
T5 T5, T6
T2
t
Introducción
15 1718 15
Multiprogramación: Ejecución simultánea de trabajos
Grandes ventajas: • Mejor aprovechamiento de CPU 64,3% 100%
• Soluciones más elegantes (si el problema es en
esencia paralelo)
• Ejecución más rápida (si hay más de una CPU)
Planificación a
Algunos inconvenientes: largo plazo
• Gestión de la CPU S.O.
CPU T2
• Gestión de la memoria T1, T2,
IT2 T3
Protección T3, T4,
T5 T5, T6
Planificación a
corto plazo
Introducción 16
Multiprogramación: Ejecución simultánea de trabajos
Solución más sencilla y eficiente si inherentemente paralelo
Toma Contro
Datos lador
Gestión
Gestión BD
usuarios
usuarios
¿Programación concurrente? 17
Multiprogramación: Ejecución simultánea de trabajos
Aumento cuantitativo de las prestaciones
T5
T3
T2
t
10 18 28
Ejecución Ejecución Ejecución
paralela pseudo secuencial
paralela
Introducción 18
Tiempo compartido: Sistema multiprogramado interactivo
Aprovechar la potencia de un servidor por varios usuarios a la vez
Red
T2
t
15 1718
Planificación expulsora
T5 Round Robin, ......
T3
¡¡Sobrecarga de gestión!!
T2
t
Introducción
18 ¿Seguro? 20
Tipos de sistemas operativos
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?
Introducción 21
Tipos de sistemas operativos
• Tarjetas inteligentes (MULTOS, TIBC, JavaCard, …)
protothreads
tasks
Introducción 23
Conceptos de sistemas operativos “UNIX”: Proceso
¿Qué es un proceso? Programa en ejecución
¿Qué lo caracteriza? Contexto del proceso
Evoluciona
• Vector de estado
¿Número fijo de
Registros (PC, SP, .....)
procesos o variable?
Memoria (Estática, Dinámica)
P1 Archivos en uso
• Código
P2 P3 P5 Fijo
• Identificador
P4 P7 ¿Quién es P1?
• 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
Introducción 25
Conceptos …: Interbloqueo entre procesos
Se producen por la competencia entre procesos por conseguir los recursos del sistema
Introducción 26
Conceptos …: Gestión de memoria y E/S
• 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)
Introducción 27
Conceptos …: Sistema de ficheros: estructura jerárquica
/
¿Dónde reside?
?
$HOME
cd
pwd
Crear
Abrir
Leer
Escribir
Posicionar
Cerrar
Borrar /Faculty/Prof.Brown/Courses/CS101/notas.txt
notas.txt
Introducción 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
Introducción 30
Conceptos …: Intérprete de comandos
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-- ---
Introducción 31
Conceptos …: Intérprete de comandos
$ ps –ef
Introducción 32
Conceptos …: Intérprete de comandos
$ ps –ef | cut –d “ “ –f 1 $ ps –ef | cut –d “ “ –f 1 | grep root
Introducción 33
Llamadas al sistema
Pi
Gestión Reserva de Juegos
Bancaria Billetes
Compila Editores Montador sistema
Pj operativo
dores
Llamadas Intérprete de Software
comandos
Pk
al sistema S.O.
SERVICIOS Interfaz del S.O.
Introducción 35
Llamadas (concretas) al sistema operativo (POSIX)
Distinguir: SERVICIOS INTERFAZ IMPLEMENTACIÓN
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
¡No siempre!
INTERFAZ ¿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 “libc”)
Introducción 36
man getpid
System Calls getpid(2)
NAME
getpid, getpgrp, getppid, getpgid – get process, process group,
and parent process IDs
Otras llamadas relativas a procesos
SYNOPSIS pid = fork( )
#include <unistd.h> pid = waitpid(pid, &statloc, options)
int getpid () s = execve(name, argv, environp)
int getpgrp () exit (status)
.....
DESCRIPTION TRAP
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).
Introducción 37
Recordatorio sobre interrupciones | excepciones
vectorInt 4B
0
Externas Internas
Asíncronas Síncronas
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 -------
Introducción 255 rte 38
Llamadas al sistema operativo (“C” vs ensamblador)
Ejemplo: ¿ count ?= read (fd, &buffer, nbytes)
?
12
move Ri, count
¿En la pila?
?
¿?
Introducción 39
Veamos un ejemplo de utilización 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”);
Introducción 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
Descripción ¿ Sencillo ?
Propietario, Protecciones, Tiempos,
Tamaño, Tipo, etc.
Introducción 43
Llamadas al sistema (Ficheros: ejemplo de uso)
cp /usr/pepe/uno.txt /tmp/copia.txt
¿4096?
Introducción 44
Llamadas al sistema (Directorios)
?
?
link (“/usr/jim/memo”, “/usr/ast/note”)
ls -i
?
ls -l unlink (“/usr/jim/memo”)
Introducción 70 -rw-r----- 2 pcarazo 2062 14321 May 20 13:52 note 45
Llamadas al sistema (Mount)
Mount
d5
hola
/etc/mtab
/etc/fstab
Introducción 46
Llamadas al sistema (Otras)
Introducción 48
Llamadas al sistema
¡¡¡ INDIVISIBLES !!!
• 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
Introducción 49
Estructura de los sistemas operativos
• Monolítico • 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 líneas en C y 800 asm
Drivers disco (12); tty (30)
Introducción
Servidores ficheros (111) 52
Volúmen de código del kernel de Linux
www.h-online.com
2.6.27
Introducción 53
Volúmen de código de distribuciones de S.O.
wikipedia
Año
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? + …
Introducción 54
Estructura de los sistemas operativos (Máquinas virtuales)
Estructura del VM/370 con CMS
Introducción 55