PowerPoint Presentation Clase modelo - PowerPoint PPT Presentation

1 / 107
About This Presentation
Title:

PowerPoint Presentation Clase modelo

Description:

Todos los procesos tienen asociados un espacio de direcciones en memoria, ... Memory Partitions. Synchronization Problem. POSIX System Call. Layer Architecture ... – PowerPoint PPT presentation

Number of Views:152
Avg rating:3.0/5.0
Slides: 108
Provided by: juancarlos5
Category:

less

Transcript and Presenter's Notes

Title: PowerPoint Presentation Clase modelo


1
M.C. Juan Carlos Olivares Rojas
Operating Systems jolivares_at_uvaq.edu.mx February,
2009
2
Outline
  • Modelo e Implantación de Procesos
  • Comunicación entre Procesos
  • Ejemplos de Comunicación entre Procesos
  • Planificación de un Proceso

3
Outline
  • Procesos Cooperativos
  • Implementación de Procesos
  • Threads

4
Objective
  • The student will know and apply the basis of
    process, InterProcess Communication and
    Sinchronization Mechanism.

5
Modelo e Implantación de Procesos
  • Un proceso es un programa en ejecución.
  • Todos los procesos tienen asociados un espacio de
    direcciones en memoria, registros y el contador
    de programas.
  • De acuerdo a la arquitectura de Von Neuman un
    programa para poderse ejecutar necesita estar en
    memoria.

6
Modelo e Implantación de Procesos
  • El espacio de direcciones se compone además de
    direcciones para almacenar datos, código, la pila
    y el heap (montículo).
  • Toda la información de los procesos en los SOs se
    guardan el PCB (Process Control Block) que es un
    arreglo o lista ligada que indica la descripción
    de cada uno de los procesos.

7
Modelo e Implantación de Procesos
  • Los procesos tienen asignados un identificador de
    procesos (PID), el cual es la forma en que el SO
    trabaja con los procesos.
  • Los procesos se ejecutan de manera secuencial
    pero pueden realizar bifurcaciones, motivo por el
    cual se necesita el contador de programa.
  • Los programas pueden tener asignado distintas
    prioridades para darle más jerarquías.

8
Modelo e Implantación de Procesos
  • La finalidad del administrador de procesos es
    realizar una buena administración (planificación)
    del tiempo de CPU de la computadora a fin de
    ejecutar más programas de manera más eficiente.
  • Otra de las características básicas que presenta
    un proceso es el estado en el cual se encuentra.
    Existen tres estados básicos en proceso
    Ejecución, Listo y Bloqueado.

9
Modelo e Implantación de Procesos
  • Un proceso está en ejecución cuando tiene acceso
    real al tiempo de CPU.
  • Un proceso está listo cuando se puede ejecutar,
    es decir, por algún motivo se suspendió para
    dejar ejecutar otro proceso
  • Un proceso está bloqueado cuando está en espera
    de algún recurso (E/S) o de que ocurra un evento.

10
Modelo e Implantación de Procesos
  • Otros modelos de estados de procesos incluyen
    otros estados como el de nacimiento, inactivo y
    diferencia entre bloqueado y en espera.
  • Dentro de un CPU un y sólo un proceso puede estar
    ejecutándose al mismo tiempo.
  • Los procesos se pueden dormir, despertar y ser
    asesinados antes de tiempo.

11
Comunicación entre Procesos
  • Los procesos en algunos SOs pueden crear otros
    procesos llamados subprocesos, teniendo una
    jerarquía de procesos padre e hijos.
  • Estos procesos pueden trabajar de manera
    cooperativa para la resolución de un problema muy
    particular. Para ello necesitan comunicarse entre
    sí y a lo que a nivel de SO se llama IPC (Inter
    Process Communication).

12
IPC
  • La parte más importante de la comunicación entre
    procesos es sin duda la transferencia de mensajes
    entre los diversos procesos.
  • La transferencia de mensajes puede llevarse acabo
    en base a dos primitivas, enviar y recibir, que
    se pueden aplicar a casi cualquier recurso como a
    los archivos (leer y escribir).

13
IPC
  • La comunicación entre procesos IPC se debe dar a
    través del kernel del Sistema Operativo.
  • Tanto Windows como Linux y otros Sistemas
    Operativos implementan IPC pero lo hacen de
    manera particular.
  • Los IPC de sistemas X son los más comunes y
    estandarizados. A continuación se describirá algo
    de IPC en Linux.

