Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
1 Carretera Villahermosa - Frontera Km. 3.5 Cd. Industrial C.P. 86010 Villahermosa, Tab. México Tel. (993) 3530259 , Ext. 101 e - mail: dir_villahermosa@tecnm.mx tecnm.mx | villahermosa.tecnm.mx Instituto Tecnológico de Villahermosa Materia: Sistemas Operativos. Unidad: 2 Tema: Fundamentaos de Ingeniería de Software Actividad: 1 Portafolio de evidencias. Fecha de entrega: 13/02/2024 Docente: Dra. Teresa de Jesús Javier Baeza Alumno: Alexander Rosales López 2 Carretera Villahermosa - Frontera Km. 3.5 Cd. Industrial C.P. 86010 Villahermosa, Tab. México Tel. (993) 3530259 , Ext. 101 e - mail: dir_villahermosa@tecnm.mx tecnm.mx | villahermosa.tecnm.mx Índice Contenido Índice ......................................................................................................................................... 2 Glosario ...................................................................................................................................... 3 Introducción ............................................................................................................................... 4 2.1. Concepto de proceso ........................................................................................................... 5 2.2. Estados y transiciones de los procesos. .............................................................................. 6 2.3. Procesos ligeros: Hilos o hebras. ........................................................................................ 7 2.4. Concurrencia y secuencialidad. .......................................................................................... 8 2.5. Niveles, objetivos y criterios de planificación. ................................................................... 9 2.6. Técnicas de administración del planificador .................................................................... 10 Conclusion. .............................................................................................................................. 11 Bibliografía .............................................................................................................................. 12 3 Carretera Villahermosa - Frontera Km. 3.5 Cd. Industrial C.P. 86010 Villahermosa, Tab. México Tel. (993) 3530259 , Ext. 101 e - mail: dir_villahermosa@tecnm.mx tecnm.mx | villahermosa.tecnm.mx Glosario Ejecución: Proceso de llevar a cabo instrucciones de un programa de computadora por parte del procesador de la computadora. Procesos: Un programa en ejecución dentro de un sistema operativo. Cada proceso tiene su propio espacio de memoria y recursos asignados. Capacidad: La habilidad o el potencial de un sistema para realizar ciertas funciones o actividades. Concurrencia: La capacidad de un sistema para realizar múltiples tareas simultáneamente. Recursos: Los componentes físicos o lógicos que un sistema operativo administra y asigna a los procesos en ejecución, como la CPU, la memoria y los dispositivos de entrada/salida. CPU (Unidad Central de Procesamiento): El componente principal de un sistema informático que ejecuta instrucciones de programas. Thread (Hilo): Un flujo de ejecución más pequeño dentro de un proceso. Los hilos comparten el mismo espacio de memoria y recursos que su proceso principal. Main: La función principal en un programa de computadora, que actúa como el punto de entrada para la ejecución del programa. Hilo: Ver "Thread". Planificador: El componente del sistema operativo responsable de asignar recursos de procesamiento a los procesos en ejecución, utilizando diferentes algoritmos de planificación. 4 Carretera Villahermosa - Frontera Km. 3.5 Cd. Industrial C.P. 86010 Villahermosa, Tab. México Tel. (993) 3530259 , Ext. 101 e - mail: dir_villahermosa@tecnm.mx tecnm.mx | villahermosa.tecnm.mx Introducción Los sistemas operativos constituyen el corazón de cualquier computadora moderna, proporcionando una interfaz entre el hardware del sistema y el software de las aplicaciones. Dentro de esta compleja infraestructura de software, la gestión eficiente de los procesos es un aspecto crucial para garantizar un funcionamiento óptimo del sistema. En esta investigación, exploraremos los conceptos fundamentales relacionados con los procesos en los sistemas operativos, así como las estrategias de planificación utilizadas para administrar estos procesos de manera efectiva. Comenzaremos analizando el concepto de proceso y sus diferentes estados y transiciones, examinando cómo el sistema operativo coordina la ejecución de los programas en la computadora. Además, profundizaremos en la noción de procesos ligeros, también conocidos como hilos o hebras, y su impacto en la concurrencia y la capacidad de respuesta del sistema. Exploraremos cómo los hilos permiten la ejecución simultánea de múltiples tareas dentro de un mismo proceso, compartiendo recursos y facilitando la programación paralela. Continuaremos examinando la importancia de la concurrencia y la secuencialidad en el diseño de sistemas operativos, y cómo estos conceptos influyen en la planificación de procesos. Analizaremos los diferentes niveles, objetivos y criterios de planificación utilizados para asignar los recursos del sistema entre los procesos competidores, así como las técnicas de administración del planificador que garantizan un rendimiento eficiente y justo del sistema. En última instancia, esta investigación busca proporcionar una comprensión profunda de los conceptos fundamentales relacionados con los procesos en los sistemas operativos, así como de las estrategias de planificación utilizadas para optimizar su gestión. Al hacerlo, esperamos ofrecer una visión integral de la complejidad y la importancia de la administración de procesos en el funcionamiento de los sistemas informáticos modernos. 5 Carretera Villahermosa - Frontera Km. 3.5 Cd. Industrial C.P. 86010 Villahermosa, Tab. México Tel. (993) 3530259 , Ext. 101 e - mail: dir_villahermosa@tecnm.mx tecnm.mx | villahermosa.tecnm.mx 2.1. Concepto de proceso Un proceso se define como la ejecución activa de un conjunto de instrucciones en un sistema informático. A diferencia de un programa estático, un proceso incorpora interacciones con su entorno, gestiona entradas y salidas, y exhibe diversos estados internos. Estos procesos pueden clasificarse como cooperativos, cuando interactúan dentro de una misma aplicación, o independientes, cuando no requieren interconexión con otros procesos y pueden pertenecer a usuarios diferentes. Cuando un proceso se suspende temporalmente, es crucial reiniciarlo exactamente en el mismo estado en el que se detuvo. Para lograr esto, toda la información pertinente al proceso debe ser guardada explícitamente durante la suspensión. En muchos sistemas operativos, esta información se almacena en una tabla de procesos, una estructura organizada, como un arreglo o lista enlazada, que contiene detalles específicos de cada proceso en ejecución. Este almacenamiento incluye información adicional aparte del contenido de su espacio de direcciones. Además, si un proceso tiene la capacidad de generar uno o más procesos secundarios (conocidos como procesos hijos), y estos a su vez pueden originar más procesos hijos, se establece rápidamente una estructura de árbol de procesos. En los sistemas operativos multihilo, se pueden crear tanto hilos como procesos. La distinción radica en que unproceso solo puede crear hilos para sí mismo, y estos hilos comparten toda la memoria reservada para el proceso. En este modelo, todo el software ejecutable en la computadora, incluido el sistema operativo, se organiza en una secuencia de procesos, que son actividades con programas, entradas, salidas y estados asociados. Los procesadores pueden ser compartidos entre varios procesos utilizando algoritmos de planificación para determinar cuándo ejecutar cada uno. Para gestionar la creación de procesos, los sistemas operativos que manejan este concepto deben proporcionar mecanismos para su creación. En sistemas simples o diseñados para ejecutar una sola aplicación, esto puede ser sencillo. 6 Carretera Villahermosa - Frontera Km. 3.5 Cd. Industrial C.P. 86010 Villahermosa, Tab. México Tel. (993) 3530259 , Ext. 101 e - mail: dir_villahermosa@tecnm.mx tecnm.mx | villahermosa.tecnm.mx 2.2. Estados y transiciones de los procesos. El proceso es la unidad de procesamiento gestionada por el sistema operativo. Para llevar a cabo esta función, el proceso está asociado con una serie de elementos de información, que se detallan a continuación. Estos elementos se dividen en tres grupos principales: estado del procesador, imagen de memoria y tablas del sistema operativo. Estado del procesador Los bloques de control de los procesos se almacenan en colas, cada una de las cuales representa un estado específico de los procesos. Dentro de cada bloque se encuentran diversas informaciones, entre ellas, los estados de los procesos, los cuales son internos al sistema operativo y no son visibles para el usuario. Un proceso puede transitar por cinco estados distintos: Nuevo: Un proceso se encuentra en estado nuevo cuando está en proceso de creación. Listo: Un proceso está en estado listo si está preparado para utilizar la CPU en caso de que esté disponible. En ejecución: Un proceso se encuentra en estado de ejecución cuando está utilizando activamente la CPU en ese momento. Bloqueado: Un proceso está en estado bloqueado si está esperando que ocurra algún evento, como la finalización de una operación de entrada/salida, para poder continuar su ejecución. Terminado: Cuando un proceso ha completado su ejecución, pasa a ser un proceso terminado. 7 Carretera Villahermosa - Frontera Km. 3.5 Cd. Industrial C.P. 86010 Villahermosa, Tab. México Tel. (993) 3530259 , Ext. 101 e - mail: dir_villahermosa@tecnm.mx tecnm.mx | villahermosa.tecnm.mx 2.3. Procesos ligeros: Hilos o hebras. Un hilo de ejecución, o thread, es un flujo de ejecución dentro de un programa que comparte la imagen de memoria y otros recursos con otros hilos. En un proceso, puede haber un solo hilo de ejecución, como es típico en los procesos clásicos, o varios hilos de ejecución, conocidos como hilos ligeros. Desde la perspectiva de la programación, un hilo ligero se define como una función cuya ejecución puede lanzarse en paralelo con otras. El hilo de ejecución principal, o hilo ligero principal, generalmente corresponde a la función principal main. Cada hilo ligero tiene su propia información, particularmente relacionada con su contexto de ejecución, que incluye el contador de programa, la pila, los registros y el estado del hilo (ejecutando, listo o bloqueado). Sin embargo, todos los hilos ligeros de un mismo proceso comparten recursos como el espacio de memoria, las variables globales, los archivos abiertos, los procesos hijos, los temporizadores, las señales y los semáforos, así como la contabilidad. Es esencial destacar que todos los hilos ligeros de un mismo proceso comparten el mismo espacio de direcciones de memoria, lo que incluye el código, los datos y las pilas de los diferentes hilos. Esto implica que no hay protección de memoria entre los hilos ligeros de un mismo proceso, a diferencia de lo que ocurre con los procesos convencionales. La diferencia fundamental entre un proceso y un hilo radica en su alcance y relación con otros componentes del sistema: Un proceso es una entidad independiente y autónoma que posee su propio espacio de direcciones y estado. Utiliza los mecanismos de comunicación proporcionados por el sistema operativo para interactuar con otros procesos. En contraste, un hilo es una entidad más pequeña que coexiste dentro del contexto de un único proceso. Los hilos comparten el mismo espacio de direcciones, información de estado y recursos asociados con el proceso que los contiene. 8 Carretera Villahermosa - Frontera Km. 3.5 Cd. Industrial C.P. 86010 Villahermosa, Tab. México Tel. (993) 3530259 , Ext. 101 e - mail: dir_villahermosa@tecnm.mx tecnm.mx | villahermosa.tecnm.mx 2.4. Concurrencia y secuencialidad. Los procesos se consideran concurrentes cuando existen simultáneamente. La concurrencia de procesos ocurre cuando dos o más procesos llegan a ejecutarse al mismo tiempo. Es esencial destacar que para que estos procesos sean concurrentes, necesitan tener alguna relación entre ellos. Existen varios modelos de computadoras en los que pueden ejecutarse procesos concurrentes: Multiprogramación con un único procesador: En este modelo, todos los procesos concurrentes se ejecutan en un solo procesador. El sistema operativo se encarga de repartir el tiempo del procesador entre los diferentes procesos, alternando su ejecución para simular una ejecución simultánea. Multiprocesador: En un sistema multiprocesador, hay varios procesadores que comparten la memoria principal. En este caso, se puede lograr una verdadera ejecución simultánea de procesos, ya que las fases de procesamiento de diferentes procesos pueden coincidir. Esto significa que en un momento dado, se pueden ejecutar simultáneamente tantos procesos como procesadores estén disponibles. La concurrencia implica una serie de consideraciones de diseño, como la comunicación entre procesos, la competencia por los recursos, la sincronización de la ejecución de varios procesos y la asignación del tiempo del procesador a los procesos. La concurrencia es fundamental para diseñar sistemas como la multiprogramación, el multiproceso y los sistemas distribuidos. 9 Carretera Villahermosa - Frontera Km. 3.5 Cd. Industrial C.P. 86010 Villahermosa, Tab. México Tel. (993) 3530259 , Ext. 101 e - mail: dir_villahermosa@tecnm.mx tecnm.mx | villahermosa.tecnm.mx 2.5. Niveles, objetivos y criterios de planificación. El planificador es la parte del sistema operativo encargada de tomar decisiones sobre la asignación de recursos de procesador, mientras que el algoritmo de planificación es el método utilizado para tomar esas decisiones. Los principales criterios para evaluar un buen algoritmo de planificación son la equidad, la eficacia, el tiempo de respuesta, el tiempo de retorno y el rendimiento general del sistema. Dado que cada proceso es único e impredecible, ya sea en sus necesidades de operaciones de entrada/salida o de uso intensivo de la CPU, el planificador del sistema operativo no puede prever cuánto tiempo pasará hasta que un proceso se bloquee por una operación de entrada/salida u otra razón. Para evitar que un proceso monopolice la CPU durante demasiado tiempo, los equipos tienen un dispositivo que genera interrupciones periódicas, por ejemplo, 60 veces por segundo (60 Hz). La planificación del procesador implica determinar cuándo y a qué procesos se les asignará la CPU, lo cual es responsabilidad del sistema operativo. Existen diferentes niveles de planificación del procesador: Planificación de alto nivel: También conocidacomo planificación de trabajos, determina qué trabajos pueden competir activamente por los recursos del sistema. Esto incluye la planificación de admisión, que decide qué trabajos se admiten para su ejecución. Planificación de nivel intermedio: Esta etapa determina qué procesos pueden competir por la CPU en un momento dado. Responde a las fluctuaciones a corto plazo en la carga del sistema y realiza la suspensión y activación de procesos según sea necesario para cumplir con ciertas metas de rendimiento del sistema. Planificación de bajo nivel: Esta etapa determina qué proceso listo se asigna a la CPU cuando esta queda disponible. El despachador del sistema operativo lleva a cabo esta tarea, y opera varias veces por segundo, siempre en el almacenamiento primario. 10 Carretera Villahermosa - Frontera Km. 3.5 Cd. Industrial C.P. 86010 Villahermosa, Tab. México Tel. (993) 3530259 , Ext. 101 e - mail: dir_villahermosa@tecnm.mx tecnm.mx | villahermosa.tecnm.mx 2.6. Técnicas de administración del planificador La planificación a plazo fijo implica programar ciertos trabajos para completarse dentro de un período específico. Estos trabajos tienen un alto valor si se completan a tiempo, pero pueden carecer de valor si se completan después del límite establecido. Sin embargo, la planificación a plazo fijo es compleja por varias razones: Los usuarios rara vez pueden proporcionar con precisión y por adelantado las necesidades de recursos de su trabajo. El sistema debe ejecutar los programas de plazo fijo sin degradar severamente el servicio para otros usuarios. Es necesario planificar cuidadosamente los recursos para permitir un flujo libre de los trabajos de plazo fijo, lo cual puede ser difícil debido a la llegada impredecible de nuevos programas con demandas impredecibles. Si se activan muchos trabajos de plazo fijo, la planificación puede volverse tan compleja que requiera métodos de optimización sofisticados para garantizar que se cumplan los plazos. La intensa gestión de recursos requerida por la planificación de plazo fijo puede generar una sobrecarga sustancial. Los procesos se despachan según el orden en que llegan a la cola de listos. Una vez que un proceso obtiene la CPU, se ejecuta hasta su finalización. Este enfoque es no apropiativo, lo que significa que no permite la suspensión de un proceso en ejecución. Aunque es justo formalmente, puede ser percibido como injusto porque los grandes procesos pueden hacer esperar a los más pequeños y los trabajos menos importantes pueden hacer esperar a los más importantes. 11 Carretera Villahermosa - Frontera Km. 3.5 Cd. Industrial C.P. 86010 Villahermosa, Tab. México Tel. (993) 3530259 , Ext. 101 e - mail: dir_villahermosa@tecnm.mx tecnm.mx | villahermosa.tecnm.mx Conclusion. Los sistemas operativos son complejas infraestructuras de software que gestionan eficientemente los recursos de hardware de una computadora para permitir la ejecución de múltiples tareas de forma concurrente. En este sentido, el concepto de proceso y su gestión juegan un papel fundamental en la administración eficaz de los recursos del sistema. El concepto de proceso, entendido como un programa en ejecución, se convierte en la unidad básica de ejecución en un sistema operativo. Cada proceso puede pasar por distintos estados y transiciones, desde su creación hasta su finalización, lo que permite al sistema operativo coordinar y controlar su ejecución de manera efectiva. La introducción de procesos ligeros, también conocidos como hilos o hebras, añade una capa adicional de complejidad y flexibilidad al sistema operativo. Los hilos permiten la ejecución concurrente de múltiples flujos de control dentro de un mismo proceso, compartiendo recursos como la memoria y los archivos abiertos. Esto facilita la implementación de programas con múltiples tareas simultáneas y mejora la capacidad de respuesta del sistema. La concurrencia y la secuencialidad son conceptos esenciales en el diseño de sistemas operativos. La concurrencia se refiere a la capacidad del sistema para manejar múltiples procesos de forma simultánea, mientras que la secuencialidad se relaciona con la capacidad del sistema para garantizar un comportamiento predecible y coherente en la ejecución de los procesos. Los niveles, objetivos y criterios de planificación son aspectos críticos en el diseño de algoritmos de planificación de procesos. La planificación de procesos implica tomar decisiones sobre cómo asignar los recursos del sistema entre los diferentes procesos en competencia. Los algoritmos de planificación deben tener en cuenta una variedad de objetivos, como la equidad, la eficacia y el rendimiento, para garantizar un funcionamiento eficiente y justo del sistema. 12 Carretera Villahermosa - Frontera Km. 3.5 Cd. Industrial C.P. 86010 Villahermosa, Tab. México Tel. (993) 3530259 , Ext. 101 e - mail: dir_villahermosa@tecnm.mx tecnm.mx | villahermosa.tecnm.mx Bibliografía Administrador de Procesos y del Procesador. (s.f.). Obtenido de Blogspot: https://sistemasoperativos.angelfire.com/html/2.3.html Andrew. (2017). Blogspot. Obtenido de Sistemas Operativos: https://misistema- operativo.blogspot.com/p/unidad-2.html Bautista, L. M. (25 de 09 de 2023). genially. Obtenido de NIVELES,OBJETIVOS Y CRITERIOS DE PLANIFICACION : https://view.genial.ly/651152f642390300119fef00/presentation-25nivelesobjetivos-y- criterios-de-planificacion Editorial Etecé. (02 de 11 de 2021). Proceso. Obtenido de concepto: https://concepto.de/proceso/ Microsoft Word. (s.f.). Obtenido de Criterio 5: Procesos : https://www.ujaen.es/servicios/archivo/sites/servicio_archivo/files/uploads/Calidad/Cr iterio5.pdf Procesos. (s.f.). Obtenido de Procesos: https://www.fing.edu.uy/tecnoinf/maldonado/cursos/so/material/teo/so04-procesos.pdf Ruiz, D. (24 de 08 de 2017). 2.5 Niveles, objetivos y criterios de planificación. Obtenido de Blogspot: http://sistemasoperativositc2017.blogspot.com/2017/10/25-niveles- objetivos-y-criterios-de.html Ruiz, D. (08 de 2017). Sistemas Operativos. Obtenido de Blogspot: https://sistemasoperativositc2017.blogspot.com/2017/10/22-estados-y-transiciones-de- los.html Ruiz, D. (24 de 08 de 2017). Sistemas Operativos. Obtenido de Blogspot: http://sistemasoperativositc2017.blogspot.com/2017/10/23-procesos-ligeros-hilos-y- hebras.html Ruiz, D. (24 de 08 de 2017). Sistemas Operativos. Obtenido de Blogspot: http://sistemasoperativositc2017.blogspot.com/2017/10/24-concurrencia-y- secuenciabilidad_92.html Sistemas Operativos 1. (11 de 2018). Obtenido de Blogspot: https://sistemasoperativosrocher.blogspot.com/2015/03/estados-y-transiciones-de-los- procesos.html Sistemas Operativos. (27 de 11 de 2012). Obtenido de Blogspot: https://florysel.blogspot.com/2012/11/21-concepto-de-proceso.html 13 Carretera Villahermosa - Frontera Km. 3.5 Cd. Industrial C.P. 86010 Villahermosa, Tab. México Tel. (993) 3530259 , Ext. 101 e - mail: dir_villahermosa@tecnm.mx tecnm.mx | villahermosa.tecnm.mx StudentPlace. (18 de 09 de 2018). Concurrencia y Secuencialidad (Sistemas Operativos). Obtenido de StudentPlace: https://studentplace98.blogspot.com/2018/09/concurrencia- y-secuencialidad-sistemas.html Universidad de Selvilla. (02 de 04 de 202). Sistemas Operativos. Obtenido de Estados de los procesos: https://1984.lsi.us.es/wiki-ssoo/index.php/Estados_de_los_procesos Índice Glosario Introducción 2.1. Concepto de proceso 2.2. Estados y transiciones de los procesos. 2.3. Procesos ligeros: Hilos o hebras. 2.4.Concurrencia y secuencialidad. 2.5. Niveles, objetivos y criterios de planificación. 2.6. Técnicas de administración del planificador Conclusion. Bibliografía
Compartir