Entradas

1.1. Definición y Concepto

Imagen
1.1. Definición y Concepto  Un sistema operativo es un conjunto de programas que permite manejar la memoria, disco, medios de almacenamiento de información y los diferentes periféricos o recursos de nuestra computadora, como son el teclado, el mouse, la impresora, la placa de red, entre otros. También el “S.O” es el software que coordina y dirige todos los servicios y aplicaciones que utiliza el usuario en una computadora, por eso es el más importante y fundamental. Se trata de programas que permiten y regulan los aspectos más básicos del sistema. Los sistemas operativos más utilizados son Windows, Linux, OS/2 y DOS. Dentro de las tareas que realiza el sistema operativo, en particular, se ocupa de gestionar la memoria de nuestro sistema y la carga de los diferentes programas, para ello cada programa tiene una prioridad o jerarquía y en función de la misma contará con los recursos de nuestro sistema por más tiempo que un programa de menor prioridad.

1.2. Funciones y características

Imagen
Funciones del sistema operativo Las principales funciones del sistema operativo tienen por objetivo administrar los diversos recursos que tiene el ordenador, entre los que destacan:                • Coordinar el funcionamiento del hardware.                • Gestionar la memoria principal del ordenador.                • Gestionar los procesos de almacenamiento de información.                • Organizar y administra archivos y documentos.                •    Administrar el algoritmo de programación del ordenador.                • Ejecutar diversas aplicaciones.                • A través de los drivers, gestiona la entrada y salida de los dispositivos     ...

1.3. Evolución Histórica

Imagen
1.3. Evolución Histórica  Primera Generación La primera máquina a la que se puede llamar un computador digital de propósito general fue diseñada por el matemático inglés Charles Babbage (1791-1871), quien diseñó una máquina mecánica digital (digital: capaz de trabajar con dígitos), conocida como la analytical engine, o máquina de Babbage. Si bien desarrolló todos los planos, nunca pudo terminar de construirla. Posteriormente al trabajo de Babbage, el desarrollo de máquinas programables quedó relegado al ámbito de la investigación científica, sin grandes aplicaciones prácticas. Como ha ocurrido con tantos otros inventos, fue el periodo de la Segunda Guerra Mundial el que vino a reimpulsar el interés en este tipo de máquinas. En 1944, un grupo de científicos en Bletchley Park, Inglaterra, entre los que se encontraba Alan Turing, construyó el computador Colossus, cuyo modelo más conocido, el Colossus Mark 2, utilizaba 2400 tubos de vacío. Este computador, si bien, tampoco er...

1.4. Clasificación

Imagen
 Los sistemas operativos se clasifican de la siguiente manera:           • ADMINISTRACIÓN DE TAREAS:                     MONOTAREA: los que permiten sólo ejecutar un programa a la vez                     MULTITAREA: los que permiten ejecutar varias tareas o programas al                 mismo tiempo           • ADMINISTRACIÓN DE USUARIOS                     MONOUSUARIO: aquellos que sólo permiten trabajar a un usuario,                     como es el caso de los ordenadores personales                     MULTIUSUARIO: los que permiten que varios usuarios ejecuten sus      ...

1.5. Estructura: niveles o estratos de diseño

Imagen
Estructuras: niveles o estratos de diseño El núcleo o kernel se divide en 5 capas o niveles: Nivel 1. Gestión de Memoria: Proporciona las facilidades de bajo nivel para la gestión de memoria secundaria necesaria para la ejecución de procesos. Nivel 2. Procesador: Se encarga de activar los cuantums de tiempo para cada uno de los procesos, creando interrupciones de hardware cuando no son respetadas. Nivel 3. Entrada/Salida: Proporciona las facilidades para poder utilizar los dispositivos de E/S requeridos por los procesos. Nivel 4. Información, Aplicación o Interprete de Lenguajes: Facilita la comunicación con los lenguajes y el sistema operativo para aceptar las ordenes en cada una de las aplicaciones. Ejecutando un programa el software de este nivel crea el ambiente de trabajo e invoca a los procesos correspondientes. Nivel 5. Control de Archivos: Proporciona la facilidad para el almacenamiento a largo plazo y manipulación de archivos con nombre, va asignando espacio y acceso de datos ...

