Está en la página 1de 14

1. CONCEPTO DE SISTEMAS OPERATIVOS Y SUS FUNCIONES BSICAS 1.1.

INTRODUCCION:

El tema de Sistema Operativo es algo muy complejo y extenso de tratar ya que tiene un conjunto completo de herramientas, las cuales necesitan de una explicacin especfica y muy particular. Cabe mencionar que uno de sus propsitos principales es aliviar a los programadores de aplicaciones con tener que tratar con cada uno de los detalles complejos que el mismo presente.

1.2.

INDICE:

1.2.1.Qu es un Sistema Operativo 1.2.2.El Sistema operativo como una mquina extendida 1.2.3.El sistema operativo como administrador de recursos 1.2.4.Conclusin

1.3.

DEFINICIN:

1.3.1.Qu es un Sistema Operativo: El Sistema Operativo es una de las partes importantes de cualquier sistema de computacin; acta como intermediario entre el usuario y el hardware, esto se logra de una manera ms agradable cuando el Sistema Operativo posee buenas abstracciones. Funciona en modo kernel: se refiere a que tiene acceso y manipulacin de los recursos del hardware, un claro ejemplo de ello podra ser que asigna a cada proceso una parte del procesador para poder compartir los recursos. Adems se utiliza como plataforma para aplicaciones soportadas.

El Sistema Operativo tiene dos funciones principales las cuales se describen a continuacin.

1.3.2.El Sistema Operativo como una mquina extendida: Esta funcin se refiere a que un sistema Operativo debe de proveer al usuario una interfaz agradable; ocultando muchos asuntos desagradables relacionados con las interrupciones, la gestin de memoria y otras caractersticas de bajo nivel. Construye una mquina fsica a una mquina virtual facilitando en todo momento la realizacin de cualquier tarea requerida sin que el usuario tenga contacto directo con la parte de ms bajo nivel.

1.3.3.El Sistema recursos:

Operativo

como

administrados

de

Evita que la gestin de recursos no sea catica y provoque problemas; esto lo logra con un reparto ordenando y controlando de los procesadores, memorias, dispositivos de E/S y datos, entre los diversos programas que puedan hacer uso de ellos. Debe mantenerse al tanto de qu recurso est utilizando cada aplicacin y debe conceder recursos solicitados, contabilizar el uso de stos y resolver los conflictos que se presenten entre las solicitudes de los diferentes programas. Debe multiplexar los recursos de dos formas: en el tiempo (Varios programas se turnan para usar los recursos peridicamente) y en el espacio (Cuando hay varios programas no se turnan sino que dividen los recursos y se ejecutan paralelamente).

1.4.

CONCLUSIN:

Un sistema operativo es un programa general que puede estar escrito en millones de lneas de cdigo que nos sirve a nosotros los usuarios para facilitarnos el uso del software y el hardware presentndolo de una manera ms simple y sencilla. Tiene un sinfn de funciones dentro de las cuales se destacan las dos ms primordiales, las cuales son: Acta como mquina extendida, crendonos una interfaz amigable y fcil de usar en el desarrollo de cualquier tarea; acta tambin como administrados de recursos, el cual nos ayuda para que todo funciones correctamente.

2. REGISTROS DEL PROCESADOR Y EL USO QUE HACEN LOS SISTEMAS OPERATIVOS DE ELLOS

2.1.

INTRODUCCIN:

Un procesador es el encargado de ejecutar las instrucciones y procesar los datos que son necesarios para todas las funciones del computador. Puede ejecutar varias tareas de una manera continuamente para lo cual debe leer la instruccin, decodificarla, ejecutar la misma y por ltimo escribe el resultado de la ejecucin; todo este procedimiento requiere un respaldo temporal de las informaciones utilizadas en un apartado de memoria pequeo y veloz denominados registros del procesador, de los cuales hablaremos a continuacin.

2.2.

INDICE:

2.2.1.Qu es un registro

2.2.2.Program counter 2.2.3.Stack pointer 2.2.4.PSW 2.2.5.Uso de los registros por parte de los Sistemas Operativos 2.3. DEFINICIN:

