Logo Studenta

Resumen - Luis Cobos, Brigith Lojan y Gerardo Quizhpe - Brigith Lojan

¡Estudia con miles de materiales!

Vista previa del material en texto

Facultad de la Enerǵıa, las Industrias y los
Recursos Naturales no Renovables
Carrera de Computación
Sistemas Operativos
Ensayo
Resumen de la unidad 2
Luis Daniel Cobos Arévalo
luis.cobos@unl.edu.ec
1150404984
Brigith Antonela Lojan Cabrera
brigith.lojan@unl.edu.ec
1150040846
Gerardo Manuel Quizhpe Chocho
gerardo.quizhpe@unl.edu.ec
1106078833
Loja, Ecuador
Enero 2022
Índice general
1. Desarrollo 2
1.1. Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4. Metodoloǵıa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5.1. Procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5.2. Hebras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5.3. Planificación de la CPU . . . . . . . . . . . . . . . . . . . 5
1.5.4. Sincronización de procesos . . . . . . . . . . . . . . . . . . 5
1.5.5. Interbloqueos . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.6. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Referencias 8
1
Caṕıtulo 1
Desarrollo
1.1. Abstract
El presente trabajo contextualiza sobre los temas desde el caṕıtulo 3 has-
ta el caṕıtulo 7; Los Caṕıtulos 3 a 7 describen los conceptos de proceso y de
concurrencia como corazón de los sistemas operativos modernos. Un proceso
es la unidad de trabajo de un sistema. Un sistema consta de una colección de
procesos que se ejecutan concurrentemente, siendo algunos de ellos procesos del
sistema operativo (aquéllos que ejecutan código del sistema) y el resto, procesos
de usuario (aquéllos que ejecutan código del usuario).
Estos caṕıtulos exponen los métodos para la sincronización de procesos, la comu-
nicación interprocesos y el tratamiento de los interbloqueos. También se incluye
dentro de este tema una explicación sobre las hebras.Para lo cual, se hizo un
análisis profundo del libro Fundamentos de Sistemas Operativos, con el fin de
comprender los hallazgos previos ante los temas a tratar.
Como conclusiones se señala que un proceso es un programa en ejecución, el cual
puede estar en uno de los siguientes estados: nuevo, preparado, en ejecución, en
espera o terminado; un interbloqueo puede producirse sólo si se dan simultánea-
mente en el sistema cuatro condiciones necesarias: exclusión mutua, retención
y espera, ausencia de mecanismos de desalojo espera circular. Para prevenir los
interbloqueos, podemos hacer que al menos una de las condiciones necesarias
nunca llegue a cumplirse; y también tanto la planificación por prioridades como
la planificación SFJ presentan el problema de que los procesos pueden sufrir
bloqueos indefinidos, en el cual se hace uso de la técnica de envejecimiento que
trata, precisamente, de evitar los bloqueos indefinidos.
1.2. Antecedentes
Los primeros sistemas informáticos sólo permit́ıan que se ejecutara un pro-
grama a la vez. Este programa teńıa el control completo del sistema y teńıa
acceso a todos los recursos del mismo. Por el contrario, los sistemas informáti-
2
cos actuales permiten que se carguen en memoria múltiples programas y se
ejecuten concurrentemente. Esta evolución requiere un mayor control y aisla-
miento de los distintos programas y estas necesidades dieron lugar al concepto
de proceso, que es un programa en ejecución. Un proceso es la unidad de trabajo
en los sistemas modernos de tiempo compartido.
Ahora, la mayoŕıa de los sistemas operativos modernos proporcionan carac-
teŕısticas que permiten que un proceso tenga múltiples hebras de control.
Los mecanismos de planificación de la CPU son la base de los sistemas ope-
rativos multiprogramados. Mediante la conmutación de la CPU entre distintos
procesos, el sistema operativo puede hacer que la computadora sea más pro-
ductiva.En los sistemas operativos que las soportan, son las hebras del nivel
del kernel, y no los procesos, las que de hecho son planificadas por el sistema
operativo. Sin embargo, los términos planificación de procesos y planificación
de hebras se usan indistintamente.
Un proceso cooperativo es aquel que puede afectar o verse afectado por otros
procesos que estén ejecutándose en el sistema. Los procesos cooperativos pueden
compartir directamente un espacio de direcciones lógico (es decir, tanto código
como datos) o compartir los datos sólo a través de archivos o mensajes. El pri-
mer caso se consigue mediante el uso de procesos ligeros o hebras.
En un entorno de multiprogramación, varios procesos pueden competir por un
número finito de recursos. Un proceso solicita recursos y, si los recursos no están
disponibles en ese momento, el proceso pasa al estado de espera. Es posible que,
algunas veces, un proceso en espera no pueda nunca cambiar de estado, porque
los recursos que ha solicitado estén ocupados por otros procesos que a su vez
estén esperando otros recursos. Cuando se produce una situación como ésta, se
dice que ha ocurrido un interbloqueo. Quizá la mejor forma de ilustrar un inter-
bloqueo es recurriendo a una ley aprobada a principios del siglo XX en Kansas,
que dećıa: “Cuando dos trenes se aproximen a la vez a un cruce, ambos deben
detenerse por completo y ninguno arrancará hasta que el otro haya salido”.
La mayoŕıa de los sistemas operativos actuales no proporcionan facilidades para
la prevención de interbloqueos, aunque probablemente se añadan pronto dichos
mecanismos. Los problemas de interbloqueo cada vez van a ser más habituales
dadas las tendencias actuales: el gran número de procesos, el uso de programas
multihebra, la existencia de muchos más recursos dentro de un sistema y la
preferencia por servidores de archivos y bases de datos con transacciones de lar-
ga duración, en sustitución de los sistemas de procesamiento por lotes.(Gagne,
2006)
1.3. Objetivos
Recopilar información acerca de procesos, hebras, planificación de la CPU,
sincronización de procesos y interbloqueos.
Establecer una visión clara, lo más precisa posible, acerca de los temas
abordados.
3
Implementar un mapa conceptual por cada caṕıtulo tratado
1.4. Metodoloǵıa
Materiales: Computadora, entorno virtual de aprendizaje (EVA), libros
virtuales, páginas web, herramienta Cmaptools.
Técnicas: Observación, documentación, descripción.
Métodos: Método anaĺıtico, método descriptivo, método deductivo, méto-
do inductivo.
Metodoloǵıa de desarrollo
El presente trabajo consta de 2 fases:
Realizar una búsqueda documental, orientada a recolectar, analizar art́ıcu-
los y documentos de trabajo relacionados con procesos, hebras, planifica-
ción de la CPU, sincronización de procesos y interbloqueos.
Analizar la información obtenida en relación a los temas mencionados y
plasmar los resultados obtenidos en un mapa conceptual.
1.5. Resultados
1.5.1. Procesos
Mapa conceptual de Procesos
Figura 1.1: Procesos
4
1.5.2. Hebras
Mapa conceptual de Hebras o hilos
Figura 1.2: Hebras o hilos
1.5.3. Planificación de la CPU
Mapa conceptual de la Planificación de la CPU
Figura 1.3: Planificación de la CPU
1.5.4. Sincronización de procesos
Mapa conceptual de la sincronización de procesos
5
Figura 1.4: Sincronización de procesos
1.5.5. Interbloqueos
Mapa conceptual de interbloqueos
Figura 1.5: Interbloqueos
1.6. Conclusiones
Un proceso es un programa en ejecución, el cual puede estar en uno de los
siguientes estados: nuevo, preparado, en ejecución, en espera o terminado.
El algoritmo de planificación SJF (shortest-jab-first, primero el trabajo
más corto) es el más óptimo, ya que proporciona el tiempo medio de espera
más corto. Sin embargo, la implementación del mecanismo de planificación
6
SJF es complicada, ya que resulta dif́ıcil predecir la duración de la siguiente
ráfaga de CPU.
Tanto la planificaciónpor prioridades como la planificación SFJ presentan
el problema de que los procesos pueden sufrir bloqueos indefinidos, en el
cual se hace uso de la técnica de envejecimiento que trata, precisamente,
de evitar los bloqueos indefinidos.
Los semáforos se pueden emplear para solucionar varios problemas de sin-
cronización y se pueden implementar de forma eficiente, especialmente si se
dispone de soporte hardware para ejecutar las operaciones atómicamente.
Una hebra es un flujo de control dentro de un proceso.
Un proceso multihebra contiene varios flujos de control diferentes dentro
del mismo espacio de direcciones.
Las ventajas de los mecanismo, multihebra son que proporcionan una ma-
yor capacidad de respuesta al usuario, la compartición de recursos dentro
del proceso, una mayor economı́a y la capacidad de aprovechar las ventajas
ellas arquitecturas multiprocesador.
Un interbloqueo se da cuando un proceso necesite de ciertos recursos y
estos no estén disponibles en el momento ya que a su vez los esta usando
otro proceso.
Los programas multihebra plantean muchos retos a los programadores,
entre los que se incluye la semántica de las llamadas al sistema fork() y
exec().
Un interbloqueo puede producirse sólo si se dan simultáneamente en el sis-
tema cuatro condiciones necesarias: exclusión mutua, retención y espera,
ausencia de mecanismos de desalojo espera circular. Para prevenir los in-
terbloqueos, podemos hacer que al menos una de las condiciones necesarias
nunca llegue a cumplirse.
7
Referencias
Gagne, S. G. (2006). Fundamentos de sistemas operativos (7.a ed.). España.
8
	Desarrollo
	Abstract
	Antecedentes
	Objetivos
	Metodología
	Resultados
	Procesos
	Hebras
	Planificación de la CPU
	Sincronización de procesos
	Interbloqueos
	Conclusiones 
	Referencias

Continuar navegando