Anda di halaman 1dari 471

Introduccin a los sistemas

informticos
Captulo 1

1
Sistema Operativo
Explota los recursos de hardware de uno
o ms procesadores, para ofrecer un
conjunto de servicios a los usuarios del
sistema
Gestiona la memoria y los dispositivos
de entrada/salida en nombre de los
usuarios

2
Elementos Bsicos
Procesador
Memoria Principal
Mdulos de E/S
Bus del sistema

3
Componentes de una
Computadora

4
Ejecucin de Instrucciones
El procesamiento de una instruccin se
lleva acabo en dos pasos:
El procesador lee la instruccin de memoria
Ciclo de lectura
El procesador ejecuta la instruccin
Ciclo de ejecucin

5
Ciclo bsico de instruccin

6
Lectura y Ejecucin de
Instrucciones
El procesador lee la instruccin de
memoria
El contador de programa (PC) registra la
direccin de la siguiente instruccin a
ejecutarse
El contador de programa es
incrementado despus de que se captura
cada instruccin

7
Registro de Instrucciones
La instruccin que es leda se carga en el
registro de instrucciones. En general las
acciones que se pueden ejecutar son:
Procesador - memoria
se transfieren datos del procesador a la memoria o
viceversa
Procesador - E/S
se transfieren datos desde o hacia un dispositivo
perifrico
Procesamiento de datos
el procesador puede realizar una operacin aritmtica
Control
la instruccin puede alterar la secuencia de ejecucin
8
Ejemplo de la ejecucin de un
programa

9
Acceso Directo a Memoria
(DMA)
El intercambio de datos ocurre
directamente entre la memoria y el
modulo de E/S

10
Interrupciones
Son mecanismos de las computadoras
mediante el cual otros mdulos (E/S,
Memoria) pueden interrumpir la
secuencia normal del procesador
La mayora de los dispositivos son mas
lentos que el procesador, por lo tanto, el
procesador debe hacer una pausa para
esperar al dispositivo

11
Clases de interrupciones

12
Flujo del control de un programa
sin interrupciones

13
Flujo del control de un programa
con interrupciones y corta espera
de E/S

14
Flujo del control de un programa
con interrupciones y larga espera
de E/S

15
Rutina de tratamiento de una
interrupcin
Es un programa que da servicio a un
dispositivo de E/S en particular
Generalmente parte del sistema
operativo

16
Transferencia de control por
interrupciones
Una interrupcin suspende la secuencia
normal de una ejecucin

17
Ciclo de instruccin con
interrupciones

18
Ciclo de interrupcin
El procesador checa si hay
interrupciones
Si no hay, captura la siguiente
instruccin del programa en curso
Si hay interrupcin, suspende la
ejecucin del programa en curso, y
ejecuta la rutina de tratamiento de una
interrupcin

19
Tratamiento de una
interrupcin simple

20
Mltiples Interrupciones
(tratamiento secuencial)
Ignora otras interrupciones mientras una
est en proceso

21
Mltiples Interrupciones
(por prioridades)
Consiste en permitir que una interrupcin de
prioridad ms alta puede interrumpir a la rutina
de tratamiento de una interrupcin de prioridad
ms baja

22
Mltiples Interrupciones
(por prioridades ejemplo)

2
4

23
Jerarqua de la Memoria

24
Ir hacia abajo en la jerarqua
Disminucin del costo por bit
(rendimiento)
Aumento de la capacidad
Aumento del tiempo de acceso
Disminucin de la frecuencia de acceso
a la memoria por parte del procesador

25
Memoria Cache
Buffer temporal que contiene partes de
la memoria principal
Incrementa la velocidad de acceso a
memoria

26
Memoria Cache

27
Cache Memory
Contiene una copia de la memoria
principal
Primero el procesador comprueba que la
informacin se encuentre en la memoria
cache
Si no esta en cache, el bloque de
informacin es buscado en la memoria
principal y pasado a cache, para despus
ser entregado al procesador
28
Estructura de cache y
memoria principal
Operacin de lectura en Cache

30
Diseo de la Memoria Cache
Tamao de la Cache
Las caches de tamao pequeo tienen un
impacto significativo sobre el rendimiento
Tamao de bloque
Es la unidad de intercambio de datos entre
la cache y la memoria principal

31
Diseo de la Memoria Cache
Funcin de traduccin (mapping)
Determina la posicin de la cache que
ocupara el bloque de informacin
Algoritmo de reemplazo
Determina cual bloque va ser reemplazado,
por ejemplo:
Least-Recently-Used (LRU) algorithm

32
Diseo de la Memoria Cache
Poltica de escritura
Se lleva cabo cuando se modifica un bloque
de memoria en cache
Dicta cuando tiene lugar la operacin de
escribir en memoria

33
Tcnicas de Comunicacin de
E/S
Para realizar la operaciones de E/S son
posibles tres tcnicas:
E/S Programada
E/S Dirigida por interrupciones
Acceso Directo a Memoria (DMA)

34
E/S Programada
El modulo de E/S llevar a cabo la
accin requerida y luego activar los
bits apropiados en el registros de
estado de E/S.
El mdulo de E/S no lleva a cabo
ninguna otra accin para avisar al
procesador, de hecho ni lo interrumpe
Es responsabilidad del procesador
comprobar peridicamente el estado
del mdulo de E/S hasta haber
completado la operacin
35
E/S Dirigida por
interrupciones
El procesador es interrumpido
cuando el modulo de E/S esta
listo para intercambiar datos
El procesador salva el contexto
del programa en ejecucin y
comienza a ejecutar la rutina de
tratamiento de una interrupcin
El procesador no necesita esperar

36
Acceso Directo a Memoria
Transfiere un bloque de
datos directamente hacia o
desde la memoria
Una interrupcin es
mandada al procesador
para indicar que la
transferencia esta completa
El procesador continua
haciendo otro trabajo

37
Introduccin a los sistemas
operativos
Capitulo 2

1
Sistemas Operativos
Un sistema operativo es un programa
que controla la ejecucin de los
programas de aplicacin y que acta
como una interfaz entre aplicaciones del
usuario y el hardware de la computadora

2
Objetivos del Sistema Operativo
Comodidad
Un sistema operativo hace que una computadora
sea ms fcil de usar
Eficiencia
Permite que los recursos de un sistema informtico
se aprovechen de una manera ms eficiente
Capacidad de Evolucin
Un sistema operativo debe construirse de modo que
permita el desarrollo efectivo, la verificacin y la
introduccin a nuevas funciones en el sistema y, a
la vez no intervenir en los servicios que brinda

3
Niveles y vistas de un sistema
informtico

4
Servicios que ofrece un
sistema operativo
Creacin de Programas
Editores para la creacin de programas, para ayudar al
programador a crear programas
Ejecucin de programas
Donde la instrucciones y datos se deben cargar de la memoria
principal
Acceso a los dispositivos de E/S
Son las instrucciones y seales de control para el control y
funcionamiento de los dispositivos
Acceso controlado a los archivos
En el caso de los archivos, el control debe incluir una
comprensin, no solo de la naturaleza del dispositivo de E/S
sino de la estructura de los datos en los archivos y del medio
de almacenamiento

5
Servicios que ofrece un sistema
operativo
Acceso al sistema
En el caso de sistema compartido o publico, el sistema
operativo controla el acceso al sistema como en todo y a los
recursos especficos del sistema
Deteccin y respuesta de errores
Estos incluyen la deteccin de errores de internos y externos
del hardware, como los errores en la memoria, fallos o mal
funcionamiento de los dispositivos y de distintos tipos de
errores en software
Contabilidad
Un buen sistema operativo debe recoger la estadstica de
utilizacin de los diversos recursos y supervisar parmetros
de rendimiento como el tiempo de respuesta

6
El sistema operativo como
administrador de recursos
La computadora es un conjunto de recursos para el
movimiento, almacenamiento y proceso de datos y
para el control de estas funciones. El sistema
operativo es el responsable de la gestin de estos
recursos
El sistema operativo funciona de la misma manera
que el software normal de una computadora, es decir,
es un programa o una serie de programas ejecutados
por el procesador
El sistema operativo abandona con frecuencia el
control y debe depender del procesador para
recuperarlo

7
Recursos principales que son
administrados por el sistema
Computer System
operativo
I/O Devices
Memory
Operating I/O Controller Printers,
System k eyboards,
Software digital camera,
I/O Controller etc.

Programs
and Data

I/O Controller

Processor Processor

Storage
OS
Programs

Data

Figure 2.2 The Operating System as Resource Manager 8


Kernel
Parte del sistema operativo que se
encuentra en la memoria principal
Contiene las funciones utilizadas con
ms frecuencia en el sistema operativo
Al Kernel tambin se le llama Ncleo

9
Facilidad de evolucin de un
Sistema Operativo
Actualizaciones de hardware y nuevos tipos de hardware
Por ejemplo las primeras versiones de los sistemas operativos
UNIX no empleaban mecanismos de paginacin, por
funcionaban en mquinas sin hardware de paginacin. Las
versiones ms recientes se han modificado para aprovechar las
capacidades de paginacin
Nuevos servicios
Como respuesta a las demandas del usuario o a las necesidades
de los administradores del sistema, el sistema operativo debe
ampliar su oferta de servicios (aplicaciones nuevas)
Correcciones
Desafortunadamente, el sistema operativo tiene fallos que se
descubrirn con el curso del tiempo y que es necesario corregir

10
Evolucin de los sistemas
operativos
Proceso en serie
No haba sistema operativo
La operacin con estas maquinas era desde un consola con
indicadores luminosos
Los programas en cdigo maquina se cargaban a travs del
dispositivo de entrada (lector de tarjetas)
Presentaban problemas de planificacin, ya que empleaban
un formulario de reserva de tiempo de mquina
Otro problema era el tiempo de preparacin, ya que el
proceso implicaba montar y desmontar cintas o preparar
paquetes de tarjetas
El proceso era llamado en serie porque refleja que los
usuarios tenan que acceder a la computadora en serie

11
Sistemas sencillos de proceso
por lotes
Se utilizo un elemento de software
conocido como Monitor
Los trabajos o programas se agrupaban
secuencialmente por lotes y se ubicaban los
lotes enteros en un dispositivo de entrada
El monitor controlaba la secuencia de cada uno
de los trabajos
Cada trabajo se construa de tal forma que
volviera al monitor al terminar su
procesamiento y , en ese momento , el monitor
comenzaba a cargar automticamente el
siguiente programa
12
Lenguaje de Control de Trabajos
(JCL)
Es un tipo especial de lenguaje de
programacin empleado para dar
instrucciones al monitor

13
Caractersticas Hardware
Las caractersticas del hardware para el
sistema de proceso por lotes son:
Proteccin de Memoria
No se debe modificar la zona de memoria
donde se encuentra el monitor
Temporizador
Se utiliza un temporizador para prevenir
que un solo trabajo monopolice el sistema

14
Caractersticas Hardware
Instrucciones privilegiadas
Ciertas instrucciones de maquina solo
pueden ser ejecutadas por le monitor
(ejemplo de E/S)
Interrupciones
Esta caracterstica aporta al sistema
operativo ms flexibilidad para ceder y
retomar el control de los programas de
usuario

15
Los dispositivos de E/S son
lentos

16
Monoprogramacin
El procesador gasta una cierta cantidad de
tiempo ejecutando, hasta que encuentra una
instruccin de E/S

17
Multiprogramacin
Cuando un trabajo necesite esperar una
llamada de E/S, el procesador puede
cambiar a otro trabajo

18
Multiprogramacin

19
Atributos de ejecucin de un
programa ejemplo

20
Histograma de utilizacin

21
Sistemas de tiempo compartido
Al igual que en la multiprogramacin permite
al procesador gestionar varias tareas por lotes
al mismo tiempo, puede tambin utilizarse
para gestionar varias tareas interactivas
(tiempo compartido)
Mltiples usuarios acceden simultneamente al
sistema por medio de terminales, donde el
sistema operativo intercalara la ejecucin de
cada programa de usuario en rfagas cortas de
computacin (quantum)
22
Operacin del CTSS (Compatible
Time Sharing System)

23
Trabajo de Investigacin
Realizar una investigacin de la historia
y principales caractersticas de los
siguientes sistemas operativos:
Windows
UNIX
LINUX

24
Logros Principales
Los cinco avances tericos significativos
en el desarrollo de sistemas operativos
son:
Los procesos
La gestin de memoria
La seguridad y la proteccin de la
informacin
La planificacin y la gestin de recursos
La estructura del sistema
25
Los Procesos
Un programa en ejecucin
Una instancia de un programa
funcionando en una computadora
La entidad que puede ser asignada al
procesador y ser ejecutada por l
Una unidad de actividad caracterizada
por un sencillo tratamiento de ejecucin
secuencial, y asociada a un conjunto de
recursos del sistema
26
Dificultades con el diseo de
un sistema
Sincronizacin Incorrecta
Un diseo incorrecto de un mecanismo de sealizacin puede
dar como resultado la perdida de seales o la recepcin de
seales duplicadas
Fallos de exclusin mutua
Son los mecanismos que permiten que solo una rutina pueda
realizar una transaccin al mismo tiempo, sobre una parte
determinada de los datos
Funcionamiento no determinista del programa
Los programas comparten memoria y sus ejecuciones se
intercalan en el procesador, entonces pueden inferir con otros,
sobrescribiendo zonas comunes de memoria
Interbloqueos
Cuando dos o mas programas estn suspendidos a la espera
uno del otro. (Espera de dispositivos de E/S)

27
Proceso
El concepto de proceso puede dar solucin a
los problemas mencionados y que esta
conformado con las siguientes componentes
Un programa ejecutable
Los datos necesarios para el programa (variables,
espacio de trabajo, buffers)
Contexto de ejecucin del programa
Incluye toda la informacin que el sistema operativo
necesita para administrar el proceso y que el procesador
necesita para ejecutarlo correctamente

28
Main Processor
Memory Registers
Process index i

PC
i
Process Base b
list Limit h
j

Other
registers
Proceso

Context
Process Data
A
Program
(code)

b
Context
Process Data
h
B
Program
(code)
29
Gestin de Memoria
Aislamiento del proceso
El sistema operativo debe procurar que cada proceso
independiente no interfiera en los datos y en la memoria de
ningn otro
Asignacin y gestin automtica
A los programas se les debe asignar memoria dinmicamente
en la jerarqua de memoria, segn vaya necesitando. (Debe
ser transparente al programador)
Soporte para la programacin modular
Los programas deben ser capaces de definir mdulos de
programa y crear destruir, alterar el tamao de los mdulos
dinmicamente
Proteccin y control de acceso
Compartir la memoria en algn nivel de la jerarqua de la
memoria origina la posibilidad de que un programa pueda
direccionar el espacio de memoria de otro programa. (El
sistema operativo debe permitir el acceso a los usuarios)
Almacenamiento a largo plazo
Muchos programas de aplicacin requieren medios de 30
almacenamiento durante largos periodos de tiempo
Memoria Virtual
Es un servicio que permite a los programas
direccionar la memoria desde un punto de
vista lgico, sin depender del tamao de la
memoria principal fsica disponible
Fue concebida para cumplir las necesidades de
mltiples trabajos de usuario residentes
concurrentemente en la memoria principal y
as no existiera un espacio muerto entre la
ejecucin del los procesos sucesivos; mientras
un proceso se enva al almacenamiento
secundario y el proceso que le sucede es trado
a ste

