Está en la página 1de 31

SISTEMAS OPERATIVOS

Ing. Milton E Escobar S V1.0 17/10/2023


I UNIDAD
INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS

Los sistemas operativos son elementos muy importantes a lo


que las Ciencias de la Computación se refiere.

Un sistema Operativo (OS) es un programa que administra el


hardware de la computadora, proporcionando una base para
programas de aplicación, actuando como un intermediario entre
el usuario y el hardware de la computadora
ESTRUCTURA BÁSICA DE UN SISTEMA OPERATIVO

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-).

2. Sistema Operativo (Por el momento lo dejamos aparte) Ojo:


El Sistema Operativo también es una especie de software de
sistema. EL SO se encuentra entre el Hardware y los usuarios

3. Sistema o Programas de Aplicación, aquí existen dos tipos de


software: a) Software del Sistema: Controlar o Modificar
Directamente el Hardware de la Computadora y b) Software
de Aplicación: Programas utilizados para realizar una tarea
específica y que pueden ser utilizados directamente por los
usuarios (Procesador de Texto- Microsoft Office, Microsoft
Excel -Spreadsheets, Compiladores-Devc-Escribir código
informático C – C++ - Java, Editores de Texto – WordPad,
Navegadores Web – Google Chrome -Mozilla Firefox, Internet
Explorer ).

4. Usuarios: Son todos los individuos que utilizan los programas


de aplicación.

Nota1: Si no existiese sistema operativo, no podría utilizar el


hardware para realizar cada tarea especifica, realizándolo de
manera explícita, es decir por cada tarea por más pequeña o
minuciosa que sea, se debe decir al hardware que hacer, a través
de escribir código fuente para cada acción. Volviéndose una
tarea muy tediosa y difícil de realizar si no se dispone del Sistema
Operativo (Decir manualmente al Hardware que hacer).
Haciendo que la gente no pudiese usarlo incluso en una tarea
sencilla. Razón por la cual el SO es de suma importancia.
Nota: El sistema operativo actúa de intermediario entre el
hardware de la computadora y el usuario.
El sistema operativo gestiona:

1. La interface que cada programa dispone.


2. El Hardware que requiere para poder realizar una tarea y
cuanta memoria asignar.
3. El Hardware para determinar donde guardar lo realizado.
4. El Hardware para determinar cómo guardar lo realizado.
TIPOS DE SISTENAS OPERATIVOS(PRINCIPALES).
1. Sistema Operativo por lotes (Batch OS)
2. Sistema Operativo de tiempo compartido
3. Sistema Operativo distribuido
4. Sistema Operativo de red
5. Sistema Operativo en tiempo real
6. Sistema Operativo de programación múltiple o procesamiento
múltiple
7. Sistema Operativo multitarea

NOTA: Todos estos sistemas operativos funcionan de manera


distinta de acuerdo a la necesidad que se requiera
Principales Funciones de los Sistemas Operativos:

1. Interfaz entre el usuario y el hardware


2. Asignación de recursos (Unidad Central de Procesamiento,
Memoria, Dispositivos de Entrada y Salida) Nota: Los Recursos
no son ilimitados, ya que tenemos recursos
limitados(hardware)
Como se asignan los recursos de manera que todos obtengan
su parte y trabajen eficientemente?
Todo esto lo realiza el sistema operativo, asignando recursos
a distintos usuarios y a diferentes procesos de manera
eficiente

3. Además, realiza la gestión de la memoria, la seguridad, entre


las funciones más importantes
Objetivos de los Sistemas Operativos:

1. Conveniencia. - Se refiere que, si no tendríamos SO, sería


tedioso o difícil ejecutar incluso la tarea más pequeña para los
usuarios. Al tenerlo hace que todo sea más fácil para los
usuarios comunicarse con el hardware de la computadora,
volviéndose en algo conveniente(comodidad).
2. Eficiencia. - Si no disponemos del SO y tenemos varios
usuarios tratando de acceder a los recursos como
administraríamos eficientemente los recursos, para que cada
persona obtenga la cantidad adecuada de dichos recursos.
Hacerlo de manera manual es complicado y difícil, dejando de
lado la eficiencia. Por lo que el SO ayuda a la administración
adecuada y eficiente.
Nota: Algunos SO están diseñados principalmente para la
eficiencia y otros para la eficiencia. Pero la mayoría están
diseñados para ambos objetivos

Conceptos básicos del sistema operativo.

- Un sistema informático moderno de propósito general consta