14
IPC X
  • include ltsys/types.hgt
  • pid_t pid
  • hijo getpid()
  • Padre getppid()
  • Grupo getpgrp()
  • Un subprocesos se crea con la instrucción fork()

15
IPC X
  • Existen otros tipos de usuarios y grupos los
    cuales son extendidos, es decir, no actúan como
    los usuarios reales.
  • uid_t getuid() /usuario real/
  • uid_t geteuid() /usuario extendido/
  • gid_t getgid()
  • gid_t getegid()
  • Los subprocesos tienen una jerarquía muy marcada.

16
IPC X
//Validación de subprocesos if (pid -1)
perror(Error al crear proceso) else if
(pid 0) /Proceso hijo/ else
/Proceso padre/
17
Ejemplos de Comunicación entre Procesos
  • La principal problemática que se presenta
    consiste en las condiciones de competencia de los
    procesos. Por ejemplo, compartir una impresora.
    Si varios procesos pudieran acceder a la
    impresora se tendrían problemas de
    inconsistencias al momento de imprimir.
  • A continuación se describirán algunos problemas
    de IPC para dar solución en la próxima unidad.

18
Ejemplos de IPC
  • El problema del productor-consumidor dos
    procesos comparte un mismo recurso compartido. El
    problema se presenta cuando el proceso productor
    produce más de lo que el buffer compartido puede
    soportar y cuando el proceso consumidor quiere
    consumir un valor del buffer cuando esta vació.
  • Este tipo de problemas se puede presentar en
    casos similares como el de la impresora.

19
Ejemplos IPC
  • Otro problema clasico de IPC es el de la cena de
    los filosofos, el cual se basa en que existen
    cinco filosofos comensales sentados alrededor de
    una mesa circular. Cada filosofo tiene ante si un
    plato de espaguetti. El espaguetti es tan
    resbaloso que se necesitan dos tenedores para
    comerlo. Entre cada par de platos hay un tenedor.

20
Ejemplos IPC
  • Un filosofo puede comer y pensar. Para comer es
    necesario que disponga de dos tenedores
  • La solucion mas obvia puede causar
    inconsistencias. Que pasaria si todos toman su
    tenedor de la izquierda al mismo tiempo.
  • Podria mejorarse si uno filosofo toma su tenedor
    de la izquierda, verifica que el de su derecha
    este desocupado si no lo libera.

21
Ejemplos IPC
  • Por que falla esta opcion?
  • Otro problema famoso es el problema del peluquero
    dormido en el cual se tienen un peluquero, una
    silla de peluqyero y n sillas de clientes.
  • Si no hay ningun cliente el peluquero se duerme.
    Si llega un cliente y esta dormido el peluquero
    lo despierta.

22
Ejemplos IPC
  • Si llega un cliente mientras esta despierto el
    peluquero se forma en las sillas, o bien, se sale
    si las sillas estan todas ocupadas.
  • Todos estos son ejemplo de IPC. Los mecanismos
    basicos son las tuberias, la cola de mensajes,
    los semaforos, la memoria compartida, los
    sockets, entre otros elementos.

23
Planificación de un Proceso
  • La planificación de procesos es la etapa más
    importante del administrador de procesos ya que
    se encarga de administrar la disponibilidad del
    uso de CPU.
  • Los planificadores no importando su complejidad
    deben respetar los siguientes elementos
    equitatividad, eficiencia, tiempo de respuesta,
    retorno, volumen de producción.

24
Planificación de un Proceso
  • La problemática con este tipo de administración
    es que los recursos son únicos e imprendecibles.
    Por este motivo el planificador trata de estimar
    algunas características.
  • Un planificador no sabe cuanto tiempo tardará en
    ejecutarse un proceso y si este en algún momento
    se bloquea por alguna petición de entrada o de
    salida.

25
Planificación de un Proceso
  • Por este motivo un planificador debe de asignar
    un tiempo predeterminado llamado Quantum para la
    ejecución de procesos.
  • Un proceso puede ser interrumpido por otro
    proceso cuando este último requiera de una
    atención inmediata. Esto da origen a
    planificadores don prioridades.

