Sistemas Informáticos y Sistemas Operativos: Componentes, Arquitectura y Funcionamiento

1. Estructura de un Sistema Informático

La informática es el conjunto de conocimientos científicos y técnicas que hacen posible el tratamiento automático de la información por medio de los ordenadores.

Un ordenador es una máquina electrónica dotada de una memoria de gran capacidad y de métodos de tratamiento de la información, capaz de resolver problemas aritméticos y lógicos gracias a la utilización automática de programas registrados en ella. Formará parte del hardware o componentes físicos encargados de tratar la información.

Un programa informático es el conjunto de instrucciones que ha de ejecutar un ordenador para realizar una tarea dada. Un programa es una secuencia de instrucciones u órdenes que permiten a un ordenador procesar una información conocida como datos de entrada (input) para producir una información de salida (output) o resultados.

Un lenguaje de programación es el lenguaje en el que está escrito un programa. Formará parte del software o componente lógico encargado de procesar la información.

Podemos considerar un Sistema Informático (S.I.) a un conjunto de elementos interconectados o relacionados para el tratamiento de información. El más básico es un solo ordenador que, recibiendo datos del exterior y mediante un programa informático almacenado en su memoria, procesará los datos para emitir unos resultados. Otros S.I. más complejos son las redes (varios ordenadores conectados entre sí). Sin la intervención humana, el sistema informático no podría operar, ya que necesita de personas que lo manejen, diseñen, implanten y exploten.

Las computadoras se pueden clasificar como:

  • De uso general: ejecutan todo tipo de aplicaciones.
  • De uso específico: ejecutan aplicaciones con un único propósito de servicio.
  • Supercomputadora: procesan grandes cantidades de información en poco tiempo.
  • Minicomputadoras: se encuentran entre los mainframes y las estaciones de trabajo, permiten el multiproceso (varios procesos a la vez o en paralelo) y pueden soportar hasta unos 200 usuarios a la vez. Se utilizan para almacenamiento de información como bases de datos y para aplicaciones multiusuario en red, como servidores de pequeñas redes.
  • Microcomputadoras o computadores personales (PC): son ordenadores de uso profesional o personal, pueden ser de sobremesa o portátil. Cuando se conectan a una red, actúan con un software con función de estación de trabajo dentro de una LAN (red de área local).

2. Arquitectura de un Sistema Operativo

El Sistema Operativo actúa como gestor de estos recursos y los asigna a programas y usuarios específicos, según las necesidades, para que realicen sus tareas. En resumen, es una interfaz entre la máquina y el usuario.

Un sistema operativo (S.O.) o software de base consiste en un software formado por un conjunto de programas que sirve para controlar e interactuar con el sistema, proporcionando control sobre el hardware (administración de dispositivos) y dando soporte a otros programas como los que forman el llamado software de aplicación.

Por destacar algunas de las tareas que realiza, son:

  • La administración de los dispositivos periféricos.
  • Control de temperatura del microprocesador.
  • Se encarga de la transferencia de datos entre la memoria principal y los dispositivos de almacenamiento.

Objetivos de un S.O.:

  • Comodidad: un S.O., por medio de la interfaz, hace que el ordenador sea más fácil de utilizar por el usuario.
  • Eficiencia: un S.O. gestiona los recursos para que se aprovechen de una manera más eficaz.
  • Evolución: un S.O. debe ser capaz de evolucionar, de forma que permita añadir nuevas funciones al sistema sin interferir en los servicios que brinda. Para admitir nuevo hardware y actualizaciones existentes, nuevos servicios y corregir fallos.

Evolución de los S.O.

  • Procesos en serie (Años 40-50 – Transistores): El trabajo en ejecución tenía el control total de la máquina y no se comenzaba otro trabajo hasta que el primero terminaba u ocurría algún error.
  • S.O. interactivos (1965 a 1980 – Circuitos integrados): El S.O. ofrece al usuario la posibilidad de comunicarse con el ordenador. Avances importantes son: multiprogramación, multiproceso, tiempo compartido y el desarrollo del sistema de ficheros que protege más a los datos.
  • Interrupción: es una señal que se envía al procesador mediante la cual la memoria o los dispositivos pueden interrumpir la ejecución del trabajo del procesador. Mediante las interrupciones, el S.O.
  • Multiprogramación y Multiproceso:
    • Multiprogramación: es la capacidad del procesador de ejecutar varios programas a la vez. Los programas residían en memoria y solo uno de ellos era ejecutado por la CPU.
    • Multiproceso: son sistemas con varios procesadores en un único ordenador (compartiendo memoria y periféricos).

Modelos de S.O.

  • Monolítico: el sistema está constituido por un único programa compuesto de múltiples rutinas o subprogramas que pueden ser llamadas unas a otras, ya que cualquier procedimiento puede invocar a otro.
  • Capas: está constituido por una serie de capas o anillos que se comunican entre sí atendiendo a las funciones que puede realizar. El sistema operativo consta de una estructura que parte de una capa núcleo que tiene relación con el hardware y se va completando en capas, de modo que cada capa suministra servicio a la capa siguiente.
  • Máquinas virtuales: permite emular mediante software sistemas operativos, una máquina o una red de computadora. El software emulador traduce las peticiones hechas a la máquina virtual en operaciones sobre la máquina real.
  • Cliente/servidor: según este modelo, el S.O. se organiza como un conjunto de módulos autónomos, cada uno de los cuales tiene a disposición del resto una serie de servicios. Cada módulo actúa como un servidor de ciertas funcionalidades, que atiende las peticiones de otros módulos y que, a su vez, puede ser cliente de otros módulos.
  • Micronúcleos: se constituye de un núcleo que brinda un manejo mínimo de procesos, memoria y, además, provee de una capa de comunicación entre procesos. La capa de comunicación es la funcionalidad principal del sistema.

