Diferencia entre revisiones de «SO monoprogramables»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(Apmpliación de una frase.)
m (Protección de memoria:)
 
(No se muestran 11 ediciones intermedias de 5 usuarios)
Línea 1: Línea 1:
La administración de memoria es muy sencilla. El SO se coloca como bloque al principio de la memoria (memoria del sistema), y el resto para el proceso a ejecutar (memoria del proceso). Si el proceso no cabe, podría recurrirse al solapamiento o a la ejecución en cadena.
+
En los sistemas operativos monoprogramables la administración de memoria es muy sencilla ya que solo hay un proceso en ejecución que puede usar todo el espacio disponible, la gestión de memoria se limita casi a comprobar si el proceso cabe en el espacio libre en la memoria. El SO se coloca como bloque al principio o al final de la memoria (memoria del sistema), y el resto para el proceso a ejecutar (memoria del proceso):
 +
                      _______________________                      _______________________
 +
                    /|                      | 0                  0|                      |\
 +
                    | |  zona de memoria del  |                    | zona del S.O en RAM  | |
 +
                    | |  sistema operativo  |                    |_______________________| |
 +
                    | |_______________________|                    |                      |\|                     
 +
                    |/|                      |                    |  zona de memoria del  | |
 +
      Sistema \    | |                      |                    |  usuario (ejecución  | |    < IBM PC
 +
      clásico /    | |  zona de memoria del  |                    |  de procesos)        | |   
 +
                    | |      usuario        |                    |_______________________| |
 +
                    | |    (ejecución de      |                    |                      |\|
 +
                    | |      procesos)      |                    |  zona de Lectura      | | 
 +
                    | |                      |                    |                      | |
 +
                    \|_______________________| N                  N|_______________________|/       
  
Tiene debilidades en cuanto a protección de memoria. Para evitar que un proceso entre en el área del SO, se puede recurrir al uso de bits de protección (se le asocia a cada palabra un bit para comprobar si es de SO o del proceso) o a los registros valla (se conoce el limite de la dirección entre SO y proceso).
+
 
 +
== Solapamiento: ==
 +
Si el proceso no cabe en el espacio libre en memoria puede recurrirse a 2 estrategias para ejecutarlo:
 +
*'''Ejecución en cadena:''' El programa se divide en varios "subprogramas" y se ejecutan en cadena. Esto se consigue haciendo que cada programa termine su ejecución solicitando que se ejecute el siguiente.
 +
