Вы находитесь на странице: 1из 95

Arquitectura de Computadores

Arquitectura de Computadores

Departament
p d’Informàtica de Sistemes i
Computadors
E.P.S.Alcoi

Arquitectura de Computadores y Sistemas Operativos 1

Bloque Temático I:
Sistemas Operativos

ÖTema 1: Introducción a los Sistemas


Operativos
ÖTema 2: Introducción al S.O. UNIX

Arquitectura de Computadores y Sistemas Operativos 2

Tema 1: Introducción a los Sistemas Operativos 1


Arquitectura de Computadores

Objetivos

1.- Presentar el concepto de sistema operativo.


2.- Dar una visión general de la evolución histórica de los
sistemas operativos que ayudará a entender qué
servicios proporciona el sistema y cómo los
proporciona.
3.- Describir las funciones que debe llevar a cabo
cualquier sistema operativo actual.
4.- Presentar el concepto de llamada al sistema como
mecanismo necesario para obtener los servicios de
éste.
5.- Presentar el intérprete de órdenes como ejemplo más
importante de programa del sistema.

Arquitectura de Computadores y Sistemas Operativos 3

Bibliografía

Ö A. Silberschatz, P. B. Galvin.
“Sistemas Operativos”. 5ª ed.

Ö W. Stallings.
“Operating Systems”, 3ª ed.

Ö J. Carretero, P. de Miguel
“Sistemas Operativos. Una versión
aplicada”
Arquitectura de Computadores y Sistemas Operativos 4

Tema 1: Introducción a los Sistemas Operativos 2


Arquitectura de Computadores

Índice

1.- Concepto de sistema operativo


2.- Evolución de los sistemas operativos
3.- Funciones del sistema operativo
4.- Modelo básico de un sistema informático
5.- Llamadas al sistema
6.- Programas del sistema
7.- Conceptos de planificación
8.- Criterios de planificación
9.- Algoritmos de planificación
10.- Evaluación de Algoritmos

Arquitectura de Computadores y Sistemas Operativos 5

1.- Concepto de sistema operativo

ÖSistema operativo
Programa que actúa como interfaz entre los usuarios y el
hardware del computador.
U s u a rio 2
U s u a rio 1 U s u a rio n

co mp ilad or
ed itor sistem a de
ba ses de dat os

P r o g ra m a s d e l s is te m a y ap lic a c io n e s

S is te m a O p er a tiv o

H a r d w a re

Abstracción de los componentes de un sistema informático


Arquitectura de Computadores y Sistemas Operativos 6

Tema 1: Introducción a los Sistemas Operativos 3


Arquitectura de Computadores

1.- Concepto de sistema operativo

ÖObjetivos principales de los sistemas operativos:

• Comodidad
Facilitar el uso de la máquina a los usuarios, proporcionando
un entorno cómodo para el desarrollo y ejecución de
programas y para el acceso a los recursos de la máquina

• Eficiencia
El s.o. debe administrar los recursos (hardware y software)
de la máquina de forma que se aprovechen de la manera
más conveniente.

Arquitectura de Computadores y Sistemas Operativos 7

1.- Concepto de sistema operativo

ÖConceptos de sistema operativo:

1.- Máquina extendida


Los recursos hw son difíciles de manejar y programar
(especialmente la E/S). El s.o. debe ocultar la complejidad
del hw y proporcionar una interfaz sencilla de utilizar.

2.- Gestor de recursos


En un computador los programas en ejecución deben
compartir los recursos disponibles que son limitados (CPU,
memoria, dispositivos de E/S, etc.). El s.o. establece la
política que determina a quién, cuándo, cuánto tiempo y la
cantidad de recurso que asigna.
Arquitectura de Computadores y Sistemas Operativos 8

Tema 1: Introducción a los Sistemas Operativos 4


Arquitectura de Computadores

Contenidos

1.- Concepto de sistema operativo


2.- Evolución de los sistemas operativos
p
• Primeros sistemas
• Sistemas por lotes (batch)
• Sistemas multiprogramados
• Sistemas de tiempo compartido
• Sistemas Unix
• Sistemas para PC
• Tendencias actuales
3.- Funciones del sistema operativo
4.- Modelo básico de un sistema informático
5.- Llamadas al sistema
6.- Programas del sistema
Arquitectura de Computadores y Sistemas Operativos 9

2.- Evolución de los sistemas


operativos

Primeros sistemas 1950 Sistemas


FORTRAN
y COBOL

Sistemas por lotes 1960


• simples
• multiprogramados CTSS
OS/360
Sistemas de TSO
tiempo compartido 1970
MULTICS
Primeros sistemas
Unix UNIX
CP/M
VMS
Sistemas operativos 1980
para PC
PC’s
s MS-DOS
MS DOS
Mac OS

1990 OS/2
Windows

Windows NT
2000

Arquitectura de Computadores y Sistemas Operativos 10

Tema 1: Introducción a los Sistemas Operativos 5


Arquitectura de Computadores

2.- Evolución de los sistemas


operativos
ÖPrimeros sistemas

• Tipos de sistema
¾Máquinas voluminosas operadas desde una consola
¾Teletipos, tarjetas y cintas perforadas
¾Sin sistema operativo

• Modo de operación
¾“Hands on”: el usuario hace las veces de operador delante de
la consola y tiene el control total sobre la máquina.

Arquitectura de Computadores y Sistemas Operativos 11

2.- Evolución de los sistemas


operativos
ÖPrimeros sistemas (ii)
• Software del sistema
No existe un sistema operativo como tal. El software
disponible es:
¾Cargadores
¾Compiladores / ensambladores
¾Bibliotecas con “manejadores de dispositivos”

• Problemática
P bl áti
¾Mala utilización de recursos caros (CPU, E/S) debido al
elevado tiempo de desarrollo y preparación delante de la
consola.
¾Interfaz muy rudimentaria con el usuario.

Arquitectura de Computadores y Sistemas Operativos 12

Tema 1: Introducción a los Sistemas Operativos 6


Arquitectura de Computadores

2.- Evolución de los Sistemas


Operativos
$END
ÖSistemas por lotes (batch) $RUN
$LOAD
p
simples $FTN
$JOB
• Modo de operación
¾Contratación de un operador profesional.
¾Ausencia de interacción directa usuario-
máquina.
Manejadores de
¾Agrupación por lotes de trabajos dispositivos
similares. Carga y
Monitor
¾Secuenciación automática de trabajos con secuenciación
de trabajos
tarjetas de control. Intérprete del
• Funciones del s.o. lenguaje
de control
Aparece el primer esbozo de sistema
ZONA DEL
operativo: el monitor residente. PROGRAMA
DE USUARIO

Arquitectura de Computadores y Sistemas Operativos 13

2.- Evolución de los sistemas


operativos
Ö Sistemas por lotes simples (ii): Problemática
Baja utilización de la CPU debido a los elevados tiempos de E/S

• Tipo de carga: trabajos con secuencia de ráfagas de CPU y


E/S, donde la diferencia de velocidad entre la CPU y la E/S es
de tres órdenes de magnitud o más

• Utilización de la CPU = tiempo_CPU_ocupada / tiempo_total

CPU E/S CPU E/S CPU E/S CPU E/S CPU

Arquitectura de Computadores y Sistemas Operativos 14

Tema 1: Introducción a los Sistemas Operativos 7


Arquitectura de Computadores

2.- Evolución de los sistemas


operativos
Ö Sistemas por lotes simples (iii): Soluciones

A) Operación fuera de línea: reducir los tiempos de E/S


utilizando computadores satélite para ejecutar las
operaciones de E/S sobre dispositivos lentos.

B) Spooling: reducir los tiempos de E/S utilizando el disco


como un buffer para compensar la diferencia de
velocidades entre la E/S y los periféricos lentos
lentos.

C) Multiprogramación: Aprovechar las ráfagas de espera


(de la E/S) de un trabajo para ejecutar las ráfagas de CPU
de otros trabajos.

Arquitectura de Computadores y Sistemas Operativos 15

2.- Evolución de los sistemas


operativos
A) Operación fuera de línea (off-line)
• La CPU trabaja con periféricos de E/S “rápidos” (cintas)
• Sistemas satélites se encargan de efectuar la E/S sobre
periféricos lentos (tarjetas, impresoras) y de transvasar los
datos entre periféricos lentos y rápidos.

cinta cinta
CPU

satélite satélite
li

cinta cinta
SAT SAT

Arquitectura de Computadores y Sistemas Operativos 16

Tema 1: Introducción a los Sistemas Operativos 8


Arquitectura de Computadores

3.- Evolución de los sistemas


operativos
B) Spooling (Simultaneous Peripheral Operation On Line)
• El disco actúa como un buffer de E/S:
¾Mientras el periférico “lento” está ocupado la CPU vuelca a disco.
¾Cuando el periférico está listo, se realiza la transferencia del disco
al periférico “lento”.

DISCO

Impresora
Lectora
Tarjetas

CPU

Arquitectura de Computadores y Sistemas Operativos 17

2.- Evolución de los sistemas


operativos
C) Multiprogramación
• Ejecución concurrente: ejecución paralela de varios trabajos.
¾Con un solo procesador se lleva a cabo alternando la CPU entre
procesos: las ráfagas de espera (de E/S) de un trabajo se
aprovechan para ejecutar las ráfagas de CPU de otros trabajos
¾Implica mantener varios trabajos en memoria simultáneamente.

• Objetivo: aumentar la utilización de la CPU

Trabajo 1 E/S CPU E/S CPU E/S

Trabajo 2 E/S CPU E/S CPU E/S

Trabajo 3 E/S CPU E/S CPU E/S

Utilización
CPU
Arquitectura de Computadores y Sistemas Operativos 18

Tema 1: Introducción a los Sistemas Operativos 9


Arquitectura de Computadores

2.- Evolución de los sistemas


operativos
ÖSistemas por lotes multiprogramados
Son sistemas por lotes en los que se introduce la
multiprogramación
lti ió

• El sistema operativo crece considerablemente en tamaño y


aparecen nuevas funciones:
¾Gestión de procesos: planificación de procesos, cambios de
contexto, etc.
¾Gestión de memoria: reparto y protección de la memoria
memoria, etc
etc.

• Problemática
¾La ausencia de interacción usuario-máquina hace difícil la
elaboración y depuración de programas

Arquitectura de Computadores y Sistemas Operativos 19

2.- Evolución de los sistemas


operativos

Ö Sistemas de tiempo compartido


• Tipos de sistema
¾Mainframes con muchas terminales que distribuyen potencia
de cálculo como una especie de “central eléctrica”.
¾Sistemas multiusuario que combinan la multiprogramación y
la interacción usuario-máquina a través de terminales