2.1. Componentes de un Sistema Operativo

El Kernel o núcleo es un programa multihebra o multihilo que reside permanentemente en memoria. Se encarga principalmente de controlar la CPU, es decir, gestionar el procesador.

  • Utilidades para la gestión de memoria: se encarga de administrar la memoria para los procesos y programas, repartiendo la memoria disponible entre los distintos procesos.
  • Utilidades para la gestión de procesos: controla los procesos en ejecución en tareas como inicio, parada, coordinación, la creación y destrucción de procesos, intercambio, detección y arranque de mensajes.
  • Utilidades para la gestión de E/S a disco: gestiona la comunicación entre dispositivos que se encargan de la E/S de la información y de su almacenamiento en función de los dispositivos existentes.
  • Utilidades para la gestión de ficheros y de la información: cuyo objetivo es el de controlar los archivos para mantener una correcta organización dentro y fuera del sistema, realizando tareas como la asignación de nombres, permisos, atributos, etc. a los ficheros y programas.
  • Interfaz de usuario o Shell: encargados de permitir al usuario la comunicación con el sistema por medio de entornos gráficos o de texto mediante una línea de entrada de comandos.

2.1.1. Núcleo de los Sistemas Operativos

  • La comunicación entre los programas informáticos y el hardware. Responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o, en forma más básica.
  • Gestión de las distintas tareas o procesos de una máquina. Como hay muchos programas y el acceso al hardware es limitado, el núcleo también se encarga de decidir qué programa podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo.
  • Gestión del hardware (memoria, procesador, periférico, forma de almacenamiento, etc.). Es el encargado de gestionar recursos, a través de servicios de llamada al sistema.
  • Los núcleos garantizan la carga y la ejecución de los procesos mediante el módulo llamado cargador, responsable de cargar programas en memoria. Se carga al iniciar el sistema y permanece en memoria hasta que el sistema se apaga.

2.1.2. Programas de Utilidad de un Sistema Operativo. Intérprete de Comandos o Shell

  • La gestión de procesos o programas que se ejecutan mediante las tareas de crear, eliminar, detener, reanudar, comunicación y sincronización en el uso de la CPU, memoria y dispositivos de la máquina.
  • El control de las direcciones de la memoria principal donde se almacenan los procesos y datos en ejecución, controlando los espacios de memoria libre y utilizada, tablas de localización de una información concreta, etc.
  • La gestión del sistema de entrada/salida de datos y ficheros, realizando tareas como el mantenimiento de datos en almacenamiento secundario o externo con una planificación de los diferentes volúmenes de discos.
  • La gestión del sistema de archivos, permitiendo la organización relacionada del almacenamiento de los datos y ficheros mediante la asignación de unidades y directorios.

3. Funciones o Servicios de un Sistema Operativo

  • Interfaces del usuario: es la parte del sistema operativo que permite comunicarse con él, de tal manera que se puedan cargar programas, acceder a archivos y realizar otras tareas.
  • Administración de recursos: sirven para administrar los recursos de hardware y de redes de un sistema informático, como la CPU, memoria, dispositivos de almacenamiento secundario y periféricos de entrada y de salida.
  • Administración de archivos: un sistema de información contiene programas de administración de archivos que controlan la creación, borrado y acceso de archivos de datos y de programas.
  • Administración de tareas o control de la ejecución de programas: acepta los trabajos, administra cómo se realizan y les asigna recursos. Los programas de administración de tareas de un sistema operativo administran la realización de las tareas informáticas de los usuarios finales.
  • Servicios de soporte o actualización del sistema: los servicios de soporte de cada sistema operativo dependerán de la implementación particular de este con la que estemos trabajando.
  • Control de seguridad: proporciona seguridad para la información almacenada y los usuarios del sistema, realizando una gestión de permisos y de usuarios para evitar conflictos entre los distintos trabajos.

3.1. Controlar los Procesos

Un proceso es un programa o tarea en ejecución al cual el S.O. asignará recursos y controlará su ejecución. Se denomina hilo o hebra a un punto de ejecución de un proceso. Cada proceso está formado por órdenes o instrucciones que se cargan en memoria para su ejecución. En su almacenamiento en memoria se crea una estructura de datos que sirve para identificar cada proceso y permite controlar los aspectos de su ejecución, denominada bloque de control de proceso.

