Está en la página 1de 15

Introduccin

Sin su software, la computadora es bsicamente un montn de metal intil. Con sus software, una computadora puede almacenar, procesar y recuperar informacin, exhibir documentos multimedia, realizar bsquedas en Internet y realizar muchas otras actividades valiosas para justificar su existencia. El software de computadora puede dividirse a grandes rasgos en dos tipos: programas de sistema, que controlan la operacin de la computadora misma y programas de aplicacin, que realizan las tareas reales que el usuario desea. El programa de sistema ms fundamental es el SISTEMA OPERATIVO, que controla todos los recursos de la computadora y establece la base sobre la que pueden escribirse los programas de aplicacin. Un sistema de computadoras moderno consiste en uno o mas procesadores, memoria, discos, impresoras, y otros dispositivos de entrada y salida, es un sistema complejo. Escribir programas que sigan la pista a todos los componentes de un computador y los usen correctamente es una tarea en extremo difcil, habra que escribir muchos programas. Por esto se hizo muy evidente que se deba encontrar alguna forma de proteger a los programadores de la complejidad del hardware. La solucin que ha evolucionado gradualmente consiste en poner una CAPA DE SOFTWARE encima del hardware, que se encargue de administrar todas las partes del sistema y presente al usuario una inferfaz o MQUINA VIRTUAL que sea ms fcil de entender y programar. Esta capa de software es el SISTEMA OPERATIVO.

Sistema de Computadora en capas


Paquete Office Compiladores Juegos Editores Internet Explorer Intrprete de Comandos

Programas DE APLICACIN

SISTEMA OPERATIVO
Lenguaje de Mquina Microprogramacin Dispositivos Fsicos

Programas DEL SISTEMA

HARDWARE

Dispositivos Fsicos: consisten en chips de circuitos integrados, alambres, fuentes de potencia, tubos de rayos catdicos y otros aparatos fsicos similares. La forma en que stos se construyen y sus principios de almacenamiento pertenecen al campo del ingeniero electricista. Microprogramacin: en algunos computadores viene una capa de software primitivo que controla directamente estos dispositivos y ofrece una interfaz ms limpia a las siguientes capas. Este software suele estar almacenado en memoria de slo lectura. Lenguaje de Mquina: El conjunto de instrucciones que el microprograma interpreta define el lenguaje de mquina.

Sistema Operativo
Un sistema operativo (S.O.) es ENTONCES, un conjunto de programas destinados a permitir la comunicacin del usuario con una computadora y gestionar sus recursos de manera eficiente. Comienza a trabajar cuando se enciende el ordenador, y gestiona el hardware de la mquina desde los niveles ms bsicos. Funciones Bsicas Los sistemas operativos, motivados por su condicin de capa software que posibilita y simplifica el manejo de la computadora, desempean una serie de funciones bsicas esenciales para la gestin del equipo. Entre las ms

destacables, cada una ejercida por un componente interno (mdulo en ncleos monolticos y servidor en microkernels), podemos resear las siguientes:

Gestionar los recursos del equipo ejecutando servicios para los procesos (programas) Brindar una interfaz al usuario, ejecutando instrucciones (comandos).

El Sistema Operativo como Gestor de Recursos Como gestor de recursos, el Sistema Operativo administra

La UCP Los dispositivos de E/S La memoria Las colas de procesos Administracin de recursos

Componentes Los sistemas operativos considerados como un programa han alcanzado un tamao muy grande, debido a que tienen que hacer muchas tareas. Por esta razn para construir un S.O. es conveniente dividirlo en componentes ms pequeos.

Gestin de procesos. Gestin de memoria. Gestin de archivos y directorios. Gestin de la E/S (Entrada/Salida). Seguridad y proteccin. Comunicacin y sincronizacin entre procesos. Intrprete de rdenes

Caractersticas