de uno o más CPUs y varios controladores de dispositivos
conectados a un bus común, que proporciona acceso a la
menoría compartida.
Conceptos básicos del sistema operativo.
CPU. - parte principal similar al cerebro, aquí es donde se
realizan todos los cálculos y procesamientos en un computador.
Controladores o Adaptadores. – Son los encargados de la
manera en que funcionan de manera correcta los dispositivos
conectados al computador, como son los discos duros (disk
controller), ratón (usb controller), teclado (usb controller),
impresora (usb controller), monitor (adaptador de video), etc.

Nota: Cada controlador está a cargo de un tipo especifico de


dispositivo.

Nota: Tanto el CPU y los controladores o adaptadores están


conectados a la memoria compartida, mediante un autobús
común.
Pudiendo ejecutarse simultáneamente(concurrentemente)
compitiendo por el ciclo de memoria (RAM (memoria de acceso
aleatorio) -Memoria Principal).

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.

CPU. - parte principal similar al cerebro, aquí es donde se


realizan todos los cálculos y procesamientos en un computador.
Controladores o Adaptadores. – Son los encargados de la
manera en que funcionan de manera correcta los dispositivos
conectados al computador, como son los discos duros (disk
controller), ratón (usb controller), teclado (usb controller),
impresora (usb controller), monitor (adaptador de video), etc.

Nota: Cada controlador está a cargo de un tipo especifico de


dispositivo.

Nota: Tanto el CPU y los controladores o adaptadores están


conectados a la memoria compartida, mediante un autobús
común.
Pudiendo ejecutarse simultáneamente(concurrentemente)
compitiendo por el ciclo de memoria (RAM (memoria de acceso
aleatorio) -Memoria Principal).

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?

Para garantizar un acceso ordenado a la memoria compartida,


se proporciona un controlador de memoria, cuya función es
sincronizar el acceso a dicha memoria (cantidad memoria
necesaria).

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?

El Kernel o núcleo de un sistema operativo sirve para


administrar los recursos de hardware solicitados por los
diferentes elementos de software y hacer de intermediario
decidiendo a que y cuando se concede este acceso evitando así
sobrecarga del sistema, recursos innecesarios y acceso a
software malicioso al propio Kernel y llegar a poder controlar así
todo el sistema. De este modo el Kernel sirve como elemento de
seguridad teniendo que pasar por varias capas antes de poder
tener acceso, además tiene que distribuir los recursos de
manera eficiente y ordenada para que el Hardware trabaje
junto al Software de la mejor manera posible.
Aunque usualmente relacionamos un Kernel o un núcleo del
sistema operativo a un PC, también está presente y sirve para
hacer funcionar todos los computadores que podemos
encontrar hoy en día, como por ejemplo un ordenador de a
bordo de un coche o un barco, una raspberry PI que ejecuta una
versión adaptada de Linux Debian o los dispositivos móviles con
Android e iOS, que también disponen de un Kernel basado en
Linux / Unix.
Ejemplo si ocasionalmente conectamos un móvil para usarlo
como webcam con DroidCam, este Kernel se encarga de
conceder los permisos necesarios al software para gestionar y
poder tener la imagen y el audio para poder usarla en
algún software de videoconferencia o reuniones si por ejemplo
teletrabajamos desde casa o cualquier otro lugar.

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.

¿Cuál es la ubicación fija?

La ubicación fija generalmente contiene la dirección inicial


(donde debe iniciar su ejecución), donde se encuentra la rutina
de servicio de la interrupción.

¿Qué es la rutina de servicio?


Lugar donde se escribe lo que la interrupción realmente quiere
hacer o ejecutar.

Nota: Cada interrupción tiene su rutina de servicio, mas


conocida como Rutina de Servicio de Interrupción (ISR-Interrupt
Service Routine).
Nota: Todo lo mencionado anteriormente es lo primero que
hace la CPU cuando se interrumpe, y luego “Se ejecuta por
completo la rutina del servicio de interrupción” (escrito en dicha
rutina) es decir se reanuda el cálculo interrumpido.

En pocas palabras como responde la CPU ante una


interrupción:
Cabe destacar que la CPU ya estaba haciendo algo antes,
entonces cuando surge la interrupción, transfiere su ejecución a
la rutina del servicio de interrupción, luego lo ejecuta y cuando
termina la CPU puede volver al lugar de donde vino y reanuda lo
que estaba haciendo
Estructura de almacenamiento:

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.

Lo más importante es hablar de la menoría principal


