Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo se programan los procesos de Windows

Cómo se programan los procesos de Windows

Categoría: Computadora/Red>> Sistema operativo/Falla del sistema

Descripción del problema:

¿Podría informarme sobre la programación de procesos de Windows? ¿Cuáles son las formas? ?

Gracias

Análisis:

Programación avanzada: también llamada programación de trabajos. Su función principal es seleccionar varios trabajos de un lote de trabajos de entrada de acuerdo con un determinado algoritmo, asignar los recursos necesarios, como memoria, periféricos, etc., y establecer los procesos de trabajo del usuario correspondientes y los procesos del sistema para atenderlos (como la entrada). y procesos de salida), y finalmente transfieren sus programas y datos a la memoria, esperan a que el programador de procesos los programe y realizan el trabajo de posprocesamiento una vez completado el trabajo.

Programación de bajo nivel: también llamada programación de procesos. Su función principal es asignar la CPU a un proceso en la cola de listos según un determinado algoritmo. El programa que realiza funciones de programación de bajo nivel se denomina programador de procesos e implementa el cambio de CPU entre procesos. La frecuencia de ejecución de la programación de procesos es muy alta y, a menudo, se ejecuta una vez cada decenas de milisegundos en un sistema de tiempo compartido. La programación de procesos es el tipo de programación más básico en el sistema operativo. La programación de procesos es necesaria en los tipos generales de sistemas operativos y la calidad de su estrategia afecta directamente el rendimiento de todo el sistema.

Programación intermedia: también conocida como programación de intercambio. Para evitar que la cantidad de procesos almacenados en la memoria al mismo tiempo sea demasiado grande, a veces es necesario mover ciertos procesos de la memoria a la memoria externa para reducir la cantidad de programas múltiples. Para ello, se realiza una programación intermedia. está establecido. Especialmente en sistemas que utilizan tecnología de almacenamiento virtual o sistemas de tiempo compartido, a menudo se agrega programación intermedia. Por lo tanto, la función de la programación intermedia es intercambiar algunos procesos temporalmente inoperables de la memoria a la memoria externa para esperar cuando el uso de la memoria sea escaso. Cuando en el futuro haya suficiente espacio libre en la memoria, el proceso apropiado se reemplazará en la memoria y esperará la programación del proceso. El objetivo principal de introducir la programación intermedia es mejorar la utilización de la memoria y el rendimiento del sistema.

En realidad, es la función de intercambio en la gestión de memoria.

Hablemos de la estrategia de programación de procesos (citando materiales de referencia):

En primer lugar, cómo garantizar el núcleo del sistema operativo. en términos de mecanismo de hardware, el proceso de programación puede obtener la CPU en una determinada oportunidad para la programación del proceso.

Generalmente encontraremos la respuesta a nivel de software. De hecho, se implementa a través del mecanismo de procesamiento de hardware. de la CPU se está ejecutando Después de completar el ciclo de cada instrucción, escanee un registro de interrupción dentro de la CPU para verificar si hay una interrupción. Si no, continúe ejecutando la instrucción, si es así, guarde el entorno de trabajo actual de la CPU. saltar a la rutina del servicio de interrupción La CPU ejecuta el programa de servicio de interrupción y, después de iniciar la interrupción, salta al programador del núcleo (este es un programa del núcleo, pero es compartido por todos los procesos, incluidos los procesos del usuario en este momento); el programador del kernel ocupa la CPU y realiza la programación de procesos para determinar el siguiente proceso que ocupará la CPU

A continuación, hablemos de cuándo se necesita la programación de procesos

¿Cuántos procesos? ¿Se mencionan tres situaciones en los libros de texto: 1. Cuando llega el intervalo de tiempo, es decir, después de que se agota el intervalo de tiempo asignado a cada proceso, es necesario saltar al programador 2. Cuando el proceso actualmente en ejecución que ocupa la CPU lo propone; una operación de E/S e inicia una llamada del sistema al kernel. Una vez finalizada la llamada del sistema, salta al programador 3 Mis propios pensamientos: el proceso en ejecución actual debe saltar al programador al final de todas las llamadas al sistema del kernel; El siguiente proceso que puede ocupar la CPU se determina en función de la información de programación actual. Las llamadas al sistema a las que me refiero también incluyen rutinas de interrupción, pero el tiempo de programación específico no está escrito claramente en muchos libros. No lo entiendo, o no se molestan en escribirlo y decírnoslo. De hecho, excepto en La mayoría de las interrupciones de hardware saltan al programador después de activarse. Cuando ocurre cada interrupción del reloj, creo que es necesario saltar al. planificador (al ingresar a la cola de interrupción del reloj, es necesario verificar el estado de todos los procesos en la tabla de procesos. La información de programación se actualiza y se procesa cada cola de procesos), y la información del proceso actualizada se procesa para determinar qué proceso programar. Por lo general, los libros de texto separan el mecanismo de procesamiento físico del hardware y el mecanismo de procesamiento de programación del software. Hablar de los dos niveles por separado no es propicio para nuestra comprensión. Es mejor combinar estos dos para comprender el mecanismo de trabajo de la programación de procesos. Actualmente es: ¿cuándo necesita el programador del kernel ocupar la CPU para la programación? En cuanto al algoritmo de programación, eso es lo que debe considerarse en el nivel lógico.

