Sei sulla pagina 1di 37

Captulo 1: Introduccin a los Sistemas

Operativos

Sistemas Operativos
Profesor: Pedro Rodrguez Moreno
Departamento de Sistemas de Informacin
Facultad de Ciencias Empresariales

Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Sistemas Operativos

1 / 37

Estructura de un computador

CPU

Controlador
de discos

Controlador
de impresora

Controlador
puerto PS/2

Controlador de Memoria

Memoria

Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Sistemas Operativos

2 / 37

El contexto entre los procesos y el Sistema


Operativo
Programas de Aplicacin
A

in1
plicac

Ap
lica

l
shel
ario1
t
i
l
i
t
U
KERNEL (Ncleo)

Utilitarios

disco
Pedro Rodrguez Moreno

Procesos
ci

n2

Utilit
ario2

Procesador
(CPU)

monitor
Departamento de Sistemas de Informacin

impresora
Sistemas Operativos

Dispositivos
perifricos
3 / 37

Proceso
B

KERNEL

eU

io
d

Init

Es
pa
c

M Pro
an ce
ag s s
em
en
t

swapper

M Me
an m
ag ory
em
en
t

Proceso
A

su
ar
io

El Kernel: principal componente de un Sistema


Operativo

pager

Architecture-Dependent Networking
Code
le
System
i
F
l
tua m
r
i
V
y s te
rio
Us
ua
Es
pa
c

io

de

ers

Inte IPC
Co r Pro
mm
uni cess
cati
on

r iv

Departamento de Sistemas de Informacin

eD

Pedro Rodrguez Moreno

vic

Proceso
C

De

Sistemas Operativos

Proceso
D

4 / 37

Qu es un Sistema Operativo?
Es un conjunto de

Un Sistema Operativo
es uno o ms
programas que actan
como intermediario (o
interfaz) entre el
usuario
y el hardware de la
mquina.

Us

1
uario

Usu
a

rio 2

programas que
Proporciona un
ambiente conveniente y
eficiente para la
ejecucin de programas

Utilitarios

de usuario.

KERNEL (Ncleo)

Procesador
(CPU)

El kernel del Sistema


Operativo administra el
hardware de la mquina y
tiene control completo
sobre ella.

El kernel es el
componente del
Sistema Operativo
que est siempre
residente en memoria.

disco
Pedro Rodrguez Moreno

monitor

Departamento de Sistemas de Informacin

impresora

Sistemas Operativos

Dispositivos
perifricos
5 / 37

Objetivos de un Sistema Operativo


Ejecutar las aplicaciones de los usuarios.
Facilitar la interaccin con el computador (amistocidad y
comodidad).
Administrar y controlar eficientemente los recursos del
computador.
Independizar al programa de aplicacin del hardware.
Proporcionar comunicacin con otros computadores
Ejecutar servicios para los programas o aplicaciones
Ejecutar rdenes de los usuarios (a travs del shell o del GUI).

Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Sistemas Operativos

6 / 37

Gestin de Recursos
Primero, qu recursos gestiona:
CPU (para la planificacin).
Memoria, disco, dispositivos de entrada salida.

Segundo, un recurso puede ser fsico o lgico.


Tercero, los recursos son escasos.
Cuarto, los procesos compiten por el uso de los recursos.
Qu se espera que haga con los recursos?:
Administrarlos de forma eficiente.
Asignarlos de forma equitativa a los procesos.
Evitar que los procesos subran de hambruna (starvation).

Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Sistemas Operativos

7 / 37

Gestin de Procesos

Un proceso es un programa en ejecucin, el cual requiere


de los recursos del computador (CPU, memoria y E/S).
Responsabilidades del Sistema Operativo:
Creacin y eliminacin de procesos.
Planificacin de procesos.
Repartir tajadas de tiempo de cpu entre los procesos activos.

Sincronizacin de procesos.
Comunicacin entre procesos.

Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Sistemas Operativos

8 / 37

Gestin de Memoria Principal


La memoria es un recurso escaso por el que compiten todos los
procesos.
Responsabilidades del Sistemas Operativo:
Conocer qu zonas de la memoria real estn libres y cules estn
ocupadas.
Decidir qu procesos hay que cargar cuando haya memoria libre.
Reservar y liberar zonas de memoria segn se solicite.
Memoria virtual: utilizar el almacenamiento secundario como una
extensin de la memoria principal.

Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Sistemas Operativos

9 / 37