31
Memoria Virtual
La memoria virtual, es la combinacin
entre un hardware especial y el sistema
operativo para hacer uso de la memoria
principal y la secundaria, y hacer parecer
que la computadora tiene mucha ms
memoria principal (RAM) que la que
realmente posee.

32
Paginacin
Permite que los procesos estn formados por varios
bloques de tamao fijo, denominados paginas
Un programa hace referencia a una palabra mediante
una direccin virtual formada por un numero de
pgina y un desplazamiento dentro de la pgina
Cada pgina puede estar ubicada en un lugar
cualquiera de la memoria principal
La paginacin de un sistema proporciona una
traduccin dinmica entre la direccin virtual utilizada
en le programa y la direccin real o direccin fsica, en
la memoria principal

33
Conceptos de Memoria Virtual

34
Direccionamiento de la memoria
virtual

35
Seguridad y proteccin de la
informacin
Se han construido herramientas de
propsito general dentro de las
computadoras y los sistemas operativos,
para dar soporte a una gran variedad de
mecanismos de seguridad
Los problemas que interesa en cuestin
de seguridad son el acceso a los sistemas
informticos y a la informacin
almacenada en ellos

36
Seguridad y proteccin de la
informacin
Las categoras de los trabajos relacionados
en la seguridad de los sistemas
operativos son:
Control de acceso:
regulacin del acceso del usuario del
sistema completo, subsistemas y a los datos,
as como a la regulacin del acceso de los
procesos a los recursos y objetos del
sistema

37
Seguridad y proteccin de la
informacin
Control de flujo de informacin
Regula el flujo de datos dentro del sistema y
su distribucin al usuario
Certificacin
Relativo a la demostracin de que el acceso
y los mecanismos de control de flujo se
llevan a cabo de acuerdo con las
especificaciones y a que stas cumplen las
polticas de proteccin y seguridad

38
Planificacin y gestin de
recursos
Una tarea del sistema operativo es administrar los recursos que tiene
disponibles (memorias, E/S, procesador). Las polticas de
planificacin de recursos son las siguientes:

Equidad
Que todos los procesos que compiten por el uso de un
determinado recurso les sea otorgado un acceso al recurso
que sea aproximadamente igual y equitativo para ese recurso
Sensibilidades diferenciales
El sistema operativo puede tener que discriminar entre las
diferentes clases de trabajos con diferentes requerimientos de
servicio
Eficiencia
El sistema operativo debe intentar maximizar la
productividad, minimizar el tiempo de respuesta y, en el caso
de tiempo compartido, alojar tantos usuarios como sea
posible
39
Elementos clave para la
multiprogramacin de un
Turno sistema operativo
Rotatorio
(Round-
robin): Es
asignar por
turnos una
cierta
cantidad de
tiempo a
cada proceso
de la cola

40
Estructura del sistema
Se puede contemplar el sistema operativo como una
serie de niveles
Cada nivel lleva a cabo un determinado subconjunto
de funciones de acuerdo con su complejidad
Los niveles inferiores llevan a cabo funciones ms
primitivas y ocultan los detalles de dichas funciones.
Los niveles inferiores ofrecen servicios a niveles
superiores
Los problemas que se presenten se resuelven de forma
ms fcil, ya que se descomponen en subproblemas
ms manejables

41
Niveles Hardware
Nivel 1
Circuitos Electrnicos
Objetos como registros, celdas de memoria y
puertas lgicas
Operaciones de estos objetos, como borrar registro
o leer un posicin de memoria
Nivel 2
Conjunto de instrucciones del procesador
Operaciones primitivas del lenguaje maquina, tales
como sumar, restar, cargar y salvar

42
Niveles Hardware
Nivel 3
Se aade el concepto de procedimiento o
subrutina, as como las operaciones de
llamada y retorno.
Nivel 4
Interrupciones

43
Conceptos asociados con
multiprogramacin
Nivel 5
Proceso como un programa en ejecucin
El sistema operativo ofrezca soporte para mltiples procesos
se incluye la capacidad de suspender y reanudar procesos
Nivel 6
Dispositivos de almacenamiento secundario
Trasferencia de bloques de datos
Nivel 7
Crea el espacio de direcciones lgicas para procesos
Organiza el espacio de direcciones virtuales en bloques, que
se pueden mover entre la memoria principal y la secundaria

44
Dispositivos Externos
Nivel 8
Comunicacin de informacin y de
mensajes entre procesos
Nivel 9
Soporte de almacenamiento a largo plazo de
los archivos
Nivel 10
Proporciona acceso a los dispositivos
externos mediante interfaces estandarizadas
45
Dispositivos Externos
Nivel 11
Es responsable de mantener la asociacin entre los
identificadores externos (aplicacin o usuario) e internos
(direccin que se utiliza para localizar y controlar un objeto)
de los recursos y objetos del sistema.
Nivel 12
Proporciona servicios completos de soporte de procesos.
Esto incluye el espacio de direcciones virtuales del proceso,
una lista de objetos y procesos con los que se puede
interactuar y las limitaciones de dicha interaccin, los
parmetros pasados al proceso en su creacin.
Nivel 13
Ofrece al usuario una interfaz con el sistema operativo. Se
denomina interprete de ordenes (shell)

46
Caractersticas de los sistemas
operativos modernos
Hardware y nuevas aplicaciones
Incremento en la velocidad de la mquina
Alta velocidad de las redes de
comunicacin
Incremento en la capacidad de dispositivos
de memoria
Aplicaciones multimedia
Acceso a Internet
Pginas Web
47
Caractersticas de los sistemas
operativos modernos
Muchos de los enfoques y elementos de diseo
se han probado tanto en sistemas operativos
experimentales como comerciales, y muchos
de ellos encajan dentro de las siguientes
categoras:
Arquitectura microncleo
Multihilos
Multiproceso simtrico
Sistemas operativos distribuidos
Diseo orientado a objetos

48
Caractersticas de los sistemas
operativos modernos
Arquitectura Microncleo
Asigna solamente pocas funciones
esenciales al ncleo o kernel
Espacios de direcciones
Comunicacin entre procesos (IPC)
Planificacin bsica

49
Caractersticas de los sistemas
operativos modernos
Multihilos
El proceso es dividido en hilos que pueden
ejecutarse concurrentemente
Hilo
Unidad de trabajo que se puede expedir para su
ejecucin. Incluye un contexto del procesador y sus
propias reas de datos
Proceso
Un conjunto de uno o ms hilos y recursos del
sistema asociados.

50
Caractersticas de los sistemas
operativos modernos
Multiproceso Simtrico
Existencia de mltiples procesadores
Estos procesadores comparten la misma
memoria principal y dispositivos de E/S,
interconectados por un bus de
comunicaciones o por otro esquema de
conexin interna.
Todos los procesadores pueden ejecutar las
mismas funciones (de aqu el termino
simtrico)

51
Multiprogramacin y
Multiproceso

52
Caractersticas de los sistemas
operativos modernos
Sistema Operativos Distribuido
Proporciona la ilusin de un nico espacio
de memoria principal y un nico espacio de
memoria secundaria, adems de otros
mecanismos de acceso unificados, como por
ejemplo un sistema de archivos distribuido

53
Caractersticas de los sistemas
operativos modernos
Diseo Orientado a Objetos
Impone a los procesos una disciplina para
aadir extensiones modulares a un pequeo
ncleo. Al nivel del sistema operativo, una
estructura basada en objetos permite a los
programadores personalizar un sistema
operativo sin romper la integridad del
sistema

54
Windows Architecture
Modular structure for flexibility
Executes on a variety of hardware
platforms
Supports application written for other
operating system

55
56
Operating System Organization
Modified microkernel architecture
Not a pure microkernel
Many system functions outside of the
microkernel run in kernel mode
Any module can be removed, upgraded,
or replaced without rewriting the entire
system

57
Kernel-Mode Components
Executive
Contains base operating system services
Memory management
Process and thread management
Security
I/O
Interprocess communication
Kernel
Consists of the most used components
58
Kernel-Mode Components
Hardware abstraction layer (HAL)
Isolates the operating system from
platform-specific hardware differences
Device drivers
Translate user I/O function calls into
specific hardware device I/O requests
Windowing and graphics systems
Implements the graphical user interface
(GUI)
59
Windows Executive
I/O manager
Cache manager
Object manager
Plug and play manager
Power manager
Security reference monitor
Virtual memory manager
Process/thread manager
Configuration manager
Local procedure call (LPC) facility

60
User-Mode Processes
Special system support processes
Ex: logon process and the session manager
Service processes
Environment subsystems
User applications

61
Client/Server Model
Simplifies the Executive
Possible to construct a variety of APIs
Improves reliability
Each service runs on a separate process
with its own partition of memory
Clients cannot not directly access hardware
Provides a uniform means for
applications to communicate via LPC
Provides base for distributed computing
62
Threads and SMP
Operating system routines can run on any
available processor
Different routines can execute simultaneously
on different processors
Multiple threads of execution within a single
process may execute on different processors
simultaneously
Server processes may use multiple threads
Share data and resources between process

63
Windows Objects
Encapsulation
Object consists of one or more data items
and one or more procedures
Object class or instance
Create specified instances of an object
Inheritance
Support to some extent in the Executive
Polymorphism
64
UNIX
Hardware is surrounded by the
operating system software
Operating system is called the system
kernel
Comes with a number of user services
and interfaces
Shell
Components of the C compiler

65
UNIX

66
UNIX Kernel

67
Modern UNIX Kernel

68
Modern UNIX Systems
System V Release 4 (SVR4)
Solaris 9
4.4BSD
Linux

69
Descripcin y Control de Procesos

Captulo 3

1
Requisitos que debe satisfacer un
Sistema Operativo haciendo
referencia a los procesos
El SO debe intercalar la ejecucin de mltiples
procesos para maximizar la utilizacin del
procesador ofreciendo a la vez un tiempo de
respuesta razonable
El SO debe asignar recursos a los procesos en
conformidad con una poltica especfica
El SO podra tener que dar soporte a la
comunicacin entre procesos y la creacin de
procesos por parte del usuario, labores que pueden
ser de ayuda en la estructuracin de aplicaciones
2
Administrador de Aplicaciones
El procesador ejecutara instrucciones de su repertorio
en una secuencia dictada por los valores cambiantes
del contador de programa
A lo largo del tiempo, el contador puede apuntar al
cdigo de distintos programas que son parte de
diferentes procesos
El comportamiento de un proceso individual pude
caracterizarse por una lista de secuencia de
instrucciones que se ejecutan en dicho proceso, dicho
listado llama traza del proceso. El comportamiento del
procesador pude caracterizarse mostrando la forma en
que se intercalan las trazas de varios procesos

3
Elementos de un Proceso
Identificador
Estado
Prioridad
Contador de Programa
Apuntadores a Memoria
Datos
Informacin de estado de E/S
Conteo de informacin
4
Interbloqueo
Se produce un interbloqueo si hay dos
procesos que necesitan los mismos
recursos para continuar. Cada uno de
ellos espera indefinidamente el recurso
que le falta

5
Bloque de Control de Procesos
Identifier
State
Priority
Program counter
Memory pointers
Context data

I/O status
information

Accounting
information

Figure 3.1 Simplified Process Control Block

6
Ejemplo de Ejecucin
Address Main Memory Program Counter
0
8000
100
Dispatcher

5000
Process A

8000

Process B

12000

Process C

Figure 3.2 Snapshot of Example Execution (Figure 3.4)


at Instruction Cycle 13

7
Traza del Procesos

8
9
Modelo de Proceso de dos
estados
El proceso puede tener dos estados:
Ejecucin
No ejecucin

10
Procesos en espera

11
Razones para la creacin de
procesos
Construir la estructura de datos que se utilizan para la
administracin y asignar el espaci de memoria principal para el
proceso. Cuando el sistema operativo crea un proceso tras la
solicitud explicita de otro, la accin se conoce como generacin
de procesos (process spawning)

12
Razones para la terminacin de
un proceso
Un proceso debe incluir la instruccin halt o una llamada de
explicita a un servicio del sistema operativo para la terminacin

13
Razones para la terminacin de
un proceso

14
Procesos
En no ejecucin
Estn listos para ejecutarse
Bloqueados
En espera del dispositivo de E/S
El distribuidor no puede seleccionar
exactamente el proceso que est en el extremo
ms antiguo de la cola. El distribuidor tiene
que recorrer una lista buscando el proceso que
no este bloqueado y lleve mas tiempo en la
cola
15
Modelo de 5 estados
Ejecucin
Listo
Bloqueado
Nuevo (no se encuentra cargado en
memoria principal)
Terminado

16
Modelo de 5 estados

17
Estados de los procesos para la
traza de la figura 3.4

18
Una sola cola de bloqueados

19
Varias colas de bloqueados
Ready Queue Release
Admit Dispatch
Processor

Timeout

Event 1 Queue
Event 1 Event 1 Wait
Occurs

Event 2 Queue
Event 2 Event 2 Wait
Occurs

Event n Queue
Event n Event n Wait
Occurs

(b) Multiple blocked queues 20


Procesos suspendidos
Un proceso pasa a estado suspendido
cuando todos los procesos de la memoria
principal se encuentran bloqueados, el
sistema operativo puede suspender el
proceso ponindolo en estado
suspendido y transfirindolo al disco. El
espacio de la memoria principal se
libera y puede utilizarse para traer otro
proceso
21
Con un estado se suspensin

22
Con dos estados de suspensin

23
Razones para suspensin de
procesos

24
Procesos y recursos
El sistema operativo es el que planifica y expide los procesos
para su ejecucin en el procesador, el que asigna los recursos a
los procesos y el que responde a las solicitudes de servicios
bsicos realizadas por los programas de usuario

25
Estructuras de Control del
Sistema Operativo
El sistema operativo va administrar los
procesos y los recursos, entonces tiene
que disponer de informacin sobre el
estado actual de cada proceso y cada
recurso
El mtodo universal para obtener esta
informacin es mediante tablas que
construye el sistema operativo sobre la
entidad que esta administrando

26
Tablas de memoria
Se utilizan para seguir la pista de la memoria principal
(real) y la secundaria (virtual)
Parte de la memoria principal est reservada para el
uso del sistema operativo, el resto est disponible para
el uso de los procesos
Las tablas de memoria deben incluir la siguiente
informacin:
La asignacin de memoria principal a los procesos
La asignacin de memoria secundaria a los procesos
Cualesquiera atributos de proteccin de bloques de memoria
principal o virtual, como qu procesos pueden acceder a
ciertas regiones compartidas de memoria
Cualquier informacin necesaria para gestionar la memoria
virtual

27
Tablas de E/S
Son utilizadas por el sistema operativo para
administrar los dispositivos y los canales de
E/S del sistema informticos
En un instante dado, un dispositivo de E/S
puede estar disponible o estar asignado a un
proceso en particular
Si hay una operacin de E/S en marcha, el
sistema operativo necesita conocer el estado de
la operacin de E/S y la posicin de memoria
principal que se est utilizando como origen o
destino de la transferencia de E/S
28
Tablas de Archivos
Estas tablas ofrecen informacin sobre la
existencia de los archivos, su posicin en
la memoria secundaria, su estado actual
y atributos
Esta informacin puede ser mantenida y
utilizada por un sistema de gestin de
archivos, en cuyo caso el sistema
operativo tendr poco o ningn
conocimiento de los archivos

