Páginas

APUNTES

GESTION DE MEMORIA
REQUISITOS DE LA GESTIÓN DE MEMORIA:
  • Reubicación: La memoria principal se ubica generalmente compartida por varios procesos. En general, el programa no puede conocer por adelantado que otros programas residirán en la memoria en el momento de la ejecución de su programa. El S.O. tiene que conocer la ubicación de la información de control del proceso y de la pila de ejecución, asi como el punto de partida para comenzar la ejecución del programa para dicho proceso, ya que el S.O. gestiona la memoria y es responsable de traer el proceso a la memoria principal.
  • Proteccion: Cada proceso debe protegerse contra interferencias no deseadas de otros procesos, sean accidentados o intencionados. El código de un proceso no puede hacer referencia a posiciones de memoria de otros procesos, con fines de lectura o escritura sin permisos. Puesto que se desconoce la ubicación de un programa en la memoria principal, es imposible comprobar las direcciónes absolutas durante la compilación para asegurar la protección. Asi todas las referencias a la memoria generadas por un procesos deben comprobarse durante la ejecución para asegurar que solo hace referencia al espacio de memoria destinado a dicho proceso, y los mecanismos que respaldan la reubicación. Tambien forma parte básica del cumplimiento de las necesidades de protección.
  • Comparticion: Cualquier mecanismo de protección que se implemente debe tener la flexibilidad de permitir el acceso de varios procesos a la misma zona de memoria principal. El sistema de gestión de memoria debe permitir accesos controlados a las areas compartidas de la memoria, sin comprometer la protección básica.
ORGANIZACIÓN LOGICA:
  • La mayoría de los programas se organizan en modulos. El S.O. y el hardware del ordenador pueden tratar de forma efectiva los programas del usuario y los datos en forma de modulos de algún tipo, se conseguirá una serie de ventajas tales como:
  1. Los modulos pueden escribirse y compilarse independientemente mientras que el sistema resuelve durante la ejecución todas las referencias de un modulo a otro.
  2. Con un escaso coste adicional, pueden otorgarse distintos grados de protección a los distintos modulos.
  3. Se pueden introducir mecanismos por medio de los cuales, los procesos pueden compartir modulos, la ventaja de compartir es que se corresponde con la visión del problema que tiene el usuario y, por tanto, es fácil para el usuario especificar el comportamiento que desea.

ORGANIZACIÓN FISICA:

  • Sabemos que la memoria del ordenador se organiza en al menos: la memoria principal y la memoria secundaria. La tarea de mover información entre dos niveles de memoria es responsable el S.O.

Tecnica
Descripcion
Ventajas
Desventajas
Particion estatica.
La memoria principal se divide en un conjunto de partición estaticas durante la generación del sistema. Un proceso se puede cargar en una partición de menor o igual tamaño.
Facil de implementar, poca sobrecarga del sistema .
Uso ineficaz de la memoria debido a la fragmentación interna. El numero de proceso es fijo.
Particion dinámica.
Las particiones se crean dinámicamente de forma que cada proceso se carga en una partición de igual tamaño que el proceso.
No hay fragmentación interna, uso mas eficiente de memoria principal
Uso ineficiente del procesador debido a la necesidad de compactación para poder controlar la fragmentación externa.
Paginacion simple.
La memoria principal se divide en un conjunto de marcos de igual tamaño, cada proceso se divide en una serie de paginas del mismo tamaño que los marcos. Un proceso se carga situando todas sus paginas en marcos libres pero no contiguos.
No hay fragmentación externa.
Pequeña cantidad de fragmentos internos.
Segmentacion simple.
Cada proceso se divide en una serie de segmentos. Un proceso carga todos lsus segmentos en particiones no contiguas.
No tiene fragmentación interna.
Mejora la utilización de la memoria y reduce la sobrecarga comparada con la partición dinámica.
Memoria virtual paginada.
Como la paginación simple, salvo que no hace falta cargar todas las páginas de un proceso.
No tiene fragmentación externa.
Alto grado de multiprogramación, gran espacio virtual para el proceso. Soporte protección y comparación.
Sobrecarga por gestión completa de memoria.
Segmentacion paginada.
Cada segmento puede ser descrito por su propia tabla de paginas.
Facilidad de implementar compartición y enlace.
Se simplifican estrategias de almacenamiento.
Se elimina el problema de la fragmentacion externa y la necesidad de compactación.
Costo mayor de segmentación pura o paginación pura.
Se hace necesario mantener un numero mayor de tareas en memoria mayor coste de almacenamiento.
Sigue existiendo el problema de fragmentación interna de las paginas finales de cada segmento.





REPASO TEORIA

1.- ¿Qué es una aplicación ofimática?
Es un programa que digitaliza una herramienta común de oficina (hojas de cálculo, escritos, presentaciones audiovisuales) para facilitar su manipulación. Ej: Microsoft Office Word, Microsoft Office Excel, Microsoft Office PowerPoint.

2.- ¿Qué es una suite ofimática?
Es un paquete informático que incluye diferentes aplicaciones ofimáticas. Ej: Microsoft Office, WordPerfect Office, IBM Lotus Symphony.

3.- ¿Qué es un procesador de textos?
Es una aplicación ofimática que digitaliza la escritura y permite la edición de esta. Un procesador de textos también incluye herramientas para adjuntar imágenes al documento y editarlas.

4.- ¿Qué es software libre?
El software libre es la forma de llamar al software que respeta la libertad de los usuarios sobre su producto adquirido. Dicho software puede ser usado, copiado, estudiado, cambiado y redistribuido libremente.

5.- ¿Qué es software privativo/propietario?
El software propietario (también llamado privativo) es cualquier programa informático en el que el usuario final tiene limitaciones para usarlo, modificarlo o redistribuirlo. O cuyo código se encuentra restringido por un acuerdo de licencia, o por tecnología anticopia.


 UNIDAD 2 (examen viernes 5)
GESTION DE PROCESOS:


Planificación FCFS:
El algoritmo FCFS, conocido como primero en llegar, primero en ser atendido.
Este algoritmo trabaja de la siguiente manera, al entrar un proceso al estado de “listo”, el bloque de control de proceso se ubica en el final de la cola, entonces el cpu al estar libre retirará de esta cola el primer elemento.
Es decir, en este algoritmo el tiempo de espera para que un proceso se ejecute es incierto y no mínimo. Pudiendo así ejecutarse dentro de la cpu un proceso que consuma demasiado tiempo, atrasando a otros procesos y dejando la cpu sin trabajo por lapsos de tiempo.
En definitiva este algoritmo hace que los procesos pequeños esperen a que un grande abandone la cpu. Una gran desventaja.

Planificación en SRT:
Tiempo restante más corto (SRT): Apropiativo. Calculando los tiempos restantes, para lo cual se debe mantener la proporción inicial entre el tiempo real y el tiempo estimado.

Planificación por Prioridad
Esta clase de algoritmo utiliza como relación entre proceso, tiempo de la cpu y prioridad. De donde el proceso con mayor ráfaga tendrá la menor prioridad y viceversa.
Y donde la cpu podrá ser utilizada por el proceso con mayor prioridad.
Dentro de este algoritmo la prioridad es asignada ya sea interna o externamente. Pero, uno de los problemas que puede presentar esta planificación es la de un bloqueo indefinido. Es decir, pudiera darse el caso que existan procesos de prioridad alta que harían que los procesos de prioridad baja queden bloqueados hasta que logren colocarse en la cpu o perderse cuando nuestro sistema se caiga, es decir una espera indefinida.
Es aquí donde se puede aplicar una técnica conocida como envejecimiento, que ira incrementando la prioridad de los procesos en espera cada determinado tiempo hasta que estos se ejecuten. Y a mi parecer este es una de las mejores soluciones.

Planificación con RR
La planificación por turnos o Round Robin, se basa en una estructura FIFO de forma circular, en donde se asigna a los procesos un intervalo de tiempo para la cpu, conocido como quantum. En donde se establece la regla de que un proceso no podrá estar dos veces seguidas en la cpu a menos que sea el único en el estado de listo.
Este algoritmo trabaja de la siguiente manera, al ingresar el proceso a utilizar la cpu, este estará dentro del tiempo (quantum), si al terminar este tiempo el proceso no ha terminado es colocado al final y se ingresará otro proceso. Pero si el proceso pasa ha estado terminado antes de terminar su quantum, también será extraído de la cpu.
En cambio este algoritmo presenta complicaciones pues el tiempo de entrega de un proceso dependerá mucho más del tiempo (quantum) que de la magnitud del proceso.



 UNIDAD 1 (examen miercoles 13)

 FUNCIONES
