Sistemas informáticos industriales
2015
Sistemas Operativos
SISTEMAS OPERATIVOS
Un Sistema Operativo o OS (del ingles Operating System) se define como un programa o conjunto de programas que gestiona los recursos de hardware y provee servicios a los programas de aplicación.
Realiza tareas de: • Administración del hardware de la computadora. • Interface entre la máquina y el usuario. • Interpretar comandos u ordenes que emite un usuario u otra computadora.
ESQUEMA DE UNA COMPUTADORA CON UN SISTEMA OPERATIVO USUARIO 1
Editor de textos
USUARIO 2
USUARIO 3
compilador
base de datos
USUARIO 4
planillas de calculo
Programas de aplicación del Usuario
PROGRAMAS DE APLICACIÓN DEL SISTEMA
SISTEMA OPERATIVO HARDWARE DE LA COMPUTADORA
SISTEMAS OPERATIVOS
El propósito de un sistema operativo es crear un entorno en el que el usuario pueda ejecutar programas de forma cómoda y eficiente debiendo acompañar la evolución de los sistemas de cómputo, brindando: portabilidad, interoperabilidad, interconectividad, ambiente multitareas, multiusuario, seguridad, protección (entre usuarios y desde el exterior), fácil administración, independencia de dispositivo, abstracción del hardware. Desde el punto de vista del usuario, hace aparecer a la maquina como un elemento virtual, de fácil manejo y haciendo abstracción de la complejidad de los recursos físicos de la misma.
PRINCIPALES FUNCIONES DE UN SISTEMA OPERATIVO ● ADMINISTRACION DE PROCESOS: Regula y maneja las diferentes tareas que uno o varios usuarios deben llevar a cabo. En este sentido, y de acuerdo al tipo de OS que se trate, ubica en memoria principal una tarea cuando corresponde y elimina a otras. ● ADMINISTRACION DE LA MEMORIA PRINCIPAL: Cuando se trata de OS multitarea, se encarga de que cada tarea tenga su lugar en la misma. Controla los tiempos de permanencia, controla las particiones, las regula cambiándoles tamaño, etc.
PRINCIPALES FUNCIONES DE UN SISTEMA OPERATIVO ●
ADMINISTRACION DE LAS MEMORIAS SECUNDARIAS: Realiza el control de la transferencia de información entre un dispositivo secundario y la memoria principal, y viceversa. ● ADMINISTRACION DE ARCHIVOS: Maneja la ubicación y procesamiento de los archivos que se encuentran en la computadora, permitiéndoles diferentes operaciones (reubicación, borrado, copias, etc.).
PRINCIPALES FUNCIONES DE UN SISTEMA OPERATIVO ●
ADMINISTRACION DE LOS DISPOSITIVOS DE ENTRADA/SALIDA: Maneja el flujo de información entre la computadora y los periféricos, tales como la llegada de datos desde el teclado, discos, etc. y viceversa, envío de datos al monitor, DVDs, etc. ● CONTROL DE ERRORES: Monitorea cuando en alguno de los programas en ejecución se ha producido una operación que dio lugar a un error, emitiendo un mensaje hacia el usuario.
PRINCIPALES FUNCIONES DE UN SISTEMA OPERATIVO ● TRABAJO CON REDES: Un sistema distribuido es una colección de procesadores que no comparten memoria, dispositivos periféricos ni el reloj. Más bien, cada procesador tiene su propia memoria local y su propio reloj, y se comunica con los otros procesadores a través de distintas líneas de comunicación, como buses de alta velocidad o líneas telefónicas. ● SISTEMA DE PROTECCION: El hardware de direccionamiento de memoria asegura que un proceso sólo pueda ejecutarse dentro de su propio espacio de direcciones, a fin de proteger la integridad del OS y de los demás procesos.
CLASIFICACION DE LOS OS POR SU ESTRUCTURA INTERNA ● O.S. MONOLITICOS: Estan constituidos por un solo programa, implementado con múltiples subprogramas que llevan a cabo las diferentes funciones. ● O.S. POR CAPAS O ESTRATIFICADOS:
Están diseñados en estructura jerárquica, donde cada tarea la realiza un programa diferente. En caso de falla de uno de ellos, los otros pueden seguir trabajando en forma normal.
CLASIFICACION POR LOS MODOS DE OPERACIÓN ●
MONOUSUARIOS: Sólo un usuario puede interactuar con la computadora. Pueden ser Monotareas o Multitareas. MULTIUSUARIOS: ● Varios usuarios demandan el uso de la CPU. El O.S. se encarga de administrarlos para que todos sean atendidos con la mayor eficiencia posible. ●
MULTIPROGRAMACIÓN: El CPU alterna los programas entre ellos, atendiendolos a todos. Dependiendo de ciertas condiciones, cambia de uno a otro.
MULTIPROGRAMACION (continuación) Dentro de este tipo de operación, se pueden diferenciar: ● TIEMPO COMPARTIDO: Se asigna a cada tarea un tiempo máximo de atención por parte del CPU, al cabo del cual la abandona y continua con la tarea siguiente en un modo recurrente. Este tiempo se denomina quantum. El cambio de programa se denomina cambio de contexto y sucede cuando una tarea reemplaza a otra por alguna condición sucedida para que se de dicho cambio. Este modo de operación puede ser asociado con otros: monousuarios, multiusuarios, etc.
MULTIPROGRAMACION (continuación) Dentro de este tipo de operación, se pueden diferenciar: ●
SISTEMAS DE TIEMPO REAL: Son los que llevan a cabo procesos generalmente de control de líneas de fabricación o prestación de servicios. Estos tipos son bastante más complejo que el resto, ya que deben tener una confiabilidad muy alta. Este tipo será analizado en el tema Sistemas SCADA. Supervisan y controlan procesos, constituyendo entornos mas complejos.
CLASIFICACION POR LOS SERVICIOS OFRECIDOS ●
MONOTAREA: Permiten la ejecución de un solo programa o trabajo. Hasta que este no finalice, ningún otro podrá ser atendido. Un ejemplo es el DOS (Disk Operating System), que solo podía atender un programa por vez. MULTITAREA: ● Atienden varias tareas en forma concurrente (no simultánea) dando la percepción a cada usuario que es el único que esta siendo atendido. Pueden ser monousuarios, multiusuarios, tiempo compartido, etc.
CLASIFICACIÓN POR LA FORMA DE OFRECER LOS SERVICIOS ●
SISTEMAS CENTRALIZADOS:
Una computadora denominada host o mainframe atiende a varios usuarios en modo concurrente. Un ejemplo es el S.O. Unix y Linux donde los programas y recursos de los usuarios residen en la computadora principal (host).
●
SISTEMAS EN RED:
Son O.S. destinados a redes de computadoras con el objeto de compartir recursos (programas, impresoras, plotters, etc), bases de datos actualizada, etc.
●
SISTEMAS DISTRIBUIDOS:
Distribuyen las programas entre varios procesadores, haciendo mas eficiente el servicio. Un programa puede residir en una máquina o en varias, lo que es transparente al usuario.
Diversos Sistemas Informáticos Terminal Boba
Centralizado Mainframe o minicomputado r
•CPU •Mp •E/S
Terminal Boba
Distribuido
Terminal Boba Terminal Boba
Red PC completa
Switch
PC completa
Línea Asincrónica, de baja velocidad Terminal Boba
PC completa Terminales de Modo Texto (Sólo caracteres, sin mouse)
PC completa
Servidor/es
Recursos de un sistema de computación Para llevar a cabo las tareas de Administración, un S.O. cuenta con el apoyo del Hardware: Los Recursos son: – Tiempo de CPU – Espacio de Memoria Principal – Espacio de Almacenamiento Secundario – Otros dispositivos de E/S
El Hardware apoya con: – Reloj /Temporizador – MMU – Modos de Ejecución
PROGRAMAS Y PROCESOS
En los sistemas multitarea (atienden mas de una tarea en forma concurrente), cualquiera sea el modo en que trabajen, los programas deben estar residentes en memoria RAM.
Si el modo de trabajo es también en tiempo compartido, una tarea puede ser desalojada de memoria por varios motivos: ● Terminación el proceso.
● Realización de trabajos lentos de entrada/salida en cuyo caso el CPU delega en otros programas la realización de los mismos. ● Terminación del tiempo asignado (quantum), con lo cual queda esperando hasta ser atendido nuevamente.
PROGRAMAS Y PROCESOS ● Se denomina programa al conjunto de instrucciones que debe ser ejecutada por el CPU. Algunas pueden ser muy lentas: entrada de datos desde el teclado, escritura en impresora, etc. ● Un proceso, es un programa ejecutado por el CPU desde su comienzo hasta su terminación, incluyendo los tiempos de espera. ● Se debe tener en cuenta que en un sistema con varias tareas, éstas van ejecutándose y entrando en espera alternativamente.
DIAGRAMA DE DIFERENTES ESTADOS DE UN PROGRAMA Una forma de presentar los diferentes estados de un programa en ejecución, es el siguiente: ACTIVO o EN EJECUCION
Nuevo Proceso
Proceso en ejecución
PREPARADO Proceso listo para ser ejecutado
Proceso Terminado
SUSPENDIDO Proceso pendiente de atención por el CPU
ESTADOS DE UN PROGRAMA
Un proceso que ingresa, pasa al estado de preparado o listo para ser ejecutado por el cpu.
Cuando por la planificacion del O.S. le corresponde ser atendido, pasa al estado de activo.
Si el proceso termino su quantum, pasa al estado de preparado nuevamente.
Si el proceso tiene tareas lentas (entradas, salidas, copias, etc), pasa al estado de suspendido, manteniendo esa característica hasta que dichas tareas finalicen.
Finalmente, cuando se termina de ejecutar, el programa pasa al estado de terminado.
CRITERIOS DE PLANIFICACION
Los O.S. deben garantizar ecuanimidad en el despacho de los programas que demandan ser atendidos.
Para ello se planifica como seran atendidas las diferentes tareas
SE PUEDE MEDIR LA EFICIENCIA DE UNA PLANIFICACION:
● MAXIMIZAR EL USO DE CPU (que esté la mayor parte del tiempo ocupado) ● MAXIMIZAR LA PRODUCTIVIDAD (mayor cantidad de procesos por unidad de tiempo) ● MINIMIZAR EL TIEMPO DE RETORNO.
ALGORITMOS EMPLEADOS EN REALIZAR UNA PLANIFICACION
FIFO (first input first output):
La primera tarea que llega es la primera en ser atendida. El resto conforma la cola de atención de CPU. Un proceso no es liberado por el CPU hasta que no termina su ejecución. Ejemplo: proceso1 : 6 unidades de tiempo. proceso2 : 8 unidades de tiempo. proceso3 : 10 unidades de tiempo. proceso1
proceso2
proceso3
CALCULO DEL TIEMPO MEDIO DE UN PROCESO 6 u.t.
proceso1 8 u.t
proceso2 10 u.t
proceso3 6 u.t 6 u.t 6 u.t+ 8 u.t 6 u.t+ 8 u.t+10 u.t.
14 u.t.
24 u.t.
FIFO
TIEMPO MEDIO DE ESPERA: Tme=(0 + 6 + 14) / 3 = 6,66
SI LAS TAREAS HUBIESEN LLEGADO EN OTRO ORDEN, EL TIEMPO MEDIO CAMBIA: Supongamos la llegada en este orden proceso3, proceso1, proceso2: Tme=(0 + 10 + 16) / 3 = 8,66
ALGORITMO DE PLANIFICACION
SJF (shortest job first): Atiende las tareas mas cortas en primer lugar. Tiene la desventaja que, en la medida que se agreguen mas
procesos cortos, las tareas largas serán postergadas.
ROUND ROBIN: A cada tarea se le asigna un quantum, al termino del cual la
misma es reemplazada. Se usan en combinación con SJF u otros.
PLANIFICACION ROUND ROBIN (continuación) programa1
programa2
programa8
programa3
programa7
programa6
programa4 programa5
OTROS TIPOS DE ALGORITMOS DE PLANIFICACION
ALGORITMOS BASADOS EN PRIORIDADES: ● Se asocia a cada programa un nivel de prioridad. ● El cpu ejecuta primero a los de prioridad mas alta.
● Dentro de este tipo, existen los algoritmos apropiativos y no apropiativos. ● Los apropiativos interrumpen y desalojan a la tarea de menor nivel que se este ejecutando, en cualquier momento de su procesamiento. ● Los no apropiativos, esperan hasta que la tarea de menor prioridad que se este ejecutando finalice su tiempo asignado, para ser atendida por el cpu.
PLANIFICACION MLQ (Multiple Level Queues) ● Combinan planificación basado el prioridades con SJF o round robin. ● Se implementan varias colas de procesos, una para cada prioridad PRIORIDAD 4
T41
T42
PRIORIDAD 3
T31
T32
T33
PRIORIDAD 2
T21
T22
T23
PRIORIDAD 1
T11
T43
T44
T24
PLANIFICACION MLQ (Multiple Level Queues) ● Los procesos con prioridad mas alta (4) se ejecutan primero. ● Cuando esos procesos finalicen, se ejecutan los de menor prioridad en orden decreciente. ● Si un proceso no se termina cuando finaliza su quantum, se lo agrega a la cola del nivel de menor prioridad siguiente. ● Cuando se terminan las tareas de mayor prioridad, se ejecutan las tareas de menor prioridad siguientes, aumentándose el quantum asignado. ● Cuando en un nivel hay dos o mas procesos con la misma prioridad, se puede optar por : el de menor tiempo de ejecución (JSF), o la planificación FIFO (el primero que llega es el primero en ser ejecutado).
GESTION DE MEMORIA EN SISTEMAS MULTIPROGRAMACION ● En los procesos multiprogramación, existe un programa del sistema operativo que gestiona el uso del espacio de memoria para cada programa. ● Este programa se llama “gestor de memoria” y asigna un espacio para cada programa y los elementos para su ejecución por parte del cpu. ALGUNOS ALGORITMOS PARA LA GESTION DE MEMORIA SON: ● PARTICIONES ESTÁTICAS: se divide la memoria en m partes, asignándole a cada programa la partición mas pequeña que pueda contenerlo.
GESTION DE MEMORIA EN SISTEMAS MULTIPROGRAMACION (continuación) PARTICIONES FIJAS O ESTATICAS: ocuparan la memoria asignada. Los espacios de memoria que no se ocupen, estarán desperdiciados. Este problema de lo conoce como “fragmentacion de la memoria”.
SISTEMA OPERATIVO PROCESO 1 PROCESO 2 PROCESO 3 PROCESO 4
GESTION DE MEMORIA EN SISTEMAS MULTIPROGRAMACION PARTICIONES DINAMICAS: ● Las particiones varían en la cantidad, tamaño y posición en forma dinámica (mientras se ejecutan). ● Es análogo a que las particiones se “acomodaran” al tamaño de cada programa. ● Son algoritmos de planificación mas complejos, pero eliminan el problema de la fragmentación.
GESTION DE MEMORIA EN SISTEMAS MULTIPROGRAMACION MEMORIA VIRTUAL: ● Se particiona la memoria en bloques. ● Se hace residir en ellos los diferentes programas. Se deja en el disco (memoria externa) algunos elementos que el programa necesita para ejecutarse. ● Este proceso se realiza con todos los programas y todos los bloques de los mismos. ● La tarea de buscar y poner en memoria los diferentes programas se denomina Swapping.
PAGINACION DE LA MEMORIA ● Se dividen los programas en pequeñas partes o paginas. ● Del mismo modo, la memoria es dividida en partes del mismo tamaño que las páginas llamados marcos de página . ● La cantidad de memoria desperdiciada por un proceso es la de la ultima pagina de cada tarea. ● Si un proceso solicita un dato de una pagina que no esta cargada en memoria, es O.S. carga la pagina en un marco vacío. Si no tiene marcos o espacios libres, uno de los que esta en memoria será desalojado y allí se ubicara la pagina solicitada. Este proceso se denomina paginación por demanda.