SlideShare una empresa de Scribd logo
1 de 31
Arquitectura de
Sistemas Operativos
Procesos del Sistema Operativo
Desarrollado por:
Jader Antonio Valdivia Taleno.
Universidad:
Instituto de Estudios Superiores de la
Universidad Nacional de Ingeniería.
Fecha:
12 de noviembre del 2018.
Índice
I. Resumen……………………………………………………………………………… 1
II. Introducción…………………………………………………………………………. 2
II.I Planteamiento del problema……………………………………………….. 2
II.II Objetivos…………………………………………………………………… 2
Objetivo General…………………………………………………………… 2
Objetivos Específicos………………………………………………………. 3
II.III Preguntas………………………………………………………………..... 3
II.IV Justificación……………………………………………………………… 3
III. Marco teórico…………………………………………………………………………. 4
IV. Metodología……………………………………………………………………...…… 4
V. Desarrollo………………………………………………………………………….… 5
1)Introducción a la administración de procesos…………………………………… 5
1.1) Diferencia entre un programa y un proceso……………………………… 5
1.2) Jerarquía de procesos…………………………………………………….. 6
1.3) Estados de un proceso……………………………………………………. 7
1.3.1) Implementación de procesos…………………………………………… 7
1.3.2) Comunicación entre procesos…………………………………………. 9
1.3.3) Condiciones de competencia…………………………………………… 10
1.3.4) Sección Crítica…………………………………………………………. 10
2) Exclusión Mutua…………………………………………………………………. 11
2.1) Desactivación de interrupciones………………………………………….. 11
2.2) Variables de cerradura…………………………………………………… 12
2.3) Dormir y despertar……………………………………………………….. 13
2.4) Semáforos Transferencia de mensajes………………………………..… 14
3 Planificación de procesos…………………………………………………….. 17
3.1) Planificación ROUND ROBIN………………………………………. 17
3.2) Planificación por PRIORIDAD……………………………………… 18
3.3) Colas Múltiples Primero el TRABAJO MAS CORTO……………. 18
3.4) Planificación Garantizada Planificación en dos niveles…………… 18
3.5) Casos de estudio de Sistemas Operativos………………………….. 20
VI. Conclusiones………………………………………………………………………… 25
VII. Bibliografía................................................................................................................. 27
P á g i n a 1 | 31
I. Resumen
Esta investigación es realizada para comprender de una manera más detallada y eficaz cómo se
desempeñan los diferentes procesos de un Sistema Operativo y cuál es su estructura lógica, también se
explicará cómo los procesos se comunican mutuamente, cuáles son los algoritmos de planificación más
comunes que se utilizan y se ejemplificará cómo se manejan los procesos en los diferentes Sistemas
Operativos que hemos conocido en el transcurso de la asignatura Arquitectura de Sistemas Operativos.
Para realizar esta investigación se realizó un estudio piloto ya que hay temas que son pocos estudiados,
así que se tuvo que hacer una investigación un poco profunda para que podamos conocer los términos
necesarios para contestar las preguntas antes mencionadas. La obtención de los datos se hizo gracias a
una metodología cuantitativa como un análisis subjetivo e individual, para hacer esta investigación más
interpretativa.
P á g i n a 2 | 31
II) Introducción
Sin el Sistema Operativo, una computadora no es más que una masa metálica sin utilidad. Con el
software, una computadora puede almacenar, procesar y recuperar información, encontrar errores de
ortografía en manuscritos, tener aventuras e intervenir en muchas otras valiosas actividades para ganar
el sustento. El software para computadoras puede clasificarse en general en dos clases: los programas de
sistema, que controlan la operación de la computadora en si y los programas de aplicación, los cuales
resuelven problemas para sus usuarios. El programa fundamental de todos los programas de sistema es
el sistema operativo (SO), que controla todos los recursos de la computadora y proporciona la base sobre
la cual pueden escribirse los programas de aplicación.
II.I) Planteamiento del problema
Los Sistemas Operativos y Redes no son ramas muy explotadas como el diseño web, administración de
base de datos, desarrollo de software empresariales y la reparación/ mantenimiento de computadoras en
la ingeniería en computación, muchas empresas necesitan de ingenieros que tengan muchos
conocimientos sobre los sistemas operativos, pero los profesionales de la actualidad se especializan en
otros campos de trabajo sin saber lo importante que es tener muchos conocimientos del manejo de
sistemas operativos, muchos desconocen que la base de las diferentes ramas de la ingeniería en
computación antes mencionadas están planteadas bajo los procesos de los sistemas operativos y muchos
desconocen cómo se trabajan y ejecutan las tareas de estos.
II.II) Objetivos
II.II.I) Objetivo General
Adquirir nuevos conocimientos en el estudio de procesos de los sistemas operativos, para un mejor
desarrollo y análisis a la solución de problemas en nuestro ámbito estudiantil, laboral y profesional.
P á g i n a 3 | 31
II.II.II) Objetivos Específicos
 Investigar en diferentes sitios y/o plataformas web para la obtención de respuestas hacia nuestras
inquietudes.
 Analizar los términos o conceptos obtenidos sobre los procesos para el entendimiento lógico de sus
funcionamientos.
 Implementar los conocimientos adquiridos en nuestros estudios universitarios y futuro laboral.
II.III) Pregunta principal de investigación
¿Cuáles son los algoritmos más eficaces a utilizar en los procesos de los sistemas operativos?
II.IV) Justificación
Esta investigación fue realizada con el propósito de conocer el funcionamiento lógico de los sistemas
operativos y que estos conocimientos sean transmitidos hacia diferentes estudiantes y/o personas
interesadas en aprender más sobre ellos, basándonos en los algoritmos que tienden a utilizar los sistemas
operativos más comunes tales como la familia de Windows NT, Sistemas Operativos basados en UNIX
y algunos Sistemas Operativos que no son muy utilizados como OS/2 y VMS. Esta documentación posee
una investigación metodológica como beneficio a generar nuevos conocimientos base para que sean
esparcidos y desarrollados por las personas que lo deseen.
P á g i n a 4 | 31
II. Marco teórico
II.I) Teorías existente
Sistema Operativo: “Un sistema es el software principal o conjunto de programas de un sistema
informático que gestiona los recursos de hardware y provee servicios a los programas de aplicación de
software, ejecutándose en modo privilegiado respecto de los restantes (aunque puede que parte de él se
ejecute en espacio de usuario)”
Tanenbaum, A. (1992) Modern Operating Systems, Englewood Cliffs: Prentice-Hall; Haldar, S. y Aravind, A. A. (2010)
Operating Systems,
Proceso: “Un Proceso puede informalmente entenderse como un programa en ejecución. Formalmente
un proceso es "Una unidad de actividad que se caracteriza por la ejecución de una secuencia de
instrucciones, un estado actual, y un conjunto de recursos del sistema asociados”
- Stallings, William (2005). Sistemas operativos: aspectos internos y principios de diseño (5ª edición). Pearson Prentice Hall.
p. 109.
III) Metodología
III.I) Hipótesis
Los usuarios que utilizan los sistemas operativos lo hacen sin saber realmente cuál es su funcionamiento,
la manera en cómo trabajan y cómo se desempeñan al momento de realizar las diferentes tareas. Los
Sistemas Operativos a pesar de que tienen las mismas bases de funcionamiento ocupan diferentes
algoritmos en sus procesos, es por esto que depende de las tareas que necesitemos realizar tenemos que
escoger muy bien el sistema operativo que sea el más eficaz a ayudarnos, sin embargo, los usuarios no
pueden notar la diferencia entre los diferentes Sistemas Operativos porque no se animan a utilizar o
probar uno que no sea comercial.
P á g i n a 5 | 31
IV) Desarrollo
1) Introducción a la administración de procesos.
1.1) Diferencia entre un programa y un proceso.
Un programa en ejecución es un proceso. Pero el nombre “programa” no se utiliza para referirse a un
programa en ejecución, porque ambos conceptos son distintos. La diferencia es la misma que la que
puede haber entre una galleta y la receta para hacer galletas. Un programa es un montón de datos, no es
nada que esté vivo. Al contrario, un proceso es algo vivo, dinámico, que está haciendo cosas
(ejecutando). Un proceso tiene un conjunto de registros que está usando, tiene un contador de programa
que indica la siguiente instrucción que debe ejecutar, y tiene una pila. Esto significa que tiene un flujo
de control que ejecuta una instrucción tras otra, como ya sabemos.
A continuación, se presenta de manera detallada la definición de programa y proceso con sus respectivas
diferencias y semejanza:
Definición Diferencias Semejanzas
Programa Se refiere a aplicaciones y
recursos que permiten
desarrollar diferentes tareas de
una computadora, un teléfono
u otros equipos electrónicos.
- Un programa no es
un proceso, sino una
entidad pasiva.
- Un programa se
encuentra en modo
pasivo.
- Utiliza únicamente
memoria secundaria.
Es una actividad pasiva
tanto como el contenido
de un archivo
almacenado en un disco.
P á g i n a 6 | 31
Proceso Se refiere a la ejecución de
diversas instrucciones por
parte del microprocesador de
acuerdo al programa.
- Trabaja en modo
ejecutivo.
- Utiliza memoria
principal y
procesador.
- Cada proceso tiene
su propia CPU
virtual.
Debe complementar la
posibilidad de un
compartidor, lo que se
consigue aplicando un
algoritmo de
planificación.
1.2) Jerarquía de procesos
Los sistemas operativos deben disponer de una forma de crear y destruir procesos cuando se requiera
durante la operación, teniendo en cuenta que los procesos pueden generar procesos hijos mediante
llamadas al sistema operativo, pudiendo darse ejecución en paralelo. Respecto a los estados del proceso
deben efectuarse las siguientes consideraciones:
 Cada proceso es una entidad independiente pero frecuentemente debe interactuar con otros procesos.
 Los procesos pueden bloquearse en una ejecución porque:
o Desde el punto de vista lógica no pueden continuar porque espera datos que no están
disponibles.
o El sistema operativo asignó la CPU a otro proceso.
Para referirse a las relaciones entre los procesos de la jerarquía se emplean los términos de padre, hijo,
hermano o abuelo. Cuando el proceso A solicita al sistema operativo que cree el proceso B. se dice que
A es padre de B y que B es hijo de A. Bajo esta óptica, la jerarquía de procesos puede considerarse como
un árbol genealógico.
P á g i n a 7 | 31
Algunos sistemas operativos, como UNIX, mantienen de forma explícita esta estructura jerárquica de
procesos (un proceso sabe quién es su padre), mientras que otros sistemas operativos como el Windows
NT no la mantienen.
1.3) Estados de un proceso
1.3.1) Implementación de procesos
Para implementar el modelo de procesos, el S.O. mantiene una tabla (un arreglo de estructura), llamada
tabla de procesos, con una entrada por proceso.
La entrada contiene información acerca del estado del proceso, su contador de programa, apuntador a la
pila, asignación de memoria, estado de sus archivos abiertos, información contable y de calendarización
entre otras cosas.
Administración de procesos. Administración de
memoria.
Administración de archivos.
Registros Apuntador a un segmento
de texto.
Directorio Raíz
Contador de programa Apuntador a segmento de
datos
Directorio de trabajo
Palabra de estado del
programa
Apuntador a segmento de
pila
Descriptores de archivo
Apunte de pila ID Usuario
Estado del proceso ID de grupo
P á g i n a 8 | 31
Prioridad
Parámetros de
calendarización
ID de proceso
Proceso padre
Grupo de procesos
Señales
Hora de inicio del proceso
Tiempo de CPU consumido
Tiempo de CPU de los hijos
Hora de la siguiente alarma
Cada clase de dispositivos de E/S está asociada con una posición de memoria, llamada vector de
interrupción. Éste contiene la dirección del procedimiento de servicio de interrupción. Supongamos que
el proceso de usuario 3 se está ejecutando cuando ocurre una interrupción de disco.
La forma en que se mantiene la ilusión de múltiples procesos secuenciales en una máquina con una CPU
y muchos dispositivos de E/S es la siguiente:
 El Hardware mete al contador de programa en la pila.
 El hardware carga un nuevo contador de programa tomándolo del vector de interrupciones.
 Un procedimiento en ensamblador guarda registros
 Un procedimiento en ensamblador crea la nueva pila.
 Se ejecuta el servicio de interrupciones en C (suele leer entradas y ponerlas en un búfer)
