
sistemas operativos
SISTEMAS INFORMATICOS
Es un sistema que permite almacenar y procesar información; es el conjunto de partes interrelacionadas: hardware, software y personal informático.
Ciclo de un sistema informatico

Planificación:
- Definir los objetivos del sistema: automatizar el registro de productos en la base de datos al llegar la mercancía y actualizar la base de datos al vender productos.
- Establecer los recursos necesarios: hardware (lectores de QR), software (base de datos, aplicación para leer QR), personal para implementación y mantenimiento.
Análisis de Requerimientos:
- Entrevistar a los usuarios y entender sus necesidades y expectativas.
- Identificar los flujos de trabajo actuales para la entrada y salida de productos.
- Documentar los requisitos funcionales y no funcionales del sistema.
Diseño:
- Diseñar la arquitectura del sistema, incluyendo la interfaz de usuario para el lector de QR y la integración con la base de datos.
- Definir la estructura de la base de datos para almacenar la información de los productos.
- Planificar la seguridad del sistema para proteger los datos sensibles.
Desarrollo:
- Implementar la aplicación para leer los códigos QR.
- Desarrollar el backend para procesar la información leída y actualizar la base de datos.
- Integrar el sistema con el hardware (lectores de QR) y la base de datos.
Prueba:
- Realizar pruebas unitarias para cada componente del sistema.
- Realizar pruebas de integración para asegurar que todos los módulos funcionan correctamente juntos.
- Ejecutar pruebas de aceptación con usuarios finales para validar que el sistema cumple con los requisitos.
Integración y Ejecución:
- Implementar el sistema en el entorno de producción.
- Realizar pruebas finales en el entorno de producción para garantizar su estabilidad y rendimiento.
Operación y Mantenimiento:
- Monitorear el sistema en producción para detectar posibles problemas.
- Proporcionar soporte técnico a los usuarios.
- Realizar actualizaciones y mejoras periódicas según las necesidades del negocio.

TIPOS DE KERNEL
- Kernel monolítico: es un Kernel de gran tamaño que puede gestionar todas las tareas. Se encarga de la gestión de memoria y procesos, así como de la comunicación entre los procesos y el soporte de las diferentes funciones de los drivers y el hardware. Los sistemas operativos que recurren al Kernel monolítico son Linux, OS X y Windows.
- Microkernel: los Kernel que están diseñados con pequeños tamaños tienen una clara función: evitar el colapso total del sistema en caso de un fallo. Para cumplir con todas las tareas como un Kernel monolítico cuenta con diferentes módulos. Es curioso, pero hasta ahora solo el Mach de OS X es el único que utiliza el microkernel.
- Kernel híbrido: combinación entre el microkernel y el Kernel monolítico. Nos encontramos ante un Kernel grande, pero compacto y que puede ser modulado y otras partes del mismo Kernel pueden cargarse de manera dinámica. Es utilizado en Linux y OS X.
- Nanokernel: si el microernel es pequeño, este es todavía más reducido, pero su uso está destinado a sistemas embebidos ya que el nivel de fiabilidad es mayor.
- Exokernel: la estructura que propone un exokernel es innovadora ya que se estructura de manera vertical. Los núcleos son pequeños y su desarrollo tiene fines investigativos. En un exokernel la toma de decisiones está a cargo de los programas, para hacer el uso de los recursos del hardware en ciertas bibliotecas. El Kernel se limita a evitar errores en los permisos de hardware y eludir conflictos.
- Unikernel: es un Kernel destinado a la eliminación de capas intermedias entre el hardware y las aplicaciones, ya que busca simplificar lo más posible todos los procesos. Es habitual en dispositivos de bajo consumo como los IoT.
- Anykernel: otro concepto innovador que busca conservar las cualidades de los Kernel monolíticos, pero también facilitar el desarrollo de los controladores, al mismo tiempo que ofrece mayor seguridad al usuario.

SISTEMAS OPERATIVOS MODERNOS
Problemas
1. ¿Qué es la multiprogramación?
La multiprogramación es una técnica que permite que múltiples programas (procesos) compartan el tiempo de CPU. Esto se logra mediante el cambio rápido entre procesos, dando a cada uno un "slice" de tiempo antes de cambiar al siguiente.
2. ¿Qué es spooling? ¿Cree usted que las computadoras personales avanzadas tendrán spooling como característica estándar en el futuro?
El spooling es una técnica para almacenar temporalmente los datos de salida (como en una impresora) para que el CPU pueda continuar con otros trabajos. Creo que el spooling seguirá siendo una característica estándar en computadoras personales, especialmente para manejar impresión en segundo plano.
3. En las primeras computadoras, cada byte de datos leídos o escritos se manejaba mediante la CPU (es decir, no había DMA). ¿Qué implicaciones tiene esto para la multiprogramación?
Sin DMA, la CPU tenía que manejar cada byte de E/S, lo cual consumía mucho tiempo de CPU. Esto limitaba severamente la capacidad de multiprogramar, ya que la CPU estaba ocupada de forma síncrona manejando la E/S en lugar de ejecutando otros programas.
4. La idea de una familia de computadoras fue introducida en la década de 1960 con las mainframes IBM System/360. ¿Está muerta ahora esta idea o sigue en pie?
La idea de una familia de computadoras con compatibilidad de software a través de diferentes modelos sigue vigente hoy en día, como lo demuestra la amplia familia de computadoras x86 de Intel/AMD. Así que esta idea pioneering de IBM aún se mantiene.
5. Una razón por la cual las GUI no se adoptaron con rapidez en un principio fue el costo del hardware necesario para darles soporte.
¿Cuánta RAM de video se necesita para dar soporte a una pantalla de texto monocromático de 25 líneas x 80 caracteres?
Para una pantalla monocromática se requiere un bufer de 2000 bytes
¿Cuánta se necesita para un mapa de bits de 1024 768 píxeles y colores 24 bits?
1024 × 768 píxeles de mapa de bits de color de 24-bit requiere 2.359.296 bytes
¿Cuál fue el costo de esta RAM con precios de 1980 (5 dólares/KB)?
En 1980 a 5 dólares por KB esto costaba 11,796 dólares (para la pantalla bitmap de 2,359 KB)
¿Cuánto vale ahora?
Actualmente costaria, probablemente menos de $ 1/MB
6. Hay varias metas de diseño a la hora de crear un sistema operativo, por ejemplo: la utilización de recursos, puntualidad, que sea robusto, etcétera. De un ejemplo de dos metas de diseño que puedan contradecirse entre sí.
Un ejemplo sería utilización de recursos versus puntualidad en los tiempos de respuesta. Maximizar la utilización podría implicar largos tiempos de espera, mientras que mejorar los tiempos de respuesta reduce la utilización.
7. ¿Cuál de las siguientes instrucciones debe permitirse sólo en modo kernel?
a) Deshabilitar todas las interrupciones.
b) Leer el reloj de la hora del día.
c) Establecer el reloj de la hora del día.
d) Cambiar el mapa de memoria.