¿Cuál es la función de la memoria principal?
En un computador todo se carga en la memoria principal, y es allí donde se ejecuta, almacenándose las
instrucciones en memoria secundaria.

La memoria principal es rápida pero su tamaño es limitado(pequeño) y es de naturaleza volátil. Por lo


que no se puede almacenar todos los programas y datos en memoria principal. Razón por la cual
tenemos la memoria secundaría allí es donde se graba los datos y demás cosas que necesitamos. Y
cuando hay que cargarlo y ejecutarlo, se carga en memoria principal y luego se ejecuta.

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.

¿Cuándo queremos leer un libro que hacemos?


1. Sacas el libro de la biblioteca, lo dejas sobre la mesa y luego lo leemos.
2. Asumimos que leemos solo los libros que están sobre la mesa que de no ser no gustaría leerlos.
3. Cada vez que se quiere leer se toma un libro de la biblioteca, lo guardas sobre la mesa y luego lo
lees
4. Si la mesa es muy pequeña, ¿qué pasa? Solo se puede tener un libro a la vez en la mesa.
5. Entonces si solamente se puede conservar un libro a la vez, no puedes usar más de un libro para
estudiar. Incluso si deseas recomendar dos o tres libros para estudiar, no puede hacerse porque
solo se puede acomodar un libro en la mesa. Sin importar que tan grande es tu biblioteca. La
cantidad de libros que puedes estudiar a la vez depende del tamaño de la mesa.
6. Entonces la mesa se puede considerar como la memoria principal.
7. De igual manera, incluso si tenemos una memoria secundaría grande, por que cargas y descargas
cosas en la memoria principal.
8. Nota: Pero si tienes una memoria principal más grande puedes cargar varias cosas y tu computadora
funciona más rápido. Y al contrario si es más pequeña, las cosas se cargarán de manera más lenta.
Por eso cuando tu RAM es mas grande y escuchas audio en tu computador funciona más rápido.

La memoria principal es volátil en comparación con la memoria secundaria que no es volátil.

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.

Cada controlador de dispositivo está a cargo de un tipo especifico de dispositivo. El controlador de


dispositivo mantiene dos cosas: 1) El almacenamiento en un búfer local y 2) El conjunto de registros de
propósito especial. Nota: Es importante conocer que los controladores de dispositivo, mantienen un
almacenamiento intermedio local.
¿Como interactúan los controladores de dispositivo con el sistema operativo?

• Se requiere una interfaz adecuada que permita que el controlador del dispositivo interactúe con el
SO.

¿Como funciona una operación básica de E/S?

• 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.

¿Porque carga los registros apropiados?


• Esos registros se cargan porque en esos registros se tiene la información o los datos sobre cual es la
acción o operación exacta de la E/S que debe realizar.

¿Qué es un Sistema Operativo?


Un sistema operativo se puede definir como la capa de software que equipa a las computadoras, cuya
labor es la de administrar y gestionar todo el hardware que interactúa en la misma y proporcionar una
interfaz sencilla a los programas para comunicarse con dicho hardware, entendido éste como los
procesadores, memoria, discos duros, teclado, pantalla, impresoras, interfaz de red y todo tipo de
dispositivo de E/S.

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.

Si un sistema operativo se ejecuta en una computadora con un solo procesador se clasifican


en sistemas monoprogramados y multiprogramados. Sin embargo, si tiene varios
procesadores se habla de sistemas multiprocesamiento.

Sistema monoprogramado. - Sólo se permite la ejecución de un programa en el sistema,


por lo que el programa se carga en memoria y permanece en ella hasta su finalización.

Sistema multiprogramado o multitarea. - Estos sistemas pueden ejecutar simultánea


varias tareas y de varios usuarios. El sistema operativo mantiene varios trabajos en la
memoria, y mientras uno está a la espera de realizar alguna tarea, por ejemplo, la
terminación de una operación de entrada/salida (E/S), ya sea el presionar una tecla u otra
tarea, el sistema operativo selecciona otro trabajo para que la CPU lo ejecute y esta última
no quede vacía de trabajo mientras estos esperan su ejecución. Hoy en día todos los sistemas
operativos son multitarea.

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 de procesamiento por lotes (Batch). - En este tipo de sistemas no existe


intervención del usuario durante la ejecución de los trabajos. Cada trabajo consiste en una
relación de pasos secuenciales, que al juntarse forman un lote. Estos procesamientos son
largos y no tienen límite de tiempo en su ejecución.