P á g i n a 9 | 31
 El calendarizado decide cual programa ejecutará ahora.
 El procedimiento en C regresa el código ensamblador.
 Un procedimiento en ensamblador arranca el nuevo proceso actual.
1.3.2) Comunicación entre procesos
La comunicación entre procesos (comúnmente IPC, es una función básica de los sistemas operativos.
Los procesos pueden comunicarse entre sí a través de compartir espacios de memoria, ya sean variables
compartidas o buffers, o a través de las herramientas provistas por las rutinas de IPC. El IPC provee un
mecanismo que permite a los procesos comunicarse y sincronizarse entre sí, normalmente a través de un
sistema de bajo nivel de paso de mensajes que ofrece la red subyacente.
La comunicación se establece siguiendo una serie de reglas (protocolos de comunicación). Los
protocolos desarrollados para internet son los mayormente usados: IP (capa de red), protocolo de control
de transmisión (capa de transporte) y protocolo de transferencia de archivos, protocolo de transferencia
de hipertexto (capa de aplicación).
Los procesos pueden estar ejecutándose en una o más computadoras conectadas a una red. Las técnicas
de IPC están divididas dentro de métodos para: paso de mensajes, sincronización, memoria compartida
y llamadas de procedimientos remotos (RPC). El método de IPC usado puede variar dependiendo del
ancho de banda y latencia (el tiempo desde el pedido de información y el comienzo del envío de la
misma) de la comunicación entre procesos, y del tipo de datos que están siendo comunicados.
La comunicación puede ser:
 Síncrona o asíncrona.
 Persistente (persistent) o momentánea (transient).
 Directa o indirecta.
 Simétrica o asimétrica.
P á g i n a 10 | 31
 Con uso de buffers explícito o automático.
 Envío por copia del mensaje o por referencia.
1.3.3) Condiciones de competencia
La condición de carrera o competencia (race condition) ocurre cuando dos o más procesos acceden un
recurso compartido sin control, de manera que el resultado combinado de este acceso depende del orden
de llegada. Suponga, por ejemplo, que dos clientes de un banco realizan cada uno una operación en
cajeros diferentes al mismo tiempo.
El usuario A quiere hacer un depósito. El B un retiro. El usuario A comienza la transacción y lee su saldo
que es 1000. En ese momento pierde su turno de ejecución (y su saldo queda como 1000) y el usuario B
inicia el retiro: lee el saldo que es 1000, retira 200 y almacena el nuevo saldo que es 800 y termina. El
turno de ejecución regresa al usuario A el cual hace su depósito de 100, quedando saldo = saldo + 100 =
1000 + 100 = 1100. Como se ve, el retiro se perdió y eso le encanta al usuario A y B, pero al banquero
no le convino esta transacción. El error pudo ser al revés, quedando el saldo final en 800.
1.3.4) Sección Crítica
Es la porción de código en la que se accede a un recurso compartido. a la porción de código de un
programa de ordenador en la que se accede a un recurso compartido (estructura de datos o dispositivo)
que no debe ser accedido por más de un proceso o hilo en ejecución. La sección crítica por lo general
termina en un tiempo determinado y el hilo, proceso o tarea sólo tendrá que esperar un período
determinado de tiempo para entrar.
Se necesita un mecanismo de sincronización en la entrada y salida de la sección crítica para asegurar la
utilización en exclusiva del recurso, por ejemplo, un semáforo, monitores, el algoritmo de Dekker y
Peterson, los candados.
P á g i n a 11 | 31
El acceso concurrente se controla teniendo cuidado de las variables que se modifican dentro y fuera de
la sección crítica. La sección crítica se utiliza por lo general cuando un programa multihilo actualiza
múltiples variables sin un hilo de ejecución separado que lleve los cambios conflictivos a esos datos.
Una situación similar, la sección crítica puede ser utilizada para asegurarse de que un recurso
compartido, por ejemplo, una impresora, pueda ser accedida por un solo proceso a la vez.
La manera en cómo se implementan las secciones puede variar dependiendo de los diversos sistemas
operativos. Sólo un proceso puede estar en una sección crítica a la vez.
El método más común para evitar que dos procesos accedan al mismo tiempo a un recurso es el de la
exclusión mutua.
2) Exclusión Mutua
Garantizar que en cada momento se pueda estar ejecutando como máximo una sección crítica asociada
a un recurso.
2.1) Desactivación de interrupciones
Si se desactivan las interrupciones no se presenta el problema de la exclusión mutua porque al hacerlo
impedimos que ningún otro proceso pueda parar al que ya está.
Desventajas:
No se debe permitir a los procesos de usuario utilizar este mecanismo de exclusión mutua, que será
utilizado únicamente por procesos del S.O.
Excluye a todos los procesos del sistema, no sólo a los procesos que poseen las condiciones de
competencia.
Si existe un bloqueo en la sección crítica se para el sistema debido a que se han desactivado las
interrupciones.
P á g i n a 12 | 31
Los mecanismos para implementar sincronización y comunicación son de bajo nivel.
Si tenemos más de un C.P.U. no nos sirve la activación - desactivación de interrupciones porque sólo se
realiza esto para un procesador y los demás no se ven afectados. Por tanto, falla en sistemas
multiprocesadores.
2.2) Variables de cerradura
En éste caso se genera una variable la cual puede tener dos valores o bien 0 (no hay ningún proceso en
su sección crítica) o bien 1 (indicando que la sección crítica está ocupada) entonces cada proceso antes
de ingresar a la sección crítica verifica el estado de la variable de cerradura y en caso de que la misma
este en 0, le cambia el valor e ingresa a la misma y en caso de que la misma sea 1 el proceso se queda
verificando el estado de la misma hasta que el mismo sea 0; A continuación se presenta el algoritmo:
Repeat
If (flag = 0) then {
Flag:=1
Sección crítica
Flag:=0
Sección no crítica}
Until 0 = 1
Este algoritmo sin embargo no resuelve el problema de la sección crítica porque si hubiera una
interrupción justo después de comprobar el estado del flag y se accediera a la memoria compartida antes
de cambiar el flag, otro proceso podría acceder a la memoria compartida, cambiar el flag a uno y habría
dos procesos accediendo a la memoria compartida.
P á g i n a 13 | 31
2.3) Dormir y despertar
Dormir (sleep) llamada al sistema que provoca el bloqueo del proceso que hizo la llamada (que será
suspendida hasta que otro proceso la despierte)
Despertar (WakeUp): Tiene un parámetro que es el proceso por despertar.
Los procesos se pueden comunicar entre sí mediante las primitivas de comunicación entre procesos, que
se utilizan para garantizar que dos procesos no se encuentren jamás al mismo tiempo dentro de sus
regiones críticas, es decir la extensión mutua.
2.4) Semáforos
Un semáforo es una variable especial (o tipo abstracto de datos) que constituye el método clásico para
restringir o permitir el acceso a recursos compartidos (por ejemplo, un recurso de almacenamiento del
sistema o variables del código fuente) en un entorno de multiprocesamiento (en el que se ejecutarán
varios procesos concurrentemente). Fueron inventados por Edsger Dijkstra en 1965 y se usaron por
primera vez en el sistema operativo THEOS.
Los semáforos se emplean para permitir el acceso a diferentes partes de programas (llamados secciones
críticas) donde se manipulan variables o recursos que deben ser accedidos de forma especial. Según el
valor con que son inicializados se permiten a más o menos procesos utilizar el recurso de forma
simultánea.
Un tipo simple de semáforo es el binario, que puede tomar solamente los valores 0 y 1. Se inicializan en
1 y son usados cuando sólo un proceso puede acceder a un recurso a la vez. Son esencialmente lo mismo
que los mutex. Cuando el recurso está disponible, un proceso accede y decrementa el valor del semáforo
con la operación P. El valor queda entonces en 0, lo que hace que si otro proceso intenta decrementarlo
P á g i n a 14 | 31
tenga que esperar. Cuando el proceso que decrementó el semáforo realiza una operación V, algún
proceso que estaba esperando comienza a utilizar el recurso.
Para hacer que dos procesos se ejecuten en una secuencia predeterminada puede usarse un semáforo
inicializado en 0. El proceso que debe ejecutar primero en la secuencia realiza la operación V sobre el
semáforo antes del código que debe ser ejecutado después del otro proceso. Éste ejecuta la operación P.
Si el segundo proceso en la secuencia es programado para ejecutar antes que el otro, al hacer P dormirá
hasta que el primer proceso de la secuencia pase por su operación V. Este modo de uso se denomina
señalación (signaling), y se usa para que un proceso o hilo de ejecución le haga saber a otro que algo ha
sucedido.
El otro uso de los semáforos es para la sincronización. Los semáforos vacíos y llenos se necesitan para
garantizar que ciertas secuencias de eventos ocurran o no. En este caso, aseguran que el productor deje
de ejecutarse cuando el búfer esté lleno y que el consumidor deje de ejecutarse cuando el búfer esté
vacío. Este uso es distinto de la exclusión mutua.
2.5) Transferencia de mensajes
Son un mecanismo sencillo en su implementación que resuelve algunas limitaciones de los semáforos.
Se utilizan por ello tanto en sistemas centralizados como en sistemas distribuidos.
Se utilizan para resolver problemas como sincronización, comunicación y exclusión mutua.
Otra definición de mensajes: una colección de información intercambiada entre un proceso emisor y un
proceso receptor.
Formato:
Cabecera: formato fijo.
Cuerpo: opcional y de longitud variable.
P á g i n a 15 | 31
Operaciones:
o Enviar o SEND.
o Recibir o RECEIVE.
Implementación de mensajes.
 Designación del emisor / receptor:
 Directa: cada emisor designa al receptor específico y viceversa. El receptor debe conocer el
nombre del que envía el mensaje.
Ventajas: no existen fallos de identificador, de receptor o de emisor.
Desventajas: ha de conocer en todo momento todos sus posibles clientes.
 Indirecta: Los mensajes son enviados y recibidos a través de depósitos especiales
llamados buzones. El emisor manda los mensajes a un buzón, que es un lugar que ha sido creado
con anterioridad, tomando el receptor los mensajes de dicho buzón.
El propio sistema ha de gestionar a los buzones, proporcionando instrucciones para mejorar estos.
Es necesario disponer de servicios adicionales para el mantenimiento de los buzones:
o Crear_Buzón
o Borrar_Buzón
Con este tipo de mensajes de designación indirecta, la comunicación podrá ser:
o 1 a 1.
o 1 a muchos
o Muchos a 1.
o Muchos a muchos.
Un buzón es una cola donde se almacenan los mensajes.
P á g i n a 16 | 31
 Intercambio síncrono y asíncrono de mensajes
 Síncrono:
La comunicación se realiza sólo cuando ambos procesos, emisor y receptor, están separados.
Sólo puede existir un mensaje pendiente como máximo en cada momento por cada par emisor - receptor.
Las operaciones variables de cerradura van a ser bloqueantes. Si un proceso realiza una operación enviar
y otro proceso una operación recibir sobre el mismo buzón, el primer proceso va a estar esperando hasta
que el segundo reciba y viceversa.
Ventajas:
o Fácil implementación
o Seguridad en la recepción del mensaje.
Inconvenientes (Sincronización forzosa)
 Asíncrono:
El proceso emisor no se bloquea, aunque el proceso receptor no esté preparado (no haya ejecutado una
operación recibir).
El sistema operativo acepta y almacena temporalmente los mensajes pendientes hasta que se reciban
(recargo adicional para el sistema).
Aumenta la concurrencia.
Por un mal uso, un proceso puede agotar la capacidad de almacenamiento intermedio (temporal) del
sistema. Como el S.O. no posee espacio de almacenamiento, los procesos quedarían bloqueados.
P á g i n a 17 | 31
Problema común: aplazamiento indefinido. Se produce por las siguientes causas:
o Se envía un mensaje y nadie lo recibe (Se bloquea en síncrono).
o Un mensaje nunca se envía. Se bloquea en síncrono y en asíncrono.
Esto se soluciona implementando la operación recibir con otro parámetro, siguiendo la sintaxis:
Recibir (buzón, mensaje, límite de tiempo).
El límite de tiempo es el tiempo que va a esperar el proceso como máximo para recibir un mensaje
(proceso receptor). Si el proceso receptor sobrepasa ese límite de tiempo esperando un mensaje que no
llega, dicho proceso se desbloquea y manda a su vez un mensaje informando que se ha sobrepasado el
límite de tiempo.
3) Planificación de procesos
La planificación es el proceso por el cual el sistema operativo selecciona que proceso ejecutar. La
selección del proceso se basa en alguno de los algoritmos de planificación que se presentarán a
continuación.
3.1) Planificación Round-Robin
En este tipo de planificación cada proceso tiene asignado un quantum de tiempo para ejecutarse y en el
caso de que no pueda terminar la ejecución en su quantum el proceso pasa de nuevo a la cola de procesos
para ser ejecutado por otro quantum luego de recorrer la cola para asegurarse que todos los procesos
reciban ese quantum de procesamiento.
P á g i n a 18 | 31
3.2) Planificación por prioridad
En la planificación round-robin todos los procesos son tratados con la misma prioridad. Para el caso de
este tipo de planificación a cada proceso se le asigna una prioridad y los mismos son ejecutados.
3.3) Colas múltiples
Las colas múltiples están basadas en una pila que sirve como índice de una lista de procesos que se tienen
que ejecutar.
“Primero el trabajo más corto”
Este tipo de algoritmo de planificación se usa para trabajos en batch o de procesamiento por lotes en los
cuales se puede saber cuál es el tiempo de duración de la ejecución de cada proceso y entonces se puede
seleccionar primero el trabajo más corto. El problema que se presenta con éste algoritmo es que los
grandes procesos podrían sufrir de inanición dado que cualquier proceso pequeño se "cuela" sobre uno
de mayor tamaño y como resultado final se podría dar el caso que el proceso grande nunca obtenga
procesamiento.
3.4) Planificación Garantizada
En este modelo de planificación se tiene en cuenta la cantidad de usuarios en el sistema y se le asigna a
cada uno el tiempo de ejecución de 1/n (siendo n la cantidad total de usuarios) de esa forma el
planificador tiene que llevar cuenta del tiempo de ejecución de los procesos y balancear el tiempo que
están utilizando el procesador para cumplir con la ecuación previa.
3.5) Planificación en dos niveles
Se carga en la memoria principal cierto subconjunto de los procesos ejecutables.
El planificador se restringe entonces a ese subconjunto durante cierto tiempo.
P á g i n a 19 | 31
Se eliminan de la memoria los procesos que hayan permanecido en ella lo suficiente y manda a cargar a
memoria los procesos que hayan estado en disco demasiado tiempo.
Planificador de alto nivel: Se encarga de llevar procesos de disco a memoria y viceversa
Planificador de bajo nivel: Se encarga de pasar de un proceso a otro en memoria principal
Criterios a tomar en cuenta:
 Tiempo en memoria
 Tiempo de procesador
 Prioridad
 Tamaño.
Se supone que todos los procesos ejecutables están en la memoria principal, si la memoria principal es
insuficiente, ocurrirá lo siguiente:
 Habrá procesos ejecutables que se mantengan en disco.
 Habrá importantes implicaciones para la planificación, tales como las siguientes:
 El tiempo de alternancia entre procesos para traer y procesar un proceso del disco es
considerablemente mayor que el tiempo para un proceso que ya está en la memoria principal.
 Es más eficiente el intercambio de los procesos con un planificador de dos niveles.
El esquema operativo de un planificador de dos niveles es el siguiente:
1. Se carga en la memoria principal cierto subconjunto de los procesos ejecutables.
2. El planificador se restringe a ellos durante cierto tiempo.
3. Periódicamente se llama a un planificador de nivel superior para efectuar las siguientes tareas:
Eliminar de la memoria los procesos que hayan permanecido en ella el tiempo suficiente.
P á g i n a 20 | 31
Cargar a memoria los procesos que hayan estado en disco demasiado tiempo.
4. El planificador de nivel inferior se restringe de nuevo a los procesos ejecutables que se encuentren en
la memoria.
5. El planificador de nivel superior se encarga de desplazar los procesos de memoria a disco y viceversa.
3.6) Casos de estudio de Sistemas Operativos para el componente de procesos
3.6.1) UNIX
Unix es uno de los sistemas operativos más ampliamente usados en computadoras que varían desde las
personales hasta las macros. Existen versiones para máquinas uni-procesador hasta multiprocesadores.
Debido a su historia, que evoluciona en los Laboratorios Bell de AT&T con un simulador de un viaje
espacial en el sistema solar, pasando por su expansión en universidades y la creación de las versiones
más importantes que son la de la Universidad de Berkeley y el Sistema V de la misma AT&T.
Manejo de procesos en UNIX
El manejo de procesos en UNIX es por prioridad y round robin. En algunas versiones se maneja también
un ajuste dinámico de la prioridad de acuerdo al tiempo que los procesos han esperado y al tiempo que
ya han usado el CPU. El sistema provee facilidades para crear 'pipes' entre procesos, contabilizar el uso
de CPU por proceso y una pila común para todos los procesos cuando necesitan estarse ejecutando en
modo privilegiado (cuando hicieron una llamada al sistema). UNIX permite que un proceso haga una
copia de sí mismo por medio de la llamada 'fork', lo cual es muy útil cuando se realizan trabajos paralelos
o concurrentes; también se proveen facilidades para el envío de mensajes entre procesos. Sun
Microsystems, AT&T, IBM, Hewlett Packard y otros fabricantes de computadoras llegaron a un acuerdo
para usar un paquete llamado ToolTalk para crear aplicaciones que usen un mismo método de
intercambio de mensajes.
P á g i n a 21 | 31
3.6.2) VMS
El sistema operativo VMS (Virtual Memory System) es uno de los más robustos en el mercado, aunque
es propietario de la compañia Digital Equipment Corporation. Actualmente con su versión OpenVMS
5.x existe para los procesadores de las máquinas VAX (CISC) y con el Alpha-chip (RISC). Ofrece un
amplio conjunto de comandos a través de su intérprete Digital Command Language (DCL), utilidades
de red (DECnet), formación de 'clusters' de computadoras para compartir recursos, correo electrónico y
otras facilidades. Es un sistema operativo multiusuario/multitarea monolítico.
Manejo de procesos en VMS
Soporta muchos ambientes de usuario tales como: Tiempo crítico, desarrollo de programas interactivos,
batch, ya sea de manera concurrente, independiente o combinado.
El calendarizador VAX/VMS realiza calendarización de procesos normales y de tiempo real, basados en
la prioridad de los procesos ejecutables en el Balance Set.Un proceso normal es referido a como un
proceso de tiempo compartido o proceso background mientras que los procesos en tiempo real se refieren
a los de tiempo crítico.
En VMS los procesos se manejan por prioridades y de manera apropiativa. Los procesos se clasifican de
la prioridad 1 a la 31, siendo las primeras quince prioridades para procesos normales y trabajos en lote,
y de la 16 a la 31 para procesos privilegiados y del sistema. Las prioridades no permanecen fijas todo el
tiempo, sino que se varían de acuerdo a algunos eventos del sistema. Las prioridades de los procesos
normales pueden sufrir variaciones de hasta 6 puntos, por ejemplo, cuando un proceso está esperando
un dispositivo y éste fue liberado. Un proceso no suelta la unidad central de procesamiento hasta que
exista un proceso con mayor prioridad.
El proceso residente de mayor prioridad a ser ejecutado siempre se selecciona para su ejecución. Los
procesos en tiempo crítico son establecidos por el usuario y no pueden ser alterados por el sistema. La
P á g i n a 22 | 31
prioridad de los procesos normales puede ser alterada por el sistema para optimizar overlap de
computación y otras actividades I/O.
Un aspecto importante del planificador de procesos en VMS es la existencia de proceso 'monitor' o
'supervisor', el cual se ejecuta periódicamente para actualizar algunas variables de desempeño y para re-
calendarizar los procesos en ejecución.
Existen versiones de VMS que corren en varios procesadores, y se ofrece librerías para crear programas
con múltiples 'threads'. En específico se proveen las interfaces 'cma', 'pthread' y 'pthread-exception-
returning'. Todas estas librerías se conocen como DECthreads e incluyen librerías tales como semáforos
y colas atómicas para la comunicación y sincronización entre threads. El uso de threads sirve para enviar
porciones de un programa a ejecutar en diferentes procesadores aprovechando así el multiproceso.
3.6.3) OS/2
El sistema operativo OS/2 ha tenido una historia turbulenta en el seno de Microsoft e IBM, creciendo en
algún tiempo bajo equipos de trabajo de ambas compañias y prosiguiendo finalmente con la última. Los
objetivos para este sistema operativo eran: compatibilidad para ejecutar los programas existentes para
DOS en las computadoras 80x86, ofrecer la multitarea, la facilidad de memoria virtual y servicios de red
de área local [Alcal92].
Manejo de procesos en OS/2
OS/2 utiliza un esquema de planificación apropiativa, es decir, los procesos pueden ser suspendidos para
darle su turno de ejecución a otro diferente. Los procesos pueden estar dividos en 'threads' que cuentan
con sus propios registros, pila y contador de programa y todos los 'threads' de un mismo proceso
comparten la memoria. Esto facilita la comunicación entre ellos y la sincronización. También es posible
que un proceso genere un proceso hijo, en tal caso el hijo hereda todos los atributos del padre como son
los descriptores de archivos abiertos, los valores en memoria, etc; prácticamente igual que el sistema
operativo UNIX.
P á g i n a 23 | 31
Otra facilidad de OS/2 es la facilidad de crear 'conductos' lo cual también es una función heredada de
UNIX.
La calendarización de procesos o 'threads' se hace por prioridad y dándoles un intervalo de ejecución a
cada proceso o 'thread'. Se manejan tres niveles de prioridades: procesos preferentes, procesos
preferentes interactivos y procesos normales. OS/2 eleva a la categoría de preferentes a aquellos procesos
que hacen mucha E/S.
Otra facilidad notable de OS/2 es la carga dinámica de librerías, que consiste en la generación de
aplicaciones cuyas librerías no forman parte del coacute;digo compilado, sino que son cargadas cuando
el programa es ejecutado. Esto sirve bastante sobre todo cuando las librerías son de uso común. Como
se ve, esta facilidad es parecida a las del sistema operativo UNIX SunOS.
3.6.4) Windows NT
Windows NT es una familia de sistemas operativos producidos por Microsoft, de la cual la primera
versión fue publicada en julio de 1993. Fue diseñado para tomar ventaja de todo el poder que ofrecen
los procesadores más avanzados de Intel, así como algunos de los procesadores RISC. Windows NT es
la respuesta de Microsoft a UNIX. NT ofrece los mismos servicios que UNIX, interopera con redes
UNIX pero remplaza los comandos criacute;pticos de UNIX, su estructura de archivos ARCANE y la
mezcla de GUIs con una simple y estandarizada interfaz para el usuario como lo es Windows. Además,
NT tiene las características que originalmente iba a tener el OS/2: un avanzado sistema operativo de 32
bits y compatibilidad con Windows GUI, además de soportar las aplicaciones hechas en DOS, pero
liberándose de las limitaciones de éste.
P á g i n a 24 | 31
Manejo de procesos en Windows NT
En la arquitectura de NT los procesos son segmentados en componentes más pequeños llamados
'threads'. WindowsNT soporta varias tareas al mismo tiempo. Existen dos tipos de multitarea, el
apropiativo (preemptive) y el no apropiativo (no preemptive). Con la multitarea apropiativa la ejecución
de un 'thread' puede ser suspendida después de un tiempo determinado (time slice) por el sistema
operativo para permitir que otro thread sea ejecutado. Mientras que con la multitarea no apropiativa, es
el thread el que determina cuándo le regresará el control al sistema operativo para permitir que otro
thread sea ejecutado. NT, así como OS/2 y UNIX usan preemptive multitasking para soportar la
ejecución "simultánea" de varios procesos.
P á g i n a 25 | 31
IV) Conclusión
Luego de haber investigado y analizado se puede ver que se han desarrollado varios tipos de sistemas
operativos con diferentes interfaces y categorías. Pero hemos podido observar que todos los sistemas
operativos han sufrido cambios por parte de los programadores, y siguen evolucionando.
El diálogo entre el usuario y la máquina suele realizarse a través de una interfaz de línea de comandos o
de una interfaz gráfica de usuario (GUI, siglas en inglés). Las interfaces de línea de comandos exigen
que se introduzcan instrucciones breves mediante un teclado. Las GUI emplean ventanas para organizar
archivos y aplicaciones con iconos y menús que presentan listas de instrucciones. El usuario manipula
directamente estos objetos visuales en el monitor señalándolos, seleccionándolos y arrastrándolos o
moviéndolos con un Mouse.
El uso de las GUI es más sencillo que el de las interfaces de línea de comandos. Sin embargo, la
introducción de instrucciones con una GUI es más lenta, por lo que las GUI suelen tener la opción de
emplear un sistema equivalente al de línea de instrucciones como alternativa rápida para los usuarios
más expertos.
Los sistemas operativos empleados normalmente son UNIX, Macintosh OS, MS-DOS, OS/2, Windows
95 y Windows NT. El UNIX y sus clones permiten múltiples tareas y múltiples usuarios. Otros SO
multiusuario y multitarea son OS/2, desarrollado inicialmente por Microsoft e IBM, Windows NT y
Win95 desarrollados por Microsoft. El SO multitarea de Apple se denomina Macintosh OS. El MS-DOS
es un SO popular entre los usuarios de PCs pero solo permite un usuario y una tarea.
P á g i n a 26 | 31
Ya conocimos que es un proceso, ya sabemos quién controla los procesos de nuestro computador pero
también podemos decir que:
 El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación.
 Los procesos son creados y destruidos por el sistema operativo, así como también este se debe