• Objetivos
¾Tiempos de respuesta aceptables
¾Mejora de la interfaz usuario-máquina
¾Multitarea: un usuario puede ejecutar varios procesos
concurrentemente.

Arquitectura de Computadores y Sistemas Operativos 20

Tema 1: Introducción a los Sistemas Operativos 10


Arquitectura de Computadores

2.- Evolución de los sistemas


operativos

Ö Sistemas de tiempo compartido (ii)


• Funciones del sistema operativo
¾Gestión de procesos: Madura el concepto de proceso y la
planificación.
¾Gestión de memoria: Nacen y se desarrollan las técnicas de memoria
virtual.
¾Gestión de ficheros: Nace la necesidad de sistemas de ficheros “en
línea” y comienzan a desarrollarse los precedentes de los sistemas de
ficheros actuales.
¾Necesidad de protección entre los diferentes usuarios y procesos
existentes.
• Crisis del software
La envergadura que alcanza el sistema operativo pone en tela de
juicio las metodologías existentes para desarrollar software
Arquitectura de Computadores y Sistemas Operativos 21

2.- Evolución de los sistemas


operativos
Ö Los primeros sistemas Unix

• Tipo de sistema
¾Minicomputadores: máquinas de arquitectura más sencilla
que los mainframes pero con mayor potencia de cálculo y
menos usuarios
¾Ejemplos: PDP-1 ... PDP-7 ... PDP-11

• Objetivos
¾Adaptar los objetivos de los sistemas de tiempo compartido
(MULTICS) a arquitecturas minicomputador
¾Utilización de lenguajes de alto nivel para el diseño del
sistema operativo

Arquitectura de Computadores y Sistemas Operativos 22

Tema 1: Introducción a los Sistemas Operativos 11


Arquitectura de Computadores

2.- Evolución de los sistemas


operativos
Ö Los primeros sistemas Unix (ii)

• Aportaciones de Unix
¾Diseño sencillo y potente. Dos únicas abstracciones: proceso
y fichero.
¾Introduce el modelo de sistema de ficheros actual.
¾Introduce un potente intérprete de órdenes.
¾Entorno de programación muy completo
completo.
¾Base para el desarrollo de la primera red de computadores y
TCP/IP.
¾Introduce el concepto de sistema abierto.

Arquitectura de Computadores y Sistemas Operativos 23

2.- Evolución de los sistemas


operativos
Ö Sistemas operativos para PCs

• Tipo
Ti de
d sistema
i t
¾Máquinas basadas en microprocesadores. Inicialmente de
arquitectura muy sencilla y limitada, pero con una continua
evolución en potencia.
¾Interfaces usuario-máquina muy sofisticadas: ratones,
pantallas gráficas, etc.
¾Pensadas para un solo usuario.

• Objetivos
¾Sencillez y comodidad del usuario: contrasta con los
primeros sistemas, donde los altos precios imponían la
optimización en la utilización de recursos.

Arquitectura de Computadores y Sistemas Operativos 24

Tema 1: Introducción a los Sistemas Operativos 12


Arquitectura de Computadores

2.- Evolución de los sistemas


operativos
Ö Sistemas operativos para PCs (ii)

• Características
C t í ti primeros
i sistemas
i t (MS DOS CP/M,
(MS-DOS, CP/M ...))
¾Poco más que un sistema de ficheros y un cargador.

• Características sistemas actuales (Windows, Linux, MacOS,


OS/2, ...)
¾Interfaz basada en sistema de ventanas y ratón (introducida por
Macintosh)
¾Si t
¾Sistemas de
d ficheros
fi h tipo
ti árbol
á b l (introducidos
(i t d id por UUnix)
i )
¾Capacidad multitarea
¾Acceso a la red
¾Progresiva introducción de mecanismos de protección (al estilo
UNIX)

Arquitectura de Computadores y Sistemas Operativos 25

2.- Evolución de los sistemas


operativos
ÖTendencias actuales
• Sistemas operativos en red
Permiten el acceso a recursos remotos. Proporcionan
p p
protocolos de
comunicación y gran variedad de aplicaciones para acceso a la red

• Sistemas distribuidos
Permiten el acceso a recursos remotos de manera transparente
(obviando el hecho de la distribución). Proporcionan entornos de
programación distribuida y acceso transparente a bases de datos
remotas
remotas.

• Sistemas multimedia
Sistemas que incorporan interfaces audiovisuales.
¾Desarrollo de nuevas interfaces usuario-máquina.
¾Desarrollo de protocolos de transmisión en tiempo real.
Arquitectura de Computadores y Sistemas Operativos 26

Tema 1: Introducción a los Sistemas Operativos 13


Arquitectura de Computadores

2.- Evolución de los sistemas


operativos
ÖTendencias de diseño actuales

• Tecnología orientada a objetos

• Modelo cliente-servidor para aplicaciones distribuidas

• Micronúcleos
Núcleos
úc eos de ssistema
ste a ope
operativo
at o co
con uuna
a funcionalidad
u c o a dad mínima
a
sobre los que desarrollar el resto del sistema como una
aplicación de usuario.

Arquitectura de Computadores y Sistemas Operativos 27

Contenidos

1.- Concepto de sistema operativo


2.- Evolución de los sistemas operativos
3.- Funciones del sistema operativo
• Gestión de procesos
• Gestión de la memoria
• Gestión de ficheros
• Gestión de la red
• Protección
4.- Modelo básico de un sistema
4
informático
5.- Llamadas al sistema
6.- Programas del sistema

Arquitectura de Computadores y Sistemas Operativos 28

Tema 1: Introducción a los Sistemas Operativos 14


Arquitectura de Computadores

3.- Funciones del sistema operativo

ÖFunciones del sistema operativo: Clasificación


• Gestión de procesos.
• Gestión de memoria.
• Gestión del sistema de ficheros.
• Gestión de dispositivos de E/S.
• Gestión de la red.
• Protección.

ÖCada una de las funciones viene caracterizada por una


serie de abstracciones que se han desarrollado para
resolver su problemática concreta.

Arquitectura de Computadores y Sistemas Operativos 29

3.- Funciones del sistema operativo

Ö Gestión de procesos
Es importante diferenciar entre proceso y programa:
• Programa: Lista de instrucciones
instrucciones. Ente pasivo
pasivo. Se almacena en
ficheros.
• Proceso: Ejecución de un programa. Ente activo. Requiere que el
programa se cargue previamente en memoria.

Compilación Enlace
programa programa programa
fuente objeto ejecutable
proceso

Biblioteca de
módulos
objeto programa
ejecutable

Arquitectura de Computadores y Sistemas Operativos 30

Tema 1: Introducción a los Sistemas Operativos 15


Arquitectura de Computadores

3.- Funciones del sistema operativo

Ö Gestión de procesos (ii)

• Problemática:
¾Ejecución concurrente: Simular la ejecución paralela de
varios programas sobre un único procesador (repartiendo para
ello el tiempo del procesador entre los procesos).
¾Planificación de procesos: Determinar a qué proceso se le
asigna el procesador en cada instante.

• Funciones:
¾Creación y eliminación de procesos.
¾Comunicación y sincronización de procesos.

Arquitectura de Computadores y Sistemas Operativos 31

3.- Funciones del sistema operativo

Ö Gestión de la memoria
• Está asociada a la gestión de procesos:
¾ Para ejecutar un proceso es necesario asignarle memoria y cargarlo en ella
¾ Cuando finaliza su ejecución, la memoria debe ser liberada.

• Problemática
¾ Aislamiento del proceso: Cada proceso debe tener una zona de memoria
independiente.
¾ Asignación de la memoria: Hay que llevar el control de las zonas de memoria
libres y ocupadas y la zona de memoria asignada a cada proceso.
¾ Memoria virtual: Técnica que permite direccionar la memoria desde un punto
d vista
de i t ló
lógico,
i sin
i ddepender
d d dell ttamaño
ñ o lla ubicación
bi ió dde lla zona d
de memoria
i
que finalmente se asigne al proceso.

• Funciones:
La gestión de memoria es transparente al programador: la asignación y la
liberación se hacen automáticamente con la creación y eliminación de
procesos.

Arquitectura de Computadores y Sistemas Operativos 32

Tema 1: Introducción a los Sistemas Operativos 16


Arquitectura de Computadores

3.- Funciones del sistema operativo

Ö Gestión de ficheros
• Fichero:
Ab t
Abstracción
ió para definir
d fi i una colección
l ió de
d iinformación
f ió no volátil.
látil S
Su
objetivo es proporcionar un modelo de trabajo sencillo con los
discos.
• Problemática:
¾Organización del sistema de ficheros: directorios
¾Asignación de espacio en disco a la información (de manera no
necesariamente contigua).
¾G tió d
¾Gestión dell espacio
i lib
libre y ocupado
d en di
disco.
¾Protección.
• Funciones para la gestión de ficheros:
¾Creación y eliminación de ficheros y directorios.
¾Manipulación de ficheros y directorios (lectura, escritura, copia, ...).

Arquitectura de Computadores y Sistemas Operativos 33

3.- Funciones del sistema operativo

Ö Gestión de dispositivos de E/S


• Objetivo
Proporcionar una interfaz de alto nivel de los dispositivos
de E/S sencilla de utilizar. En algunos sistemas esta interfaz
es semejante a la de los ficheros.
• Problemática
¾Manejadores de dispositivos (drivers):
Componentes del sistema operativo que ocultan la complejidad
y las peculiaridades del hardware de E/S y ofrecen una interfaz
independiente del dispositivo. El manejador (software) se
encarga de realizar la programación de los controladores de
dispositivos (hardware).
¾Planificar el uso de los dispositivos:
Proporcionar acceso exclusivo, spooling, etc.
Arquitectura de Computadores y Sistemas Operativos 34

Tema 1: Introducción a los Sistemas Operativos 17


Arquitectura de Computadores

3.- Funciones del sistema operativo

Ö Gestión de la red
Comprende varios niveles:
¾Manejadores (drivers) de tarjetas de red.

¾Protocolos de comunicación (TCP/IP, NetBIOS, etc.):


Resuelven el acceso a la red y proporcionan una interfaz para
comunicación entre procesos remotos.

¾Aplicaciones para uso de la red (WWW,


(WWW FTPFTP, etc
etc.).
)
Son programas de aplicación, construidos sobre la interfaz de
comunicación, que facilitan el acceso a recursos remotos
(ficheros, información,...)

Arquitectura de Computadores y Sistemas Operativos 35

3.- Funciones del sistema operativo