La información que nos aporta el sistema en la estructura de bloque de datos generada para cada proceso es:

  • Estado del proceso: puede presentar los siguientes estados:
    • Preparado o listo: se encuentran todas las tareas que están listas para ejecutarse, pero que esperan a que el procesador quede libre, ya que hay otros procesos más prioritarios en ejecución. Posteriormente, al proceso se le asigna un nuevo intervalo de tiempo y tomará posesión del procesador al envío de una señal.
    • Ejecución o activo: cuando el proceso recibe alguna señal para continuar ejecutándose. En el caso de sistemas con un único procesador, solo puede haber un proceso en dicho estado en un instante dado. El tiempo de uso del microprocesador se reparte entre todos los procesos cargados, de manera que el usuario cree que se están ejecutando varias tareas a la vez. Sin embargo, en un tiempo dado solamente se ejecuta una.
    • Bloqueado o suspendido: sucede cuando el proceso ha agotado su tiempo de ejecución y debe dejar paso al siguiente proceso. Los procesos están a la espera de que se cumpla alguna condición o recibir una señal para reanudar la ejecución.
    • Muerto: un proceso está en este estado cuando ha terminado su ejecución de manera correcta o porque se ha producido un error en su ejecución.
    • Nonato o ignorado: el proceso existe, pero todavía no es conocido por el S.O.
  • Código de identificación del proceso o PID.
  • Valor de prioridad a la hora de asignar los recursos del sistema.
  • Direcciones o zona de memoria asignada.
  • El estado del hardware.

Funciones y objetivos del planificador:

  • Equidad: al asignar el tiempo de utilización del procesador de la forma más justa posible.
  • Eficiencia: dar servicio al número máximo posible de procesos para conseguir que el procesador esté ocupado el mayor tiempo posible.
  • Tiempo de respuesta bajo: garantizar buenos tiempos de respuesta a los usuarios mediante la disposición de recursos suficientes cuando son necesarios.
  • Alto rendimiento: al maximizar el número de procesos que se ejecutan en un periodo de tiempo, activando los procesos que están en el estado preparado.

Como algoritmos de planificación podemos destacar:

  • FIFO (First In First Out) o FCFS: los procesos se ejecutan según su orden de llegada (primero en llegar es el primero en ejecutar). El primero en entrar no libera los recursos hasta que no termina. Es el más sencillo, pero el más ineficaz por su menor rendimiento.
  • Algoritmo de rueda (Round-Robin) o RR (prioridad circular): asigna secuencialmente el mismo tiempo de ejecución (quantum o cuanto) a los diferentes procesos en forma rotatoria.
  • Algoritmo por prioridades: asigna los tiempos de ejecución según una lista de prioridades. Es lógico pensar que hay procesos más prioritarios que otros.
  • Algoritmo SJF (primera tarea más corta): el trabajo más corto se ejecuta primero.

Medidas o valores para evaluar los algoritmos de planificación son:

  • Tiempo o ráfaga de uso de la CPU.
  • Productividad (P).
  • Tiempo o ráfaga de regreso o finalización (TF).
  • Tiempo de espera (E).
  • Tiempo de servicio.

Bloque de Control de Proceso (BCP), que le acompaña durante toda su vida.

En este BCP se recogen datos del proceso como son:

  • Su estado actual.
  • Su PID (número identificador de proceso).
  • Valores de registros asociados a él, como el contador de programa, los punteros, acumuladores, etc.
  • Valores de los recursos asignados: espacio en memoria, archivos, E/S, etc.

Este hecho da lugar a diferentes tipos de procesos:

  • Independientes: no se comunican con otros procesos. Estos tipos de procesos apenas existen.
  • Cooperativos: se comunican y sincronizan para realizar una actividad común.
  • Competitivos: necesitan hacer uso del mismo recurso y, por consiguiente, competirán por él.

Estados de un proceso

  • Nuevo (new): momento en el que se está creando el proceso.
  • Preparado (ready): está esperando a que se le asigne la CPU (un procesador).
  • En ejecución (running): se está ejecutando en la CPU.
  • Bloqueado o en espera (waiting): está a la espera de que suceda un evento.
  • Terminado (terminated): finaliza su ejecución. Muere.

Creación de procesos. La creación de un proceso se hace a través de la llamada al sistema «crear proceso» desde otro proceso denominado proceso padre. El proceso resultante se denomina proceso hijo y es prácticamente una réplica de su padre.

Terminación de procesos. Los procesos hijo pueden ser eliminados cuando el proceso padre quiera. Esto se denomina matar un proceso y es habitual cuando:

  • El hijo se excede en el uso de los recursos asignados.
  • La tarea que se asignó al hijo ya no se necesita.
  • El proceso padre quiere terminar y el sistema operativo no permite que los hijos continúen sin el padre.

Se pueden dar anomalías en la gestión de los procesos:

  • Procesos huérfanos: se denominan así a los procesos que quedan en el sistema cuando su padre ha finalizado. Cuando esto sucede, el PPID del proceso (para sistemas UNIX) pasa a ser el PID del proceso inicial.
  • Procesos zombies: son procesos que han finalizado, pero su padre los mantiene como vivos. Este tipo de procesos suelen ser fruto de errores de programación o de fallos del sistema.

Planificación de Procesos II

La misión del planificador es:

  • Garantizar que cada proceso tiene acceso al recurso en su justa medida.
  • Explotar el recurso, manteniéndolo ocupado el máximo tiempo posible.
  • Reducir todo lo posible los tiempos de espera de los diferentes procesos.
  • Política no expropiativa: una vez que el proceso accede al recurso, se permite que haga uso de él hasta que ya no lo necesite.
  • Política expropiativa: se proporciona acceso al recurso para un proceso, pero, en un determinado momento, se puede ceder el recurso a otro proceso diferente, para lo cual se le retirará el acceso al primero.