hacer cargo de la comunicación entre procesos.
 Si existe un esquema con diferentes niveles de prioridad de procesos es conveniente mantener
varias colas de procesos listos, una para cada nivel de prioridad, lo que ayuda a determinar cuál
es el proceso que más conviene ejecutar a continuación.
 La sincronización explícita entre procesos es un caso particular del estado "bloqueado". En este
caso, el suceso que permite desbloquear un proceso no es una operación de entrada/salida, sino
una señal generada a propósito por el programador desde otro proceso
 El sistema operativo es el responsable de determinar las pautas de intercalado y asignación de
recursos a cada proceso.
P á g i n a 27 | 31
V) Bibliografía
Libro: Sistemas operativos: aspectos internos y principios de diseño
Autor: Stallings, William (2005).
Edición: (5ª edición).
Editor: Pearson Prentice Hall.
Fecha: Año 2005.
Libro: Sistemas operativos modernos
Autor: Tanenbaum, Andrew S.
Edición: (3ª edición).
Editor: Pearson Prentice Hall.
Fecha: Año 2009.
Libro: Fundamentos de sistemas operativos
Autores: Silberschatz, Abraham; Galvin, Peter Baer; Gagne.
Edición: (7ª edición).
Editor: McGraw-Hill.
Fecha: Año 2006.
P á g i n a 28 | 31
Enlaces extras:
Casos de estudio de sistemas operativos:
http://sis-operativo.tripod.com/index.html
Condición de competencia:
https://sites.google.com/site/osupaep2010/administracion-de-procesos/problemas-de-
concurrencia/condiciones-de-carrera-o-competencia
Exclusión Mutua:
https://html.rincondelvago.com/sistemas-operativos_12.html
Implementación de procesos:
https://edwardlozadaso.wordpress.com/implementacion-de-procesos/
Planificación de dos niveles:
https://prezi.com/st79wrwyjpgy/planificacion-de-dos-niveles/
Planificación de procesos:
https://www.monografias.com/trabajos14/administ-procesos/administ-procesos.shtml
Procesos y programas:
http://lsub.org/plan9introes/ch2.pdf

Más contenido relacionado

La actualidad más candente

Metodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliudMetodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliudEliud Cortes
 
Modelos de los sistemas distribuidos
Modelos de los sistemas distribuidosModelos de los sistemas distribuidos
Modelos de los sistemas distribuidosMargarita Labastida
 
Analisis de requerimiento
Analisis de requerimientoAnalisis de requerimiento
Analisis de requerimientoturlahackers
 
Introduction to Parallel Computing
Introduction to Parallel ComputingIntroduction to Parallel Computing
Introduction to Parallel ComputingAkhila Prabhakaran
 
Protección y Seguridad de los sistemas operativos
Protección y Seguridad de los sistemas operativosProtección y Seguridad de los sistemas operativos
Protección y Seguridad de los sistemas operativosAquiles Guzman
 
Cuadro comparativo tipos de busquedas en IA
Cuadro comparativo tipos de busquedas en IACuadro comparativo tipos de busquedas en IA
Cuadro comparativo tipos de busquedas en IAluisilva18
 
Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosEmmanuel Fortuna
 
Arquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidosArquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidosAngel Morocho
 
ARQUITECTURAS PARALELAS
ARQUITECTURAS PARALELASARQUITECTURAS PARALELAS
ARQUITECTURAS PARALELASAlumic S.A
 
Algoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSONAlgoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSONPANAFMX
 
Requerimientos Funcionales y no Funcionales
Requerimientos Funcionales y no FuncionalesRequerimientos Funcionales y no Funcionales
Requerimientos Funcionales y no Funcionalessullinsan
 
Caracteristicas de los Sistemas Distribuidos
Caracteristicas de los Sistemas DistribuidosCaracteristicas de los Sistemas Distribuidos
Caracteristicas de los Sistemas DistribuidosJorge Guerra
 
Windows internals Essentials
Windows internals EssentialsWindows internals Essentials
Windows internals EssentialsJohn Ombagi
 
Manejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativosManejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativosCarolina Cols
 

La actualidad más candente (20)

Procesos en windows
Procesos en windowsProcesos en windows
Procesos en windows
 
Procesos e hilos_parte_3
Procesos e hilos_parte_3Procesos e hilos_parte_3
Procesos e hilos_parte_3
 
7 analisis (caso de uso)
7 analisis  (caso de uso)7 analisis  (caso de uso)
7 analisis (caso de uso)
 
Gestion de procesos Android
Gestion de procesos AndroidGestion de procesos Android
Gestion de procesos Android
 
Paralelismo a nivel de Instrucciones
Paralelismo a nivel de InstruccionesParalelismo a nivel de Instrucciones
Paralelismo a nivel de Instrucciones
 
Metodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliudMetodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliud
 
Modelos de los sistemas distribuidos
Modelos de los sistemas distribuidosModelos de los sistemas distribuidos
Modelos de los sistemas distribuidos
 
Analisis de requerimiento
Analisis de requerimientoAnalisis de requerimiento
Analisis de requerimiento
 
Introduction to Parallel Computing
Introduction to Parallel ComputingIntroduction to Parallel Computing
Introduction to Parallel Computing
 
Protección y Seguridad de los sistemas operativos
Protección y Seguridad de los sistemas operativosProtección y Seguridad de los sistemas operativos
Protección y Seguridad de los sistemas operativos
 
Cuadro comparativo tipos de busquedas en IA
Cuadro comparativo tipos de busquedas en IACuadro comparativo tipos de busquedas en IA
Cuadro comparativo tipos de busquedas en IA
 
Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas Operativos
 
Arquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidosArquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidos
 
ARQUITECTURAS PARALELAS
ARQUITECTURAS PARALELASARQUITECTURAS PARALELAS
ARQUITECTURAS PARALELAS
 
Algoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSONAlgoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSON
 
Requerimientos Funcionales y no Funcionales
Requerimientos Funcionales y no FuncionalesRequerimientos Funcionales y no Funcionales
Requerimientos Funcionales y no Funcionales
 
Caracteristicas de los Sistemas Distribuidos
Caracteristicas de los Sistemas DistribuidosCaracteristicas de los Sistemas Distribuidos
Caracteristicas de los Sistemas Distribuidos
 
Manual PHP 7
Manual PHP 7Manual PHP 7
Manual PHP 7
 
Windows internals Essentials
Windows internals EssentialsWindows internals Essentials
Windows internals Essentials
 
Manejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativosManejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativos
 

Similar a SO Procesos 38

Fundamento del computador tarea 2
Fundamento del computador tarea 2Fundamento del computador tarea 2
Fundamento del computador tarea 2pablo163
 
Metodologías de Diseño y Desarrollo de Sistemas de Información
Metodologías de Diseño y Desarrollo de Sistemas de InformaciónMetodologías de Diseño y Desarrollo de Sistemas de Información
Metodologías de Diseño y Desarrollo de Sistemas de InformaciónRafael Brito
 
Fundamentos de ingenieria de software
Fundamentos de ingenieria de softwareFundamentos de ingenieria de software
Fundamentos de ingenieria de softwareITSPR
 