Ö Protección y seguridad
Mecanismo para permitir o denegar el acceso de un proceso de
un usuario determinado a un recurso ((ficheros,, dispositivos
p de
E/S).
• Problemática:
¾Diseño de un modelo y una política de protección para definir qué
accesos son legales y cuáles son ilegales.
¾Implementación de un mecanismo ejecutivo que vigile el
cumplimiento de las reglas de protección definidas.
¾Seguridad: Mecanismo para garantizar la privacidad de la
información frente a ataques intencionados por parte de intrusos.
Muchos de ellos se basan en técnicas para autenticar usuarios y
codificación criptográfica.
• Funciones:
¾Funciones para definir “propietarios” de recursos o niveles de
protección.
Arquitectura de Computadores y Sistemas Operativos 36

Tema 1: Introducción a los Sistemas Operativos 18


Arquitectura de Computadores

Contenidos

1.- Concepto de sistema operativo


2.- Evolución de los sistemas operativos
3.- Funciones del sistema operativo
4.- Modelo básico de un sistema
informático
• Funcionamiento de un sistema informático
• Protección Hardware
• Arquitectura
q g
general del sistema
5.- Llamadas al sistema
6.- Programas del sistema

Arquitectura de Computadores y Sistemas Operativos 37

4.- Modelo básico de un sistema


informático
ÖSistema Informático: Arquitectura Hardware
Cintas
disco disco impresora
p magnéticas

Controlador Controlador Controlador


de disco de impresora de cinta

bus del sistema

Controlador de memoria

Memoria

Arquitectura de Computadores y Sistemas Operativos 38

Tema 1: Introducción a los Sistemas Operativos 19


Arquitectura de Computadores

4.- Modelo básico de un sistema


informático
ÖSistema Informático: Arquitectura Hardware (ii)
• Los dispositivos de E/S y la CPU pueden trabajar
simultáneamente.

• Cada controlador de dispositivo se encarga de un tipo de


dispositivo.
¾Cada controlador de dispositivo tiene un buffer local y un
conjunto de registros de propósito especial.

• Programación del dispositivo


¾La CPU copia datos desde la memoria principal al buffer local
del manejador y viceversa
¾El controlador del dispositivo informa a la CPU de que ha
finalizado la operación generando una interrupción.

Arquitectura de Computadores y Sistemas Operativos 39

4.- Modelo básico de un sistema


informático
ÖSistema Informático: Interrupciones
• Cuando ocurre una interrupción, el hardware transfiere el
control al sistema operativo automáticamente.
• En concreto,
¾se transfiere el control al vector de interrupción que
almacena las direcciones de todos los manejadores de
interrupción, y desde allí...
¾...se salta al manejador (o rutina de servicio de interrupción)
concreto correspondiente al tipo de interrupción ocurrida.
• El hardware debe salvar la dirección de la instrucción
interrumpida, para poder continuar con su ejecución una vez
finalizado el proceso de la interrupción.
• Normalmente, mientras se está procesando una
interrupción, el sistema operativo mantiene inhabilitadas el
resto de interrupciones.
Arquitectura de Computadores y Sistemas Operativos 40

Tema 1: Introducción a los Sistemas Operativos 20


Arquitectura de Computadores

4.- Modelo básico de un sistema


informático

ÖProtección Hardware: Necesidad

• La ejecución simultánea de distintos procesos conlleva la


compartición de los recursos hardware del computador
entre dichos procesos.

• Esta compartición obliga al sistema operativo a conseguir que


un programa incorrecto (o malicioso) no provoque la
ejecución incorrecta de otros programas.

• Para conseguir este objetivo, el sistema operativo utiliza los


modos de ejecución del procesador

Arquitectura de Computadores y Sistemas Operativos 41

4.- Modelo básico de un sistema


informático

ÖProtección Hardware: Modos de ejecución


• Los procesadores modernos proporcionan la posibilidad de
f
funcionar
i en distintos
di ti t modos,
d d d en cada
donde d modod se d define
fi un
subconjunto válido de instrucciones que se permiten ejecutar.
• Para conseguir la protección hardware necesaria por el sistema
operativo, el procesador debe proporcionar al menos dos modos
de ejecución:
¾Modo usuario:
En este modo se ejecutan las instrucciones de los procesos de
usuario Sólo un subconjunto restringido de instrucciones están
usuario.
disponibles
¾Modo supervisor (privilegiado, kernel, monitor o sistema):
En este modo se ejecutan las instrucciones del sistema operativo. El
conjunto completo de las instrucciones del procesador está
disponible (no hay restricciones)

Arquitectura de Computadores y Sistemas Operativos 42

Tema 1: Introducción a los Sistemas Operativos 21


Arquitectura de Computadores

4.- Modelo básico de un sistema


informático
ÖProtección Hardware: Modos de ejecución (ii)
• Normalmente, en el procesador existe un bit que indica en qué modo se
encuentra actualmente: supervisor (0) / usuario (1)
• ¿Cómo se conmuta de un modo a otro?
¾De modo usuario a supervisor: lo realiza el hardware cuando se recibe una
interrupción. Así, el sistema operativo se ejecuta en modo supervisor.
¾De modo supervisor a usuario: lo realiza el hardware, justo antes de volver
del tratamiento de la interrupción al proceso interrumpido. Así, el proceso de
usuario sigue su ejecución en modo usuario.

Interrupción

supervisor usuario

Activar modo usuario

Arquitectura de Computadores y Sistemas Operativos 43

4.- Modelo básico de un sistema


informático
ÖProtección Hardware: Modos de ejecución (iii)

• Las instrucciones disponibles en modo supervisor y que no


lo están en modo usuario se denominan instrucciones
privilegiadas.

• Estas instrucciones están asociadas principalmente a tres


tipos de protección:
A) Protección de la Entrada/Salida
B) Protección de la memoria
C) Protección del procesador

Arquitectura de Computadores y Sistemas Operativos 44

Tema 1: Introducción a los Sistemas Operativos 22


Arquitectura de Computadores

4.- Modelo básico de un sistema


informático
A) Protección de E/S
• Todas las instrucciones de E/S son privilegiadas.
• Se debe asegurar que un programa de usuario nunca pueda
obtener el control del computador en modo supervisor:
¾Por ejemplo, se debe impedir que un programa pueda cambiar
durante su ejecución una dirección en el vector de
interrupciones.
• Esto implica que:
¾Se debe proporcionar protección de memoria para al menos
el vector de interrupciones y los manejadores de interrupción
¾En general, se requiere proteger la memoria del sistema
operativo del acceso por parte de los programas de usuario, y
proteger la memoria de cada proceso del acceso de los demás
programas de usuario.
Arquitectura de Computadores y Sistemas Operativos 45

4.- Modelo básico de un sistema


informático
B) Protección de memoria 0
Sistema
• Existen dos registros que determinan operativo
el rango de direcciones válidas a las 256000
que se permite acceder a un proceso:
¾ registro base Proceso de
usuario 1
mantiene la menor dirección física de
memoria permitida. 300040 300040
¾ registro límite: Proceso de registro base
contiene el tamaño del rango. El rango usuario 2
válido va desde la dirección lógica cero 420940 120900
a la “límite -1”. Proceso de
registro límite
• El sistema operativo mantiene el valor 880000
usuario
i 3
de ambos registros para cada proceso Proceso de
• Para cada proceso, la memoria usuario 4
1024000
ubicada fuera de su rango está
protegido mediante el siguiente
mecanismo

Arquitectura de Computadores y Sistemas Operativos 46

Tema 1: Introducción a los Sistemas Operativos 23


Arquitectura de Computadores

4.- Modelo básico de un sistema


informático
B) Protección de memoria (ii): Mecanismo
• Cada acceso de memoria generado en modo usuario:

trap al sistema
operativo (error de MEMORIA
No
direccionamiento)

< +
dirección

120900 300040
Registro Registro
límite base

• Sin embargo, en modo supervisor, el sistema operativo tiene acceso sin


restricciones tanto a la memoria de usuario como a la de sistema.
• Las instrucciones de carga de los registros base y límite son privilegiadas.
Arquitectura de Computadores y Sistemas Operativos 47

4.- Modelo básico de un sistema


informático
C) Protección de la CPU
• Hay que evitar que un proceso de usuario se apropie de la CPU (si
nunca hace E/S, puede no dejar ejecutarse a nadie más durante
mucho tiempo).
• Para ello, el sistema operativo se sirve de un temporizador (timer)
hardware.
• Cuando transcurre el tiempo que ha especificado el sistema operativo,
el temporizador interrumpe a la CPU, dando al sistema la oportunidad
d ejecutarse.
de j t A
Asíí se asegura que ell sistema
i t mantiene
ti ell control.
t l
• Además, los temporizadores son utilizados por el sistema para
¾Implementar los sistemas de tiempo compartido.
¾Registrar la hora en curso

• La carga de un temporizador es una instrucción privilegiada.


Arquitectura de Computadores y Sistemas Operativos 48

Tema 1: Introducción a los Sistemas Operativos 24


Arquitectura de Computadores

4.- Modelo básico de un sistema


informático
ÖArquitectura general del sistema
Dado que las instrucciones de E/S son privilegiadas, ¿cómo
realizan
li llos procesos de
d usuario
i operaciones
i de
d E/S ?

Llamadas al sistema

Arquitectura de Computadores y Sistemas Operativos 49

Contenidos

1.- Concepto de sistema operativo


2.- Evolución de los sistemas operativos
3.- Funciones del sistema operativo
4.- Modelo básico de un sistema
informático
5.- Llamadas al sistema
6.- Programas del sistema

Arquitectura de Computadores y Sistemas Operativos 50

Tema 1: Introducción a los Sistemas Operativos 25


Arquitectura de Computadores

5.- Llamadas al sistema

ÖConcepto
• Es el método utilizado por un proceso de usuario para solicitar
servicios al sistema operativo
• Por tanto, el conjunto de llamadas al sistema define:
¾El conjunto de servicios básicos que proporciona el sistema operativo
¾La interfaz entre un proceso y el sistema operativo.

ÖImplementación
• Habitualmente toma la forma de una excepción (trap) a una posición
específica del vector de interrupciones (interrupción software)
• Normalmente se proporciona una interfaz como funciones de biblioteca de
lenguajes de programación que ocultan el trap y dan la apariencia de
llamadas a procedimientos o funciones predefinidas.
Arquitectura de Computadores y Sistemas Operativos 51

5.- Llamadas al sistema


ÖSecuencia de acciones asociadas a una llamada al sistema
....... Programas
Programa de usuario 2 de usuario
Modo Usuario