Niveles de planificación:

  • Planificación a largo plazo (nivel alto): llamada también «planificación de admisión», ya que es la que determina qué trabajos se admiten para su procesamiento y, por consiguiente, se cargan en memoria.
  • Planificación a medio plazo (nivel medio): gestiona el estado de suspensión de los procesos. Esta operación recibe el nombre de intercambio (o swapping). Es muy típica en sistemas Linux, donde incluso existe una partición específica para este fin.
  • Planificación a corto plazo (nivel bajo): también llamada despachador (dispatcher). Estipula qué procesos en estado preparado pasarán a ejecución. Debe ser una planificación sencilla y breve, ya que se ejecutará muchas veces.

Algoritmos de planificación.

  • Algoritmo FCFS (First Come First Served): utiliza una estructura de cola en la que los procesos se ejecutan según entran en ella. Aquí, los procesos demasiado largos harían esperar al resto de procesos hasta que termine de ejecutarse.
  • Algoritmo SJF (Shortest Job First): intenta reparar el problema de FCFS, pero, en este caso, los procesos largos se ven desfavorecidos y pueden retrasarse en su ejecución continuamente. Una vez que el proceso entra en ejecución, se ejecuta por completo, aunque haya en cola procesos más cortos.
  • Algoritmo SRT (Shortest Remaining Time): es una versión expropiativa de SJF, donde se tiene en cuenta también los procesos de la cola. En el caso de que existan procesos en cola más cortos, se expropia el proceso en ejecución y se ejecutaría el de la cola.
  • Algoritmo RR (Round Robin): utiliza una organización en cola circular: los procesos se ejecutan en cola y cuando acaba el último se sigue con el primero. A cada proceso se le asigna un tiempo de uso de CPU denominado cuanto.

Hilos de ejecución.

Un hilo es la parte de un proceso que puede ser ejecutada de forma independiente.

Trabajar a nivel de hilos tiene grandes ventajas sobre hacerlo a nivel de procesos:

  • Al tratarse de entidades mucho más ligeras, los tiempos empleados para su manejo (creación, terminación, cambio de estado y de contexto) son mucho menores respecto a los procesos.
  • El tiempo para crear un hilo es mucho menor que para crear un proceso.

Interrupciones y excepciones.

Las interrupciones pueden darse a dos niveles:

  • Nivel de software: el usuario realiza una llamada al sistema (para hacer uso de un recurso del núcleo).
  • Nivel de hardware: un dispositivo (hardware) requiere la atención de la CPU para ejecutar su driver.

Excepción.

La excepción es un tipo de interrupción provocada por la propia CPU a causa de un error en la ejecución del proceso en activo, como puede ser la realización de operaciones no permitidas, códigos de operación mal expresados, direcciones de memoria fuera de rango, etc.

Demonios. Existe un tipo muy particular de proceso que recibe el nombre de demonio. Un demonio es un proceso que se ejecuta en segundo plano sin necesidad alguna de interacción con el usuario para llevar a cabo su tarea.

Inicio del Sistema

  • a) Secuencia previa al inicio: comienza cuando se enciende el equipo, antes de que se inicie el sistema operativo, y en ella tiene lugar el POST y el paso a la carga y ejecución del MBR.
  • b) Secuencia de inicio: se ejecuta el gestor de arranque y se seleccionará el S.O. (en el caso de que hubiera más de un S.O. instalado en el equipo) para iniciar. Posteriormente, se hará una detección del hardware instalado.
  • c) Secuencia de carga del núcleo: se invoca al archivo WINLOAD.EXE para que cargue el archivo NTOSKRNL.EXE, que está considerado como el núcleo del S.O. También se carga el archivo HAL.DLL, capa intermedia entre el núcleo de Windows y el hardware.
  • d) Secuencia de inicio del núcleo: coincide con la aparición del logotipo de Windows. Realmente, durante este tiempo se llevan a cabo varias tareas, entre las que destacamos la creación de la clave HARDWARE en el registro con los datos recogidos en la fase de detección de hardware y la inicialización de los servicios y de los controladores de dispositivos.
  • e) Secuencia de inicio de sesión: WINLOGON inicia la autoridad de seguridad local (LSASS.EXE), momento en el que aparece la pantalla de identificación de usuario (según esté configurada).

3.2. Controlar y Gestionar la Memoria (Según su Función)

  • Memoria interna: que podemos clasificar en:
    • Memoria principal o central: se encarga de almacenar los programas y los datos que ejecutará el ordenador.
    • Memoria caché: proporciona una gran velocidad de acceso para acelerar el rendimiento del sistema.
    • Memoria de registros: pequeñas direcciones de memoria temporales que guardan los datos en el momento en el que son objeto de procesamiento. Son mucho más rápidos que la caché, pero disponen de una mínima capacidad de almacenamiento.
  • Memoria externa o secundaria: es aquella que se emplea como almacenamiento pasivo en un dispositivo periférico como un disco duro, CD, etc.

