UNIDAD II - Sistemas Operativos.pdf

- SISTEMAS OPERATIVOS DESARROLLO Unidad 2. Generalidades Antes de hablar de Sistemas Operativos como son actualmente

Views 94 Downloads 4 File size 210KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

  • Author / Uploaded
  • david
Citation preview

-

SISTEMAS OPERATIVOS

DESARROLLO

Unidad 2. Generalidades Antes de hablar de Sistemas Operativos como son actualmente, deberíamos hablar de cómo fueron sus inicios, como se comportaban, como se diseñaban y como se construían. También de cómo el concepto de sistema operativo ha evolucionado con el paso del tiempo, lo que el sistema operativo hace por el usuario y por el operador de un sistema de cómputo. Normalmente un sistema operativo lo definimos como un programa que actúa como intermediario entre el usuario y el hardware del computador. Cuando surge ésta interacción usuario-hardware, el sistema operativo adquiere un propósito; crear un retorno en el que el usuario pueda ejecutar programas de forma cómoda y eficiente. Específicamente haremos énfasis en 3 tipos de sistemas operativos: Por lotes Por lotes multiprogramados Tiempo compartido Sistemas por lotes Se habló de sistemas operativos como aquellos sistemas que se encargaban de hacer la interacción usuario-hardware y generar un entorno agradable y eficiente. Los primeros computadores eran maquinas enormes físicamente, las cuales eran controladas desde consola por un operador, y sus dispositivos de entrada y salida eran lectores de tarjetas e impresoras de líneas respectivamente. Lo que significaba que la interacción usuario-trabajo en ejecución era poca, el usuario (operador) se encargaba de pasar un trabajo como entrada y esperar minutos, horas o días la salida, sin poder controlar el trabajo que se estaba llevando a cabo dentro del sistema. Cuando existían varios trabajos pasados al lector de tarjetas, el sistema se encargaba de distribuirlos en lotes dependiendo de las necesidades de cada uno, lo cual se realizaba para agilizar el procesamiento, pero cuando existía un retardo entre la presentación de un trabajo y su terminación (llamado tiempo de retorno) la CPU con frecuencia permanecía vacía, sin ejecutar ningún trabajo. Por suerte, la tecnología de discos en ese entonces fue muy útil, en la imagen presentada a continuación se puede apreciar el esquema manejado por los sistemas por lotes con integración de discos:

ILUSTRACIÓN 1

La situación era la siguiente; el lector de tareas podía tener diversos trabajos para ejecutar, con la integración de los discos, ya no se pasaban directamente a la CPU, sino que se enviaban al disco el cual funcionaba como buffer almacenando los trabajos. Cuando la CPU se encontraba vacía ella misma se encargaba de ir al disco y buscar trabajos para así no quedar sin nada que hacer. Esto tenía como nombre spooling y permitía a los operadores despreocuparse por que la CPU no tuviera trabajos en ejecución aunque ellos no pudieran interactuar con ellos. Sistemas por lotes multiprogramados La llegada de los sistemas por lotes multiprogramados se dio gracias al spooling, y con ella la reserva de trabajos. Cuando la CPU se encontraba ocupada, un trabajo tenía la capacidad de esperar por alguna acción E/S, pasar al disco y a la vez la CPU ejecutar otro que estuviera listo para ejecutarse, lo que genera un mayor aprovechamiento de las capacidades de la CPU y la mantiene ocupada todo el tiempo siempre y cuando existan trabajos en disco o por entrada. Entonces con esto nace la multiprogramación, y con ella la capacidad de planificar. Por ejemplo, si la CPU recibe n trabajos del lector de tarjetas, la CPU deberá ejecutar por un orden de llegada cada trabajo, pero si los trabajos provienen del disco, ahí surge una planificación de trabajos, es decir, dependiendo del orden de llegada, necesidades del trabajo y sobre todo si es un trabajo esperando por alguna acción E/S y esta acción se llevó a cabo, la CPU se encargará de ejecutarlo. Todo esto transforma a la multiprogramación en una opción bastante buena para aprovechar al máximo el uso de la CPU, pero sigue siendo compleja para el usuario, ya que la multiprogramación es la que toma las decisiones por los usuarios, en este caso el usuario mantiene la misma posición del usuario del sistema por lotes; esperar por una salida sin idea de lo que pasa en la CPU.

