Apuntes


SISTEMA INFORMÁTICO 

Un sistema informático como todo sistema, es el conjunto de partes interrelacionadas, hardware, software y de recurso humano que permite almacenar y procesar información. El hardware incluye computadoras, que consisten en procesadores, memoria, sistemas de almacenamiento externo, etc. El software incluye al sistema operativo, firmware y aplicaciones, siendo especialmente importante los sistemas de gestión de bases de datos. Por último el soporte humano incluye al personal técnico que crean y mantienen el sistema (analistas, programadores, operarios, etc.) y a los usuarios que lo utilizan.
SISTEMAS OPERATIVOS SUS ELEMENTOS: Un sistema operativo (SO) es el programa o conjunto de programas que efectúan la gestión de los procesos básicos de un sistema informático, y permite la normal ejecución del resto de las operaciones, también gestiona los procesos de entrada salida.


Estos son algunos de los elementos básicos que requiere el sistema operativo para el buen funcionamiento:

Processor.
Memoria principal:
        También se la conoce como memoria real o memoria principal.
Volátil.
Módulos de E/S:
Dispositivos de memoria secundaria.
Equipos de comunicación.
Terminales.
Interconexión de sistemas:
        Permiten la comunicación entre procesadores, memoria principal y los módulos de E/S.


PROCESADOR

Es un circuito integrado que contiene todos los elementos de la CPU El procesador lee una instrucción de la memoria y tiene un contador de programa (PC) el cual lleva la cuenta de cuál es la próxima instrucción a leer, e incrementa el PC después de leer cada instrucción.
REGISTROS DE PROCESADOR: un registro es una memoria de alta velocidad y poca capacidad, integrada en el microprocesador, que permite guardar transitoriamente y acceder a valores muy usados, generalmente en operaciones matemáticas.



MONO-PROGRAMACIÓN

Cuando solo se tiene un proceso que ocupe la memoria a la vez, el esquema de la administración de la memoria es el más sencillo que hay. Sin embargo, éste método ya no tiene aplicación en la actualidad, ya que era visto en las computadoras con sistemas operativos de un solo usuario y una sola tarea. El usuario introducía su disco a la computadora (por lo general, la máquina no contaba con disco duro) y ejecutaba su aplicación, la cual acaparaba toda la máquina.



MULTI-PROGRAMACIÓN 

Multiprogramación es un término que significa que muchos programas que no están relacionados unos con otros pueden residir en la memoria de una computadora y tomar turnos usando la unidad central de procesamiento, cualquiera que haya usado Windows ®, Unix o Linux ha experimentado un entorno de multiprogramación porque estos sistemas pueden ejecutar un largo numero de programas de usuario aparentemente de manera simultanea en una sola unidad central de procesamiento. La sección que permite la multiprogramación en un sistema operativo se denomina Kernel, éste software consiste en un numero de procedimientos que llevan a cabo funciones como crear tareas, decidir cual tarea correrá en un momento dado, proveyendo un mecanismo para cambiar al procesador de una tarea a otra y provee formas primitivas de acceso controlado a recursos compartidos. Un programa lo constituye una secuencia de instrucciones que cuando se ejecutan realizan alguna actividad. Las tareas a su vez la constituyen una serie de instrucciones
(ejemplo, por ejecución de un programa o programas). Esta acción puede proporcionar una función de sistema o una función de aplicación, que un sistema operativo pueda correr concurrentemente. A primera vista pareciera que tarea y programa son lo mismo.



COMPARACIÓN (MONOPROGRAMACION - MULTIPROGRAMACION) 







Proceso

También se llama tarea.
Ejecución de un programa individual.
Traza del proceso:
Listado de la secuencia de instrucciones que se ejecutan para dicho proceso. 






MODELO DE DOS ESTADOS






Proceso en estado de No Ejecución en una cola





Terminación de procesos

- Un trabajo por lotes debe incluir una instrucción de detención (Halt).
- El usuario se desconecta.
- El usuario puede abandonar una aplicación. 
- Una serie de errores y condiciones de fallo pueden llevarnos a la terminación de un proceso.


Razones para la terminación de un proceso

- Terminación normal.
- Tiempo límite excedido.
- No hay memoria disponible.
- Violación de límites.
- Error de protección:
- Error aritmético.
- Tiempo máximo de espera rebasado:
- El proceso ha esperado más allá del tiempo máximo especificado para que se produzca cierto suceso.


Causas de terminación de un proceso