Sistemas de tiempo compartido. - En este tipo de sistemas los procesos se ejecutan de


manera simultánea mientras la CPU conmuta entre ellos, de manera que el usuario es ajeno
a la misma. En estos sistemas los usuarios sí pueden interactuar con los programas durante
su ejecución.

Sistemas de tiempo real. - Se caracterizan porque maximizan el tiempo en el que se manda


la información, por ello se utilizan para procesos delicados, como por ejemplo la ejecución
por parte del brazo de un robot en una planta de ensamblaje de vehículos. Dicho robot debe
obtener la información de ejecución dentro de unos márgenes estrictos de tiempo, ni antes
ni después.
3. Según el número de usuario. –
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.

Sistema operativo de computadora personal. - Se puede también denominar sistema


monousuario. Atiende al número de usuarios que utilizan dicho sistema al mismo tiempo. En
el caso de los monousuario hasta que la persona que está utilizando el equipo no termina,
éste no puede ser utilizado por otra. El sistema operativo de computadora personal tiende a
ser monousuario, ya que es un sistema enfocado a maximizar la comodidad del usuario y a
responder con rapidez a las necesidades de éste. Como ejemplo actual de este sistema
podemos mencionar a Windows 7, que excepto en algunas versiones mediante la
herramienta de terminal server se puede convertir en multiusuario, la mayoría es
monousuario.

Sistema operativo servidor o multiusuario. – Al contrario que el anterior, en este sistema


concurren más de un usuario de forma simultánea desde diferentes ubicaciones. Por
ejemplo, el caso de los servidores web, los cuales sirven las páginas alojadas en los mismos a
través de internet a todo aquel que las visite. Entre los sistemas operativos de servidor
encontramos a UNIX, Windows Server y Linux.

4. Según el número de computadoras. –


Dependiendo del número de computadoras que formen parte del sistema, se puede hablar
de sistemas centralizados o sistemas distribuidos.

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.

Sistema de máquina virtual. –


El concepto de máquina virtual surge con el sistema VM/370 de IBM, en el que se separa las
dos funciones que proporciona un sistema de tiempo compartido o multiusuario, como son
la multiprogramación y la abstracción del hardware.

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.

Esta idea de la virtualización también se encuentra en la ejecución de programas, en lo que


se conoce como máquinas virtuales de proceso o máquinas virtuales de aplicación. Fue Sun
Microsystem quién al inventar el lenguaje de programación Java, también inventó la máquina
virtual java (JVM). Consiste en que, al ejecutarse una aplicación en este lenguaje, las
instrucciones no son ejecutadas por el procesador ni por el hardware de la máquina, sino que
son ejecutadas por un software, en este caso por la JVM que es una máquina virtual, que las
interpreta, y lleva a cabo una acción sobre el hardware a partir de estas. Esta característica
de ser portable es fundamental, ya que se puede ejecutar en cualquier máquina que tenga
un intérprete de JVM sin necesidad de cambio del código, aun ejecutándose en distintos
sistemas operativos, e incluso acceder vía internet a aplicaciones remotas y ejecutarse.
En la siguiente figura se muestra la estructura de dicho sistema.

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

Línea de tiempo de la evolución del hardware.

https://www.timetoast.com/timelines/linea-del-tiempo-del-hardware-68d1c81b-6aab-4108-b05d-
682571bf58b8

Línea de tiempo del software: propietario y libre

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

GESTIÓN DEL SISTEMA OPERATIVO


Respecto a la gestión del hardware que realiza el sistema operativo, consiste en administrar
los recursos de una computadora cuando dos o más programas que se ejecutan
simultáneamente requieren usar el mismo recurso (tiempo de CPU, memoria, etc.), por lo
que será el sistema operativo el encargado de ordenar y compartir dichos elementos en dos
formas: en el tiempo y en el espacio. Cuando un recurso se multiplexa (comparte) en el
tiempo, diferentes programas o usuarios se turnan en su uso, un ejemplo de ello es la cola
de impresión que genera el sistema operativo indicando quien imprime primero y quien a
continuación. El otro tipo de multiplexación es en el espacio, en este caso lo que ocurre es
que el sistema reparte el recurso entre los usuarios y programas. Un ejemplo típico es el uso
de la memoria principal, donde, dependiendo del tamaño de la misma, pueden residir
distintos programas a la vez a la espera del uso de la CPU.

Concepto Proceso: Básicamente es un entorno formado por todos los recursos


