Tema 1 ASIR

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 12

Tema 1: Introducción a los SSOO

1. Estructura de un Sistema Informático.


Entendemos por sistema informático aquel sistema que almacena y procesa información
interrelacionando el hardware y el software de un ordenador.

Todo sistema informático está compuesto por tres elementos básicos:


• Un componente físico (hardware ): incluye las placas, circuitos integrados, conectores,
cables y sistema de comunicaciones..
• Un componen te lógico (software ): permite disponer de un lenguaje lógico para
comunicarse con el hardware y controlarlo. Hay dos tipos de software:
- Software de base: es el conjunto de programas necesarios para que el hardware
tenga capacidad de trabajar. Recibe también el nombre de sistema operativo.
- Software de aplicación: son los programas que maneja el usuario (tratamiento de
textos, bases de datos, hojas de cálculo ... ).
• Un componente humano: está constituido por las personas que participan en la dirección,
diseño, desarrollo, implantación y explotación de un sistema informático.

2. El sistema operativo

Conjunto de órdenes y programas que controlan los procesos básicos de una computadora
y permiten el funcionamiento de otros programas.

3. El Kernel

El kernel es definido como el núcleo o corazón del sistema operativo, y se encarga


principalmente de mediar entre los procesos de usuario y el hardware disponible en la
máquina, es decir, concede el acceso al hardware al software que lo solicite de una
manera segura y el procesamiento paralelo de varias tareas.

4. Estructuras de sistemas operativos


• Estructura simple (Monolíticos)
Como inconveniente, este tipo de sistemas operativo dispone de un alto número de líneas de
código ejecutándose en modo privilegiado. Por ello, un error de programación en el núcleo puede
provocar un kernel panic. Además, el hecho de añadir nuevas funcionalidades provocaría una
nueva recompilación del núcleo llevando a reiniciar el sistema para que se apliquen los nuevos
cambios. Por ejemplo, un bug en el núcleo de un sistema operativo monolítico obliga a tener que
reiniciar el sistema. En un sistema operativo monolítico, el código del núcleo se incluye en un
único fichero binario que se carga en memoria principal en tiempo de arranque, por tanto, si se
instala una nueva imagen, es necesario reiniciar el sistema operativo para que se inicie con la
nueva versión que incluye la imagen actualizada.

Como principal ventaja, los sistemas operativos monolíticos ofrecen un alto rendimiento puesto
que las peticiones entre los diferentes componentes se reducen a invocaciones de funciones.

• Estructura por capas (anillos)

El sistema operativo se distribuye por capas, la capa superior es la interfaz de usuario y la


capa inferior es el hardware.

Las capas se seleccionan de modo que sus funciones y servicios solo de capas inferiores.

Como principales ventajas, este tipo de sistema es muy seguro. Como principal desventaja,
puede haber casos en los que una capa inferior requiera una funcionalidad de una de sus
capas inmediatamente superiores, generando problemas. Además, al realizar la
comunicación de una a otra capa de forma contigua, si se necesita establecer una
comunicación directa con el kernel desde una capa más externa, se generan
“sobrecostes”.

• Estructura cliente-servidor

En este caso, el código se traslada a capas superiores y se elimina la mayor parte del
sistema operativo para mantener un núcleo mínimo. La idea es implementar la mayoría de
las funciones de un sistema operativo como procesos de usuario. Para solicitar un servicio,
como la lectura de un bloque de cierto fichero, un proceso de usuario (proceso cliente)
envía la solicitud a un proceso servidor, que realiza el trabajo y devuelve la respuesta.

En este caso, lo único que hace el núcleo es controlar la comunicación entre los clientes y
los servidores. Al separar el sistema operativo en partes, cada una de ella controla una
faceta del sistema como el servicio a ficheros, servicio de procesos, servicio a los
terminales o servicio a la memoria, cada parte es pequeña y controlable. Dado que todos
los servidores se ejecutan como procesos en modo usuario y no en modo núcleo, no
tienen acceso directo al hardware. En consecuencia, si hay un error en el servicio de
ficheros éste puede fallar, pero esto no afectará en general a toda la máquina.

En realidad, la idea de un núcleo que solo controla el transporte de mensajes a clientes no


es del todo real. Algunas funciones del sistema operativo son imposibles de implementar a
partir de programas de usuario (como la introducción de órdenes en los registros físicos de
los controladores de E/S).