Llamada al
Memoria principal

sistema ° Trap o int. software


Programa de usuario 1 ± Determinación del servicio
² Llamada al p.servidor
³ ³ Retorno del control
°
M

Sistema Operativo
² Procedimiento Modo supervisor o kernel

± Servidor

Arquitectura de Computadores y Sistemas Operativos 52

Tema 1: Introducción a los Sistemas Operativos 26


Arquitectura de Computadores

5.- Llamadas al sistema

ÖEjemplo: llamadas al sistema de Unix


Gestión de procesos Descripción
pid = fork ( ) Crear un proceso hijo
s = waitpid (pid, status, opts) Esperar finalización de un hijo
s = execve(name, argv, envp) Cambiar imagen de memoria
exit(status) Invocar finalización y devolver estado

Gestión de señales Descripción


s = sigaction (sig, act, oact) Especificar una acción para una señal
s = kill (pid,
(pid sig) Enviar una señal a un proceso
residual = alarm (seconds) Planificar una señal SIGALRM al cabo de un tiempo
s=pause () Suspender el que invoca hasta que llegue una señal

Gestión de memoria Descripción


size = brk (addr) Modificar tamaño seg. de datos (no POSIX)
Arquitectura de Computadores y Sistemas Operativos 53

5.- Llamadas al sistema

ÖEjemplo: llamadas al sistema de Unix (ii)


Gestión de ficheros/directorios Descripción
fd = creat(name,
creat(name mode) Crear un fichero
fd = open(file, how) Abrir un fichero para lectura y/o escritura
s = close(fd) Cerrar un fichero abierto
n = read (fd, buffer, nbytes) Leer de un desc. de fichero sobre un buffer
n = write (fd, buffer nbytes) Escribir de un buffer sobre un desc. de fichero
pos = lseek (fd, offset, whence) Posicionar el puntero de posición
s = stat (name,buf), Obtener atributos de un fichero de su nodo-i
s = mkdir(name, mode) Crear un directorio
s = rmdir(name) Borrar un directorio vacío
s = link (name1, name2) Crear una entrada de directorio para un fichero existente
s = unlink(name) Borrar una entrada de directorio
s = chdir(dirname) Cambiar el directorio de trabajo
s = chmod(name, mode) Cambiar bits de protección de un fichero

Arquitectura de Computadores y Sistemas Operativos 54

Tema 1: Introducción a los Sistemas Operativos 27


Arquitectura de Computadores

5.- Llamadas al sistema

ÖEn resumen, los sistemas operativos modernos son


programas
p g dirigidos
g p
por eventos

• Si no hay procesos que ejecutar, ni dispositivos de E/S que


atender, ni usuarios a los que responder, el sistema operativo
permanecerá parado a la espera de que ocurra algún evento.

• Los eventos se señalan mediante interrupciones (hardware


o software).

Arquitectura de Computadores y Sistemas Operativos 55

Contenidos

1.- Concepto de sistema operativo


2.- Evolución de los sistemas operativos
3 Funciones
3.- F i d l sistema
del i t operativo
ti
4.- Modelo básico de un sistema
informático
5.- Llamadas al sistema
6.- Programas del sistema
• Concepto
• Clasificación
• Intérprete de órdenes
¾Órdenes externas
¾Órdenes internas

Arquitectura de Computadores y Sistemas Operativos 56

Tema 1: Introducción a los Sistemas Operativos 28


Arquitectura de Computadores

6.- Programas del sistema

ÖConcepto
• Utilidades del sistema operativo que se ejecutan como
procesos de usuario y proporcionan un entorno más cómodo
cómodo.
• Son programas escritos en un lenguaje de programación (como C)
que realizan llamadas al sistema.

ÖClasificación
• Intérpretes de órdenes: sh, ksh, bash
• Tratamiento de ficheros y directorios: mkdir,, cp,
p, mv,, ls,, etc.
• Filtros: grep, sort, head, tail, etc.
• Desarrollo de programas: editores, compiladores, ensambladores,
etc.
• Sistemas de ventanas: X11
• Comunicaciones: mail, ftp, rlogin, etc.
Arquitectura de Computadores y Sistemas Operativos 57

6.- Programas del sistema

ÖIntérprete de órdenes
• Es la interfaz p
primaria entre el usuario y el sistema
operativo.
• Es un programa que lee de su entrada estándar una orden
introducida por un usuario, la analiza y la ejecuta.
• En la mayoría de sistemas operativos, el intérprete de
órdenes es un programa que se ejecuta como un proceso
de usuario
usuario.
• Ejemplos: el Shell de Unix y el COMMAND.COM de MS-
DOS
• Ofrecen dos tipos de órdenes: externas e internas

Arquitectura de Computadores y Sistemas Operativos 58

Tema 1: Introducción a los Sistemas Operativos 29


Arquitectura de Computadores

6.- Programas del sistema

ÖÓrdenes externas
• El intérprete
p de órdenes crea un p
proceso p para ejecutar
j la
orden. De esta forma, la orden es en realidad cualquier
fichero ejecutable.
• Ejemplo: cp f1 f2

ÖÓrdenes internas
• El intérprete de órdenes ejecuta él mismo la orden. Es decir
el código que ejecuta la orden forma parte del propio
intérprete.
• Ejemplo: cd /home

Arquitectura de Computadores y Sistemas Operativos 59

Contenidos

1.- Concepto de sistema operativo


2.- Evolución de los sistemas operativos
3.- Funciones del sistema operativo
4.- Modelo básico de un sistema
informático
5.- Llamadas al sistema
6.- Programas del sistema

Resumen de conceptos básicos

Arquitectura de Computadores y Sistemas Operativos 60

Tema 1: Introducción a los Sistemas Operativos 30


Arquitectura de Computadores

Resumen conceptos básicos

ÖSistema operativo
Programa que actúa como interfaz entre los usuarios y el
h d
hardware d
dell computador.
t d
ÖObjetivos:
• Comodidad:
Facilitar el uso de la máquina a los usuarios, proporcionando
un entorno cómodo para el desarrollo y ejecución de
programas y para el acceso a los recursos de la máquina.
• Eficiencia:
f
El sistema operativo debe administrar los recursos
(hardware y sofware) de la máquina de forma que se
aprovechen de la manera más conveniente.

Arquitectura de Computadores y Sistemas Operativos 61

Resumen conceptos básicos


• Núcleo del s.o.: Parte residente del s.o., que
se carga al arrancar la máquina y se mantiene
siempre en memoria.
• Procesos
P de
d usuario: i Aplicaciones
A li i h
hechas
h
Procesos shell compila- copy
de usuario dor por programadores que se ejecutan sobre el
Llamadas s.o. Piden los servicios del s.o. invocando
al sistema “llamadas al sistema”.
Núcleo • Llamadas al sistema: Interfaz formada por
del s.o. un conjunto de servicios que el s.o. ofrece a
los procesos de usuario.
Hardware • Programas
P d
dell sistema:
i t Utilid d d
Utilidades dell s.o.
que se ejecutan como procesos de usuario
(fuera del núcleo). Ejemplos:
¾ Editores, compiladores, montadores, ...
¾ Programas o ventanas para manipulación de ficheros
y directorios (copy, mkdir, ...)
¾ Programas de acceso a la red
Arquitectura de Computadores y Sistemas Operativos 62

Tema 1: Introducción a los Sistemas Operativos 31


Arquitectura de Computadores

Resumen conceptos básicos


ÖModos de ejecución
• La mayor parte de los procesadores actuales tienen como mínimo dos
modos de funcionamiento o de ejecución:
¾S
¾Supervisor
i o privilegiado:
i il i d Es E posible
ibl acceder
d a ttodas
d llas iinstrucciones
t i
del procesador. Con ello se pueden utilizar todos los recursos, y realizar
acciones tales como programar los controladores de dispositivo, atender
interrupciones, programar la unidad de gestión de memoria (MMU), etc.
¾Usuario: En este modo no se pueden utilizar las instrucciones del
procesador relacionadas con la E/S, la gestión del modo de ejecución, la
gestión de la memoria y otras. Estas instrucciones se catalogan como
privilegiadas.

• En modo supervisor únicamente se ejecuta el sistema operativo. Por tanto


es el único programa que tiene control y acceso a todos los recursos.
• En modo usuario se ejecutan los demás programas. Para utilizar los
recursos no accesibles en modo usuario (aquellos que requieran
instrucciones privilegiadas), se tienen que realizar llamadas al sistema.
Arquitectura de Computadores y Sistemas Operativos 63

7.- Concepto de proceso

5.- Llamadas al sistema


6.- Programas del sistema
7.- Concepto de proceso
8.- Conceptos de planificación.
9.- Criterios de planificación.
10 - Algoritmos de planificación.
10. planificación
11.- Evaluación de Algoritmos.

Arquitectura de Computadores y Sistemas Operativos 64

Tema 1: Introducción a los Sistemas Operativos 32


Arquitectura de Computadores

7.- Concepto de proceso

ÖConcepto de proceso:
Existen diferentes visiones complementarias del
concepto de proceso:
• Programa en ejecución.
• Unidad de asignación de recursos.
• Proceso como procesador virtual.

Arquitectura de Computadores y Sistemas Operativos 65

7.- Concepto de proceso

ÖProceso como programa en ejecución:


• Programa: Lista de instrucciones. Ente pasivo.
• Proceso: Programa en ejecución. Ente activo.
Compilación Enlace

programa programa programa


fuente objeto ejecutable Proceso

programa
Biblioteca de
ejecutable
módulos
objeto

Arquitectura de Computadores y Sistemas Operativos 66

Tema 1: Introducción a los Sistemas Operativos 33


Arquitectura de Computadores

7.- Concepto de proceso

ÖProceso como unidad de asignación de recursos:


• Para ejecutar un programa se necesita un entorno formado
por una serie
i dde recursos: memoria,
i ddescriptores
i t d
de
ficheros y otros atributos del proceso.
• Un proceso se puede considerar como la unidad de
propiedad de todos esos recursos.

Tiempo
de CPU

P1
Memoria Tabla de
descriptores
ficheros

Otros
atributos

Arquitectura de Computadores y Sistemas Operativos 67

7.- Concepto de proceso

ÖProceso como procesador virtual:


• Proceso: cada una de las actividades paralelas que se ejecutan en
la máquina.
máquina
• El sistema operativo simula la existencia de n procesadores
virtuales (procesos) a partir de una CPU o procesador físico.

Proceso 1 Proceso 2 Proceso n

Arquitectura de Computadores y Sistemas Operativos 68

Tema 1: Introducción a los Sistemas Operativos 34


Arquitectura de Computadores

7.- Concepto de proceso

ÖEjecución secuencial y ejecución concurrente.


• Ejecución secuencial: La ejecución de un proceso se
dice que es secuencial porque sus operaciones son
ejecutadas por la CPU una tras otra, en el orden que dicte
el programa.
• Ejecución concurrente: La ejecución de dos procesos
se dice que es concurrente porque estos se pueden
ejecutar en paralelo.
¾Concurrencia real: Si cada proceso se ejecuta sobre una
CPU.
¾Concurrencia virtual: La CPU reparte su tiempo entre los
procesos para simular su ejecución paralela.

Arquitectura de Computadores y Sistemas Operativos 69

7.- Concepto de proceso

ÖEstructura de un proceso
Proceso P0

CPU E/S CPU E/S CPU

Multiprogramación: Se intercalan ráfagas de CPU con ráfagas


de E/S

Proceso P0

CPU E/S CPU E/S CPU


Proceso P1

CPU E/S CPU E/S CPU

Arquitectura de Computadores y Sistemas Operativos 70

Tema 1: Introducción a los Sistemas Operativos 35


Arquitectura de Computadores

7.- Concepto de proceso

ÖEstados de un proceso
Al ejecutar un proceso éste va cambiando de estado. El estado
de un proceso se define
f como el comportamiento que presenta
en un instante dado:
• Activo: El proceso se puede ejecutar. No hay impedimentos en
asignarle alguna CPU.
¾Ejecución: El proceso tiene asignada una CPU, las instrucciones se
están ejecutando.
¾Preparado: El proceso puede ser ejecutado pero está esperando que
se le asigne una CPU libre
libre. Puede haber varios procesos en este
estado.
• Suspendido: No puede ser ejecutado porque el proceso se
encuentra esperando un evento como:
¾ la finalización de una operación de E/S (una lectura de teclado)
¾ la comunicación con otro proceso, etc.
Arquitectura de Computadores y Sistemas Operativos 71

Diagrama de estados y transiciones

Proceso terminado
por otro proceso

ACTIVO
Terminación
Admitido
Elegido Planificador
NUEVO TERMINADO

EN
PREPARADO EJECUCIÓN
Expulsión

Fin E/S Esperar E/S


o o evento
llegada evento
SUSPENDIDO
Proceso terminado
por otro proceso

Arquitectura de Computadores y Sistemas Operativos 72

Tema 1: Introducción a los Sistemas Operativos 36


Arquitectura de Computadores

7.- Concepto de proceso

ÖOperaciones sobre procesos (1)


• Creación: Supone asignar todos los recursos que el proceso
necesita p
para su ejecución,
j , como p
p.e. memoria.
¾Ejemplo en UNIX: fork(). La utiliza el proceso init para crear un
proceso que gestione cada terminal y el shell cada vez que recibe
una nueva orden del usuario (si ésta es externa).
• Terminación: Supone liberar los recursos previamente
asignados al proceso. Esta terminación puede ser:
¾Terminación normal: El proceso invoca su propia terminación.
Ejemplo en UNIX: exit()
¾Terminación anormal: El proceso termina por iniciativa del
sistema operativo al detectar alguna condición de error (violación
de límites, errores aritméticos) o por iniciativa de algún otro
proceso.
Ejemplo en UNIX: kill() y señales.
Arquitectura de Computadores y Sistemas Operativos 73

7.- Concepto de proceso

ÖOperaciones sobre procesos (2):


• Suspensión: Supone pasar un proceso al estado
suspendido para que espere un evento o E/S
E/S.
¾Ejemplo en UNIX: read() sobre un tubo vacío.
• Activación: Pasar un proceso al estado activo cuando se
produce el evento que esperaba.
¾Ejemplo en UNIX: un proceso efectúa un write() sobre un tubo
en el que había un lector esperando. El lector se reactiva.

Arquitectura de Computadores y Sistemas Operativos 74

Tema 1: Introducción a los Sistemas Operativos 37


Arquitectura de Computadores

8.- Concepto de planificación

5.- Llamadas al sistema


6.- Programas del sistema
7.- Concepto de proceso
8.- Concepto de planificación.
9.- Criterios de planificación.
10 - Algoritmos de planificación.
10. planificación
11.- Evaluación de Algoritmos.

Arquitectura de Computadores y Sistemas Operativos 75

8.- Concepto de planificación

ÖRecursos reutilizables en serie


• Escasez de recursos: el número de recursos es
inferior al número de procesos que compiten por ellos.
• Recursos reutilizables en serie: aquellos que sólo
pueden estar asignados a un proceso en un instante de
tiempo dado. Ejemplos: Impresoras, CPU.
• Planificación de recursos: Con recursos reutilizables
en serie el s.o. tiene que aplicar una política para
asignar recursos a los procesos.

Arquitectura de Computadores y Sistemas Operativos 76

Tema 1: Introducción a los Sistemas Operativos 38


Arquitectura de Computadores

8.- Concepto de planificación

ÖPlanificador
Elemento del sistema operativo que determina a qué
proceso se le asigna un determinado recurso (p. e.
CPU) en cada instante de tiempo, de acuerdo con
alguna política.
En el caso de que el recurso a asignar sea la CPU se
distinguen entre tres planificadores:
• Planificador a largo plazo.
• Planificador a medio plazo
• Planificador a corto plazo.

Arquitectura de Computadores y Sistemas Operativos 77

Diagrama de colas del sistema

Planificador a
Proceso largo plazo Expulsión
nuevo
Cola de procesos Planificador a Proceso
esperando ejecución corto plazo terminado
Cola de procesos
preparados CPU
Planificador a
medio plazo Cola de procesos
parcialmente
ejecutados

Cola de procesos
Recursos E/S esperando E/S

Colas

Cola de procesos
Suceso esperando suceso

Arquitectura de Computadores y Sistemas Operativos 78

Tema 1: Introducción a los Sistemas Operativos 39


Arquitectura de Computadores

8.- Concepto de planificación

ÖPlanificador a largo plazo


• En un sistema de procesos por lotes, los procesos recién
incorporados permanecen detenidos en una cola de procesamiento
por lotes, en el disco. El planificador a largo plazo creará procesos a
partir de la cola cuando sea posible (carga en memoria los procesos
de nueva creación)
• Dos son las decisiones que toma el planificador a largo plazo:
¾ Cuando crear un nuevo proceso: controla el grado de multiprogramación.
¾ Cuál va a ser el siguiente proceso a admitir: algoritmo FCFS (first-come first-
served), prioridades, tiempos de ejecución esperados, exigencias E/S.
• Controla
C t l ell gradod d de multiprogramación:
lti ió conjunto
j t dde procesos que
residen simultáneamente en memoria y se ejecutan concurrentemente.
• Selecciona procesos de la cola de procesos que están esperando ser
ejecutados y los carga en memoria.
• Se ejecuta con poca frecuencia, ya que pueden transcurrir minutos
entre la creación de nuevos procesos en el sistema.
Arquitectura de Computadores y Sistemas Operativos 79

8.- Concepto de planificación

ÖProcesos orientados a CPU u orientados a E/S


• Un proceso orientado a CPU es aquel que invierte la mayor parte
de su tiempo en efectuar cálculos y genera solicitudes de E/S con
poca frecuencia.
Proceso orientado a CPU

CPU E/S CPU E/S CPU

• Un proceso orientado a E/S es aquel que emplea más tiempo en


realizar E/S que en efectuar cálculos.
Proceso orientado a E/S

CPU E/S CPU E/S CPU

El planificador a largo plazo debe seleccionar una mezcla


adecuada de procesos orientados a CPU y orientados a E/S.

Arquitectura de Computadores y Sistemas Operativos 80

Tema 1: Introducción a los Sistemas Operativos 40


Arquitectura de Computadores

8.- Concepto de planificación

ÖPlanificador a medio plazo (gestiona el espacio de intercambio)


• Cuando un usuario se conecta al sistema, se genera una solicitud
de crear un proceso
proceso, los usuarios de tiempo compartido no pueden
ser puestos en una cola y esperar a que el sistema pueda
aceptarlos (no planificador a largo).
• En ocasiones es interesante sacar procesos de memoria para
reducir el grado de multiprogramación o para mejorar la mezcla de
procesos (orientados a CPU o E/S).
• Se encarga de controlar qué procesos, de entre todos los iniciados
deben estar en memoria (preparados) y qué otros deben estar en el
espacio de intercambio.
• El planificador a medio plazo se encarga de sacar el proceso y
volverlo a introducir más tarde. El proceso continuará su ejecución
a partir del punto donde se había quedado.
• A este esquema comúnmente se le denomina “swapping”.
Arquitectura de Computadores y Sistemas Operativos 81

8.- Concepto de planificación

ÖPlanificador a corto plazo


• Selecciona un proceso de la cola de procesos preparados
para ejecución
j ió y lle asigna
i lla CPU
CPU.
• Se ejecuta con mucha frecuencia. El proceso seleccionado
quizás se ejecute únicamente durante unos milisegundos
antes de iniciar una solicitud de E/S.
• Se ejecuta cuando ocurre un evento que conduce a la
interrupción del proceso actual, expulsando el proceso a
favor de otro.
otro Ejemplos de eventos:
¾Interrupciones de reloj.
¾Interrupciones de E/S.
¾Llamadas al sistema operativo.
¾Señales.

Arquitectura de Computadores y Sistemas Operativos 82

Tema 1: Introducción a los Sistemas Operativos 41


Arquitectura de Computadores

9.- Criterios de planificación

8 Conceptos de planificación
8.- planificación.
9.- Criterios de planificación.
10.- Algoritmos de planificación.
11.- Evaluación de Algoritmos.

Arquitectura de Computadores y Sistemas Operativos 83

9.- Criterios de planificación

ÖCriterios de planificación
Algunos de los criterios y características que un planificador debe
conseguir son:
• Utilización: Los recursos se han de mantener tan ocupados como sea
posible.
¾Tiempo_recurso_ocupado / Tiempo_total
• Rendimiento: Maximizar el número de tareas procesadas por unidad
de tiempo.
¾Número_de_trabajos_terminados / Tiempo_total
• Tiempo de retorno: Tiempo que tarda en ejecutarse un proceso.
¾Tiempo de salida - Tiempo de entrada = ∑ TCPU + ∑ TE/S + ∑ TColas

Arquitectura de Computadores y Sistemas Operativos 84

Tema 1: Introducción a los Sistemas Operativos 42


Arquitectura de Computadores

9.- Criterios de planificación

ÖCriterios de planificación (2):


• Tiempo de espera:
¾Tiempo que un proceso está en la cola de procesos
preparados.
• Tiempo de respuesta:
¾Tiempo que transcurre desde que se presenta una solicitud
hasta que el sistema comienza a contestar (en procesos
interactivos).
• Equidad:
qu dad
¾Garantizar que cada proceso obtiene la proporción justa de
CPU. Es decir, que los procesos sean tratados de manera
igualitaria. El extremo opuesto a equidad sería inanición.

Arquitectura de Computadores y Sistemas Operativos 85

9.- Criterios de planificación

ÖOptimización de los criterios de planificación.


No se pueden optimizar todos los criterios a la vez porque
algunos
g de ellos son contrapuestos.
p Cada tipo
p de sistema
tiene sus prioridades:
• Sistema por lotes: Maximizar utilización y rendimiento y
minimizar el tiempo de retorno y de espera.
• Sistemas interactivos: Proporcionar equidad y hacer el
tiempo de respuesta razonable y predecible.

ÖLa multiprogramación en sí misma supone una mejora de


muchos de los criterios anteriores respecto a la ejecución
secuencial.
ÖLos algoritmos de planificación también tienen como objetivo
mejorar algunos de los criterios mencionados.
Arquitectura de Computadores y Sistemas Operativos 86

Tema 1: Introducción a los Sistemas Operativos 43


Arquitectura de Computadores

9.- Criterios de planificación

Utilización CPU = 6/10 = 60


Productividad = 2 trabajos/10
SIN MULTIPROGRAMACIÓN = 0.2
Tiempo de retorno = (5+10)/2
= 7.5
Proceso P0 Proceso P1

CPU E/S CPU E/S CPU CPU E/S CPU E/S CPU

CON MULTIPROGRAMACIÓN
Utilización CPU = 100%
Se intercalan ráfagas de CPU con ráfagas de E/S Productividad = 2 trabajos /6
=00.33
33
Proceso P0 Tiempo de retorno = (5 + 6)/2
= 5.5
CPU E/S CPU E/S CPU Este representa un caso
Proceso P1 extremo. En el caso de TCPU
<< TE/S la utilización de la
CPU E/S CPU E/S CPU CPU sería < 100%

Arquitectura de Computadores y Sistemas Operativos 87

10.- Algoritmos de planificación

8.-- Conceptos de planificación


8 planificación.
9.- Criterios de planificación.
10.- Algoritmos de planificación.
11.- Evaluación de Algoritmos.

Arquitectura de Computadores y Sistemas Operativos 88

Tema 1: Introducción a los Sistemas Operativos 44


Arquitectura de Computadores

10.- Algoritmos de planificación

ÖObjetivo
Decidir a cuál de los procesos que están en la cola de
procesos listos se le asignará la CPU.
ÖClasificación de algoritmos de planificación:
• Por orden de llegada (FCFS).
• Circular (RR, round-robin)
• Por prioridades
¾Sin expulsión
p ((“Non p
preemptive”)
p ) / Con expulsión
p
(“Preemptive”)
¾Estáticos / Dinámicos
• Combinación de algoritmos: Clases de prioridades.

Arquitectura de Computadores y Sistemas Operativos 89

10.- Algoritmos de planificación

ÖServicio por orden de llegada (FCFS : “first-come, first-served”)


La CPU es asignada a todos los procesos en el mismo orden que
lo solicitan. Proceso T llegada
T. T CPU
T.
P1 0 24
P2 0 3
P3 0 3

Caso 1) Orden de llegada


P1, P2, P3
P1 P2 P3
T. de espera medio:
(0 + 24 + 27) / 3 = 17 0 24 27 30

Caso 2) Orden de llegada