26
Planificación de un Proceso
  • La prioridad puede darse por jerarquía, por
    costos o por otro medio que sirva de
    discriminante.
  • Las prioridades pueden ser dinámicas o estáticas.
  • El planificador de procesos se encarga de
    mantener el contexto de cada una de las
    aplicaciones para poder realizar multitarea.

27
Planificación de un Proceso
  • Existen diverso algoritmos de planificación de
    tareas, los cuales a continuación se describen.
  • El algoritmo de round robin (torneo) es muy
    sencillo, el cual consiste en una lista ligada
    con los diferentes procesos donde se ejecutan uno
    por uno pasandose hacia el final de la cola.

28
Planificación de un Proceso
  • La planificación en Round Robin no es la mejor
    dado a que es muy susceptible al tiempo del
    cuantum y al tamaño de la cola.
  • La planificación por prioridad permite
    calendarizar los procesos de acuerdo a su
    importancia. Los sistemas UNIX cuentan con el
    comando nice para reducir la prioridad de un
    proceso.

29
Planificación de un Proceso
  • En algunas ocasiones se suelen agregar diversas
    mezclas de algoritmos de planificación. Por
    ejemplo, se puede manejar un sistema de colas por
    prioridades, en donde cada cola trabaja como si
    fuera un sistema round robin.
  • Otro algoritmo de planificación es el utilizar
    colas múltiples. En un principio el cuantum de
    tiempo aumentaba

30
Planificación de un Proceso
  • En un principio el quantum de tiempo aumenta en
    proporción del tiempo que está el proceso en
    ejecución teniendo 1, 2, 4 ... N cantidad de
    quantum. Esto hace que los procesos más viejos
    tengan mayor prioridad.
  • Otros planificadores de colas múltiples colocan
    los procesos de manera generalizada en colas de
    terminal, E/S, quantum corto, quantum largo, etc.

31
Planificación de un Proceso
  • Un algoritmo de planificación más efectivo es el
    primer el trabajo más corto, dado que el promedio
    de retorno de cada proceso es menor siguiendo
    esta técnica, la desventaja es que es dificil
    calcular cual es el trabajo más corto.
  • La planificación garantizada consiste en hacer
    promesas a los usuarios para después cumplirla.
    Una promesa fácil es 1/n.

32
Planificación de un Proceso
  • Un mejor esquema es la planificación por loteria,
    la cual sonsiste en repartir boletos entre los
    procesos, a los procesos ganadores se les asigna
    tiempo de CPU. El secreto es asignar una
    cantidad de boletos equivalente al peso e
    importancia de los procesos.
  • En sistemas muy especiales como los sistemas de
    tiempo real, el planificador debe considerar
    muchas restricciones.

33
Planificación de un Proceso
  • Entre estas restricciones están la administración
    de eventos y de cumplir con los límites de
    tiempos establecidos.
  • Otra alternativa de planificación es utilizar dos
    niveles. Un nivel para gestionar procesos en
    memoria principal y otro nivel para memoria
    secundaria. Con este esquema se obtiene mejor
    rendimiento cuando se utiliza memoria virtual.

34
Procesos Cooperativos
  • Los procesos cooperativos son aquellos que pueden
    trabajar de manera conjunta.
  • Una de las mejores alternativas para la
    planificación de procesos consiste en que los
    mismos procesos gestionen con los demás su turno
    de uso CPU. Si se programa de buena manera puede
    funcionar, de lo contrario producirá un esquema
    de competencia.

35
Implementación de Procesos
  • La implementación de procesos depende de la
    arquitectura del sistema operativo utilizada.
  • Ya se comentó en diapositivas anteriores la
    implementación de procesos en sistemas X otros
    sistemas difieren en las llamadas al sistema pero
    conceptualmente se parecen por que están basados
    en POSIX.


36
Implementación de Procesos
  • Por ejemplo, la implementación de procesos en
    Windows se da de manera generalizada con llamada
    al sistema CreateProcess().
  • En Linux además de la llamada fork(), se
    encuentra clone() que clona un proceso de memoria
    pero puede compartir estructuras de datos.


37
Threads
  • Los hilos son procesos ligeros a diferencia de
    los procesos hijos, los hilos sólo replican el
    segmento de código, por lo que comparten datos
    entre otros hilos haciendo mejor uso de la
    memoria.
  • La problemática con los hilos es que cada sistema
    operativo implementa sus hilos de manera
    distinta. Por ejemplo existen los hilos POSIX,
    los hilos C de Mach, los hilos en Windows, etc.

