SO
es un conjunto de programas que mediante abstracciones ponen el HW del ordenador, de modo seguro, a disposición del usuario.
Arquitectura
se refiere a los atributos de un sistema que son visibles a un programador o aquellos que tienen un impacto directo en la ejecución de un programa (CPU, Memoria, E/S, buses).
Memoria
- Permite el almacenamiento de datos y programas en un computador.
- Es una amplia tabla en la que cada dato se almacena en una posición.
- El número de posiciones de la tabla determina el tamaño de la memoria.
- El tamaño del dato almacenado y el número de posiciones de tabla dependen del tipo de diseño.
- Los programas deben estar cargados en memoria principal para ser ejecutados.
CPU
= procesador = microprocesador -> ALU realiza funciones aritméticas y lógicas Unidad Control (interpreta las instrucciones). Controla el resto de componentes del sistema y se encarga de ejecutar las instrucciones de los programas.
Modelo de Programación
– Elementos de almacenamiento: registro generales, contador de programa, registro de estado, puntero de pila, mapa de memoria y mapa de E/S. – Juego de instrucciones y modos de direccionamiento. Los registros son los elementos de almacenamiento que existen dentro de la CPU.
Tipos de Registros
: {-Reg de proposito general y de coma flotante. -Reg de datos. -Reg de direcciones (Puntero de pila:registro q apunta a la cabecera de la pila{push y pop}. -Reg de control de estado.} –LOS REGISTROS DE CONTROL se emplean para determinar el funcionamiento de la CPU. {- CONTADOR DE PROGRAMA: contiene n la direccion de la siguiente instrucciona ejecutar. PALABRA DE ESTADO DEL PROGRAMA PSW.- registro(s) con flags (acarreo, desbordamiento) fijados x el HW de la cpu. JUEGO DE INSTRUCCIONES: -Una instruccion maquina es una secuencia de bits que representa una operacion a realizar y donde se encuentran los operandos necesarios. Cada instruccion tiene asignado un codigo maquina. – A los codigso maquina se le asigna un mnemotecnico, más cercano al lenguaje natural. -Las instrucciones pueden necesitar un # variable de operandos.-El juego de instrucciones define q operaciones puede realizar la CPU.
MODOS DE DIRECCIONAMIENTO.- formas de especificar e interpretar un operando de una instruccion. TIPOS DIRECC: Implicito.- el propio codigo de operacion indica sobre q operando actua la operacion. Explicito: Inmediato.-El operando se incluye en la propia instruccion. Directo.- El operando se referencia con su direccion en memoria. Otros.- Indirecto, x registro, etc. CICLO DE EJECUCION:-Busqueda de la instruccion maquina. -Interpretar la instruccion leida. -Leer los datos de memoria referenciados en la instruccion -Ejecutar la instruccion. Almacenar los resultados de la ejecucion. BUSES: -son los encargados de conectar entre si los distintos componentes del sistema. -Inicialmente eran pasivos(cables), pero actualmente son elementos muy complejos. -Un bus se define x varios parametros: -sus conectores y caracteristicas fisicas. -Su topologia. – sus señales y protocolos. E/S: Objetivo comunicar con el mundo exterior para: -obtener los programas q hay q ejecutar(y colocarlos en memoria). – Obtener los datos q hay q procesar. -Comunicar con ususarios humanos y con otras maquinas. CARACTERISTICAS: -La naturaleza de cada dispositivo es totalmente diferente. -Todos deben comunicar con la CpU. -Es necesario establecer una arquitectura comun:parte especifica y parte comun(controlador). ARQUITECTURA DE UN DISP E/S: CONTROLADORES: -Son elementos hardware. – Se conectan a los buses del computador y ofrecen varios registros: Reg de datos, de control, de estado. -Algunos dispositivpos complejos utilizan otros elementos. TECNICAS E/S: QUE la CPU le prugunte al dispositivo: -Con q frecuencia?. -Carga de trabajo adicional para la CPU. -Ocupa los buses y los dispositivos de forma innecesaria. -Sencillo no necesita HW adicional. QUE el dispositivo interrumpa a la CPU cuando lo necesite. -NEcesita HW adicional. -Necesita la cpu disponga del mecanismo de interrupciones.MECANISMO DE INTERRUPCIONES: la CPU está ejecutando un programa y… 1)Un dispositivo requiere atención y solicita una interrupción a la CPU. 2) La CPU deja de ejecutar el programa y pasa a ejecutar otro programa denominado ISR. 3) La ISR atiende al dispositivo y da por finalizada la interrupción. 4) La CPU reanuda la ejecución del programa en el punto en el fue interrumpida.
MODELO DE MAQUINA DESNUDA Objetivo: Ejecutar programas almacenados en memoria. -Se programaba directamente sobre el hardware. -No existía nada similar al SO. -Los usuarios introducían código máquina mediante interruptores. PROBlemas: -El usuario debía conocer todo el hardware. -Un cambio mínimo en el hardware invalidaba todo el programa. -Se repite entre programas.MONITOR SIMPLE RESIDENTE: Objetivo: Reutilizar código.¦-El código común se agrupa dentro de un monitor simple residente. (-El monitor es el primer germen de SO. -Agrupa fundamentalmente rutinas de E/S. -Un monitor es, esencialmente, un manejador de dispositivo o driver.) -El programador no tiene que programar directamente la E/S. -Se puede, por ejemplo, cambiar el lector de tarjetas sin cambiar los programas, basta con cambiar el monitor. –Problema: Se pierde mucho tiempo entre la finalización de un proceso y el lanzamiento del siguiente. SIST. DE PROC X LOTES(SIST BATCH):Objetivo: Reducir los tiempos de espera de E/S en la carga de programas. – Para la E/S se utilizan ordenadores de bajo coste dedicados. -La ejecución de los programas se realiza por medio de un ordenador de altas prestaciones y alto coste. MODO DE OPERACION: -Un operario introduce las tarjetas perforadas en un ordenador de bajo coste. -Una vez se termina, se obtiene una cinta que es cargada en el ordenador principal. -El ordenador principal va ejecutando los programas de la cinta mientras el operario introduce nuevos programas. -Cuando el ordenador principal termina, el operario retira la cinta y la introduce en un tercer ordenador que imprime los resultados. =>PROBLEma: hace falta la intervención de un operario humano. MULTIPROGRAMACION Objetivo.- Solapar las operaciones de E/S con la utilización de la CPU en la misma máquina. -Supone un salto de gran importancia y dificultad: tener más de un programa cargado en memoria a la vez. -Mientras se realiza una operación de E/S el microprocesador ejecuta otro programa de los que están en memoria. -Surgen nuevas necesidades hardware: (-Interrupciones.
-Acceso directo a memoria (DMA)).
REQUERIMIENTOS DEL SSOO:-Surgen la mayoría de los problemas clásicos de los SSOO: (-Gestión de la memoria. -Planificación del procesador. -Planificación de los dispositivos. -Protección de la ejecución de diferentes programas. -Control de la concurrencia. (Problemas:-> Un programa en ejecución puede monopolizar CPU.
-> Poco adecuado para sistemas interactivos. SISTEMA DE TIEMPO COMPARTIDO: Objetivo: Garantizar a los procesos el acceso equitativo a la CPU. -Protección contra monopolización de la CPU: interrupciones. -El tiempo de ejecución asignado a cada programa se divide en quantum. -Si un programa en ejecución agota su quantum, la CPU pasa a ejecutar otro programa (round-robin). -Los SSOO de tiempo compartido son los habituales SISTEMA DE TIEMPO REAL Objetivo.- Garantizar que los programas se ejecutan dentro de un plazo de tiempo acotado. -Para satisfacer restricciones de tiempo real no basta con tener un HW más potente. -Tiempo real no es sinónimo de rápido. -Suelen encontrarse en sistemas empotrados. -Dos tipos de aplicaciones de tiempo real: (-Duras.-Blandas). SIST DISTRIBUIDOS Objetivo.- -Repartir sus funciones entre varias máquinas, dando la impresión ser una única máquina. -Es distribuido si está formado por varios elementos que cooperan para dar un servicio único. -Un SOD no es un sistema simplemente replicado. Hay mentalidad de grupo. -Si puedes decir qué máquinas estás usando, dónde corren los programas, dónde están los archivos, entonces NO es SOD. -Introducen el concepto de middleware.
Descripcion FUNCIONAL: Objetivo.- funciones q proporciona un ssoo. -Esta descripcion solo considera q obtiene el usuario del ssoo. – El ssoo es basicamente una caja negra, cuyo contenido no interesa. -Todos los usuarios perciben las mismas funciones? –Vision AMPLIA: propia de los usuarios. –Vision RESTRINGIDA:propia de los desarroladores del ssoo. -Un SO es un administrador de recursos y una interfaz entre los programas, los usuarios y el HW. Sus FUNCIONES SON: (-Compartir el HW entre usuarios. -Facilitar la E/S. -Planificar recursos entre usuarios. -Definir la «interfaz de usuario». -Permitir a los usuarios compartir los datos. -Recuperarse de los errores.) LOS RECURSOS CLAVES Q UN SO ADMINISTRA SON: -El microprocesador. -La memoria principal. -Los dispositivos de E/S. -Almacenamiento y los datos.DESCRIPCION ESTRUCTURAL.- OBJ: Buscar una organizacion interna q incremente la portabilidad, extensión y facilite la comprension y el mantenimiento del sistema. EL SO Y EL HW:-El SO debe ser seguro, robusto, estable y eficiente. -El diseñador del SO solicita al aquitecto de computadores los siguiente mecanismos: MODO DUAL DE EJECUCION: -Modo usuario y modo privilegiado. -Mecanismos para pasar de modo ususario a modo supervisor: EVENTOS. Peticion de servicio del SO: Llamada al sistema(SVC). otros eventos: interrupcionesde E/S. –MECANISMOS DE PROTECCION DE HW: -De memoria: Hw de protección. -De dispositivos: HW de proteccion o instrucciones privilegiadas. -Del procesador: Interrupciones. MECANISMOS PARA MAXIMIZAR EL RENDIMIENTO DEL HW: -Solapar operaciones de la E/S con el uso de la CPU(DMA). DISEÑO X CAPAS: OBJ:Disminuir la complejidad observable de un sistema en su diseño CONCEPTO DE CAPA: Conjunto de funciones claramente definidas hacia un objetivo común. VENTAJA ESTRUC X CAPAS: -Las estructuras internas y algoritmos de una capa no son visibles a las demás. -Es sistema puede evolucionar facilmente manteniendo las interfaces. -Pueden existir realizaciones alternativas procedentes de distintos grupos de trabajo. -Algunas capas pueden ser transparentes su sus servicios no son necesarios. -Cada capa se codifica y prueba de modo independiente.
ESTRUC GERARQUICA DE LOS SO(obj¦Gestión del espacio de nombres lógicos y protección de la información¦NIVEL 5 GEST DE LA INFORMACION¦-Creacion y destruccion de archivos/direcctorios. -Apertura y cierre de archivos. -L/E de archivos. -Proteccion de acceso.¦¦¦Gestión de E/S en funcion de los dispositivos del sistema¦NIVEL 4 GEST DE DISPOSITIVOS¦-Creacion de procesos de E/S. Asignacion y liberacion de dispositivos de E/S. -Planificacion de E/S.¦¦¦Manejo de procesos a alto nivel¦NIVEL 3 GEST DE PROCESOS¦-Creacion y destruccion de proc. -Intercambio de mensajes.-Detencion y arranque de proc.¦¦¦Repartir la memoria entre los procesos¦NIVEL 2 GEST DE MEMORIA¦-Asignacion y liberacion de memoria.-Control de vioalcion de acceso.¦¦¦Compartir la CPU entre procesos¦NIVEL 1 GEST DEL PROCESADOR¦-Sincronizacion entre proc. -Conmutacion de la CPU.-Gestion de interrupciones.¦¦¦) NUCLEO DEL SO-CARACTERISTICAS GENERALES -Corresponde al primer nivel en el diseño jerárquico de un SO. -Es las parte mas dependeiente del HW de todo SO. -Suele permanecer en el almacenamiento primario. -Parte en ensamblador y a veces con dispositivos cableados. -Se ejecuta siempre en modo privilegiado(supervisor).FUNCIONES BASICAS DEL NUCLEO DEL SO: -Proporciona el entorno adecuado para la existencia de procesos. (-Gestión de eventos. -Conmutacion del procesador entre procesos(soporte al diagrama de estados).-Mecanismos basicos de conmunicacion entre procesos.-Carga inicial y activacion de la configuracion del sistema.) GESTION DE EVENTOS(TIPOS): Eventos{SINCRONOS{*Trap’s-llamadas al sistema.*Excepciones(Div por cero, fallo de pag, instruccion ilegal, violacion de privilegios){-recuperables -irrecuperables}ASINCRONOS-Interrupciones. *GESTION DE EVENTOS* – TRAPS(llamadas al sistema) Como puede el usuario ejecutar una instruccion privilegiada? -Peticion de servicio al SO:SVC.-Modo usuario=>TRAP=>modo supervisor.-MEtodo: a traves de una instruccion maquina especifica segun la arquitectura del ordenador. -Al ejecutarse esta instruccion toma el control el SO. LLAMADA AL SISTEMA.- son el mecanismo controlado de acceso x parte de los procesos a los recursos del SO.
TIPOS DE LL A SIST. -Comunicacion y sincronizacion de procesos. -Ejecucion de programas. -Manejo de operaciones de E/S. -Manipulacion dels sitema de archivos. -Deteccion y control de errores en tiempo de ejecucion. -comunicaiones en red. -Funciones de tiempo. -Personalizacion de la interfaz.PROGRAMACION CON LLAMADAS AL SISTEMA: -Las llamadas al sistema se definen a nivel de ensamblador. -Interfaz POSIX: estandar de interfaz de SO portables IEEE bsado en unix.(-API estandar{routine wrapper en linux}.-Obje: portabilidad de las aplicaiones. -Disponible en todas las versiones de Unix/Linux. -Incluye servicios de sistema para muchos entornos de aplicacion.EJECUCION DE UN SERVICIO POSIX (modo usuario {invocaion en un programa en ejecucion, rutina wrapper})(Modo supervisor{manejador de la llamada al sistema, rutina de servicio de la llamada al sistema})MANIPULACION DE ARCHIVOS: CREAR/BORRAR: int creat(cont char *archivo, mode_t modo); int unlink(cont char *archivo); ABRIR/CERRAR int open(const char *archivo, int operacion,[mode_t mode])=> Busca el arcjivo de nombre archivo en el sistema de archivos y si la operacion es valida, le asocia un descritor -Devuelve.- un entero, descriptor de archivo. si la llamada fracas devuelve un -1; int close(int descriptor); LEER/ESCRIBIR int read(int descriptor, char *buf, int n_bytes);int write(int descriptor, char *buf,int); dormir->¦Espera¦->Despertar->¦Listo¦->Despachar->¦Ejecucion¦->Desalojar=> |TIPOS DE ENFOQUES -A grandes rasgos, cabe considerar dos enfoques de diseño: -Enfoque monitor MONOLITICO.{-Toda la funcionalidad del SO se incluye en el nucleo. -MS-DOS, linux. Enfoque MICRONUCLEO:-Parte de la funcionalidad del SO se realiza x procesos de sistema q se sirven de la funcionalidad mminima proporcionada x un micronucleo. COMPARATIVA ( MONOLITICO:-Todo el SO se ejecuta en modo supervisor. – Rendimiento. -Muy adecuado para sistemas pequeños. -Deficil de modificar en tiempo de ejecucion. – MICRONUCLEO:-Solo el micronucleo se ejecuta en modo supervisor. – +Robusto. -El SO es interrumpible. – (sobrecarga>
PROGRAMA: es una coleccion de instrucciones y de datos almacenados en un archivo ordinario. CARACTERISTICAS: -Residen en dispositivos de almacenamientopermanente. -Generalmente, para ser ejecutados deben residir en MP. -Entidad estatica. CICLO DE DEASARROLLO: 1)Edicion 2)Compilacion 3)Ejecucion 4)Depuracion. FASES DESARROLO PROGRMA UNIX: Edicion->Compilacion->Depuracion COMPILACION: gcc .c Preprocesamiento cpp, .i Compilacion y optimizacion comp, .s Generacion de codigo objeto as, .o Enlace Id a.out.PROCESO: un proceso es un programa en ejecucion. CARACTERISTICAS: -Entidad dinamica. -Los procesos se componen de: codigo, datos, pila, heap, etc. -El SO le asigna recursos: CPU, memoria,archivos, etc. -El SO controla su ejecucion. -El SO lleva la contabilidad de todos los procesos existentes en el sistema. =>Varios procesos pueden ejecutar el mismo programa. =>Un proceso puede derivar de otro proceso.PROCESOS EN UNIX: -Cada proceso tiene un identificados unico denominado PID. -Los procesos forman una jerarquia de procesos cuya raiz es el proceso init. {-init es el primer proceso q arranca en unix. -Su PID es 1. -La funcion principal de init es arrancar distintos procesos, por ejemplo, login.}-El PPID de un proceso es el PID de su proceso padre. BLOQUE DE ^ DE PROCESOS (PCB): el PCB es una estructura de datos con informacion de un proceso. PCB CONTIENE INFORMACION REFERENTE A: -Estado actual del proceso. -Identificacion univoca del proceso. -Prioridad del proceso. -Puntero a la zona de memoria asignada. -Puntero a los recursos asociados. -Area de salvaguarda de registro. -Un puntero al siguinete PCB, formando una lista enlazada =>en linux el PCB=task_struct.***dibujar pag 14**dibujar pag 15
uso de los SERVICIOS POSIX PARA GESTION DE PROCESOS: -Creacion de procs. -Ejecucion de un programa. -Finalizacion de procs. -Identificacion de procs. -Gestion del entorno de procs.CREACION DE PROCS pid_t fork(); Crea una copia (proceso hijo) del proceso q la invoca (proceso padre). DEVUelve: si ejecuta corecto =>Al padre el pid del proceso hijo =>al hijo 0 ERROR -1. EJECUCION DE UN PROGRAMA: int execl (const char *path, const char *arg, …); int exexlp (const char *file, const char *arg, ..); int execv (const char *path, char const *argv[]); int exexvp (const char *file, char const *argv[]); int exccve (const char *path, char *argv[], char * const envp[]); Remplazan la imagen del proceso actual x la imagen de un proceso a partir de un archivo ejecutable. DEVUELve: Error -1. FINALIZACIONDE UN PROCS: void exit(int status); Termina la ejecucion de un proceso. El proces da una indicacion de como finalizo mediante status. -Cuando un procs termina, sus hijos no mueren y suelen ser adoptados x el proceso init. -El valor de status es retornado al proceso padre (si existe).ESPERA X LA FINALIZACION DE UN PROCS: pid_t wait(int *status); pid_t waitpid(pid_t pid, int *status, int options); Permite q un proceso espere x la finalizacion de u proceso hijo y obtenga informacion sobre su estado de terminacion en status. DEVuelve: El identificador del proceso hijo cuya ejecucion finalizo.HILOS OBJ:Compartir recursos entre procesos cooperantes de forma comoda. CONCEPTO: -Hilos=proceso ligero=threads=lightweight process (LWP)= Unidad fundamental de uso del procesador. -Basicamente se compone de un CP, una serie de registros y una area de pila. -Un hilo pertenece a otra entidad conocida como tare (task), y solo a una. -El código, los datos y los recursos son propiedad de la tarea a la q pertenece el hilo.CARACTERISTICAS: -Cada hilo comparte con los otros hilos cooperantes: código, datos y recursos del SO. -Una tarea sin hilos no tiene capaciad de ejecución. -Los threads son muy adecuados para sistemas distribuidos y sistemas multiprocesador. – Un proceso tradiciobnal (proces pesado) se compone de una tarea con un hilo de ejecución.***dibujo PG33
IMPLEMANTACION Y PROGRAMACIÓN: -Los hilos pueden ser implementados en espacio de usuario o soportados x el nucleo como llamadas al sistema. -La programacion con hilos debe hacerse cuidadosamente; puede proucir errores de sincronizacion. -La mayoria de los SO modernos soportan theads. -Programar con hilos Biblioteca stand DCE, Threads, POSIX threads, Sun threads, HILOS vs PROCESOS: -Los hilos se crean y se destruyen + rapido q los procesos. -El tiempo de conmutacion entre hilos de la misma tarea es + rapido q la conmutacion entre procesos. -Todos los hilos de una tarea comparten memoria=> Menor sobrecarga de comunicacion. -Un proceso tradicional (proc pesado) secompone de una tarea con un hilo de ejecucion. SINCRONIZACION DE LA EJECUCION DE UN PROCESO O HILO: con frecuencia los procesos deben cordinarse entre si xq cooperan para lograr un fin o compiteb x algun recurso. RAZONES PARA SINCRONIZAR LA EJECUCION DE LOS PROCESOS: -Es necesario compartir recursos en exclusión mutua. -Un proceso debe esperar hasta q otro le envie la informacion q necesita para continuar(detener su ejecucion). -Varios procesos quieren escribir a la vez en la misma posicion de memoria(condicion de carrera). ¦Un proceso no puede detener x si mismo su ejecucion. Tampoco puede alterar la jecucion de otro. Es necesario la intervencion del nucleo.MECANISMO DE SINCRONIZACION CON SEMAFOROS los semaforos son objetos proporcionados x el nucleo y se comparten x todos los procesos participantes en la sincroniczacion.OPERACIONES SOBRE LOS SEMAFROS -Operacion P {-Si el semaforo tiene valor postivo, se decrementa en una unidad. -Si es 0, el proceso q invoca la llamda queda bloqueado en una lista de espera}. -Operacion V {-Si el semaforo no tiene procesos bloqueados a la espera, se incrementa en una unidad. -Si el semaforo tiene procesos bloqueados, se despierta al primero de ellos. PRODUCTOR – CONSUMIDOR GENRICO restricciones: 1)El productor espera a q haya elementos del bufffer vacios. 2)El consumidos espera a que haya datos en el buffer. 3)Un unico proceso puede manipular el buffer a la vez. SEMAFOROS COMPARTIDOS – smf_llenos =0 -smf_vacios=num_elelmntos_buffer – Semaforos para garantizar exclusion mutua: exmut=1.
PLANIFICACION INTRODUCCION.- -la ejecucion de un trabajo se compone d secuencias de uso del procesador y de espera. {-la planificacion utiliza los periodos de espera para alterar la utilizacion del procesador entre distintos procesos.}.-Los objetivos de planif son:{-Equidad. -Eficiencia del propio planifocador. -Bajo tiemo de respuesta(importante en sistemas interactivos y tiempo real). -Rendimiento alto. -Minimizar el tiempo de espera.}.-Todos estos objetivos no se pueden consegir simultaneamente. -Los procesos se ejecutan x afagas. -En funcion del tamaño predominate de la rafaga se distinguen: {-Proceso interactivo de en CPU. -Pces int en E/S.} PLANIFICADOR(O SCHEDULER).- commponente del SO q determina quien es el siguiente trabajo en ocupar la CPU(implementa policitcas). DISPATCHER(O REPARTIDOR).-componente del SO q conmuta el procesador de un trabajo a otro(implementa macanismos). Un proceso esta ejecutandoce en la CPU y se produce un evento… -FUNCIONAMIENTO DEL DISPATCHER: 1)Guarda el estado del proceso en BCP,CP,PSW, registros. 2)Restaura el estado de otro proceso. 3)Tranfiere el control al nuevo proceso.*********dibujo pag 6***********7*****
TIPODE DE PLANIFICADORES: *Plan. a Largo Plazo:{-Carga el proceso en memoria. -Controla el grado de multiprogramacion. -Es poco utilizado en la actualidad.}. *Corto plazo:{-Selecciona entre los trabajos cargados en memoria, y q estan listos para ejecutarse, cual hara uso del procesador. -Debe ser muy rapido.} *Medio plazo: {-Carga y descarga trabajos activos del disco a memoria y viceversa. -Directamente relacionado con la memoria virtual.} CRITERIOS DE EVALUACION: -Utilizacion del procesador. Porcentaje de tiempo de uso del procesador. -Grado de sobrecarga. Recurso q emplea el planificador. -Rendimiento. Trbajos completados x unidad de tiempo. -Tiempo de estancia. Tiempo desde q se lanza el proceso hasta q se finaliza. -tiempo de espera. Tiempo q un proceso esta en una cola (no esta en ejecucion). -Tiempo de respuesta. Tiempo en obtener una respuesta del proceso ante un estimulo. Importante en sistemas interactivos o de tiempo real.LGORITMOS PLAN. PLAN FIFO: -Primero en entrar premero en salir. -Gestiona la cola de procesos listos como una cola FIFO. VENTAJA.{Es el algoritmo + sencilo de codificar}. INCONVENIENTES:{-Un proceso puede monopolizar la CPU. -Efecto convoy: Beneficia a procesos intensivos en CPU. -Depende fuertemente del tipo de trabajos y de los instantes de llegada. -El tiempo de estancia depende fuertemente de los instantes de llegada de los trabajos. SJF:-Primero el mas corto. -Asigna la CPU al trabajo con la siguiente rafaga mas pequeña. VENTAJAS:{-Reduce los tiempos medios de respuesta. -Es una algoritmo optimo} INCONVENIENTES: {-Exige conocer el futuro, y x lo tanto es irrealizable. -Es necesario pronosticar la duracion de la siuiente rafaga. -Se puede producir ianicion en procesos con rafagas largas. -Necesita mecanismo de prediccion. -un mecanismo es predecir como media exponencial de las longitudes medidas en anteriores rafagas Tn+1=Çtn+(1-Ç)Tn. tn: longitud n-esima rafaga de CPU. ÇParametro de ajuste.PLANIFICACION CON PRIORIDADES: -Cada proceso tiene asociada una prioridad. -La CPU se asigna al proceso con la mayor prioridad. -Es necesario un mecanismo para asignar las prioridades. -Clasidicacion de metodos de asignacion de prioridades. {-Interno o externo.-Estatico o dinamico}. -Inconvenientes: Los procesos pueden sufrinr inanicion.
Solucion: introducir mecanimos de envejecimiento.PLANIFICADOR CON REQUISA: -En los algoritmos anteriores un proceso usa la CPU hasta pedir una E/S o terminar. {-un proceso puede monitorizar la CPU}. Solucion: Desalojar al proceso q usa la CPU. -Algoritmos con Requisa: prioridades con requisa. ROUND ROBIN: -eS CARACTERISTICO DE LOS SISTEMAS EN TIEMPO COMPARTIDO. -La CPU se asigna a cad proceso listo durante un quantum de tiempo «q». {-evita la monopolizacion deluso de la CPU. -El quantum de tiempo se delimita x medio de una interrupcion periodica.} -La cola de procesos listos es FIFO {-Si rafaga >q =>Interrupcion. -Si rafaga liberacion voluntaria de CPU.}. -Prestaciones: Dependen fuertemente del tamaño de q. {-Si q -> infinito: RR degenera en FIFO. -Si q->0:CPU/n(n=numero d procesos listos)}. -El tamaño q es una decision de diseño. {-Si q es muy pequeño hay muchos cambios de contexto(se pierde eficiencia).-Si q es grande aumentan los tiempos de respuesta.}. -REgla impirica: el 80% de las rafagas de CPU deben ser menor que q. -Problema: RR no distingue entre tipos de trabajos. PLANIFICACION CON COLAS MLTINIVEL: -Obejtivo: Diferenciar entre distintos tipos de trabajo. -Existen colas separadas en funcion del tipo de trabajo. -Cada cola tiene su propio algoritmo de planificacion. -Debe existir otro algoritmo paraelegir la cola. prioridad ALTA ->|Tareas del sistema|-> ->|Tareas interactivas|-> ->|Tareas de edicion|-> ->|Tareas batch|-> prioridad BAJA . PLANIFICACION CON COLAS MLTINIVEL REALIMENTADAS: -Los trabajos cambian de prioridad y de cola. -Nuevos elementos de diseño: {-Cada cola tiene su propio algoritmo de planificacion. -Metodos para ascender y descender entre colas. -Decision de donde incluir inicialmente los trabajos.Planificación en UNIX 4.4 BSD. Generalidades.: -Características: {-Sistema de tiempo compartido.- Entorno multiusuario. -Aplicaciones interactivas.}. -Planificación con prioridades dinámicas [127-0] y desalojo. {- Procesos en modo supervisor [49-0]. -Procesos en modo usuario [127-50].} -Existen 32 colas {-Cola ->
CALCULO DE PRIORIDADES -Campos relacionados con la planificación: {- p_usrpri = Prioridad de un proceso en modo usuario. -p_estcpu = Tiempo de procesador acumulado. – p_slptime = Tiempo bloqueado por algún evento. -p_nice = Valor que puede modificar el usuario (+-20). CALCULO – Cada cuatro ticks (40 ms) se calcula la prioridad: p_usrpri = PUSER + [p_estcpu/4] + 2 * p_nice; PUSER=50 -Para evitar que p_usrpri = 127, cada segundo se ejecuta p_estcpu = decay * p_estcpu + p_nice; decay = (2 * carga)/(2 * carga + 1) -Cada vez que un proceso se desbloquea: p_estcpu = decay ^ p_slptime * p_estcpu -Por cada segundo bloqueado: p_slptime = p_slptime + 1 PLANIFICACION EN W2K Características: {-Sistema de tiempo compartido. -Entorno monousuario. -Aplicaciones interactivas o como servidor. -Planificación de hilos.} -Algoritmo con requisa y prioridades. -Tareas de tiempo real [16- 31]. -Tareas ordinarias [1 – 15]. {-Prioridades dinámicas: base + offset.} -Hilos con prioridad 0:{-Zero page thread. -Proceso inactivo del sistema (idle thread).} QUANTUM -La unidad de medida básica es el quantum. -Un quantum está dividido en unidades lógicas (u.l.).{-En cada tick se restan 3 u.l. al quantum (q=q-3). -El número de u.l. por quantum depende de la versión de Windows.} -W2K Professional: {-q = 6u.l. => 2ticks. -Mejor interactividad.} -W2K Server: {q = 36u.l. => 12ticks. – Mejor rendimiento.} -El valor del quantum se pueden modificar con el registro de Windows. -La duración de un tick depende de la arquitectura. {-Monoprocesador i80x86: 10 ms por tick. -Multiprocesador i80x86: 15 ms por tick.} -Ensanchamiento de q: {- Para la tarea que se ejecuta en primer plano aumenta el tamaño de q. -Pretende mejorar el tiempo de respuesta. -El quantum puede aumentar en 2, 4 ó 6 ticks. -El ensanchamiento de q no se aplica a Windows Server. EJECUCION DE PLANNIFICADOR -El planificador se ejecuta en las siguientes circunstancias: { -El hilo libera la CPU: {-Finalización del quantum. -El hilo pasa a espera, por ejemplo, al iniciar una operación E/S. -El hilo finaliza su ejecución.} -Un hilo pasa a estado de listo: {-El hilo acaba de ser creado. -El hilo finaliza una operación de E/S.} -Cambia la prioridad del hilo. -Cambia la afinidad del procesador.
-Conmutación voluntaria: -El hilo en ejecución pasa a estado de espera y se elige el primer trabajo de la cola de mayor prioridad. -Finalización del quantum: -Si la prioridad del hilo es la prioridad base. -Si ha habido aumento de prioridad, se reduce su prioridad. -Llega un hilo con mayor prioridad (hay requisa). {-Se produce requisa, se expulsa al hilo en ejecución, que es colocado al principio de la cola correspondiente, y el hilo nuevo pasa a ejecución.} -Llega un hilo con menor prioridad (no hay requisa). {-Se coloca al final de la cola correspondiente.} AJUSTE DE PRIORIDAD – Se priorizan los hilos intensivos en E/S. -Las prioridades pueden aumentar (boost) o disminuir (decay). DECAY -La prioridad se reduce en uno si el hilo agota su quantum. -Un hilo no puede tener menos prioridad que su prioridad base. BOOSTING -Se aplica a la prioridad base de los hilos ordinarios que dejan de estar bloqueados. -La prioridad de un proceso no puede ser superior a 15. -Se aumenta la prioridad en función de qué causó el bloqueo. -El aumento de prioridad depende del motivo del bloqueo. {-Fin de E/S. Depende del dispositivo: [-Tarjeta de sonido =) +8. -Teclado y ratón =) +6. -Red y puerto serio =) +2. -Disco, CD-ROM, tarjeta gráfica, puerto paralelo =) +1.} -Otros motivos (semáforos, eventos, etc.).} -Para evitar la inanición se ejecuta el Balance Set Manager. {-Se ejecuta cada segundo con prioridad 16 (hilo del sistema). -Busca hilos con más de 300 ticks sin ejecutarse. {- Duplica el ancho del quantum. -Aumenta la prioridad en +10.}