Gestin de Entrada/Salida
El sistema de E/S es un conjunto variado de dispositivos y
complejos de programar.
Objetivos del Sistema Operativo:
Proporcionar una interfaz uniforme para el acceso a los
dispositivos (independencia del dispositivo).
Proporcionar controladores (drivers) para cada dispositivo.
Tratar automticamente los errores ms tpicos.
Para los dispositivos de almacenamiento, utilizar cachs.
Para los discos, planificar de forma ptima las peticiones.

Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Sistemas Operativos

10 / 37

Gestin del Sistema de Archivos


Un archivo es un conjunto de datos identificado por un nombre.
Los archivos se almacenan en general dispositivos de
almacenamiento secundario.
Funciones del Sistema Operativo:
Manipulacin de archivos: crear, borrar, leer, escribir, etc.
Manipulacin de directorios.
Ubicar archivos y directorios en los dispositivos de almacenamiento
secundario.
Automatizar ciertos servicios: copia de seguridad, versiones, etc.

Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Sistemas Operativos

11 / 37

Sistema de Proteccin
La proteccin abarca los mecanismos destinados a controlar el
acceso de los usuarios a los recursos, de acuerdo con los
privilegios que se definan para ellos.
Objetivos del Sistema Operativo:
Definir el esquema general de proteccin: clases de usuarios,
clases de permisos/privilegios, etc.
Definir mecanismos de acceso a los recursos: contraseas, llaves,
capacidades, etc.
Controlar el acceso a los recursos, denegando el acceso cuando
no est permitido.

Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Sistemas Operativos

12 / 37

Servicio de red
En un sistema distribuido, existen varios computadores con sus
propios recursos locales (memoria, impresora, disco, archivos,
etc.), conectados mediante la red.
Objetivos del Sistema Operativo:
Proporcionar primitivas para conectarse con equipos remotos y
acceder de forma controlada a sus recursos:
Primitivas de comunicacin (enviar (send) y recibir (receive) datos).
Sistema de archivos de red (NFS).
Llamada remota a procedimiento (RPC).
Sistema de archivos distribuido (ej. DFS).

Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Sistemas Operativos

13 / 37

Intrprete de comandos

Para que un usuario pueda dialogar con el kernel del sistema


operativo, ste ltimo debe proporcionar una interfaz de usuario
bsica para:
Cargar y ejecutar programas.
Abortar programas
interrupcin.

cuando

estos

presenten

problemas

dada

una

Introducir datos a los programas.


Trabajar con archivos (crear, destruir, modificar).
Trabajar con redes (utilizar servicios tales como: ftp, ssh, scp, etc.).

Ejemplo: El shell en UNIX.

Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Sistemas Operativos

14 / 37

Qu se espera de un Sistema Operativo?

Un buen Sistema Operativo debe cumplir con los

siguientes requerimientos:
Debe tener capacidad de evolucin.
Ser robusto y confiable.
Proporcionar mecanismos de seguridad.
Contar con soporte.

Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Sistemas Operativos

15 / 37

Servicios proporcionados por el SO

Ejecucin de programas.

Concurrencia.
procesos
threads
sincronizacin

Manipulacin de archivos y directorios.

Comunicacin entre procesos.

Entrada/Salida.

Proteccin.

Accounting o Estadsticas:
Coleccin de estadsticas de uso de CPU, rendimiento del
sistema, etc.

Intrprete de comandos o shell: permitir a los usuarios ingresar


comandos interactivamente.

Llamadas al sistema.

Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Sistemas Operativos

16 / 37

Arranque del computador


Fase

Operacin

Iniciar ROM

Test del hardware


Carga de la rutina de bootstraping
en memoria.

Rutina de Boostraping (booteo)

Carga en memoria de componentes


del SO.

Inicializacin del Sistema Operativo Test de integridad del sistema de


archivos.
Crear estructuras de datos internas.
Arranque de procesos demonios del
sistema (swapper, init, pager, etc.)
Funcionamiento

Pedro Rodrguez Moreno

Aceptar conexiones de usuarios


locales y/o remotos.

Departamento de Sistemas de Informacin

Sistemas Operativos

17 / 37

Historia

Evolucin de los Sistemas Operativos

Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Sistemas Operativos

18 / 37

Breve historia de los Sistemas Operativos

Dcada 1940: Primero computadores, no existen sistemas


operativos.

Dcada 1950: Procesamiento Batch.

Dcada 1960: Multiprogramacin.