*'''Fragmentar el programa en módulos de solapamiento o recubrimiento:''' Dichos módulos se van cargando en memoria según se necesite. Algunos S.O. permiten que los submodulos también se dividan, dando lugar a una estructura en árbol.
 +
 
 +
        '''______'''
 +
      ''' |      |''' 
 +
        '''|      |'''  Datos permanentes: Datos globales,
 +
        '''|      |'''  programa principal y subprogramas comunes
 +
        '''|      |
 +
        '''|      |'''
 +
      ''' |______|'''_______________________________________________________
 +
        |      |        __|__          __|__          __|__        __|__            /
 +
        |      |      ''' |    |        |    |        |    |      |    |'''          |
 +
        |      |        '''|  A  |        |    |        |  C  |      |  D  |'''          |
 +
        |      |        '''|_____|        |    |        |    |      |_____|'''        <        Módulos de solapamiento o recubrimiento (A, B, C, D)
 +
        |      |                      '''|  B  |        |_____|'''                        |
 +
        |      |                      '''|    |'''                                      |
 +
        |______|                      '''|_____|'''                                        \
 +
 
 +
== Protección de memoria: ==
 +
 
 +
Los sistemas operativos monoprogramables tienen debilidades en cuanto a protección de memoria. Para evitar que un proceso entre en el área del SO, se puede recurrir al uso de:
 +
*'''Bits de protección''': se le asocia a cada palabra un bit (1 para S.O. y 0 para proceso) para comprobar si la posición de memoria es de SO o del proceso. Este sistema no exige que la región protegida sea contigua, con lo que el sistema operativo puede marcar como suyas algunas posiciones de memoria de subprocesos especiales lo que permite que los mismos accedan de forma controlada a datos y subprogramas del núcleo.
 +
 
 +
*'''Registros valla o registros límite''': En el límite entre la zona del sistema operativo y la zona para la ejecución de procesos se carga un registro con la primera posición de memoria que ocupa el proceso. Este sistema es más sencillo y barato que el anterior, pero solo protege una zona (entre la posición de memoria 0 y la posición de memoria del registro) y son necesarios circuitos comparadores rápidos para evitar retrasar la ejecución de las instrucciones. Su funcionamiento es el siguiente: al intentar acceder a una posición de memoria se comprueba si esta dirección es menor que la dirección del registro valla, si es así se lanza un mensaje de error y si no es así se accede a la posición de memoria deseada.
  
 
  Ejemplo práctico:  
 
  Ejemplo práctico:  
 
  Pablo tiene una computadora cuya memoria principal tiene una capacidad de 640KB. El SO (MS-DOS) ocupa el principio de la memoria, dejando libre una  
 
  Pablo tiene una computadora cuya memoria principal tiene una capacidad de 640KB. El SO (MS-DOS) ocupa el principio de la memoria, dejando libre una  
 
  zona de 512KB para el proceso conveniente.  
 
  zona de 512KB para el proceso conveniente.  
  Esto nos impide jugar al Sensible Soccer, por ejemplo, ya que ocupa 560KB. Una posible solución seria instalar un SO menos pesado, como una version  
+
  Esto nos impide jugar al Sensible Soccer, por ejemplo, ya que ocupa 560KB. Una posible solución sería instalar un SO menos pesado, como una version  
 
  más antigua de MS-DOS.
 
  más antigua de MS-DOS.

Revisión actual del 19:06 17 dic 2017

En los sistemas operativos monoprogramables la administración de memoria es muy sencilla ya que solo hay un proceso en ejecución que puede usar todo el espacio disponible, la gestión de memoria se limita casi a comprobar si el proceso cabe en el espacio libre en la memoria. El SO se coloca como bloque al principio o al final de la memoria (memoria del sistema), y el resto para el proceso a ejecutar (memoria del proceso):

                      _______________________                       _______________________ 
                    /|                       | 0                  0|                       |\
                   | |  zona de memoria del  |                     | zona del S.O en RAM   | |
                   | |   sistema operativo   |                     |_______________________| | 
                   | |_______________________|                     |                       |\|                      
                   |/|                       |                     |  zona de memoria del  | | 
      Sistema \    | |                       |                     |  usuario (ejecución   | |    < IBM PC
      clásico /    | |  zona de memoria del  |                     |  de procesos)         | |    
                   | |       usuario         |                     |_______________________| | 
                   | |    (ejecución de      |                     |                       |\|
                   | |       procesos)       |                     |  zona de Lectura      | |  
                   | |                       |                     |                       | | 
                    \|_______________________| N                  N|_______________________|/        


Solapamiento:

Si el proceso no cabe en el espacio libre en memoria puede recurrirse a 2 estrategias para ejecutarlo:

  • Ejecución en cadena: El programa se divide en varios "subprogramas" y se ejecutan en cadena. Esto se consigue haciendo que cada programa termine su ejecución solicitando que se ejecute el siguiente.
  • Fragmentar el programa en módulos de solapamiento o recubrimiento: Dichos módulos se van cargando en memoria según se necesite. Algunos S.O. permiten que los submodulos también se dividan, dando lugar a una estructura en árbol.
        ______
       |      |  
       |      |  Datos permanentes: Datos globales,
       |      |  programa principal y subprogramas comunes
       |      |
       |      |
       |______|_______________________________________________________
       |      |         __|__          __|__          __|__         __|__            /
       |      |        |     |        |     |        |     |       |     |          |
       |      |        |  A  |        |     |        |  C  |       |  D  |          |
       |      |        |_____|        |     |        |     |       |_____|         <         Módulos de solapamiento o recubrimiento (A, B, C, D)
       |      |                       |  B  |        |_____|                        |
       |      |                       |     |                                       |
       |______|                       |_____|                                        \

Protección de memoria:

Los sistemas operativos monoprogramables tienen debilidades en cuanto a protección de memoria. Para evitar que un proceso entre en el área del SO, se puede recurrir al uso de:

  • Bits de protección: se le asocia a cada palabra un bit (1 para S.O. y 0 para proceso) para comprobar si la posición de memoria es de SO o del proceso. Este sistema no exige que la región protegida sea contigua, con lo que el sistema operativo puede marcar como suyas algunas posiciones de memoria de subprocesos especiales lo que permite que los mismos accedan de forma controlada a datos y subprogramas del núcleo.
  • Registros valla o registros límite: En el límite entre la zona del sistema operativo y la zona para la ejecución de procesos se carga un registro con la primera posición de memoria que ocupa el proceso. Este sistema es más sencillo y barato que el anterior, pero solo protege una zona (entre la posición de memoria 0 y la posición de memoria del registro) y son necesarios circuitos comparadores rápidos para evitar retrasar la ejecución de las instrucciones. Su funcionamiento es el siguiente: al intentar acceder a una posición de memoria se comprueba si esta dirección es menor que la dirección del registro valla, si es así se lanza un mensaje de error y si no es así se accede a la posición de memoria deseada.
Ejemplo práctico: 
Pablo tiene una computadora cuya memoria principal tiene una capacidad de 640KB. El SO (MS-DOS) ocupa el principio de la memoria, dejando libre una 
zona de 512KB para el proceso conveniente. 
Esto nos impide jugar al Sensible Soccer, por ejemplo, ya que ocupa 560KB. Una posible solución sería instalar un SO menos pesado, como una version 
más antigua de MS-DOS.