Según su posibilidad de acceso:

  • RAM (Random Access Memory): memoria de acceso aleatorio. Es volátil. Cuando se interrumpe la alimentación, la RAM pierde su contenido. Según su funcionamiento, se distinguen dos tipos:
    • SRAM o RAM Estática.
    • DRAM o RAM Dinámica.
  • ROM (Read Only Memory): memoria de solo lectura, ya que podemos leer su contenido, pero no escribirlo. La información que contiene la ROM se escribe en el momento de su fabricación y, a partir de entonces, ya no puede cambiarse.

Técnicas de administración de la memoria

  • Memoria Virtual: para que un programa pueda ejecutarse, tiene que estar cargado en memoria real. La necesidad cada vez mayor de ejecutar programas grandes y la aparición de CPU más potentes empujaron a los diseñadores de S.O. a implantar un mecanismo para ejecutar automáticamente programas más grandes que la memoria real disponible, esto es, de ofrecer memoria virtual. Si lo que intercambia son procesos enteros, se habla entonces de multiprogramación en memoria real, pero si lo que se intercambian son segmentos o páginas, se puede hablar de multiprogramación con memoria virtual.
  • Swapping: es una técnica similar a la memoria virtual. Cuando varios usuarios están ejecutando procesos en un mismo ordenador, este los carga en la RAM. Según el estado en el que esté el proceso de cada usuario, la memoria se irá liberando o no. Si un usuario interrumpe por un instante la ejecución de un proceso, pasará a la zona de SWAP mediante la técnica llamada swap-out, liberándose la memoria interna para que pueda alojarse otro proceso del mismo u otro usuario o de otro. Si el usuario vuelve a solicitar su proceso para seguir ejecutándolo, se produce el swap-in, que consiste en pasar el programa de la zona de swap a la memoria interna.
  • Paginación: método que consiste en dividir la memoria física en zonas de tamaño fijo llamadas frames o tramas y los programas o espacio lógico en partes del mismo tamaño llamadas páginas.
  • Segmentación: técnica similar a la paginación, pero definiendo los bloques de memoria de tamaño variable. La información lógica del proceso se divide en distintos bloques lógicos denominados segmentos, donde cada segmento tiene información lógica del programa (datos y código) y de pila (stack).

3.3. Controlar los Dispositivos Periféricos. Clasificación de Periféricos

Los periféricos de entrada/salida son dispositivos hardware que, junto con los soportes, se encargan de almacenar, leer datos y programas que serán procesados por el sistema.

Para conectar los dispositivos periféricos al ordenador, se utilizan conectores denominados slots y puertos.

Cuando se realiza el acceso a un dispositivo, se hace a través de su parte electrónica llamada controladora física de dispositivo y mediante el software denominado driver o controlador lógico, que es el encargado de traducir las órdenes dadas por el S.O. al dispositivo, es decir, es el encargado de indicar los comandos que tiene que ejecutar y verificar que se ejecuten de forma adecuada.

Los denominados interfaces de comunicación pueden ser:

  • Interfaz tipo texto: todas las órdenes que el usuario introduzca y las respuestas que el S.O. dé se visualizarán mediante cadenas de caracteres.
  • Interfaz tipo gráfico: la información en pantalla se muestra en ventanas, y en ellas aparecen una serie de componentes y objetos que sirven para enviar o recibir información sin tener que teclear nada.

Los periféricos se pueden clasificar según su función de su uso:

  • De entrada: son los que sirven para introducir información (datos o programas) en el ordenador. La información va desde ellos hacia la memoria y el resto de componentes internos, para ser procesada. Son periféricos de entrada el teclado, un escáner, la unidad lectora de CD-ROM, el ratón, etcétera.
  • De salida: son los que se utilizan para extraer la información (datos en forma de resultados, programas, etc.) desde la memoria y el resto de componentes internos del ordenador y mostrar los datos. La impresora, la pantalla, el plotter, etc., son periféricos de salida.
  • De entrada/salida (E/S): son los que se utilizan para introducir o extraer datos desde y hacia el ordenador, como, por ejemplo, los dispositivos de almacenamiento (discos duros). En ellos se puede escribir información (salida) al igual que leerla (entrada).

3.4. Controlar la Organización de Ficheros o Archivos

Los ficheros son la estructura utilizada para alojar datos o instrucciones que se almacenan en soportes externos para poder ser procesada por el sistema mediante un determinado programa. Dos tipos fundamentales de objetos:

  • Los ficheros regulares (file): es una unidad lógica de memoria para almacenar datos que se identifica por un nombre. Las características de los nombres de los ficheros dependen de los sistemas operativos. Por ejemplo, la extensión indica el tipo de fichero que es, el atributo que caracteriza a cada fichero indicando qué tipo de operaciones o usuarios pueden interactuar con él, etc.
  • Los directorios (directory): son contenedores o carpetas que sirven para almacenar archivos u otros directorios. La utilización de directorios permite una mayor organización de los ficheros dentro del disco. En casi todos los sistemas de fichero existe un directorio principal llamado raíz (root) que es el directorio que contiene todos los demás ficheros y directorios.

4. Tipos de Sistemas Operativos

4.1. Por los Servicios Ofrecidos