Dcada 1970 (principios): Time-Sharing & minicomputadores.

Dcada 1980 (principio): Microprocesadores & PC.

Dcada 1970, 1980: Redes, Sistemas Distribuidos, Sistemas


Paralelos.

Dcada 1990 y Futuro: PCs, WWW, Sistemas Mviles (redes


mviles e inalmbricas), Sistemas Distribuidos.

Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Sistemas Operativos

19 / 37

Primeros computadores, dcada del 40


Computador dedicado a un usuario/ programador a la vez.
El programa es cargado manualmente por el programador,

usando switches de la consola.


Depuracin usando luces de la consola.
Ej. ENIAC.

Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Sistemas Operativos

20 / 37

Dcada del 50

Sistemas Batch. Procesamiento se hace en lotes de tarjetas

perforadas o jobs (trabajos).


El programador no interacta directamente con el computador.
Un job es un lote de tarjetas perforadas por el programador

mediante mquinas especialmente dedicadas para ese propsito


llamadas mquinas perforadoras.
Software del sistema: Monitor Residente.
Ejemplo Sist. de IBM 701 y 704).

Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Sistemas Operativos

21 / 37

Monitor residente
Vector de interrupciones
Intrprete de JCL (Job Control Language)
Cargador de programas
Controladores de dispositivos de E/S
Memorias intermendias (buffers)
Rutinas de tratamienton de errores

Monitor
Residente
Registro
Lmite

Memoria de usuario

Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Sistemas Operativos

22 / 37

Dcada del 60
Sistemas de Multiprogramacin.
Monitor residente comienza a llamarse Sistema Operativo.
Asignacin de tiempo de ejecucin por rfagas de CPU. Una

rfaga es un perodo de tiempo de uso de CPU y limitado por


tiempos de espera.
Este debe decidir qu jobs hace avanzar, tratando de maximizar

el rendimiento del computador. Esto se conoce como job


scheduling.
Se introducen los primeros esquemas de administracin de

memoria con particiones y espacio de direcciones lgicos.


Ejemplos: IBM Systen/360, OS/370.

Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Sistemas Operativos

23 / 37

Monoprogramacin y Multiprogramacin
Monoprogramacin

running

Rfaga
de CPU
running

wait

Multiprogramacin con dos programas

running

wait

running

running

running
Pedro Rodrguez Moreno

running

wait

wait

running

Departamento de Sistemas de Informacin

running

running
Sistemas Operativos

24 / 37

Diagrama de estado de un proceso


fork()
Asigna Memoria,
crea PCB, asigna
identificacin

Idle
(Creacin)

Zombie

Dispached
Exit
Ready
(Listo)

Running
(Corriendo)

Wake-up
(despierta)
Waiting
(Esperando)

Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Bloqued
(Read, Write, etc.)

Sistemas Operativos

25 / 37

*nextPCB

Puntero al siguiente
PCB en la cola.

Registros CPU
PC
Informacin
administracin
de memoria
Informacin
administracin
de E/S

En Linux, esta estructura de datos se denomina


task_struct.
Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Sistemas Operativos

26 / 37

Dcada del 70
Sistemas de Tiempo Compartido (Time Sharing).

Trabajo interactivo con el computador a travs de terminales.

Nace el concepto de Proceso.

Asignacin de tiempo de CPU por tajadas de tiempo.

Ya no se habla de tiempo de despacho de un job, sino que


tiempo de respuesta.

Ncleos monolticos. Todas las funciones y servicios del sistema


operativo estn dentro del ncleo.

Espacio de direcciones virtuales para cada proceso, utilizando


mecanismos de segmentacin o paginacin.

Sistemas Operativos: Unix, VAX/VMS, AS/400.

Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Sistemas Operativos

27 / 37

Diagrama de estado de un proceso, agregando


time-out
fork()
Idle
(Creacin)

Asigna Memoria,
crea PCB, asigna
identificacin

Zombie

Dispached
Exit
Ready
(Listo)

Wake-up
(despierta)

Running
(Corriendo)

Time-out
(fin tajada o
quantum)
Waiting
(Esperando)

Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Bloqued
(Read, Write, etc.)

Sistemas Operativos

28 / 37

Dcada del 80 y en adelante


Computadores Personales.

Fines de los aos 70.

Aparece el microprocesador.

Sistema Monousuario.

Sistemas Operativos: CP/M, MS-DOS, Macintosh,

OS/2, Windows.

Problema: Dificultad para compartir recursos.

