Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CAPÍTULOS 1 Y 2
1) Hardware
Proporciona recursos informáticos básicos (CPU,memoria, dispositivos de E/S)
2) Sistema Operativo
Controla y coordina el uso del hardware entre los diversos programas de aplicación
para distintos usuarios
3) Programas y aplicaciones
Define las formas en que se utilizan los recursos del sistema para resolver los problemas
de los usuarios (compiladores, sistemas de bases de datos, videojuegos, programas
empresariales)
4) Usuarios
Cada computador contiene una placa base, dentro de él existe un programa llamado BIOS que
contiene software de entrada/salida, cuando se inicia la computadora, se inicia el BIOS, este
verifica la RAM y si el teclado y otros dispositivos están correctamente conectados. Comienza
escaneando los buses PCIe y PCI, luego el BIOS determina el dispositivo de arranque probando
una lista almacenada en la CMOS, intenta arrancar desde un CD o USB si esta presente, sino
se arranca desde el disco duro, seguidamente el primer sector del dispositivo de arranque se lee
en memoria y se ejecuta, este sector contiene un programa que examina tablas de particiones
para determinar qué partición está activa, se lee un cargador de arranque desde esa partición,
El cargador lee en el sistema operativo desde la partición activa y lo inicia.
Por último el S.O verifica los controladores de los dispositivos sino pide al usuario que ingrese
los controladores, si todo esta correcto el S.O carga en el núcleo los controladores, crea procesos
en segundo plano y ejecuta un programa de Inicio de sesión.
6. Explique los componentes de un Sistema Operativo
--Nucleo(Kernel): Parte primordial del S.O, administra todo el sistema, sincroniza todos los
procesos y a nivel de nucleo solo trabaja con procesos.
– Administración de procesos: Un proceso es un programa en memoria + CPU + acceso a
dispositivos + otros recursos.
Un proceso es una entidad activa, mientras que un programa es una entidad pasiva.
El sistema operativo es el encargado de proveer servicios para que cada proceso pueda realizar
su tarea. Entre los servicios se encuentran: Crear y destruir procesos, suspender y reanudar
procesos, proveer mecanismos para la sincronización y comunicación entre procesos, proveer
mecanismos para prevenir dead-locks o lograr salir de ellos.
– Administración de memoria: la memoria es un area de almacenamiento comun en
procesadores y dispositivos, el sistema operativo se encarga de: Mantener que partes de la
memoria están siendo usadas, y por quien. Decidir cuales procesos serán cargados a memoria
cuando exista espacio de memoria disponible, pero no suficiente para todos los procesos que
deseamos. Asignar y quitar espacio de memoria según sea necesario.
– Subsistema de Entrada/Salida: El S.O debera ocultar caracteristicas especificas y ofrecer
servicios comunes a todos estos son: Montaje y desmontaje de dispositivos Una interfaz entre
el cliente y el sistema operativo para los device drivers. Técnicas de cache, buffering y spooling.
Device drivers específicos
– Administración de Almacenamiento secundario: La memoria Ram es volatil y pequeña
por lo que el S.O se encarga de : Administrar el espacio libre, Asignar la información a un
determinado lugar, Algoritmos de planificación de disco (estos algoritmos deciden quien utiliza
un determinado recurso del disco cuando hay competencia por él).
– Subsistema de archivos: Proporciona una vista uniforme de todas las formas de
almacenamiento, implementando el concepto de archivo como una colección de bytes. El
Sistema Operativo deberá proveer métodos para: Abrir, cerrar y crear archivos, Leer y escribir
archivos
– Sistema de protección: Por protección se hace referencia a los mecanismos por los que se
controla el acceso de los procesos a los recursos. En un sistema multiusuario donde se ejecutan
procesos de forma concurrente se deben tomar medidas que garanticen la ausencia de
interferencia entre ellos. Estas medidas deben incorporar la posibilidad de definir reglas de
acceso, entre otras aspectos.
Manipulación de errores
El sistema deberá tomar decisiones adecuadas ante eventuales errores que ocurran, como fallo
de un dispositivo de memoria, fallo en un programa, etc. El sistema operativo necesita detectar
constantemente los posible errores. Estos pueden producirse en el hardware del procesador,
memoria, en un dispositivo de E/S o en los programas de usuario. Para cada tipo de error, el
sistema operativo debe llevar a cabo la operación apropiada para asegurar el funcionamiento
correcto y coherente.
Asignación de recursos
Cuando hay varios usuarios, o hay varios trabajos ejecutándose al mismo tiempo, deben
asignarse a cada uno de ellos los recursos necesarios. El sistema operativo gestiona muchos
tipos diferentes de recursos; algunos pueden disponer de código de software especial que
gestionen su asignación, mientras que otros pueden tener código que gestione de forma mucho
más general su solicitud y liberación.
Una computadora funciona en dos modos, que son el modo usuario y el modo kernel. Al operar
en modo kernel, la CPU puede ejecutar cualquier instrucción de su conjunto de instrucciones
y utilizar todas las características del hardware. El sistema operativo opera en modo kernel, lo
cual le da acceso completo al hardware.
En cambio los programas de aplicación operan en modo de usuario, el cual les permite ejecutar
sólo un subconjunto de las instrucciones y les da acceso sólo a un subconjunto de las
características. Aquí no se permiten las instrucciones de operaciones de E/S y protección de
la memoria.
9. Explique las estructuras de un Sistema Operativo
Sistemas monolíticos El sistema operativo se ejecuta como un solo programa en modo kernel.
Es una colección de procedimientos, unidos en un solo programa binario ejecutable grande.
Cada procedimiento libre de llamar a cualquier otro, no hay ocultamiento de la información.
Esto hace que sea difícil de manejar y de entender. Un bloqueo en cualquiera de estos
procedimientos derribará todo el SO.
Sistemas en capas
Una generalización del sistema monolítico es organizar el SO como una jerarquía de capas.
-La capa 0: se encargaba de la asignación del procesador, de cambiar entre un proceso y otro
cuando ocurran interrupciones o expiraban los temporizadores
-La capa 1: se encarga de la administración de la memoria. Asignaba espacio para los procesos
en la memoria principal y en un tambor de palabras de 512 K que se utilizaba para contener
partes de procesos (páginas).
-La capa 2:se encarga de la comunicación entre cada proceso y la consola del operador (es
decir,el usuario).
-La capa 3:se encarga de administrar los dispositivos de E/S y de guardar en búferes los flujos
de información dirigidos para y desde ellos.
-La capa 4:se encuentran los programas de usuario. No tenían que preocuparse por el proceso,
la memoria, la consola o la administración de E/S.
-La capa 5: esta el proceso operador del sistema.
Microkernels La idea del microkernel es lograr una alta confiabilidad dividiendo el sistema
operativo en módulos pequeños y bien definidos, donde solo el microkernel se ejecuta en modo
kernel y el resto se ejecuta como procesos de usuario ordinarios, de manera que un error en uno
de estos puede bloquear ese componente, pero no puede bloquear todo el sistema. Son
dominantes en aplicaciones en tiempo real, industriales, de aviónica y militares.
Sistemas cliente-servidor Distingue dos clases de procesos, los servidores que proporciona
algún servicio, y los clientes, que usan estos servicios. A menudo, la capa más baja es un
microkernel, pero eso no es obligatorio. La comunicación entre clientes y servidores se realiza
mediante la transmisión de mensajes. Es una abstracción que puede usarse para una sola
máquina o para una red de máquinas
Máquinas virtuales La definición de una máquina virtual es diseñar sobre un equipo real
distintas máquinas virtuales en las que puedan ejecutar sistemas operativos diferentes al mismo
tiempo.
11. Explique las tres dimensiones que debe puntuar una máquina virtual
Software que se ejecuta directamente sobre el Hardware real del equipo para controlar
el Hardware y monitorizar los sistemas operativos virtualizados. Los sistemas virtualizados se
ejecutan en otro nivel por encima del hipervisor.
● Escritorio virtual
● Plataformas de software
● Servidores
● Aplicaciones
● Almacenamiento
● Datos
Un trap (o una excepción), es una interrupción generada por software causada por un
error (por ejemplo, división por cero o acceso a memoria no válido) o por una solicitud
específica de un programa de usuario que lanza una llamada al sistema para obtener servicios
del sistema operativo. Además, la instrucción TRAP cambia del modo usuario al modo kernel
e inicia el sistema operativo. La mayoría de los demás traps son producidos por el hardware
para advertir acerca de una situación excepcional.
Una interrupción es algo generado por el hardware (dispositivos como el disco duro, tarjeta
gráfica, puertos de E/S, etc.). Estos son asincrónicos (es decir no ocurren en lugares predecibles
en el código de usuario) o "pasivo" ya que el controlador interrupción tiene que esperar a que
ocurran finalmente.
También puede ver un desvío como una especie de interrupción interna de la CPU, ya que el
controlador para el controlador de captura parece un controlador de interrupción (se guardan
los registros y los punteros pila, hay un modificador de contexto, la ejecución puede reanudarse
algunos casos en los que lo dejó).
● No SO primario
● Hypervisor está cargado del acceso a los dispositivos y su planificación.
● SO se ejecuta en modo kernel (modo usuario), no se ejecuta con todos los privilegios .
VM Alojada
Paravirtualization
Un SO es sólo código!
● Privilegiado vs. instrucciones no privilegiadas
● Aplicaciones regulares usan instrucciones no privilegiadas – Fácil para virtualizar
● Si las aplicaciones regulares ejecutan instrucciones privilegiadas, ejecutan una llamada trap
(interrupción)
VM captura la interrupción y emula la instrucción – Trap & Emulación
Considerando la instrucción Intel x86 popf
● Carga los indicadores de CPU que se registran a partir del contenido de la pila
● Si la CPU está en modo privilegiado -> todas las banderas son reemplazadas
● Si la CPU está en modo de usuario -> algunos indicadores son reemplazados
– No se genera traps
Configurar el hardware para que pueda ser utilizado directamente por la VM y compartido a
través de múltiples máquinas virtuales. (CPU y RAM).