Por el número de usuarios:

  • Monousuario: únicamente soporta un usuario a la vez, sin importar las características de la máquina sobre la que está montado el sistema.
  • Multiusuario: son capaces de dar servicio a más de un usuario a la vez, también independientemente de la plataforma hardware sobre la que está montado.

Por el número de tareas:

  • Monotarea: son aquellos que solo permiten una tarea a la vez por usuario. Puede darse el caso de un sistema multiusuario y monotarea, en el cual se admiten varios usuarios al mismo tiempo.
  • Multitarea: son aquellos que le permiten al usuario estar realizando varios trabajos al mismo tiempo.

Por el número de procesadores:

  • Monoproceso: son los que únicamente permiten utilizar un procesador. Sin embargo, permiten simular la multitarea haciendo que el sistema realice una tarea rotatoria con intercambio muy rápido.
  • Multiproceso: son los que permiten utilizar varios procesadores simultáneamente y, por tanto, son capaces de ejecutar varias tareas al mismo tiempo.

4.2. Por la Forma de Ofrecer los Servicios

  • Sistemas Centralizados: con este tipo de modelo, los computadores mainframe se encargaban de todo el procesamiento y los usuarios manejaban únicamente terminales «tontos».
  • Sistemas en Red: estos sistemas operativos son aquellos sistemas que mantienen a dos o más computadoras unidas a través de algún medio de comunicación (físico o no), con el objetivo primordial de poder compartir los diferentes recursos y la información del sistema.
  • Sistemas operativos de escritorio: estos sistemas operativos son los que se utilizan en los equipos de sobremesa, estaciones de trabajo o portátiles.

4.3. Por su Disponibilidad

  • Sistemas operativos propietarios: son aquellos que son propiedad intelectual de alguna empresa. Esto implica que se necesitan licencias de uso para que el usuario ejecute el software y no se dispone a acceso a su código fuente o, aun teniendo acceso a él, no se tiene derecho a modificarlo ni distribuirlo.
  • Sistemas operativos libres: son aquellos que garantizan las cuatro libertades del software.
  • Sistemas Distribuidos: los sistemas operativos distribuidos son sistemas cuasi independientes que permiten distribuir los trabajos, tareas o procesos entre un conjunto de procesadores.
  • El software libre suele estar disponible gratuitamente o al precio de coste de la distribución a través de otros medios. Sin embargo, no es obligatorio que sea así, por lo tanto, no hay que asociar software libre a software gratuito.
  • De la misma manera, el software gratuito puede incluir el código fuente, pero eso no quiere decir que se pueda considerar como libre a no ser que se garanticen los derechos de modificación y redistribución de las versiones modificadas del programa.
  • Tampoco debe confundirse software libre con software de dominio público.

4.4. Por su Estructura Interna

.

 Monolítica. Es la estructura utilizada en los primeros sistemas operativos en la que todas las funciones se implementaban en el Kernel. Puede decirse que su estructura consiste en que no existe una estructura como tal.

 Por capas. A medida que los sistemas operativos fueron creciendo, fue siendo necesaria una mayor estructuración.

 Maquina virtual. Se trata de un tipo de sistemas operativos que presentan una interfaz a cada proceso, mostrando una máquina que parece idéntica a la máquina real subyacente.

4.5. Por Los Modos De Explotación. 

 Procesamiento por lotes. Este modo de explotación se caracteriza por la agrupación en bloques de los trabajos similares. El rasgo más característico de este tipo de sistema operativo es la ausencia de interacción entre el usuario y el proceso mientras éste se ejecuta.

 Multiprogramación. En este modo de explotación, el sistema operativo se encarga de distribuir la carga computacional entre los procesadores existentes.


Dentro de los sistemas operativos multiprogramados cabe diferenciar:

 Tiempo compartido. Son los sistemas operativos más extendidos y a los que se refiere este capítulo. Utilizan las distintas técnicas de planificación de CPU para que se atiendan todos los procesos en espera de ser ejecutados.

 Tiempo real. Un sistema en tiempo real es aquél en el cual los resultados son correctos no sólo si la computación es correcta, sino que también ha de serlo el tiempo en el cual se producen los resultados.

 Híbrido. Estos sistemas operativos intentan ser una mezcla de los dos anteriores, buscando combinar las ventajas de los sistemas en tiempo compartido y en tiempo real. No se han obtenido aún sistemas realmente eficientes.

5.- Aplicaciones informáticas

La informática es el «conjunto de conocimientos científicos y técnicas que hacen posible el tratamiento automático de la información por medio de ordenadores «, es decir, se encarga del tratamiento de la información mediante el estudio de métodos, procesos, técnicas y desarrollos utilizando computadoras o ordenadores para conseguir almacenar, procesar y transmitir información y datos en formato digital. Para realizar esta tarea es necesario elaborar programas informáticos que contienen instrucciones u órdenes para que una computadora realice las tareas deseadas.

Los programas pueden ser clasificados:

Software de sistema: encargado de proporcionar al usuario el control del sistema informático de una forma desatendida con herramientas interactivas para su correcto mantenimiento. Podemos incluir como caso especial el software de programación que permiten desarrollar programas y aplicaciones informáticas utilizando diferentes herramientas y los lenguajes de programación. 

