Examen de Sistemas Operativos PDF

Summary

Este documento presenta una introducción a los sistemas operativos (SO). Explora conceptos clave como la abstracción de hardware, la gestión de recursos, la ejecución de programas y la interfaz de usuario. También describe las funciones principales de un SO, componentes clave, las clasificaciones de los sistemas operativos, y sistemas operativos actuales como GNU/Linux, Microsoft Windows y macOS. Además, se detalla la gestión de procesos y los problemas de deadlocks en los sistemas operativos.

Full Transcript

INTRODUCCION DE SISTEMAS OPERATIVOS Definición y Importancia Un Sistema Operativo (SO) es un software fundamental que gestiona los recursos de hardware de un computador y proporciona una interfaz a los usuarios para interactuar con el sistema. Su importancia radica en: Abstracción de Hardware: O...

INTRODUCCION DE SISTEMAS OPERATIVOS Definición y Importancia Un Sistema Operativo (SO) es un software fundamental que gestiona los recursos de hardware de un computador y proporciona una interfaz a los usuarios para interactuar con el sistema. Su importancia radica en: Abstracción de Hardware: Oculta la complejidad del hardware al usuario, presentando una interfaz más amigable. Gestión de Recursos: Optimiza el uso de la CPU, memoria, dispositivos de almacenamiento y otros recursos. Ejecución de Programas: Carga y ejecuta programas, asignando los recursos necesarios. Interfaz de Usuario: Facilita la interacción entre el usuario y la máquina. Seguridad: Protege el sistema y los datos del usuario de accesos no autorizados. Compatibilidad: Permite que diferentes programas y hardware funcionen juntos. Funciones Principales Desarrollo y Ejecución de Programas: Proporciona un entorno para crear y ejecutaraplicaciones. Acceso a Dispositivos de E/S: Permite la comunicación con dispositivos como teclado, mouse, impresoras, etc. Gestión de Archivos: Organiza y almacena los datos de forma eficiente. Control de Acceso al Sistema: Asegura que solo los usuarios autorizados puedan acceder a los recursos. Detección y Manejo de Errores: Identifica y corrige problemas en el sistema. Contabilidad: Registra el uso de los recursos del sistema. Componentes de un SO Kernel: El núcleo del sistema, que gestiona los recursos de hardware y proporciona servicios básicos. Interfaz de Usuario: La capa que permite al usuario interactuar con el sistema (línea de comandos o interfaz gráfica). Controladores de Dispositivos: Software que permite al sistema comunicarse con dispositivos específicos. Sistema de Archivos: Organiza y almacena los datos en el disco. Sistema de Protección: Controla el acceso a los recursos del sistema. Sistema de Entrada/Salida: Maneja la comunicación entre el sistema y los dispositivos externos. Gestión de Procesos, Memoria y Almacenamiento: Administra la ejecución de programas, la asignación de memoria y el uso de dispositivos de almacenamiento. Sistema de Comunicaciones: Permite la comunicación entre diferentes computadoras. Gestor de Recursos: Coordina y asigna los recursos del sistema. Clasificación de los SO Modo de Administración de Tareas: Monotarea (ejecuta un programa a la vez) o multitarea (ejecuta múltiples programas simultáneamente). Modo de Administración de Usuarios: Monousuario (un solo usuario a la vez) o multiusuario (varios usuarios simultáneamente). Forma de Manejo de Recursos: Centralizado (un único computador controla los recursos) o distribuido (los recursos se distribuyen en varios computadores). SO Actuales GNU/Linux: Un sistema operativo libre y de código abierto, conocido por su flexibilidad y estabilidad. ○ Objetivo: Proporcionar un sistema operativo completo y gratuito. ○ Interfaces: Ofrece una variedad de interfaces de usuario, desde la línea de comandos hasta entornos gráficos sofisticados. ○ Shell: Una interfaz de línea de comandos que permite al usuario interactuar con el sistema. Microsoft Windows: Un sistema operativo propietario desarrollado por Microsoft, predominante en el mercado de computadoras personales. ○ Arquitectura: Basado en una arquitectura modular que permite una fácil expansión y actualización. Apple macOS: Un sistema operativo propietario desarrollado por Apple, utilizado en computadoras Macintosh. ○ Arquitectura: Basado en el kernel Darwin, un sistema operativo basado en Unix. ○ Capa de Experiencia de Usuario: Ofrece una interfaz de usuario intuitiva y una integración estrecha con otros productos de Apple. GESTION DE PROCESOS 1. Definición de Proceso Un proceso es la unidad más pequeña de trabajo que un sistema operativo puede programar. Representa un programa en un instante particular de su ejecución, con su propio contexto de ejecución (espacio de direcciones, registros, estado, etc.). A diferencia de un programa, que es estático, un proceso evoluciona a través de diferentes estados a lo largo de su vida. 2. Estados de un Proceso Nuevo: El proceso acaba de ser creado por el sistema operativo, pero aún no está listo para ejecutarse. Listo: El proceso está preparado para ejecutarse y espera su turno en la cola de listos. En ejecución: El proceso está siendo ejecutado por el procesador. Bloqueado/Esperando: o Bloqueado por E/S: El proceso está esperando la finalización de una operación de entrada/salida. o Bloqueado por señal: El proceso está esperando una señal de otro proceso. o Bloqueado por evento: El proceso está esperando la ocurrencia de un evento específico. Terminado: El proceso ha finalizado su ejecución y puede ser eliminado del sistema. 3. Bloque de Control de Procesos (PCB) El bloque de control de proceso (PCB) constituye una estructura de datos fundamental dentro de un sistema operativo, cuya función primordial radica en encapsular la totalidad de la información contextual de un proceso en ejecución. Esta estructura dinámica almacena y actualiza de manera continua los atributos esenciales del proceso, permitiendo así al sistema operativo llevar a cabo una gestión eficiente de los mismos. En el sistema hay un PCB por proceso y sirve de almacén para cualquier información que puede variar de un proceso a otro: Identificador único: Un número que identifica de forma inequívoca al proceso. Estado actual: El estado en el que se encuentra el proceso en un momento dado. Contador de programa: La dirección de memoria de la siguiente instrucción a ejecutar. Registros: Los valores de los registros del procesador. Pila: La pila del proceso. Tabla de páginas: La tabla que mapea las direcciones virtuales a direcciones físicas. Prioridad: La prioridad asignada al proceso para la planificación. Lista de procesos hijos: Si el proceso es un proceso padre, esta lista contiene los identificadores de sus procesos hijos. Punteros a otros PCBs: Punteros a los PCBs de otros procesos relacionados (por ejemplo, procesos hermanos, procesos padres). 4. Creación y Terminación de Procesos Creación: o Llamada al sistema: El proceso padre realiza una llamada al sistema para crear un nuevo proceso (por ejemplo, fork en Unix). o Duplicación del PCB: Se crea una copia del PCB del proceso padre, y se modifican los campos necesarios para el nuevo proceso. o Asignación de recursos: Se asignan los recursos necesarios al nuevo proceso (memoria, archivos, etc.). Terminación: o Finalización normal: El proceso ejecuta una instrucción de terminación (por ejemplo, exit en Unix). o Aborto: El proceso es terminado por el sistema operativo debido a un error o a una señal. o Terminación por un proceso padre: El proceso padre termina a sus procesos hijos. 5. Comunicación entre Procesos Espacio de direcciones compartidas: Los procesos pueden compartir una región de memoria para comunicarse. Tuberías: Canales unidireccionales o bidireccionales que permiten a los procesos intercambiar datos. Sockets: Mecanismo de comunicación de red que permite a los procesos comunicarse a través de una red. Memoria compartida: Una región de memoria a la que pueden acceder múltiples procesos. Mensajes: Los procesos pueden enviarse mensajes entre sí. Remotas Procedure Calls (RPC): Mecanismo que permite a un proceso invocar una función en otro proceso. 6. Sincronización de Procesos Sección crítica: Una región de código en la que un proceso accede a recursos compartidos y que debe ser ejecutada de forma atómica. Condiciones de carrera: Situaciones en las que el resultado de la ejecución de un programa depende del orden en que se ejecutan las instrucciones de diferentes procesos. Algoritmos de exclusión mutua: Algoritmos que garantizan que solo un proceso a la vez pueda ejecutar su sección crítica. 7. Planificación de Procesos Criterios de planificación: o Maximización de la utilización del procesador: Mantener el procesador ocupado la mayor parte del tiempo posible. o Minimización del tiempo de respuesta: Reducir el tiempo que tarda un proceso en obtener una respuesta. o Maximización del rendimiento: Maximizar el número de procesos completados en un período de tiempo dado. o Equidad: Proporcionar un servicio justo a todos los procesos. Algoritmos de planificación: o No preemptivos: Una vez que un proceso comienza a ejecutarse, continúa hasta que termina o se bloquea. o Preemptivos: El sistema operativo puede interrumpir un proceso en ejecución para ejecutar otro proceso. 8. Deadlocks El deadlock es una situación crítica en donde dos o más hilos se bloquean mutuamente, esperando recursos que otros poseen. Si bien los sistemas operativos no suelen ofrecer mecanismos de prevención infalibles, la responsabilidad de evitar los deadlocks recae principalmente en los programadores. Condiciones necesarias para un deadlock: o Exclusión mutua: Un recurso solo puede ser utilizado por un proceso a la vez. o Conservación de recursos: Los recursos no pueden ser liberados hasta que el proceso que los tiene asignados termina. o No apropiación: Los recursos no pueden ser quitados a un proceso por la fuerza. o Espera circular: Existe un ciclo de espera en el que cada proceso está esperando un recurso que está siendo utilizado por otro proceso del ciclo. Estrategias para tratar los deadlocks: o Prevención: Evitar que se cumplan las condiciones necesarias para un deadlock. o Detección: Detectar los deadlocks cuando ocurren y tomar medidas para resolverlos. o Evitación: Tomar decisiones de asignación de recursos para evitar que se produzcan deadlocks.

Use Quizgecko on...
Browser
Browser