5. Tipos de sistemas
5.1. Clasificación por usuarios
o Sistemas Monousuario
El sistema operativo admite un único usuario. Este usuario no tiene login, aunque
su cuenta puede ser protegida con una contraseña

o Sistemas Multiusuario
El sistema operativo admite varios usuarios y cada uno de ellos hace login. Cada
usuario ejecuta sus aplicaciones y, por ello, si más de un usuario corre el mismo
programa para un sistema operativo son procesos diferentes. Cada uno de los
usuarios tiene su ambiente protegido.

5.2. Clasificación de sistemas según el número de tareas

o Monotarea
Se le dice monotarea a aquel sistema operativo que solamente puede ejecutar un
proceso del programa de computación a la misma vez.

o Multitarea
La multitarea es la característica de los sistemas operativos modernos que permite
que varios procesos o aplicaciones se ejecuten aparentemente al mismo tiempo,
compartiendo uno o más procesadores.

Ojo, hay relación entre un sistema multiusuario y multitarea.


5.3. Clasificación por el número de procesadores
o Sistemas uniproceso
Un sistema operativo uniproceso es aquél que es capaz de manejar solamente un
procesador de la computadora, de manera que si la computadora tuviese más de
uno le sería inútil.

Sin embargo, permiten simular la multitarea haciendo que el sistema realice una
tarea rotatoria con intercambio muy rápido.

o Sistemas multiproceso
Los sistemas operativos Multiproceso son los que permiten realizar varios
procesos simultáneamente y por lo tanto son capaces de ejecutar varias tareas al
mismo tiempo.

5.4. Clasificación por la forma de acceso


o Sistemas instalables
Requieren estar instalados para ser ejecutados

o Sistemas autoarrancables
No requieren estar instalados para ser ejecutados

6. Funciones de un sistema operativo


- Administración del procesador y gestión de procesos: El sistema operativo
administra la distribución del procesador entre los distintos programas por
medio de un algoritmo de programación. El tipo de programador depende
completamente del sistema operativo según el proceso deseado.
- Gestión de la memoria de acceso aleatorio: El sistema operativo se encarga
de gestionar el espacio asignado a cada aplicación y a cada usuario si
resulta pertinente.
- Gestión de entradas/salidas y periféricos: El sistema operativo permite
unificar y controlar el acceso de los programas a los recursos materiales a
través de los drivers.
- Gestión de ejecución de aplicaciones: el sistema operativo se encarga de
que las aplicaciones se ejecuten sin problemas asignándole los recursos que
éstas necesitan para funcionar. Esto significa que si una aplicación no
responde correctamente puede “Sucumbir”.
- Administración de autorizaciones: El sistema operativo se encarga de la
seguridad en relación con la ejecución de programas garantizando que los
recursos sean utilizados sólo por programas y usuarios que posean las
autorizaciones correspondientes.
- Gestión de archivos: El sistema operativo gestiona la lectura y la escritura
del sistema de archivos.
- Gestión de la información: El sistema operativo proporciona cierta cantidad
de indicadores que pueden utilizarse para diagnosticar el correcto
funcionamiento del equipo.

7. Arquitectura de un sistema operativo


Para entenderlo un poco mejor, vamos a verlo desde una perspectiva histórica:

• Procesamiento serie (sin sistema operativo): Con las primeras computadoras,


desde los años cuarenta hasta la mitad de los años cincuenta, el programador
interactuaba de manera directa con el hardware de la computadora; no había
sistema operativo. Estas máquinas eran operadas desde una consola que tenía
luces de exhibición, interruptores para activar y desactivar, alguna forma de
dispositivo de entrada y una impresora. Los programas en código de máquina se
cargaban mediante el dispositivo de entrada (por ejemplo, un lector de tarjetas). Si
un error detenía el programa, las luces indicaban la condición de error. El
programador podía examinar los registros y la memoria principal para determinar
la causa del error. Si el programa proseguía hasta su terminación normal, la salida
aparecía en la impresora.
Esto generaba problemas: un solo programa podía implicar la necesidad de cargar
el compilador y el programa de lenguaje de alto nivel en la memoria, guardar el
programa compilado y después cargar y ligar juntos el programa objeto y las
funciones comunes. Cada uno de estos pasos podía implicar montar o desmontar
cintas o posicionar paquetes de tarjetas. Si ocurría un error, de manera típica, el
desafortunado usuario tenía que regresar al principio de la secuencia de
instalación. Por tanto, se gastaba mucho tiempo sólo en poner a punto el
programa para correr.
Con el tiempo, se desarrollaron varias herramientas de software del sistema para
intentar hacer más eficiente el procesamiento serial. Éstas incluían bibliotecas de
funciones comunes, ligadores, cargadores, depuradores, así como rutinas de
manejo de E/S (Entrada/Salida) que estaban disponibles como software común
para todos los usuarios. De aquí viene la idea de sistema operativo.