• Software de aplicación o programas diseñados para facilitar al usuario la realización de un determinado tipo de trabajo. Algunos ejemplos de programas de aplicación son los llamados de propósito general en los que destacan los paquetes ofimáticos que integran o relacionan los procesadores de textos, hojas de cálculo, y base de datos.


5.1.- Modelo de aplicación cliente-servidor: aplicaciones distribuidas son:

• El ordenador cliente inicia la comunicación (normalmente mediante un interfaz gráfico) con el servidor por medio de un protocolo de acceso para demandarle datos o para que realice tareas determinadas.

• El ordenador servidor dispone de las herramientas adecuadas para procesar las peticiones, incluso de varios clientes a la vez y enviar la respuesta adecuada.

• El middleware será el interfaz que provee la conectividad entre aplicaciones mediante una capa de software que protege a los desarrolladores del software de tener que manejar detalles de bajo nivel de diferentes protocolos de comunicación, sistemas operativos y otras arquitecturas como las de bases de datos.

Clasificaciónes en el modelo cliente-servidor:➢ En función de la carga del proceso entre el cliente y el servidor: 

o Cliente pesado-servidor ligero (fat client-thin server): el grueso de la aplicación se ejecuta en el cliente.

o Servidor pesado-cliente ligero (fat server-thin client): la mayor parte de la aplicación se ejecuta por el lado del servidor.

➢ Por las funciones asignadas de las prestaciones (agravadas en interfaz de usuario, lógica de negociado y datos compartidas) que ofrece la aplicación:

o De dos niveles: son aplicaciones que permiten a ordenadores denominadas estaciones de trabajo solicitar servicios a otras computadoras llamadas servidores que contienen los datos permitiendo al cliente presentar el resultado del proceso que se realiza en el ordenador del cliente o del servidor o inclusive en ambos.  

o De tres niveles: permite conectar múltiples aplicaciones para crear una aplicación más grande ofreciendo un conjunto de servicios que permite el funcionamiento de aplicaciones sobre plataformas heterogéneas.

o Multinivel: el procesamiento se puede dividir en un sistema multicapa permitiendo dividir las tareas complejas de la aplicación en tareas más sencillas entre varios servidores.


➢ Por el servicio ofrecido por los servidores:

o Servidores de bases de datos: servidores que gestiona peticiones realizadas por clientes mediante el lenguaje de consulta (SQL).

o Servidores de transacciones: el proceso cliente llama a funciones que residen en el servidor de manera que el intercambio a través de la red se realiza en un único acceso de solicitud y respuesta independiente mente de la aplicación. o Servidor web: peticiones realizadas mediante el protocolo de comunicación HTTP.

o Servidores de archivos: permite el acceso remoto a archivos almacenados en un ordenador servidor. Los protocolos que suele utilizar son SMB, NFS.

6.- Licencias y tipos de licencias

Una licencia de software es una autorización mediante contrato (aceptación de condiciones legales normalmente en el proceso de instalación) para poder utilizar aplicaciones informáticas de una forma determinada; es decir, la licencia es un documento que expresa la voluntad del autor sobre los límites y alcances del uso que pueden hacer las personas respecto a la copia, reproducción, modificación, traducción y adaptación.

Seguidamente podemos registrar los Derechos de Autor o Copyright, así como la patente. Según los criterios en que se formulen en el contrato de uso (es conveniente leer antes de aceptar sus condiciones), podemos encontrar diferentes modos de clasificación. Tipos según su manera uso y diseño: 

• Software Libre: puede ser utilizado, copiado, distribuirlo y modificado (cuando el código fuente disponible) para mejorar el programa o adaptarlo a las necesidades. Normalmente llevan clausulas en el contrato para que su uso no sea con fines comerciales.

• Software propietario o privado: es aquel que sin permiso del propietario queda prohibida la copia, redistribución o modificación.

• Software comercial: para su disponibilidad hay que realizar un pago. Puede existir software libre y propietario de este tipo.


 • Software de dominio público. El Software con dominio público es software sin copyright. Se permite uso, copia, modificación o redistribución con o sin fines de lucro.

• Freeware: programas que permiten la redistribución, pero no la modificación, y que a veces incluyen su código fuente. Estos programas no son softwares completamente libres de uso.

• Shareware: es el software disponible con permiso para ser redistribuido, pero su uso está limitado en tiempo o en funciones (no contienen todos los procesos). Para tener una disponibilidad completa hay que realizar un pago.

• GPL: se la puede considerar como Licencia de software libre con protección heredada. Su propósito es declarar que el software cubierto por esta licencia es software libre y protegerlo de intentos de apropiación que restrinjan esas libertades a los usuarios, impidiendo que este software sea integrado en software propietario. Es la licencia que acompaña una gran variedad de software que incluye el núcleo del sistema operativo Linux.

• Con Copyleft: es aquel software que dispone de un tipo de copyrihgt creado para el software libre que no permite agregar normas de uso de las aparecen en la licencia determinada por el autor original y en las que detalla las condiciones bajo las cuales garantiza las libertades de uso.

Hay dos tipos de licencias copyleft:

• Completa: permite cualquier modificación de la obra inicial a excepción de la licencia.

• Parcial: limita las partes de la obra que son modificables.