Sistemas de tiempo compartido Con el mismo problema de tener al usuario “sin nada que hacer” o sin nada que ofrecer mientras un trabajo se ejecutaba nacen los sistemas de tiempo compartido. Estos sistemas solventaron único problema que faltaba; interacción usuario/proceso. Anteriormente existían trabajos que necesitaban de muchas cosas para ser ejecutados correctamente, como entradas, salidas de otros trabajos, consecución de trabajos y entre otras cosas, y el usuario tenía que preparar dichos trabajos de tal manera que cumplieran con todos los resultados posibles. El tiempo compartido o multitareas es una extensión lógica de la multiprogramación, esto permite a la CPU conmutarse con los trabajos mientras se ejecutan, siendo la conmutación tan frecuente que los usuarios pueden interactuar con cada programa durante su ejecución, y para que los usuarios puedan acceder a los datos y al código cómodamente se debía contar con un sistema de archivos en línea. Estos archivos eran los representantes de los procesos y los datos, eran ubicados en directorios para su fácil localización y tenían permisos que definían que usuario podía o no acceder a dicha información. Y es así como estos sistemas de tiempo compartido permiten a los múltiples usuarios compartir el computador simultáneamente puesto que cada acción que es dada tiende a ser corta y como el computador cambia con gran rapidez de un usuario al siguiente, cada uno recibe la impresión de que tiene su propio computador aunque muchos lo estén compartiendo. Evolución de trabajo a proceso en los sistemas operativos En las primeras épocas de los sistemas operativos, las personas que “interactuaban” con los sistemas en realidad no lo hacían en un 100%. Los operarios, personas o usuarios de los sistemas se encargaban de pasar los trabajos a través de lectores de tarjetas y después de mucho tiempo u horas, recibían la salida de la maquina por medio de un lector de líneas. Esa actividad tenía por nombre trabajo, pero era un trabajo que realizaba el operador teniendo en cuenta todas las posibles situaciones que podían suceder en el momento en que el trabajo se estuviera ejecutando. Los procesos son actividades que son realizadas en conjunto por el usuario y el sistema operativo, evaluando en tiempo de ejecución cuales son las posibles opciones a llevar a cabo y terminar el proceso recibiendo la salida correspondiente. Es así como las actividades que se llevan a cabo en los sistemas operativos han evolucionado, y es por eso que sus nombres han cambiado, de trabajos a procesos y esto nace cuando el usuario empieza a interactuar con el sistema operativo y con las aplicaciones que se van ejecutando en el sistema. Definición Un Sistema Operativo (SO) es un software que proporciona un acceso sencillo y seguro al soporte físico del ordenador (hardware), ocultando al usuario detalles de la implementación particular y creando la ilusión de existencia de recursos ilimitados (o abundantes). Máquina Virtual. Otra definición, es el de un programa que actúa como intermediario entre el usuario de la computadora y el hardware de la computadora. (Felici)

ILUSTRACIÓN 2 - EXTRAÍDO DE: HTTP://INFORMATICA.UV.ES/IT3GUIA/FT/CAP5-SSOO-FT.PDF

El sistema operativo comienza a trabajar en cuanto se enciende el ordenador y es completamente fundamental para que el usuario trabaje con él. Los sistemas operativos realizan tareas básicas y, sin ellos, el ordenador no funcionaría. Así, por ejemplo, el sistema operativo reconoce la conexión del teclado, organiza y ordena los archivos, controla la impresora, la pantalla, etc. Es como un policía de tráfico pues, se encarga de que los programas no interfieran entre ellos. Sobre el sistema operativo se instalan los programas que vaya a usar el usuario. Los programas, también llamados aplicaciones son muy diversos. Ejemplo: El procesador de textos Word. (iesvillalbahervastecnologia, 2009) En pocas palabras, el Sistema Operativo es un programa informático que permite al usuario tener interacción Hardware – Software de una forma agradable y cómoda. Brindándole al usuario una interfaz gráfica donde este realizara las tareas que tenga en mente. Funciones de un sistema operativo El sistema operativo dentro del ordenador cumple un sin número de funciones que dan relevancia al mundo de las computadoras, funciones como: Gestión de tareas y/o procesos. Interfaz de usuario. Gestión de archivos. Gestión de recursos. Kernel o Núcleo La parte más importante de un sistema operativo se llama Kernel. Prácticamente es el corazón de un sistema operativo donde este se encarga de hacer trabajar en conjunto al Software y al Hardware. Pero esa no es la única función que cumple el núcleo de un sistema operativo. Las funciones más importantes del mismo, aunque no las únicas, son: Administración de la memoria para todos los programas y procesos en ejecución. Administración del tiempo de procesador que los programas y procesos en ejecución utilizan. Es el encargado de que podamos acceder a los periféricos/elementos de nuestro ordenador de una manera cómoda. (Martinez, 2014) En informática, un núcleo o kernel (de la raíz germánica Kern, núcleo, hueso) es un software que constituye una parte fundamental del sistema operativo, y se define como la parte que se ejecuta en modo privilegiado (conocido también como modo núcleo). 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á hacer uso de 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 proporciona una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso al programador. En algunos sistemas operativos, no existe un núcleo como tal (algo común en sistemas empotrados), debido a que en ciertas arquitecturas no hay distintos modos de ejecución. (Wikipedia, 2014)

Servicios del Kernel.

ILUSTRACIÓN 3 – EXTRAÍDO DE

HTTP ://PHOTOS1. BLOGGER.COM/BLOGGER/3942/3713/1600/FIGURA 25. GIF

Los servicios ofrecidos por el Kernel son servicios básicos para la ejecución del sistema: gestión básica del procesador, procesos, memoria y periféricos. Todos estos servicios forman una capa monolítica que debe ser lo más estable posible. Si se cambiara alguno de estos servicios, sería necesario reiniciar la máquina. Los servicios abiertos recogen servicios de usuarios y aplicaciones. Estos servicios se apoyan en los servicios del Kernel, pero a diferencia de estos últimos, se pueden añadir, modificar o quitar sin necesidad de reiniciar la máquina.

EJERCICIOS/ACTIVIDADES

Taller en clases, investigación sobre estructuras de los sistemas operativos, Realizar un ensayo breve textual o grafico sobre la estructura y sus funciones.

BIBLIOGRAFIA

Felici, S. (s.f.). Informatica uv. Obtenido de Informatica.uv.es: http://informatica.uv.es/it3guia/FT/cap5-ssooft.pdf iesvillalbahervastecnologia. (Septiembre de 2009). Obtenido de http://iesvillalbahervastecnologia.files.wordpress.com/: http://iesvillalbahervastecnologia.files.wordpress.com/2009/09/sistemas-operativos.pdf Martinez, R. (2014). http://www.linux-es.org. Obtenido de http://www.linux-es.org: http://www.linuxes.org/kernel

Silberschatz, A. Baer P. (1999) Sistemas operativos 5 edición, ed. PEARSON México Wikipedia. (11 de 10 de 2014). Wikipedia. Obtenido de http://es.wikipedia.org: http://es.wikipedia.org/wiki/N%C3%BAcleo_(inform%C3%A1tica)