• Sistemas por lotes simples: Las primeras máquinas eran muy caras, y por lo tanto,
era importante maximizar el uso de máquina. El tiempo desperdiciado por causa
del tiempo de planificación e instalación no era aceptable. Para mejorar el uso, se
desarrolló el concepto de un sistema operativo por lotes.
La idea central detrás del esquema de procesamiento por lotes simple fue el uso
de una pieza de software conocida como monitor. Con el uso de este tipo de
sistema operativo, el usuario ya no tenía acceso directo a la máquina. Mas bien, el
usuario propone el trabajo en tarjetas o cinta a un operador de computadora,
quien hace lotes de los trabajos reunidos de manera secuencial y coloca el lote
completo en un dispositivo de entrada para que lo use el monitor. Cada programa
está construido para regresar al monitor cuando completa el procesamiento, en
este punto el monitor carga el siguiente programa de manera automática.
Con un sistema operativo por lotes, el tiempo de máquina se alterna entre la
ejecución de programas usuario y la ejecución del monitor. Se han sacrificado dos
cosas: se le ha otorgado cierta memoria principal al monitor y éste consume algún
tiempo de máquina. Estas dos son formas de sobrecarga. Aun con esta sobrecarga,
el sistema por lotes simple mejora el uso de la computadora.

• Sistema por lotes multiprogramados: Aun con la secuenciación de trabajo


automático proporcionado por un sistema operativo por lotes simples, con
frecuencia el procesador está desocupado.
Su desventaja es que los dispositivos de E/S son lentos comparados con el
procesador.
La siguiente figura muestra esta situación: el procesador gasta cierto tiempo
ejecutando hasta que alcanza una instrucción de E/S. Después debe esperar hasta
que la instrucción de E/S concluya antes de proseguir.

Este caso no es necesario. Ya que debe existir suficiente memoria para contener
el sistema operativo (monitor residente) y un programa de usuario. Suponiendo
que existe espacio para el sistema operativo y dos programas de usuario. Ahora,
cuando un trabajo necesita esperar una E/S, el procesador puede continuar a otro
trabajo, el cual es probable que no espera una E/S. Como se muestra en la
siguiente figura:
Los sistemas operativos de multiprogramación son muy sofisticados comparados
con los sistemas de uniprogramación o de programa único. Para tener varios
trabajos preparados para correr, deben mantenerse en la memoria principal y
requieren cierta forma de administración de memoria. Además, si varios trabajos
están preparados para correr, el procesador debe decidir cuál correr, lo cual
requiere cierto algoritmo para planificación.

• Sistemas de tiempo compartido: Con el uso de la multiprogramación, el


procesamiento por lotes puede ser bastante eficiente. No obstante, para muchos
trabajos, es deseable proporcionar un modo en el que el usuario interaccione en
forma directa con la computadora. De la misma manera que la multiprogramación
permite al procesador manejar trabajos por lotes múltiples a la vez, la
multiprogramación puede usarse para manejar trabajos interactivos múltiples. En
el último caso, la técnica se denomina tiempo compartido, reflejando el hecho que
múltiples usuarios comparten el tiempo del procesador.
El tiempo compartido y la multiprogramación originan muchos nuevos problemas
para el sistema operativo. Si están múltiples trabajos en la memoria, entonces
deben protegerse de interferir uno con otro por medio de, por ejemplo, modificar
los datos de cada uno. Con múltiples usuarios interactivos, el sistema de archivos
debe protegerse de manera que únicamente los usuarios autorizados tengan
acceso a un archivo particular.

• Sistemas distribuidos: Un sistema distribuido es un conjunto de programas