ciclo de vida de los Sistemas de informacion
ciclo de vida de los Sistemas de informacionciclo de vida de los Sistemas de informacion
ciclo de vida de los Sistemas de informaciondavinson garcia
 
Ciclo de vida y diseño de los sistemas de informacion
Ciclo de vida y diseño de los sistemas de informacionCiclo de vida y diseño de los sistemas de informacion
Ciclo de vida y diseño de los sistemas de informacionjorgeluisguzmntorres1
 
Anexo 21-actividad-6
Anexo 21-actividad-6Anexo 21-actividad-6
Anexo 21-actividad-6Draven Draven
 
Articulo de análisis y diseño de sistemas
Articulo de análisis y diseño de sistemasArticulo de análisis y diseño de sistemas
Articulo de análisis y diseño de sistemasMario J Arrieta
 
Ciclo de vida y Diseño de los SI
Ciclo de vida y Diseño de los SICiclo de vida y Diseño de los SI
Ciclo de vida y Diseño de los SIRafaelBrito138
 
Articulo análisis y diseño de sistemas
Articulo análisis y diseño de sistemasArticulo análisis y diseño de sistemas
Articulo análisis y diseño de sistemasMario J Arrieta
 
Ciclo de vida de un sistema de información
Ciclo de vida de un sistema de informaciónCiclo de vida de un sistema de información
Ciclo de vida de un sistema de informacióngiorginavillamizar
 
PREGUNTAS DE PRACTICA 2022.docx
PREGUNTAS DE PRACTICA 2022.docxPREGUNTAS DE PRACTICA 2022.docx
PREGUNTAS DE PRACTICA 2022.docxyesica801790
 
PREGUNTAS DE PRACTICA 2022.docx
PREGUNTAS DE PRACTICA 2022.docxPREGUNTAS DE PRACTICA 2022.docx
PREGUNTAS DE PRACTICA 2022.docxyesica801790
 
Metodologías De Diseño Y Desarrollo De Sistemas De Información
Metodologías De Diseño Y Desarrollo De Sistemas De InformaciónMetodologías De Diseño Y Desarrollo De Sistemas De Información
Metodologías De Diseño Y Desarrollo De Sistemas De InformaciónRaimonKoudsi
 
Fundamentos del computado2
Fundamentos del computado2Fundamentos del computado2
Fundamentos del computado2Pedro Torres
 
Ingeniería del software
Ingeniería del softwareIngeniería del software
Ingeniería del softwareJoxany Chávez
 

Similar a SO Procesos 38 (20)

Fundamento del computador tarea 2
Fundamento del computador tarea 2Fundamento del computador tarea 2
Fundamento del computador tarea 2
 
Metodologías de Diseño y Desarrollo de Sistemas de Información
Metodologías de Diseño y Desarrollo de Sistemas de InformaciónMetodologías de Diseño y Desarrollo de Sistemas de Información
Metodologías de Diseño y Desarrollo de Sistemas de Información
 
Fundamentos de ingenieria de software
Fundamentos de ingenieria de softwareFundamentos de ingenieria de software
Fundamentos de ingenieria de software
 
Tarea 3 fundamentos del computador
Tarea 3 fundamentos del computador Tarea 3 fundamentos del computador
Tarea 3 fundamentos del computador
 
Practica int 3
Practica int 3Practica int 3
Practica int 3
 
Guia01com218 2012
Guia01com218 2012Guia01com218 2012
Guia01com218 2012
 
ciclo de vida de los Sistemas de informacion
ciclo de vida de los Sistemas de informacionciclo de vida de los Sistemas de informacion
ciclo de vida de los Sistemas de informacion
 
Ciclo de vida y diseño de los sistemas de informacion
Ciclo de vida y diseño de los sistemas de informacionCiclo de vida y diseño de los sistemas de informacion
Ciclo de vida y diseño de los sistemas de informacion
 
Anexo 21-actividad-6
Anexo 21-actividad-6Anexo 21-actividad-6
Anexo 21-actividad-6
 
Práctica 1
Práctica 1Práctica 1
Práctica 1
 
Articulo de análisis y diseño de sistemas
Articulo de análisis y diseño de sistemasArticulo de análisis y diseño de sistemas
Articulo de análisis y diseño de sistemas
 
Ciclo de vida y Diseño de los SI
Ciclo de vida y Diseño de los SICiclo de vida y Diseño de los SI
Ciclo de vida y Diseño de los SI
 
Articulo análisis y diseño de sistemas
Articulo análisis y diseño de sistemasArticulo análisis y diseño de sistemas
Articulo análisis y diseño de sistemas
 
Ciclo de vida de un sistema de información
Ciclo de vida de un sistema de informaciónCiclo de vida de un sistema de información
Ciclo de vida de un sistema de información
 
PREGUNTAS DE PRACTICA 2022.docx
PREGUNTAS DE PRACTICA 2022.docxPREGUNTAS DE PRACTICA 2022.docx
PREGUNTAS DE PRACTICA 2022.docx
 
PREGUNTAS DE PRACTICA 2022.docx
PREGUNTAS DE PRACTICA 2022.docxPREGUNTAS DE PRACTICA 2022.docx
PREGUNTAS DE PRACTICA 2022.docx
 
Metodologías De Diseño Y Desarrollo De Sistemas De Información
Metodologías De Diseño Y Desarrollo De Sistemas De InformaciónMetodologías De Diseño Y Desarrollo De Sistemas De Información
Metodologías De Diseño Y Desarrollo De Sistemas De Información
 
Fundamentos del computado2
Fundamentos del computado2Fundamentos del computado2
Fundamentos del computado2
 
Anexo 26-practica-7
Anexo 26-practica-7Anexo 26-practica-7
Anexo 26-practica-7
 
Ingeniería del software
Ingeniería del softwareIngeniería del software
Ingeniería del software
 

Último

programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxMapyMerma1
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxJUANSIMONPACHIN
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Baker Publishing Company
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docxAgustinaNuez21
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 

Último (20)

programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptx
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docx
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 