1.6. Núcleo

 El Núcleo (o kernel) es una colección de módulos de software que se ejecutan en forma privilegiada –lo que significa que tienen acceso pleno a los recursos del sistema.  El núcleo normalmente representa sólo una pequeña parte de lo que por lo general se piensa que es todo el sistema operativo, pero es tal vez el código que más se utiliza. Por esta razón, el núcleo reside por lo regular en la memoria principal, mientras que otras partes del sistema operativo son cargadas en la memoria principal sólo cuando se necesitan.  Los núcleos se diseñan para realizar “el mínimo” posible de procesamiento en cada interrupción y dejar que el resto lo realice el proceso apropiado del sistema, que puede operar mientras el núcleo se habilita para atender otras interrupciones. El núcleo de un sistema operativo normalmente contiene el código necesario para realizar las siguientes funciones: • Manejo de interrupciones. • Creación y destrucción de procesos. • Cambio de estado de los procesos...

2.1. Concepto de Proceso

 Un proceso no es más que un programa en ejecución, e incluye los valores actuales del contador de programa, los registros y las variables. Conceptualmente cada uno de estos procesos tiene su propia CPU virtual. Desde luego, en la realidad la verdadera CPU conmuta de un proceso a otro. 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 ejecución 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.  Según diferentes medios de conceptos, un proceso es una secuencia de pasos dispuesta con algún tipo de lógica que se enfoca en lograr algún resultado específico. Esto es cierto, si hablamos de nuestro ordenador, todo programa abierto cuenta como proceso o tarea mientras se esté ejecutando, por ejemplo, el simple reproductor ...

2.2. Estados y Transiciones de los Procesos

Imagen
El principal trabajo del procesador es ejecutar las instrucciones de máquina 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 multiprogramación, el procesador intercalará la ejecución de instrucciones de varios programas que se encuentran en memoria. El sistema operativo es el responsable de determinar las pautas de intercalado y asignación de recursos a cada proceso. Aunque cada proceso se una entidad independiente, con su propio contador de programa y estado interno, los procesos a menudo necesitan interactuar con otros procesos. Un proceso podría generar ciertas salidas que otro proceso utilizan como entradas, en el comando de Shell.  Cuando un proceso se bloquea, lo que hace porque le es imposible continuar lógicamente, casi siempre porque está separando entrada...

2.3. Procesos Ligeros: Hilos o Hebras

Imagen
El concepto de proceso engloba dos conceptos separados y potencialmente independientes: uno relativo a la propiedad de recursos y otro que hace referencia a la ejecución. Unidad que posee recursos: A un proceso se le asigna un espacio de memoria y, de tanto en tanto, se le puede asignar otros recursos como dispositivos de E/S o ficheros. Unidad a la que se le asigna el procesador: Un proceso es un flujo de ejecución (una traza) a través de uno o más programas. Esta ejecución se entremezcla con la de otros procesos. De tal forma, que un proceso tiene un estado (en ejecución, listo, etc.) y una prioridad de expedición u origen. La unidad planificada y expedida por el sistema operativo es el proceso. En la mayoría de los sistemas operativos, estas dos características son, de hecho, la esencia de un proceso. Sin embargo, son independientes, y pueden ser tratadas como tales por el sistema operativo. Esta distinción ha conducido en los sistemas operativos actuales a desarrollar la cons...

2.4. Concurrencia y Secuencialidad

Imagen
CONCURRENCIA: La concurrencia comprende un gran número de cuestiones de diseño, incluyendo la comunicación entre procesos, comparación y competencia por los recursos, sincronización de la ejecución de varios procesos y asignación del tiempo de procesador a los procesos y es fundamental para que existan diseños como Multiprogramación, Multiproceso y Proceso distribuido. Los procesos son concurrentes si existen simultáneamente. Los procesos concurrentes pueden funcionar en forma totalmente independiente unos de otros, o pueden ser asíncronos, lo cual significa que en ocasiones requieren cierta sincronización o cooperación. La concurrencia puede presentarse en tres contextos diferentes: •        Varias aplicaciones: La multiprogramación se creó para permitir que el tiempo de procesador de la máquina fuese compartido dinámicamente entre varios trabajos o aplicaciones activas. •        Aplicaciones estructuradas: Como am...