La gestión de procesos es la tarea fundamental de cualquier sistema operativo moderno.
El sistema operativo
debe asignar recursos a los procesos, permitir el intercambio de información entre los mismos, proteger los
recursos de un proceso del resto y facilitar la sincronización de procesos.
Para alcanzar estos objetivos, el
sistema operativo mantiene una estructura de datos para cada proceso que describe su estado y los recursos
que posee y que permite al sistema operativo imponer un control sobre los procesos (PCB Bloque de Control
de Proceso).
En un monoprocesador multiprogramado, debe intercalarse en el tiempo, la ejecución de múltiples procesos.
En un multiprocesador, no sólo puede intercalarse la ejecución sino que los procesos se pueden ejecutar
simultáneamente. Ambos, intercalación y ejecución simultánea, son formas de concurrencia y llevan a una
multitud de problemas complejos, tanto para el programador de aplicaciones como para el sistema operativo.
El sistema operativo debe llevar a cabo la función de planificar y ofrecer mecanismos para compartir y
sincronizar procesos.
2.1 Concepto de proceso.
Programas.- Colección de instrucciones que el procesador interpreta y ejecuta, se almacenan en sistemas no
volátiles necesitando ser cargados en memoria principal para poder ser ejecutados, se considera un ente
estático.
Procesos.-Programa en ejecución, el sistema operativo les asigna recursos, Se consideran un ente dinámico.
El proceso es una abstracción creada por el SO, que se compone de:
Código de Programa: sección texto
Contexto de Ejecución: PC, registros del procesador y una pila para invocación de procedimientos
Sección de Datos, que contiene variables globales
Recursos del sistema.
Características
Permite modularizar y aislar errores de programas durante su ejecución
Soporta concurrencia de actividades, lo que permite un mejor aprovechamiento de los recursos
Denominaremos como procesos tanto a los trabajos (jobs) en sistemas de lotes, como a las tareas (task)
en sistemas de tiempo compartido
Modelo
La diferencia entre un programa (conjunto de instrucciones) y un proceso (instrucciones ejecutándose) es
obvia y crucial para entender el funcionamiento de los SO.
Imaginemos un mecánico de autos en un taller donde se reparan carros con averías complejas en las que se
hace necesario consultar el manual de cada modelo, que contiene las instrucciones para reparar cada posible
avería. Además, se permiten reparaciones rápidas a las que se les da mayor prioridad.
Existe un almacén de
refacciones y herramientas suficientes para las reparaciones. Comparando esta situación con un sistema de
cómputo se pueden establecer las siguientes analogías:
El mecánico sería el CPU (procesador) que realizará el trabajo.
El manual de cada reparación sería el programa.
Las herramientas serían los recursos disponibles
Las refacciones serían los datos.
La actividad de usar las herramientas para desmontar las piezas defectuosas sustituyéndolas por otras
nuevas siguiendo las instrucciones del manual equivaldría al proceso.
Suponiendo que en un momento dado el mecánico está realizando una reparación compleja (de las que llevan
tiempo) y aparece un carro que solicita una reparación de las rápidas (ha aparecido una interrupción). El
mecánico suspende momentáneamente la reparación compleja anotando en qué situación se queda dicha
reparación y qué operación estaba realizando en ese momento (guarda el estado del proceso).
Asimismo,
sustituye el manual que estaba realizando por el de la nueva reparación que se dispone a realizar (cambio de
programa). Comienza la nueva reparación (cambio de proceso), en la que las herramientas no serán las
mismas que antes (distintos recursos); las indicaciones del usuario, las refacciones (datos) y las indicaciones
del manual (programa) llevarán a feliz término la reparación para que el mecánico regrese a la reparación
inicial.
Con este ejemplo se resalta que un proceso es una actividad que se apoya en datos, recursos, un estado en
cada momento y un programa.
viernes, 16 de septiembre de 2016
Nucleo
Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma básica, es el encargado de gestionar recursos, a través de servicios de llamada al sistema. Como hay muchos programas y el acceso al hardware es limitado, también se encarga de decidir qué programa podrá usar un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como multiplexado. Acceder al hardware directamente puede ser realmente complejo, por lo que los núcleos suelen implementar una serie de abstracciones del hardware. Esto permite esconder la complejidad, y proporcionar una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso al programador.
Procesos De Windows
Csrss.exe
Csrss.exe significa Client Server Run-time Subsystem.
Es un subsistema esencial que debe estar siempre activo. Este administra la consola de Windows, crea y destruye threads y administra algunas porciones del entorno 16 bits virtual DOS.
Explorer.exe
Proporciona el entorno de escritorio y la barra de tareas, etc. Este proceso no es vital para el sistema (podemos detenerlo para luego volver a ejecutarlo a través del administrador de tareas- abrir luego escribir explorer.exe), pero si lo detenemos, sólo tendremos el escritorio.
Lsass.exe
Es el servidor de autentificación local de seguridad.
Genera los procesos responsables de la autentificación de usuarios para el proceso Winlogon. Si la autentificación tiene éxito, lsass.exe genera los tokens de acceso para el usuario que son utilizados para lanzar el shell inicial. Los otros procesos que el usuario inicia heredan estos tokens
Procesos De Windows
Csrss.exe
Csrss.exe significa Client Server Run-time Subsystem.
Es un subsistema esencial que debe estar siempre activo. Este administra la consola de Windows, crea y destruye threads y administra algunas porciones del entorno 16 bits virtual DOS.
Explorer.exe
Proporciona el entorno de escritorio y la barra de tareas, etc. Este proceso no es vital para el sistema (podemos detenerlo para luego volver a ejecutarlo a través del administrador de tareas- abrir luego escribir explorer.exe), pero si lo detenemos, sólo tendremos el escritorio.
Lsass.exe
Es el servidor de autentificación local de seguridad.
Genera los procesos responsables de la autentificación de usuarios para el proceso Winlogon. Si la autentificación tiene éxito, lsass.exe genera los tokens de acceso para el usuario que son utilizados para lanzar el shell inicial. Los otros procesos que el usuario inicia heredan estos tokens
Tipos De Sistemas Operativos
Sistemas Operativos de multiprogramación (o Sistemas Operativos de multitarea).
Es el modo de funcionamiento disponible en algunos sistemas operativos, mediante el cual una computadora procesa varias tareas al mismo tiempo. Existen varios tipos de multitareas. La conmutación de contextos (context Switching) es un tipo muy simple de multitarea en el que dos o más aplicaciones se cargan al mismo tiempo, y siempre que esta aplicación lo permita. En los sistemas multitarea de tiempo compartido, como OS/2, cada tarea recibe la atención del microprocesador durante una fracción de segundo. Para mantener el sistema en orden, cada tarea recibe un nivel de prioridad o se procesa en orden secuencial. Dado que el sentido temporal del usuario es mucho más lento que la velocidad de procesamiento del ordenador, las operaciones de multitarea en tiempo compartido parecen ser simultáneas.
Su objetivo es tener a varias tareas en la memoria principal, de manera que cada uno está usando el procesador, o un procesador distinto, es decir, involucra máquinas con más de una UCP.
Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2, soportan la multitarea.
Las características de un Sistema Operativo de multiprogramación o multitarea son las siguientes:
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.
En general, los sistemas de multiprogramación se caracterizan por tener múltiples programas activos compitiendo por los recursos del sistema: procesador, memoria, dispositivos periféricos.
Sistema Operativo Monotareas.
Los sistemas operativos monotareas son más primitivos y es todo lo contrario al visto anteriormente, es decir, solo pueden manejar un proceso en cada momento o que solo puede ejecutar las tareas de una en una. Por ejemplo cuando la computadora esta imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresión.
Sistema Operativo Monousuario.
Los sistemas monousuarios son aquellos que nada más puede atender a un solo usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo de aplicación que se este ejecutando.
Estos tipos de sistemas son muy simples, porque todos los dispositivos de entrada, salida y control dependen de la tarea que se esta utilizando, esto quiere decir, que las instrucciones que se dan, son procesadas de inmediato; ya que existe un solo usuario. Y están orientados principalmente por los microcomputadores.
Sistema Operativo Multiusuario.
Es todo lo contrario a monousuario; y en esta categoría se encuentran todos los sistemas que cumplen simultáneamente las necesidades de dos o más usuarios, que comparten mismos recursos. Este tipo de sistemas se emplean especialmente en redes.
En otras palabras consiste en el fraccionamiento del tiempo (timesharing).
Sistemas Operativos por lotes.
Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna interacción entre los usuarios y los programas en ejecución. Se reúnen todos los trabajos comunes para realizarlos al mismo tiempo, evitando la espera de dos o más trabajos como sucede en el procesamiento en serie. Estos sistemas son de los más tradicionales y antiguos, y fueron introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los programas.
Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecución muy alto, porque el procesador es mejor utilizado y los Sistemas Operativos pueden ser simples, debido a la secuenciabilidad de la ejecución de los trabajos.
Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual está orientado a procesamiento científico pesado, y el EXEC II para el UNIVAC 1107, orientado a procesamiento académico.
Algunas otras características con que cuentan los Sistemas Operativos por lotes son:
Requiere que el programa, datos y órdenes al sistema sean remitidos todos juntos en forma de lote.
Permiten poca o ninguna interacción usuario/programa en ejecución.
Mayor potencial de utilización de recursos que procesamiento serial simple en sistemas multiusuarios.
No conveniente para desarrollo de programas por bajo tiempo de retorno y depuración fuera de línea.
Conveniente para programas de largos tiempos de ejecución (ej, análisis estadísticos, nóminas de personal, etc.).
Se encuentra en muchos computadores personales combinados con procesamiento serial.
Planificación del procesador sencilla, típicamente procesados en orden de llegada.
Planificación de memoria sencilla, generalmente se divide en dos: parte residente del S.O. y programas transitorios.
No requieren gestión crítica de dispositivos en el tiempo.
Suelen proporcionar gestión sencilla de manejo de archivos: se requiere poca protección y ningún control de concurrencia para el acceso.
Sistemas Operativos de tiempo real.
Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario, sino los procesos. Por lo general, están subutilizados sus recursos con la finalidad de prestar atención a los procesos en el momento que lo requieran. se utilizan en entornos donde son procesados un gran número de sucesos o eventos.
Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy específicas como control de tráfico aéreo, bolsas de valores, control de refinerías, control de laminadores. También en el ramo automovilístico y de la electrónica de consumo, las aplicaciones de tiempo real están creciendo muy rápidamente. Otros campos de aplicación de los Sistemas Operativos de tiempo real son los siguientes:
Control de trenes.
Telecomunicaciones.
Sistemas de fabricación integrada.
Producción y distribución de energía eléctrica.
Control de edificios.
Sistemas multimedia.
Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS y Spectra. Los Sistemas Operativos de tiempo real, cuentan con las siguientes características:
Se dan en entornos en donde deben ser aceptados y procesados gran cantidad de sucesos, la mayoría externos al sistema computacional, en breve tiempo o dentro de ciertos plazos.
Se utilizan en control industrial, conmutación telefónica, control de vuelo, simulaciones en tiempo real., aplicaciones militares, etc.
Objetivo es proporcionar rápidos tiempos de respuesta.
Procesa ráfagas de miles de interrupciones por segundo sin perder un solo suceso.
Proceso se activa tras ocurrencia de suceso, mediante interrupción.
Proceso de mayor prioridad expropia recursos.
Por tanto generalmente se utiliza planificación expropiativa basada en prioridades.
Gestión de memoria menos exigente que tiempo compartido, usualmente procesos son residentes permanentes en memoria.
Población de procesos estática en gran medida.
Poco movimiento de programas entre almacenamiento secundario y memoria.
Gestión de archivos se orienta más a velocidad de acceso que a utilización eficiente del recurso.
Sistemas Operativos de tiempo compartido.
Permiten la simulación de que el sistema y sus recursos son todos para cada usuario. El usuario hace una petición a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecerá en la terminal del usuario.
Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusión de que tiene el sistema dedicado para sí mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo, principalmente en la administración de memoria principal y secundaria.
Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10.
Características de los Sistemas Operativos de tiempo compartido:
Populares representantes de sistemas multiprogramados multiusuario, ej: sistemas de diseño asistido por computador, procesamiento de texto, etc.
Dan la ilusión de que cada usuario tiene una máquina para sí.
Mayoría utilizan algoritmo de reparto circular.
Programas se ejecutan con prioridad rotatoria que se incrementa con la espera y disminuye después de concedido el servicio.
Evitan monopolización del sistema asignando tiempos de procesador (time slot).
Gestión de memoria proporciona protección a programas residentes.
Gestión de archivo debe proporcionar protección y control de acceso debido a que pueden existir múltiples usuarios accesando un mismo archivos.
Sistemas Operativos distribuidos.
Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores esté en un equipo o en diferentes, en este caso es trasparente para el usuario. Existen dos esquemas básicos de éstos. Un sistema fuertemente acoplado es a es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.
Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone otro componente debe de ser capaz de reemplazarlo.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.
Características de los Sistemas Operativos distribuidos:
Colección de sistemas autónomos capaces de comunicación y cooperación mediante interconexiones hardware y software .
Gobierna operación de un S.C. y proporciona abstracción de máquina virtual a los usuarios.
Objetivo clave es la transparencia.
Generalmente proporcionan medios para la compartición global de recursos.
Servicios añadidos: denominación global, sistemas de archivos distribuidos, facilidades para distribución de cálculos (a través de comunicación de procesos internodos, llamadas a procedimientos remotos, etc.).
Sistemas Operativos de red.
Son aquellos sistemas que mantienen a dos o más computadoras unidas através de algún medio de comunicación (físico o no), con el objetivo primordial de poder compartir los diferentes recursos y la información del sistema.
El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware.
Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.
Sistemas Operativos paralelos.
En estos tipos de Sistemas Operativos se pretende que cuando existan dos o más procesos que compitan por algún recurso se puedan realizar o ejecutar al mismo tiempo.
En UNIX existe también la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva, simulando paralelismo (es decir, atender de manera concurrente varios procesos de un mismo usuario). Así, en lugar de esperar a que el proceso termine de ejecutarse (como lo haría normalmente), regresa a atender al usuario inmediatamente después de haber creado el proceso.
Ejemplos de estos tipos de Sistemas Operativos están: Alpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM
Es el modo de funcionamiento disponible en algunos sistemas operativos, mediante el cual una computadora procesa varias tareas al mismo tiempo. Existen varios tipos de multitareas. La conmutación de contextos (context Switching) es un tipo muy simple de multitarea en el que dos o más aplicaciones se cargan al mismo tiempo, y siempre que esta aplicación lo permita. En los sistemas multitarea de tiempo compartido, como OS/2, cada tarea recibe la atención del microprocesador durante una fracción de segundo. Para mantener el sistema en orden, cada tarea recibe un nivel de prioridad o se procesa en orden secuencial. Dado que el sentido temporal del usuario es mucho más lento que la velocidad de procesamiento del ordenador, las operaciones de multitarea en tiempo compartido parecen ser simultáneas.
Su objetivo es tener a varias tareas en la memoria principal, de manera que cada uno está usando el procesador, o un procesador distinto, es decir, involucra máquinas con más de una UCP.
Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2, soportan la multitarea.
Las características de un Sistema Operativo de multiprogramación o multitarea son las siguientes:
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.
En general, los sistemas de multiprogramación se caracterizan por tener múltiples programas activos compitiendo por los recursos del sistema: procesador, memoria, dispositivos periféricos.
Sistema Operativo Monotareas.
Los sistemas operativos monotareas son más primitivos y es todo lo contrario al visto anteriormente, es decir, solo pueden manejar un proceso en cada momento o que solo puede ejecutar las tareas de una en una. Por ejemplo cuando la computadora esta imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresión.
Sistema Operativo Monousuario.
Los sistemas monousuarios son aquellos que nada más puede atender a un solo usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo de aplicación que se este ejecutando.
Estos tipos de sistemas son muy simples, porque todos los dispositivos de entrada, salida y control dependen de la tarea que se esta utilizando, esto quiere decir, que las instrucciones que se dan, son procesadas de inmediato; ya que existe un solo usuario. Y están orientados principalmente por los microcomputadores.
Sistema Operativo Multiusuario.
Es todo lo contrario a monousuario; y en esta categoría se encuentran todos los sistemas que cumplen simultáneamente las necesidades de dos o más usuarios, que comparten mismos recursos. Este tipo de sistemas se emplean especialmente en redes.
En otras palabras consiste en el fraccionamiento del tiempo (timesharing).
Sistemas Operativos por lotes.
Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna interacción entre los usuarios y los programas en ejecución. Se reúnen todos los trabajos comunes para realizarlos al mismo tiempo, evitando la espera de dos o más trabajos como sucede en el procesamiento en serie. Estos sistemas son de los más tradicionales y antiguos, y fueron introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los programas.
Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecución muy alto, porque el procesador es mejor utilizado y los Sistemas Operativos pueden ser simples, debido a la secuenciabilidad de la ejecución de los trabajos.
Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual está orientado a procesamiento científico pesado, y el EXEC II para el UNIVAC 1107, orientado a procesamiento académico.
Algunas otras características con que cuentan los Sistemas Operativos por lotes son:
Requiere que el programa, datos y órdenes al sistema sean remitidos todos juntos en forma de lote.
Permiten poca o ninguna interacción usuario/programa en ejecución.
Mayor potencial de utilización de recursos que procesamiento serial simple en sistemas multiusuarios.
No conveniente para desarrollo de programas por bajo tiempo de retorno y depuración fuera de línea.
Conveniente para programas de largos tiempos de ejecución (ej, análisis estadísticos, nóminas de personal, etc.).
Se encuentra en muchos computadores personales combinados con procesamiento serial.
Planificación del procesador sencilla, típicamente procesados en orden de llegada.
Planificación de memoria sencilla, generalmente se divide en dos: parte residente del S.O. y programas transitorios.
No requieren gestión crítica de dispositivos en el tiempo.
Suelen proporcionar gestión sencilla de manejo de archivos: se requiere poca protección y ningún control de concurrencia para el acceso.
Sistemas Operativos de tiempo real.
Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario, sino los procesos. Por lo general, están subutilizados sus recursos con la finalidad de prestar atención a los procesos en el momento que lo requieran. se utilizan en entornos donde son procesados un gran número de sucesos o eventos.
Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy específicas como control de tráfico aéreo, bolsas de valores, control de refinerías, control de laminadores. También en el ramo automovilístico y de la electrónica de consumo, las aplicaciones de tiempo real están creciendo muy rápidamente. Otros campos de aplicación de los Sistemas Operativos de tiempo real son los siguientes:
Control de trenes.
Telecomunicaciones.
Sistemas de fabricación integrada.
Producción y distribución de energía eléctrica.
Control de edificios.
Sistemas multimedia.
Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS y Spectra. Los Sistemas Operativos de tiempo real, cuentan con las siguientes características:
Se dan en entornos en donde deben ser aceptados y procesados gran cantidad de sucesos, la mayoría externos al sistema computacional, en breve tiempo o dentro de ciertos plazos.
Se utilizan en control industrial, conmutación telefónica, control de vuelo, simulaciones en tiempo real., aplicaciones militares, etc.
Objetivo es proporcionar rápidos tiempos de respuesta.
Procesa ráfagas de miles de interrupciones por segundo sin perder un solo suceso.
Proceso se activa tras ocurrencia de suceso, mediante interrupción.
Proceso de mayor prioridad expropia recursos.
Por tanto generalmente se utiliza planificación expropiativa basada en prioridades.
Gestión de memoria menos exigente que tiempo compartido, usualmente procesos son residentes permanentes en memoria.
Población de procesos estática en gran medida.
Poco movimiento de programas entre almacenamiento secundario y memoria.
Gestión de archivos se orienta más a velocidad de acceso que a utilización eficiente del recurso.
Sistemas Operativos de tiempo compartido.
Permiten la simulación de que el sistema y sus recursos son todos para cada usuario. El usuario hace una petición a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecerá en la terminal del usuario.
Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusión de que tiene el sistema dedicado para sí mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo, principalmente en la administración de memoria principal y secundaria.
Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10.
Características de los Sistemas Operativos de tiempo compartido:
Populares representantes de sistemas multiprogramados multiusuario, ej: sistemas de diseño asistido por computador, procesamiento de texto, etc.
Dan la ilusión de que cada usuario tiene una máquina para sí.
Mayoría utilizan algoritmo de reparto circular.
Programas se ejecutan con prioridad rotatoria que se incrementa con la espera y disminuye después de concedido el servicio.
Evitan monopolización del sistema asignando tiempos de procesador (time slot).
Gestión de memoria proporciona protección a programas residentes.
Gestión de archivo debe proporcionar protección y control de acceso debido a que pueden existir múltiples usuarios accesando un mismo archivos.
Sistemas Operativos distribuidos.
Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores esté en un equipo o en diferentes, en este caso es trasparente para el usuario. Existen dos esquemas básicos de éstos. Un sistema fuertemente acoplado es a es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.
Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone otro componente debe de ser capaz de reemplazarlo.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.
Características de los Sistemas Operativos distribuidos:
Colección de sistemas autónomos capaces de comunicación y cooperación mediante interconexiones hardware y software .
Gobierna operación de un S.C. y proporciona abstracción de máquina virtual a los usuarios.
Objetivo clave es la transparencia.
Generalmente proporcionan medios para la compartición global de recursos.
Servicios añadidos: denominación global, sistemas de archivos distribuidos, facilidades para distribución de cálculos (a través de comunicación de procesos internodos, llamadas a procedimientos remotos, etc.).
Sistemas Operativos de red.
Son aquellos sistemas que mantienen a dos o más computadoras unidas através de algún medio de comunicación (físico o no), con el objetivo primordial de poder compartir los diferentes recursos y la información del sistema.
El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware.
Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.
Sistemas Operativos paralelos.
En estos tipos de Sistemas Operativos se pretende que cuando existan dos o más procesos que compitan por algún recurso se puedan realizar o ejecutar al mismo tiempo.
En UNIX existe también la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva, simulando paralelismo (es decir, atender de manera concurrente varios procesos de un mismo usuario). Así, en lugar de esperar a que el proceso termine de ejecutarse (como lo haría normalmente), regresa a atender al usuario inmediatamente después de haber creado el proceso.
Ejemplos de estos tipos de Sistemas Operativos están: Alpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM
Las nuevas Tendencias de los Sistemas Operativos
Las nuevas Tendencias de los Sistemas Operativos
Los sistemas operativos siguen evolucionando. La principal tendencia de los sistemas operativos en cuanto a organización de trabajo es convertirse en sistemas operativos distribuidos.
Los sistemas operativos distribuidos están diseñados para su uso en un grupo de computadoras conectadas pero independientes que comparten recursos. En un sistema operativo distribuido, un proceso puede ejecutarse en cualquier computadora de la red (normalmente, una computadora inactiva en ese momento) para aumentar el rendimiento de ese proceso. En los sistemas distribuidos, todas las funciones básicas de un sistema operativo, como mantener los sistemas de archivos, garantizar un comportamiento razonable y recuperar datos en caso de fallos parciales, resultan más complejas.
Quinta Generación (1983 al presente)
Quinta Generación (1983 al presente)
En vista de la acelerada marcha de la microelectrónica, la sociedad industrial se ha dado a la tarea de poner también a esa altura el desarrollo del software y los sistemas con que se manejan las computadoras.
Surge la competencia internacional por el dominio del mercado de la computación, en la que se perfilan dos líderes que, sin embargo, no han podido alcanzar el nivel que se desea: la capacidad de comunicarse con la computadora en un lenguaje más cotidiano y no a través de códigos o lenguajes de control especializados.
Japón lanzó en 1983 el llamado "programa de la quinta generación de computadoras",
con los objetivos explícitos de producir máquinas con innovaciones reales en los criterios mencionados. Y en los Estados Unidos ya está en actividad un programa en desarrollo que persigue objetivos semejantes, que pueden resumirse de la siguiente manera:
Cuarta Generación (1971-1988)
Cuarta Generación (1971-1988)
Aparecen los microprocesadores que es un gran adelanto de la microelectrónica, son circuitos integrados de alta densidad y con una velocidad impresionante. Las microcomputadoras con base en estos circuitos son extremadamente pequeñas y baratas, por lo que su uso se extiende al mercado industrial. Aquí nacen las computadoras personales que han adquirido proporciones enormes y que han influido en la sociedad en general sobre la llamada "revolución informática".
Características de está generación:
- Se desarrolló el microprocesador.
- Se colocan más circuitos dentro de un "chip".
- "LSI - Large Scale Integration circuit".
- "VLSI - Very Large Scale Integration circuit".
- Cada "chip" puede hacer diferentes tareas.
- Un "chip" sencillo actualmente contiene la unidad de control y la unidad de aritmética/lógica. El tercer componente, la memoria primaria, es operado por otros "chips".
- Se reemplaza la memoria de anillos magnéticos por la memoria de "chips" de silicio.
- Se desarrollan las microcomputadoras, o sea, computadoras personales o PC.
- Se desarrollan las supercomputadoras.
Tercera Generación (1964-1971)
Tercera Generación (1964-1971)
La tercera generación de computadoras emergió con el desarrollo de circuitos integrados (pastillas de silicio) en las que se colocan miles de componentes electrónicos en una integración en miniatura. Las computadoras nuevamente se hicieron más pequeñas, más rápidas, desprendían menos calor y eran energéticamente más eficientes. El ordenador IBM-360 dominó las ventas de la tercera generación de ordenadores desde su presentación en 1965. El PDP-8 de la Digital Equipment Corporation fue el primer miniordenador.
Características de está generación:
- Se desarrollaron circuitos integrados para procesar información.Se desarrollaron los "chips" para almacenar y procesar la información. Un "chip" es una pieza de silicio que contiene los componentes electrónicos en miniatura llamados semiconductores.
- Los circuitos integrados recuerdan los datos, ya que almacenan la información como cargas eléctricas.
- Surge la multiprogramación.
- Las computadoras pueden llevar a cabo ambas tareas de procesamiento o análisis matemáticos.
- Emerge la industria del "software".
- Se desarrollan las minicomputadoras IBM 360 y DEC PDP-1.
- Otra vez las computadoras se tornan más pequeñas, más ligeras y más eficientes.
- Consumían menos electricidad, por lo tanto, generaban menos calor.
Segunda Generación (1958-1964)
Segunda Generación (1958-1964)
En esta generación las computadoras se reducen de tamaño y son de menor costo. Aparecen muchas compañías y las computadoras eran bastante avanzadas para su época como la serie 5000 de Burroughs y la ATLAS de la Universidad de Manchester. Algunas computadoras se programaban con cinta perforadas y otras por medio de cableado en un tablero.
Características de está generación:
- Usaban transistores para procesar información.
- Los transistores eran más rápidos, pequeños y más confiables que los tubos al vacío.
- 200 transistores podían acomodarse en la misma cantidad de espacio que un tubo al vacío.
- Usaban pequeños anillos magnéticos para almacenar información e instrucciones. cantidad de calor y eran sumamente lentas.
- Se mejoraron los programas de computadoras que fueron desarrollados durante la primera generación.
- Se desarrollaron nuevos lenguajes de programación como COBOL y FORTRAN, los cuales eran comercialmente accsesibles.
- Se usaban en aplicaciones de sistemas de reservaciones de líneas aéreas, control del tráfico aéreo y simulaciones de propósito general.
- La marina de los Estados Unidos desarrolla el primer simulador de vuelo, "Whirlwind I".
- Surgieron las minicomputadoras y los terminales a distancia.
- Se comenzó a disminuir el tamaño de las computadoras.
(Primera Generación (1951-1958)
(Primera Generación (1951-1958)
En esta generación había una gran desconocimiento de las capacidades de las computadoras, puesto que se realizó un estudio en esta época que determinó que con veinte computadoras se saturaría el mercado de los Estados Unidos en el campo de procesamiento de datos. Esta generación abarco la década de los cincuenta. Y se conoce como la primera generación.
Estas máquinas tenían las siguientes características:
- Usaban tubos al vacío para procesar información.
- Usaban tarjetas perforadas para entrar los datos y los programas.
- Usaban cilindros magnéticos para almacenar información e instrucciones internas.
- Eran sumamente grandes, utilizaban gran cantidad de electricidad, generaban gran cantidad de calor y eran sumamente lentas.
- Se comenzó a utilizar el sistema binario para representar los datos.
- En esta generación las máquinas son grandes y costosas (de un costo aproximado de 10,000 dólares).
- La computadora más exitosa de la primera generación fue la IBM 650, de la cual se produjeron varios cientos. Esta computadora que usaba un esquema de memoria secundaria llamado tambor magnético, que es el antecesor de los discos actuales.
Funciones y Caracteristicas de los Sistemas Operativos
funciones
- Colocar el programa fuente almacenado en el dispositivo de entrada adecuado (cintas, tarjetas, discos...).
- Desencadenar la ejecución de un programa de lectura para el dispositivo elegido.
- Desencadenar la ejecución de un compilador que traduzca el programa fuente.
- Colocar los datos de entrada en el dispositivo adecuado.
- Ejecutar el programa objeto.
- Sacar los resultados por impresora.
características
1.concurrencia
Consiste en la existencia de varias actividades simultáneas o paralelas. Ejemplo de ello lo son la superposición de las operaciones de I/O con el proceso de computación, así como la coexistencia en memoria de varios programas. La concurrencia lleva asociado el problema de conmutar de una tarea a otra, así como proteger una determinada actividad de los efectos de las otras, así como la sincronización de tareas que sean mutuamente dependientes.
2.Utilización conjunta de recursos. Compartición.
Las razones para la compartición son las siguientes:
a) El coste:
es absurdo disponer de suficientes recursos para cada usuario por separado.
b) Aprovechamiento de los trabajos de otros.
La utilidad es poder utilizar rutinas y programas desarrollados por otras personas.
c) Posibilidad de compartir datos:
Utilización de una misma base de datos para varios programas distintos, asociados posiblemente a distintos usuarios.
d) Eliminación de redundancias:
poder disponer de una sola copia de un programa (por ejemplo un compilador) y compartirlo con otros.
3.Permite que el usuario guarde sus datos o programas en el propio ordenador, y no tener que usar medios externos (portables). Los problemas que se plantean son de protección de la información frente a terceros y protegerlos frente a fallos del sistema.
4.Un Sistema Operativo debe ser determinista en el sentido de que el mismo programa ejecutado con los mismos datos, en momentos diferentes, debe producir los mismos resultados. En cambio será indeterminista porque en caso de variabilidad de las situaciones puede responder de un modo impredecible. Deben tomarse las medidas oportunas.
Estas situaciones pueden ser debidas a petición de recursos, errores de ejecución en programas o bien interrupción de periféricos.
5 Conceptos Sistemas Operativos
Sistemas operativos distribuidos
autor andrew s. Tanebbaum
Un sistema dirtribuido es una colección de computadorar independiente^ que apaiecen ante los uruarios del sistema como una mica computadora
Esta definición tiene dos aspectos El primero se refiere al hardwaie las máquinas son autónomas El segundo se refiere al software los usuarios piensan que el sistema es como una unica computadora Ambos son esenciales Regresaremos a este punto en una sección posterior de este capítulo después de revisar algunos conceptos básicos del hardware y el software
Fundamentos de sistema operativo
autor Silberachatz-galvin-gagne
Un sistema operativo es un programa que administra el hardware de una computadora tambien proporciona las bases para los programas de aplicacion y actua como intermediario entre el usuario y la computadora
Sistemas operativos
autor Magister David Luis La Red Martinez
Es un grupo de programas de proceso con las rutinas de control necesarios de proceso para mantener continuamente operativos dichos programas su objetivo es optimizar todos los recursos del sistema
Sistemas operativos Modernos
autor Andrew s. tanenbaum
Los sistemas operativos difieren los programas de ususrio en varias cuetiones ademas del lugar que reciden
con lo particular son enormes complejos y de larga duracion
Sistemas operaticos segunda edicion
autor William Stallings
Un sistema operativo explota los recursos de hardware de uno o mas procesos para ofrecer un conjunto de servicios a los usuarios del sistema tambien gestiona la memoria secundaria y los dispositivos de entrada y salida en nombre de los usuarios
autor andrew s. Tanebbaum
Un sistema dirtribuido es una colección de computadorar independiente^ que apaiecen ante los uruarios del sistema como una mica computadora
Esta definición tiene dos aspectos El primero se refiere al hardwaie las máquinas son autónomas El segundo se refiere al software los usuarios piensan que el sistema es como una unica computadora Ambos son esenciales Regresaremos a este punto en una sección posterior de este capítulo después de revisar algunos conceptos básicos del hardware y el software
Fundamentos de sistema operativo
autor Silberachatz-galvin-gagne
Un sistema operativo es un programa que administra el hardware de una computadora tambien proporciona las bases para los programas de aplicacion y actua como intermediario entre el usuario y la computadora
Sistemas operativos
autor Magister David Luis La Red Martinez
Es un grupo de programas de proceso con las rutinas de control necesarios de proceso para mantener continuamente operativos dichos programas su objetivo es optimizar todos los recursos del sistema
Sistemas operativos Modernos
autor Andrew s. tanenbaum
Los sistemas operativos difieren los programas de ususrio en varias cuetiones ademas del lugar que reciden
con lo particular son enormes complejos y de larga duracion
Sistemas operaticos segunda edicion
autor William Stallings
Un sistema operativo explota los recursos de hardware de uno o mas procesos para ofrecer un conjunto de servicios a los usuarios del sistema tambien gestiona la memoria secundaria y los dispositivos de entrada y salida en nombre de los usuarios
Unidad 1 Introduccion a los Sistemas Operativos
Un sistema operativo puede ser definido como un conjunto de programas especialmente hechos para la ejecución de varias tareas, en las que sirve de intermediario entre el usuario y la computadora. Este conjunto de programas que manejan el hardware de una computadora u otro dispositivo electrónico.
Provee de rutinas básicas para controlar los distintos dispositivos del equipo y permite administrar, escalar y realizar interacción de tareas.
Un sistema operativo, tiene también como función, administrar todos los periféricos de una computadora. Es el encargado de mantener la integridad del sistema.
Funciones básicas del Sistema Operativo
El sistema operativo es un conjunto de programas que:
- Inicializa el hardware del ordenador
- Suministra rutinas básicas para controlar dispositivos
- Permite administrar, escalonar e interactuar tareas
- Mantiene la integridad de sistema
- Un Sistema Operativo muy simple
para un sistema de control de seguridad, podría ser almacenado en una memoria ROM (Memoria de sólo Lectura: un chip que mantiene las instrucciones para el dispositivo), y tomar el control al ser conectado al equipo. Su primera tarea sería reajustar (y probablemente probar) los sensores de hardware y alarmas, y entonces activar una rutina que “escucha” ininterrumpidamente todos los sensores del sistema. Si el estado de cualquier sensor de entrada cambiara, se activaría una rutina de alarma.
En un gran servidor multiusuario, con muchas computadoras conectadas a él, el Sistema Operativo es mucho más complejo. Tiene que administrar y ejecutar todos los pedidos de los usuarios y asegurar que ellos no interfieran entre sí. Tiene que compartir todos los dispositivos que son del tipo serial por naturaleza (equipos que sólo pueden ser usados por un usuario de cada vez, como impresoras y discos) entre todos los usuarios que piden utilizar este tipo de servicios. El Sistema Operativo puede ser almacenado en un disco, y determinadas partes de él son cargadas en la memoria del ordenador (RAM) cuando es necesario.
Las Distintas Partes de un Sistema Operativo
El sistema operativo de una computadora que es usado por muchas personas al mismo tiempo, es un sistema complejo. Contiene millones de líneas de instrucciones escritas por programadores. Para hacer los sistemas operativos más fáciles se ser escritos, son construidos como un conjunto de módulos, siendo cada módulo responsable de realizar una función.
Los módulos típicos en un gran Sistema Operativo multiusuario generalmente son:
- Núcleo (Kernel en inglés)
- Administrador de procesos
- Scheduler
- Administrador de archivos
Sistemas Operativos 1
Jose Luis Martinez Ramirez
Docente:
Pedro Tamayo Gomez
Lunes 11:00-12:00 Martes 9:00-11:00 Jueves 12:00-13:00
Encuadre
Trabajo en clase 20 %
Tareas 20%
Insumos 20%
Actividades Actitudinales 10%
Examen 30%
Examen Diagnostico:
¿Que es un sistema operativo?
Conjunto de órdenes y programas que controlan los procesos básicos de una computadora y permiten el funcionamiento de otros programas
Escribe el proceso de encendido de una computadora
¿A que se le llama tarea o proceso?
una orden que sera ejecutada en un tiempo determinado
¿Que es multitarea?
es la característica de los sistemas operativos modernos de permitir que varios procesos o aplicaciones se ejecuten aparentemente al mismo tiempo, compartiendo uno o más procesadores.
¿Que es el multiprocesamiento?
es el uso de dos o más procesadores (CPU) en una computadora para la ejecución de uno o varios procesos (programas corriendo).
¿con que se mide la capacidad de almacenamiento de un didco duro?
kilobyte, megabyte,gigabyte
Con que unidades se mide la capacidad de procesamiento de un pc?
gigahertz , gigahertz
que es un cuello de botella?
es unn entroncamiento de actividades o procesos a realizar
que es un driver?
es una aplicacion ejecutable utilizada para activar alguna funcion
Docente:
Pedro Tamayo Gomez
Lunes 11:00-12:00 Martes 9:00-11:00 Jueves 12:00-13:00
Encuadre
Trabajo en clase 20 %
Tareas 20%
Insumos 20%
Actividades Actitudinales 10%
Examen 30%
Examen Diagnostico:
¿Que es un sistema operativo?
Conjunto de órdenes y programas que controlan los procesos básicos de una computadora y permiten el funcionamiento de otros programas
Escribe el proceso de encendido de una computadora
- Encendido(Cuando usted presiona el botón de encendido del case, el power light es iluminado y la energía es distribuida por circuitos internos de la computadora)
- -Comienzo del programa de arranque (El microprocesador empieza a ejecutar las instrucciones almacenadas en la memoria ROM).
- Auto prueba de encendido o power-on self-test (La computadora realiza un diagnostico crucial del sistema y de cada componente de la computadora)
- Carga del Sistema Operativo(El sistema operativo es copiado desde el disco duro a la memoria RAM)
- Chequeo de la configuración(El microprocesador lee los datos de configuración del CMOs y ejecuta cualquier rutina especifica para su uso)
- Lista para aceptar datos y comandos.(La computadora esta lista para aceptar comandos y datos)
¿A que se le llama tarea o proceso?
una orden que sera ejecutada en un tiempo determinado
¿Que es multitarea?
es la característica de los sistemas operativos modernos de permitir que varios procesos o aplicaciones se ejecuten aparentemente al mismo tiempo, compartiendo uno o más procesadores.
¿Que es el multiprocesamiento?
es el uso de dos o más procesadores (CPU) en una computadora para la ejecución de uno o varios procesos (programas corriendo).
kilobyte, megabyte,gigabyte
Con que unidades se mide la capacidad de procesamiento de un pc?
gigahertz , gigahertz
que es un cuello de botella?
es unn entroncamiento de actividades o procesos a realizar
que es un driver?
es una aplicacion ejecutable utilizada para activar alguna funcion
Suscribirse a:
Entradas (Atom)