29
Tablas de Procesos
Administran la localidad de memoria
principal donde los procesos estn
localizados
La memoria, la E/S y los archivos son
administrados en nombre de los
procesos, por lo que se debe tener alguna
referencia directa o indirecta a estos
recursos en tablas de procesos

30
Process
Image
Memory Tables
Process
Memory 1

Devices I/O Tables

Files

Processes File Tables

Primary Process Table

Process 1

Process 2
Process
Process 3 Image
Process
n

Process n

Figure 3.11 General Structure of Operating System Control Tables


31
Elementos tpicos de una imagen
de proceso
Asociado a cada proceso hay una serie de atributos utilizados por
el sistema operativo para el control de proceso. Normalmente estos
atributos se conocen como bloque de control de proceso. Esta
coleccin de programa, datos, pila y atributos puede llamarse
imagen del proceso

32
Atributos de los procesos
La informacin de los bloques de control
de proceso se puede agrupar en tres
categoras:
Identificacin del proceso
Informacin del estado del procesador
Informacin del control del proceso

33
Atributos de los procesos
Identificacin del proceso
El sistema operativo asigna a cada proceso
un identificador nico, que puede ser un
ndice en la tabla principal de procesos

34
Atributos de los procesos
Informacin del estado del procesador
Esta formado por el contenido de los
registros del procesador
Mientras un proceso esta ejecutndose, la
informacin esta en los registros
Cuando se interrumpe un proceso, toda la
informacin de los registros debe salvarse
de forma que pueda restaurase cuando el
proceso reanude su ejecucin

35
Atributos de los procesos
Informacin del control del proceso
Es la informacin necesaria para que el
sistema operativo controle y coordine los
diferentes procesos activos

Leer Tabla 3.5 de elementos tpicos de un


bloque de control de proceso
36
Registros EFLAGS Pentium II

37
Modos de Ejecucin
El modo se ejecucin del procesador se asocia el
sistema operativo y el normalmente se asocia con los
programas de usuario. La mayora de los procesadores
soportan dos modos de ejecucin:
Modo de Usuario
Es el modo menos privilegiado
Los programas de usuario se ejecutan en este modo
Modo del sistema, modo de control o modo del
ncleo
El modo ms privilegiado
La parte del sistema que lleva acabo las funciones
importantes del sistema (lectura y modificacin de registros
de control, instrucciones primitivas de E/S )

38
Creacin de Procesos
Pasos que entran en juego para la creacin de procesos
Asignar un nico identificador al nuevo proceso (se
aade en la tabla de procesos)
Asignar espacio para el proceso
Inicializar el bloque de control de procesos (estado,
prioridad, suceso, planificacin)
Establecer los enlaces apropiados
Ejemplo: si el sistema operativo mantiene cada cola de
planificacin como una lista enlazada, entonces el proceso
nuevo debe poner el la cola de listos o de listos y suspendidos
Crear o ampliar otras estructuras de datos
El sistema operativo puede mantener un archivo de
contabilidad para cada proceso que sea utilizado ms tarde
con propsitos de facturacin o evaluacin del rendimiento

39
Cuando Cambiar de Proceso
Interrupcin de Reloj
El sistema operativo determina si el proceso que
est en ejecucin ha consumido la mxima fraccin
de tiempo permitida
Interrupcin de E/S
El sistema operativo determina que accin de E/S
se ha producido
Fallo de Memoria
El procesador encuentra una referencia a un
direccin de memoria virtual de una palabra que no
esta en memoria principal

40
Cambio de estado de los proceso
Salvar el contexto del procesador,
incluyendo el contador de programa y
otros registros
Actualizar el bloque de control del
proceso que estaba en estado de
ejecucin. Esto implica cambiar el
estado del proceso a alguno de los otros
estados (Listo, Bloqueado, Listo y
Suspendido o Terminado)

41
Cambio de estado de los proceso
Mover el bloque de control del proceso a la
cola apropiada (Listo, Bloqueado por un
suceso i, Listo y Suspendido)
Seleccionar otro proceso para su ejecucin
Actualizar el bloque de control del proceso
seleccionado. Esto incluye cambiar el proceso
a ejecucin
Actualizar las estructuras de los datos de la
gestin de memoria.

42
Ejecucin del sistema
operativo
Ncleo fuera del proceso
Es ejecutar el ncleo del sistema operativo fuera de
cualquier proceso
Con este enfoque, el proceso en ejecucin es
interrumpido, se salva el contexto del procesador
para este proceso y el control pasa al ncleo
Ejecucin dentro de los procesos de usuario
Con este enfoque, es ejecutar casi todo el software
del sistema operativo en el contexto de un proceso
de usuario

43
Ejecucin del sistema
operativo
Sistema operativo basado en procesos
Implementa el sistema operativo como una
coleccin de procesos del sistema
Utilizado para trabajar con
multiprocesadores

44
P1 P2 Pn

Kernel

(a) Separate kernel

P1 P2 Pn
OS OS OS
Func- Func- Func-
tions tions tions

Process Switching Functions

(b) OS functions execute within user processes

P1 P2 Pn OS1 OSk

Process Switching Functions

(c) OS functions execute as separate processes

Figure 3.15 Relationship Between Operating


System and User Processes
45
UNIX SVR4 Process
Management
Most of the operating system executes within
the environment of a user process

P1 P2 Pn
OS OS OS
Func- Func- Func-
tions tions tions

Process Switching Functions

(b) OS functions execute within user processes

46
UNIX Process States

47
UNIX Process Image

48
49
Hilos, SMP y Microncleos

Capitulo 4

1
Procesos e hilos
Unidad de propiedad de los recursos:
Un proceso incluye un espacio de
direcciones virtuales para mantener la
imagen del proceso y algunas veces, al
proceso se le puede asignar el control o la
propiedad de recursos tales como la
memoria principal, canales de E/S,
dispositivos de E/S. El sistema operativo
utiliza la funcin de proteccin para
prevenir las interferencias no deseadas entre
procesos y recursos
2
Procesos e hilos
Unidad de expedicin
La ejecucin de un proceso sigue un camino
de ejecucin (traza) a travs de uno a mas
programas. Esta ejecucin puede ser
intercalada con la de otros procesos. De este
modo, un proceso tiene un estado de
ejecucin y una prioridad de expedicin; y
adems es la unidad planificada y expedida
por el sistema operativo

3
Multihilo
Es la capacidad del sistema operativo
para mantener varios hilos de ejecucin
dentro de un mismo proceso
MS-DOS soporta un solo hilo
UNIX soporta mltiples procesos de
usuario, pero solo un hilo por proceso
Windows, Solaris, Linux, Mach, y OS/2
soportan mltiples hilos por proceso
4
5
Procesos
En el entorno multihilo a los procesos se
les asocian los siguientes elementos:
Un espacio de direcciones virtuales, que
contienen la imagen del proceso
Acceso protegido a los procesadores, otros
procesos, archivos y recursos de E/S

6
Hilos
En un proceso puede haber uno o ms hilos,
cada uno con lo siguiente:
El estado de ejecucin del hilo
El contexto del procesador, que se salva cuando no
est ejecutando; una forma de ver un hilo es como
un contador de programa independiente operando
dentro de un proceso
Una pila de ejecucin
Almacenamiento esttico para variables locales
Acceso a la memoria y a los recursos del proceso,
compartidos con todos los otros hilos del mismo

7
8
Beneficios de los hilos
Se tarda mucho menos tiempo en crear un
nuevo hilo en un proceso existente que crear
un nuevo proceso
Se tarda mucho menos tiempo en terminar un
hilo que un proceso
Se tarda mucho menos tiempo en cambiar
entre dos hilos de un mismo proceso
Los hilos de un mismo proceso comparten
memoria y archivos, pueden comunicarse entre
si sin invocar al ncleo

9
Ejemplos de usos de hilos en un
sistema monousuario y multiproceso
Trabajo interactivo y en segundo plano
En un programa de hoja de calculo, un hilo
puede estar visualizando los mens y leer la
entrada del usuario mientras otro ejecuta las
ordenes y actualiza la hoja de calculo
Procesamiento asncrono
Un hilo que planifique directamente con el
SO para crear respaldos peridicos de la
memoria RAM en el disco duro

10
Ejemplos de usos de hilos en un
sistema monousuario y multiproceso
Aceleracin de la ejecucin
Un proceso con hilos mltiples puede
realizar operaciones con un lote de datos
mientras lee el lote siguiente de un
dispositivo
Estructuracin modular de los programas
Los programas que realizan una o varias
actividades o varios orgenes y destinos de
entrada y salida pueden hacerse ms fciles
de disear e implementar mediante hilos

11
Hilos
La suspensin de un proceso implica la
descarga del espacio de direcciones
fuera de la memoria principal. Puesto
que todos los hilos de un proceso
comparten el mismo espacio de
direcciones, todos deben de entrar en el
estado suspendido al mismo tiempo
La terminacin de un proceso supone
terminar todos los hilos dentro de dicho
proceso
12
Estados de los hilos
Creacin
Cuando se crea un proceso tambin se crea un nuevo hilo
para ese proceso, posteriormente un hilo de un proceso puede
crear otros hilos del mismo proceso
Bloqueo
Cuando un hilo necesita esperar por un suceso, el procesador
pasa a ejecutar otro hilo listo
Desbloqueo
Cuando se produce un suceso por lo que le hilo se bloqueo, el
hilo pasa a cola de listos
Terminacin
Cuando el hilo finaliza, se libera de su contexto y sus pilas

13
Llamadas a procedimiento
Remoto (RPC) con un solo
hilo

14
Llamadas a procedimiento remoto
utilizando un hilo por servidor

15
Ejemplo multihilo en un
monoprocesador

16
Estructura de hilos del Adobe
PageMaker

17
Hilos a Nivel de Usuario (ULT)
El trabajo de gestin de hilos lo realiza
la aplicacin
El ncleo no es conciente de la
existencia de los hilos

18
Hilos a Nivel de Usuario (ULT)

Librera de hilos: Contiene el cdigo para crear y destruir hilos,


para intercambiar mensajes y datos entre hilos, para planificar la
ejecucin de hilos y para salvar y restaurar el contexto de los hilos

19
20
Hilos a Nivel de Ncleo
Windows utiliza hilos a nivel ncleo
El Kernel o Ncleo mantiene el contexto
de los procesos e hilos
El ncleo realiza la planificacin en
funcin de los hilos

21
Hilos a Nivel de Ncleo

22
Aproximaciones combinadas
Un ejemplo es Solaris
La creacin de hilos se realiza en el
espacio de usuario
El programador puede ajustar el numero
KLT para cada aplicacin y maquina en
particular para obtener el mejor
resultado global

23
Aproximaciones combinadas

24
Relationship Between Threads
and Processes

25
Categoras de los Sistemas
Informticos
Flujo de instruccin simple/dato simple
(SISD)
Un nico procesador ejecuta un nico flujo
de instrucciones para operar sobre datos
almacenados en una nica memoria
Flujo de instruccin simple/datos
mltiples (SIMD)
Cada instruccin se ejecuta sobre un
conjunto de datos diferente por medio de
distintos procesadores
26
Categoras de los Sistemas
Informticos
Flujo de instruccin mltiple/dato simple
(MISID)
Se transmite una secuencia de datos a un conjunto
de procesadores, cada uno de los cuales ejecuta una
instruccin de la secuencia. No se ha implementado
Flujo de instruccin mltiple/datos
mltiples (MIMD)
Un conjunto de procesadores ejecuta
simultneamente varias secuencias de instrucciones
sobre distintos conjuntos de datos

27
Multiproceso simtrico
El ncleo puede ejecutar en cualquier
procesador y, normalmente, cada
procesador se auto planifica a partir de
una cola de procesos o hilos libres
Con el enfoque SMP, debe asegurarse
que dos procesadores no escojan el
mismo proceso y que los procesos no se
pierdan de algn modo

28
29
Consideraciones de diseo de un
sistema operativo multiprocesador
Procesos o hilos concurrentes
Permitir que varios procesadores ejecuten el mismo cdigo
del ncleo al mismo tiempo
Planificacin
Evitar conflictos entre los procesadores
Sincronizacin
Precauciones para cuando varios procesadores quieren
acceder a espacios de memoria o recursos compartidos
Gestin de Memoria
Coordinar los mecanismos de paginacin
Fiabilidad y tolerancia a los fallos
El sistema operativo debe realizar una degradacin
proporcional en caso de fallo de un procesador

30
Microncleo
Un microncleo es un pequeo ncleo dentro
del sistema operativo que contiene las
funciones esenciales de un sistema operativo
Los servicios que tradicionalmente han
formado parte del sistema operativo son ahora
externos que interactan con el ncleo y con
otros subsistemas
Controladores de dispositivo
Sistemas de archivos
Gestores de memoria virtual
Sistemas de Ventanas
Servicios de Seguridad

31
Arquitectura del Ncleo

32
Ventajas de la Organizacin
Microncleo
Uniformidad de interfaces
Los procesos no necesitan diferenciar entre servicios de
usuario y de ncleo, ya que todos los servicios se utilizan
mediante paso de mensajes
Extensibilidad
Permite aadir nuevos servicios al conjunto de servicios ya
existentes en alguna de las reas funcionales
Flexibilidad
Se relaciona con la extensibilidad, ya que no solo se pueden
aadir nuevas caractersticas al sistema operativo, sino que se
pueden reducir las caractersticas actuales para dar lugar a
una implementacin mas pequea y mas eficiente

33
Ventajas de la Organizacin
Microncleo
Portabilidad
Cambios necesarios para portar el sistema
operativo a un nuevo procesador son
menores y tienden a estar ordenados en
agrupaciones lgicas
Fiabilidad
Un pequeo microncleo puede probarse de
forma rigurosa

34
Ventajas de la Organizacin
Microncleo
Soporte a sistemas distribuidos
Cuando un cliente enva un mensaje a un
proceso servidor, el mensaje debe incluir un
identificador del servicio solicitado
Soporte para SO orientados a objetos
Los componentes son objetos con interfaces
claramente definidas que se pueden
interconectar para formar un software
construido en bloques

35
Diseo del Microncleo
Cuando un hilo de una aplicacin referencia una pgina que no
esta en memoria principal, se produce un fallo de pgina y la
ejecucin salta al ncleo. Entonces, el ncleo enva un mensaje al
proceso paginador indicndole que pgina ha sido referenciada.
El paginador puede decidir cargar esa pgina y asignarle un
marco de pgina. El paginador y el ncleo deben interactuar para
traducir las operaciones lgicas sobre pginas a memoria fsica.
Una vez que la pgina esta disponible, el paginador enva un
mensaje de reanudacin a la aplicacin

36
Diseo del Microncleo
Comunicacin entre procesos
Los mensajes incluyen cabecera, que identifica a
los procesos emisor y receptor, que contiene
directamente los datos, un puntero a un bloque de
datos o alguna informacin de control sobre el
proceso
Gestin de interrupciones y E/S
El microncleo puede reconocer interrupciones,
pero no gestionarlas. En lugar de eso, genera un
mensaje desde el proceso usuario en ese momento
asociado a esa interrupcin
37
Windows Processes
Implemented as objects
An executable process may contain one
or more threads
Both processes and thread objects have
built-in synchronization capabilities