- Fallo de E/S.
- Instrucción ilegal:
- A menudo cuando intenta ejecutar los datos. 
- Instrucción privilegiada.
- Mal uso de los datos.
- Intervención del operador o del SO:
- Por ejemplo, si se produce un bloqueo. 
- Terminación del padre, por lo que terminan los procesos de todos sus descendientes. 
- Solicitud del padre.



MODELO DE CINCO ESTADOS






MODELO DE SEIS ESTADOS CON UN UN ESTADO DE SUSPENSIÓN






MODELO DE SIETE ESTADOS CON DOS ESTADOS DE SUSPENSIÓN 







WEB 2.0




SEGUNDO CORTE 


PLANIFICACIÓN DE PROCESOS 

Cuando son ejecutables varios procesos, el sistema operativo debe decidir cuál conviene ejecutar si el CPU se encuentra disponible.
El elemento del sistema quien toma esta decisión se llama PLANIFICADOR (Scheduling) y el algoritmo del cual hace uso se denomina ALGORITMO PLANIFICADOR. 


Tipos de Planificación 







Planificación y transiciones de estado de los procesos  





Planificación a largo plazo 

•       Determina cuáles son los programas admitidos en el sistema.
•       Controla el grado de multi-programación.
•       Cuantos más procesos se crean, menor es el porcentaje de tiempo en el que cada proceso se puede ejecutar.



Planificación a medio plazo 

•        Forma parte de la función de intercambio.

•        Se basa en la necesidad de controlar el grado de multi-programación.



Planificación a corto plazo 

•        También conocido como distribuidor.

•        Es el de ejecución más frecuente.

•        Se ejecuta cuando ocurre un suceso:
– Interrupciones del reloj.
– Interrupciones de E/S.
– Llamadas al sistema operativo.
– Señales.



Prioridades 

•       El planificador seleccionará siempre a un proceso de mayor prioridad antes que a los de menor prioridad.

•       Tiene múltiples colas de Listos para representar cada nivel de prioridad.

•       Los procesos de prioridad más baja pueden sufrir inanición:
Permite que un proceso cambie su prioridad en función de su edad o su historial de ejecución. 




Colas de planificación 




Cola de prioridad 



Modo de decisión

•         No preferente
  –   Una vez que el proceso pasa al estado de Ejecución, continúa ejecutando hasta que termina o se bloquea en espera de una E/S.

•         Preferente
  –   El proceso que se está ejecutando actualmente puede ser interrumpido y pasado al estado de Listos por el sistema operativo.

              –   Permiten dar un mejor servicio ya que evitan que un proceso pueda monopolizar 
                   el procesador durante mucho tiempo. 



Ejemplo de planificación de procesos 



Primero en llegar, primero en servirse 


•       Cada proceso se incorpora a la cola de listos.

•       Cuando el proceso actual cesa su ejecución,se selecciona el proceso más antiguo de la cola.

•       Puede que un proceso corto tenga que esperar mucho tiempo antes de que pueda ser ejecutado.

•       Favorece a los procesos con carga de CPU:
–     Los procesos con carga de E/S tienen que esperar a que se completen los procesos con carga de CPU. 



Turno Rotatorio 


•       Utiliza la apropiación dependiente de un reloj.

•       Se determina una cantidad de tiempo que permite a cada proceso utilizar el procesador durante este periodo de tiempo. 

•       Periódicamente, se genera una interrupción de reloj.

•       Cuando se genera la interrupción, el proceso que está en ejecución se sitúa en la cola de Listos:
–      Se selecciona el siguiente trabajo.

•       Se conoce también como fracciones de tiempo


Primero el proceso mas corto 







•       Es una política no preferente.

       Se selecciona el proceso con menor tiempo esperado de ejecución.

       Un proceso corto saltará a la cabeza de la cola, sobrepasando a trabajos largos.

       Se reduce la previsibilidad de los procesos largos.

       Si la estimación de tiempo del proceso no es correcta, el sistema puede abandonar el trabajo.

       Posibilidad de inanición para los procesos largos.




Menor tiempo restante 






















•       Es una versión preferente de la política de primero el proceso más corto.


•       Debe estimar el tiempo de proceso.




Primero el de menor tasa de respuesta 
















•       Elige el proceso con la tasa más baja



Re-alimentación













•       Penaliza a los trabajos que han estado ejecutándose durante más tiempo.


•       No se conoce el tiempo de ejecución restante del proceso








TERCER CORTE 