2.3.1.Qu es un registro: Un registro es una porcin de memoria rpida de poca capacidad que est integrado al microprocesador, permite almacenar y acceder a datos usados frecuentemente, dentro de los registros especiales visibles para el programador, contenidos en el procesador tenemos los tres siguientes: Program counter, Stack Pointer y PSW 2.3.2.Program counter: Este contiene la direccin de memoria en donde se encuentra la instruccin que se va a ejecutar posteriormente; este se actualiza automticamente para apuntar a la siguiente. 2.3.3.Stack Pointer: Apunta a la parte superior de la pila que contiene parmetros de entrada, variables locales y temporales, las cuales no se guardan en los registros. 2.3.4.PSW: Contiene bits de cdigo de condicin que se activan cuando se ejecutan instrucciones de comparacin, algunos programas pueden leer PSW entera pero no puede escribir en todos sus campos. 2.3.5.Uso de los registros por parte de los Sistemas Operativos: El Sistema Operativo debe conocer todos los registros. Hace uso de ellos cuando cambia de un proceso a otro, ya que cuando se cambia debe guardar toda la informacin del proceso en ejecucin en los registros respectivos para la posterior reanudacin del mismo y saber de que punto continuar.

2.4.

CONCLUSIN:

El procesador tiene un conjunto de registros muy importantes que tienen como finalidad principal facilitar al sistema operativo la creacin, ejecucin, bloqueo, reanudacin y eliminacin de un

proceso; guardando, actualizando y eliminando la informacin de cada proceso, segn la actividad que realice.

3. DIFERENCIAS Y SIMILITUDES ENTRE SISTEMAS OPERATIVOS DE COMPUTADORAS PERSONALES Y DE SERVIDORES

3.1.

INTRODUCCIN:

Muchas veces se piensa que no existe variedad de sistemas operativos, incluso se ignora la existencia de los mismos; pero en realidad podemos encontrarlos hasta en un microondas. La variedad se deriva a partir de las tareas y hardware con que tiene que trabajar. A continuacin presentamos dos tipos de sistemas operativos muy importante en el mundo de la computacin con sus diferencias y similitudes.

3.2.

INDICE:

3.2.1.Sistemas operativos de servidores. 3.2.2.Sistemas operativos de computadoras personales. 3.2.3.Diferencias entre sistemas operativos de servidores y computadoras personales. 3.2.4.Similitudes entre sistemas operativos de servidores y computadoras personales. 3.3. DEFINICIN:

3.3.1.Sistemas operativos de servidores: Dan servicios a mltiples usuarios a travs de una red, permitiendo compartir los recursos de hardware y software.

3.3.2.Sistemas operativos de computadoras personales: Son los que pueden atender a un solo usuario y presentan una buena interfaz, se utiliza para procesamiento de texto, hojas de clculo, acceso a internet, etc.

3.3.3.Diferencias entre sistemas operativos de servidores y computadoras personales:

El sistema operativo de un servidor es multiusuario, esto quiere decir que puede tener varios usuarios a la vez y los personales son monousuario ya que solo puede haber un usuario a la vez. Las personales solo se utilizan para el procesamiento de texto, hojas de clculo, acceso a internet y otras pequeas tareas; en cambio el sistema para servidores pueden dar soporte a los clientes, almacenar pginas web y atender peticiones que los clientes les hagan.

3.3.4.Similitudes entre sistemas operativos de servidores y computadoras personales: Ambos presentan una interfaz amigable y agradable al usuario. Administran recursos de hardware y software.

3.4.

CONCLUSIN:

Los Sistemas Operativos han ido evolucionado da con da y van tomando caractersticas propias que los distinguen de los dems, pero de alguna forma hay algunas caractersticas que los hace parecerse ya que han partido de la misma base. 4. PRINCIPALES ABSTRACCIONES DE LOS SISTEMAS OPERATIVOS 4.1. 4.2. 4.3. INTRODUCCIN: INDICE: DEFINICIN:

4.3.1.Qu es una abstraccin:

4.3.2. 4.4. CNCLUSIN:

5. HILOS Y PROCESOS 5.1. INTRODUCCIN:

Un proceso es una serie de pasos que se siguen para llegar a un objetivo que deseamos y nos podemos dar cuenta que todo lo que realizamos debe de pasar por un proceso, viendo esto; tambin una computadora trabaja en funcin de un conjunto de procesos que realizan las tareas que el sistema o el usuario requieren y a su vez estos requieren de la implementacin de los hilos, temas que trataremos a continuacin.

5.2.

INDICE:

5.2.1.Procesos 5.2.2.Hilos 5.2.3.Similitudes entre hilos y procesos 5.2.4.Diferencias entre hilos y procesos 5.3. DEFINICIN:

5.3.1.Qu es un proceso: Un proceso es una instancia de un programa en ejecucin, es gestionado por el Sistema Operativo y est formado por: Las instrucciones de un programa destinadas a ser ejecutadas, su estado de ejecucin en un momento dado, su memoria de trabajo es decir la memoria que ha reservado sus contenidos, otra informacin que permite al sistema operativo su planificacin. Puede estar en tres estados, los cuales son: Estado en ejecucin, cuando est utilizando el CPU; bloqueado, cuando espera un dato de entrada y lo puede bloquear el sistema operativo (Planificador) o el usuario; Listo, Cuando ya obtuvo el dato que estaba esperando y puede ser tomado en cuenta por el planificador para su ejecucin. Un proceso puede ser creado: Por el arranque del sistema, Por otro proceso, por el usuario y por el inicio del trabajo por lotes. Un proceso puede ser destruido: voluntariamente al trmino de su trabajo, voluntariamente por un error, involuntariamente por un Error fatal e involuntariamente eliminado por otro proceso.

5.3.2.Qu es un hilo: Partiendo de las premisas que dicen que cada proceso tiene su propio espacio de direcciones y un nico flujo (hilo) de control y que estos se encuentran dentro de los procesos y a su vez puede haber mas de un hilo en cada proceso, se puede decir que un hilo o flujo de control es bsicamente una tarea que puede ser ejecutada en paralelo con otra tarea, esto quiere decir que cuando en un proceso hay varios hilos, hay elementos que estn compartidos por los

hilos pero que tambin hay elementos privados de cada hilo. Atributos propios de un proceso compartidos por los hilos Espacio de direcciones Variables globales Ficheros abiertos Alarmas pendientes Seales y controladores de seales Informacin de contabilidad

Atributos propios de un hilo 5.3.3 Contador de programa Registros Pila Estado

Similitudes entre Hilos y Procesos - Un hilo y un proceso tienen los mismos estados - Los dos pueden ser creados y destruidos bien sea por el usuario o por el Sistema - Los dos tienen el mismo espacio de Direcciones - Tanto el hilo como el proceso tienen una tabla donde guardan temporalmente informacin a la hora de ser bloqueados, para su posterior ejecucin. Diferencias entre Hilos y Procesos - Los procesos comparten recursos mediante mecanismos de comunicacin entre ellos de una forma indirecta, en cambio los hilos lo hacen de una manera ms directa. - Es mas rpido cambiar de un hilo a otro dentro del mismo proceso, que cambiar de un proceso a otro - un hilo se dan cuenta de la ejecucin de otro hilo y un proceso no se da cuenta de la ejecucin de otro proceso (cree que el procesador es solo de el) - La creacin y terminacin de un hilo es mucho ms rpida que un proceso

5.3.4

5.4.

CONCLUSIN:

Dentro de un proceso puede haber uno o mas hilos, que son utilizados para facilitar las tareas de un proceso, ya que se le asigna una tarea especfica a cada hilo para completar el proceso mas rpidamente, estos a su vez cuentan con caractersticas que comparten entre si, as como caractersticas propias que no comparten que los ayudan a un mejor desenvolvimiento a la hora de realizar lo que les corresponde.

6. PLANIFICACIN DE PROCESOS 6.1. INTRODUCCIN:

La planificacin es un tema muy importante a tratar hoy en da ya que la mayora de las computadoras utilizan la multiprogramacin: que consiste en realizar varias tareas simultneamente; todas estas tareas o procesos por supuesto que en un momento determinado utilizan la CPU y como bien sabemos un solo procesador no puede trabajar procesos paralelamente, o sea al mimo tiempo exactamente sino que se va turnando, de ah parte la importancia del desarrollo del tema de planificacin y la implementacin de un algoritmo de panificacin adecuado para el ptimo y satisfactorio desempeo de la computadora.

6.2.

INDICE:

6.2.1.Que es planificacin 6.2.2.Planificacin de procesos 6.2.3.Categoras y mtodos 6.3. DEFINICIN:

6.3.1.Qu es planificacin: Es un proceso de toma de decisiones para alcanzar un objetivo deseado, teniendo en cuenta la situacin actual, los factores internos y externos que pueden influir en el logro de los mismos.

6.3.2.Planificacin de procesos:

Planificar procesos consiste en determinar cul de ellos ser ejecutado a continuacin; Esto se da ya que hay mltiples procesos almacenados en memoria que estn listos para su ejecucin y debe asignar uno solo de ellos al CPU a la vez, ste lo ejecuta por un tiempo y posteriormente el proceso terminar su trabajo o ser interrumpido para la ejecucin de otro proceso, tomando en cuenta el de mayor prioridad o el que el usuario determine. La planificacin de procesos busca: garantizar que cada proceso obtenga una porcin justa de tiempo de CPU, busca mantener ocupado el CPU, maximizar el nmero de tareas procesadas por hora.

6.3.3.Categoras y mtodos: Existe variedad de categoras con diferentes mtodos de algoritmos de planificacin, esto se debe a que cada tipo de sistema operativo tiene objetivos diferentes, o sea lo que el planificador hace en un tipo de sistema operativo no es lo mismo en los dems. A continuacin se presentan tres categoras y sus diferentes y respectivos mtodos de implementacin.

Bach: Primero en llegar primero en ser servido, Primero el trabajo ms corto, Tiempo restante ms corto a continuacin, planificacin a tres niveles.

Sistemas interactivos: Planificacin Round Robin, planificacin por prioridades, mltiples colas, proceso ms corto a continuacin, planificacin garantizada, planificacin por lotera, planificacin por reparto justo.

Sistemas de tiempo real: Sistema de tiempo real estricto y sistema de tiempo real moderado.

6.4.

CONCLUSIN:

Planificar procesos es una tarea muy difcil y estricta en el sentido de que tiene que ayudar a mejorar el rendimiento de la CPU y los dems recursos tales como son: Memorias y dispositivos de E/S para que no solo sean eficaces sino tambin eficientes en el desempeo de sus tareas asignadas por el mismo. El algoritmo de planificacin que se va a implementar en un Sistema Operativo va a depender al tipo que pertenezca.

7. PLANIFICACIN DE HILOS:

7.1.

INTRODUCCIN:

As como son de importantes los procesos en un sistema, tambin son importantes los hilos, ya que estos le brindan un ayuda a los procesos para su mejor rendimiento y a continuacin tratamos sobre la planificacin que debe existir para estos y sobre dos categoras en que los podemos emplear.

7.2.

INDICE:

7.2.1.Qu es planificacin 7.2.2.Planificacin de hilos 7.2.3.Categoras y mtodos de planificacin 7.3. DEFINICIN:

7.3.1.Qu es planificacin: Consiste en la toma de decisiones para alcanzar un objetivo deseado, teniendo en cuenta la situacin actual, los factores internos y externos que pueden influir en el logro de los mismos.

7.3.2.Planificacin de hilos: Consiste en brindar a los hilos de un proceso su tiempo en milisegundos; porque estos cooperan y ejecutan concurrentemente tareas en el mismo espacio de direcciones, todo lo contrario de un proceso

7.3.3.Categoras y Mtodos: Hay dos formas de planificacin de hilos, las cuales se detallan a continuacin:

Planificacin a nivel de Usuario: En este el kernel no est consiente de la existencia de hilos, por lo tanto dentro del proceso existe el planificador de hilos que elige el hilo a ejecutar tomando todo el tiempo que el ncleo le de al proceso puesto que no afecta a los dems hilos, los cuales

recibirn el tiempo que el planificador considere que les corresponde.