38
39
Windows Process Object

40
Windows Thread Object

41
Windows 2000
Thread States
Ready
Standby
Running
Waiting
Transition
Terminated

42
43
Solaris
Process includes the users address
space, stack, and process control block
User-level threads
Lightweight processes (LWP)
Kernel threads

44
45
46
Solaris Lightweight Data
Structure
Identifier
Priority
Signal mask
Saved values of user-level registers
Kernel stack
Resource usage and profiling data
Pointer to the corresponding kernel thread
Pointer to the process structure

47
48
Linux Task Data Structure
State
Scheduling information
Identifiers
Interprocess communication
Links
Times and timers
File system
Address space
Processor-specific context

49
Linux States of a Process
Running
Interruptable
Uninterruptable
Stopped
Zombie

50
51
Concurrencia: exclusin mutua y
sincronizacin
Captulo 5

1
Concurrencia
Los temas fundamentales del diseo de sistemas
operativos estn relacionados con la gestin de
procesos e hilos:
Multiprogramacin
Consiste en la gestin de varios procesos dentro de un sistema
monoprocesador
Multiprocesamiento
Consiste en la gestin de varios procesos, dentro den un
sistema multiprocesador
Procesamiento Distribuido
Consiste en la gestin de varios procesos, ejecutndose en
sistemas de computadores mltiples y distribuidas

2
Concurrencia
Puede verse la concurrencia de
procesos como la ejecucin simultnea
de varios procesos. Si tenemos un
multiprocesador o un sistema distribuido
la concurrencia parece clara, en un
momento dado cada procesador ejecuta
un proceso.

3
Concurrencia
La concurrencia puede dividirse en tres contextos
diferentes
Mltiples aplicaciones
La multiprogramacin se creo para permitir que el tiempo del
procesador de la mquina fuese compartido dinmicamente entre
varias aplicaciones activas
Aplicaciones estructuradas
Como aplicacin de los principios del diseo y la programacin
estructurada, algunas aplicaciones pueden implementarse
eficazmente como un conjunto de procesos concurrentes
Estructura del sistema operativo
Las mismas ventajas de estructuracin son aplicables a los
programadores de sistemas y se ha comprobado que algunos
sistemas operativos estn implementados como un conjunto de
procesos o hilos

4
Dificultades de la Concurrencia
Compartir recursos globales
El manejo del sistema operativo al
guardar los recursos de manera optima
Dificultades para localizar errores de
programa

5
Concurrencia
Comunicacin entre procesos
Compartir recursos
Sincronizacin de mltiples procesos
Tiempo del procesador

6
Un ejemplo simple
void echo()
{
chin = getchar();
chout = chin;
putchar(chout);
}

7
Un ejemplo simple
Proceso P1 Proceso P2
. .
chin = getchar(); .
. chin = getchar();
chout = chin; chout = chin;
putchar(chout); .
. putchar(chout);
. .

8
Concurrencia

9
Labores del Sistema Operativo
Seguir la pista de los diferentes procesos que se llevan
a cabo
Asignar y retirar distintos recursos
Tiempo de procesador
Memoria
Archivos
Dispositivos de E/S
Proteger datos y recursos fsicos de cada proceso
Los resultados de un proceso deben ser independientes
de la velocidad relativa a la que se realiza la ejecucin
de otros procesos concurrentes

10
Interaccin entre Procesos
Los procesos no tienen conocimiento de los
dems (existe una competencia por los
recursos)
Los procesos tienen un conocimiento indirecto
de otros (muestran cooperacin para
compartir el objeto en comn)
Los procesos tiene un conocimiento directo de
otros (son capaces de comunicarse con los
dems por el identificador muestran
cooperacin )
11
12
Competencia entre los
procesos por los recursos
Se deben solucionar tres problemas de control
Exclusin Mutua
Seccin Critica (cuando se quiere conocer el estado
de un dispositivo)
Solo un programa puede acceder a su seccin critica en
un momento dado
Un ejemplo es que solamente en un tiempo un proceso
puede mandar comandos de ejecucin a la impresora
Hacer que se cumpla la exclusin mutua crea dos
problemas adicionales
Interbloqueo (Deadlock) P1R2 P2R1
Inanicin (Starvation) P1, P2, P3 R

13
Requisitos para la exclusin
mutua
Debe cumplirse la exclusin mutua: slo un proceso
de entre todos los que poseen secciones criticas por el
mismo recurso u objeto compartido, debe tener
permiso para entrar en ella en un instante dado
Un proceso que interrumpe una seccin no critica debe
hacerlo sin interferir con los otros procesos
Un proceso no debe poder solicitar acceso a una
seccin critica para despus ser demorado
indefinidamente; no puede permitirse el interbloqueo o
la inanicin
Cuando ningn proceso est en su seccin critica,
cualquier proceso que solicite entrar en la suya debe
hacerlo sin dilacin
No se debe hacer suposiciones sobre la velocidad
relativa de los procesos o el numero de procesadores
Un proceso permanece en su seccin critica solo por14
un tiempo finito
Exclusin Mutua: Soluciones
por Software
Inhabilitacin de interrupciones
El proceso es frustrado ya que no puede hacer nada
productivo hasta que obtiene el permiso de entrar
en su seccin critica (Espera Activa)
Con la inhabilitacin de interrupciones se garantiza
exclusin mutua
El procesador es limitado en la habilidad de
cambiar de programas
Multiprocesos
La inhabilitacin de interrupciones en uno de los
procesadores no va a garantizar exclusin mutua

15
Exclusin Mutua: Soluciones
por Hardware
Instrucciones Especiales de Mquina
Las acciones se realizan en un nico ciclo
de instruccin
Los accesos a posiciones de memoria
excluyen a cualquier otro acceso a la misma
posicin

16
Exclusin Mutua: Soluciones
por Hardware
La instruccin intercambiar
void exchange(int register,
int memory) {
int temp;
temp = memory;
memory = register;
register = temp;
}
18
Exclusin Mutua

19
Instrucciones Maquina para
Exclusin Mutua
Ventajas
Es aplicable a cualquier numero de procesos
con memoria compartida
Es simple y fcil de verificar
Puede usarse para disponer de varias
secciones criticar, cada seccin critica
puede definirse con su propia variable

20
Instrucciones Maquina para
Exclusin Mutua
Desventajas
La espera activa consume tiempo del procesador
La inanicin es posible cuando el procesador deja
un proceso en una seccin critica y mas de un
proceso esta esperando
Interbloqueo
Si un proceso de menor prioridad esta en una regin
critica y un proceso de mayor prioridad la necesita, el
proceso de mayor prioridad es ejecutado por el
procesador para esperar en una regin critica

21
Semforos
Se utilizan para cuando dos o ms procesos
cooperan por medio de simples seales, de
forma que puedan obligar a detener a un
proceso en un posicin determinada hasta que
reciba una seal especifica
Para la sealizacin, se usan variables
especiales llamadas semforos
Un proceso se encuentra en espera de una
seal, y esta suspendido hasta que le manden
una seal
22
Semforos
Un semforo es una variable que tiene un valor
entero y definen las siguientes operaciones:
Un semforo puede iniciarse con un valor no
negativo
La operacin wait disminuye el valor del semforo.
Si el valor se hace negativo, el proceso ejecuta el
wait se bloquea
La operacin signal incrementa el valor del
semforo. Si el valor no es positivo se desbloquea
un proceso bloqueado por una operacin wait

23
Ejemplo del mecanismos de
semforos
1. A esta en ejecucin; B, C y D estn Listos; y el contador del semforo
vale 1, lo que indica que hay un resultado disponible de D. Cuando A
ejecuta la instruccin wait, pasa inmediatamente y puede continuar
ejecutando; ms tarde entra en la cola de Listos
2. Pasa B a ejecuta, acaba de ejecutar la instruccin wait y se suspende
3. Se ejecuta D, cuando completa otro nuevo resultado, ejecuta una
instruccin signal
4. Se permite a B volver a la cola de Listos
5. D vuelve a la cola de Listos y C comienza a ejecutar, pero se suspende
cuando ejecuta la instruccin wait
6. De la misma forma, se suspenden en el semforo A y B, se permite a D
reanudar la ejecucin
7. Cuando D tiene un nuevo resultado, ejecuta un signal, que lleva C a la
cola de Listos. Los ciclos de D posteriores liberaran a los procesos A
y B de la suspensin
27
28
Monitores
Los monitores son estructuras de lenguaje de programacin
que ofrecen una funcionalidad equivalente a los semforos,
para hacer cumplir la exclusin mutua y coordinar
procesos
Consta de uno o mas procedimientos, una secuencia de
inicio y unos datos locales.
Caractersticas:
Las variables de datos locales estn accesibles para los
procedimientos del monitor y no para procedimientos
externos
Un proceso entra al monitor invocando a uno de sus
procedimientos
Solo un proceso puede estar ejecutando al monitor en un
instante dado, cualquier otro proceso que haya invocado al
monitor quedar suspendido mientras espera a que el monitor
est disponible

41
Monitores
Utiliza dos funciones para operar con las
variables de condicin:
cwait(c): suspende la ejecucin del proceso que se
llama bajo la condicin c. El monitor est ahora
disponible para ser usado por otros procesos.
csignal(c): reanuda la ejecucin de algn proceso
suspendido despus de un cwait bajo la misma
condicin. Si hay varios procesos, elige uno de
ellos; si no hay ninguno, no hace nada.

42
Paso de Mensajes
Cuando dos procesos interactan unos con otros,
deben satisfacer dos requisitos bsicos: la
sincronizacin y la comunicacin. Los procesos tiene
que sincronizarse para cumplir la exclusin mutua; los
procesos cooperantes pueden necesitar cambiar
informacin. Un mtodo para ofrecer ambas funciones
es el paso de mensajes
La funcionalidad real del paso de mensaje se ofrece,
normalmente, por medio de un par de primitivas:

send (destination, message)


receive (source, message)

47
Sincronizacin
Cuando se ejecuta la primitiva send en un
proceso hay dos posibilidades: o bien el
proceso emisor se bloquea hasta que se reciba
el mensaje o no se bloquea.
Cuando el proceso ejecuta una primitiva
receive, hay dos posibilidades:
Si previamente se ha enviado algn mensaje, este
es recibido y continua la ejecucin
Si no hay ningn mensaje esperando entonces, o
bien:
El proceso es bloqueado hasta que llega un mensaje
El proceso continua ejecutando, abandona el intento de
recepcin

48
Sincronizacin
Son habituales las siguientes tres combinaciones:
Envo bloqueante, recepcin bloqueante: tanto el
emisor como el receptor se bloquean hasta que se
entrega el mensaje; esta tcnica se conoce como
rendezvous. Esta combinacin permite una fuerte
sincronizacin entre los procesos
Envo no bloqueante, recepcin bloqueante: aunque
el emisor puede continuar, el receptor se bloquea hasta
que llegue el mensaje solicitado. Esta es,
probablemente, la combinacin ms til. Permite que
un proceso envi un mensaje a varios destinos tan
rpido como sea posible.
Envo no bloqueante, recepcin no bloqueante:
nadie debe esperar

49
Direccionamiento
Evidentemente, es necesario disponer de
alguna forma de especificar en la
primitiva send que proceso va recibir el
mensaje
Los distintos que hacen referencia a los
procesos en las primitivas send y receive
se encuadran dentro de dos categoras:
direccionamiento directo e indirecto.

50
Direccionamiento
Direccionamiento directo
La primitiva send incluye una identificacin
especifica del proceso destino. La primitiva
receive se puede gestionar de dos formas:
El proceso designe explcitamente un proceso
emisor (el proceso conoce de antemano de que
proceso espera el mensaje)
En el direccionamiento implcito, el parmetro
de origen de la primitiva receive tendr un valor
de retorno cuando haya realizado la operacin
de recepcin

51
Direccionamiento
Direccionamiento indirecto
En este caso los mensajes no se envan
directamente del emisor al receptor, sino a
una estructura de datos compartida formada
por colas que pueden guardar los mensajes
temporalmente
Estas colas se denominan generalmente
buzones (mailboxes)
Un proceso enva mensajes al buzn
apropiado y el otro lo recoge del buzn

52
S1

S1 Port R1 Port R1

Sn

(a) One to one (b) Many to one

R1 S1 R1

S1 Mailbox Mailbox

Rn Sn Rn

(c) One to many (d) Many to many

Figure 5.18 Indirect Process Communication


53
Formato de Mensajes
El formato de mensajes depende del servicio
de mensajera y de si el servicio se ejecuta en
un computadora independiente o en un sistema
distribuido
Si se van a pasar una gran cantidad de datos,
los datos pueden ponerse en un archivo y un
mensaje simplemente har referencia al
archivo
Se pueden permitir mensajes de longitud
variable
54
Formato de Mensajes

55
56
57
Readers/Writers Problem
Any number of readers may
simultaneously read the file
Only one writer at a time may write to
the file
If a writer is writing to the file, no reader
may read it

58
59
60
Concurrencia: interbloqueo e
inanicin
Captulo 6

1
Principios del interbloqueo
El interbloqueo se puede definir como el
bloqueo permanente de un conjunto de
procesos que compiten por los recursos del
sistema o bien comunican unos con otros
No existe solucin eficiente para un caso
general
Todos los interbloqueos suponen necesidades
contradictorias de recursos por parte de dos o
mas procesos

2
3
4
5
Recursos Reutilizables
Se pueden distinguir dos categoras generales de recursos: reutilizables y
consumibles
Un recurso reutilizable es aqul que puede ser usado con seguridad por
un proceso y no se agota con el uso
Los procesos obtienen unidades de recurso que liberan posteriormente
para que otros procesos las reutilicen
Unos ejemplos de recursos reutilizables son: procesadores, canales de
E/S, memoria principal y secundaria, dispositivos y estructuras de datos
tales como archivos, bases de datos y semforos
El interbloqueo con recursos reutilizables se presenta por ejemplo, con
dos procesos que compiten por el acceso exclusivo a un archivo D del
disco una unidad T de cinta. El interbloqueo se produce si cada proceso
retiene un recurso y solicita otro. Se produce interbloqueo si el sistema
multiprogramado intercala la ejecucin de los procesos de la siguiente
forma:
p0p1q0q1p2q2

6
Ejemplo de dos procesos
compitiendo por recursos
reutilizables

7
Otro Ejemplo con Interbloqueo
Supngase que el espacio disponible es
de 200 KB y se origina la siguiente
secuencia de peticiones
P1 P2
... ...
Request 80 Kbytes; Request 70 Kbytes;
... ...
Request 60 Kbytes; Request 80 Kbytes;

Se produce interbloqueo si ambos


procesos avanzan hasta su segunda
peticin
8
Recursos Consumibles
Un recurso consumible es aqul que puede ser creado
(producido) y destruido (consumido)
Un proceso productor que no esta bloqueado puede
liberar cualquier numero de recursos consumibles.
Cuando un proceso adquiere un recurso este deja de
existir
Como ejemplo de recursos consumibles estn las
interrupciones, seales, mensajes e informacin en
buffers de E/S
Como ejemplo de interbloqueo con recursos
consumibles, considrese dos procesos, uno intenta
recibir un mensaje de otro y, despus, enviar un
mensaje al otro.