P2, P3, P1
P2 P3 P1
T. de espera medio: 0 3 6 30
(6 + 0 + 3) / 3 = 3
Arquitectura de Computadores y Sistemas Operativos 90

Tema 1: Introducción a los Sistemas Operativos 45


Arquitectura de Computadores

10.- Algoritmos de planificación

ÖServicio por orden de llegada (FCFS : “first-come, first-served”)


ÖPropiedades
•Sin
Sin expulsión: Cuando un proceso tiene asignada la CPU,
CPU la conserva hasta
que desee liberarla, bien sea porque finaliza o por solicitud de una E/S.
ÖVentajas
•Fácil de implementar
ÖInconvenientes
•No optimiza el tiempo de espera: es muy variable en función del orden de
llegada de los procesos y la duración de los intervalos de CPU.
•Efecto convoy: Los trabajos largos retrasan a los cortos (por ejemplo: piense
en un sistema con un único trabajo con largas ráfagas de CPU y muchos
trabajos con ráfagas cortas de CPU).
•No es adecuado para sistemas interactivos: Por ser sin expulsión un trabajo
con una ráfaga de CPU larga puede provocar una espera larga a otros
usuarios.

Arquitectura de Computadores y Sistemas Operativos 91

10.- Algoritmos de planificación

ÖPrioridad al trabajo más breve ( SJF: shortest-job-


first )
• Se asocia a cada trabajo (proceso) la duración del siguiente
intervalo de CPU que van a necesitar (NO es como una
FIFO).
• Se asigna la CPU al trabajo con menor tiempo asociado.
• Sin expulsión: cuando un proceso tiene asignada la CPU, la
conserva hasta que desee liberarla.