Planificacin a nivel de Kernel: Aqu el ncleo elige que hilo ejecutar sin tomar en cuenta a que proceso pertenece el hilo, aunque si est consiente de ello. Puede asignar tiempo del CPU a un hilo de cualquier proceso y luego pasar a otro hilo de diferente proceso, lo cual no se puede hacer en el nivel de usuario. Es mucho ms tedioso porque se hace un cambio completo de todos los registros de un hilo a otro. Por otra parte cuando un hilo se bloque esperando una entrada no se bloque todo el proceso como si sucede con los hilos a nivel de usuario.

7.4.

CONCLUSIN:

Un hilo es la unidad de procesamiento ms pequea que puede ser planificada por un sistema operativo y que permite a una aplicacin realizar varias tareas a la vez. Estos comparten recursos, de ah la importancia de planificarlos y asignarles su tiempo en la CPU para que no existan interrupciones entre ellos.

8. LLAMADAS AL SISTEMA: 8.1. INTRODUCCIN:

8.2. 8.3.

INDICE: DEFINICIN:

8.3.1.Qu es una llamada al sistema: Es un mecanismo usado para solicitar un servicio al sistema operativo, las llamada al sistema disponibles en la interfaz varan de un sistema operativo a otro 8.3.2. 8.4. CONCLUSIN:

//////////////////////////////////////////////////////////////////////////////

9. COMUNICACIN ENTRE PROCESOS 9.1. 9.2. 9.3. INTRODUCCION: INDICE: DEFINICION:

Ya hemos definido anteriormente que es un proceso y nos podemos dar cuenta que constantemente los procesos deben de tener comunicacin con otros procesos. Existen tres razones por las cuales es importante la comunicacin de un proceso a otro. La salida de un proceso debe pasar a un segundo proceso y los datos se deben conservar (la salida de uno sirve de entrada para otro) Se debe de asegurar que dos o ms procesos no se interfieran mientras realizan tareas crticas. (Puede que dos o ms procesos intenten apoderarse del ltimo espacio en memoria) Debe de haber un secuenciamiento correcto cuando existen dependencias. (si el proceso A produce datos que el proceso B imprime, B tiene que esperar a que A produzca algn dato para empezar a imprimir)

Algo importante para resaltar es que dos de estas tres razones se aplican exactamente igual para los hilos, el paso de informacin es ms sencilla para los hilos porque estn en el mismo espacio de direcciones (la comunicacin entre hilos con diferente espacio en memoria es como una comunicacin entre procesos), las otras dos razones se aplican exactamente igual a los hilos, tanto que existen los mismos problemas y se emplean las mismas soluciones. 9.3.1 PROBLEMAS PROCESOS: EN LA COMUNICACIN ENTRE

9.3.1.1 CONDICIONES DE CARRERA: Se denomina condicin de carrera cuando dos o ms procesos estn leyendo o escribiendo al mismo tiempo sobre datos que estn siendo compartidos y el resultado que se obtendr depende de quien se ejecute en el momento ms importante ya que en estas condiciones un proceso puede invalidar la actividad que otro proceso tiene prevista. A veces un proceso tiene que acceder a memoria compartida o ficheros, o hacer otras tareas crticas que s pueden conducir a condiciones de carrera. 9.3.2 SOLUCIONES PARA LA COMUNICACIN ENTRE PROCESOS Para evitar las condiciones de carrera necesitamos una exclusin mutua, esto es, alguna manera de asegurar que si un proceso est utilizando una variable compartida (o fichero compartido) los dems procesos estarn excluidos de hacer uso de esa misma variable. La parte del programa donde se accede a la memoria compartida se denomina la regin crtica y si pudiramos