38
Hilos
  • La implementación también dependerá del tipo de
    lenguaje utilizado para la codificación. Por
    ejemplo se tienes hilos en Java, hilos en
    lenguaje como Modula-2, ADA, etc. los cuales
  • En general, los sistemas X implementan más
    procesos hijos que hilos, pero se pueden hilos
    pero no están garantizado su uso en muchos
    sistemas legados.

39
Hilos
  • En general los hilos en Java debido a su
    portabilidad binaria son idénticos en todas las
    plataformas. Existen dos formas básicas de
    implementar procesos heredar de la clase Thread
    o bien implementar la interfaz Runnable.
  • En general en el método public void run() se
    agrega la funcionalidad del hilo.

40
Hilos
  • Si se heredo de la clase Thread el hilo debe
    crearse de la siguiente forma
  • Thread hilo new Thread(new Objeto())
  • El método Thread.sleep(ms) permite dormir un
    proceso n cantidad de milisegundos.

41
Hilos
  • En general se ejecuta el hilo poniendo el método
    start(), e.g. hilo.start()
  • Otros métodos de los hilos son isAlive() para
    determinar si un hilo está con vida, el metodo
    stop() finaliza un hilo, el método suspend() lo
    suspende, el método resume() reanuda un proceso
    y join() espera a que finalice un proceso
    especificado.

42
Hilos
  • Se pueden asignar prioridades a los hilos con el
    método setPriority(), en donde la prioridad puede
    ser MIN, MAX y NORM_PRIORITY.
  • El método yield() cede prioridad, mientras que el
    método setDaemon(true) hace que un hilo sea
    demonio.

43
Hilos
  • Los demonios son hilos que pueden correrse sin
    depender de otros procesos. Se utilizan mucho
    para la programación de servicios del sistema.
  • Se pueden crear grupos de hilos con la clase
    GroupThread para un mejor manejo.

44
Hilos
  • En Windows los hilos se crean con la instrucción
    BeginThread, se pueden hacer uso en Visual C de
    APIs de mayor nivel de abstracción como el método
    AfxBeginThread() o la clase CThread del MFC
    (Microsoft Solution Framework).
  • En .NET se utiliza la clase Thread para generar
    procesos hilos.

45
Hilos
  • PThreads (POSIX Threads) es la biblioteca para la
    creación de hilos más implementada en sistemas
    X.
  • Se utiliza la biblioteca pthread por lo que
    algunos compiladores ya la incluyen de manera
    predeterminada sino habrá que indicar su uso gcc
    -lpthread

46
Hilos
  • Crear hilos
  • int pthread_create(pthread_t thread,
    pthread_attr_t attr, void (start_routine)(void
    ), void arg)
  • Esperar la finalización de hilos
  • int pthread_join(pthread_t th, void
    thread_return)

47
Hilos
  • No guardar estado del hilo
  • int pthread_detach(pthread_t h)
  • Salir de un hilo
  • pthread_exit(void retval)
  • Biblioteca a utilizar include ltpthread.hgt

48
Hilos
  • typedef struct parametros
  • int id
  • char nombre
  • void funcion(parametros p)
  • printf(s d, p-gtcadena, p-gtid)
  • pthread_exit((p-gtid))

49
Hilos
  • Referencia asi mismo
  • Yo pthread_self() /Demás funciones/
  • Enviar una señal a un hilo
  • pthread_kill(pthread_t hilo, int señal)
  • Los hilos no están tan extendidos por que existen
    muchas variantes hilos mach, hilos solaris,
    Gthreads, etc.

50
El Problema de la Sección Crítica
  • Lo importante en un problema de compartición de
    recursos, no es la compartición del recurso en
    sí, sino el mecanismo de protección para poder
    acceder de manera controlada y equitativa al
    recurso.
  • La sección crítica es la parte de código que se
    desea compartir con otros procesos concurrentes.
    Esta región debe ser en algunos casos mutuamente
    excluyente (mutex).

51
El Problema de la Sección Crítica
  • En algunos casos como en las lecturas, el acceso
    concurrente a un recurso no tiene mayor
    complicaciones.
  • En otros casos como en la escritura, se debe de
    controlar el acceso, ya que no hacerlo podría
    causar muchos problemas.
  • Los recursos se pueden compartir dinámicamente
    (intercalados) y estáticamente (exclusivo).