MEMORIA VIRTUAL
 
         La memoria virtual es una técnica para proporcionar la simulación  de  un  espacio de  memoria mucho mayor que la memoria física de una máquina. Esta "ilusión" permite que los programas se hagan sin tener en cuenta el tamaño exacto de la memoria física.
 
         La memoria virtual ha llegado a ser un componente esencial de la mayoría de los S.O actuales. Y como en un instante dado, en la memoria sólo se tienen unos pocos fragmentos de un proceso dado, se pueden mantener más procesos en la memoria. Es más, se ahorra tiempo, porque los fragmentos que no se usan no se cargan ni se descargan de la memoria. Sin embargo, el S.O debe saber cómo gestionar este esquema.
         La memoria virtual también simplifica la carga del programa para su ejecución llamado reubicación, este procedimiento permite que el mismo programa se ejecute en cualquier posición de la memoria física. 

PAGINACION
 
         El espacio de direcciones de cada proceso se divide en bloques de tamaño uniforme llamados páginas, los cuales se pueden colocar dentro de cualquier para página marco disponible en memoria. Cuando las tablas de páginas son muy grandes se puede utilizar un esquema de paginación de varios niveles para que las páginas se paginen a sí mismas.
         Existen distintos niveles de paginación y a su vez distintos modelos de computadoras han trabajado con ellas.
         En nuestra presentación, la tasa de fallos no ha sido un problema serio, ya que, como máximo, hay un fallo de página por cada página cuando se hace referencia a ella por primera vez. Esto no es muy exacto. Considere que, si un proceso de 10 páginas sólo emplea la mitad de ellas, entonces la paginación por demanda ahorra la E/S necesaria para cinco páginas que nunca se usarán. Podemos aumentar el nivel de multiprogramación ejecutando el doble de procesos. Así, si tuviéramos 40 marcos, podríamos ejecutar ocho procesos, en lugar de cuatro.
 

REMPLAZO DE PAGINAS

         Si aumentamos nuestro nivel de multiprogramación, estamos sobre asignando la memoria. Si ejecutamos seis procesos, cada uno con un tamaño de 10 páginas, pero que sólo utilizan cinco, tenemos mayor utilización de la CPU y productividad, con diez marcos de sobra. Sin embargo, es posible que cada uno de estos procesos, para un conjunto de datos en particular, requiera sus 10 páginas, lo que supondría una necesidad de 60 marcos cuando tan sólo se dispone de 40. Aunque esta situación puede ser poco probable, la posibilidad aumenta con el nivel de multiprogramación. Puede, entonces, darse el caso de que produzcan demanda de páginas para las que no hay marcos. El sistema operativo podría abortar el proceso de usuario, pero la paginación dejaría de ser transparente, ya que, por razones desconocidas para el usuario se ha acabado con la ejecución de su proceso.

 
FALLO DE PÁGINA
         Un fallo de página es la secuencia de eventos que ocurren cuando un programa intenta acceder a datos (o código) que está en su espacio de direcciones, pero que no está actualmente ubicado en la RAM del sistema. El sistema operativo debe manejar los fallos de página haciendo residentes en memoria los datos accedidos, permitiendo de esta manera que el programa continue la operación como que si el fallo de página nunca ocurrió.

 
FRAGMENTACION
 
      El sistema operativo tiene que encontrar y asignar memoria para todos los segmentos de un programa de usuario Esta situación es similar a la paginación, excepto en el hecho de que los segmentos son de longitud variable ; las páginas son todas del mismo tamaño. La segmentación puede ocasionar entonces fragmentación externa, cuando todos los bloques libres de memoria son demasiado pequeños para acomodar a un segmento


SEGMENTACIÓN
 
         La memoria virtual que hemos analizado hasta ahora es unidimensional, puesto que cada segmento constituye un espacio independiente de direcciones, los distintos segmentos pueden crecer o reducirse en forma independiente sin afectar a los demás.
         Una memoria segmentada tiene otras ventajas como hacer más sencilla la administración de las estructuras de datos que crecen o se reducen, si cada procedimiento ocupa un segmento independiente con la posición inicial cero el ligado independiente de los procesos compilados es mucho más sencillo.
 
         Bit que se activa si se hace referencia a la página en cuestión
         Bit que se activa si se modifica la página

PAGINACION Y SEGMENTACION COMBIANADAS
 
En un sistema con paginación y segmentación combinadas, el espacio de direcciones de un usuario se divide en varios segmentos según el criterio del programador. Cada segmento se vuelve a dividir en varias páginas de tamaño fijo, que tienen la misma longitud que un marco de memoria principal. Si el segmento tiene menor longitud que la página, el segmento ocupará sólo una página. Desde el punto de vista del programador, una dirección lógica todavía está formada por un número de segmento y un desplazamiento en el segmento. Desde el punto de vista de sistema, el desplazamiento del segmento se ve como un número de página dentro del segmento y un desplazamiento dentro de la página.

No hay comentarios:

Publicar un comentario