Una de las principales funciones de es la que permite al programa abstener la capa de hardware y utilizar una serie de llamadas al S.O. para que este sea el encargado de tratar a bajo nivel con los componentes físicos. Si no existiese esta funcionalidad, todo programador que en una aplicación necesitase grabar en un disco duro o disquete y/o imprimir en una impresora, debería escribir el código que le permita hacer esto, pero de forma individual para cada soporte, por lo tanto, si el programador solo incluyese funcionalidad para las impresoras marca A y B, si el usuario tiene una de marca C no podría utilizar las funciones de impresión. Por eso, en la definición de S.O. se dice que provee una interfaz entre las aplicaciones y el software.
La otra gran tarea de un S.O. es controlar el acceso y la utilización de los recursos del sistema y los distribuye de forma que los más voraces no lo consuman todo, dejando a los demás sin estos (recursos). Además también controla quien hace uso de estos recursos y en qué momento. Un S.O. debe poder conocer cuando un recurso está siendo utilizado y en qué momento está libre y dependiendo de esto, permitir o no su uso.

PROCESOS
Un proceso es la única forma en que un S.O. trata a un programa durante su ejecución. La multiprogramación permite administrar varios procesos en una sola CPU, alternando la ejecución de estos a través de controles de tiempo, asignándolos a medida que este límite es alcanzado.
El multiprocesamiento se basa en la distribución de los procesos en múltiples procesadores.
La esencia del procesamiento distribuido es manejar todos los recursos de que dispone el conjunto distribuido como si fuesen una sola maquina.

ARCHIVOS
Son junto a los procesos el otro gran componente de un S.O. Todo proceso requiere para su ejecución que los datos que va a utilizar se encuentren físicamente en algún sitio; lo que hace el sistema de archivos precisamente es permitir que esta información se pueda organizar de manera lógica y sencilla. Todo S.O. debe brindar las herramientas (en forma de llamada al sistema o instrucciones) para que el sistema de archivos sea funcional. Entre las principales se pueden encontrar:
-          Las de creación y destrucción de archivos.
-          Apertura y cierre de los archivos.
-          Los de lectura y escritura.
Adicionalmente también la mayoría de sistemas permiten tener cierto control sobre los archivos pudiendo asignar características como la seguridad.
Un archivo realmente es una colección de bytes relacionados bajo un único nombre.
Adicionalmente los archivos también se encuentran organizados bajo una estructura que los relaciona lógicamente. Esta estructura se denomina directorio (algunos sistemas los denominan también carpetas).

LLAMADAS AL SISTEMA
Son unas instrucciones especiales que usa el sistema para su comunicación con los programas y de estos hacia el sistema (pip, kill, open, close, mkdir, remdir, chdir).

NUCLEO DEL SISTEMA (kernel)
El kernel de un S.O. es el que se encarga de toda la comunicación entre hardware y software, así como de la administración del mismo.


INTERPRETE DE COMANDOS (Shell)
Es el componente del S.O. que le permite al usuario introducir órdenes al equipo. El Shell esconde los detalles internos del S.O. sobre el que esta ejecutándose.
Algunas personas denominan “Shell virtual” a las interfaces graficas del usuario (como Gnome o Windows), debido a su analogía en operaciones con el Shell tradicional.

CARACTERISTICAS DESEABLES DE UN S.O.
-          Soporte a sistemas de archivos diferentes al nativo.
-          Ejecución de aplicaciones compiladas para otras plataformas.
-          Portabilidad
-          Tamaño
-          Interfaz
-          Hardware mínimo sobre el que podría ejecutarse el S.O.
o   Tipo y frecuencia del microprocesador
o   Cantidad de RAM
o   Memoria virtual y de swap.
o   Compatibilidad con periféricos de otros fabricantes.


ADMINISTRADOR DE PROCESOS SUS FUNCIONES SON:
-          Crear y eliminar los procesos de usuario y del sistema
-          Mantener las estructuras necesarias para la caracterización de los procesos en especial, el mantenimiento de la tabla de procesos, donde almacena la información referente a todos los procesos que hay en el sistema (en Windows ctrl+alt+supr abre el visor de tareas).
-          Suspender, apropiar y reanudar los procesos.
-          Proporcionar los mecanismos para la comunicación entre procesos.
-          Proporcionar los mecanismos necesarios para la sincronización de procesos y definir la política de reparto del tiempo de ejecución.
-          Proporcionar los mecanismos para evitar, o manejar, los bloqueos mutuos. Este problema ocurre cuando varios procesos producen una espera circular de recursos que llevan a que ninguno de ellos pueda continuar la ejecución.