52
Sincronización de Hardware
  • La mejor forma de realizar sincronización de
    proceso es a través de mecanismos de hardware.
  • La gran mayoría de microprocesadores que permiten
    multitarea tienen esquemas robustos de protección
    para la concurrencia de procesos.
  • Se puede contar con registro base y límite para
    el acceso controlado a los recursos, o bien
    esquemas de prioridad.

53
Semáforos
  • Desafortunadamente tener mecanismos de
    sincronización en hardware es sumamente costoso.
    Por este motivo la inmensa mayoría de los métodos
    de compartición de recursos se hacen a nivel de
    software.
  • Cualquier recurso compartido en una computadora
    está asociado a una localidad de memoria, por
    este motivo la protección de memoria juega un
    papel muy importante en la sincronización de
    procesos

54
Semáforos
  • Los semáforos son mecanismos que permiten
    sincronizar procesos para prevenir colisiones
    cuando uno o más procesos solicitan
    simultáneamente un recurso.
  • Dijsktra los define como un objeto tipo entero en
    los cuales se puede aplicar dos operaciones P
    (Proberen, comprobar) y V (Verhogen,
    incrementar), donde P sirve para obtener el
    recurso y V para liberarlo.

55
Semáforos
  • Los semáforos son un mecanismo de IPC
    estandarizado por POSIX.
  • Todos los mecanismos IPC tienen una entrada en
    una tabla especial con una llave definida por el
    usuario.
  • Los posibles valores de la llave son IPC_PRIVATE,
    IPC_CREATE, IP_EXECL, entre otros.

56
Semáforos
  • Cada entrada de la tabla tiene un registro de
    permisos (rw), información de estado y llamadas
    de control.
  • Las llaves son del tipo key_t. Para crear una
    llave se utiliza
  • include lttypes.hgt
  • include ltsys/ipc.hgt
  • key_t ftok(path, id)

57
Semáforos
  • Las operaciones sobre un semáforo son semget para
    crear un semáforo o habilitar uno existente,
    semctl para realizar operaciones de control e
    inicialización, semop para realizar operaciones P
    y V.
  • include ltsys/types.hgt
  • include ltsys/ipc.hgt
  • include ltsys/sem.hgt
  • int semget(key, nsems, semflg)

58
Semáforos
  • int llave, semid
  • if((llave ftok(auxiliar, K)) (key_t)-1)
  • /Tratamiento del error/
  • if((semid semget(llave, 4, IPC_CREAT 0600))
    -1)
  • /Error al crear el semáforo/

59
Semáforos
  • int semctl(semid, semnum, cmd, arg)
  • union semun
  • int val
  • struct semid_ds buf
  • ushort array
  • arg
  • Las opciones de control son GETVAL, SETVAL,
    GETPID, GETNCNT, GETZCNT, GETALL, SETALL,
    IPC_STAT, IPC_SET

60
Semáforos
  • ushort asem
  • asem05 asem13 asem24 asem38
  • semctrl(semid, 0, SETALL, asem)
  • valor semctrl(semid, 3, GETVAL, 0)
  • int semop(semid, sops, nsops)
  • struct sembuf sops

61
Semáforos
  • struct sembuf
  • ushort sem_num
  • short sem_op
  • short sem_flg
  • Si semop es negativo se decrementará (P), si se
    incrementa (V) y si es 0 no hace nada.
  • Las banderas son IPC_WAIT, IPC_NOWAIT, SEM_UNDO

62
Semáforos
  • struct sembuf operacines4
  • Operaciones0.semnum 1
  • Operaciones0.sem_op -1
  • Operaciones0.sem_flg 0
  • Operaciones1.semnum 4
  • Operaciones1.sem_op 1
  • Operaciones1.sem_flg 0
  • semop(semid, operaciones, 2)

63
Regiones críticas
  • Las regiones críticas son otra forma de
    sincronización de procesos.
  • Un semáforo en algunas ocasiones no puede
    sincronizar más de un recurso diferente a la vez
    por lo que se necesitan de mecanismos de control
    de concurrencia más elaborados.
  • Otros mecanismos IPC que permiten sincronizar y
    proteger regiones críticas son las colas de
    mensajes .

