sábado, 2 de abril de 2016

Teoría de Sistemas Operativos - Unidad 1 (Fundamentos Teóricos)

Fundamentos Teóricos Definición de S. O. Un sistema operativo (SO o, frecuentemente, OS —del inglés Operating System—) es un programa o conjunto de programas de un sistema informático que gestiona los recursos de hardware y provee servicios a los programas de aplicación de software, ejecutándose en modo privilegiado respecto de los restantes (aunque puede que parte de él se ejecute en espacio de usuario) (para mejor referencia, click AQUÍ) Generaciones de S. O.
Clasificacion de S. O. Administración de tareas Monotarea: Solamente permite ejecutar un proceso (aparte de los procesos del propio SO) en un momento dado. Una vez que empieza a ejecutar un proceso, continuará haciéndolo hasta su finalización y/o interrupción. Multitarea: Es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de SO normalmente asigna los recursos disponibles (CPU, memoria, periféricos) de forma alternada a los procesos que los solicitan, de manera que el usuario percibe que todos funcionan a la vez, de forma concurrente. Administración de usuarios Monousuario: Sólo permite ejecutar los programas de un usuario al mismo tiempo. Multiusuario: Permite que varios usuarios ejecuten simultáneamente sus programas, accediendo a la vez a los recursos de la computadora. Normalmente estos sistemas operativos utilizan métodos de protección de datos, de manera que un programa no pueda usar o cambiar los datos de otro usuario. Manejo de recursos Centralizado: Permite usar los recursos de una sola computadora. Distribuido: Permite utilizar los recursos (memoria, CPU, disco, periféricos...) de más de una computadora al mismo tiempo.
S. O. como Máquina Extendida
Definición de Proceso Un proceso puede informalmente entenderse como un programa en ejecución. Formalmente un proceso es "Una unidad de actividad que se caracteriza por la ejecución de una secuencia de instrucciones, un estado actual, y un conjunto de recursos del sistema asociados".1 Para entender lo que es un proceso y la diferencia entre un programa y un proceso, A. S. Tanenbaum propone la analogía "Un científico computacional con mente culinaria hornea un pastel de cumpleaños para su hija; tiene la receta para un pastel de cumpleaños y una cocina bien equipada con todos los ingredientes necesarios, harina, huevo, azúcar, leche, etcétera." Situando cada parte de la analogía se puede decir que la receta representa el programa (el algoritmo), el científico computacional es el procesador y los ingredientes son las entradas del programa. El proceso es la actividad que consiste en que el científico computacional vaya leyendo la receta, obteniendo los ingredientes y horneando el pastel. Procesos concurrentes o Concurrencia de procesos La concurrencia de procesos se refiere a las situaciones en las que dos o más procesos puedan coincidir en el acceso a un recurso compartido o, dicho de otra forma, que requieran coordinarse en su ejecución. Para evitar dicha coincidencia, el sistema operativo ofrece mecanismos de arbitraje que permiten coordinar la ejecución de los procesos. (información extra AQUÍ) Procesamiento Paralelo La computación paralela es una forma de cómputo en la que muchas instrucciones se ejecutan simultáneamente, operando sobre el principio de que problemas grandes, a menudo se pueden dividir en unos más pequeños, que luego son resueltos simultáneamente (en paralelo). Hay varias formas diferentes de computación paralela: paralelismo a nivel de bit, paralelismo a nivel de instrucción, paralelismo de datos y paralelismo de tareas. El paralelismo se ha empleado durante muchos años, sobre todo en la computación de altas prestaciones, pero el interés en ella ha crecido últimamente debido a las limitaciones físicas que impiden el aumento de la frecuencia. Como el consumo de energía —y por consiguiente la generación de calor— de las computadoras constituye una preocupación en los últimos años, la computación en paralelo se ha convertido en el paradigma dominante en la arquitectura de computadores, principalmente en forma de procesadores multinúcleo. (Referencia AQUI) Procesamiento Semáforo Un semáforo es una variable especial (o tipo abstracto de datos) que constituye el método clásico para restringir o permitir el acceso a recursos compartidos (por ejemplo, un recurso de almacenamiento del sistema o variables del código fuente) en un entorno de multiprocesamiento (en el que se ejecutarán varios procesos concurrentemente). Fueron inventados por Edsger Dijkstra en 1965 y se usaron por primera vez en el sistema operativo THEOS Procesamiento monitor El proceso monitorio es un procedimiento especial que tiene por objeto la resolución rápida de conflictos jurídicos en los que no existe contradicción. Es un procedimiento rápido y sencillo cuya finalidad es conceder cuanto antes al demandante un título ejecutivo en aquellos juicios en los que el demandado no se opone formalmente a la demanda. Nació para combatir los problemas de impagados que se producen en un elevado porcentaje de transacciones comerciales. Resulta especialmente útil para los pequeños y medianos empresarios, así como para todos los profesionales que necesitan disponer de un mecanismo rápido y sencillo para el cobro de sus deudas. Asimismo, resulta muy práctico para el cobro a los propietarios morosos de sus deudas con la comunidad de que forman parte. Una ventaja añadida de este tipo de procedimiento es que la petición inicial que se dirige al Juzgado no requiere la intervención de abogado ni procurador, lo que redunda en un ahorro de costes para el acreedor Interbloqueo En sistemas operativos, el bloqueo mutuo (también conocido como interbloqueo, traba mortal, deadlock, abrazo mortal) es el bloqueo permanente de un conjunto de procesos o hilos de ejecución en un sistema concurrente que compiten por recursos del sistema o bien se comunican entre ellos. A diferencia de otros problemas de concurrencia de procesos, no existe una solución general para los interbloqueos. Todos los interbloqueos surgen de necesidades que no pueden ser satisfechas, por parte de dos o más procesos. En la vida real, un ejemplo puede ser el de dos niños que intentan jugar al arco y flecha, uno toma el arco, el otro la flecha. Ninguno puede jugar hasta que alguno libere lo que tomó. (referencia AQUI) Administración del Procesador El administrador del procesador está compuesto por dos sub-administradores. Se conocen como el planificador de trabajos y el planificador de procesos. Cada trabajo o programa pasa a través de una jerarquía de administradores. El primero que encuentra es el planificador de trabajos, también se conoce como planificador de alto nivel. Este sub-administrador sólo se ocupa de elegir los trabajos de una cola de trabajos que llegan y colocarlas en la cola de procesos con base en las características de cada uno. Su meta es mantener ocupada la mayor parte de los componentes del sistema de la computadora la mayor parte del tiempo. Después que el planificador de trabajos pone un trabajo en la cola de listo, el planificador de procesos se hace cargo. Define qué trabajos tendrán derecho al CPU, cuándo y cuánto tiempo. También decide cuándo debe interrumpirse el procesamiento, determina a qué colas se debe pasar el trabajo durante su ejecución y reconoce cuándo ha concluido un trabajo y ya no hay necesidad de seguir procesándolo. Este sub-administrador es un planificador de bajo nivel que asigna el CPU para ejecutar los procesos de los trabajos que el planificador de trabajos ha colocado en la cola de listo. En un entorno muy interactivo existe un tercer nivel del administrador del procesador, conocido como planificador de nivel medio. En algunos casos, en especial cuando el sistema está sobrecargado, el planificador de nivel medio encuentra ventajoso retirar trabajos activos de la memoria para reducir el grado de multiprogramación, y por lo tanto, permitir que los trabajos se completen más aprisa. Este sub-administrador controla los trabajos que se intercambian hacia afuera y de regreso. (referencia AQUI) Administración de Memoria La gestión de memoria o administración de memoria es el acto de gestionar la memoria de un dispositivo informático. El proceso de asignación de memoria a los programas que la solicitan.1 La gestión de la memoria principal de una computadora es una tarea de suma importancia para el funcionamiento de la misma. Los sistemas de memoria virtual separan las direcciones de memoria utilizadas por un proceso de las direcciones físicas reales, permitiendo la separación de procesos e incrementando la cantidad efectiva de memoria de acceso aleatorio utilizando la paginación. La calidad de la gestión de la memoria es crucial para las prestaciones del sistema. El recolector de basura es la asignación y liberación automática de los recursos de memoria para un programa. La implementación suele ser a nivel del lenguaje de programación en contraposición a la gestión manual de memoria, que asigna y libera los recursos de memoria de una computadora de forma explícita. La administración de memoria se refiere a los distintos métodos y operaciones que se encargan de obtener la máxima utilidad de la memoria, organizando los procesos y programas que se ejecutan de manera tal que se aproveche de la mejor manera posible el espacio disponible. Para poder lograrlo, la operación principal que realiza es trasladar la información que deberá ser ejecutada por la unidad central de procesamiento o procesador, a la memoria principal. Actualmente esta administración se conoce como memoria virtual, porque no es la memoria física del procesador sino una memoria virtual que la representa. Entre algunas ventajas, esta memoria permite que el sistema cuente con una memoria más extensa teniendo la misma memoria real, por lo que esta se puede utilizar de manera más eficiente. Y por supuesto, que los programas que son utilizados no ocupen lugar innecesario. (referencia AQUI)
ALMACENAMIENTO VIRTUAL Definición: La memoria virtual es una técnica de administración de la memoria real que permite al sistema operativo brindarle al software de usuario y a sí mismo un espacio de direcciones mayor que la memoria real o física. La mayoría de los ordenadores tienen cuatro tipos de memoria: registros en la CPU, la memoria caché (tanto dentro como fuera del CPU), la memoria física (generalmente en forma de RAM, donde la CPU puede escribir y leer directa y razonablemente rápido) y el disco duro que es mucho más lento, pero también más grande y barato. (referencia AQUI)
Almacenamiento secundario La gestión de procesos podría ser similar al trabajo de oficina. Se puede tener una lista de tareas a realizar y a estas fijarles prioridades alta, media, baja por ejemplo. Debemos comenzar haciendo las tareas de prioridad alta primero y cuando se terminen seguir con las de prioridad media y después las de baja. Una vez realizada la tarea se tacha. Esto puede traer un problema que las tareas de baja prioridad pueden que nunca lleguen a ejecutarse y permanezcan en la lista para siempre. Para solucionar esto, se puede asignar alta prioridad a las tareas más antiguas. Un sistema de almacenamiento secundario es necesario, ya que la memoria principal (almacenamiento primario) es volátil y además muy pequeña para almacenar todos los programas y datos. También es necesario mantener los datos que no convenga mantener en la memoria principal. a) Planificar los discos. b) Gestionar el espacio libre. c) Asignar el almacenamiento. d) Verificar que los datos se guarden en orden. El almacenamiento secundario (memoria secundaria, memoria auxiliar o memoria externa) no es el conjunto de dispositivos (aparatos) y medios (soportes) de almacenamiento, que conforman el subsistema de memoria de una computadora, junto a la memoria principal. No deben confundirse las "unidades o dispositivos de almacenamiento" con los "medios o soportes de almacenamiento", pues los primeros son los aparatos que leen o escriben los datos almacenados en los soportes. La memoria secundaria es un tipo de almacenamiento masivo y permanente (no volátil), a diferencia de la memoria RAM que es volátil; pero posee mayor capacidad de memoria que la memoria principal, aunque es más lenta que ésta. El proceso de transferencia de datos a un equipo de cómputo se le llama "procedimiento de lectura". El proceso de transferencia de datos desde la computadora hacia el almacenamiento se denomina "procedimiento de escritura". En la actualidad para almacenar información se usan principalmente tres 'tecnologías': Magnética (ej. disco duro, disquete, cintas magnéticas); — Óptica (ej. CD, DVD, etc.) Algunos dispositivos combinan ambas tecnologías, es decir, son dispositivos de almacenamiento híbridos, por ej., discos Zip. — Memoria Flash (Tarjetas de Memorias Flash y Unidades de Estado sólido SSD). (referencia AQUI)

No hay comentarios:

Publicar un comentario