Arquitectura de Computadores y Sistemas Operativos 92

Tema 1: Introducción a los Sistemas Operativos 46


Arquitectura de Computadores

10.- Algoritmos de planificación

ÖEjemplo: Prioridad al trabajo más breve (SJF).

Procesos Instante de llegada Duración


P1 0 7
P2 2 4
P3 4 1
SJF (sin expulsión) P4 5 4

•Media del tiempo de espera: (0 + 6 + 3 + 7) / 4 = 4


P1 P3 P2 P4

0 7 8 12 16

Tiempo de espera medio: (0 + 3 + 6 + 7) / 4 = 4

Arquitectura de Computadores y Sistemas Operativos 93

10.- Algoritmos de planificación

ÖVariante con expulsión del SJF ( SRTF: Shortest


Remaining Time First )
Prioridad al que le resta menos tiempo (para finalizar)
• La CPU es asignada al proceso que le queda menos tiempo
para acabar la ráfaga de CPU en curso.
• Variante con expulsión de SJF: Si llega un proceso con un
intervalo de CPU inferior al tiempo que le falta al proceso en
ejecución para abandonar la CPU, entonces el nuevo
proceso se hace con la CPU
CPU.

Arquitectura de Computadores y Sistemas Operativos 94

Tema 1: Introducción a los Sistemas Operativos 47


Arquitectura de Computadores

10.- Algoritmos de planificación


P ro ceso s T . L le g a d a D u r a c ió n
P1 0 7
ÖEjemplo del SRTF. P2 2 4
Diagrama de Gantt P3
P4
4
5
1
4

P1 P2 P3 P2 P4 P1

0 2 4 5 7 11 16

Cronograma por procesos

P1
P2
P3
P4

Media del tiempo de espera: (9 + 1 + 0 + 2 ) / 4 = 3


Arquitectura de Computadores y Sistemas Operativos 95

10.- Algoritmos de planificación

Ö SRTF: Shortest Remaining Time First


