Diseño del curso de sistema operativo
Tema de diseño
1 Tema de diseño: Programación de CPU (implementación de simulación del algoritmo de programación de CPU)
Contenido específico: Escritura de algoritmo para implementar el algoritmo de programación de CPU FCFS, no - SJF preventivo, programación de prioridad preferente, RR
Para el proceso de simulación, utilice el algoritmo de programación de CPU para la programación
Evalúe el algoritmo y calcule el tiempo de respuesta promedio y el tiempo de espera promedio
p>Requisito: los parámetros del proceso necesarios para la programación se generan a partir de la entrada
Entrada manual
Generación de números aleatorios
Resultados de la programación de salida
Generación del índice de evaluación del algoritmo
2 tema de diseño: memoria virtual (implementación de simulación del algoritmo de reemplazo de página)
Contenido específico: escribir algoritmo e implementar algoritmo de reemplazo de página FIFO, LRU
Apuntando a la cadena de referencia de la dirección de memoria, ejecute el algoritmo de reemplazo de página para realizar el reemplazo de página
Requisitos: los parámetros de la cadena de referencia requeridos por el algoritmo se generan mediante entrada: se pueden ingresar manualmente o Basado en la generación de números aleatorios
Generar el conjunto de páginas residentes en memoria
1. Módulo de algoritmo de programación de procesos
[Descripción del problema]
1. Algoritmo de programación de procesos: adopte un algoritmo de programación dinámico de máxima prioridad (es decir, asigne el procesador al proceso con mayor prioridad). ).
2. Cada proceso está representado por un bloque de control de procesos (PCB). El bloque de control de proceso puede contener la siguiente información:
Nombre del proceso---número de identificación del proceso ID
Número de prioridad Cuanto mayor sea el número de prioridad, mayor será la prioridad
Hora de llegada---La hora de llegada del proceso es la hora ingresada por el proceso. ,
El proceso aún necesita tiempo de ejecución ALLTIME y el proceso finaliza ejecutando ALLTIME=0,
Tiempo de CPU usado----CPUTIME,
El tiempo de bloqueo del proceso STARTBLOCK: indica que cuando el proceso se ejecuta durante intervalos de tiempo STARTBLOCK, el proceso entrará en el estado de bloqueo
El tiempo de bloqueo del proceso BLOCKTIME: indica que cuando el proceso se bloquea durante BLOCKTIME intervalos de tiempo, el proceso entrará en el estado listo
Estado del proceso: ESTADO
El puntero de cola SIGUIENTE se utiliza para poner en cola los PCB.
3. Principio de programación:
El número de prioridad del proceso y el tiempo de ejecución requerido se pueden especificar manualmente con anticipación (también se pueden generar mediante números aleatorios). La hora de llegada de un proceso es la hora ingresada por el proceso.
El tiempo de ejecución de un proceso se calcula en unidades de intervalos de tiempo.
El proceso espera en la cola listo durante un intervalo de tiempo y el número de prioridad aumenta en 1
El estado de cada proceso puede ser listo R (LISTO), ejecutando R ( Ejecutar) bloqueando B (BLOQUEAR), o completar uno de los cuatro estados F (Finalizar).
Una vez que el proceso listo obtiene la CPU, solo puede ejecutarse durante un intervalo de tiempo. Se expresa sumando 1 al tiempo de CPU ocupado.
Si después de ejecutar un intervalo de tiempo, el tiempo de CPU ocupado del proceso ha alcanzado el tiempo de ejecución requerido, el proceso se cancelará. Si después de ejecutar un intervalo de tiempo, el tiempo de CPU ocupado del proceso no ha alcanzado. alcanzó el tiempo de ejecución requerido, es decir, el proceso aún necesita continuar ejecutándose. En este momento, el número de prioridad del proceso debe reducirse en 3 y luego insertarse en la cola lista para esperar la CPU.
Cada vez que se ejecuta el programador, el proceso en ejecución, la cola lista y la PCB de cada proceso se imprimen para su inspección.
Repita el proceso anterior hasta completar todos los procesos requeridos.
Solicitando informe de diseño del curso y código fuente escrito en lenguaje C