• BSD. Licencia de software libre sin protección heredada. Se puede crear una obra derivada sin que ésta tenga obligación de protección alguna. 

• Licencias estilo MPL: es Software Libre y promueve eficazmente la colaboración evitando el efecto «viral» de la GPL (si usas código licenciado GPL, tu desarrollo final tiene que estar licenciado GPL).


• Las licencias Creative Commons están basadas en la GPL, y, aunque no suelen ser empleadas para licenciar software, si suelen ser utilizadas para distribuir y usar contenidos.

Los casos de licencias CC se toman en consideración los siguientes derechos que el autor puede elegir reservarse o no:

• Reconocimiento (Attribution): se permite la copia, distribución y presentación pública de la obra y trabajos derivados de la misma siempre que se reconozca y cite adecuadamente al autor original.

• No comercial (Non-Commercial): se permite la copia, distribución y presentación de la obra y trabajos derivados de la misma siempre que se realice con fines no comerciales.

• Prohibición de obras derivadas (No Derivatives): se permite la copia, distribución y presentación de la obra en su versión original, pero se prohíbe la realización de trabajos derivados de la misma.

• Redistribución bajo la misma licencia (Share Alike): se permite la distribución de trabajos derivados de la obra siempre que se realice bajo una licencia idéntica a la que ampara la obra original.

7.- Gestores de arranque

 Se llama encendido del ordenador a los pasos seguidos por el computador hasta llegar al punto de carga del S.O. y pueden ser los siguientes:

1. Cuando se enciende el ordenador (botón power) y llega corriente a los componentes de la placa base el microprocesador resetea e inicia todos sus contadores y registros. Busca una dirección de la ROM-BIOS del sistema y ejecuta la BIOS (Basic Input/Output System). 

2. Seguidamente comienza el proceso conocido como POST (Power On Self Test), en el que se comprueba el correcto funcionamiento de los componentes instalados, además, la BIOS está formada por un conjunto de programas que se encarga de la configuración de la CMOS la cual controla y supervisa los dispositivos conectados al ordenador.


3. La BIOS asignará direcciones de acceso directo (DMA) y de de interrupción (IRQ) a los dispositivos, activará los dispositivos Plug & Play, inicia la BIOS de la tarjeta de vídeo (es en ese momento aparecen los mensajes en la pantalla en los que se ven el resultado del testeo y la cantidad de la memoria RAM), habilita el teclado comprobando su correcto funcionamiento posibilitando mediante una combinación de teclas la entrada a configurar parte de los parámetros de la BIOS (conocido como Setup) como son: fecha, hora, secuencia de arranque, etc. AL final la BIOS comprueba la secuencia de arranque de los dispositivos que almacenan el o los Sistemas Operativos en el sistema; localiza el MBR (Master Boot Record los primeros 512 bytes del disco duro), del disco a arrancar y comienza con el proceso denominado bootstrap o carga del Sistema.

4. El MBR es el primer sector del disco duro que contiene la tabla de particiones y de un programa llamado Master Boot que se encarga de leer la tabla de particiones (divisiones de un disco que pueden ser como máximo tres primarias y una extendida que a su vez se puede dividir en lógicas) y de ceder el control al sector de arranque de la partición que está marcada como activa (que almacena el sistema operativo con el que arrancará el ordenador).

7.1.- Conceptos relacionados con el arranque de sistemas operativos

• La BIOS: el Sistema Básico de Entrada/Salida o BIOS (Basic Input-Output System) es un código de software que localiza y reconoce todos los dispositivos necesarios para cargar el sistema operativo en la RAM; es un software muy básico instalado en la placa base que permite que ésta cumpla su cometido. Su función primordial es la de encontrar el S.O y cargarlo en memoria RAM. EL programa que controla la BIOS reside en la memoria EPROM (Ver Memoria BIOS no-volátil). Es un programa tipo firmware (se puede actualizar) que permite la configuración de aspectos importantísimos de la máquina.

• El BOOTLOADER: un bootloader (cargador de arranque) es un programa sencillo que no tiene la totalidad de las funcionalidades de un sistema operativo, diseñado exclusivamente para preparar todo lo que necesita el S.O para funcionar.


• El BOOTSTRAP: la palabra inglesa bootstrapping es generalmente un término utilizado para describir el arranque, o proceso de inicio de cualquier ordenador. Suele referirse al programa que arranca un S.O como por ejemplo GRUB, Lilo o NTLDR. Se ejecuta tras el proceso POST de la BIOS.

7.2.- Gestores de arranque de Windows

El sistema de arranque se llama BCD store. La herramienta en línea que usa para modificar los parámetros del arranque es bcdedit.exe. Por seguridad BCD se encuentra oculto en codificación binaria. El fichero BCD se encuentra en el directorio boot.

Podemos usar otras alternativas como: • Desde el cuadro de diálogo Inicio y recuperación permite seleccionar el S.O de arranque por defecto y cambiar el valor de tiempo de espera para seleccionar una opción del menú (se encuentra en la pestaña Opciones avanzadas del cuadro de diálogo Propiedades del sistema). • Ejecutando Msconfig.exe desde la barra de inicio, aparecerá una ventana con pestañas para configurar el sistema en apartados como General, Arranque, Servicios, Inicio de Windows, etc.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.