informáticos que utilizan recursos computacionales en varios nodos de cálculo
distintos para lograr un objetivo compartido común. Este tipo de sistemas,
también denominados "computación distribuida" o "bases de datos distribuidas",
usan nodos distintos para comunicarse y sincronizarse a través de una red común.
Estos nodos suelen representar dispositivos de hardware físicos diferentes, pero
también pueden representar procesos de software diferentes.

Un pequeño apunte, sistemas distribuidos no es lo mismo que sistemas


centralizados:
8. Tipos de aplicaciones

• Software de sistema: Consiste en un software que sirve de soporte o base para


controlar e interactuar con el hardware y otros programas

• Software de programación: Es un tipo de software de computadora diseñado para


realizar un grupo de funciones, tareas o actividades coordinadas para el beneficio
del usuario.

• Software de aplicación: Son herramientas que nos permiten desarrollar el diseño


de nuevos programas informáticos, a través de diversos tipos de lenguajes de
programación.
9. Tipos de licencias de software
o OEM: Es una licencia de software que supedita su venta a que esta debe ser
parte de un producto nuevo, estando prohibido venderlo si no es bajo esta
condición.
o Retail: en este caso el programa es de la entera propiedad del usuario,
pudiendo este cederlo libremente a terceros o venderlo.
o Licencias por volumen: es un tipo de licencia destinado a grandes usuarios
(empresas). Se trata de estipular un determinado número de equipos que
pueden utilizar el mismo código de licencia, quedando el fabricante
autorizado para realizar las comprobaciones oportunas para ver que las
licencias que se están utilizando son las adquiridas. Se venden en paquetes
de 25 licencias como mínimo. Este tipo de licencias no se pueden ceder a
terceros ni total ni parcialmente.
o Software libre: Las licencias de software libre se basan en la distribución
del código fuente con el programa. Así como en cuatro premisas:
1. Libertad de usar el programa con cualquier propósito.
2. Libertad de estudiar el funcionamiento del programa y adaptarlo a las
necesidades
3. Libertad de distribuir copias, con lo que puede ayudar a otros.
4. Libertad de mejorar el programa y hacer públicas las mejoras, de modo
que toda la comunidad se beneficie.
¡Ojo! Que sea software libre no significa que sea gratuito (freeware). Puede
ser de pago.

El software libre puede estar sujeto a las siguientes licencias:

• Licencias GPL (O GNU): El autor conserva los derechos de autor y


permite la distribución y modificación pero controlando que todas
las versiones modificadas del software permanecen bajo los
términos más restrictivos de la licencia GPL.

• Licencia BSD: El autor mantiene la protección del copyright


únicamente para la renuncia de garantía y para solicitar la
atribución de la autoría en trabajos derivados, pero permite la libre
distribución y modificación, incluso si dichos trabajos tienen
propietario. También permite la distribución de software creado
bajo este tipo de licencia como software no libre.

• Licencias MPL y derivadas: Parecidas a las BSD pero menos


permisivas.

• Copyleft: Copia permitida, en contraposición a copyright (copia


reservada/derechos de autor).
o Freeware: Es un tipo de licencia en el que se autoriza el uso del software de
forma gratuita, aunque este uso puede ser delimitado bajo una serie de
condiciones.
o Shareware: Tipo de licencia que permite el uso del programa durante un
tiempo para que el usuario lo evalúe y posteriormente lo compre.
o Demo: Se trata de la sesión de un programa para su evaluación, aunque de
forma muy limitada.
o Postcardware: Muy similar al freeware, pero el usuario debe enviar una
postal o correo al creador como confirmación de su utilización.
o Donationware: Se pide al usuario el envío de un donativo para sufragar el
desarrollo del programa.
o Abandonware: Se trata de un software, normalmente de bastantes años de
antigüedad, sobre el que los creadores han liberado el copyright. Suele ser
software descatalogado y no disponible en tiendas.

10. ¿Cómo funciona la secuencia de arranque del sistema operativo?

Al pulsar el botón de encendido, la corriente llega al transformador de potencia. La CPU se


enciende y, al iniciarse el procesador, lo primero que hace es pedirle instrucciones a la
ROM BIOS.

La ROM BIOS (Read Only Memory. Basic Input/Output System) es una memoria de solo
lectura, la cual constituye un sistema básico de entrada y salida que localiza y reconoce los
elementos necesarios para cargar la memoria RAM.

