# Introducción a SSOO Un SO es un conjunto de programas que permite manejar el hardware del equipo. Gestiona todos los recursos de hardware y provee servicios a los programas de aplicación de software, ejecutándose en modo privilegiado respecto de los restantes. Tiene entre sus objetivos la **seguridad y abstracción**. ## Seguridad Para evitar que un programa acceda direcciones de memoria indebidas, hace uso de un modo privilegiado para correr estas instrucciones y/o acceder a estas direcciones. ## Abstracción Esto ayuda a enmascarar los recursos físicos, permitiendo su manejo con funciones más generales. ## Funciones de SSOO - Gestión de memoria - Gestión de ficheros - Gestión de dispositivos (E/S) - Gestión de procesos - Gestión de la red - Protección y seguridad ## Generaciones - Generación I: - Tubos de vacío y tarjetas perforadas - Generación II: - Sustitución de válvulas de vacío con transistores - Comunicación con lenguajes más avanzados - Surge Fortran - Generación III: - Circuitos integrados - Multiprogramación - Microchip - Generación IV: - Los primeros PC - Invención del microprocesador - Generación V: - Cambio a IA - Generación VI: - Computadoras basadas en redes neuronales artificiales ## Ley de Moore Cada 2 años se duplica el número de transistores en un integrado. ## Tipos de SSOO - Por código: - Monolítico - Único programa dividido en subrutinas - Jerárquico - Varias capas de seguridad y privilegios que se denominan 'rings' - Por usuario: - Monousuario - Multiusuario - Por tareas: - Monotarea - Multitarea - Por proceso - Uniproceso: el SO sólo puede manejar un solo procesador - Multiproceso: puede manejar más de un procesador - Asimétrica: un procesador maestro que accede recursos de sistemas y distribuye la carga - Simétrica: los procesos son enviados por el SO a cualquier procesador disponible. ## Gestión de Procesos Cuando se ejecuta un programa se realizan tareas de cálculo de la CPU y labores de E/S. Cuando hay varios procesos, ambos pueden usar a la vez la E/S, pero **sólo uno** puede usar la CPU a la vez. Esta **multiprogramación** da una (falsa) sensación de procesos en paralelo. Distinguimos entre dos tipos de procesos: - Los limitados por proceso: alto consumo CPU, bajo en E/S - Los limitados por E/S: bajo consumo CPU, alto en E/S Un proceso puede tener los siguientes estados: - Nuevo - Listo, En Espera/Preparación - Terminado - Transición - Ejecución/Activo - Bloqueado