9
Ejemplo con Interbloqueo
El interbloqueo se produce si el Receive
es bloqueante
P1 P2
... ...
Receive(P2); Receive(P1);
... ...
Send(P2, M1); Send(P1, M2);

10
Grficos de la asignacin de
recurso
Grfico dirigido que representa un estado del
sistema de recursos y de procesos

11
Grficos de la asignacin de
recurso

12
Condiciones de Interbloqueo
En la poltica del sistema operativo, deben darse
tres condiciones para que pueda producirse el
interbloqueo:
Exclusin Mutua
Solo un proceso puede usar un recurso cada vez
Retencin y esperar
Un proceso puede tener unos recursos asignados
mientras espera que le asignen otros
No apropiacin
Ningn proceso puede ser forzado a abandonar un
recurso que retenga
13
Condiciones de Interbloqueo
Circulo vicioso de espera
Existe una cadena cerrada de procesos, cada uno de
los cuales retiene, al menos, un recurso que
necesita el siguiente proceso de la cadena

14
15
Existencia de Interbloqueo
Exclusin Mutua
No apropiacin
Retencin y esperar
Circulo vicioso de espera

16
Prevencin del interbloqueo
Exclusin Mutua
Debe ser realizada por el sistema el
operativo
Retencin y Esperar
Puede prevenirse exigiendo que todos los
procesos soliciten todos los recursos que
necesiten a un mismo tiempo y bloqueando
el proceso hasta que todos los recursos
puedan concederse simultneamente

17
Prevencin del interbloqueo
No apropiacin
Si un proceso que retiene ciertos recursos se le deniega una
nueva solicitud, dicho proceso deber liberar sus recursos
anteriores y solicitarlos de nuevo, cuando sea necesario, junto
con el recurso adicional
Si un proceso solicita un recurso que actualmente est
retenido por otro proceso, el sistema operativo puede expulsar
el segundo proceso y exigirle que libere sus recursos
Circulo vicioso de espera
Puede prevenirse definiendo una ordenacin lineal de los
tipos de recursos. Si a un proceso se le han asignado recursos
del tipo R, entonces solo podr realizar peticiones posteriores
sobre los recursos de los tipos siguientes a R en la ordenacin

18
Prediccin de Interbloqueo
En la prevencin de interbloqueo, se obligaba a las
solicitudes de los recursos a impedir que sucediera,
por lo menos, alguna de las cuatro condiciones de
interbloqueo
En la prediccin de interbloqueo, se pueden las tres
condiciones necesarias, pero se realizan elecciones
acertadas para asegurar que nunca llega al punto de
interbloqueo
Con la prediccin del interbloqueo, se decide
dinmicamente si la peticin actual de asignacin de
un recurso podra, de concederse, llevar
potencialmente al interbloqueo
La prediccin del interbloqueo necesita, por lo tanto,
conocer la peticiones futuras de recursos

19
Dos Aproximaciones para
Prediccin de Interbloqueo
No iniciar un proceso si sus demandas
pueden llevar al interbloqueo
No conceder una solicitud de
incrementar los recursos de un proceso si
esta asignacin puede llevar al
interbloqueo

20
Negativa de Asignacin de
Recursos
La estrategia de negar la asignacin de recursos, es denominada
algoritmo del banquero
Se definen los conceptos de estado y estado seguro
Es estado del sistema es, simplemente, la asignacin actual de los
recursos a los procesos. As pues, el estado estar formado:
Por dos vectores,
Recursos = Cantidad total de cada recurso en el sistema
Disponible = Cantidad total de cada recurso sin asignar a los procesos
Y dos matrices,
Demanda = Existencia de recursos para cada proceso
Asignacin = Asignacin actual
Un estado seguro es el estado en el cual existe al menos una
secuencia que no lleva interbloqueo
Un estado inseguro es el estado donde se produce interbloqueo

21
Determination of a Safe State
Initial State

22
Determination of a Safe State
P2 Runs to Completion

23
Determination of a Safe State
P1 Runs to Completion

24
Determination of a Safe State
P3 Runs to Completion

25
Determination of an
Unsafe State

26
Determination of an
Unsafe State

27
Deadlock Avoidance Logic

28
Deadlock Avoidance Logic

29
Restricciones para la Prediccin
de Interbloqueo
Se debe presentar la mxima demanda de
recursos por anticipado
Los procesos a considerar deben ser
independientes, es decir, que el orden en que
se ejecuten no debe estar forzado por
condiciones de sincronizacin
Debe haber un numero fijo de recursos a
repartir y un numero fijo de procesos
Los procesos no pueden finalizar mientras
retengan recursos

30
Estrategias una vez detectado
el interbloqueo
Abortar todos lo procesos interbloqueados
Retroceder cada proceso interbloqueado hasta
algn punto de control definido previamente y
volver a ejecutar todos los procesos
Abortar sucesivamente procesos
interbloqueados hasta que deje de haber
interbloqueo
Apropiarse de recursos sucesivamente hasta
que deje de haber interbloqueo

31
El Problema de la Cena de los
Filsofos

33
Dining Philosophers Problem

34
Dining Philosophers Problem

35
Dining Philosophers Problem

36
Dining Philosophers Problem

37
UNIX Concurrency
Mechanisms
Pipes
Messages
Shared memory
Semaphores
Signals

38
39
Linux Kernel Concurrency
Mechanisms
Includes all the mechanisms found in
UNIX
Atomic operations execute without
interruption and without interference

40
Linux Atomic Operations

41
Linux Atomic Operations

42
Linux Kernel Concurrency
Mechanisms
Spinlocks
Used for protecting a critical section

43
44
Linux Kernel Concurrency
Mechanisms

45
Solaris Thread
Synchronization Primitives
Mutual exclusion (mutex) locks
Semaphores
Multiple readers, single writer
(readers/writer) locks
Condition variables

46
47
48
Gestin de Memoria

Capitulo 7

1
Gestin de Memoria
La memoria principal se divide en dos partes:
una parte para el sistema operativo y otra para
el programa que se ejecuta en ese instante
En un sistema multiprogramado, la memoria
debe subdividirse para hacer sitio a varios
procesos
La tarea de subdivisin la lleva a cabo
dinmicamente el SO y se conoce como
gestin de memoria
Se necesita repartir eficientemente la memoria
para introducir tantos procesos como sea
posible
2
Requisitos de la Gestin de
Memoria
Reubicacin
El programador no conoce que otros programas
residirn en la memoria en el momento de la
ejecucin de su programa
Para maximizar el uso del procesador se busca
poder cargar y descargar procesos activos,
manteniendo una gran reserva de procesos listos
para ejecutarse
Una vez que se ha descargado un programa en el
disco, seria bastante limitado que, cuando vuelva a
ser cargado, deba situarse en la misma regin de
memoria principal que antes. En lugar de ello, se
puede necesitar reubicar el proceso en un rea
distinta de la memoria
3
4
Requisitos de la Gestin de
Memoria
Proteccin
El proceso debe protegerse contra interferencias no
deseadas de otros procesos, tanto accidentales
como intencionadas
La mayora de los lenguajes de programacin
permiten el calculo dinmico de direcciones en
tiempo de ejecucin
El procesador (hardware), y no el sistema operativo
(software), es el que debe satisfacer las exigencias
de proteccin de la memoria. Esto debido a que el
sistema operativo no puede anticiparse a todas las
referencias a memoria que har un programa

5
Requisitos de la Gestin de
Memoria
Compartimiento
Cualquier mecanismo de proteccin que se
implemente debe tener flexibilidad de
permitir el acceso de varios procesos a la
misma zona de memoria principal
Si una serie de procesos estn ejecutando el
mismo programa, sera permitir que cada
proceso acceda a la misma copia del
programa, el lugar que de tener una copia
aparte

6
Requisitos de la Gestin de
Memoria
Organizacin Lgica
Los mdulos pueden escribirse y compilarse
independientemente, mientras que el sistema
resuelve durante la ejecucin todas las referencias
de un modulo a otro
Pueden otorgarse distintos grados de proteccin a
los distintos mdulos (solo lectura, solo ejecucin)
Introducir mecanismos por medio de los cuales los
procesos puedan compartir mdulos

7
Requisitos de la Gestin de
Memoria
Organizacin Fsica
La memoria principal disponible para un programa
y sus datos puede ser insuficiente
Superposicin: Un programa y los datos se organizan de
tal forma que puede haber varios mdulos asignados a la
misma regin de memoria, con un programa principal
responsable del intercambio de los mdulos segn se
necesite
El programador no conoce durante la codificacin
cuanto espacio habr disponible o donde estar este
espacio

8
Particin de la Memoria
Particiones Estticas
Cualquier proceso cuyo tamao sea menor o igual que el
tamao de la particin puede cargarse en cualquier particin
libre
Si todas las particiones estn ocupadas y no hay procesos
residentes en estado listo o ejecutando, el sistema operativo
puede sacar un proceso de alguna de las particiones y cargar
otro proceso de forma que siempre haya algn trabajo para el
procesador
Un programa puede ser demasiado grande para caber en la
particin. En este caso, el programador debe disear el
programa mediante superposiciones, para que solo una parte
del programa est en la memoria principal en cada instante

9
Particin de la Memoria
El uso de la memoria es ineficiente.
Cualquier programa, sin importar lo
pequeo que sea, ocupara una particin
completa. Este fenmeno, en el que se
malgasta el espacio interno de una
particin cuando el bloque de datos
cargado es ms pequeo que la particin,
se denomina fragmentacin interna

10
11
Algoritmo de Ubicacin
Particiones del mismo tamao
Con particiones del mismo tamao, la ubicacin de un
proceso en la memoria es trivial. Mientras haya una particin
libre, puede cargarse un proceso en esa particin. Puesto que
todas las particiones son de igual tamao, no importa la
particin que se use
Particiones de distintos tamaos
Una forma es asignar a cada proceso la particin ms
pequea en la que quepa. En este caso, hay una cola de
planificacin para cada particin para que albergue procesos
cuyo destino es dicha particin
Otra forma es utilizar una sola cola para todos los procesos.
Cuando se va a cargar un proceso en la memoria principal, se
selecciona la particin ms pequea disponible que pueda
albergar al proceso. Si todas las particiones estn ocupadas,
se debe tomar una decisin de intercambio

12
13
Particiones Dinmicas
Las particiones dinmicas son variables en numero y
longitud
El proceso es almacenado con el tamao exacto de
memoria que necesita
Conforme pasa el tiempo, la memoria comienza a estar
ms fragmentada y su rendimiento decae. Este
fenmeno se denomina fragmentacin externa
Una tcnica para vencer la fragmentacin externa es la
compactacin: de vez en cuando, el sistema
operativo desplaza los procesos para que estn
contiguos de modo que toda la memoria libre quede en
un bloque

14
15
Particiones Dinmicas
Algoritmo de Ubicacin
Puesto que la compactacin de memoria
consume tiempo, el sistema operativo tiene
que decidir adecuadamente como asignar los
procesos a memoria (como llenar los huecos)
Best-fit algorithm
Elige el bloque de memoria mas prximo libre que
sea mayor o igual al proceso a cargar
El proceso de compactacin se realiza ms seguido

16
Particiones Dinmicas
Algoritmo de Ubicacin
First-fit algorithm
Recorre la memoria desde el principio y
elige el bloque de memoria que sea mayor o
igual al proceso a cargar
Es mas rpido
Puede tener ms procesos cargados en el
inicio de la memoria

17
Particiones Dinmicas
Algoritmo de Ubicacin
Next-fit algorithm
Recorre la memoria desde la localidad de la
ultima asignacin
Lleva frecuentemente la asignacin de
bloques libres al final de la memoria
Requiere compactacin para obtener un
gran bloque al final de la memoria

18
19
Sistema de Colegas
El tamao de bloque mas grande esta
dado por 2U
Si se hace la solicitud de tamao s tal
que 2U-1 < s <= 2U, entonces el bloque
entero se asigna
En otro caso el bloque se divide en dos
colegas de igual tamao 2U-1
El proceso continua hasta que el bloque mas
pequeo sea mayor o igual que s
generndose y asignndose a la solicitud
20
21
22
Reubicacin
En ocasiones, un mismo programa necesita
ejecutarse en diferentes posiciones de
memoria. Para esto la traduccin debe estar
realizada en forma adecuada, es decir, no
utilizando referencias absolutas a direcciones
de memoria, sino referencias relativas a una
direccin especial llamada direccin de
reubicacin.
Cuando el proceso se carga por primera vez,
todas la referencias relativas a la memoria en
el cdigo de reemplazan por direcciones
absolutas de la memoria principal

23
Direcciones
Una direccin lgica es una referencia a una
posicin de memoria independiente de la
asignacin actual de datos a la memoria
Una direccin relativa es una caso particular
de direccin lgica en el cual la direccin se
expresa como una posicin relativa a algn
punto conocido.
Una direccin fsica o absoluta, es una
posicin real en la memoria principal

24
Registros Usados durante una
Ejecucin
Registro Base
Direccin de comienzo de un proceso
Registro Limite
Direccin del final de un proceso
Estos valores son asignados cuando los
procesos son cargados y descargados de
la memoria principal

25
26
Registros Usados durante una
Ejecucin
El valor del registro base es sumado con
la direccin relativa para producir la
direccin absoluta
El resultado es comparado con el
registro limite
Si la direccin esta dentro de limite se
puede proceder con la ejecucin de la
instruccin. Si esta fuera del limite se
produce una interrupcin

27
Paginacin
Cuando la memoria principal se encuentra dividida en
trozos iguales de tamao fijo relativamente pequeos y
cada proceso esta dividido tambin en pequeos trozos
de tamao fijo y del mismo tamao que la memoria
Los trozos del proceso son llamados pginas, los
trozos de memoria se llaman marcos o marcos de
pgina
El sistema operativo mantiene una tabla de paginas
para cada proceso
La tabla de paginas muestra la posicin del marco de cada
pagina del proceso
La direccin de memoria en esta caso consiste de un numero
de pagina y un desplazamiento dentro de la pagina

28
Asignacin de Paginas de
Procesos a Marcos Libres

29
Asignacin de Paginas de
Procesos a Marcos Libres

30
Estructura de datos para el ejemplo de la
Figura 7.9 en el instante de tiempo (f)

31
Segmentacin
En este caso, el programa y sus datos asociados se
dividen en un conjunto de segmentos
No es necesario que todos los segmentos de todos los
programas tengan la misma longitud, aunque existe
una longitud mxima de segmento
Como en la paginacin, una direccin lgica
segmentada consta de dos partes, en este caso un
numero de segmento y un desplazamiento
El programa puede ocupar mas de una particin y
stas no tienen por que estar contiguas
El sistema operativo mantiene una tabla de
segmentos para cada proceso y una lista de bloques
libres en la memoria principal

32
33
34
35
Memoria Virtual

Capitulo 8