Lo primero que hace la BIOS, es comprobar que todos los elementos de Hardware
necesarios para arrancar el ordenador se encuentran disponibles.

La ROM BIOS hace una llamada a una pequeña parte de la misma llamada RAM CMOS, la
cual está alimentada por una pequeña pila de litio. Allí se encuentra la información sobre
cuál es el disco desde el que va a arrancar el ordenador, la fecha y la hora…

Leídas estas instrucciones, la BIOS ordena ejecutar en el Sector 0 del disco duro. Aquí
tenemos dos formas de arranque que divergen:

• Legacy BIOS(Modo tradicional): En el sector 0 del disco duro, se ejecuta el “Master Boot
Record”, (más tarde explicaremos un poco más sobre este). Básicamente, lo que nos va a
indicar el MBR es, con cuál de las particiones del disco va a arrancar el sistema.

El MBR se encuentra dividido entre el programa de arranque (gestor de arranque) y una


tabla de particiones. Esta tabla de particiones soporta como máximo cuatro particiones,
que pueden ser sistemas operativos diferentes. Cuando seleccionamos cual de estos
sistemas queremos ejecutar, lo cargamos del disco a la memoria RAM. Y nuestro sistema
operativo comenzará a iniciarse.

• UEFI: En este caso, la tabla de particiones tiene mayor flexibilidad (no se encuentra
limitada a cuatro particiones). Una de estas particiones, llamada partición EFI, es una
partición de arranque, donde se instalarán los diferentes programas de arranque.
Seleccionado el gestor de arranque deseado, los pasos son comunes al caso anterior.

Si podemos iniciar el sistema en modo UEFI tiene que ver con la antigüedad de nuestra BIOS,
los sistemas modernos si tienen como opción este modo de arranque.
Opciones muy útiles de la BIOS a tener en cuenta: Boot Sequence y Boot menu (selección de la
unidad de arranque). A veces están protegidas por Secure Boot.

11. Gestores de arranque

Un gestor de arranque es un programa sencillo que tiene como finalidad cargar el sistema
operativo preparando todo lo que necesita este para funcionar.

Los gestores de arranque adquieren mayor importancia cuando hay varios sistemas
operativos instalados en el mismo ordenador.

Vamos a ver distintos gestores de arranque:

• Gestor de arranque de Windows: Windows trae de forma predefinida un gestor de


arranque pero solo nos mostrará sus opciones cuando tengamos más de un sistema
Windows instalado en el mismo ordenador. Para evitar incompatibilidades, a la hora de
instalar los sistemas operativos debemos de instalar primero el más antiguo y luego el más
nuevo.

• GRUB: Permite mantener distintos sistemas operativos y distintas versiones de ellos en el


mismo disco duro (distinta partición). Al iniciar el ordenador, GRUB se carga antes que
cualquiera de los sistemas, permitiéndonos elegir cuál iniciar. GRUB es el gestor de
arranque preinstalado en la mayoría de los sistemas modernos GNU/Linux. Antes de esto,
el gestor de arranque predeterminado era LILO.

• LILO: Es el gestor de arranque típico de los sistemas Unix/Linux, aunque permite la


convivencia de estos sistemas con Windows. Cuando el sistema arranca, el cargador de
arranque espera 4 segundos a que el usuario presione Ctrl, Alt o AltGr. Si el usuario no
presiona estas teclas, se cargará la primera imagen del núcleo. En caso contrario, dará a
elegir.

• BootIt Next Generation: Es el gestor de arranque más empleado para discos duros de
grandes dimensiones con particiones de grandes dimensiones. Se arranca desde un USB o
CD. El propio gestor de arranque cuenta con opciones para crear, formatear,
redimensionar y eliminar particiones. Tiene opciones muy avanzadas y útiles pero es un
software de pago que no está al alcance de todo el mundo.

• GAG: Se trata de un gestor de arranque gráfico que permite elegir en el momento del
arranque cuál de los sistemas operativos disponibles desea arrancar el usuario. Como
principales ventajas está el poder poner claves a cada sistema operativo, restringiendo su
acceso y que es totalmente gratuito.
• BootMagic: Permite ejecutar sistemas operativos Windows en un único PC. Cada vez que
se inicia, Bootmagic muestra una lista de sistemas operativos con los que cargar el equipo
y nos permite definir diversas opciones de arranque.

También podría gustarte