Teoría 6.pdf - Introducción a las Computadoras - PDF

Document Details

Universidad de Vigo

Noelia García Hervella, Guillermo Blanco González

Tags

computer science operating systems software introduction to computers

Summary

These notes provide an introduction to computer systems, focusing on operating systems and software, including UNIX and Linux. The document also includes information about processes and system resources, and covers fundamental concepts in computer science.

Full Transcript

Grado en Inteligencia artificial - 1er Curso Introducción a las computadoras Noelia García Hervella [email protected] Guillermo Blanco González [email protected] Sistema operativo y procesos Antes de nada... Es un diseño básico para un sistema de computadoras que...

Grado en Inteligencia artificial - 1er Curso Introducción a las computadoras Noelia García Hervella [email protected] Guillermo Blanco González [email protected] Sistema operativo y procesos Antes de nada... Es un diseño básico para un sistema de computadoras que describe cómo debe organizarse un computador para procesar datos de manera eficiente. Fue propuesta John von Neumann en 1945 y ha sido la base de la mayoría de las computadoras modernas. La característica clave de esta arquitectura es que almacena tanto los datos como las instrucciones en la misma memoria. El software El software es el conjunto de instrucciones, datos y programas que se ejecutan sobre el hardware para realizar tareas específicas. Es la parte intangible y lógica de un sistema informático. El software se desarrolla mediante lenguajes de programación de cualquier nivel, como Python, Java o C++, y su creación involucra un proceso llamado programación o codificación. La calidad y la funcionalidad del software dependen de una buena planificación, diseño y pruebas para asegurarse de que funcione correctamente en una variedad de condiciones. Software de sistema El software de sistema es una categoría crucial de software que gestiona y coordina el hardware de la computadora y proporciona una base sobre la cual se ejecutan otros programas. Su función principal es servir de intermediario entre el hardware de la computadora y el software de aplicación, facilitando la interacción entre ambos. Sistema operativo Es un programa que siempre se está ejecutando y que facilita el trabajo al resto de programas. Se puede leer y escribir información tanto de entrada como de salida del sistema. Permite que varios programas se ejecuten a la vez. Permite que varios programas usen la memoria RAM del dispositivo. Trabaja con diferentes modelos de hardware, ayudando a la abstracción del software. Reflexión - ¿Existe software sin Sistema Operativo? - ¿Existe hardware sin Sistema Operativo? - ¿Qué sistemas operativos conoces? El software - Software de aplicación El software de aplicación es una categoría de programas diseñados para realizar tareas específicas que los usuarios desean llevar a cabo. A diferencia del software de sistema, que se encarga de gestionar y controlar el hardware, el software de aplicación está orientado a realizar actividades concretas y resolver problemas particulares. UNIX, LINUX y otras distribuciones UNIX y Linux son sistemas operativos que comparten principios de diseño y arquitectura, pero tienen diferencias clave en su implementación y distribución. UNIX UNIX fue desarrollado originalmente en 1969 por Ken Thompson, Dennis Ritchie y otros en los laboratorios Bell de AT&T. Era un sistema operativo multitarea y multiusuario. UNIX se convirtió en la base de muchos otros sistemas operativos y dio lugar a varias ramas y versiones comerciales a lo largo de los años. Originalmente, UNIX era software propietario. Aunque existen muchas implementaciones diferentes de UNIX, estas deben cumplir con un estándar llamado POSIX para ser consideradas "UNIX". UNIX UNIX es común en servidores empresariales, estaciones de trabajo de alta gama y sistemas industriales. Su uso se centra en entornos empresariales que requieren estabilidad y soporte a largo plazo Linux Linux fue creado en 1991 por Linus Torvalds como un proyecto personal. Es un kernel (núcleo del sistema operativo) que inicialmente se inspiró en las ideas de UNIX, pero fue escrito desde cero. Posteriormente, gracias al trabajo de la comunidad y el uso de software libre, se creó un sistema operativo completo basado en Linux. Linux es software de código abierto, lo que significa que cualquier persona puede estudiar, modificar, distribuir y usar Linux de manera libre. Linux Distribuciones: Linux no es un sistema operativo único, sino que se distribuye en diferentes "distribuciones" o "distros" que agrupan el núcleo de Linux con otras herramientas y aplicaciones. Algunas distribuciones populares son: Ubuntu: orientada a la facilidad de uso y dirigida tanto a principiantes como a usuarios avanzados. Debian: muy estable, orientada a servidores y usuarios que buscan solidez y seguridad. Linux Linux se usa ampliamente en servidores, supercomputadoras, dispositivos móviles (como Android), dispositivos embebidos y, en menor medida, en escritorios de usuarios. Su flexibilidad y adaptabilidad son clave en su éxito. Procesos en LINUX “Everything is a file; if something is not a file, it is a process.” "Everything is a file" (Todo es un archivo) En Linux, casi todo se maneja como si fuera un archivo. Esto incluye no solo archivos regulares de texto o binarios, sino también dispositivos de hardware (como discos duros, impresoras, teclados), sockets de red, y más. Al tratar casi todos los recursos del sistema como archivos, se logra un sistema más simple y consistente, donde las operaciones que se aplican a un archivo también pueden aplicarse a otros recursos del sistema. "Everything is a file" (Todo es un archivo) Por ejemplo: Los dispositivos de entrada/salida se representan como archivos en el sistema de archivos (ubicados en /dev/). Los archivos de configuración, scripts, programas y más, son todos archivos. Al unificar el manejo de muchos componentes bajo el concepto de "archivo", se logra un entorno flexible y coherente. "If something is not a file, it is a process" Si algo no es un archivo, es un proceso Si un recurso no puede ser modelado como un archivo, entonces probablemente es una proceso. Los procesos son las entidades que ejecutan instrucciones en el sistema operativo. En Linux, los procesos no se manejan como archivos (aunque se les puede acceder a través del sistema de archivos en algunos aspectos, como en /proc/). "If something is not a file, it is a process" Un proceso es un programa en ejecución, y aunque no se considera un archivo en sí mismo, es una parte vital de cómo el sistema operativo funciona, ejecuta programas y gestiona la multitarea. PID = Process ID (Identificador del Proceso) El PID (Process ID) es un número entero único asignado por el sistema operativo a cada proceso en ejecución. Es el identificador que usa el sistema operativo para gestionar y rastrear cada proceso en el sistema. PID 0 es típicamente reservado para el kernel (núcleo del sistema) en algunas implementaciones. PID 1 es un proceso especial en sistemas UNIX/Linux task_struct (estructura de datos de procesos) El sistema operativo almacena toda la información relacionada con los procesos en una estructura de datos llamada task_struct. Algunos de los campos más relevantes de task_struct incluyen: PID: Identificador del proceso. PPID (Parent Process ID): Identificador del proceso padre que creó o lanzó este proceso. Esto ayuda a mantener la jerarquía de procesos en el sistema, permitiendo a los procesos padres y sus hijos interactuar. task_struct (estructura de datos de procesos) UID (User ID): El identificador del usuario que lanzó el proceso. Esto es clave para la gestión de permisos y recursos en el sistema, ya que define qué acciones puede realizar el proceso en función de los privilegios del usuario. Estado del proceso: Puede ser "ejecutando", "dormido", "en espera", o "zombificado" Uso de CPU y memoria: Información sobre cuánta CPU y memoria está usando el proceso. Estados de un proceso Estados de un proceso Estado "Ejecutando" o "Ejecución" (Running) Un proceso está en el estado de ejecución cuando está usando la CPU activamente. Esto significa que el núcleo del sistema operativo (kernel) le ha asignado tiempo de CPU y el proceso está ejecutando instrucciones. Puede estar ejecutándose en ese mismo instante o en cola para ser ejecutado por el planificador de la CPU, dependiendo de la disponibilidad del procesador. El sistema operativo cambia constantemente los procesos entre ejecución y otros estados. Estados de un proceso Estado "Listo" o "Preparado" (Ready) Un proceso en estado "listo" es aquel que está preparado para ejecutarse, pero aún no ha recibido tiempo de CPU. Está esperando que el planificador del sistema operativo lo seleccione para ejecutar. En realidad, en Linux este estado se combina con el de "Ejecución". Un proceso en estado "listo" está esperando su turno para ser ejecutado en la CPU, pero aún no ha sido seleccionado. Una vez seleccionado, pasa al estado de "ejecución". Estados de un proceso Estado "Parado" (Stopped) Un proceso está "parado" cuando ha sido suspendido temporalmente y no puede continuar su ejecución hasta que se reanude. Esto se puede realizar cuando el suaurio pulsa Ctrl+z durante la ejecucion de un comando. Estados de un proceso Estado "Esperando" o "Bloqueado" (Waiting/Sleeping) Este estado puede dividirse en dos subestados, dependiendo de si el proceso puede ser interrumpido o no: a) Espera interrumpible: los procesos en este estado están dormidos temporalmente y no están utilizando la CPU, pero el sistema puede interrumpirlos si reciben una señal. Ejemplo: Si un proceso está esperando datos de la red, y mientras tanto recibe una señal de interrupción, puede despertar y responder a esa señal. Estados de un proceso Estado "Esperando" o "Bloqueado" (Waiting/Sleeping) b) Espera ininterrumpible: un proceso está bloqueado esperando un evento que no puede ser interrumpido por señales, por lo que debe esperar a que el recurso esté disponible. Ejemplo: Un proceso que está esperando que se complete una operación crítica de E/S, como una operación de lectura/escritura en un dispositivo físico que no puede ser interrumpida, entraría en este estado. Si un proceso queda en este estado de forma indefinida, puede ser difícil de gestionar o matar, ya que no responde a señales. Estados de un proceso Estado "Zombi" (Zombie) Un proceso entra en estado zombi cuando ha finalizado su ejecución, pero su información aún no ha sido recogida por su proceso padre. El proceso sigue existiendo en la tabla de procesos, pero ya no está en ejecución ni utiliza recursos como CPU o memoria.

Use Quizgecko on...
Browser
Browser