1
Estructuras de Hardware y de
Control
Todas las referencias a memoria dentro de un proceso son
direcciones lgicas que se traducirn a direcciones fsicas
durante la ejecucin. Esto significa que un proceso puede
cargarse y descargarse de la memoria principal de tal forma
que ocupe regiones diferentes de la memoria principal en
momentos distintos a los largo de su ejecucin
Un proceso puede dividirse en varias partes (paginas o
segmentos) y no es necesario que estas partes se encuentren
contiguas en la memoria principal durante la ejecucin. Esto
es posible por la combinacin de traduccin dinmica de
direcciones en tiempo de ejecucin y el uso de una tabla de
paginas o de segmentos
Si estas dos caractersticas estn presentes, no ser necesario
que todas las paginas o todos los segmentos de un proceso
estn en la memoria durante la ejecucin
2
Ejecucin de un Programa
El sistema operativo comienza trayendo solo
pocos fragmentos a la memoria principal
Se llamara conjunto residente del proceso a
la parte del proceso que est realmente en la
memoria principal
Si el procesador encuentra una direccin
lgica que no esta en la memoria principal,
genera una interrupcin que indica un fallo de
acceso a la memoria
El sistema operativo pone al proceso
interrumpido en estado bloqueado.

3
Ejecucin de un Programa
Para que la ejecucin del proceso siga mas tarde, el
sistema operativo necesita traer a la memoria principal
el fragmento del proceso que contiene la direccin
lgica que provoco el fallo de acceso
El sistema operativo emite una solicitud de lectura de E/S al
disco
El sistema operativo puede expedir otro proceso para que se
ejecute mientras se realiza la operacin de E/S.
Una vez que el fragmento deseado se ha trado a la memoria
principal y se a emitido la interrupcin de E/S, se devuelve el
control al SO, que coloca el proceso afectado en estado listo

4
Ventajas de fragmentar
Procesos
Se pueden mantener ms procesos en la
memoria principal
Se van a cargar solo algunos fragmentos de un
proceso en particular, habr sitio para mas procesos
Es mas probable que por lo menos, uno de los
numerosos procesos est en estado listo en un
instante determinado
Es posible que un proceso sea ms grande que
toda la memoria principal
Se elimina una de las limitaciones mas notorias en
la programacin

5
Tipos de Memoria
Memoria Real
Los procesos solo se ejecutan en la memoria
principal
Memoria Virtual
Memoria en disco
Permite al usuario percibir en potencia una
memoria principal mayor, la cual se encuentra
situada en el disco
La memoria virtual permite una multiprogramacin
muy efectiva y revela al usuario las rgidas e
innecesarias restricciones de la memoria principal

6
Hiperpaginacin (Thrashing)
El procesador y el SO tendrn la mayor
cantidad de procesos posible
As pues cuando el SO traiga a la
memoria un fragmento, deber expulsar
otro
El procesador consume mas tiempo
intercambiando fragmentos que
ejecutando instrucciones de usuario

7
Principio de Cercana
La referencias a los datos y al programa dentro
de un proceso tienen que agruparse
Es valida la suposicin de que, durante cortos
periodos de tiempo, se necesitaran solo unos
pocos fragmentos de procesos
Es posible hacer predicciones inteligentes
sobre que fragmentos de un proceso se
necesitaran en futuro cercano y as evitar
hiperpaginacin
La sugerencia de una memoria virtual mejora
el rendimiento de un proceso

8
Esquemas de la memoria
virtual
Tiene que existir un soporte de hardware
y el sistema operativo debe incluir un
software para gestionar el movimiento
de paginas o segmentos entre memoria
secundaria y memoria principal

9
Paginacin
El termino de memoria virtual se asocia normalmente
con sistemas que emplean paginacin
Cada proceso tiene su propia tabla de paginas
Cada entrada de la tabla de paginas contiene el numero
de marco de la pgina correspondiente en la memoria
principal
Solo algunas paginas del proceso pueden estar en
memoria principal, se necesita un bit en cada entrada
de la tabla para indicar si la pagina correspondiente
esta presente (P) en la memoria principal o no lo esta.
Si el bit indica que la pagina est en la memoria, la
entrada incluye tambin el numero de marco para esa
pgina

10
Paginacin

11
Bit de Modificacin en la
Tabla de Paginas
El bit de modificacin (M), es utilizado
para indicar si el contenido de la pagina
correspondiente se ha alterado desde que
la pagina se cargo a la memoria principal
Puede haber otros bits de control, por
ejemplo de comparticin o proteccin de
un marco

12
La lectura de una palabra de la memoria, es la traduccin por
medio de una tabla de paginas de una direccin virtual o lgica,
formada por un numero de pagina y un desplazamiento, a una
direccin fsica formada por un numero de marco y un
desplazamiento

13
Tabla de Paginas
En la mayora de los esquemas de memoria
virtual almacenan las tablas de paginas en la
memoria virtual en vez de la memoria real, ya
que la cantidad de memoria real para una tabla
de paginas puede ser inaceptable
Las tablas de paginas tambin estn sujetas a
paginacin. Cuando un proceso se esta
ejecutando, al menos una parte de su tabla de
paginas debe estar en memoria principal

14
Buffer de Traduccin Adelantada
Cada referencia a memoria virtual puede
generar dos accesos a la memoria
Uno para obtener la entrada de la tabla de paginas
correspondiente
Otro para obtener el dato deseado
Un esquema sencillo de memoria virtual para
doblar el tiempo de acceso a la memoria, hace
el uso de una cache especial para las entradas
de las tablas de paginas, llamada:
Buffer de Traduccin Adelantada (TLB)

17
Buffer de Traduccin Adelantada
Contiene aquellas entradas de la tabla de
paginas usadas hace menos tiempo

18
Buffer de Traduccin Adelantada
Dada un direccin virtual, el procesador
examinara primero la TLB
Si la entrada de la tabla de paginas buscada
esta presente (un acierto en la TLB), se obtiene
el numero de marco y se forma la direccin
real
Si no se encuentra la entrada de la pagina
buscada (un fallo en la TLB), el procesador
emplea el numero de pagina como ndice para
buscar en la tabla de paginas del proceso y
examinar la entrada correspondiente de la tabla
de paginas

19
Buffer de Traduccin Adelantada
Si se encuentra activo el bit de presencia, es que la
pagina se encuentra en memoria principal, y el
procesador puede obtener el numero de marco de la
entrada de la tabla de paginas para formar la direccin
real
El procesador, actualiza la TLB para incluir esta nueva
entrada en la tabla de paginas
Si el bit de presencia no est activo, es que la pagina
buscada no esta en la memoria principal y se produce
un fallo en el acceso a la memoria, llamado fallo de
pagina. En este punto, se abandonara el mbito de
hardware y se invoca al SO, que carga la pagina
necesaria y actualiza la tabla de paginas
20
21
22
Virtual Address Virtual Address
Page # Offset Page # Offset
5 502 5 502

Page # PT Entries
19
511
37
27
14
37 1
211
5 37
90


37 502 37 502

Frame # Offset Frame # Offset
Translation Lookaside Buffer
Real Address Real Address

Page Table

(a) Direct mapping (b) Associative mapping

Figure 8.9 Direct Versus Associative Lookup for Page Table Entries

23
Tamao de Pagina
En cuanto menor sea el tamao de pgina, menor
ser la cantidad de fragmentacin interna
Cuanto menor sea la pgina, mayor ser el numero
de paginas que se necesitan por proceso
Un numero mayor de paginas significa que las
tablas de paginas sern mayores
Para programas grandes, una gran parte de las
tablas de paginas de los procesos activos deben
estar en la memoria virtual
La memoria secundaria esta diseada para la
transferencia eficiente de grandes bloques de datos
entonces tamaos grandes de pgina es mejor

24
Tamao de Pagina
Si el tamao de la pgina es pequeo, un
gran numero de pginas se encontraran
en la memoria principal
Despus de un tiempo, todas las paginas
de la memoria contendrn parte de las
referencias mas recientes del proceso.
La tasa de fallos baja conforme sube el
numero de pginas contenidas en la
memoria principal

25
26
Ejemplos de Tamaos de Pginas

27
Segmentacin
Los segmentos pueden ser de diferente
tamao, incluso de forma dinmica
Simplifica la estructura de datos crecientes
El SO reducir o expandir el segmento cuando lo
necesite
Permite modificar y recopilar los programas
independientemente, sin que sea necesario
recopilar o volver a montar el conjunto de
programas por completo
Se presta a comparticin entre procesos
Se presta a la proteccin, permisos de accesos
de forma adecuada
28
Tablas de Segmentacin
Contiene la informacin de cada proceso
dentro y fuera de la memoria principal
La tabla contiene la direccin de comienzo del
segmento correspondiente de la memoria
principal, as como su longitud
Un bit es necesario para determinar si el
segmento se encuentra en la memoria principal
Otro bit es necesario para determinar si el
segmento ha sido modificado desde que se
cargo en la memoria principal

29
Entrada de una Tabla de
Segmentos

30
Traduccin de direcciones en un
sistema con segmentacin

31
Paginacin y Segmentacin
Combinadas
La paginacin, que es transparente al programador,
elimina la fragmentacin externa y, de este modo,
aprovecha la memoria principal
La segmentacin es visible al programador, y tiene la
ventaja de incluir la capacidad de gestionar estructuras
de datos que pueden crecer, la modularidad y soporte
de la comparticin y proteccin
En un sistema combinado, el espacio de direcciones de
un usuario se divide en varios segmentos y cada
segmento se vuelve a dividir en paginas de tamao
fijo, que tienen la misma longitud que un marco de
memoria principal. Si el segmento tiene menor
longitud que la pgina, el segmento solo ocupara una
pgina

32
Paginacin y Segmentacin
Combinadas

33
34
Relacin entre proteccin de
segmentos

35
Polticas de Lectura (fetch)
Polticas de Lectura
Esta relacionada con la decisin de cuando debe
cargarse una pagina en la memoria principal
Paginacin por demanda: Se trae una pagina a la
memoria principal solo cuando se hace referencia a
una posicin en dicha pgina
Paginacin Previa: Se cargan otras paginas
distintas a las demandadas. La paginas de un
proceso se cargan secuencialmente en la memoria
secundaria

36
Polticas de Ubicacin
Determina donde va a residir una parte
de un proceso en la memoria principal
En un sistema combinado de paginacin
y segmentacin el hardware hace la
traduccin de acceso a memoria
principal

37
Polticas de Reemplazo
Polticas de reemplazo
Es la seleccin de la pgina a reemplazar en la
memoria principal cuando se debe cagar una nueva
pagina. Consideraciones:
El numero de marcos de pgina a asignar a cada
proceso activo
Si el conjunto de paginas a considerar para
reemplazo debe limitarse a las del proceso que
provoco el fallo de pagina o abarcar todos los
marcos de pagina situados en la memoria principal
De entre el conjunto de pginas consideradas, cual
es la pgina especifica que debe elegirse para
reemplazo

38
Polticas de Reemplazo
Bloqueo de Marcos
Algunos marcos de la memoria principal pueden
estar bloqueados
Cuando un marco esta bloqueado, la pgina
cargada actualmente en ese marco no puede ser
reemplazada
El kernel del SO y las estructuras clave de control,
se encuentran en marcos bloqueados
Buffers de E/S pueden bloquearse en marcos de
memoria
El bloqueo se consigue asociando un bit de bloqueo
a cada marco
39
Algoritmos Bsicos de
Reemplazo
La poltica optima
Selecciona para reemplazar la pgina que
tiene que esperar una mayor cantidad de
tiempo hasta que se produzca la referencia
siguiente
Imposible puesto que requiere que el
sistema operativo tenga un conocimiento
exacto de los sucesos futuros

40
Algoritmos Bsicos de
Reemplazo
Poltica de la usada menos reciente
(LRU)
Reemplaza la pagina de memoria que no ha
sido referenciada desde hace tiempo
Es la pagina con menor probabilidad de ser
referenciada en un futuro cercano
Cada pagina es etiquetada con el momento
de su ultima referencia, tanto para
instrucciones como para datos

41
Algoritmos Bsicos de
Reemplazo
La poltica de primera en entrar primera en
salir (FIFO)
Trata los marcos asignados a un proceso como un
buffer circular y las paginas se suprimen de la
memoria segn la tcnica de turno rotatorio
(round-robin)
Se necesita un puntero que circule a travs de los
marcos del proceso
Es reemplazar la pagina que ha estado mas tiempo
en memoria, una pagina introducida en memoria
hace mucho tiempo puede caer en desuso
Con el algoritmo FIFO, las pginas se cargaran y
expulsaran repetidas veces

42
Algoritmos Bsicos de
Reemplazo
Poltica del reloj
Requiere asociar un bit adicional a cada marco, denominado
bit de uso
Cuando se carga una pagina por primera vez en un marco de
memoria, el bit de uso de dicho marco se pone a cero
Cuando se hace referencia a la pgina posteriormente, el bit
de uso se pone a uno
Se considera un buffer circular con un puntero asociado
Al reemplazar la pagina, se hace que el puntero seale al
siguiente marco del buffer. Cunado llega el momento de
reemplazar una pgina, el SO recorre el buffer buscando un
marco con el bit de uso a 0. Cada vez que se encuentra un
marco con el bit de uso a 1, lo pone a 0. Si algn marco del
buffer tiene el bit de uso a 0 al comienzo de la bsqueda, se
elige para reemplazar el primero que halla encontrado
43
44
45
46
Comparacin de Algoritmos de
Reemplazo

47
48
Algoritmos Bsicos de
Reemplazo
Almacenamiento intermedio de pginas
Puede mejorar el rendimiento de la
paginacin
El algoritmo de reemplazo de paginas es
simplemente un FIFO. Para mejorar el
rendimiento, no se pierde la pista de la
pgina reemplazada, sino que se asigna a
una de dos listas siguientes:
La lista de pginas libres, si la pgina no ha sido
modificada
La lista de pginas modificadas
49
Algoritmos Bsicos de
Reemplazo
Almacenamiento intermedio de pginas
La lista de pginas libres es una lista de marcos
disponibles para cargar pginas, se intenta
mantener un pequeo numero de marcos libres en
todo instante
Cuando se va a leer una pgina, se emplea el marco
del principio de la lista
Cuando se va a reemplazar una pgina no
modificada, esta permanece en memoria y su
marco se aade al final de las pginas libres
Cuando se va a reescribir y reemplazar una pgina
modificada, su marco se aade al final de la lista de
pginas modificadas

50
Polticas para el Tamao de
Conjunto Residente
Asignacin Fija
Otorga a cada proceso un numero fijo de pginas en las que
ejecutar
Dicho numero se decide en el instante de la carga inicial y
puede estar determinado por el tipo de proceso o en funcin
de las directrices del programador o el administrador del
sistema
Cada vez que se produce un fallo de pgina en la ejecucin de
un proceso, se debe reemplazar una de las pginas de dicho
proceso por la pgina que necesite
Asignacin Variable
Permite que un numero de marcos asignados a un proceso
cambie a lo largo de su vida

51
Alcance de Reemplazo
El alcance es una estrategia de reemplazo que
puede clasificarse en global y local:
Poltica de Reemplazo Local
Escoge nicamente de entre las pginas residentes del
proceso que origino el fallo de pgina
Poltica de Reemplazo Global
Considera todas las pginas de la memoria como
candidatas para reemplazar, independientemente del
proceso particular al que pertenezcan