Administracin de tareas: o Monotarea: Si solamente puede ejecutar un proceso (aparte de los procesos del propio S.O.) en un momento dado. Una vez que empieza a ejecutar un proceso, continuar hacindolo hasta su finalizacin o interrupcin. o Multitarea: Si es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de S.O. normalmente asigna los recursos disponibles (CPU, memoria, perifricos) de forma alternada a los procesos que los solicitan, de manera que el usuario percibe que todos funcionan a la vez, de forma concurrente.

Administracin de usuarios: o Monousuario: Si slo permite ejecutar los programas de un usuario al mismo tiempo. o Multiusuario: Si permite que varios usuarios ejecuten simultneamente sus programas, accediendo a la vez a los recursos del ordenador. Normalmente estos SS.OO. utilizan mtodos de proteccin de datos, de manera que un programa no pueda usar o cambiar los datos de otro usuario. Manejo de recursos: o Centralizado: Si permite utilizar los recursos de un solo ordenador. o Distribuido: Si permite utilizar los recursos (memoria, CPU, disco, perifricos... ) de ms de un ordenador al mismo tiempo.

Procesos
Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto formado por:

Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador. Su estado de ejecucin en un momento dado, esto es, los valores de los registros de la CPU para dicho programa. Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos. Otra informacin que permite al sistema operativo su planificacin.

Esta definicin vara ligeramente en el caso de sistemas operativos multihilo, donde un proceso consta de uno o ms hilos, la memoria de trabajo (compartida por todos los hilos) y la informacin de planificacin. Cada hilo consta de instrucciones y estado de ejecucin. Los procesos son creados y destruidos por el sistema operativo, as como tambin este se debe hacer cargo de la comunicacin entre procesos, pero lo hace a peticin de otros procesos. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcacin (fork). Los nuevos procesos son independientes y no comparten memoria (es decir, informacin) con el proceso que los ha creado. En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en que un proceso solamente puede crear hilos

para s mismo y en que dichos hilos comparten toda la memoria reservada para el proceso.

Estados de un proceso El principal trabajo del procesador es ejecutar las instrucciones de mquina que se encuentran en memoria principal. Estas instrucciones se encuentran en forma de programas. Para que un programa pueda ser ejecutado, el sistema operativo crea un nuevo proceso, y el procesador ejecuta una tras otra las instrucciones del mismo. En un entorno de multiprogramacin, el procesador intercalar la ejecucin de instrucciones de varios programas que se encuentran en memoria. El sistema operativo es el responsable de determinar las pautas de intercalado y asignacin de recursos a cada proceso. Diagrama de formacin de un proceso

Se trata de la utilizacin de dos archivos, es decir, un objeto ejecutable y una biblioteca del sistema, que despus se colocan en la imagen del proceso dentro de la memoria RAM y posteriormente tambin se dan de alta dentro de la tabla de procesos, BCP. Modelo de dos estados

El modelo de estados ms simple es el de dos estados. En este modelo, un proceso puede estar ejecutndose o no. Cuando se crea un nuevo proceso, se pone en estado de No ejecucin. En algn momento el proceso que se est ejecutando pasar al estado No ejecucin y otro proceso se elegir de la lista de procesos listos para ejecutar para ponerlo en estado Ejecucin. De esta explicacin se desprende que es necesario que el sistema operativo pueda seguirle la pista a los procesos, conociendo su estado y el lugar que ocupa en memoria. Adems los procesos que no se estn ejecutando deben guardarse en algn tipo de cola mientras esperan su turno para ejecutar. Modelo de cinco estados El modelo anterior de dos estados funcionara bien con una cola FIFO y planificacin por turno rotatorio para los procesos que no estn en ejecucin, si los procesos estuvieran siempre listos para ejecutar. En la realidad, los procesos utilizan datos para operar con ellos, y puede suceder que no se encuentren listos, o que se deba esperar algn suceso antes de continuar, como una operacin de Entrada/Salida. Es por esto que se necesita un estado donde los procesos permanezcan bloqueados esperando hasta que puedan proseguir. Se divide entonces al estado No ejecucin en dos estados: Listo y Bloqueado. Se agregan adems un estado Nuevo y otro Terminado. Los cinco estados de este diagrama son los siguientes:

Ejecucin: el proceso est actualmente en ejecucin. Listo: el proceso est listo para ser ejecutado, slo est esperando que el planificador as lo disponga. Bloqueado: el proceso no puede ejecutar hasta que no se produzca cierto suceso, como una operacin de Entrada/Salida. Nuevo: El proceso recin fue creado y todava no fue admitido por el sistema operativo. En general los procesos que se encuentran en este estado todava no fueron cargados en la memoria principal. Terminado: El proceso fue expulsado del grupo de procesos ejecutables, ya sea porque termin o por algn fallo, como un error de proteccin, aritmtico, etc.

Los nuevos estados Nuevo y Terminado son tiles para la gestin de procesos. En este modelo los estados Bloqueado y Listo tienen ambos una cola de espera. Cuando un nuevo proceso es admitido por el sistema operativo, se sita en la cola de listos. A falta de un esquema de prioridades sta puede ser una cola FIFO. Los procesos suspendidos son mantenidos en una cola de bloqueados. Cuando se da un suceso se pasan a la cola de listos los procesos que esperaban por ese suceso. Si existe un esquema con diferentes niveles de prioridad de procesos es conveniente mantener varias colas de procesos listos, una para cada nivel de prioridad, lo que ayuda a determinar cul es el proceso que ms conviene ejecutar a continuacin. Procesos suspendidos Una de las razones para implementar el estado Bloqueado era poder hacer que los procesos se puedan mantener esperando algn suceso, por ejemplo una Entrada/Salida. Sin embargo, al ser mucho ms lentas estas operaciones, puede suceder en nuestro modelo de cinco estados todos los procesos en memoria estn esperando en el estado Bloqueado y que no haya ms memoria disponible para nuevos procesos. Podra conseguirse ms memoria, aunque es probable que esto slo permita procesos ms grandes y no necesariamente nuevos procesos. Adems hay un costo asociado a la memoria y de cualquier forma es probable que se llegara al mismo estado con el tiempo. Otra solucin es el intercambio. El intercambio se lleva a cabo moviendo una parte de un proceso o un proceso completo desde la memoria principal al disco, quedando en el estado Suspendido. Despus del intercambio, se puede aceptar un nuevo proceso o traer a memoria un proceso suspendido anteriormente. El problema que se presenta ahora es que puede ser que si se decide traer a memoria un proceso que est en el estado Suspendido, el mismo todava se encuentre bloqueado. Slo convendra traerlo cuando ya est listo para ejecutar, esto implica que ya aconteci el suceso que estaba esperando cuando se bloque. Para tener esta diferenciacin entre procesos suspendidos, ya sean listos como bloqueados, se utilizan cuatro estados: Listo, Bloqueado, Bloqueado y suspendido y Listo y suspendido.

Procesos en espera Dos o ms procesos pueden cooperar mediante seales de forma que uno obliga a detenerse a los otros hasta que reciban una seal para continuar.

Se usa una variable llamada semforo para intercambiar seales. Si un proceso est esperando una seal, se suspende (WAIT) hasta que la seal se enve (SIGNAL). Se mantiene una cola de procesos en ESPERA en el semforo. La forma de elegir los procesos de la cola en ESPERA es mediante una poltica FIFO.

La sincronizacin explcita entre procesos es un caso particular del estado "bloqueado". En este caso, el suceso que permite desbloquear un proceso no es una operacin de entrada/salida, sino una seal generada a propsito por el programador desde otro proceso.

Gestin de archivos
Un sistema de gestin de archivos es el Software que proporciona a los usuarios y aplicaciones servicios de para el uso, acceso y control de accesos, tanto de archivos como a directorios. Conceptos iniciales

El sistema de manejo de archivos es considerado parte del Sistema operativo.

El input de las aplicaciones son muchas veces archivos.


El output de las aplicaciones se graba en archivos para almacenarlos por un periodo muy largo. El programador no necesita desarrollar un sistema de manejo de archivos

Trminos usados

Campo: Elemento bsico de informacin, contiene un valor, tiene un tipo de dato y una longitud. Registro: Coleccin de campos relacionados; se trata como una unidad. Archivo: Coleccin de registros relacionados; se trata como una unidad; tiene un nombre nico; se puede restringir su acceso. Base de datos. Coleccin de datos relacionados.

Objetivos

Garantizar que la informacin del archivo sea valida Optimizar el acceso a los archivos Proveer soporte E/S a gran variedad de dispositivos de almacenamiento. Entregar los datos que el usuario pide. Minimizar o eliminar una potencial perdida de datos. Proveer un conjunto estndar de rutinas E/S. Proveer soporte de E/S a mltiples usuarios.

Requerimientos bsicos

Los usuarios deben poder crear, leer, borrar y cambiar archivos. Los usuarios pueden tener el control de los archivos de otros usuarios. Los usuarios controlan que tipo de acceso otorgan a otros usuarios. Los usuarios pueden ordenar sus archivos de acuerdo a su problema (directorios) Los usuarios pueden mover informacin entre archivos. Los usuarios deben ser capaces de realizar una copia de respaldo y restaurarla en caso de un desastre. Los usuarios pueden acceder a los archivos con nombres simblicos (en Windows accesos directos)

Drivers de dispositivos

Son rutinas de bajo nivel.

Se comunican directamente con el dispositivo. Es el responsable de iniciar las operaciones E/S con el dispositivo. Tambin procesa el fin de las operaciones E/S.

Sistema Bsico de Archivos


Realiza Realiza Realiza Realiza

E/S fsico intercambio de bloques de datos. la colocacin de bloques de datos. buffering de bloques con la memoria principal.

Supervisor Bsico de E/S


Responsable del inicio y trmino de un E/S de archivo. Mantiene las estructuras de control. Realiza la planificacin para obtener una perfomance ptima. Es parte del sistema operativo.

Funciones de la gestin de archivos


Identificar y localizar un archivo. Usa un directorio (como un directorio telefnico) para describir la ubicacin y atributos de un archivo. Controla el acceso de varios usuarios a los archivos. Bloquea el uso de archivos. Ubica archivos en bloques libres. Administra el espacio libre.

Organizacin de directorios

Se tiene un Directorio maestro con directorios del usuario dentro del directorio maestro. Cada directorio del usuario puede contener subdirectorios y archivos. Los archivos pueden ser localizados siguiendo la ruta de directorios desde el directorio maestro (root). La ruta de directorios se conoce como path. Se pueden tener varios archivos con el mismo nombre ubicados en diferentes rutas. El directorio donde se encuentra el usuario es el directorio de trabajo. Los archivos se referencian respecto al directorio de trabajo

Multitarea
Es una caracterstica de un sistema operativo moderno. Permite que varios procesos sean ejecutados al mismo tiempo compartiendo uno o ms procesadores. Tipos de multitarea:

Nula: El sistema operativo carece de multitarea. Aun as puede lograrse a veces algo parecido a una multitarea implementndola en espacio de usuario, o usando trucos como los TSR de MS-DOS. Un ejemplo tpico de un sistema no multitarea es MS-DOS y sus clones. Cooperativa: Los procesos de usuario son quienes ceden la CPU al sistema operativo a intervalos regulares. Muy problemtica, puesto que si el proceso de usuario se interrumpe y no cede la CPU al sistema operativo, todo el sistema estar trabado, es decir, sin poder hacer nada. Da lugar tambin a latencias muy irregulares, y la imposibilidad de tener en cuenta este esquema en sistemas operativos de tiempo real. Un ejemplo sera Windows hasta la versin 95. Preferente: El sistema operativo es el encargado de administrar el/los procesador(es), repartiendo el tiempo de uso de este entre los procesos que estn esperando para utilizarlo. Cada proceso utiliza el procesador durante cortos perodos de tiempo, pero el resultado final es prcticamente igual que si estuviesen ejecutndose al mismo tiempo. Ejemplos de sistemas de este tipo seran Unix y sus clones (FreeBSD, Linux...), VMS y derivados, AmigaOS, Windows NT... Real: Slo se da en sistemas multiprocesador. Es aquella en la que varios procesos se ejecutan realmente al mismo tiempo, en distintos microprocesadores. Suele ser tambin preferente. Ejemplos de sistemas operativos con esa capacidad: variantes Unix, Linux, Windows NT, etc.

Multiusuario
Multiusuario: de multi: varios; y usuarios, "apto para ser utilizado por muchos usuarios". Dicho sobre un sistema operativo, significa que ste puede utilizarse por varios usuarios al mismo tiempo, permitiendo la ejecucin concurrente de programas de usuario. Esto facilita la reduccin de tiempo ocioso en el procesador, e indirectamente implica reduccin de los costos de energa y equipamiento para resolver las necesidades de cmputo de los usuarios.

Ejemplos de sistemas operativos con caracterstica de multiusuario son VMS y Unix en sus mltiples derivaciones (e.g. IRIX,Solaris, etc.) y los sistemas "clones de Unix" como Linux y FreeBSD. En la familia de los sistemas operativos Microsoft Windows, las versiones domsticas y para clientes de Windows 2000, Windows XP y Windows Vista proveen soporte para ambientes personalizados por usuario, pero no admiten mltiples usuarios usando el escritorio del sistema concurrentemente (y son por lo tanto, sistemas operativos monousuario); las versiones de servidor de Windows 2000 y Windows 2003 (as como la futura versin de Vista "Longhorn") proveen servicio de escritorio a mltiples usuarios de forma concurrente. Que los sistemas operativos para clientes no soporten mltiples usuarios del escritorio grfico, es ms una decisin de diseo de parte de Microsoft que una limitacin tcnica, pues en su diseo bsico, todos los sistemas operativos derivados de Windows NT soportan la ejecucin concurrente de programas pertenecientes a mltiples usuarios, pero solo los vendidos para servidores permiten usar el entorno grfico de forma compartida. Los sistemas basados en MS/DOS, como Windows 95, Windows 98 y Windows ME, no provean ningn soporte interno para mltiples usuarios, y simplemente permitan personalizar algunos atributos bsicos del escritorio, para simular un autntico entorno multiusuario. Un sistema operativo multiusuario, a diferencia de uno monousuario, debe resolver una serie de complejos problemas de administracin de recursos, memoria, acceso al sistema de archivos, etc.

Microkernel
Se conoce como microkernel al tipo de kernel de un sistema operativo que provee un conjunto de primitivas o llamadas al sistema mnimas, para implementar servicios bsicos como espacios de direcciones, comunicacin entre procesos y planificacin bsica. Todos los otros servicios (gestin de memoria, sistema de archivos, operaciones de E/S, etc.), que en general son provistos por el kernel, se ejecutan como procesos servidores en espacio de usuario. Esto mejora la tolerancia a fallos y eleva la portabilidad entre plataformas de hardware, segn los defensores de esta tendencia. Sus detractores le achacan, fundamentalmente, mayor complejidad en el cdigo, menor rendimiento, o limitaciones en diversas funciones.

Algunos ejemplos de sistemas operativos con microkernel:


Minix Hurd NeXTSTEP (algunos lo consideran un kernel hbrido) L4 Netkernel AmoebaOS RaOS RadiOS Chorus QNX SO3 SymbOS

Planificador
El planificador es un componente funcional muy importante de los sistemas operativos multitarea y multiproceso, y es esencial en los sistemas operativos de tiempo real. Su funcin consiste en repartir el tiempo disponible de un microprocesador entre todos los procesos que estn disponibles para su ejecucin. Motivacin Todo sistema operativo gestiona los programas mediante el concepto de proceso. En un instante dado, en el ordenador pueden existir diversos procesos listos para ser ejecutados. Sin embargo, solamente uno de ellos puede ser ejecutado (en cada microprocesador). De ah la necesidad de que una parte del sistema operativo gestione, de una manera equitativa, qu proceso debe ejecutarse en cada momento. Cmo funciona Supngase un ordenador que contiene un nico microprocesador. Dicho microprocesador solamente puede ejecutar un programa en cada instante de tiempo. Adems, cuando un programa est ejecutndose, nunca dejar de hacerlo por s mismo. De manera que, en principio, cualquier programa monopoliza el microprocesador impidiendo que otros programas se ejecuten. Por ello, la primera misin de un planificador es expulsar el programa en ejecucin cuando decida que es pertinente. Esto se consigue de dos maneras, siempre con ayuda del propio hardware:

Cuando expira un temporizador, que se activa a intervalos regulares de tiempo. En intervalos muy cortos, generalmente cada 250 milisegundos. Cuando el programa solicita una operacin de entrada/salida. Dado que el programa no puede continuar hasta que termine dicha operacin, es un buen momento para ejecutar otro programa.

En ambos casos, el control del microprocesador pasa a manos del planificador gracias a que el hardware genera una interrupcin. En este proceso de expulsin, se salva el estado de ejecucin del programa (programa y su estado se denomina proceso). A continuacin, el planificador decide cul ser el siguiente proceso en ejecutarse. Naturalmente, solamente se escogen procesos que estn listos para hacerlo. Si un proceso sigue esperando por una operacin de entrada/salida no ser candidato a ejecutarse hasta que finalice tal operacin. La seleccin del proceso sigue alguna poltica de planificacin (ver ms adelante) preestablecida. Una vez seleccionado un proceso, se procede a ejecutarlo. Para ello, el planificador restaura su estado de ejecucin (previamente salvado) y abandona el uso del microprocesador cedindoselo a dicho proceso. Todo esto apenas dura unos pocos milisegundos. Gracias a que el tiempo del microprocesador se reparte entre todos los procesos a intervalos muy cortos, el ordenador ofrece la sensacin de que todos los procesos estn ejecutndose a la vez. Cuando un ordenador tiene varios microprocesadores, este esquema se repite para cada microprocesador. Tiempo real Un sistema operativo en tiempo real se caracteriza por garantizar que todo programa se ejecutar en un lmite mximo de tiempo. El planificador debe comportarse de manera que esto sea cierto para cualquier proceso. En estos casos, la finalidad del planificador es balancear o equilibrar la carga del procesador, impidiendo que un proceso monopolice el procesador o que sea privado de los recursos de la mquina. En entornos de tiempo real, como los dispositivos para el control automtico en la industria (por ejemplo, robots), el planificador tambin impide que los procesos se paren o interrumpan a otros que esperan que se realicen ciertas acciones. Su labor resulta imprescindible para mantener el sistema estable y funcionando.

Niveles de planificacin Los niveles de planificacin estn basados en la frecuencia con la que se realiza cada uno. En los sistemas operativos de propsito general, existen tres tipos de planificadores. El planificador a corto plazo es el que se ha descrito aqu, siendo tambin el ms importante. En ingls, se denomina dispatcher o short term scheduler, tambin existe un planificador a mediano plazo (en ingls, mid term scheduler) relacionado con aquellos procesos que no se encuentran en memoria principal (vase memoria virtual). Su misin es mover procesos entre memoria principal y disco (lo que se conoce como swapping) y por ltimo existe el planficador a largo plazo (en ingles long term scheduler) es el encargado de ingresar nuevos procesos al sistema y de finalizarlos. Polticas de planificacin A continuacin se enumeran diversas polticas de planificacin. Lo habitual es utilizar polticas mixtas. Generalmente, el planificador a corto plazo utiliza round-robin, mientras que el planificador a largo plazo utiliza varias colas FIFO. Cada una de estas colas corresponde a una prioridad diferente.

Planificacin Round-robin Round-robin con pesos. Prioridades montonas en frecuencia (RMS (Rate-monotonic scheduling)) Menor tiempo de respuesta primero (EDF (Earliest deadline first scheduling)) FIFO. LIFO.

Bibliografa
Ttulo: Sistema Operativos Diseo e implementacin, Segunda Edicin, Autores: Andrew S. Tanenbaum, Albert S. Woodhull, Editorial: Prentice Hall. Wikipedia, La enciclopedia libre, http://es.wikipedia.org/wiki/Portada.