hacer que dos procesos a la vez no entren a esta regin critica, evitaramos las condiciones de carrera, para esto deben cumplirse cuatro condiciones: 1 Dos procesos no pueden estar simultneamente en sus regiones crtica 2 No se deben hacer suposiciones de velocidad o del numero de CPUs 3 Ningn proceso fuera de su regin crtica puede bloquear a otro proceso. 4 Ningn proceso debe esperar infinitamente para entrar a su regin crtica. 9.3.1.2 EXCLUSION MUTUA Examinaremos propuestas para conseguir la exclusin mutua, de manera que mientras un proceso est en su regin crtica ningn otro entre a su regin crtica, pero tambin se mencionaran sus desventajas. INHIBICION DE INTERRUPCIONES La solucin ms sencilla es hacer que cada proceso inhiba todas las interrupciones nada ms entrar en su regin crtica y que las rehabilite nada ms salir de ella, con esto se lograra que el procesador no pase de un proceso a otro. La inhibicin de interrupciones es til dentro del sistema, pero no apropiada para los procesos de usuario, ya que este, puede que inhiba las interrupciones pero se le puede olvidar activarlas y eso significara el final del sistema. VARIABLES CERROJO Otra opcin son las variables compartidas (variables cerrojo), cuyo valor inicial es 0. Cuando un proceso quiere entrar en su regin crtica, primero examina la variable, si est a 0, el proceso le cambia el valor a 1 y entra en la regin crtica, si est a 1 espera que vuelva a valer 0 Aunque aqu se puede dar la condicin de carrera ya que si lee la variable y esta vale 0, antes de que la cambie a 1, otro proceso lo interrumpe y tambin lo lee en 0 y este le cambia el valor a 1 y entra en su regin critica, luego el proceso anterior vuelve a su ejecucin y como ya la haba ledo en 0 no la vuelve a leer sino que escribe sobre el proceso que ya est en regin critica y este tambin entra a su regin critica y tendramos dos procesos en su regin critica. ALTERNANCIA ESTRICTA Esto trata de que dos procesos se turnen, pero no es una buena idea, porque puede que un proceso sea mucho ms lento que el otro, eso provocara que un proceso bloquee a otro cuando no est en su regin critica. SOLUCION DE PETERSON Esta es una combinacin de la idea de establecer turnos con la idea de las variables cerrojo pero tiene la desventaja de que encierra en los procesos dentro de las funciones en un bucle vacio hasta que pueda entrar a su regin critica y tambin existe el problema de la sobre escritura, anulando al primer proceso que escribi.

LA INSTRUCCIN TSL Esta solucin requiere de un poco de ayuda del hardware, esto funciona de la siguiente manera: un proceso invoca una funcin llamada entrar_en_region antes de entrar en su regin critica, haciendo que los dems procesos esperen hasta que quede libre el cerrojo, despus de ejecutarse el proceso llama a la funcin abandonar_funcion y libera el cerrojo ponindolo en 0, el proceso debe llamar a las funciones en los momentos adecuados para que los mtodos funcionen correctamente. Esta tiene la desventaja de encerrar al proceso en un bucle vacio, hasta que pueda entrar en su regin critica. DORMIR Y DESPERTAR (Sleep y Wakeup) Los dos mtodos anteriores no solo gastan tiempo de CPU (cuando no se les permite entrar en su regin critica y se quedan encerrados en un bucle vacio), sino que pueden tener efectos inesperados. Sleep es una llamada al sistema que bloquea al proceso hasta que proceso lo despierta, este mtodo no gasta tiempo de CPU, sino que bloque mientras estn esperando entrar a la regin critica. (Ejemplo) El problema del productor-consumidor: Dos procesos comparten un bfer de tamao fijo comn, uno de ellos (productor) mete informacin en este, el otro (consumidor), saca la informacin, el problema surge cuando el productor decide meter un elemento en el bfer cuando este ya est lleno, la solucin es que l productor se duerma hasta que el consumidor saque dos o ms elementos del bfer, igualmente si el consumidor quiere sacar un elemento y el bfer esta vacio este debe de dormirse hasta que el productor introduzca uno o ms elementos y lo despierte. Se ve sencillo pero produce el mismo tipo de condicin de carrera anterior. SEMAFOROS Este mtodo es parecido al anterior y est garantizado que una vez comienza una operacin sobre un semforo, ningn otro proceso puede acceder al semforo hasta que la operacin se completa o hasta que el proceso se bloquea. VARIABLES DE EXCLUSION MUTUA (mutex) 107-

9.4.

CONCLUSION:

También podría gustarte