De hecho, después de leer tanto, también lo tengo. Algunas ideas para un artículo pequeño, porque la dirección de mi trabajo es el control de sistemas integrados aplicados a circuitos de potencia electrónicos. Esta aplicación es muy importante para El rendimiento de los sistemas operativos integrados tiene algunos requisitos especiales: primero, debe ser pequeño y rápido; El núcleo debe ser pequeño, la programación de procesos debe implementar una programación preventiva de tareas y el cambio de programación debe ser rápido. Su programación de procesos es similar a la de un sistema operativo general. Esto se debe a que sus requisitos son diferentes. Y estrictamente hablando, el sistema de control en el circuito debe ser en tiempo real estricto, a diferencia de los sistemas de propósito general, que son en tiempo no real o en tiempo real suave. Esto es diferente de ellos. Los requisitos para el rendimiento en tiempo real son. diferente, inicialmente establecí un tema de "Comparación y análisis de la programación de procesos entre sistemas integrados y sistemas de propósito general, y propongo una estrategia de programación para sistemas integrados de control de circuitos específicos en tiempo real". para preparar información en esta área, analizarla, compararla y escribir un artículo breve, de lo contrario casi me moriré

Sistema operativo ----- Programación de procesos

. [/color][color=Gray][/color][color=Blue][/color][color=Lime] Requisito: implementar un algoritmo de programación de procesos que combine prioridad y intervalos de tiempo

Contenido:

1: Diseñe rápidamente el control de procesos, la estructura de la cola de procesos (incluidas: cola lista, cola de espera, cola de ejecución) y otras estructuras de datos necesarias.

2: Simule la función de programación de procesos del sistema operativo, escriba un programador de procesos, un despachador de procesador simulado, una función de espera de procesos y una función de activación de procesos.

3: Escribe un programa de usuario y crea 6 procesos de usuario.

Método de diseño de programación de procesos

1.

Estructura de datos

(1) Diseño de prioridad y intervalo de tiempo

◆Cuando un proceso abandona la CPU debido a la espera, la prioridad se establece en 1 (prioridad alta)

◆Cuando el proceso abandona la CPU debido al intervalo de tiempo, la prioridad se establece en 0 (prioridad baja)

◆La prioridad 1 corresponde al intervalo de tiempo 4; la prioridad 0 corresponde al intervalo de tiempo; 10.

(2) Contenido del bloque de control de proceso (PCB)

Identificación del proceso 3---9

Prioridad del proceso 0, 1

Prioridad del proceso 0, 1

Tiempo de espera del proceso 20

Puntero de enlace

2: Algoritmo del programa

(1) Estructura de PCB, variables y programa principal

struct PCB

{

int pname

int pri

int runtime;

int esperando;

estructura PCB*siguiente

}

pcb[7]; struct PCB*en ejecución, listo, espere

int sin=0

main()

{ Crear PCB[3]--PCB[ 9] e insertar en la cola lista; /*pname son 3--9,

pri=0, runtime=10, waittime=0 */

for(;;)/ * Programa del sistema, completa las funciones de inicialización y asignación del procesador*/

{cast{sig=0:swtch

sig=1:waiter

sig =3; :proc3;

sig=4:proc4;

sig=5:proc5;

sig=6:proc6; =7:proc7;

sig=8:proc8;

sig=9:proc9;}

}

}

(2) Programador de procesos

swtch()

{

while(ready==NULL)wakeup();

Elimina el primer PCB de la cola lista;

Envía el puntero en ejecución

Si pri=1, entonces runntime=4, de lo contrario runtime=10;

Enviar running→pname a sig

}

(3) Enviar el proceso a la función de espera

wait()

{ Inserte el proceso en ejecución en la cola de espera y establezca el número de prioridad en 1

sig=0

}

(4) Activación del proceso; function

wakeup()

{

Disminuir el tiempo de espera de todos los PCB en la cola de espera en 1

Disminuir todos los PCB con; waittime=0 en la cola de espera Eliminar

Insertar delante del primer PCB con prioridad 0 en la cola listo