C/Visual C - programa monocola

 
Vista:

programa monocola

Publicado por tirso (5 intervenciones) el 21/09/2001 08:36:13
hola amigos programadores

quisiera saber si me pueden ayudar a crear un programa que simule la funcion de un sistema operativo, creando un archivoparecido aeste pero en turbo c

http://odra.dcs.fi.uva.es/area1/so/planificadores/mono.html

por su atencion gracias

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Simulación de un sistema operativo en Turbo C

Publicado por Alejandro (913 intervenciones) el 15/10/2024 23:03:50
Hola, Tirso.

A continuación, te presento una guía básica para implementar un simulador de planificación de procesos.

1. Definición de estructuras: Primero, define una estructura para representar un proceso.

1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
#include <conio.h>
 
#define MAX_PROCESOS 10
 
typedef struct {
    int id;
    int tiempoLlegada;
    int tiempoEjecucion;
    int tiempoRestante;
} Proceso;

2. Función para simular la planificación: Implementa una función que simule la planificación de procesos. Aquí puedes usar el algoritmo de planificación que prefieras (por ejemplo, FIFO, SJF, etc.).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
void planificar(Proceso procesos[], int n) {
    int tiempoActual = 0;
    int i;
 
    while (1) {
        int todosTerminaron = 1;
 
        for (i = 0; i < n; i++) {
            if (procesos[i].tiempoRestante > 0) {
                todosTerminaron = 0;
 
                if (procesos[i].tiempoLlegada <= tiempoActual) {
                    printf("Ejecutando proceso %d en tiempo %d\n", procesos[i].id, tiempoActual);
                    procesos[i].tiempoRestante--;
 
                    if (procesos[i].tiempoRestante == 0) {
                        printf("Proceso %d terminado en tiempo %d\n", procesos[i].id, tiempoActual + 1);
                    }
                }
            }
        }
 
        if (todosTerminaron) break;
        tiempoActual++;
    }
}

3. Función principal: En la función `main`, inicializa los procesos y llama a la función de planificación.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int main() {
    Proceso procesos[MAX_PROCESOS];
    int n, i;
 
    printf("Ingrese el número de procesos: ");
    scanf("%d", &n);
 
    for (i = 0; i < n; i++) {
        printf("Ingrese ID, Tiempo de llegada y tiempo de ejecución para el proceso %d: ", i + 1);
        scanf("%d %d %d", &procesos[i].id, &procesos[i].tiempoLlegada, &procesos[i].tiempoEjecucion);
        procesos[i].tiempoRestante = procesos[i].tiempoEjecucion;
    }
 
    planificar(procesos, n);
 
    getch();
    return 0;
}

Consideraciones:


- Este es un ejemplo básico que utiliza un algoritmo de planificación simple. Puedes expandirlo para incluir diferentes algoritmos de planificación, manejo de prioridades, etc.
- Asegúrate de compilar el código en Turbo C y ajusta cualquier detalle según sea necesario.

Espero que esta guía te sea útil.

¡Buena suerte con tu proyecto!

Saludos cordiales,
Ale.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar