Luis Guarata
Multiprogramación y
uso de la memoria
Edición especial
Índice
¿QUÉ ES LA MULTIPROGRAMACIÓN?
LA MULTIPROGRAMACIÓN EN SISTEMAS OPERATIVOS
SISTEMAS OPERATIVOS MONOPROGRAMADOS
LA GESTIÓN DE LA MEMORIA EN LOS SISTEMAS
MULTIPROGRAMADOS
3
5
6
7
8
Agrega un breve párrafo de avance
aquí
Agrega un breve párrafo de avance
aquí
Agrega un breve párrafo de avance
aquí
1
MÉTODO PARA LA APLICACIÓN DE LA MULTIPROGRAMACIÓN
ADMINISTRACIÓN DE MEMORIA
9
LUIS GUARATA
2
EDITORA EN
JEFE
DIRECTORA
EDITORIAL
DIRECTOR DE
CONTENIDO
Luis Guarata
Luis Gurata
Luis Guarata
Nuestros
escritores
¿QUÉ ES LA
MULTIPROGRAMACIÓN?
3
Se refiere a la idea general de poder cargar
múltiples programas dentro de un mismo
computador para que sean ejecutados en un
determinado momento. Para lograr manejar
múltiples programas, es necesario primero
definir que compone a un programa. En
general, se puede decir que un programa está
compuesto por dos partes: su representación en
memoria que incluye el código, datos y stack del
programa, y su estado de ejecución que incluye
los valores almacenados en los registros de la
CPU (PC, registros acumuladores, SP, Status
register, etc.) que indican el estado actual del
programa en la máquina.
La multiprogramación una
técnica que intenta
incrementar la utilización del
CPU tratando de tener
siempre algo para que el
CPU lo ejecute. Esta idea
funciona de la siguiente
manera: El sistema operativo
selecciona uno de los trabajos
y empieza su ejecución.
4
Eventualmente, el trabajo
tiene que esperar por algo,
tal como una lectura a
disco, un comando que
debe ser tecleado, etc. En
un sistema no
multiprogramado el CPU
debe esperar si hacer
nada. En un sistema con
multiprogramación, el
sistema operativo
simplemente seleccionará
otro trabajo y lo ejecutará.
5
Los Sistemas Operativos son
altamente sofisticados ya que
necesitan tener varios trabajos
listos para ser ejecutados, los
cuales deben de estar
simultáneamente en memoria
principal. Con la multiprogramación,
la ejecución de los procesos (o
hilos) se va solapando en el tiempo
a tal velocidad, que causa la
impresión de realizarse en paralelo
(simultáneamente). Se trata de un
paralelismo simulado, dado que la
CPU sólo puede trabajar con un
proceso cada vez (el proceso
activo). De ahí que, en rigor, se diga
que la CPU ejecuta
«concurrentemente» (no
simultáneamente) varios procesos;
en un lapso de tiempo determinado,
se ejecutarán alternativamente
partes de múltiples procesos
cargados en la memoria principal.
LA
MULTIPROGRAMACIÓN
ENSISTEMASOPERATIVOS
6
Características de un Sistema Operativo de multiprogramación:
Cuando un proceso en ejecución
requería hacer uso de un
dispositivo de E/S, el procesador
quedaba ocioso mientras el
proceso permaneciese en espera y
no retomara su ejecución. En
cambio, en un sistema
multiprogramado, cuando un
proceso Px concluye o se bloquea
(en espera de una operación de
E/S)
El núcleo del sistema operativo
toma el control de la CPU para
efectuar lo que se denomina un
«cambio de contexto», a fin de dar
turno a otro proceso Py para que
se ejecute. Nótese que cuando el
proceso Px recupere su turno,
reanudará su ejecución justo en el
punto exacto en que se
interrumpió.
Este mecanismo supone un mejor
reparto de la carga de trabajo y un
mayor aprovechamiento de la CPU,
lo que redunda en un mayor
rendimiento del sistema.
SISTEMASOPERATIVOS
MONOPROGRAMADOS
Mejora productividad del sistema y utilización de recursos.
Multiplexa recursos entre varios programas.
Generalmente soportan múltiples usuarios (multiusuarios).
Proporcionan facilidades para mantener el entorno de usuarios
individuales.
Requieren validación de usuario para seguridad y protección.
Proporcionan contabilidad del uso de los recursos por parte de los
usuarios.
Multitarea sin soporte multiusuario se encuentra en algunos
computadores personales o en sistemas de tiempo real.
Sistemas multiprocesadores son sistemas multitareas por definición ya
que soportan la ejecución simultánea de múltiples tareas sobre diferentes
procesadores.
Para que este método funcione de forma óptima
la mejor forma es colocar los procesos ordenados
de mayor a menor cantidad de operaciones L/E.
La multiprogramación es una técnica de
multiplexación que permite la ejecución
simultánea de múltiples procesos en un único
procesador. En realidad, esta técnica produce
una ilusión de paralelismo, de manera que parece
que todos los procesos se están ejecutando a la
vez. Sin embargo, hay un único proceso
ejecutándose en el procesador a la vez.
Un método para la multiprogramación es el
Foreground/Background (o ejecución jerarquizada)
(usado en sistemas por tandas, nunca en interactivos),
en él hay un proceso prioritario (el foreground (FG))
que se ejecuta con preferencia de todos los demás,
cuando este proceso solicita una operación
L/E(Lectura/Escritura), mientras el s.o. la realiza, el
proceso FG estará bloqueado por esta operación y le
cede el control al proceso background 1 (BG), y si
éste realiza una operación L/E, al BG2,… Cuando
uno de los procesos bloqueados se desbloquea, recibe
el control del procesador.
Después debes pensar en un artículo convincente para
la historia de portada. Eso será lo que atraiga a tu
público. Asegúrate de tener contenido visual
complementario que inmediatamente llame la
atención. Incluye fotos, ilustraciones y otros gráficos
que combinen bien.
PARA QUE FUNCIONE ÉSTE MÉTODO
7
MÉTODO PARA LA APLICACIÓN
DE LA MULTIPROGRAMACIÓN
8
En un sistema de multiprogramación la memoria
debe ser compartida por varios procesos de cara a
obtener una mayor utilización de los recursos del
ordenador. Esto provoca que la gestión de la
memoria se complique sustancialmente. En primer
lugar, hay que llevar un recuento de las zonas de
memoria ocupadas por los procesos. Así, cuando
un nuevo proceso entre en la memoria se le
asignará una zona que estaba libre. Otro problema
a resolver viene dado por el hecho de que en el
momento de escribir un programa no se sabe en
qué zona de memoria se ubicará, siendo posible
que durante la vida de un proceso éste cambie
varias veces de emplazamiento. Habrá que tener en
cuenta, también, la protección de las zonas de
memoria ocupadas por los procesos, máxime en
sistemas multiusuario donde los procesos pueden
pertenecer a distintos usuarios.
LA GESTIÓN DE LA MEMORIA
EN LOS SISTEMAS
MULTIPROGRAMADOS
10
Los métodos actuales tiene
como base la administración
de memoria que se usaban
antiguamente.
Los programas deben ser
llevados a la memoria y
convertirse en procesos para
ser ejecutados. Cola de
entrada – colección de
programas en disco que
esperan para ser llevados a la
memoria para ejecución.
¿QUÉ ES?
ADMINISTRACIÓN DE
MEMORIA
La parte del sistema
operativo que administra
la memoria se llama
administrador de
memoria. La memoria
principal es un depósito
de datos a los que se
puede acceder
rápidamente y que son
compartidos por la cpu y
los dispositivos de E/S.
9
Memoria Simple
En este esquema, la memoria se asigna de
forma lineal y no hay protección de
memoria entre programas. Sistemas
operativos muy antiguos o sistemas
embebidos simples.
Memoria Paginada
Divide la memoria física y los programas en
páginas de tamaño fijo. Sistemas
operativos modernos, como Windows y
Unix.
Memoria Particionada
La memoria se divide en particiones de
tamaño fijo. Incluye sencillez de
implementación.
Particionamiento Dinámico: Las particiones
son de tamaño variable y se ajustan según
las necesidades del programa. Mejor
utilización de memoria.
Memoria Paginada por Demanda
Las páginas se cargan en la memoria solo
cuando son necesarias, en lugar de cargar
todo el programa de una vez.
Sistemas operativos que soportan memoria
virtual.
Memoria Relocalizable
Permite que los programas se carguen en
cualquier lugar de la memoria física.
Sistemas operativos que usan memoria
virtual.
Segmentación
Divide los programas en segmentos de
tamaño variable según la lógica del
programa. Sistemas que necesitan
protección y acceso eficiente a bloques
grandes de datos.
10

Revista Digital - LuisGuarata - SO II.pdf

  • 1.
    Luis Guarata Multiprogramación y usode la memoria Edición especial
  • 2.
    Índice ¿QUÉ ES LAMULTIPROGRAMACIÓN? LA MULTIPROGRAMACIÓN EN SISTEMAS OPERATIVOS SISTEMAS OPERATIVOS MONOPROGRAMADOS LA GESTIÓN DE LA MEMORIA EN LOS SISTEMAS MULTIPROGRAMADOS 3 5 6 7 8 Agrega un breve párrafo de avance aquí Agrega un breve párrafo de avance aquí Agrega un breve párrafo de avance aquí 1 MÉTODO PARA LA APLICACIÓN DE LA MULTIPROGRAMACIÓN ADMINISTRACIÓN DE MEMORIA 9
  • 3.
    LUIS GUARATA 2 EDITORA EN JEFE DIRECTORA EDITORIAL DIRECTORDE CONTENIDO Luis Guarata Luis Gurata Luis Guarata Nuestros escritores
  • 4.
    ¿QUÉ ES LA MULTIPROGRAMACIÓN? 3 Serefiere a la idea general de poder cargar múltiples programas dentro de un mismo computador para que sean ejecutados en un determinado momento. Para lograr manejar múltiples programas, es necesario primero definir que compone a un programa. En general, se puede decir que un programa está compuesto por dos partes: su representación en memoria que incluye el código, datos y stack del programa, y su estado de ejecución que incluye los valores almacenados en los registros de la CPU (PC, registros acumuladores, SP, Status register, etc.) que indican el estado actual del programa en la máquina.
  • 5.
    La multiprogramación una técnicaque intenta incrementar la utilización del CPU tratando de tener siempre algo para que el CPU lo ejecute. Esta idea funciona de la siguiente manera: El sistema operativo selecciona uno de los trabajos y empieza su ejecución. 4 Eventualmente, el trabajo tiene que esperar por algo, tal como una lectura a disco, un comando que debe ser tecleado, etc. En un sistema no multiprogramado el CPU debe esperar si hacer nada. En un sistema con multiprogramación, el sistema operativo simplemente seleccionará otro trabajo y lo ejecutará.
  • 6.
    5 Los Sistemas Operativosson altamente sofisticados ya que necesitan tener varios trabajos listos para ser ejecutados, los cuales deben de estar simultáneamente en memoria principal. Con la multiprogramación, la ejecución de los procesos (o hilos) se va solapando en el tiempo a tal velocidad, que causa la impresión de realizarse en paralelo (simultáneamente). Se trata de un paralelismo simulado, dado que la CPU sólo puede trabajar con un proceso cada vez (el proceso activo). De ahí que, en rigor, se diga que la CPU ejecuta «concurrentemente» (no simultáneamente) varios procesos; en un lapso de tiempo determinado, se ejecutarán alternativamente partes de múltiples procesos cargados en la memoria principal. LA MULTIPROGRAMACIÓN ENSISTEMASOPERATIVOS
  • 7.
    6 Características de unSistema Operativo de multiprogramación: Cuando un proceso en ejecución requería hacer uso de un dispositivo de E/S, el procesador quedaba ocioso mientras el proceso permaneciese en espera y no retomara su ejecución. En cambio, en un sistema multiprogramado, cuando un proceso Px concluye o se bloquea (en espera de una operación de E/S) El núcleo del sistema operativo toma el control de la CPU para efectuar lo que se denomina un «cambio de contexto», a fin de dar turno a otro proceso Py para que se ejecute. Nótese que cuando el proceso Px recupere su turno, reanudará su ejecución justo en el punto exacto en que se interrumpió. Este mecanismo supone un mejor reparto de la carga de trabajo y un mayor aprovechamiento de la CPU, lo que redunda en un mayor rendimiento del sistema. SISTEMASOPERATIVOS MONOPROGRAMADOS Mejora productividad del sistema y utilización de recursos. Multiplexa recursos entre varios programas. Generalmente soportan múltiples usuarios (multiusuarios). Proporcionan facilidades para mantener el entorno de usuarios individuales. Requieren validación de usuario para seguridad y protección. Proporcionan contabilidad del uso de los recursos por parte de los usuarios. Multitarea sin soporte multiusuario se encuentra en algunos computadores personales o en sistemas de tiempo real. Sistemas multiprocesadores son sistemas multitareas por definición ya que soportan la ejecución simultánea de múltiples tareas sobre diferentes procesadores.
  • 8.
    Para que estemétodo funcione de forma óptima la mejor forma es colocar los procesos ordenados de mayor a menor cantidad de operaciones L/E. La multiprogramación es una técnica de multiplexación que permite la ejecución simultánea de múltiples procesos en un único procesador. En realidad, esta técnica produce una ilusión de paralelismo, de manera que parece que todos los procesos se están ejecutando a la vez. Sin embargo, hay un único proceso ejecutándose en el procesador a la vez. Un método para la multiprogramación es el Foreground/Background (o ejecución jerarquizada) (usado en sistemas por tandas, nunca en interactivos), en él hay un proceso prioritario (el foreground (FG)) que se ejecuta con preferencia de todos los demás, cuando este proceso solicita una operación L/E(Lectura/Escritura), mientras el s.o. la realiza, el proceso FG estará bloqueado por esta operación y le cede el control al proceso background 1 (BG), y si éste realiza una operación L/E, al BG2,… Cuando uno de los procesos bloqueados se desbloquea, recibe el control del procesador. Después debes pensar en un artículo convincente para la historia de portada. Eso será lo que atraiga a tu público. Asegúrate de tener contenido visual complementario que inmediatamente llame la atención. Incluye fotos, ilustraciones y otros gráficos que combinen bien. PARA QUE FUNCIONE ÉSTE MÉTODO 7 MÉTODO PARA LA APLICACIÓN DE LA MULTIPROGRAMACIÓN
  • 9.
    8 En un sistemade multiprogramación la memoria debe ser compartida por varios procesos de cara a obtener una mayor utilización de los recursos del ordenador. Esto provoca que la gestión de la memoria se complique sustancialmente. En primer lugar, hay que llevar un recuento de las zonas de memoria ocupadas por los procesos. Así, cuando un nuevo proceso entre en la memoria se le asignará una zona que estaba libre. Otro problema a resolver viene dado por el hecho de que en el momento de escribir un programa no se sabe en qué zona de memoria se ubicará, siendo posible que durante la vida de un proceso éste cambie varias veces de emplazamiento. Habrá que tener en cuenta, también, la protección de las zonas de memoria ocupadas por los procesos, máxime en sistemas multiusuario donde los procesos pueden pertenecer a distintos usuarios. LA GESTIÓN DE LA MEMORIA EN LOS SISTEMAS MULTIPROGRAMADOS
  • 10.
    10 Los métodos actualestiene como base la administración de memoria que se usaban antiguamente. Los programas deben ser llevados a la memoria y convertirse en procesos para ser ejecutados. Cola de entrada – colección de programas en disco que esperan para ser llevados a la memoria para ejecución. ¿QUÉ ES? ADMINISTRACIÓN DE MEMORIA La parte del sistema operativo que administra la memoria se llama administrador de memoria. La memoria principal es un depósito de datos a los que se puede acceder rápidamente y que son compartidos por la cpu y los dispositivos de E/S. 9
  • 11.
    Memoria Simple En esteesquema, la memoria se asigna de forma lineal y no hay protección de memoria entre programas. Sistemas operativos muy antiguos o sistemas embebidos simples. Memoria Paginada Divide la memoria física y los programas en páginas de tamaño fijo. Sistemas operativos modernos, como Windows y Unix. Memoria Particionada La memoria se divide en particiones de tamaño fijo. Incluye sencillez de implementación. Particionamiento Dinámico: Las particiones son de tamaño variable y se ajustan según las necesidades del programa. Mejor utilización de memoria. Memoria Paginada por Demanda Las páginas se cargan en la memoria solo cuando son necesarias, en lugar de cargar todo el programa de una vez. Sistemas operativos que soportan memoria virtual. Memoria Relocalizable Permite que los programas se carguen en cualquier lugar de la memoria física. Sistemas operativos que usan memoria virtual. Segmentación Divide los programas en segmentos de tamaño variable según la lógica del programa. Sistemas que necesitan protección y acceso eficiente a bloques grandes de datos. 10