Redes de Computadores Personales o LAN (80).


Sistemas Distribuidos (80 hasta hoy).
Sistemas de Procesamiento Paralelo.
La Web (el presente).

Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Sistemas Operativos

29 / 37

Sistemas Operativos Distribuidos


El ncleo se denomina microkernel, que proporciona un

conjunto de servicios esenciales (comunicacin, procesos, y


memoria virtual).
El resto de los servicios del microkernel se implementan

como servidores, que corren en modo usuario.


La idea es mantener un ncleo lo mas pequeo posible.
Una llamada al sistema puede consistir en un mensaje entre

un proceso servidor y el microkernel.


Los procesos servidores y el microkernel se ejecutan en

espacio de direcciones diferentes.


Ejemplos: Mach, Chorus, Amoeba.

Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Sistemas Operativos

30 / 37

Arquitectura de un microkernel

Gestin de Procesos

Gestin de Comunicaciones

Gestin de Threads

Gestin de Memoria

Supervisor
Hardware
Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Sistemas Operativos

31 / 37

Em microkernel y los servicios

User
Mode

Kernel
Mode

C
L
I
E
N
T

C
L
I
E
N
T

D
E
V
I
C
E

P
R
O
C
E
S
S

P
R
O
C
E
S
S

D
R
I
V
E
R
S

F
I
L
E
S
E
R
V
E
R

P
R
O
C
E
S
S

V
I
R
T
U
A
L

S
E
R
V
E
R

M
E
M
O
R
Y

Microkernel
Hardware

Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Sistemas Operativos

32 / 37

Ncleos Multithread

Ncleo
Proceso
Liviano
A

Proceso
Liviano
B

Proceso
Liviano
C

Retorno de un
System Call

Proceso
Pesado
A

Pedro Rodrguez Moreno

Proceso
Pesado
B

Departamento de Sistemas de Informacin

Proceso
Pesado
C

Sistemas Operativos

System call

33 / 37

Modelo de Procesos en Solaris


Unbound
Thread
u

User
Thread

Pedro Rodrguez Moreno

CPU

CPU

Scheduling de Thread Nivel Usuario

Real Time Scheduling

Time Sharing Scheduling Class

CPU

Procesos
de
usuario

Bound
Thread

CPU

L LWP (Light-Weight Process)


K

Departamento de Sistemas de Informacin

Kernel Thread
Sistemas Operativos

34 / 37

Modelo de Procesos en Linux

Proceso
s
de
usuario

Time Sharing Scheduling Class

CPU

CPU

u User Thread

Pedro Rodrguez Moreno

CPU
K

Departamento de Sistemas de Informacin

CPU

Kernel Thread

Sistemas Operativos

35 / 37

Modelo de programacin multithread

Libreras que vamos a utilizar:


POSIX (pthreads).
Solaris (threads, de carcter propietario).

System ( Tareas).

Estas libreras actan como un minikernel.


Pueden crear y destruir procesos livianos.
Asignan memoria a los threads.
Aplican estrategias de planificacin o scheduling.
Proporcionan mecanimos de sincronizacin tales como: semforos,
monitores, mensajes, cerrojos, etc.
Lenguajes de programacin como Java incorporan este modelo,
transformndolo en un lenguaje concurrente.

Las librera de POSIX se adapta al modelo de threads del Sistema


Operativo en el que corre (Windows, Linux, Solaris).

Los threads corren dentro de un proceso (vlido en las tres libreras).

Los threads de las libreras POSIX y Solaris pueden correr en distintos


procesadores.

Pedro Rodrguez Moreno

Departamento de Sistemas de Informacin

Sistemas Operativos

36 / 37

nSystem

Threads muy livianos (Tareas).

El Kernel del SO no interviene en la creacin de las nTareas.

El minikernel corre dentro de un proceso Unix.

Una Tarea consta de un descriptor de tarea y un stack.

Si la mquina tiene varios procesadores reales, las nTareas slo corrern en uno solo.

Solaris
nT

nT

nT

Linux

nT

nSystem

nT

nT

nT
Planificacin
Time-Sharing

nT

nT

nT

nT

nT

nSystem

L
Thread
del
Kernel

CPU
Pedro Rodrguez Moreno

Procesador
Virtual (LWP)

Procesador
real
Departamento de Sistemas de Informacin

Thread
del
Kernel

CPU
Sistemas Operativos

37 / 37

Potrebbero piacerti anche