Entradas

2.5 Niveles, objetivos y criterios de planificación

Imagen
Niveles de Planificación 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. La planificación de la CPU, en el sentido de conmutarla entre los distintos procesos, es una de las funciones del sistema operativo. Este despacho es llevado a cabo por un pequeño programa llamado planificador a corto plazo o dispatcher (despachador). La misión del dispatcher consiste en asignar la CPU a uno de los procesos ejecutables del sistema, para ello sigue un determinado algoritmo. Planificación a largo plazo Este planificador está presente en algunos sistemas que admiten además de procesos interactivos trabajos por lotes. Usualmente, se les asigna una prioridad baja a los trabajos por lotes, utilizándose estos para mantener ocupados a los recursos del sistema durante períodos de baja actividad de los procesos interactivos. Normalmente, los trabajos por lotes r...

2.4 Concurrencia y secuenciabilidad

Imagen
Concurrencia:  Es la existencia de varias actividades ejecutándose simultáneamente, y necesitan sincronizarse para actuar conjuntamente. Se trata , en este caso, de un concepto lógico, ya que sólo hace referencia a las actividades, sin importar el número de procesadores presentes. Para que dos actividades, sean concurrentes, es necesario que tengan relación entre sí, como puede ser la cooperación en un trab ajo determinado o el uso de información compartida.   Los procesos son concurrentes si existen simultáneamente. Los procesos concurrentes pueden funcionar en forma totalmente independiente unos de otros, o pueden ser asíncronos, lo cual significa que en ocasiones requiere cierta sincronización y cooperación. En un sistema monoprocesador, la existencia de multiprogramación es condición necesaria, pero no suficiente para que exista concurrencia, ya que los procesos pueden ejecutarse independientemente. Por ejemplo, un editor y un compilad...

2.3 Procesos ligeros: hilos y hebras

Imagen
  El concepto de proceso engloba dos conceptos separados y potencialmente independientes: uno relativo a la propiedad de recursos y otro que hace referencia a la ejecución. Unidad que posee recursos: A un proceso se le asigna un espacio de memoria y, de tanto en tanto, se le puede asignar otros recursos como dispositivos de E/S o ficheros. Unidad a la que se le asigna el procesador: Un proceso es un flujo de ejecución (una traza) a través de uno o más programas. Esta ejecución se entremezcla con la de otros procesos. De tal forma, que un proceso tiene un estado (en ejecución, listo, etc) y una prioridad de expedición u origen. La unidad planificada y expedida por el sistema operativo es el proceso. En la mayoría de los sistemas operativos, estas dos características son, de hecho, la esencia de un proceso. Sin embargo, son independientes, y pueden ser tratadas como tales por el sistema operativo. Esta distinción ha conducido en los sistemas operativos actual...

2.2 Estados de trancisión de los procesos

Imagen
Todo proceso en un sistema operativo presenta un estado que indica la situación de la ejecución en que se encuentra. El número de posibles estados varía de un sistema operativo a otro. Diagrama de estados simplificado: Consideramos que todo proceso puede estar, como mínimo, en uno de los siguientes tres estados: Activo : el proceso está empleando la CPU, por tanto, está ejecutándose. Pueden haber tantos procesos activos como procesadores haya disponibles. Por tanto, si el sistema dispone de un único procesador, únicamente puede haber un proceso activo a la vez. Preparado : el proceso no está ejecutándose pero es candidato a pasar a estado activo. Es el planificador el que, en base a un criterio de planificación, decide qué proceso selecciona de la lista de procesos preparados para pasar a estado activo. Bloqueado : el proceso está pendiente de un evento externo que le ha hecho bloquear, tales como una operación de lectura/escritura, la espera de finalización de un ...

2.1 Concepto de proceso

Imagen
Administración de procesos y del procesador Concepto de 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". Los procesos son gestionados por el sistema operativo y están formados por: Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador . Su estado de ejecución en un momento dado, esto es, los valores de los registros de la unidad central de procesamiento para dicho programa. Su memoria de trabajo (memoria crítica), es decir, la memoria que ha reservado y sus contenidos. Otra información que permite al sistema operativo su planificación . Un proceso se rige en pequeñas porciones, conocidas como páginas , y cada proceso tiene su propia tabla de paginación , fungiendo como una optimización del sist...

1.6 Núcleo

Imagen
El Núcleo (o kernel) es una colección de módulos de software que se ejecutan en forma privilegiada –lo que significa que tienen acceso pleno a los recursos del sistema. El núcleo normalmente representa sólo una pequeña parte de lo que por lo general se piensa que es todo el sistema operativo, pero es tal vez el código que más se utiliza. Por esta razón, el núcleo reside por lo regular en la memoria principal, mientras que otras partes del sistema operativo son cargadas en la memoria principal sólo cuando se necesitan. El núcleo de un sistema operativo normalmente el código necesario para realizar las siguientes funciones: • Manejo de interrupciones. • Creación y destrucción de procesos. • Cambio de estado de los procesos. • Despacho. • Suspensión y reanudación de procesos. • Sincronización de procesos. • Comunicación entre procesos. • Manipulación de los bloques de control de procesos. • Apoyo para las actividades de entrada/salida. • Apoyo pa...

1.5 Estructura: niveles o estratos de diseño

Imagen
Sistemas monolíticos: En estos sistemas operativos se escriben como un conjunto de procedimientos, cada uno de los cuales puede llamar a cualquiera de los otros siempre que lo necesite. Cuando se emplea esta técnica, cada procedimiento del sistema tiene una interfaz bien definida en términos de parámetros y resultados, y cada una tiene la libertad de llamar a cualquiera otra, si la última ofrece algún cálculo útil que la primera necesite. Características: Construcción de programa final a base de módulos compilados separadamente que se une a través del editor de enlaces. Buena definición de parámetros de enlace entre las rutinas existentes. Carecen de protección y privilegios al entrar y manejan diferentes aspectos de la computadora. Generalmente están hechos a la medida. Por ejemplo, los cajeros automáticos donde sólo tienen que cumplir una determinada función siguiendo una serie de procesos ya determinados. Para construir el programa o...