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. Cada proceso tiene su contador de programa, registros y variables, aislados de otros procesos, incluso siendo el mismo programa en ejecución 2 veces. Cuando este último caso sucede, el sistema operativo usa la misma región de memoria de código, debido a que dicho código no cambiará, a menos que se ejecute una versión distinta del programa.
Buscar este blog
viernes, 20 de enero de 2017
Bloque de control de los procesos
El bloque de control del proceso (BCP) o en inglés PCB (Process Control Block) es un registro especial donde el sistema operativo agrupa toda la información que necesita conocer respecto a un proceso particular. Cada vez que se crea un proceso el sistema operativo crea el BCP correspondiente para que sirva como descripción en tiempo de ejecución durante toda la vida del proceso.
Identificador del proceso (Process Identificator -PID-, de sus siglas en inglés).
Estado del proceso. Por ej.: listo, en espera, bloqueado.
Contador de programa: dirección de la próxima instrucción a ejecutar.
Valores de registro de CPU. Se utilizan también en el cambio de contexto.
Espacio de direcciones de memoria.
Prioridad en caso de utilizarse dicho algoritmo para planificación de CPU.
Lista de recursos asignados (incluyendo descriptores de archivos y sockets abiertos).
Estadísticas del proceso.
Datos del propietario (owner).
Permisos asignados.
Sígnales pendientes de ser servidos. (Almacenados en un mapa de bits).
Operaciones sobre los procesos
Entre las operaciones sobre procesos que con mayor frecuencia ofrecen los sistemas operativos se encuentran la creación, terminación o destrucción, suspensión y reanudación de procesos. Actualmente, en la mayoría de los S.O., los procesos pueden ejecutarse de forma concurrente, pudiéndose crear y eliminar de forma dinámica, por lo que es necesario que estos sistemas brinden un mecanismo para la creación y terminación de procesos.
Planificación de los procesos
La planificación, bajo el enfoque estratégico, es concebida como un proceso mediante la cual los decisores en una organización, analizan y procesan información de su entorno interno y externo, evaluando las diferentes situaciones vinculadas a la ejecutoria organizacional para prever y decidir sobre la direccionalidad futura.
Comunicación y sincronización de los procesos
Los procesos que ejecutan de forma concurrente en un sistema
se pueden clasificar como procesos independientes o cooperantes. Un proceso
independiente es aquel que ejecuta sin requerir la ayuda o cooperación de otros
procesos. Un claro ejemplo de procesos independientes son los diferentes
intérpretes de mandatos que se ejecutan de forma simultánea en un sistema. Los
procesos son cooperantes cuando están diseñados para trabajar conjuntamente en
alguna actividad, para lo que deben ser capaces de comunicarse e interactuar
entre ellos. Y se pueden sincronizar de la siguiente forma:
1· Manejo de la
exclusión mutua.
2· Caracterización y administración de la Sección crítica de un proceso.
3· Definiciones
de Dijkstra.
4· Condiciones
de Carrera.
5· Herramientas
de sincronización de procesos en sistemas centralizados: semáforos y monitores.
6· Definición,
ejemplos y aplicaciones.
7· Herramientas
de sincronización avanzadas: pasaje de mensajes.
8· Operaciones
send y receive, sincrónicas y asincrónicas.
Que son los procesos concurrentes
Como los procesos en un sistema concurrente pueden interactuar entre ellos mismos mientras se están ejecutando, el número de posibles rutas de ejecución en el sistema puede ser extremadamente grande, y el resultado final puede ser indeterminado. El concurrente uso de recursos compartidos puede ser una fuente de indeterminación dirigida a asuntos como Bloqueo mutuo, y starvation.
Definición y tipos de interruciones
Una interrupción es una suspensión temporal de la ejecución de un proceso, para pasar a ejecutar una subrutina de servicio de interrupción, la cual, por lo general, no forma parte del programa, sino que pertenece al sistema operativo o al BIOS. Una vez finalizada dicha subrutina, se reanuda la ejecución del programa.
3-Interrupciones software o excepciones: A menudo se tiende a confundir las interrupciones software y las trampas, ya que su naturaleza es bastante similar. Sin embargo las excepciones se producen al realizar una operación no permitida por lo que de algún modo podemos decir que no es controlada directamente por el programador sino que, por un fallo al programar, se producen. No obstante las trampas sí que son provocadas por el programador. Para provocar una trampa existen distintas instrucciones en el código máquina que permiten al programador producir una interrupción al ejecutar dicha instrucción. Suelen tener nemotécnicos tales como INT. Suelen ser de vital importancia ya que a partir de las trampas se pueden pedir al SO que realice determinadas funciones, para ello, en DOS se realiza la instrucción INT 0x21 y en Unix se utiliza INT 0x80
Tipos de interrupciones:
1- Interrupciones hardware: Estas son asíncronas a la ejecución
del procesador, es decir, se pueden producir en cualquier momento independientemente
de lo que esté haciendo la CPU en ese momento. Las causas que lo producen son
externas al procesador y a menudo suelen estar ligadas con distintos
dispositivos de E/S.
2- Traps : Son aquellas que se producen de forma síncrona a la
ejecución del procesador y por tanto podrían predecirse si se analiza con
detenimiento la traza del programa que en ese momento estaba siendo ejecutado
en la CPU. Normalmente las causas de estas interrupciones suelen ser
realizaciones de operaciones no permitidas tales como la división por 0, el
desbordamiento, el acceso a una posición de memoria no permitida, etc.
3-Interrupciones software o excepciones: A menudo se tiende a confundir las interrupciones software y las trampas, ya que su naturaleza es bastante similar. Sin embargo las excepciones se producen al realizar una operación no permitida por lo que de algún modo podemos decir que no es controlada directamente por el programador sino que, por un fallo al programar, se producen. No obstante las trampas sí que son provocadas por el programador. Para provocar una trampa existen distintas instrucciones en el código máquina que permiten al programador producir una interrupción al ejecutar dicha instrucción. Suelen tener nemotécnicos tales como INT. Suelen ser de vital importancia ya que a partir de las trampas se pueden pedir al SO que realice determinadas funciones, para ello, en DOS se realiza la instrucción INT 0x21 y en Unix se utiliza INT 0x80
Suscribirse a:
Entradas (Atom)