ADMINISTRADOR DE LA MEMORIA PRINCIPAL (RAM)
La ejecución concurrente de procesos origina la necesidad de repartir la memoria entre todos ellos. La forma más usual es la de crear un espacio de direcciones virtuales en el cual la memoria es mucho mayor que la capacidad física real.
Las actividades de control de almacenamiento más importantes que hay que realizar son:
-          Controlar la relación entre el espacio de direcciones virtual y el almacenamiento real.
-          Controlar que zonas de memoria se están usando y que proceso las usa así como proteger las zonas de memoria de cada proceso de posibles accesos de otros procesos.
-          Decidir que procesos serán cargados en memoria cuando quede espacio disponible.
-          Asignar espacio para satisfacer los requerimientos de las aplicaciones y recuperar espacio que quede libre tras la terminación de un proceso o mediante la apropiación.



AMINISTRADOR DEL ALMACENAMIENTO SECUNDARIO
El enorme flujo de información que ha de gestionar un sistema operativo moderno hace que la gestión del almacenamiento secundario, generalmente en dispositivos magnéticos u ópticos sea fundamental para el rendimiento del sistema. La mayoría de las aplicaciones y datos han de permanecer en el almacenamiento secundario hasta que su presencia sea requerida en el almacenamiento principal las. Las tareas fundamentales que se han de cumplir son:
-          Administración espacio libre y de la asignación de espacio que sea requerido por los procesos.
-          Administración de las operaciones sobre disco, como el aseguramiento de las peticiones de acceso para optimizar el tiempo de respuesta.

ADMINISTRADOR DE ENTRADA SALIDA
Su misión es la de ocultar todo lo relacionado con las particularidades hardware de E/S sus funciones fundamentales son:
-          Gestión de un sistema de memoria temporal intermedia que cree un sistema de cache con los dispositivos de entrada salida.
-          Creación de una interfaz general con los controladores de dispositivos para un acceso uniforme.
-          Creación de los controladores específicos para cada periférico.

ADMINISTRADOR DE ARCHIVOS
-          Creación y eliminación de archivos
-          Creación y eliminación de directorios.
-          Proporcionar las operaciones primitivas necesarias para la manipulación de archivos y directorios.
-          Relación entre la organización lógica y la organización física de los dispositivos de almacenamiento.
-          Gestión del espacio libre.
-          Gestión de la seguridad del sistema de archivos, y la protección tanto frente a otros usuarios como a fallos del sistema.

SISTEMA DE PROTECCIÓN
-  Ha de proteger los recursos asignados a mi proceso, evitando accesos a sus segmentos de memoria o escrituras en zonas del disco que él tenga en uso. Además, ha de evitar que los errores en un subsistema que está funcionando de forma incorrecta afecten al resto del sistema.
- Administrador de redes.
- La misión fundamental de este es el control de flujo de información dentro de la red  en lo que afecta al propio sistema.

TIPOS DE S.O.
- Clasificación por estructura: monolíticos, con capas, microkernel, maquina virtual.
- Clasificación por servicios ofrecidos: monousuario, monotarea, multitarea, monoproceso, multiproceso.
- Clasificación por soporte a los servicios:
- Sistemas operativos de red.
- Sistemas distribuidos.



S.O. Monolíticos
- Construcción del programa final de módulos compilados separadamente que se unen a través del enlazador (o linker).
- Buena definición de parámetros de enlace entre las distintas rutinas existentes, lo que puede provocar mucho acoplamiento.
- Carecen de protecciones y privilegios al entrar a rutinas que manejan diferentes aspectos de los recursos del ordenador.
- Generalmente están hechos a medida, por lo que son eficientes y rápidos en su ejecución y gestión pero por lo mismo carecen de flexibilidad para soportar diferentes ambientes de trabajo u otro tipo de aplicaciones.

Tipos de S.O. con capas:
Programas usuario
Sistema de archivos
Shell (interprete de comandos)
Funciones de librería estándar
Kernel (núcleo) manejo de procesos y memoria
Hardware (procesador, memoria, discos, etc.)


S.O. con maquina virtual
Presenta una interfaz a cada proceso mostrando una maquina que parece idéntica a la maquina real subyacente
Ejemplo:
- VMware
- Virtual box


S.O. de red
Son aquellos que tienen la capacidad de interactuar con S.O. en otras maquinas por medio de un medio de transmisión. El punto crucial es que el usuario debe conocer la ubicación de los recursos que desea acceder.


S.O. distribuidos
Abarcan los servicios de red logrando integrar recursos en una sola maquina a la que el usuario accede de forma transparente.