SO Procesos 38

  • 1. Arquitectura de Sistemas Operativos Procesos del Sistema Operativo Desarrollado por: Jader Antonio Valdivia Taleno. Universidad: Instituto de Estudios Superiores de la Universidad Nacional de Ingeniería. Fecha: 12 de noviembre del 2018.
  • 2. Índice I. Resumen……………………………………………………………………………… 1 II. Introducción…………………………………………………………………………. 2 II.I Planteamiento del problema……………………………………………….. 2 II.II Objetivos…………………………………………………………………… 2 Objetivo General…………………………………………………………… 2 Objetivos Específicos………………………………………………………. 3 II.III Preguntas………………………………………………………………..... 3 II.IV Justificación……………………………………………………………… 3 III. Marco teórico…………………………………………………………………………. 4 IV. Metodología……………………………………………………………………...…… 4 V. Desarrollo………………………………………………………………………….… 5 1)Introducción a la administración de procesos…………………………………… 5 1.1) Diferencia entre un programa y un proceso……………………………… 5 1.2) Jerarquía de procesos…………………………………………………….. 6 1.3) Estados de un proceso……………………………………………………. 7 1.3.1) Implementación de procesos…………………………………………… 7 1.3.2) Comunicación entre procesos…………………………………………. 9 1.3.3) Condiciones de competencia…………………………………………… 10 1.3.4) Sección Crítica…………………………………………………………. 10 2) Exclusión Mutua…………………………………………………………………. 11 2.1) Desactivación de interrupciones………………………………………….. 11 2.2) Variables de cerradura…………………………………………………… 12 2.3) Dormir y despertar……………………………………………………….. 13
  • 3. 2.4) Semáforos Transferencia de mensajes………………………………..… 14 3 Planificación de procesos…………………………………………………….. 17 3.1) Planificación ROUND ROBIN………………………………………. 17 3.2) Planificación por PRIORIDAD……………………………………… 18 3.3) Colas Múltiples Primero el TRABAJO MAS CORTO……………. 18 3.4) Planificación Garantizada Planificación en dos niveles…………… 18 3.5) Casos de estudio de Sistemas Operativos………………………….. 20 VI. Conclusiones………………………………………………………………………… 25 VII. Bibliografía................................................................................................................. 27
  • 4. P á g i n a 1 | 31 I. Resumen Esta investigación es realizada para comprender de una manera más detallada y eficaz cómo se desempeñan los diferentes procesos de un Sistema Operativo y cuál es su estructura lógica, también se explicará cómo los procesos se comunican mutuamente, cuáles son los algoritmos de planificación más comunes que se utilizan y se ejemplificará cómo se manejan los procesos en los diferentes Sistemas Operativos que hemos conocido en el transcurso de la asignatura Arquitectura de Sistemas Operativos. Para realizar esta investigación se realizó un estudio piloto ya que hay temas que son pocos estudiados, así que se tuvo que hacer una investigación un poco profunda para que podamos conocer los términos necesarios para contestar las preguntas antes mencionadas. La obtención de los datos se hizo gracias a una metodología cuantitativa como un análisis subjetivo e individual, para hacer esta investigación más interpretativa.
  • 5. P á g i n a 2 | 31 II) Introducción Sin el Sistema Operativo, una computadora no es más que una masa metálica sin utilidad. Con el software, una computadora puede almacenar, procesar y recuperar información, encontrar errores de ortografía en manuscritos, tener aventuras e intervenir en muchas otras valiosas actividades para ganar el sustento. El software para computadoras puede clasificarse en general en dos clases: los programas de sistema, que controlan la operación de la computadora en si y los programas de aplicación, los cuales resuelven problemas para sus usuarios. El programa fundamental de todos los programas de sistema es el sistema operativo (SO), que controla todos los recursos de la computadora y proporciona la base sobre la cual pueden escribirse los programas de aplicación. II.I) Planteamiento del problema Los Sistemas Operativos y Redes no son ramas muy explotadas como el diseño web, administración de base de datos, desarrollo de software empresariales y la reparación/ mantenimiento de computadoras en la ingeniería en computación, muchas empresas necesitan de ingenieros que tengan muchos conocimientos sobre los sistemas operativos, pero los profesionales de la actualidad se especializan en otros campos de trabajo sin saber lo importante que es tener muchos conocimientos del manejo de sistemas operativos, muchos desconocen que la base de las diferentes ramas de la ingeniería en computación antes mencionadas están planteadas bajo los procesos de los sistemas operativos y muchos desconocen cómo se trabajan y ejecutan las tareas de estos. II.II) Objetivos II.II.I) Objetivo General Adquirir nuevos conocimientos en el estudio de procesos de los sistemas operativos, para un mejor desarrollo y análisis a la solución de problemas en nuestro ámbito estudiantil, laboral y profesional.
  • 6. P á g i n a 3 | 31 II.II.II) Objetivos Específicos  Investigar en diferentes sitios y/o plataformas web para la obtención de respuestas hacia nuestras inquietudes.  Analizar los términos o conceptos obtenidos sobre los procesos para el entendimiento lógico de sus funcionamientos.  Implementar los conocimientos adquiridos en nuestros estudios universitarios y futuro laboral. II.III) Pregunta principal de investigación ¿Cuáles son los algoritmos más eficaces a utilizar en los procesos de los sistemas operativos? II.IV) Justificación Esta investigación fue realizada con el propósito de conocer el funcionamiento lógico de los sistemas operativos y que estos conocimientos sean transmitidos hacia diferentes estudiantes y/o personas interesadas en aprender más sobre ellos, basándonos en los algoritmos que tienden a utilizar los sistemas operativos más comunes tales como la familia de Windows NT, Sistemas Operativos basados en UNIX y algunos Sistemas Operativos que no son muy utilizados como OS/2 y VMS. Esta documentación posee una investigación metodológica como beneficio a generar nuevos conocimientos base para que sean esparcidos y desarrollados por las personas que lo deseen.
  • 7. P á g i n a 4 | 31 II. Marco teórico II.I) Teorías existente Sistema Operativo: “Un sistema es el software principal o conjunto de programas de un sistema informático que gestiona los recursos de hardware y provee servicios a los programas de aplicación de software, ejecutándose en modo privilegiado respecto de los restantes (aunque puede que parte de él se ejecute en espacio de usuario)” Tanenbaum, A. (1992) Modern Operating Systems, Englewood Cliffs: Prentice-Hall; Haldar, S. y Aravind, A. A. (2010) Operating Systems, Proceso: “Un Proceso puede informalmente entenderse como un programa en ejecución. Formalmente un proceso es "Una unidad de actividad que se caracteriza por la ejecución de una secuencia de instrucciones, un estado actual, y un conjunto de recursos del sistema asociados” - Stallings, William (2005). Sistemas operativos: aspectos internos y principios de diseño (5ª edición). Pearson Prentice Hall. p. 109. III) Metodología III.I) Hipótesis Los usuarios que utilizan los sistemas operativos lo hacen sin saber realmente cuál es su funcionamiento, la manera en cómo trabajan y cómo se desempeñan al momento de realizar las diferentes tareas. Los Sistemas Operativos a pesar de que tienen las mismas bases de funcionamiento ocupan diferentes algoritmos en sus procesos, es por esto que depende de las tareas que necesitemos realizar tenemos que escoger muy bien el sistema operativo que sea el más eficaz a ayudarnos, sin embargo, los usuarios no pueden notar la diferencia entre los diferentes Sistemas Operativos porque no se animan a utilizar o probar uno que no sea comercial.
  • 8. P á g i n a 5 | 31 IV) Desarrollo 1) Introducción a la administración de procesos. 1.1) Diferencia entre un programa y un proceso. Un programa en ejecución es un proceso. Pero el nombre “programa” no se utiliza para referirse a un programa en ejecución, porque ambos conceptos son distintos. La diferencia es la misma que la que puede haber entre una galleta y la receta para hacer galletas. Un programa es un montón de datos, no es nada que esté vivo. Al contrario, un proceso es algo vivo, dinámico, que está haciendo cosas (ejecutando). Un proceso tiene un conjunto de registros que está usando, tiene un contador de programa que indica la siguiente instrucción que debe ejecutar, y tiene una pila. Esto significa que tiene un flujo de control que ejecuta una instrucción tras otra, como ya sabemos. A continuación, se presenta de manera detallada la definición de programa y proceso con sus respectivas diferencias y semejanza: Definición Diferencias Semejanzas Programa Se refiere a aplicaciones y recursos que permiten desarrollar diferentes tareas de una computadora, un teléfono u otros equipos electrónicos. - Un programa no es un proceso, sino una entidad pasiva. - Un programa se encuentra en modo pasivo. - Utiliza únicamente memoria secundaria. Es una actividad pasiva tanto como el contenido de un archivo almacenado en un disco.
  • 9. P á g i n a 6 | 31 Proceso Se refiere a la ejecución de diversas instrucciones por parte del microprocesador de acuerdo al programa. - Trabaja en modo ejecutivo. - Utiliza memoria principal y procesador. - Cada proceso tiene su propia CPU virtual. Debe complementar la posibilidad de un compartidor, lo que se consigue aplicando un algoritmo de planificación. 1.2) Jerarquía de procesos Los sistemas operativos deben disponer de una forma de crear y destruir procesos cuando se requiera durante la operación, teniendo en cuenta que los procesos pueden generar procesos hijos mediante llamadas al sistema operativo, pudiendo darse ejecución en paralelo. Respecto a los estados del proceso deben efectuarse las siguientes consideraciones:  Cada proceso es una entidad independiente pero frecuentemente debe interactuar con otros procesos.  Los procesos pueden bloquearse en una ejecución porque: o Desde el punto de vista lógica no pueden continuar porque espera datos que no están disponibles. o El sistema operativo asignó la CPU a otro proceso. Para referirse a las relaciones entre los procesos de la jerarquía se emplean los términos de padre, hijo, hermano o abuelo. Cuando el proceso A solicita al sistema operativo que cree el proceso B. se dice que A es padre de B y que B es hijo de A. Bajo esta óptica, la jerarquía de procesos puede considerarse como un árbol genealógico.
  • 10. P á g i n a 7 | 31 Algunos sistemas operativos, como UNIX, mantienen de forma explícita esta estructura jerárquica de procesos (un proceso sabe quién es su padre), mientras que otros sistemas operativos como el Windows NT no la mantienen. 1.3) Estados de un proceso 1.3.1) Implementación de procesos Para implementar el modelo de procesos, el S.O. mantiene una tabla (un arreglo de estructura), llamada tabla de procesos, con una entrada por proceso. La entrada contiene información acerca del estado del proceso, su contador de programa, apuntador a la pila, asignación de memoria, estado de sus archivos abiertos, información contable y de calendarización entre otras cosas. Administración de procesos. Administración de memoria. Administración de archivos. Registros Apuntador a un segmento de texto. Directorio Raíz Contador de programa Apuntador a segmento de datos Directorio de trabajo Palabra de estado del programa Apuntador a segmento de pila Descriptores de archivo Apunte de pila ID Usuario Estado del proceso ID de grupo
  • 11. P á g i n a 8 | 31 Prioridad Parámetros de calendarización ID de proceso Proceso padre Grupo de procesos Señales Hora de inicio del proceso Tiempo de CPU consumido Tiempo de CPU de los hijos Hora de la siguiente alarma Cada clase de dispositivos de E/S está asociada con una posición de memoria, llamada vector de interrupción. Éste contiene la dirección del procedimiento de servicio de interrupción. Supongamos que el proceso de usuario 3 se está ejecutando cuando ocurre una interrupción de disco. La forma en que se mantiene la ilusión de múltiples procesos secuenciales en una máquina con una CPU y muchos dispositivos de E/S es la siguiente:  El Hardware mete al contador de programa en la pila.  El hardware carga un nuevo contador de programa tomándolo del vector de interrupciones.  Un procedimiento en ensamblador guarda registros  Un procedimiento en ensamblador crea la nueva pila.  Se ejecuta el servicio de interrupciones en C (suele leer entradas y ponerlas en un búfer)
  • 12. P á g i n a 9 | 31  El calendarizado decide cual programa ejecutará ahora.  El procedimiento en C regresa el código ensamblador.  Un procedimiento en ensamblador arranca el nuevo proceso actual. 1.3.2) Comunicación entre procesos La comunicación entre procesos (comúnmente IPC, es una función básica de los sistemas operativos. Los procesos pueden comunicarse entre sí a través de compartir espacios de memoria, ya sean variables compartidas o buffers, o a través de las herramientas provistas por las rutinas de IPC. El IPC provee un mecanismo que permite a los procesos comunicarse y sincronizarse entre sí, normalmente a través de un sistema de bajo nivel de paso de mensajes que ofrece la red subyacente. La comunicación se establece siguiendo una serie de reglas (protocolos de comunicación). Los protocolos desarrollados para internet son los mayormente usados: IP (capa de red), protocolo de control de transmisión (capa de transporte) y protocolo de transferencia de archivos, protocolo de transferencia de hipertexto (capa de aplicación). Los procesos pueden estar ejecutándose en una o más computadoras conectadas a una red. Las técnicas de IPC están divididas dentro de métodos para: paso de mensajes, sincronización, memoria compartida y llamadas de procedimientos remotos (RPC). El método de IPC usado puede variar dependiendo del ancho de banda y latencia (el tiempo desde el pedido de información y el comienzo del envío de la misma) de la comunicación entre procesos, y del tipo de datos que están siendo comunicados. La comunicación puede ser:  Síncrona o asíncrona.  Persistente (persistent) o momentánea (transient).  Directa o indirecta.  Simétrica o asimétrica.
  • 13. P á g i n a 10 | 31  Con uso de buffers explícito o automático.  Envío por copia del mensaje o por referencia. 1.3.3) Condiciones de competencia La condición de carrera o competencia (race condition) ocurre cuando dos o más procesos acceden un recurso compartido sin control, de manera que el resultado combinado de este acceso depende del orden de llegada. Suponga, por ejemplo, que dos clientes de un banco realizan cada uno una operación en cajeros diferentes al mismo tiempo. El usuario A quiere hacer un depósito. El B un retiro. El usuario A comienza la transacción y lee su saldo que es 1000. En ese momento pierde su turno de ejecución (y su saldo queda como 1000) y el usuario B inicia el retiro: lee el saldo que es 1000, retira 200 y almacena el nuevo saldo que es 800 y termina. El turno de ejecución regresa al usuario A el cual hace su depósito de 100, quedando saldo = saldo + 100 = 1000 + 100 = 1100. Como se ve, el retiro se perdió y eso le encanta al usuario A y B, pero al banquero no le convino esta transacción. El error pudo ser al revés, quedando el saldo final en 800. 1.3.4) Sección Crítica Es la porción de código en la que se accede a un recurso compartido. a la porción de código de un programa de ordenador en la que se accede a un recurso compartido (estructura de datos o dispositivo) que no debe ser accedido por más de un proceso o hilo en ejecución. La sección crítica por lo general termina en un tiempo determinado y el hilo, proceso o tarea sólo tendrá que esperar un período determinado de tiempo para entrar. Se necesita un mecanismo de sincronización en la entrada y salida de la sección crítica para asegurar la utilización en exclusiva del recurso, por ejemplo, un semáforo, monitores, el algoritmo de Dekker y Peterson, los candados.
  • 14. P á g i n a 11 | 31 El acceso concurrente se controla teniendo cuidado de las variables que se modifican dentro y fuera de la sección crítica. La sección crítica se utiliza por lo general cuando un programa multihilo actualiza múltiples variables sin un hilo de ejecución separado que lleve los cambios conflictivos a esos datos. Una situación similar, la sección crítica puede ser utilizada para asegurarse de que un recurso compartido, por ejemplo, una impresora, pueda ser accedida por un solo proceso a la vez. La manera en cómo se implementan las secciones puede variar dependiendo de los diversos sistemas operativos. Sólo un proceso puede estar en una sección crítica a la vez. El método más común para evitar que dos procesos accedan al mismo tiempo a un recurso es el de la exclusión mutua. 2) Exclusión Mutua Garantizar que en cada momento se pueda estar ejecutando como máximo una sección crítica asociada a un recurso. 2.1) Desactivación de interrupciones Si se desactivan las interrupciones no se presenta el problema de la exclusión mutua porque al hacerlo impedimos que ningún otro proceso pueda parar al que ya está. Desventajas: No se debe permitir a los procesos de usuario utilizar este mecanismo de exclusión mutua, que será utilizado únicamente por procesos del S.O. Excluye a todos los procesos del sistema, no sólo a los procesos que poseen las condiciones de competencia. Si existe un bloqueo en la sección crítica se para el sistema debido a que se han desactivado las interrupciones.
  • 15. P á g i n a 12 | 31 Los mecanismos para implementar sincronización y comunicación son de bajo nivel. Si tenemos más de un C.P.U. no nos sirve la activación - desactivación de interrupciones porque sólo se realiza esto para un procesador y los demás no se ven afectados. Por tanto, falla en sistemas multiprocesadores. 2.2) Variables de cerradura En éste caso se genera una variable la cual puede tener dos valores o bien 0 (no hay ningún proceso en su sección crítica) o bien 1 (indicando que la sección crítica está ocupada) entonces cada proceso antes de ingresar a la sección crítica verifica el estado de la variable de cerradura y en caso de que la misma este en 0, le cambia el valor e ingresa a la misma y en caso de que la misma sea 1 el proceso se queda verificando el estado de la misma hasta que el mismo sea 0; A continuación se presenta el algoritmo: Repeat If (flag = 0) then { Flag:=1 Sección crítica Flag:=0 Sección no crítica} Until 0 = 1 Este algoritmo sin embargo no resuelve el problema de la sección crítica porque si hubiera una interrupción justo después de comprobar el estado del flag y se accediera a la memoria compartida antes de cambiar el flag, otro proceso podría acceder a la memoria compartida, cambiar el flag a uno y habría dos procesos accediendo a la memoria compartida.
  • 16. P á g i n a 13 | 31 2.3) Dormir y despertar Dormir (sleep) llamada al sistema que provoca el bloqueo del proceso que hizo la llamada (que será suspendida hasta que otro proceso la despierte) Despertar (WakeUp): Tiene un parámetro que es el proceso por despertar. Los procesos se pueden comunicar entre sí mediante las primitivas de comunicación entre procesos, que se utilizan para garantizar que dos procesos no se encuentren jamás al mismo tiempo dentro de sus regiones críticas, es decir la extensión mutua. 2.4) Semáforos Un semáforo es una variable especial (o tipo abstracto de datos) que constituye el método clásico para restringir o permitir el acceso a recursos compartidos (por ejemplo, un recurso de almacenamiento del sistema o variables del código fuente) en un entorno de multiprocesamiento (en el que se ejecutarán varios procesos concurrentemente). Fueron inventados por Edsger Dijkstra en 1965 y se usaron por primera vez en el sistema operativo THEOS. Los semáforos se emplean para permitir el acceso a diferentes partes de programas (llamados secciones críticas) donde se manipulan variables o recursos que deben ser accedidos de forma especial. Según el valor con que son inicializados se permiten a más o menos procesos utilizar el recurso de forma simultánea. Un tipo simple de semáforo es el binario, que puede tomar solamente los valores 0 y 1. Se inicializan en 1 y son usados cuando sólo un proceso puede acceder a un recurso a la vez. Son esencialmente lo mismo que los mutex. Cuando el recurso está disponible, un proceso accede y decrementa el valor del semáforo con la operación P. El valor queda entonces en 0, lo que hace que si otro proceso intenta decrementarlo
  • 17. P á g i n a 14 | 31 tenga que esperar. Cuando el proceso que decrementó el semáforo realiza una operación V, algún proceso que estaba esperando comienza a utilizar el recurso. Para hacer que dos procesos se ejecuten en una secuencia predeterminada puede usarse un semáforo inicializado en 0. El proceso que debe ejecutar primero en la secuencia realiza la operación V sobre el semáforo antes del código que debe ser ejecutado después del otro proceso. Éste ejecuta la operación P. Si el segundo proceso en la secuencia es programado para ejecutar antes que el otro, al hacer P dormirá hasta que el primer proceso de la secuencia pase por su operación V. Este modo de uso se denomina señalación (signaling), y se usa para que un proceso o hilo de ejecución le haga saber a otro que algo ha sucedido. El otro uso de los semáforos es para la sincronización. Los semáforos vacíos y llenos se necesitan para garantizar que ciertas secuencias de eventos ocurran o no. En este caso, aseguran que el productor deje de ejecutarse cuando el búfer esté lleno y que el consumidor deje de ejecutarse cuando el búfer esté vacío. Este uso es distinto de la exclusión mutua. 2.5) Transferencia de mensajes Son un mecanismo sencillo en su implementación que resuelve algunas limitaciones de los semáforos. Se utilizan por ello tanto en sistemas centralizados como en sistemas distribuidos. Se utilizan para resolver problemas como sincronización, comunicación y exclusión mutua. Otra definición de mensajes: una colección de información intercambiada entre un proceso emisor y un proceso receptor. Formato: Cabecera: formato fijo. Cuerpo: opcional y de longitud variable.
  • 18. P á g i n a 15 | 31 Operaciones: o Enviar o SEND. o Recibir o RECEIVE. Implementación de mensajes.  Designación del emisor / receptor:  Directa: cada emisor designa al receptor específico y viceversa. El receptor debe conocer el nombre del que envía el mensaje. Ventajas: no existen fallos de identificador, de receptor o de emisor. Desventajas: ha de conocer en todo momento todos sus posibles clientes.  Indirecta: Los mensajes son enviados y recibidos a través de depósitos especiales llamados buzones. El emisor manda los mensajes a un buzón, que es un lugar que ha sido creado con anterioridad, tomando el receptor los mensajes de dicho buzón. El propio sistema ha de gestionar a los buzones, proporcionando instrucciones para mejorar estos. Es necesario disponer de servicios adicionales para el mantenimiento de los buzones: o Crear_Buzón o Borrar_Buzón Con este tipo de mensajes de designación indirecta, la comunicación podrá ser: o 1 a 1. o 1 a muchos o Muchos a 1. o Muchos a muchos. Un buzón es una cola donde se almacenan los mensajes.
  • 19. P á g i n a 16 | 31  Intercambio síncrono y asíncrono de mensajes  Síncrono: La comunicación se realiza sólo cuando ambos procesos, emisor y receptor, están separados. Sólo puede existir un mensaje pendiente como máximo en cada momento por cada par emisor - receptor. Las operaciones variables de cerradura van a ser bloqueantes. Si un proceso realiza una operación enviar y otro proceso una operación recibir sobre el mismo buzón, el primer proceso va a estar esperando hasta que el segundo reciba y viceversa. Ventajas: o Fácil implementación o Seguridad en la recepción del mensaje. Inconvenientes (Sincronización forzosa)  Asíncrono: El proceso emisor no se bloquea, aunque el proceso receptor no esté preparado (no haya ejecutado una operación recibir). El sistema operativo acepta y almacena temporalmente los mensajes pendientes hasta que se reciban (recargo adicional para el sistema). Aumenta la concurrencia. Por un mal uso, un proceso puede agotar la capacidad de almacenamiento intermedio (temporal) del sistema. Como el S.O. no posee espacio de almacenamiento, los procesos quedarían bloqueados.
  • 20. P á g i n a 17 | 31 Problema común: aplazamiento indefinido. Se produce por las siguientes causas: o Se envía un mensaje y nadie lo recibe (Se bloquea en síncrono). o Un mensaje nunca se envía. Se bloquea en síncrono y en asíncrono. Esto se soluciona implementando la operación recibir con otro parámetro, siguiendo la sintaxis: Recibir (buzón, mensaje, límite de tiempo). El límite de tiempo es el tiempo que va a esperar el proceso como máximo para recibir un mensaje (proceso receptor). Si el proceso receptor sobrepasa ese límite de tiempo esperando un mensaje que no llega, dicho proceso se desbloquea y manda a su vez un mensaje informando que se ha sobrepasado el límite de tiempo. 3) Planificación de procesos La planificación es el proceso por el cual el sistema operativo selecciona que proceso ejecutar. La selección del proceso se basa en alguno de los algoritmos de planificación que se presentarán a continuación. 3.1) Planificación Round-Robin En este tipo de planificación cada proceso tiene asignado un quantum de tiempo para ejecutarse y en el caso de que no pueda terminar la ejecución en su quantum el proceso pasa de nuevo a la cola de procesos para ser ejecutado por otro quantum luego de recorrer la cola para asegurarse que todos los procesos reciban ese quantum de procesamiento.
  • 21. P á g i n a 18 | 31 3.2) Planificación por prioridad En la planificación round-robin todos los procesos son tratados con la misma prioridad. Para el caso de este tipo de planificación a cada proceso se le asigna una prioridad y los mismos son ejecutados. 3.3) Colas múltiples Las colas múltiples están basadas en una pila que sirve como índice de una lista de procesos que se tienen que ejecutar. “Primero el trabajo más corto” Este tipo de algoritmo de planificación se usa para trabajos en batch o de procesamiento por lotes en los cuales se puede saber cuál es el tiempo de duración de la ejecución de cada proceso y entonces se puede seleccionar primero el trabajo más corto. El problema que se presenta con éste algoritmo es que los grandes procesos podrían sufrir de inanición dado que cualquier proceso pequeño se "cuela" sobre uno de mayor tamaño y como resultado final se podría dar el caso que el proceso grande nunca obtenga procesamiento. 3.4) Planificación Garantizada En este modelo de planificación se tiene en cuenta la cantidad de usuarios en el sistema y se le asigna a cada uno el tiempo de ejecución de 1/n (siendo n la cantidad total de usuarios) de esa forma el planificador tiene que llevar cuenta del tiempo de ejecución de los procesos y balancear el tiempo que están utilizando el procesador para cumplir con la ecuación previa. 3.5) Planificación en dos niveles Se carga en la memoria principal cierto subconjunto de los procesos ejecutables. El planificador se restringe entonces a ese subconjunto durante cierto tiempo.
  • 22. P á g i n a 19 | 31 Se eliminan de la memoria los procesos que hayan permanecido en ella lo suficiente y manda a cargar a memoria los procesos que hayan estado en disco demasiado tiempo. Planificador de alto nivel: Se encarga de llevar procesos de disco a memoria y viceversa Planificador de bajo nivel: Se encarga de pasar de un proceso a otro en memoria principal Criterios a tomar en cuenta:  Tiempo en memoria  Tiempo de procesador  Prioridad  Tamaño. Se supone que todos los procesos ejecutables están en la memoria principal, si la memoria principal es insuficiente, ocurrirá lo siguiente:  Habrá procesos ejecutables que se mantengan en disco.  Habrá importantes implicaciones para la planificación, tales como las siguientes:  El tiempo de alternancia entre procesos para traer y procesar un proceso del disco es considerablemente mayor que el tiempo para un proceso que ya está en la memoria principal.  Es más eficiente el intercambio de los procesos con un planificador de dos niveles. El esquema operativo de un planificador de dos niveles es el siguiente: 1. Se carga en la memoria principal cierto subconjunto de los procesos ejecutables. 2. El planificador se restringe a ellos durante cierto tiempo. 3. Periódicamente se llama a un planificador de nivel superior para efectuar las siguientes tareas: Eliminar de la memoria los procesos que hayan permanecido en ella el tiempo suficiente.
  • 23. P á g i n a 20 | 31 Cargar a memoria los procesos que hayan estado en disco demasiado tiempo. 4. El planificador de nivel inferior se restringe de nuevo a los procesos ejecutables que se encuentren en la memoria. 5. El planificador de nivel superior se encarga de desplazar los procesos de memoria a disco y viceversa. 3.6) Casos de estudio de Sistemas Operativos para el componente de procesos 3.6.1) UNIX Unix es uno de los sistemas operativos más ampliamente usados en computadoras que varían desde las personales hasta las macros. Existen versiones para máquinas uni-procesador hasta multiprocesadores. Debido a su historia, que evoluciona en los Laboratorios Bell de AT&T con un simulador de un viaje espacial en el sistema solar, pasando por su expansión en universidades y la creación de las versiones más importantes que son la de la Universidad de Berkeley y el Sistema V de la misma AT&T. Manejo de procesos en UNIX El manejo de procesos en UNIX es por prioridad y round robin. En algunas versiones se maneja también un ajuste dinámico de la prioridad de acuerdo al tiempo que los procesos han esperado y al tiempo que ya han usado el CPU. El sistema provee facilidades para crear 'pipes' entre procesos, contabilizar el uso de CPU por proceso y una pila común para todos los procesos cuando necesitan estarse ejecutando en modo privilegiado (cuando hicieron una llamada al sistema). UNIX permite que un proceso haga una copia de sí mismo por medio de la llamada 'fork', lo cual es muy útil cuando se realizan trabajos paralelos o concurrentes; también se proveen facilidades para el envío de mensajes entre procesos. Sun Microsystems, AT&T, IBM, Hewlett Packard y otros fabricantes de computadoras llegaron a un acuerdo para usar un paquete llamado ToolTalk para crear aplicaciones que usen un mismo método de intercambio de mensajes.
  • 24. P á g i n a 21 | 31 3.6.2) VMS El sistema operativo VMS (Virtual Memory System) es uno de los más robustos en el mercado, aunque es propietario de la compañia Digital Equipment Corporation. Actualmente con su versión OpenVMS 5.x existe para los procesadores de las máquinas VAX (CISC) y con el Alpha-chip (RISC). Ofrece un amplio conjunto de comandos a través de su intérprete Digital Command Language (DCL), utilidades de red (DECnet), formación de 'clusters' de computadoras para compartir recursos, correo electrónico y otras facilidades. Es un sistema operativo multiusuario/multitarea monolítico. Manejo de procesos en VMS Soporta muchos ambientes de usuario tales como: Tiempo crítico, desarrollo de programas interactivos, batch, ya sea de manera concurrente, independiente o combinado. El calendarizador VAX/VMS realiza calendarización de procesos normales y de tiempo real, basados en la prioridad de los procesos ejecutables en el Balance Set.Un proceso normal es referido a como un proceso de tiempo compartido o proceso background mientras que los procesos en tiempo real se refieren a los de tiempo crítico. En VMS los procesos se manejan por prioridades y de manera apropiativa. Los procesos se clasifican de la prioridad 1 a la 31, siendo las primeras quince prioridades para procesos normales y trabajos en lote, y de la 16 a la 31 para procesos privilegiados y del sistema. Las prioridades no permanecen fijas todo el tiempo, sino que se varían de acuerdo a algunos eventos del sistema. Las prioridades de los procesos normales pueden sufrir variaciones de hasta 6 puntos, por ejemplo, cuando un proceso está esperando un dispositivo y éste fue liberado. Un proceso no suelta la unidad central de procesamiento hasta que exista un proceso con mayor prioridad. El proceso residente de mayor prioridad a ser ejecutado siempre se selecciona para su ejecución. Los procesos en tiempo crítico son establecidos por el usuario y no pueden ser alterados por el sistema. La
  • 25. P á g i n a 22 | 31 prioridad de los procesos normales puede ser alterada por el sistema para optimizar overlap de computación y otras actividades I/O. Un aspecto importante del planificador de procesos en VMS es la existencia de proceso 'monitor' o 'supervisor', el cual se ejecuta periódicamente para actualizar algunas variables de desempeño y para re- calendarizar los procesos en ejecución. Existen versiones de VMS que corren en varios procesadores, y se ofrece librerías para crear programas con múltiples 'threads'. En específico se proveen las interfaces 'cma', 'pthread' y 'pthread-exception- returning'. Todas estas librerías se conocen como DECthreads e incluyen librerías tales como semáforos y colas atómicas para la comunicación y sincronización entre threads. El uso de threads sirve para enviar porciones de un programa a ejecutar en diferentes procesadores aprovechando así el multiproceso. 3.6.3) OS/2 El sistema operativo OS/2 ha tenido una historia turbulenta en el seno de Microsoft e IBM, creciendo en algún tiempo bajo equipos de trabajo de ambas compañias y prosiguiendo finalmente con la última. Los objetivos para este sistema operativo eran: compatibilidad para ejecutar los programas existentes para DOS en las computadoras 80x86, ofrecer la multitarea, la facilidad de memoria virtual y servicios de red de área local [Alcal92]. Manejo de procesos en OS/2 OS/2 utiliza un esquema de planificación apropiativa, es decir, los procesos pueden ser suspendidos para darle su turno de ejecución a otro diferente. Los procesos pueden estar dividos en 'threads' que cuentan con sus propios registros, pila y contador de programa y todos los 'threads' de un mismo proceso comparten la memoria. Esto facilita la comunicación entre ellos y la sincronización. También es posible que un proceso genere un proceso hijo, en tal caso el hijo hereda todos los atributos del padre como son los descriptores de archivos abiertos, los valores en memoria, etc; prácticamente igual que el sistema operativo UNIX.
  • 26. P á g i n a 23 | 31 Otra facilidad de OS/2 es la facilidad de crear 'conductos' lo cual también es una función heredada de UNIX. La calendarización de procesos o 'threads' se hace por prioridad y dándoles un intervalo de ejecución a cada proceso o 'thread'. Se manejan tres niveles de prioridades: procesos preferentes, procesos preferentes interactivos y procesos normales. OS/2 eleva a la categoría de preferentes a aquellos procesos que hacen mucha E/S. Otra facilidad notable de OS/2 es la carga dinámica de librerías, que consiste en la generación de aplicaciones cuyas librerías no forman parte del coacute;digo compilado, sino que son cargadas cuando el programa es ejecutado. Esto sirve bastante sobre todo cuando las librerías son de uso común. Como se ve, esta facilidad es parecida a las del sistema operativo UNIX SunOS. 3.6.4) Windows NT Windows NT es una familia de sistemas operativos producidos por Microsoft, de la cual la primera versión fue publicada en julio de 1993. Fue diseñado para tomar ventaja de todo el poder que ofrecen los procesadores más avanzados de Intel, así como algunos de los procesadores RISC. Windows NT es la respuesta de Microsoft a UNIX. NT ofrece los mismos servicios que UNIX, interopera con redes UNIX pero remplaza los comandos criacute;pticos de UNIX, su estructura de archivos ARCANE y la mezcla de GUIs con una simple y estandarizada interfaz para el usuario como lo es Windows. Además, NT tiene las características que originalmente iba a tener el OS/2: un avanzado sistema operativo de 32 bits y compatibilidad con Windows GUI, además de soportar las aplicaciones hechas en DOS, pero liberándose de las limitaciones de éste.
  • 27. P á g i n a 24 | 31 Manejo de procesos en Windows NT En la arquitectura de NT los procesos son segmentados en componentes más pequeños llamados 'threads'. WindowsNT soporta varias tareas al mismo tiempo. Existen dos tipos de multitarea, el apropiativo (preemptive) y el no apropiativo (no preemptive). Con la multitarea apropiativa la ejecución de un 'thread' puede ser suspendida después de un tiempo determinado (time slice) por el sistema operativo para permitir que otro thread sea ejecutado. Mientras que con la multitarea no apropiativa, es el thread el que determina cuándo le regresará el control al sistema operativo para permitir que otro thread sea ejecutado. NT, así como OS/2 y UNIX usan preemptive multitasking para soportar la ejecución "simultánea" de varios procesos.
  • 28. P á g i n a 25 | 31 IV) Conclusión Luego de haber investigado y analizado se puede ver que se han desarrollado varios tipos de sistemas operativos con diferentes interfaces y categorías. Pero hemos podido observar que todos los sistemas operativos han sufrido cambios por parte de los programadores, y siguen evolucionando. El diálogo entre el usuario y la máquina suele realizarse a través de una interfaz de línea de comandos o de una interfaz gráfica de usuario (GUI, siglas en inglés). Las interfaces de línea de comandos exigen que se introduzcan instrucciones breves mediante un teclado. Las GUI emplean ventanas para organizar archivos y aplicaciones con iconos y menús que presentan listas de instrucciones. El usuario manipula directamente estos objetos visuales en el monitor señalándolos, seleccionándolos y arrastrándolos o moviéndolos con un Mouse. El uso de las GUI es más sencillo que el de las interfaces de línea de comandos. Sin embargo, la introducción de instrucciones con una GUI es más lenta, por lo que las GUI suelen tener la opción de emplear un sistema equivalente al de línea de instrucciones como alternativa rápida para los usuarios más expertos. Los sistemas operativos empleados normalmente son UNIX, Macintosh OS, MS-DOS, OS/2, Windows 95 y Windows NT. El UNIX y sus clones permiten múltiples tareas y múltiples usuarios. Otros SO multiusuario y multitarea son OS/2, desarrollado inicialmente por Microsoft e IBM, Windows NT y Win95 desarrollados por Microsoft. El SO multitarea de Apple se denomina Macintosh OS. El MS-DOS es un SO popular entre los usuarios de PCs pero solo permite un usuario y una tarea.
  • 29. P á g i n a 26 | 31 Ya conocimos que es un proceso, ya sabemos quién controla los procesos de nuestro computador pero también podemos decir que:  El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación.  Los procesos son creados y destruidos por el sistema operativo, así como también este se debe hacer cargo de la comunicación entre procesos.  Si existe un esquema con diferentes niveles de prioridad de procesos es conveniente mantener varias colas de procesos listos, una para cada nivel de prioridad, lo que ayuda a determinar cuál es el proceso que más conviene ejecutar a continuación.  La sincronización explícita entre procesos es un caso particular del estado "bloqueado". En este caso, el suceso que permite desbloquear un proceso no es una operación de entrada/salida, sino una señal generada a propósito por el programador desde otro proceso  El sistema operativo es el responsable de determinar las pautas de intercalado y asignación de recursos a cada proceso.
  • 30. P á g i n a 27 | 31 V) Bibliografía Libro: Sistemas operativos: aspectos internos y principios de diseño Autor: Stallings, William (2005). Edición: (5ª edición). Editor: Pearson Prentice Hall. Fecha: Año 2005. Libro: Sistemas operativos modernos Autor: Tanenbaum, Andrew S. Edición: (3ª edición). Editor: Pearson Prentice Hall. Fecha: Año 2009. Libro: Fundamentos de sistemas operativos Autores: Silberschatz, Abraham; Galvin, Peter Baer; Gagne. Edición: (7ª edición). Editor: McGraw-Hill. Fecha: Año 2006.
  • 31. P á g i n a 28 | 31 Enlaces extras: Casos de estudio de sistemas operativos: http://sis-operativo.tripod.com/index.html Condición de competencia: https://sites.google.com/site/osupaep2010/administracion-de-procesos/problemas-de- concurrencia/condiciones-de-carrera-o-competencia Exclusión Mutua: https://html.rincondelvago.com/sistemas-operativos_12.html Implementación de procesos: https://edwardlozadaso.wordpress.com/implementacion-de-procesos/ Planificación de dos niveles: https://prezi.com/st79wrwyjpgy/planificacion-de-dos-niveles/ Planificación de procesos: https://www.monografias.com/trabajos14/administ-procesos/administ-procesos.shtml Procesos y programas: http://lsub.org/plan9introes/ch2.pdf