Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. Computer Hardware:
Consiste en el nivel más bajo de la estructura, aquí consta de
recursos como la unidad de procesamiento (CPU), la memoria
(Ram Memoria Primaría -Rom Memoria Secundaría) y los
dispositivos de E (Dispositivos que alimentan al sistema-Teclado,
mouse, micrófono) /S (obtener la salida de un sistema-
Resultados que da el sistema-).
Nota: Cada vez que haya que ejecutar o cargar algo, esto debe
realizarse en la memoria principal (RAM). Tomando en
consideración que dicha menoría no es ilimitada, ni infinita sino
limitada.
Conceptos básicos del sistema operativo.
Nota: Cada vez que haya que ejecutar o cargar algo, esto debe
realizarse en la memoria principal (RAM). Tomando en
consideración que dicha menoría no es ilimitada, ni infinita sino
limitada.
Ejemplo
Supongamos que se está viendo una película en el monitor, la
minimizamos y al mismo tiempo abrimos y usamos Microsoft
Word, generalmente no experimentamos un retraso, ya que se
está trabajando sincronizadamente.
¿Que necesitamos para que no existan retrasos ni problemas?
Términos Importantes:
1) Programa Bootstrap. - Programa que se ejecuta cuando se
enciende o se reinicia una computadora, siendo este programa
el primer programa que se ejecuta cuando se enciende o
reinicia el sistema informático. Ejemplo El BIOS.
Características:
- Se almacena en la ROM (Memoria de solo lectura y memoria
secundaria) y este sabe cómo cargar el sistema operativo (interfaz
entre usuario y hardware físico) y comenzar a ejecutar el sistema.
Nota: El sistema operativo esta almacenado en algún lugar de la
memoria secundaria.
Nota: El sistema operativo también es un software
Nota: El Programa Bootstrap sabe dónde está almacenado el
sistema operativo. Y luego cargar el Kernel del sistema operativo
en su memoria principal.
¿Qué nos referimos con Kernel o núcleo?
Parte principal del Sistema Operativo. El Kernel o núcleo, es una
parte fundamental del sistema operativo que se encarga de
conceder el acceso al hardware de forma segura para todo el
software que lo solicita, el Kernel es una pequeña e invisible
parte del sistema operativo, pero la más importante, ya que sin
esta no podría funcionar. Todos los sistemas operativos tienen
un Kernel, incluso Windows 10, pero quizá el más famoso es el
Kernel de Linux, que ahora además está integrado en Windows
10 con sus últimas actualizaciones.
Este núcleo de los sistemas operativos se ejecuta en modo
privilegiado con acceso especial a los recursos del sistema para
poder realizar las peticiones de acceso que le va pidiendo el
software que lo necesita, además como los recursos no son
ilimitados, también hace de arbitro a la hora de
asignarlos, decidiendo el orden de las peticiones recibidas
según la prioridad e importancia de estas. Una gestión muy
importante y fundamental que en la mayoría de las ocasiones
pasa desapercibida aun siendo un trabajo esencial para
coordinar todo el hardware con el software.
¿Para qué sirve el Kernel?
Interrupción.
¿Qué viene a la mente cuando escuchamos la palabra
interrumpir?
Cuando estás haciendo algo, si alguien viene y te molesta.
Por favor, deja de hacer este trabajo y haz otra cosa. Podemos
decir que hemos sido interrumpidos.
En SO es la ocurrencia o aparición de un evento que usualmente
suele indicarse a través de una interrupción del hardware o del
software.
Generalmente el CPU siempre está funcionando, pudiendo el
hardware o software interrumpirla, es decir el CPU “Espera “con
lo que estés haciendo y ejecuta la tarea que se está dando por
ser más importante. Entonces, la CPU tiene que detenerse y
ejecutar la tarea que surge. A esto se lo conoce como
interrupción.
Nota: Además el Hardware puede provocar una interrupción en
cualquier momento, enviando una señal a la CPU, normalmente
por el bus del sistema.
Llamada de Sistema.
Es cuando el software puede desencadenar una interrupción
ejecutando una operación especial denominada “llamada al
sistema”. Es decir que si se trata del hardware generalmente lo
llamamos interrupción.
Resumen:
Cuando la CPU es interrumpida, se detiene el trabajo e
inmediatamente transfiere la ejecución a una ubicación fija es
decir pueden surgir interrupciones ya sean por hardware o
software (llamada al sistema).
¿Entonces cuando la CPU se interrumpe de esta manera que
hace?
Transfiere inmediatamente la ejecución a una ubicación fija, es
decir cualquiera que fuera la ejecución que estuviera haciendo
la CPU, simplemente se detiene y se transfiere su ejecución a
una ubicación fija.
Los registros son los dispositivos de almacenamiento más pequeños, almacenan datos en bits es decir
0s o 1s, mismos que pueden ser accedidos de manera muy rápida.
El tamaño de la cache es un poco mayor que el de los registros, pero su velocidad es un poco más lenta
en comparación con los registros.
La memoria principal se refiere a la memoria de acceso aleatorio o RAM
Nota: En el gráfico podemos observar que el tamaño se vuelve más pequeño a medida que se
asciende en la jerarquía.
Nota: El tiempo de acceso y costo aumentan cada vez más a medida que ascendemos en la jerarquía
Nota: A medida que desciende en la jerarquía el costo por bit aumenta.
Nota: El tiempo de acceso también aumenta y su tamaño también aumenta.
Nota: Si se desea un tamaño más grande para almacenar más datos entonces se debe bajar en la
jerarquía, aumentando el costo y tiempo de acceso.
Ejemplo: Si tenemos Microsoft Word, se instala en memoria secundaria, permaneciendo allí hasta
cuando se da clic y se abre, cargándose en memoria principal. Es decir, cada vez que se ejecuta algo se
carga en memoria principal, de lo contrario reside en memoria secundaria.
Nota: Si se tiene una RAM más grande o más entonces la computadora funciona más rápido
Ejemplo: Posees una biblioteca grande en tu casa, donde se guardan los libros (memoria secundaria), y
una mesita pequeña donde se guardan tus libros para leer. Los libros se consideran como datos.
Volátil: Pierde su contenido cuando se le quita la energía. (Memoria Principal, la caché y los registros).
No Volátil (memoria secundaria): Conserva su contenido incluso cuando se corta la energía, razón por
lo cuál aún si se paga la alimentación de estos dispositivos, su contenido no se borrará. Incluso se
conservan, cuando se retira la fuente de alimentación. Ejemplo: discos duros, cintas magnéticas
(dispositivos de almacenamiento secundario).
Nota (caso especial): Existe una RAM no volátil, llamada NVRAM, que tiene un batería de respaldo
para retener su contenido incluso cuando se corta la energía.
Estructura de Entrada/Salida
¿Cuáles son los dispositivos de entrada y salida?
Dispositivos que se utilizan para dar entradas u obtener salidas del computador.
Nota: Debe considerarse al almacenamiento como un dispositivo de entrada/salida, razón por la cual
dichos dispositivos son algo muy importante. Es así que los SO usan una gran cantidad de código para
esto, aportando a la confidencialidad y rendimiento.
Un sistema informático de propósito general, consta del CPU y múltiples controladores de dispositivos,
que están conectados a través de un bus común, como se mencionó anteriormente.
• Se requiere una interfaz adecuada que permita que el controlador del dispositivo interactúe con el
SO.
• Para iniciar una operación de E/S, el controlador de dispositivo carga el registro apropiado dentro
del controlador del dispositivo.
• El controlador de dispositivos por turnos, examina el contenido de estos registros para determinar
qué acción tomar.
Se puede decir por tanto que el sistema operativo se encuentra entre el hardware y las aplicaciones de
usuario (navegadores web, programas de ofimática, etc.) proporcionado así a los programadores de
dichas aplicaciones un conjunto de instrucciones conocidas como llamadas al sistema, para trabajar con
más comodidad, de lo contrario los programadores tendrían que realizar dichas tareas en un lenguaje de
programación que se comunicara directamente con los dispositivos, siendo éste conocido como lenguaje
de máquina, lo que complicaría enormemente la labor de estos.
Clases de Sistemas Operativos .
Dependiendo del número de aplicaciones que ejecutan, del número de usuarios que
interactúan, del número de procesadores que manejan o dependiendo de la estructura. Se
pueden clasificar los SO.
1. Según la utilización de los recursos.
Sistema multiprocesador. - Estos sistemas son aquellos que pueden manejar varios
procesadores, con lo que se alcanza un mayor rendimiento ya que al tener más procesadores
podemos realizar más tareas al mismo tiempo, aunque hay que decir que este aumento no
es proporcional al aumento del número de procesadores. A este tipo de sistema también se
le llama computadoras paralelas o multicomputadoras, ya que cada procesador tiene una
copia del sistema operativo, y éstas se comunican entre sí para el manejo de las tareas,
repartiéndose las mismas entre los procesadores, es decir, una tarea es ejecutada en
proporción por todos los procesadores
2. Según la interactividad. -
En este caso se habla de los sistemas dependiendo del tipo de trabajo y los servicios que se
presta a los usuarios se habla de sistemas de procesos por lotes, sistemas de tiempo
compartido y sistemas de tiempo real.
Sistemas centralizados. –
Este tipo de sistemas es aquel que utiliza los recursos de una sola computadora, como es la
memoria, CPU, discos, periféricos. Este tipo de sistema planteaba un problema, y es que
cuando se interconectaban ordenadores a uno principal, cuando este último requería un
cambio de hardware para aumentar su capacidad, ello era más costoso que añadir nuevos
computadores.
Sistemas distribuidos. –
Como lo define Tanenbaum, “Un sistema distribuido es una colección de computadoras
independientes que aparecen ante los usuarios del sistema como una única computadora”.
En este tipo de sistemas se utiliza al mismo tiempo los recursos de los distintos equipos, ya
bien sea el hardware o el software de los mismos, por lo que las computadoras se comunican
entre sí a través de distintos medios de comunicación, como pueden ser líneas de alta
velocidad o líneas telefónicas. Este tipo de sistemas puede abarcar desde unas pocas
computadoras hasta miles o millones de ellas, enlazadas a través de internet. Estos recursos
que son compartidos son manejados por un gestor de recursos, que es un software que se
encarga de controlar dichos recursos.
5. Según la estructura del sistema operativo. -
En este caso se encuentra los distintos sistemas dependiendo del diseño interno de los
mismos. Entre ellos encontramos los sistemas monolíticos, los sistemas en capas, las
máquinas virtuales y el sistema cliente-servidor.
Sistemas monolíticos. –
Son sistemas pequeños, sencillos y limitados. No tienen una estructura definida, sino que
todos sus componentes se encuentran agrupados en un único programa. Cada conjunto de
procedimientos puede invocar a cualquiera de los otros procedimientos. Un ejemplo de este
tipo de sistemas es el sistema MS-Dos.
Sistema por capas. -
El sistema se organiza como una jerarquía de capas, donde cada capa ofrece una interfaz a la
capa superior, y sólo utiliza los servicios que ofrece la capa inferior. Cada capa tiene funciones
específicas, así cada capa se encarga de una parte del sistema operativo.
Sistema cliente-servidor. –
El sistema consiste en un conjunto de módulos autónomos, los cuales ponen a disposición de
los demás una serie de servicios o competencias. Es decir, cada uno de los módulos actúan
como servidores que atienden las peticiones de otros módulos que actuarían como clientes.
Este tipo de sistema es muy apropiado para los sistemas distribuidos.
El corazón del sistema de creación de las máquinas virtuales es conocido como monitor de
máquina virtual, y se ejecuta sobre el hardware proporcionando varias máquinas virtuales a
la siguiente capa de software. Se puede decir que estas máquinas virtuales son copias exactas
del hardware desnudo donde se incluyen los recursos principales de una computadora, como
es el kernel, dispositivos E/S, interrupciones, memoria principal, etc.
Cada máquina virtual puede ejecutar cualquier sistema operativo debido a la circunstancia
comentada de que cada una es una copia exacta del hardware. En el caso de la figura anterior
se puede apreciar como distintos sistemas operativos monousuarios (CMS, Sistema Monitor
de Conversaciones), cuando realizan una llamada al sistema por medio de algún programa,
ésta salta al sistema operativo de la propia máquina virtual, no a la VM/370 como hubiera
ocurrido en una máquina real, entendiendo que esta sería la capa de software por encima de
la capa de hardware de la computadora.
Cada máquina virtual puede ejecutar cualquier sistema operativo debido a la circunstancia
comentada de que cada una es una copia exacta del hardware. En la figura anterior se puede
apreciar como distintos sistemas operativos monousuarios (CMS, Sistema Monitor de
Conversaciones), cuando realizan una llamada al sistema por medio de algún programa, ésta
salta al sistema operativo de la propia máquina virtual, no a la VM/370 como hubiera ocurrido
en una máquina real, entendiendo que esta sería la capa de software por encima de la capa
de hardware de la computadora.
Respecto a las máquinas virtuales de sistema podemos decir que hay dos tipos o clases que
son las más comunes; las que se ejecutan directamente sobre el hardware o las que se
ejecutan sobre un sistema operativo.
La diferencia entre una u otra es que en la primera no tenemos un sistema operativo entre
las máquinas virtuales y el hardware, en cambio en las segundas, las máquinas virtuales se
sitúan en un nivel superior al del sistema operativo que alberga el monitor de máquinas
virtuales (VMM). Vemos dichas diferencias en las siguientes figuras 2 y 3.
Línea de tiempo de la evolución de los sistemas operativos.
https://www.timetoast.com/timelines/linea-de-tiempo-de-la-evolucion-de-los-sistemas-operativos-
03f9da48-d588-4e76-b085-124a8a20f1d9
https://www.timetoast.com/timelines/linea-del-tiempo-de-los-sistemas-operativos-d99e1d46-398f-
4845-9904-38a8451ac9b7
https://www.timetoast.com/timelines/linea-del-tiempo-del-hardware-68d1c81b-6aab-4108-b05d-
682571bf58b8
https://www.timetoast.com/timelines/linea-del-tiempo-de-la-historia-del-software-libre-ec10b458-
cb9a-4796-8b33-bc522e2b7ad8
Realizar una síntesis, añadir 10 características, 10 ventajas y 10 desventajas (Tabla): 1) Línea de tiempo
de la evolución de los sistemas operativos, 2) Línea de tiempo de la evolución del hardware y 3) Línea de
tiempo del software: propietario y libre. Nota: Añadir a la Tarea2
II UNIDAD
ADMINISTRACIÓN DE RECURSOS DE LOS SISTEMAS
OPERATIVOS
Esta capa brinda interfaces que exponen las capacidades de hardware de los
dispositivos para la interacción con la API de java, brinda diferentes módulos que
implementan interfaces para el uso de componentes de hardware, por ejemplo,
para el uso de cámara, GPS, bluetooth, etc.
Además, es importante recalcar que la HAL, consiste en varios módulos de
biblioteca y cada uno de estos implementa una interfaz para un tipo específico de
componente de hardware, como el módulo de la cámara o de Bluetooth.
Cuando el marco de trabajo de una API realiza una llamada para acceder a
hardware del dispositivo, el sistema Android carga el módulo de biblioteca para el
componente de hardware en cuestión.
3. Android Runtime
Nota: Si desarrollas una app que requiere C o C++, puedes usar el NDK de
Android para acceder a algunas de estas bibliotecas de plataformas
nativas directamente desde tu código nativo.
Todo el conjunto de funciones del SO Android está disponible mediante API escritas
en el lenguaje Java. Estas API son los cimientos que necesitas para crear apps de
Android simplificando la reutilización de componentes del sistema y servicios
centrales y modulares, como los siguientes:
- Proveedores de contenido que permiten que las apps accedan a datos desde otras
apps, como la app de Contactos, o compartan sus propios datos.
Nota: Los desarrolladores tienen acceso total a las mismas API del marco de
trabajo que usan las apps del sistema Android.
Estas apps brindan una alternativa para los usuarios, permitiendo que no sea
necesario la instalación de otras aplicaciones externas, sin embargo, no lo impide.
Características de Android
• Uno de los SO más populares y usados en la actualidad.
• Adaptable a cualquier tipo de hardware.
• Portabilidad.
• Arquitectura basada en componentes.
• Dispositivos con acceso a internet
• Servicios incorporados
• Seguridad
• Optimización, memoria y potencia.
•