52
Asignacin Fija y Alcance Local
Se tiene un proceso que se ejecuta en la memoria
principal con un numero fijo de pginas. Cuando se
produce un fallo de pgina, el sistema operativo debe
elegir la pgina a remplazar entre las del mismo
proceso que estn actualmente en memoria
Con una asignacin fija, es necesario decidir por
anticipado la cantidad de memoria asignada a un
proceso
Si la asignacin tiende a ser demasiado pequea,
entonces se producir un alto porcentaje de fallos de
pgina
Si la asignacin tiende a ser innecesariamente grande,
habr pocos programas en memoria principal y el
procesador estar desocupando un tiempo considerable
o bien se consumir tiempo importante en el
intercambio 53
Asignacin Variable y
Alcance Global
Es la ms sencilla de implementar
Adoptada por un buen numero de sistemas operativos
En un instante dado, en la memoria principal habr
varios procesos, cada uno de ellos con un cierto
numero de marcos asignados. El sistema operativo
mantiene una lista de marcos libres. Cuando se
produce un fallo de pgina, se aade un marco libre al
conjunto residente del proceso y se carga la pgina.
As pues, los procesos que producen fallos
incrementan gradualmente su tamao, lo que ayuda a
reducir el numero global de fallos de pginas en el
sistema
Cuando no hay marcos libres, el sistema operativo
debe elegir una pgina que est en memoria para
reemplazar
54
Asignacin Variable y
Alcance Local
Cuado se carga un nuevo proceso en la
memoria, se asigna cierto numero de marcos
en funcin del tipo de aplicacin, las
necesidades del programa u otros criterios
Cuando se produce un fallo de pgina, se
selecciona la pgina a reemplazar de entre las
del conjunto residente del proceso que sufre el
fallo
De vez en cuando, se vuelve a evaluar la
asignacin otorgada al proceso y se aumenta o
disminuye para mejorar en rendimiento global
55
Polticas de Vaciado
Una poltica de vaciado es la contraria a una
poltica de lectura; se preocupa por determinar
el momento que hay que escribir en memoria
secundaria una pgina modificada
Vaciado por Demanda
Una pgina se escribir en la memoria secundaria
slo cuando haya sido elegida para reemplazarse
Vaciado Previo
Escribe las pginas modificadas antes de que se
necesiten sus marcos, de forma que las pginas
puedan escribirse por lotes

56
Polticas de Vaciado
Almacenamiento intermedio de pginas
Vaciar slo las pginas que es posible reemplazar
La pginas reemplazadas pueden situarse en dos
listas:
Modificadas y No Modificadas
Las pginas modificadas pueden escribirse
peridicamente por lotes y trasladarse a la lista de
no modificadas
Una pgina de la lista de no modificadas puede
reclamarse, si se le hace de nuevo referencia o
perderse, se asigna su marco a otra pgina
57
Control de Carga
El control de carga consiste en determinar el numero
de procesos que pueden estar en memoria principal
(grado de multiprogramacin)
Si en un instante dado, hay pocos procesos residentes
en la memoria, habr muchas ocasiones en las que
todos los procesos estn bloqueados y se gastar
mucho tiempo en el intercambio
Si hay demasiados procesos residentes, el tamao
medio del conjunto residente de cada proceso no ser
el adecuado y se producirn frecuentes fallos de
pgina

58
Efectos de la Multiprogramacin

59
Suspensin de Procesos
Procesos de Prioridad ms baja
Procesos con Fallo de Pgina
Hay una gran probabilidad de que las tareas
que provocan fallos no tengan residente su
conjunto de trabajo y, suspendindolas, para
que el rendimiento pierda lo menos posible
Ultimo Proceso Activado
Este es el proceso con menos posibilidades
de tener su conjunto de trabajo residente
60
Suspensin de Procesos
Proceso con el Conjunto Residente ms Pequeo
Este es el proceso que necesita el menor esfuerzo futuro
para volver a cargar el conjunto residente
El Proceso Mayor
Esta alternativa obtiene la mayor cantidad de marcos libres
en una memoria ocupada, haciendo poco probables ms
desactivaciones en breve
Procesos con la Mayor Ventana de Ejecucin
Restante
En la mayora de los esquemas de planificacin del
procesador, un proceso puede ejecutarse slo durante
cierto cuanto de tiempo antes de ser interrumpido y puesto
al final de la cola de Listos. 61
UNIX and Solaris Memory
Management
Paging System
Page table
Disk block descriptor
Page frame data table
Swap-use table

62
63
64
65
UNIX and Solaris Memory
Management
Page Replacement
Refinement of the clock policy

66
Kernel Memory Allocator
Lazy buddy system

67
Linux Memory Management
Page directory
Page middle directory
Page table

68
69
70
Windows Memory
Management
Paging
Available
Reserved
Committed

71
Planificacin de Monoprocesadores

Captulo 9

1
Propsitos de la Planificacin
Asignar los procesos al procesador o los
procesadores para que sean ejecutados a lo
largo del tiempo, de forma que se cumplan los
objetivos del sistema tales como el tiempo de
respuesta , la productividad y la eficiencia del
procesador
En muchos sistemas, la actividad de
planificacin se divide en tres funciones
independientes:
Planificacin a largo plazo
Planificacin a medio plazo
Planificacin a corto plazo

2
Tipos de Planificacin
Planificacin a largo plazo
Decisin de aadir procesos al conjunto de procesos a
ejecutar
Planificacin a medio plazo
Decisin de aadir procesos al conjunto de procesos que se
encuentran parcial o completamente en memoria
Planificacin a corto plazo
Decisin sobre que proceso disponible ser ejecutado en el
procesador
Planificacin de E/S
Decisin sobre que solicitud de E/S pendiente ser tratada por
un dispositivo de E/S disponible

3
4
5
Planificacin a Largo Plazo
Determina cuales son los programas admitidos en el sistema. De
esta forma controla el grado de multiprogramacin
Una vez admitido, un trabajo o un programa de usuario se
convierte en un proceso y se aade al planificador de corto plazo
La decisin de cuando crear un nuevo proceso viene dada, en
general, por el grado de multiprogramacin deseado. Cuantos
ms procesos se crean, menor es el porcentaje de tiempo en el que
cada proceso se puede ejecutar
El planificador a largo plazo puede limitar el grado de
multiprogramacin para ofrecer un servicio satisfactorio al
conjunto de procesos actual
La decisin de cual va a ser el siguiente proceso a admitir puede
seguir un simple algoritmo primero en llegar/primero en servirse
(FCFS, First-come, First-served) o bien puede basarse en alguna
herramienta de gestin de rendimiento del sistema

6
Planificacin a Medio Plazo
La planificacin a medio plazo forma
parte de la funcin de intercambio
La decisin de cargar un proceso en la
memoria principal se basa en la
necesidad de controlar el grado de
multiprogramacin

7
Planificacin a Corto Plazo
El planificador a corto plazo, tambin conocido como
distribuidor (dispatcher), es la ejecucin ms frecuente
y toma decisiones con un mayor detalle sobre el
proceso que se ejecutar a continuacin
El planificador a corto plazo se ejecuta cuando ocurre
un suceso que puede conducir a la interrupcin del
proceso actual o que ofrece la oportunidad de expulsar
de la ejecucin al proceso actual en favor de otro.
Como por ejemplo de estos sucesos se tienen:
Interrupciones de reloj
Interrupciones de E/S
Llamadas al sistema operativo
Seales

8
Algoritmos de planificacin
Criterios de la Planificacin a Corto
Plazo
Se hace una distincin entre los criterios orientados al
usuario y orientados al sistema
Orientados al Usuario
Se refieren al comportamiento del sistema tal y como se
perciben los usuarios a los procesos individuales
Un ejemplo es el tiempo de respuesta de un sistema
interactivo. El tiempo de respuesta es el tiempo transcurrido
desde que se emite una solicitud hasta que la respuesta
aparece en la salida
Orientados al Sistema
Se centran en el uso efectivo y eficiente del procesador
Un ejemplo es la productividad, es decir, el ritmo con el que
los procesos terminan

9
Criterios de la Planificacin a Corto
Plazo
Criterios relativos al rendimiento
Son cuantitativos y pueden evaluarse
fcilmente
Algunos ejemplos son el tiempo de
respuesta y la productividad

10
Uso de Prioridades
En muchos sistemas, cada proceso tiene una prioridad
asignada y el planificador seleccionar siempre a un
proceso de mayor prioridad antes que a los de menor
prioridad
Se ignoran la existencia de varias colas (bloqueado y
suspendido), en vez de una simple cola de Listos, se
ofrece un conjunto de colas en orden de prioridad
descendente
Un problema de los esquemas puros de planificacin
por prioridades es que los procesos de prioridad ms
baja pueden sufrir inanicin. Este problema ocurre si
siempre hay un flujo continuo de procesos listos de
alta prioridad
14
Colas de Prioridad

15
Funcin de Seleccin
Determina que proceso, de entre los
listos, se elige para ejecutar a
continuacin
La funcin puede estar basada en
prioridades, necesidades de recursos o en
las caractersticas de ejecucin de los
procesos

16
Modo de Decisin
Especifica los instantes de tiempo que aplica la
funcin de seleccin. Hay dos categoras generales:
No preferente:
En este caso, una vez que el proceso pasa el estado de
Ejecucin, continua ejecutando hasta que (a) termina o (b) se
bloquea en espera de una E/S o al solicitar algn servicio del
sistema
Preferente:
El proceso que se esta ejecutando actualmente puede ser
interrumpido y pasado al estado de Listos por el sistema
operativo.
La decisin de apropiarse del procesador puede llevarse a
cabo cuando llega un nuevo proceso, cuando se produce una
interrupcin que lleva a un nuevo proceso Bloqueado al
estado Listo o peridicamente, en funcin de una interrupcin
de reloj

17
Ejemplo de Planificacin de
Procesos

18
Primero en llegar, primero en
servirse
First-Come-First-Served (FCFS)

Tambin llamada primero en entrar/primero en


salir (FIFO First-in, First-out)
Cada vez que un proceso este listo para ejecutarse,
se incorpora a la cola de Listos
Cuando un proceso actual cesa su ejecucin, se
selecciona el proceso ms antiguo de la cola
19
Primero en llegar, primero en
servirse
First-Come-First-Served (FCFS)
Un proceso corto puede esperar mucho
tiempo antes de que pueda ejecutarse
Un problema es que tiende a favorecer a
los procesos con carga de CPU frente a
los que tiene carga en E/S
Los proceso con carga de E/S tienen que
esperar hasta que el proceso con carga en el
CPU se termine

20
Turno Rotatorio
Round-Robin

Un modo sencillo de reducir la penalizacin que sufren los trabajos


cortos con FCFS es considerar la apropiacin dependiente de un
reloj
Peridicamente se genera una interrupcin de reloj
Cuando se genera la interrupcin, el proceso que esta en ejecucin
se sita en la cola de Listos y se selecciona el siguiente trabajo
Esta tcnica se conoce como fracciones de tiempo, puesto que cada
proceso recibe una fraccin de tiempo antes de ser expulsado

21
22
Primero el Proceso ms Corto
Shortest Process Next (SPN)

Es otra forma de reducir el sesgo al proceso ms largo


inherente al FCFS
Esta es una poltica no preferente en la que se
selecciona el proceso con menor tiempo esperado en la
ejecucin
Un proceso corto saltar a la cabeza de cola,
sobrepasando a procesos largos
24
Primero el Proceso ms Corto
Shortest Process Next (SPN)
Una dificultad que se plantea en la poltica
SPN es la necesidad de conocer o, por lo
menos, estimar, el tiempo exigido por cada
proceso
Si la estimacin del programador est
considerablemente por debajo del tiempo de
ejecucin real, el sistema puede abandonar el
trabajo
Un riesgo que existe es la posibilidad de
inanicin para procesos largos mientras que
exista un flujo continuo de procesos cortos
25
Menor Tiempo Restante
Shortest Remaining Time (SRT)

Es una versin del SPN


El planificador siempre elige al proceso que le queda
menos tiempo esperado de ejecucin
Cuando se aade un nuevo proceso a la cola de Listos,
puede quedarle un tiempo esperado de ejecucin menor que
el proceso que esta ejecutndose en ese momento. Por
consiguiente, el planificador puede apropiarse del
procesador siempre que un proceso est listo
El planificador debe disponer de una estimacin del tiempo
de proceso para llevar a cabo la funcin de seleccin,
existiendo el riesgo de inanicin para procesos largos 26
Primero el de Mayor Tasa de Respuesta
Highest Response Ratio Next (HRRN)

R=(w+s)/s
R=tasa de respuesta
w=tiempo consumido esperando al procesador
s=tiempo de servicio esperado
Cuando el proceso actual termina o se bloquea, se
elige el proceso listo con un valor mayor de R

27
Realimentacin

Otra forma de dar preferencia a los trabajos ms cortos consiste en


penalizar a los que han estado ejecutndose por ms tiempo
Se empleara el tiempo consumido hasta el momento, de igual forma
tambin se emplea el mecanismo dinmico de prioridades
Cuando entra por primera vez en el sistema, se sita en RQ0. Cuando
vuelve al estado Listo, despus de su primera ejecucin, se incorpora
a RQ1. Despus de cada ejecucin, se le degradar al nivel
inmediatamente inferior
28
29
Planificacin Por Reparto Equitativo
Fair-Share Scheduling (FSS)
En un sistema multiusuario, las aplicaciones o los
trabajos de los usuarios pueden organizarse de forma
de varios procesos o hilos, se dispone de una
estructura para el conjunto de procesos que no se
identifica con ningn planificador tradicional
El inters no esta en como se comporta un proceso en
particular, sino como se comporta el conjunto de
procesos de usuario que constituyen la aplicacin
Un ejemplo, en un sistema de tiempo compartido, seria
conveniente considerar a todos los usuarios de un
determinado departamento como miembros de un
mismo grupo. Las decisiones de planificacin podrian
intentar a cada grupo un servicio similar
38
39
Traditional
UNIX Scheduling
Multilevel feedback using round robin
within each of the priority queues
If a running process does not block or
complete within 1 second, it is
preempted
Priorities are recomputed once per
second
Base priority divides all processes into
fixed bands of priority levels
40
Bands
Decreasing order of priority
Swapper
Block I/O device control
File manipulation
Character I/O device control
User processes

41
42
Planificacin de
multiprocesadores en tiempo real
Capitulo 10

1
Clasificacin de los Sistemas
Multiprocesador
Agrupacin o multiprocesador dbilmente
acoplado o distribuido
Consta de un conjunto de sistemas relativamente autnomos,
donde cada procesador tiene su propia memoria principal y
sus propios canales de E/S
Procesadores especializados funcionalmente
Un ejemplo son los procesadores de E/S. En este caso, existe
un procesador principal, de propsito general; los
procesadores especializados estn controlados por el
procesador principal y le ofrecen servicios
Multiprocesador fuertemente acoplado
Consta de un conjunto de procesadores que comparten una
memoria principal comn y se encuentran bajo un control
integrado de un sistema operativo

2
Granularidad
Una buena forma de caracterizar a los
multiprocesadores y situarlos en el
contexto de otras arquitecturas es
considerar la granularidad de la
sincronizacin o frecuencia de
sincronizacin entre los procesos del
sistema

3
Paralelismo Independiente
Con el paralelismo independiente, no
existe un sincronizacin explicita entre
los procesos. Cada uno representa una
aplicacin o trabajo separado
independiente
Un ejemplo de este tipo de paralelismo
es un sistema de tiempo compartido.
Cada usuario esta ejecutando una
aplicacin en particular

