Villa Jhorman SO R3 U2
Villa Jhorman SO R3 U2
Villa Jhorman SO R3 U2
1. Unidades de ejecución: son unidades de ejecución independientes dentro de un programa, lo que les permite
realizar tareas de forma concurrente.
2. Asignación de recursos: pueden tener asignados recursos de hardware, como tiempo de CPU y memoria, para
llevar a cabo sus tareas.
3. Contexto de ejecución: tienen su propio contexto de ejecución, que incluye registros de CPU, pila y variables
locales.
4. Comunicación: pueden comunicarse entre sí para compartir información y coordinar sus acciones. La
comunicación entre estos puede ser mediante variables compartidas, mensajes o señales.
5. Cooperación: Los procesos y los hilos pueden colaborar para resolver problemas más complejos al dividir las
tareas en subprocesos y trabajar en paralelo.
Similitudes entre 6. Sincronización: En ambos casos, se necesita sincronización para evitar condiciones de carrera y conflictos en el
procesos e hilos acceso a recursos compartidos. Esto se logra mediante mecanismos como semáforos, mutexes o bloqueos.
7. Planificación: pueden ser planificados por el sistema operativo para determinar cuál se ejecuta en un momento
dado, dependiendo de la política de planificación utilizada.
8. Concurrencia: permiten lograr concurrencia, que es la ejecución simultánea aparente de múltiples tareas.
9. Eficiencia: permiten aprovechar mejor los recursos de hardware, como la CPU, al distribuir la carga de trabajo
de manera más efectiva.
10. Escalabilidad: contribuyen a la escalabilidad de una aplicación, permitiendo que esta pueda aprovechar
sistemas multiprocesador o multinúcleo de manera más eficiente.
Diferencias entre Definición:
procesos e hilos Proceso: Un proceso es una instancia independiente de un programa en ejecución que tiene su propio espacio
de memoria y recursos asignados.
Hilo: Un hilo es una unidad más pequeña de ejecución dentro de un proceso y comparte el mismo espacio de
memoria y recursos con otros hilos del mismo proceso.
Creación y Recursos:
Proceso: Los procesos son más pesados en términos de recursos, ya que cada proceso tiene su propio espacio
de memoria y recursos asignados, como manejadores de archivos y registros de estado.
Hilo: Los hilos son más livianos en términos de recursos, ya que comparten recursos con otros hilos del mismo
proceso y solo tienen su propia pila de ejecución y registros.
Independencia:
Proceso: Los procesos son independientes entre sí y no comparten memoria ni recursos directamente.
Hilo: Los hilos están más vinculados y comparten recursos, lo que puede llevar a una mayor dependencia y
posibles conflictos.
Conmutación de Contexto:
Proceso: Cambiar de un proceso a otro (conmutación de contexto) suele ser más costoso en términos de tiempo
y recursos.
Hilo: Cambiar de un hilo a otro dentro del mismo proceso (conmutación de contexto) es generalmente más
eficiente en comparación con los procesos.
Creación y Finalización:
Proceso: La creación y finalización de procesos es generalmente más lenta debido a la necesidad de asignación
de recursos y configuración del entorno.
Hilo: La creación y finalización de hilos es más rápida, ya que se basa en el mismo entorno y recursos del
proceso.
Tolerancia a Fallos:
Proceso: Los procesos son más independientes, lo que puede proporcionar una mayor tolerancia a fallos en un
sistema, ya que un fallo en un proceso no afecta necesariamente a otros procesos.
Hilo: Los fallos en un hilo pueden afectar a todos los hilos del mismo proceso debido a la compartición de
recursos y memoria.
Escalabilidad:
Proceso: Los procesos pueden ser menos eficientes en términos de escalabilidad en sistemas multiprocesador,
ya que la comunicación entre procesos puede ser más lenta.
Hilo: Los hilos pueden escalar mejor en sistemas multiprocesador, ya que pueden compartir recursos más
eficientemente.
Coordinación:
Proceso: La coordinación entre procesos puede ser más complicada debido a la necesidad de mecanismos de
comunicación externos.
Hilo: La coordinación entre hilos es más sencilla debido a la compartición de memoria, pero también puede ser
más propensa a condiciones de carrera y otros problemas.
Uso apropiado:
Proceso: Los procesos son más adecuados para situaciones donde se necesita un alto grado de aislamiento
entre componentes o donde la tolerancia a fallos es crucial.
Hilo: Los hilos son más adecuados cuando se busca compartir datos y recursos dentro de un proceso, y para
tareas que se pueden dividir en unidades más pequeñas de trabajo.
2 Ejemplo de un proceso
Instrucción: considerando el modelo de 5 estados, ejemplifica un proceso en específico que se realice en algún dispositivo que tenga sistema operativo.
Proceso que se realiza: ¿qué
Estado
pasa durante cada estado?
Cuando se hace click en uno de
Creación los iconos “autocad”, se comienza
la creación.
El S.O, dispone de los recursos
Listo necesario, para iniciar el
programa
La CPU, inicia un proceso a la vez,
que un programa no está siendo
utilizado, haciendo que esté en
estado “bloqueado”, ejemplo:
Agregamos una imagen y se abre
Bloqueado
o inicia el gestor de archivos para
poder hacer una selección de una
imagen, en ese momento
“autocad” pasa a un modo
conocido cómo: “bloqueado”
Ejecución El nombrado anteriormente
“autocad”, se encuentra en una
lista de colas, siendo que es uno
de los primeros en el proceso a
iniciarse o ejecutarse; al
momento de comenzar a hacer la
inserción de la imagen,
regresamos al programa y se
sigue trabajando, pasamos a
almacenar o guardar el archivo
“autocad” recibe la orden de
cerrarse, se cierra y así dándose
su finalización en el proceso; el
Terminación
sistema operativo, retira los
recursos que estaba en consumo
de lo mencionado anteriormente.
3 Ejemplo de un hilo
Instrucción: tomando en cuenta el esquema de procesos con hilos, ejemplifica un caso en específico. En la tabla donde se registrará la información puedes
agregar las filas que necesites, según el número de hilos que requiera tu ejemplo. El menor número de hilos que tienes que presentar es 3.
Figura 1. Esquema de proceso con hilos.
4 Funciones de la memoria
Instrucción: con base en los contenidos estudiados, menciona cuáles son las principales funciones que tiene la memoria y cuál es su importancia para que los
procesos puedan realizarse. Presenta tus comentarios en una extensión mínima de 150 palabras y máxima de 300.
La memoria en un computador desempeña un papel fundamental en el funcionamiento del sistema, ya que permite almacenar, acceder a datos,
programas de manera rápida y eficiente.
Almacenamiento de datos y programas: La memoria se utiliza para almacenar tanto los datos como los programas que el computador necesita para
funcionar. Los datos pueden incluir documentos, imágenes, videos y cualquier otro tipo de información, mientras que los programas son las
instrucciones que le dicen al computador qué hacer con esos datos.
Ejecución de programas: Cuando un programa se ejecuta, sus instrucciones se cargan en la memoria desde el almacenamiento de largo plazo, como el
disco duro. La memoria es mucho más rápida de acceder que el disco duro, lo que permite que las instrucciones se ejecuten más rápidamente.
Acceso rápido a datos: La memoria proporciona un acceso de alta velocidad a los datos que el procesador necesita para realizar cálculos y
operaciones. Cuanta más memoria tenga un sistema, más datos podrá mantener disponibles para su acceso inmediato.
Interacción con el sistema operativo: El sistema operativo también reside en la memoria durante su ejecución. Esto permite que el sistema operativo
controle y coordine todas las actividades del hardware y del software en el computador.
Caché: La memoria caché es una forma especial de memoria de alta velocidad que almacena copias temporales de datos utilizados con frecuencia. La
caché mejora aún más el rendimiento al reducir la necesidad de acceder repetidamente a la memoria principal o al almacenamiento de largo plazo.
Multi-tarea: La memoria permite la ejecución de múltiples programas al mismo tiempo, permitiendo la multitarea. Cada programa en ejecución tiene
su propio espacio en la memoria, lo que evita conflictos y proporciona un entorno aislado para cada uno.
La importancia de la memoria en el funcionamiento de un computador radica en su capacidad para proporcionar acceso rápido a datos y programas.
Cuanta más memoria tenga un sistema, más datos podrá retener en un estado de alta velocidad, lo que resulta en una mejora significativa del
rendimiento.
Además, una cantidad suficiente de memoria es crucial para permitir la multitarea eficiente, ya que cada programa en ejecución requiere su propio
espacio en la memoria. Sin suficiente memoria, el sistema puede volverse lento y poco receptivo, ya que el procesador debe esperar a que se
recuperen los datos necesarios desde el almacenamiento de largo plazo. En resumen, la memoria es esencial para un funcionamiento fluido y eficiente
de un computador.