necesarios para ejecutar programas. Desde el punto de vista del SO, un proceso es un objeto
más que hay que gestionar y al cual hay que dar servicio.
Arquitectura de los Sistemas Operativos.
Arquitectura Android.
Android es una pila de software de código abierto basado en Linux creada para una
variedad amplia de dispositivos y factores de forma. En el siguiente diagrama, se
muestran los componentes principales de la plataforma Android.

API (Application Programing Interface): Es una aplicación que puede que


permite que una aplicación pueda conectarse con otras. Permitiendo que esta
no sea aislada.
1. Kernel de Linux

La base de la plataforma Android es el kernel de Linux. El kernel se encarga


de gestionar los recursos de la CPU, la memoria, los sistemas de archivos y
básicamente todas las tareas más básicas que son necesarias para el
funcionamiento del móvil, incluyendo los procesos de cada aplicación.

Esta capa es la base de la plataforma, en ella se definen procesos para la


administración de memoria de bajo nivel, proporciona de servicios de seguridad,
multiprocesos, soporte de drivers para dispositivos, esta capa es la única
dependiente del hardware.

Nota: El tiempo de ejecución de Android (ART), se basa en el kernel de Linux, para


el manejo de las funcionalidades, como generación de subprocesos y la
administración de memoria de bajo nivel. Además, el Kernel de Linux permite que
Android aproveche funciones de seguridad claves, así como también desarrollar
controladores de hardware.

2. Capa de abstracción de hardware (HAL)

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

Está basado en el concepto de máquina virtual usado en java y brinda todo el


entorno de ejecución necesario para probar las aplicaciones, inicialmente antes de
Android 5(api 21) se usaba el entorno de ejecución Dalvik, pero para versiones
iguales o superiores se remplaza por ART (tiempo de ejecución de Android) que
optimiza este proceso permitiendo ejecutar varias máquinas virtuales en
dispositivos de baja memoria, mejorando también la compatibilidad con la
depuración y optimización de recursos.

Adicional vincula nuevas mejoras en cuanto a compatibilidad y acceso a librerías de


java.

4. Bibliotecas C/C++ nativas

Muchos de los componentes centrales de Android se basan en código nativo que


requiere librerías escritas en C y C++, esta capa permite precisamente acceder a
componentes activos dependiendo de nuestras necesidades, por ejemplo, para el
trabajo con librerías 2D, 3D, Webkit, SSL, entre otros.

Para el desarrollo nativo de C o C++ se debe usar el NKD de Android (Native


Development Kit)

Muchos componentes y servicios centrales del sistema Android, como el ART y la


HAL, se basan en código nativo que requiere bibliotecas nativas escritas en C y C++.
La plataforma Android proporciona API del marco de trabajo de Java para exponer
la funcionalidad de algunas de estas bibliotecas nativas a las apps. Por ejemplo,
puedes acceder a OpenGL ES a través de la API de OpenGL de Java del marco de
trabajo de Android para agregar a tu app compatibilidad con los dibujos y la
manipulación de gráficos 2D y 3D.

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.

5. Marco de trabajo de la API de Java

El conjunto de funciones de Sistema operativo está disponible mediante API’s


desarrolladas en JAVA, esta capa brinda el soporte para la creación de actividades,
manejo del ciclo de vida, componentes gráficos, elementos de localización, entre
otras funcionalidades, esto independientemente del lenguaje con el que se decida
desarrollar, sea java o kotlin los cuales requieren SDK.

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:

- Un administrador de recursos que te brinda acceso a recursos sin código, como


strings localizadas, gráficos y archivos de diseño.

- Un administrador de notificaciones que permite que todas las apps muestren


alertas personalizadas en la barra de estado.

- Un administrador de actividad que administra el ciclo de vida de las apps y


proporciona una pila de retroceso de navegación común.

- Proveedores de contenido que permiten que las apps accedan a datos desde otras
apps, como la app de Contactos, o compartan sus propios datos.

- Un sistema de vista enriquecido y extensible que puedes usar para compilar la IU


de una app; se incluyen listas, cuadrículas, cuadros de texto, botones e incluso un
navegador web integrable.

Nota: Los desarrolladores tienen acceso total a las mismas API del marco de
trabajo que usan las apps del sistema Android.

6. Aplicaciones del Sistema


Esta capa está formada por el conjunto de aplicaciones instaladas por defecto en
una máquina Android, brinda apps para la gestión de calendario, acceso a internet,
mensajería, correo electrónico, contactos, entre otros.

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.

También podría gustarte