4
Paralelismo de grano grueso y
muy grueso
Existe una sincronizacin entre los
procesos pero es muy burda. Este tipo de
situacin se maneja fcilmente con un
conjunto de procesos concurrentes
ejecutndose en un monoprocesador
multiprogramado y puede verse
respaldado por un multiprocesador con
escasos cambios

5
Paralelismo de grano medio
Aplicaciones que pueden implementarse
como un conjunto de hilos dentro de un
solo proceso
El programador debe especificar
explcitamente el posible paralelismo de
la aplicacin
Los hilos interactan frecuentemente

6
Paralelismo de grano fino
El paralelismo de grano fino significa un
uso del paralelismo mucho ms
complejo que el que se consigue con el
uso de hilos
Gran parte del trabajo se realiza en
aplicaciones muy paralelas, este campo,
hasta el momento, muy especializado y
fragmentado, con varias soluciones
diferentes

7
Elementos de Diseo
En la planificacin de un multiprocesador
se deben considerar tres puntos
interrelacionados:
La asignacin de procesos a
procesadores
El uso de la multiprogramacin en los
procesadores individuales
La expedicin real de procesos

8
Asignacin de procesos a
procesadores
El mtodo de planificacin ms simple
consiste en tratar a los procesadores como un
recurso reservado y asignar los procesos a los
procesadores por demanda
Asignacin de un proceso a un procesador de
forma permanente
Debe mantenerse una cola de corto plazo dedicada
para cada procesador
Una ventaja de este mtodo es que puede existir
una sobre carga menor en la funcin de
planificacin porque la asignacin al procesador se
realiza una sola vez y para siempre
Permite la planificacin por grupos
9
Asignacin de procesos a
procesadores
Una desventaja de la asignacin esttica es que
un procesador puede estar desocupado, con su
cola vaca mientras que otro tiene trabajos
pendientes. Para prevenir esta situacin, se
puede usar una cola comn:
Todos los procesos van a una cola global y son
ejecutados en cualquier procesador que est
disponible
Existen dos mtodos para la asignacin de
procesos a procesadores:
Arquitectura maestro/esclavo
Arquitecturas simtricas

10
Asignacin de procesos a
procesadores
Arquitectura maestro/esclavo
Las funciones clave del ncleo del sistema
operativo siempre se ejecutan en un determinado
procesador
Los otros procesadores solo pueden ejecutar
programas de usuario
El maestro es el responsable de la planificacin de
trabajos
Desventajas
Una fallo del maestro hace caer todo el sistema
El maestro puede llegar a ser un cuello de botella del
rendimiento

11
Asignacin de procesos a
procesadores
Arquitecturas simtricas
El sistema operativo puede ejecutarse en
cualquier procesador
Cada procesador se autoplanifica con el
conjunto de procesos disponibles
Esta solucin complica el sistema operativo
ya que debe asegurarse que dos
procesadores no selecciones el mismo
proceso y que los procesos no se pierdan, de
algn modo, en el camino desde la cola

12
Planificacin de Procesos
Para la planificacin de procesos en
sistemas multiprocesador, hay una cola
nica para todos los procesadores
Si se utiliza algn tipo de esquema de
prioridades, existirn varias colas, segn
la prioridad, alimentando todas a una
reserva comn de procesadores

14
Planificacin de Hilos
Los hilos se ejecutan por separado del resto del
proceso
Una aplicacin puede implementarse como un
conjunto de hilos que cooperan y ejecutan
concurrentemente en el mismo espacio de
direcciones
Si diversos hilos de una aplicacin se ejecutan
simultneamente en distintos procesadores, se
posibilita en un aumento drstico del
rendimiento
15
Planificacin de hilos para
multiprocesadores
Diversas propuestas de planificacin de hilos en
multiprocesadores:
Reparto de Carga
Los procesos no se asignan a un procesador en
particular. Se mantiene una cola global de hilos
listos y cada procesador, selecciona un hilo de la
cola.
Planificacin por grupos
Se planifica un conjunto de hilos afines para su
ejecucin en un conjunto de procesadores al mismo
tiempo, segn una relacin de uno a uno

16
Planificacin de hilos para
multiprocesadores
Asignacin dedicada a procesadores
Es el enfoque opuesto al reparto de carga y ofrece
una planificacin implcita definida por la
asignacin de hilos a los procesadores. Mientras un
programa se ejecuta, se le asigna un numero de
procesadores igual al numero de hilos que posea.
Cuando el programa finaliza, los procesadores
retornan a la reserva general para posibles
asignaciones a otros programas
Planificacin dinmica
El numero de hilos en un programa se puede
cambiar en el curso de la ejecucin

17
Reparto de Carga
Ventajas del reparto de carga:
La carga se distribuye uniformemente entre los
procesadores, asegurando que ningn procesador este
ocioso mientras haya trabajo disponible
No es necesario un planificador centralizado. Cuando
un procesador esta libre, la ruina de planificacin del
mismo sistema operativo se ejecuta en este procesador
para selecciona un nuevo hilo
La cola global puede organizarse y se puede acceder a
ella (esquemas basados en prioridades , historial de
ejecucin o solicitudes de proceso por adelantado)

18
Desventajas del reparto de
carga
La cola central ocupa una regin de memoria a la que
se debe acceder con exclusin mutua. As pues, si
muchos procesadores buscan trabajo al mismo tiempo,
puede convertirse en cuello de botella
Es improbable que los hilos expulsados reanuden su
ejecucin en el mismo procesador. Si cada procesador
dispone de una cache local, el uso de la cache ser
menos eficiente
Si todos los hilos son tratados como una reserva
comn de hilos, es improbable que todos los hilos de
un programa consigan acceder a los procesadores al
mismo tiempo

19
Planificacin por Grupos
Se aplica a la planificacin simultnea
de hilos que forman parte de un proceso
Es necesaria para aplicaciones paralelas
de grano medio a fino cuyo rendimiento
se degrada seriamente cuando alguna
parte de la aplicacin no se est
ejecutando mientras otras partes estn
listas para ejecutarse

20
Planificacin por Grupos

21
Asignacin dedicada de
procesadores
Una forma externa de planificacin por grupos, consiste
en dedicar un grupo de procesadores a una aplicacin
mientras dure la aplicacin
Cuando se planifica una aplicacin, se asigna cada uno
de sus hilos a un procesador que permanece dedicado a
ese hilo hasta que la aplicacin termine su ejecucin
Este mtodo podra parecer demasiado dispendioso en
tiempo del procesador. Si un hilo de una aplicacin se
bloquea en espera de una E/S o por sincronizacin con
otro hilo, el procesador de dicho hilo quedara
desocupado, no hay multiprogramacin de procesadores
22
23
Planificacin en Tiempo Real
El procesamiento en tiempo real puede definirse
como un tipo de procesamiento en el que la
exactitud del sistema no depende slo del resultado
lgico de un calculo sino tambin del instante en
que se produzca el resultado
En general, en un sistema en tiempo real, algunas de
las tareas son tareas de tiempo real y, por ello,
tienen cierto grado de urgencia. Dichas tareas
intentan controlar o reaccionar ante sucesos que
tiene lugar en el mundo exterior
Estos sucesos se producen en tiempo real, una
tarea de tiempo real debe poder ir al paso de los
sucesos de los que se ocupa 25
Sistemas en Tiempo Real
Control de experimentos de laboratorio
Procesos de control en plantas
industriales
Robtica
Control de trfico areo
Telecomunicaciones
Sistemas de control y mando militar

26
Sistemas en Tiempo Real
Tarea rgida de tiempo real
Se debe cumplir en el plazo; en otro caso producir
daos no deseados o un error fatal del sistema
Tarea flexible en tiempo real
Tiene un plazo asociado, que es conveniente, pero
no obligatorio; aunque haya vencido el plazo
Tarea aperidica
Debe comenzar o terminar en un plazo o bien
puede tener una restriccin tanto para el comienzo
como para la finalizacin
Tarea peridica
El requisito se puede anunciar como una vez por
cada periodo T
27
Caractersticas de los sistemas
operativos en tiempo real
Determinista
Realiza las operaciones en instantes fijos
predeterminados o en intervalos de tiempo
predeterminados
El punto en el cual un sistema operativo puede
satisfacer las peticiones de forma determinista
depende, en primer lugar, de la velocidad con la
que puede responder a las interrupciones y, en un
segundo lugar, de s el sistema posee suficiente
capacidad para gestionar todas las peticiones en el
tiempo requerido

28
Caractersticas de los sistemas
operativos en tiempo real
Sensibilidad
Se refiere a cuento tiempo consume un sistema
operativo en dar servicio a la interrupcin, despus
de reconocerla
La cantidad de tiempo necesario para iniciar la
gestin de la interrupcin y comenzar la ejecucin
de su rutina de tratamiento (ISR, Interrupt Service
Routine)
La cantidad de tiempo para ejecutar la ISR.
Generalmente depende de la plataforma de
hardware
El efecto de anidamiento de interrupciones. El
servicio se retrasar si una ISR puede ser
interrumpida por la llegada de otra interrupcin 29
Caractersticas de los sistemas
operativos en tiempo real
Control de Usuario
Permite al usuario un control preciso sobre las
prioridades de las tareas
El usuario debe poder distinguir entre las tareas
rgidas y flexibles y especificar prioridades
relativas dentro de cada clase
Permite al usuario especificar caractersticas tales
como la paginacin o intercambio de procesos, que
procesos deben estar siempre residentes en la
memoria principal
Los algoritmos de trasferencia de disco

30
Caractersticas de los sistemas
operativos en tiempo real
Fiabilidad
Un fallo transitorio en un sistema que no sea en
tiempo real puede resolverse simplemente
volviendo a iniciar el sistema
Un sistema en tiempo real responde y controla
sucesos en tiempo real. Las perdidas o
degradaciones del rendimiento pueden tener
consecuencias catastrficas, que pueden ir desde
perdidas financieras hasta daos importantes en
equipos e incluso perdidas de vidas humanas

31
Caractersticas de los sistemas
operativos en tiempo real
Tolerancia a Fallos
Es la capacidad de un sistema de conservar la mxima
capacidad y los mximos datos posibles en caso de fallo
En caso de fallo, un sistema en tiempo real intentar corregir
el problema o minimizar sus efectos mientras continua con su
ejecucin
En caso de fallo, el sistema notificar a un usuario o a un
proceso de usuario que debe intentar una accin correctora y
despus continuar la operacin con un nivel de servicio
posiblemente reducido
Un sistema en tiempo real es estable ya que debe cumplir ya
que debe cumplir las tareas en un plazo de ejecucin

32
Caractersticas de los sistemas
operativos en tiempo real
Cambios rpidos de procesos o hilos
Pequeo tamao (con una mnima
funcionalidad asociada)
Capacidad de responder rpidamente a
interrupciones externas
Multitarea con herramientas de
comunicacin entre procesos, como
semforos, seales y sucesos

33
Caractersticas de los sistemas
operativos en tiempo real
Uso de archivos secuenciales especiales que
pueden acumular datos a alta velocidad
Planificacin preferente basada en prioridades
Reduccin de intervalos en los que estn
inhabilitadas las interrupciones
Primitivas para demorar tareas durante un
tiempo fijo, para detenerlas y reanudarlas
Alarmas especiales y temporizadores

34
Planificacin en tiempo real
Algoritmos de Planificacin:
Mtodos con tablas estticas
Realizan un anlisis esttico de las planificaciones de
expedicin posibles. El resultado del anlisis es una
planificacin que determina, en tiempo de ejecucin,
cuando debe comenzar la ejecucin de una tarea
Mtodos preferentes con prioridades estticas
Tambin realizan un anlisis esttico, pero no se realiza
ninguna planificacin. En cambio, se usa dicho anlisis para
asignar prioridades a tareas, de forma que se puede emplear
un planificador convencional preferente con prioridades

37
Planificacin en tiempo real
Algoritmos de Planificacin:
Mtodos de planificacin dinmica
Se determina la viabilidad en tiempo de ejecucin
(dinmicamente) en vez de antes de empezar la ejecucin
(estticamente). Se acepta una nueva tarea para ejecutar slo
si es factible cumplir sus restricciones de tiempo. Uno de los
resultados del anlisis de viabilidad es un plan o proyecto
empleado para decidir cuando se expide cada tarea
Mtodos dinmicos del mejor resultado
No realizan ningn anlisis de viabilidad. El sistema intenta
cumplir todos los plazos y abandona cualquier proceso ya
iniciado y cuyo plazo no se haya cumplido

38
Planificacin por Plazos
La mayora de los sistemas operativos en tiempo real
se disearon con el objetivo de dar inicio a las tareas
de tiempo real tan rpidamente como fuera posible y,
por tanto, hacen hincapi en una rpida gestin de
interrupciones y expedicin de tareas
En la aplicaciones de tiempo real generalmente no
preocupa la velocidad absoluta, sino completar (o
iniciar) las tareas en el momento ms apropiado, ni
antes, ni despus, a pesar de las peticiones dinmicas
de recursos y los conflictos, la sobrecarga de proceso y
los fallos de hardware y software

39
Planificacin por Plazos
Informacin adicional para la planificacin de procesos
en tiempo real:
Instante en que est lista:
El instante en que la tarea pasa a estar lista para ejecucin. En
el caso de una tarea repetitiva peridica, es en realidad una
secuencia de instantes conocidos con anterioridad. En el caso
de una tarea aperidica, este tiempo puede ser conocido con
anterioridad o bien el sistema operativo puede tener
conocimiento de l solamente cuando la tarea ya se encuentra
lista
Plazo de comienzo
Instante en el que la tarea debe comenzar

40
Planificacin por Plazos
Plazo de finalizacin
Instante en que la tarea debe terminar. Las aplicaciones
tpicas de tiempo real tienen normalmente un plazo de
comienzo o un plazo de finalizacin pero no ambos
Tiempo de proceso
El tiempo necesitado para ejecutar una tarea hasta su
finalizacin. En algunos casos este tiempo en facilitado, pero,
en otros, el sistema operativo calcula una media exponencial.
En otros sistemas de planificacin, no se usa esta informacin
Exigencias de recursos
El conjunto de recursos (adems del procesador) que necesita
una tarea durante su ejecucin

41
Planificacin por Plazos
Prioridad
Mide la importancia relativa de la tarea. Las tareas
rgidas de tiempo real pueden tener prioridad
absoluta, producindose un fallo del sistema si
un plazo se pierde. Si el sistema continua
ejecutndose pase lo que pase, tanto las tareas
rgidas en tiempo real como las flexibles recibirn
una prioridad relativa como gua para el
planificador
Estructura de subtareas
Una tarea puede descomponerse en una subtarea
obligatoria y otra subtarea opcional. Solo la
subtarea obligatoria tiene un plazo rgido

42
Perfil de ejecucin de dos tares

43
44
Planificacin Montona de
Frecuencia (RMS)
Se utiliza en la planificacin de
multitarea con tareas peridicas
Asigna prioridades a las tareas en
funcin de sus periodos
La tarea con mayor prioridad es aquella
con la de menor periodo

47
Planificacin Montona de
Frecuencia (RMS)
El periodo T de las tareas es el tiempo
que transcurre entre la llegada de una
tarea y la siguiente llegada de la misma
tarea
La frecuencia de una tarea es
simplemente la inversa del periodo

48
Periodic Task Timing
Diagram

49
50

Anda mungkin juga menyukai