ÖVentajas
• SRTF optimiza la media de tiempo de espera.
ÖInconvenientes
• El tiempo del siguiente intervalo de CPU es difícil de
predecir porque no sabemos a priori si nos va a interrumpir
la entrada de un nuevo proceso con intervalo de CPU
menor. Esto lo hace difícil de implementar para un
planificador
l ifi d a corto t plazo.(En
l (E llos sistemas
i t por llotes
t ell
usuario puede aportar información).
• Posibilidad de inanición: los trabajos largos no se ejecutarán
mientras haya trabajos cortos.

Arquitectura de Computadores y Sistemas Operativos 96

Tema 1: Introducción a los Sistemas Operativos 48


Arquitectura de Computadores

10.- Algoritmos de planificación

ÖPlanificación SJF/SRTF
Aunque no se conoce la longitud de la siguiente ráfaga se puede
predecir su valor esperando
p p que
q sea de longitud
g similar a las
anteriores.
ÖEstimación del siguiente intervalo de CPU
Se utiliza la media exponencial:
T n+1 = α tn + (1 - α) Tn
• tn: tamaño real del n-ésimo intervalo de CPU
• Tn: Tamaño estimado del n-ésimo intervalo de CPU.
• α : coeficiente exponencial 0 < α < 1
• Caso α = 1, los datos históricos son irrelevantes y sólo tiene
importancia la ráfaga más reciente de CPU. T n+1 = tn
• Caso α = 0, la historia reciente no tienen efecto, se supone que las
condiciones actuales son transitorias. T n+1 = Tn
• Es habitual que α = 1/2, por lo que la historia reciente y antigua se
ponderan de igual manera.

Arquitectura de Computadores y Sistemas Operativos 97

10.- Algoritmos de planificación


ÖPlanificación SJF/SRTF
ÖEstimación del siguiente intervalo de CPU
Desarrollando la fórmula y sustituyendo T n+1 por tn llegamos a:
T n+1 = α tn + (1 - α) α tn-1 + … + (1 - α)j α tn-j + … + (1 - α)n+1 T0

12
Puesto que tanto (1 - α) como α
son menores o iguales que 1 10
cada término sucesivo tiene
8
longitud de ráfaga

menos peso que el anterior.


6

Ejemplo de 4
promedio 2
exponencial para
α = 1/2, y T0= 10
tiempo

Ráfaga de CPU: 6 4 6 4 13 13 13
Predicción: 10 8 6 6 5 9 11
Arquitectura de Computadores y Sistemas Operativos 98

Tema 1: Introducción a los Sistemas Operativos 49


Arquitectura de Computadores

10.- Algoritmos de planificación

ÖPlanificación por prioridades


• Se asocia a cada proceso un número (entero), llamado
prioridad
i id d dde acuerdo
d con algún
l ú criterio.
it i
• Se asigna la CPU al trabajo con mayor prioridad
(normalmente, menor número).
• Ejemplo:
¾SJF es un caso particular de prioridades en el que la prioridad
es 1/T.

Arquitectura de Computadores y Sistemas Operativos 99

10.- Algoritmos de planificación

ÖEjemplo: Procesos T. Llegada Duración Prioridad


P1 0 7 15
ÖPlanificación prioridades
P2 2 4 10
P3 4 1 5
P4 5 4 10
Diagrama de Gantt

P1 P2 P3 P2 P4 P1
0 2 4 5 7 11 16

Cronograma por procesos

P1
P2
P3
P4

Arquitectura de Computadores y Sistemas Operativos 100

Tema 1: Introducción a los Sistemas Operativos 50


Arquitectura de Computadores

10.- Algoritmos de planificación

ÖPlanificación por Prioridades: Variantes


• Algoritmos con expulsión/sin expulsión.
• Prioridades estáticas/dinámicas
estáticas/dinámicas.
¾Prioridades estáticas: La prioridad se asigna antes de la
ejecución y no cambia.
¾Prioridades dinámicas: La prioridad cambia con el tiempo.

Arquitectura de Computadores y Sistemas Operativos 101

10.- Algoritmos de planificación

ÖPlanificación por prioridades


ÖProblema de inanición
Un algoritmo de prioridades es inherentemente poco equitativo.
equitativo
El problema extremo es:
• Inanición: Los procesos con baja prioridad no se ejecutan nunca.
ÖSolución:
• Actualización de prioridades: Esquema de prioridades
dinámicas, donde la prioridad de un proceso aumenta con el
tiempo de espera.

Arquitectura de Computadores y Sistemas Operativos 102

Tema 1: Introducción a los Sistemas Operativos 51


Arquitectura de Computadores

10.- Algoritmos de planificación

ÖPlanificación circular ( RR: Round Robin )


• A cada proceso se le asigna una pequeña cantidad de
ti
tiempo d
de CPU
CPU, llamada
ll d ““quantum”
t ” de
d ti
tiempo, normalmente
l t
10-100 mseg.
Si el proceso tiene un intervalo de CPU mayor que el
“quantum”, entonces es expulsado de la CPU y añadido a la
cola de procesos listos.
• Si hay n procesos, cada uno obtiene 1/n del tiempo de la
CPU en intervalos de q unidades,
unidades como máximo (en un
ciclo)

Arquitectura de Computadores y Sistemas Operativos 103

10.- Algoritmos de planificación

ÖEjemplo:
P ro ceso s T . L leg ad a D u ració n
ÖPlanificación circular P1 0 16
P2 0 3
Quantum q=4 P3 0 11

Diagrama de Gantt

P1 P2 P3 P1 P3 P1 P3 P1
0 4 7 11 15 19 23 26 30
Cronograma por procesos

P1
P2
P3

Arquitectura de Computadores y Sistemas Operativos 104

Tema 1: Introducción a los Sistemas Operativos 52


Arquitectura de Computadores

10.- Algoritmos de planificación

ÖPlanificación circular
ÖValor del “quantum” de tiempo
• Para q grandes: el algoritmo degenera en un algoritmo
FCFS.
• Para q pequeños: sobrecarga del sistema -> q ha de ser
grande respecto al tiempo necesario para el cambio de
contexto, sino la sobrecarga introducida es muy alta.
Regla práctica: El 80% de los intervalos de CPU han de ser
inferiores al “quantum”
quantum de tiempo
tiempo.

Arquitectura de Computadores y Sistemas Operativos 105

10.- Algoritmos de planificación

ÖPlanificación circular
ÖPropiedades:
• Equitativo.
• El tiempo de espera máximo está limitado por (n -1) q, antes
de recibir su siguiente cuanto de tiempo (en un ciclo)
• El tiempo de retorno medio varía con el cuanto de tiempo.
• En general es peor que el del algoritmo SRTF. Mejora si un
porcentaje alto de trabajos acaban antes de que acabe el
cuanto de tiempo (de
( ahí la regla práctica anterior))

Arquitectura de Computadores y Sistemas Operativos 106

Tema 1: Introducción a los Sistemas Operativos 53


Arquitectura de Computadores

10.- Algoritmos de planificación

ÖPlanificación con múltiples colas


Los procesos se pueden clasificar fácilmente en
distintos grupos (interactivos, por lotes, etc.). La cola
de procesos preparados consiste en realidad en
diversas colas
• Cada cola ha de tener su propio algoritmo de planificación.
• Ha de haber un algoritmo de planificación entre colas.

Arquitectura de Computadores y Sistemas Operativos 107

10.- Algoritmos de planificación

ÖEjemplos de algoritmos de
planificación entre colas:
• Prioridades estáticas:
á Procesos
FCFS (prio. 10)
Los procesos en cola con Sistema
menor prioridad no se
Usuarios
ejecutan mientras haya PRIO (prio. 8)
privilegiados
procesos en cola con
mayor prioridad. Procesos
RR (prio. 6)
Posibilidad de inanición. Interactivos
• Cuotas de tiempo: Cada Procesos
cola
l está
tá asignada
i d a un SJF (prio
(prio. 4)
Por Lotes
porcentaje del tiempo de
CPU. Ejemplo: el 80% a
Colas de procesos preparados
trabajos interactivos y el
20% a trabajos por lotes.

Arquitectura de Computadores y Sistemas Operativos 108

Tema 1: Introducción a los Sistemas Operativos 54


Arquitectura de Computadores

10.- Algoritmos de planificación

ÖPlanificación con múltiples colas realimentadas.


• Existen diferentes colas de procesos preparados.
• Cada cola posee:
¾Política de planificación.
¾Una prioridad asignada.
• Un proceso puede cambiar de cola de acuerdo con un
esquema de actualización de prioridades:
¾Los procesos con un tiempo de espera acumulado elevado son
promocionados
i d a una cola l con prioridad
i id d superior.
i
¾Los procesos con un tiempo de utilización de la CPU elevado
son degradados a una cola con prioridad inferior.

Arquitectura de Computadores y Sistemas Operativos 109

10.- Algoritmos de planificación

ÖPlanificación con múltiples colas realimentadas.


ÖEjemplo

RR [q=8] (prio. 10)

RR [q=16] (prio. 8)

FCFS (prio. 6)

Colas de procesos preparados

Arquitectura de Computadores y Sistemas Operativos 110

Tema 1: Introducción a los Sistemas Operativos 55


Arquitectura de Computadores

10.- Algoritmos de planificación

ÖMúltiples colas realimentadas


ÖParámetros de las colas realimentadas:
• Número de colas.
• Prioridad de cada cola.
• Método de promoción de un proceso.
• Método de degradación de un proceso.
• Método para determinar la cola de entrada de un proceso.

Arquitectura de Computadores y Sistemas Operativos 111

10.- Algoritmos de planificación

ÖUn ejemplo: Planificación de hilos

t10 I/O
ÖAlgoritmo del sistema
operativo
P1 t11
• Round Robin (RR)
cuanto = 2
t12

ÖAlgoritmo biblioteca threads 0 1 2 3

• Turno de llegada (FCFS)

P2 t20

0 5
Arquitectura de Computadores y Sistemas Operativos 112

Tema 1: Introducción a los Sistemas Operativos 56


Arquitectura de Computadores

10.- Algoritmos de planificación


t10 ÖUn ejemplo: Planificación de hilos
t11 t20
t12
P1 P2 t10
t11 t20
t12 t10
t11 t20
P1 P2 t12
P1 P2

Núcleo
_

Núcleo
tn1 _
tn4 Núcleo
tn2 _
tn3
tn1 tn2
Threads a nivel Threads de usuario tn1 tn3 tn2
de núcleo Threads híbridos
Arquitectura de Computadores y Sistemas Operativos 113

10.- Algoritmos de planificación

ÖPlanificación de hilos a nivel de núcleo (se trata


cada thread como si fuera un usuario diferente)
t10 t11 t12 t20 t10 t11 t20
Usuario

0 1 3 4 6 7 8 11
Núcleo
tn1 tn2 tn3 tn4 tn1 tn2 tn4
t10
t11 t20
I/O t12
t10
P1 P2

P1 t11

Núcleo
t12 P2 t20 _

0 1 2 3 0 5 tn1 tn4
tn2
tn3
Arquitectura de Computadores y Sistemas Operativos 114

Tema 1: Introducción a los Sistemas Operativos 57


Arquitectura de Computadores

10.- Algoritmos de planificación

ÖPlanificación de hilos a nivel de usuario (los


threads de un mismo usuario van a la misma cola)
t10 t20 t11 t20 t11 t12 t20 t10
Usuario
0 1 3 5 7 8 9 10 11
Núcleo
tn1 tn2 tn1 tn2 tn1 tn2 tn1

t10
t10 I/O t11 t20
t12
P1 P2

P1 t11

t12 P2 t20 Núcleo


_

0 1 2 3 0 5
tn1 tn2

Arquitectura de Computadores y Sistemas Operativos 115

10.- Algoritmos de planificación

ÖPlanificación de hilos en la aproximación híbrida

t10 t20 t11 t12 t10 t20 t11 t20


Usuario

0 1 3 5 7 8 9 10 11

Núcleo
tn1 tn2 tn3 tn1 tn2 tn3 tn2
t10
t11 t20
t12
t10 I/O
P1 P2

P1 t11

t12 P2 t20 Núcleo


_

0 1 2 3 0 5
tn1 tn3 tn2

Arquitectura de Computadores y Sistemas Operativos 116

Tema 1: Introducción a los Sistemas Operativos 58


Arquitectura de Computadores

11.- Evaluación de algoritmos

8.- Conceptos de planificación.


9 Criterios
9.- C it i ded planificación.
l ifi ió
10.- Algoritmos de planificación.
11.- Evaluación de Algoritmos.

Arquitectura de Computadores y Sistemas Operativos 117

11.- Evaluación de algoritmos

Es necesario evaluar para cada sistema cual es el


algoritmo de planificación más adecuado.
ÖProcesos en la selección de un algoritmo:
• (1) Selección de criterios (utilización CPU, t. respuesta,
etc.).
• (2) Estudiar la adaptación de cada algoritmo a esos criterios.

Arquitectura de Computadores y Sistemas Operativos 118

Tema 1: Introducción a los Sistemas Operativos 59


Arquitectura de Computadores

11.- Evaluación de algoritmos

ÖExisten diferentes métodos para llevar a cabo dicha evaluación:


• Evaluación analítica: Dada la carga de trabajos producir una
fórmula matemática del rendimiento para cada algoritmo de
planificación.
¾Modelo determinista: Evaluar el rendimiento para cada caso
particular de carga.
¾Modelos de colas: Caracterizar la carga con una distribución
estadística (distribución exponencial).
– Caracterizar la tasa de llegada de trabajos.
– Caracterizar el tiempo de servicio de un recurso.
– Hacer análisis estadístico de las redes de colas.
Ejemplo: Fórmula de Little n = λ * E
n: tamaño medio de la cola, λ tasa media de llegada, E: tiempo
medio de espera en la cola.
• Simulaciones: Hacer un modelo, programarlo y ejecutarlo.

Arquitectura de Computadores y Sistemas Operativos 119

Resumen

ÖEl S.O. Puede verse como un programa que atiende y


sirve los eventos producidos por los procesos y los
dispositi os
dispositivos.
ÖCuando se da alguno de estos eventos cambia el estado
de alguno de los procesos existentes en el sistema o el
propio estado del sistema operativo.
Ö¿ Qué podemos considerar un evento de este tipo ?
• Una llamada al sistema.
• Una interrupción de un dispositivo de E/S.
• Una interrupción de reloj.
• Una excepción provocada por el código de un proceso
(Instrucciones ilegales, acceso a memoria no asignada,
divisiones por cero, ...).
Arquitectura de Computadores y Sistemas Operativos 120

Tema 1: Introducción a los Sistemas Operativos 60


Arquitectura de Computadores

Flujo de Control del S.O.

Interrupción de Excepción del Llamada al


Reloj
periférico Procesador Sistema
Activación del
Sistema Operativo

Guardar el contexto del proceso en ejecución en su PCB

Anotar el
avance del
tiempo
Pasar a preparado Finalizar el
al proceso Pasar a
Si tiempo límite proceso en Crear hijo. Resolver la
que esperaba el suspendido al
excedido: Hijo a llamada al
fin de la E/S ejecución proceso en
Proceso en preparado sistema
ejecución
ejecución
a preparado

Planificador:
selección del próximo
proceso

Restaurar el contexto del proceso seleccionado

Arquitectura de Computadores y Sistemas Operativos 121

Anexo I: Interrupción Hw

ÖEjemplo de Interrupción Hw programada por el puerto


paralelo
//********************************************************************************
//
//** EJEMPLO DE INTERRUPCIONES HW POR PUERTO PARALELO
//********************************************************************************

#include <stdio.h>
#include <dos.h>

#define DATA 0x0378


#define STATUS DATA+1
#define CONTROL DATA+2
#define PIC1 0x21

#define TRUE 1
#define FALSE 0

void open_intserv(void);
void close_intserv(void);
void interrupt far intserv(void);

int intlev=0x0f; //irq 7


void interrupt far (*oldfunc)();
int int_occurred=FALSE;

Arquitectura de Computadores y Sistemas Operativos 122

Tema 1: Introducción a los Sistemas Operativos 61


Arquitectura de Computadores

Anexo I: Interrupción Hw

void main(void)
{
clrscr();
outportb(DATA,0xff);
p _intserv();
open ();

printf("\n CONFIGURACIÓ HARDWARE");


printf("\n =====================");
printf("\n Control Paralel= %x",inportb(CONTROL));
printf("\n Estat Paralel= %x",inportb(STATUS));
printf("\n Estat PIC1= %x",inportb(PIC1));
getch(); clrscr();
printf("\n Iniciem programa Interrupcions port paralel:");

while(!kbhit())
{
if(int_occurred)
{
printf("\n INTERRUPCIà generada");
int_occurred=FALSE;
}
}
close_intserv();
}

Arquitectura de Computadores y Sistemas Operativos 123

Anexo I: Interrupción Hw

void interrupt far intserv(void)


{
disable();
int_occurred=TRUE;
p (
outportb(0x20, , 0x20);
); //Envía EOI al PIC1
enable();
}

void open_intserv(void)
{
disable();
oldfunc=getvect(intlev);
setvect(intlev, intserv);
outportb(PIC1,(inportb(0x21) & ~0x80)); //Habilito la IRQ7 en el PIC1
outportb(CONTROL, inportb(CONTROL) | 0x10); //Habilita IRQ a trav‚s de ACK
// Cuando ~ACK, se genera IRQ
enable();
}

void close_intserv(void)
{
disable();
setvect(intlev, oldfunc);
outportb(PIC1, (inportb(PIC1) | 0x80)); //Inhabilito la IRQ7
outportb(CONTROL, inportb(CONTROL) & ~0x10); //inabilita IRQ a través de ACK
enable();
}

Arquitectura de Computadores y Sistemas Operativos 124

Tema 1: Introducción a los Sistemas Operativos 62


Arquitectura de Computadores

Anexo I: Interrupción Hw

Arquitectura de Computadores y Sistemas Operativos 125

Anexo II: Mac OS X

Ö Ejemplo del SO de Mac: Mac OS X Snow Leopard

Arquitectura de Computadores y Sistemas Operativos 126

Tema 1: Introducción a los Sistemas Operativos 63


Mac OS X
Apple Inc.

lunes 28 de septiembre de 2009


Historia

• En 1971 Steve Wozniak y Steve Jobs fundan


Apple
• En 1976 crean el primer ordenador
personal que combina un teclado con un
microprocesador y una conexión a un
monitor. El Apple I.

lunes 28 de septiembre de 2009


Apple I
• Se vendía por $666,66 se fabricaron 200
unidades
• CPU: MOS Technology 6502 a
aproximadamente 1 MHz
• RAM: 4KB standard. Extensible hasta 8KB
• ROM: 256 Bytes
• Gráficos: 40x24 caracteres
lunes 28 de septiembre de 2009
Apple I: Placa base

lunes 28 de septiembre de 2009


lunes 28 de septiembre de 2009
Apple II
• Primer modelo en producción masiva entre
finales de los 70 y mediados de los 80
• CPU: 6502 de MOS Technology a 1 MHz
• 4 Kilobytes de RAM
• 12 KB de ROM
• Interfaz de grabadores de cassettes
lunes 28 de septiembre de 2009
Apple II

lunes 28 de septiembre de 2009


Apple III
• Se pone a la venta en mayo de 1980
• CPU: !P de 8 bits Synertek 6502A a 2MHz
• 128 Kilobytes de RAM
• Disquetera interna para discos de 5,25
• 4 ranuras internas de ampliación y dos
puertos serie en la parte posterior

lunes 28 de septiembre de 2009


Apple III

lunes 28 de septiembre de 2009


Apple Lisa
• Introducido en enero de 1983 es el primer
ordenador con interfaz gráfica y con ratón.
• Se vendió a $9,995
• CPU Motorola 68000 a 5Mhz
• 1MB de memoria RAM
• 2 unidades de disquete de 5,25
lunes 28 de septiembre de 2009
Apple Lisa

lunes 28 de septiembre de 2009


• Apple Lisa resultó un fracaso comercial,
aunque la historia lo considera como el
primer ordenador personal.
• Al mismo tiempo que se desarrollaba el
Apple Lisa se trabajó en un nuevo modelo,
el Apple Macintosh.

lunes 28 de septiembre de 2009


Apple Macintosh
• Se empezó a vender en 1984
• Fue el primer ordenador personal
comercializado exitosamente que usaba
interfaz gráfica de usuario (GUI)
• A partir de este modelo se empezó a
desarrollar el Sistema Operativo tal y como
lo conocemos en la actualidad

lunes 28 de septiembre de 2009


Apple Macintosh

lunes 28 de septiembre de 2009


Apple System

• Se desarrollaron hasta 7 versiones distintas


del Apple System para las máquinas Apple
• Todos tenían GUI (interfaz gráfica de
usuario)

lunes 28 de septiembre de 2009


lunes 28 de septiembre de 2009
lunes 28 de septiembre de 2009
Tiempos de crisis
• Después de la comercialización del Apple
Macintosh y del Apple Lisa, Apple Inc. tuvo
muchos problemas económicos
• Steve Jobs (fundador) fue despedido de su
propia empresa
• Steve Wozniak (co-fundador) abandonó la
empresa después de salir ileso de un
accidente de avión

lunes 28 de septiembre de 2009


• Después de su salida de Apple, Steve Jobs
fundó NeXT Computer Inc.
• NeXT se convirtió en una empresa muy
conocida por sus avanzados ordenadores y
por sus plataformas de desarrollo
orientadas a objetos
• A principios de 1997 Steve Jobs vuelve a
Apple absorbiendo a NeXT
• De esta unión nace el que hoy conocemos
como Mac OS

lunes 28 de septiembre de 2009


Mac OS 8
• Liberado el 26 de julio de 1997
• Se mejora enormemente la calidad gráfica,
se introduce el color
• Se implementa el multi-hilo que lo
convierte en un sistema multitarea
• Se introduce un nuevo sistema de ficheros,
HFS Plus (Hierachical File System)

lunes 28 de septiembre de 2009


lunes 28 de septiembre de 2009
Mac OS 9
• Liberado el 23 de octubre de 1999
• Se implementan mejoras en el plano de
red, incluyendo soporte para redes wi-fi
• Se introduce el concepto de soporte multi-
usuario (aún no era un sistema
propiamente multi-usuario)
• Se mejora el motor de búsqueda interno
lunes 28 de septiembre de 2009
lunes 28 de septiembre de 2009
lunes 28 de septiembre de 2009
lunes 28 de septiembre de 2009
Mac OS X

• Lanzado el 24 de mayo de 2001


• Es un sistema operativo completamente
reescrito
• Se busca mucha más estabilidad y crear un
sistema robusto (seguro)

lunes 28 de septiembre de 2009


Mac OS X

• SO basado en UNIX que se construye con


la tecnología desarrollada en NeXT
• Sistema multi-tarea y multi-usuario
• Combina la potencia del núcleo UNIX y un
entorno gráfico cuidado y atractivo

lunes 28 de septiembre de 2009


Mac OS X
• Todas las API de Mac OS Classic fueron
portadas a librerías UNIX. Esto permitió
portar aplicaciones sin tener que re-
escribir el código entero.
• Escrito para arquitectura PowerPC (chips
IBM). En 2005 empiezan a migrar todos los
equipos a Intel (x86)

lunes 28 de septiembre de 2009


Mac OS X: Benchmarks

lunes 28 de septiembre de 2009


Mac OS X Snow Leopard
Tecnología de 64 bits

Grand Central Dispatch

OpenCL (Open
Computing Languge)

lunes 28 de septiembre de 2009


Tecnología de 64 bits Grand Central Dispatch
• Más rápido • Optimiza la utilización de todos los
núcleos asignando tareas
• Más seguro independientes

• Compatible con 32 bits


• Proporciona potentes APIs de
programación multinúccleo
• Ampliación de memoria hasta
16.000 millones de gigabytes

OpenCL (Open
Computing Languge)
• Se adapta automáticamente a la
potencia de procesamiento
disponible en cada uno de los
procesadores gráficos

• Lenguaje abierto y familiar para los


programadores

lunes 28 de septiembre de 2009


Mac OS X Snow Leopard
Office en el Mac

Compatible con todos


Copias de seguridad los estándares de la
automatizadas industria

Posibilidad de ejecutar
Windows de forma nativa

lunes 28 de septiembre de 2009

Вам также может понравиться