64
Colas de Mensajes
  • La filosofía de las colas de mensajes es similar
    a las tuberías, pero con mayor versatilidad.
  • Una cola es una estructura de datos gestionada
    por el kernel, en la cual varios procesos pueden
    escribir sobre ella. El sincronismo para evitar
    colisión lo realiza el kernel.

65
Colas de mensajes
  • include ltsys/msg.hgt
  • int msgget(key, msgflg)
  • If((msqid msgget(llave, IPC_CREATE 0600))
    -1)
  • /Error al crear la cola de mensajes/
  • msgctrl(msq, cmd, buf) sirve para leer y
    modificar la información estadística y de control
    de una cola.

66
Colas de mensajes
  • Los comandos de control son IPC_STAT, IPC_SET,
    IPC_RMID. Por ejemplo msgctrl(msqid, IPC_RMID,
    0)
  • Las operaciones básicas de una cola de mensajes
    son enviar y recibir los mensajes que se realizan
    con las siguientes funciones
  • int msgsnd(msqid, msgp, msgsz, msgflg)
  • int msgrcv(msqid, msqp, msgtyp, msgflag)

67
Cola de mensajes
  • El parámetro msgtyp indica el tipo de mensaje que
    se desea leer 0 para el primer mensaje, gt 0 el
    primer mensaje de tipo msgtyp que haya en la
    cola, lt0 lee el primer mensaje que sea menor o
    igual al valor absoluto de msgtyp y además sea el
    mensaje más pequeño de los que hay.

68
Cola de mensajes
  • struct
  • long tipo
  • char cadena20
  • mensaje
  • strcpy(mensaje.cadena, SD1)
  • mensaje.tipo 1
  • longitud strlen(mensaje.cadena)
  • if(msgsnd(msqid,mensaje,longitud,0)-1) /Err/
  • if(msgrcv(msqid,mensaje,longitud,1,0) -1)
    /Er/

69
Monitores
  • Es un procesos que se encarga de verificar el
    funcionamiento de algún recurso garantizando la
    exclusión mutua (mutex).
  • En un monitor los procesos se bloquean y
    desbloquean.
  • Pueden existir diversas implementaciones no
    estandarizadas de un monitor.

70
Monitores
  • En Java los monitores están implementados de
    manera nativa con el modificador de los métodos
    syncronized.
  • El monitor es el mecanismo que nos permite
    controlar el acceso a una región crítica, en este
    caso un método. También se puede utilizar
    semáforos como objetos mutex disponibles en el
    paquete java.util.concurrent.

71
Deadlocks
  • Los interbloqueos son la parte más problemática
    de los mecanismos de sincronización.
  • Un interbloqueo ocurre cuando un proceso A que
    utiliza un recurso no lo libera por que está en
    espera de otro recurso que el proceso B tiene y a
    su vez no libera por esperar el recurso de A.
  • En casos de interbloqueo la concurrencia del
    sistema se ve eliminada.

72
Deadlocks
  • Los interbloqueos pueden ser detectados a través
    de la verificación de un ciclo infinito.
    Desgraciadamente este problema se trata de un
    problema no deducible y por lo tanto no
    computable es decir, es difícil saber si un
    programa realmente se bloqueo o si está en un
    ciclo activo.
  • Existen muchos métodos para detectar los
    interbloqueos, a continuación se describen
    algunos.

73
Deadlocks
  • El método de la avestruz es el más sencillo,
    consiste en agachar la cabeza y no hacer nada por
    el problema.
  • El método de herir y esperar consiste en matar un
    proceso que esté el interbloqueo y esperar a que
    los procesos existentes se sincronicen.
  • El procesos de herir y matar consiste en eliminar
    un proceso y asignar los recursos a los procesos
    de manera estática.

74
Process
75
Process
76
Process
77
Process
78
Process
79
Process
80
OS Architecture
81
Signals
82
Process
83
Process
84
Process
85
System Call
86
POSIX
87
Ring Level Architecture
88
Process State
89
Process Scheduler
90
Web Server Process
91
Threads Implementation
92
Critical Section
93
Philosopher
94
Philosophers
95
Readers and Writers
96
Sleepy Barber
97
Sleepy Barber
98
First the Shortest Job
99
Process Execution
100
Process List
101
Priority Queue
102
Memory Partitions
103
Synchronization Problem
104
POSIX System Call
105
Layer Architecture
106
Client-Server Architecture
107
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com