CONCEPTOS DE SISTEMAS OPERATIVOS. José Torres Jiménez. trillas. Digitalización con propósito academico. Sistemas operativos

Tamaño: px
Comenzar la demostración a partir de la página:

Download "CONCEPTOS DE SISTEMAS OPERATIVOS. José Torres Jiménez. trillas. Digitalización con propósito academico. Sistemas operativos"

Transcripción

1 CONCEPTOS DE SISTEMAS OPERATIVOS José Torres Jiménez trillas

2 CONCEPTOS DE SISTEMAS OPERATIVOS José Torres Jiménez Preedición EDITORIAL TRILLAS México, Argentina, España Colombia, Puerto Rico, Venezuela

3 Presentación El presente libro tiene como objetivo primordial, el servir como material de apoyo para el curso de Sistemas Operativos que se imparte en el ITESM (Instituto Tecnológico y de Estudios Superiores de Monterrey). El curso de sistemas operativos es llevado por los alumnos de las carreras ISE (Ingenieros en Sistemas Electrónicos), ISI (Ingenieros en Sistemas de Información), isc (Ingenieros en Sistemas Computacionales) y LSCA (Licenciados en Sistemas Computacionales Administrativos). Adicionalmente este libro podrá ser utilizado por interesados en aprender los fundamentos de los sistemas operativos. Es recomendable, para un mejor entendimiento del material de este libro, el tener conocimientos de algún lenguaje de programación (en particular es muy útil el conocer previamente el lenguaje C o el lenguaje Java), tener conocimientos sobre arquitecturas computacionales y sobre estructuras de datos. El libro persigue el presentar la manera en que los recursos de un sistema computacional son controlados por un sistema operativo. El libro está organizado en 9 capítulos: 1. Conceptos Básicos. En este capítulo se presenta la evolución histórica de los sistemas operativos y de manera breve conceptos de Hardware, Firmware y Software que son útiles para el entendimiento de los diferentes algoritmos que serán presentados a lo largo de todo el libro. 2. Manejo de Procesos. Este capítulo presenta los conceptos de Rutina, Co-rutina, Procesos e Hilos, los cuales son necesarios para comprender la manera en la cual un sistema operativo controla la realización de todo el trabajo en un sistema computacional. 3. Manejo de Procesadores. Aquí se presentan los diferentes algoritmos que existen para controlar la asignación de unidades de trabajo a un procesador o a varios procesadores. 4. Manejo de Concurrencia y Sincronización. La manera en la cual es posible que dentro de un sistema computacional ocurran de manera coordinada actividades concurrentes es gracias a los diferentes algoritmos de manejo de concurrencia y sincronización que son presentados en este capítulo. 5. Manejo de Memoria Real. En este capítulo se presenta la evolución histórica de los diferentes esquemas de manejo de memoria real. 6. Manejo de Memoria Virtual. Aquí se presentan los diferentes esquemas para el manejo de memoria virtual (la capacidad de accesar un espacio de direcciones mayor que el de la memoria principal de la computadora). 5

4 6 PRESENTACIÓN 7. Manejo de Interbloqueo. Se presentan diferentes algoritmos de manejo de Interbloqueo, se destaca la presentación de algoritmos secuenciales y concurrentes. 8. Manejo de Archivos y Discos. La organización del sistema de archivos es presentada de la misma manera que las estrategias para la optimización del manejo de disco. 9. Sistemas Operativos Distribuidos. Se dan los conceptos básicos de los sistemas operativos distribuidos. Con base en estos conocimientos el alumno podrá entender y evaluar el desempeño de sistemas operativos de actualidad.

5 Índice de contenido Presentación 5 1 Introducción a los sistemas operativos Conceptos de sistemas operativos Generaciones de sistemas operativos Hardware, Firmware y Software Hardware Software Firmware Evolución de la programación concurrente ( ) El reto del hardware ( ) La crisis del software ( ) Inovación conceptual ( ) Desarrollo de lenguajes (1975 ) Entendimiento formal (1980-) Refinamiento del hardware (1980-) Redes de computadoras Referencias 21 2 Manejo de procesos Introducción Definición de proceso Estados de un proceso Bloque de control de un proceso (PCB) Operaciones sobre procesos Creación jerárquica vs creación no jerárquica Procesamiento de interrupciones Tipos de interrupciones Funciones del núcleo (kernel) Deshabilitación/habilitación de interrupciones Estructura jerárquica de un sistema operativo Migración del núcleo a microcódigo 26 7

6 8 ÍNDICE DE CONTENIDO 2.13 Rutinas, corrutinas, procesos e hilos Rutina Corrutina Proceso Hilos Referencias 28 3 Algoritmos de administración de procesadores Objetivos de la asignación de procesadores Criterios de la asignación de CPU Asignación preemptive vs no-preemptive Manejo de quantum Prioridad Asignación de CPU FIFO Asignación de CPU Round Robin Asignación de CPU Shortest Job First (SJF) Asignación de CPU Shortest Remaining Time First Asignación de CPU de colas con retroalimentación multiniveles Asignación de CPU selfish round robin (SRR) Asignación de CPU con algoritmos híbridos Asignación de CPU dependientes del estado Asignación de CPU basados en prioridades externas Referencias 34 4 Administración de memoria real Introducción Organización Administración del almacenamiento Jerarquía de almacenamiento Estrategias de administración de almacenamiento Estrategias de Fetch Estrategias de localización Estrategias de reemplazo Asignación de almacenamiento contiguo vs. No-contiguo Asignación de almacenamiento contiguo a un sólo usuario Protección en sistemas de un sólo usuario Sistemas Tipo Batch Multiprogramación de partición fija Multiprogramación de partición fija, traducción y cargado absoluto Multiprogramación de partición fija con cargado y traducción relocalizable Protección en sistemas de multiprogramación Fragmentación en sistemas de multiprogramación de partición fija Multiprogramación de partición variable Compactación de almacenamiento Estrategias de localización de almacenamiento 45

7 ÍNDICE DE CONTENIDO Estrategia Best Fit Estrategia First Fit Worst Fit Estrategia Buddy Fit Estrategia Fibonacci Fit Fragmentación interna Fragmentación externa Comparación de estrategias de localización Multiprogramación con intercambio de procesos en almacenamiento Referencias 48 5 Memoria virtual Conceptos básicos de almacenamiento virtual Organización de almacenamiento multiniveles Mapeo de bloques Dirección de mapeo de bloques Conceptos básicos de paginación Traducción de direcciones de paginación por mapeo directo Traducción de direcciones de paginación por mapeo asociativo Traducción de direcciones de paginación combinando mapeo asociativo y directo Compartición en un sistema de paginación Segmentación Sistemas de paginación con segmentación Administración del almacenamiento virtual Estrategias de administración de almacenamiento virtual El principio de optimalidad Reemplazo de página aleatorio Reemplazo de página FIFO Reemplazo de página menos recientemente usada (LRU) Reemplazo de página menos frecuentemente usada (LFU) Reemplazo de página no usada recientemente (NUR) Localidad Conjuntos de trabajo (Working Sets) Paginación por demanda Paginación anticipatoria Liberación de páginas Tamaño de página Comportamiento de un programa bajo paginación Referencias 62 6 Sincronización y comunicación de procesos Concurrencia de procesos Suma de dos matrices Ecuación cuadrática 64

8 10 ÍNDICE DE CONTENIDO 6.4 Problema de la actualización perdida Exclusión mutua Algoritmo de Dekker (Memory Interlock) Algoritmo para construir un diagrama de estados de la ejecución concurrente de procesos Versión 1 de Memory Interlock Versión 2 dc Memory Interlock Versión 3 de Memory Interlock Versión 4 de Memory Interlock Solución final de Memory Interlock (Algoritmo de Dekker) Problema de exclusión mutua usando intercambios (Test and Set) Algoritmo de Peterson para Exclusión mutua Semáforos Exclusión mutua con semáforos Problema del productor/consumidor Problema de lectores y escritores Problema de los filósofos Problema de K-Procesos en la sección crítica Problema de los fumadores de cigarros Pipes Paso de mensajes (Mailboxes, puertos) Regiones críticas Regiones críticas condicionales Interrupciones virtuales Expresiones de trayectoria Expresiones invariantes Ejemplo de productores consumidores Ejemplo de lectores y escritores Contadores de eventos Secuenciadores Monitores Monitor tipo monitor Monitor tipo manager Monitor tipo mediador Monitor tipo gladiador Referencias Manejo de interbloqueo (Deadlock) Introducción Algoritmos de prevención de deadlock Definición de un sistema de asignación de recursos Representación del estado del sistema Consideraciones básicas Definición de estado seguro 111

9 ÍNDICE DE CONTENIDO Algoritmo de Habermann Algoritmo de Fontao Algoritmos dc detecciónlcorrcción de deadlock Cuánto correr? Cómo detectar cl deadlock? Cómo corregir el deadlock? Referencias Manejo de archivos y discos Introducción Sistema de archivos Organización de archivos Archivo secuencial Archivo ordenado usando búsqueda binaria Archivo secuencial indizado Estructura de un disco duro Tiempo de acceso a los datos Tiempo de búsqueda, tiempo de latencia y tiempo de transmisión Algoritmos de planificación de tiempos de búsqueda Algoritmo SSTF (Shortes Seek Time First) Algoritmo SCAN Algoritmo N-Step Scan Algoritmo C-Scan (Circular Scan) Optimización rotacional Referencias Sistemas operativos distribuidos Introducción El protocolo TCP/IP Computación cliente/servidor Migración de procesos Referencias 129 A Unix 131 A. 1 Introducción a Unix 131 A.1.1 Historia de Unix 131 A.1.2 Características de diseño de Unix 132 A.1.3 Estructura de Unix 132 A.1.4 Kernel de Unix 132 A. 1.5 El sistema de archivos 132 A.1.6 El Shell 134 A.1.7 Aplicaciones/lenguajes de Unix 134 A.1.8 Comunicaciones y manejo de redes 134 A. 1.9 Editorcs/formateadores de texto 135 A.l.lO Comandos básicos de Unix 135

10 12 ÍNDICE DE CONTENIDO A.2 Manejo de archivos 138 A.2. 1 Definición de archivo 138 A.2.2 Tipos de archivos 138 A.2.3 Estructura del sistema de archivos y trayectorias 138 A.2.4 Nombres de archivos 140 A.2.5 Comandos para manejos de archivqs 140 A.2.6 Comandos para manejo de grupos y propietarios 140 A.3 Procesos 141 A.3.1 Características de un proceso en Unix 141 A.3.2 Creación de un proceso 141 A.3.3 Procesos de frente y fondo 143 A.3.4 Corres procesos después de salir 143 A.3.5 Controlando la prioridad de los procesos 143 A.3.6 Terminando procesos 144 A.4 El Shell 144 A.4.1 Descripción del Shell 144 A.4.2 Archivos estándar 144 A.4.3 Redirección 145 A.4.4 Continuación y agrupación de comandos 145 A.4.5 Pipes y filtros 145 A.4.6 Metacaractcres 146 A.4.7 Variables de Shell 146 A.4.8 Exportando variables 147 A.4.9 Variables como comandos 147 A.4.10 Caracteres de escape dc Shell 148 A.4.11 Tipos de Shell 148 A.4.12 Terminales virtuales 150 A.4.13 Comandos de selección 150 A.5 Editores 151 A.5.1 Editores de Unix 151 A.5.2 El editor vi 152 A.6 Herramientas de manejo de datos 154 A.6.1 El comando find 154 A.6.2 El comando grep a detalle 154 A.6.3 El comando cut 154 A.6.4 El comando diff 155 A.7 AIX Windows 155 A.7.l Terminales virtuales 155 A.7.2 Historia de XWindows 156 A.7.3 Modelo cliente-servidor 156 A.7.4 Salida de AlXWindows 156 A.7.5 Ventana raíz 157 A.7.6 Distribución de una ventana 157

11 ÍNDICE DE CONTENIDO 13 A.7.7 Manejo de teclado 157 A.7.8 Manejo de AlXWindows en red 157 A.7.9 Personalización de clientes 158 A.8 Sincronización/comunicación de procesos 158 A.8.1 Procesos en Unix 158 A.8.2 Creación de un proceso 160 A.9 Comunicación interprocesos 162 A.9.1 Pipes 163 B Java 177 B. 1 Introducción 177 B.2 Historia 178 A.3 Diferencias entre Java y C 179 B.3.1 Estructura del programa 179 B.3.2 Argumentos 179 B.3.3 Valor de salida en un programa 179 B.3.4 Estatuto import 179 B.3.5 Caracteres para comentarios 180 B.3.6 Constantes 180 B.3.7 Tipos de datos 180 B.3.8 Colección de basura 180 B.3.9 Apuntadores 181 B.3.10 Strings 181 B.3.l1 Arreglos 181 B.4 Programación en Java 181 B.4.l Objeto 181 B.4.2 Clase 182 B.4.3 Método 182 B.4.4 Instancia 182 B.4.5 Herencia 183 B.5 Aplicaciones y Applets 183 B.5. 1 Cómo crear o editar un programa 184 B.5.2 Cómo compilar un programa 184 B.5.3 Cómo ejecutar una aplicación 184 B.5.4 Cómo ejecutar un Applet 185 B.5.5 Métodos básicos de un Applet 185 B.5.6 Ejemplo de una aplicación 185 B.5.7 Ejemplo de un Applet 188 B.6 Hilos 190 B.6. 1 Constructores 191 B.6.2 Métodos 191 B.6.3 Ejemplo de Threads 192 C Baci 195 C. 1 Introducción 195

12 14 ÍNDICE DE CONTENIDO C.2 El lenguaje C 195 C.3 Creación de procesos 196 C.4 Manejo de semáforo 196 C.5 Manejo de monitores 197 C.6 Otras instrucciones 197 C.7 Usando Baci 198 C.8 Ejemplo 198 C.9 Dónde está siendo utilizado Baci? 199 C.10 Dónde conseguirbaci? 199 D JPNS 201 D. 1 Introducción 201 D.2 Instalando jpns 201 D.2.1 Como Applet 201 D.2.2 Como aplicación 201 D.3 Los comandos de jpns 202 D.3.1 Menú File 202 D.3.2 Menú Settings 202 D.4 Los iconos gráficos 202 D.5 Ejemplo de red de petri en Jpns 205 Bibliografía 207

13 Capítulo 1 Introducción a los sistemas operativos En este capítulo describiremos conceptos básicos de sistemas operativos, hardware, firmware y software. Adicionalmente daremos una breve panorámica de la evolución histórica de los sistemas operativos Conceptos de Sistemas Operativos Se puede decir que un sistema operativo (SO) es el conjunto de programas que permiten que sea usable una computadora, aunque de una manera más precisa, un sistema operativo es el conjunto de programas implementados en Software o Firmware que hacen posible que se use el Hardware. Algunas de las funciones y facilidades que debe proporcionar un SO son: Manejo de recursos. Definición de interfaz usuario. Compartición de hardware Compartición de datos. Asignación de recursos. Recuperación de errores. Los recursos que maneja un SO son: Procesadores. Almacenamiento. Dispositivos de E / S. Datos. 15

14 16 CAP 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS Generaciones de Sistemas Operativos 40 s Generación 0. No existía un SO en las primeras computadoras. Los programas se introducían manual y mecánicamente. 50 s Generación 1. En esta generación se usaron los SO BATCH. Inicio 6O s Generación 2. Los SO de esta generación se caracterizan por manejar: Multiprogramación Multiprocesamiento Independencia de dispositivos, Tiempo compartí. doy Tiempo real. Med 6O s-med 70 s Generación 3. En esta generación surgen los SO de propósito general y que son capaces de manejar diversos tipos de aplicaciones en el mismo SO (Batch, Multiprocesamiento, Tiempo real). Surge el SO de IBM y el SO UNIX. Fines 70 s-so s. Generación 4. Surgen las Redes de computadoras y el énfasis es en SO amigables. SO representativos de esta generación son: UNIX, VAX / VMS, CP-M, MVS, VM, MS-DOS, MacIntosh. 90 s Generación 5. Surgen las redes de amplía cobertura (Internet), se habla de migración de procesos para uso eficiente de la computación distribuida, surgen las arquitecturas cliente/servidor y aplicaciones totalmente abiertas capaces de correr en diversas plataformas de hardware y diversos SO. 1.2.Hardware, Firmware y Software Hardware El HW de un sistema computacional está compuesto principalmente de: Elementos de Procesamiento, Dispositivos de Almacenamiento y Dispositivos de Entrada / salida. Dado que para entender algunas funciones de un SO es necesario conocer conceptos relacionados con la operación del 1W, comentaremos brevemente algunos de estos conceptos: 1. Registros de relocalización. Estos registros permiten que tanto los datos, el código y el stack puedan ser relocalizados sin necesidad de modificar el código original de un programa. Esto es realizado usando dos tipos de registros: a) Un registro de segmento que define la dirección base a partir de donde se encuentran el código, los datos o el espacio de stack; y b) Un registro de desplazamiento que toma como referencia al registro de segmento. De esta manera al modificar el valor del registro de segmento, se está cambiando la dirección que se puede accesar. 2. Interrupciones y Polling. Cuando una aplicación se queda verificando continuamente la ocurrencia de un evento, se dice que está diseñada para usar POLLING. Cuando la aplicación continúa realizando otras actividades y cuando se ocurra el evento se indica con una señal (interrupción) que ya ocurrió el evento, se dice que está diseñada para usar INTERRUPCIONES. En general es preferible no usar POLLING dado que es muy ineficiente el estar verificando continuamente la ocurrencia de eventos. 3. Búferes. Cuando dos elementos se comunican y existe diferencia en la velocidad de procesamiento de ellos, la velocidad de operación total será equivalente a la velocidad

15 1.2. HARDWARE, FIRMWARE Y SOFTWARE 17 del elemento más lento. Para compensar las diferencias de velocidad entre elementos que se comunican, se puede agregar memoria entre ellos (esto es un buffer) lo cual ayuda a suavizar las diferencias de velocidad entre ellos (por ejemplo la conexión entre una computadora y una impresora puede funcionar mejor usando un buffer, que está localizado internamente en la impresora). 4. Temporizador de Quantum. Para poder soportar que un solo procesador sea compartido entre varias aplicaciones se hace uso de un temporizador de quantum (similar a un reloj despenador) el cuál permite asignar rebanaditas de tiempo entre los diversos procesos. 5. Estado Problema / Estado Supervisor. Cuando el procesador de un sistema computacional está asignado a una aplicación del usuario se dice que el sistema está en Estado Problema, cuando el procesador está asignado al sistema operativo se dice que el sistema está en el Estado Supervisor. 6. Manejo de Memoria Virtual. A la capacidad de accesar más memoria que la disponible físicamente se le denomina Manejo de Memoria Virtual. En este manejo las instrucciones de un programa accesan direcciones mas allá del espacio real de memoria. 7. Multiprogramación (Multitarea o Multitasking). La multiprogramación permite tener la impresión de que existe simultaneidad en la ejecución de los procesos a pesar de solo tener un elemento de procesamiento. 8. Multiprocesamiento. Cuando un sistema tiene más de un elemento de procesamiento es posible que se corran simultáneamente más de un proceso Software Para entender la operación de diversos algoritmos usados en los sistemas operativos es necesario conocer algunos conceptos importantes de software son relacionados en seguida: 1. Programación en Lenguajes de Máquina. Se refiere a los programas hechos en lenguaje binario, los cuales pueden ser ejecutados directamente en el HW del sistema computacional. 2. Ensambladores y Macroprocesadores. Usando un ensamblador y macroprocesador es posible facilitar la generación de aplicaciones, dado que se usan instrucciones cortas que relacionan directamente la operación de un procesador en particular. El ensamblador genera a partir de las instrucciones codas un programa en lenguaje maquinal. 3. Compilador. Es un programa que recibe como entrada un programa en lenguaje de alto nivel (similar en cierto sentido a un lenguaje natural) y produce como salida un programa en lenguaje ensamblador y/o lenguaje maquinal. 4. Intérprete. En lugar de realizar el proceso total de conversión de un programa en lenguaje de alto nivel a lenguaje de bajo nivel, un intérprete va tomando instrucción por instrucción del lenguaje de alto nivel y las ejecuta directamente.

16 18 CAP I. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS Firmware El firmware se puede decir que es SW implementado en HW, surgió en 1951 con la microprogramación planteada por primera vez por Maurice Wilkes. Una de las tendencias fuertes en los SO es el desplazar cada vez mas las funciones del SW al HW. 1.3.Evolución de la Programación Concurrente Un programa concurrente es aquél que permite a una computadora hacer varias cosas en forma simultánea. El desarrollo abarca las siguientes etapas: Reto de hardware ( ), Crisis de software ( ), Innovación conceptual ( ), Desarrollo de lenguajes ( ), Entendimiento formal ( ), Refinamiento de hardware ( ) y Redes de computadoras (1980-) ( ) El reto de Hardware Surgen interrupciones para compartir eficientemente un procesador con los periféricos lentos. Los programas se hicieron tan complejos que fue imposible que un solo programador los entendiera. Surgen los primeros lenguajes de alto nivel: FORTRAN y ALGOL 60. La ejecución concurrente de programas trajo un gran problema: la depuración de programas concurrentes, debido a que un error se presentaba en forma errática dependiendo del tiempo. No era posible reproducir una ejecución de un programa concurrente, a diferencia de un programa secuencial en el que bajo la misma entrada se obtiene la misma salida ( ) La crisis de Software Debido a los problemas resultantes en la anterior etapa surgió la necesidad de presentar al usuario una interface secuencial. El sistema de programación resultante debería de hacer de un sistema de cómputo algo: - Simple. - Confiable - Eficiente. A éste sistema de programación se le llamó sistema operativo. Los primeros sistemas operativos tipo batch (atlas y exec II) eran eficientes y simples pero no confiables totalmente. El problema de deadlock no era entendido muy bien. Los siguientes sistemas operativos fueron muy complejos: MULTICS (1965) 200 hombres-año.

17 1.3.EVOLUCIÓN DE LA PROGRAMACIÓN CONCURRENTE 19 OS360 (1966) 5000 hombres-año. La cantidad de errores en éstos sistemas era alarmante: en cada liberación del se tenían aproximadamente 1000 errores. Es entonces cuando surge el sentimiento de que no era posible diseñar programas concurrentes grandes sin contar con una fuerte base conceptual ( ) Innovación Conceptual Surge la necesidad de dividir un programa concurrente en pequeños módulos asíncronos con comportamiento independiente del tiempo. Surge el concepto de proceso como: un módulo de programa que consiste de una estructura de datos y una secuencia de enunciados que operan sobre ella. Como los procesos comparten recursos y/o cooperan en tareas comunes deben compartir datos de una manera controlada surgiendo la necesidad de sincronización. Dijkstra comentó: Si procesos operan simultáneamente sobre las mismas variables a velocidades impredecibles el resultado también será impredecible, por lo cual estableció que las operaciones sobre las variables comunes deben hacerse una a la vez, surgiendo el concepto de región crítica Dijkstra estableció el caso más simple de intercambio de señales de tiempo inventando una estructura de datos llamada semáforo con dos funciones de acceso P y V con propiedad conmutativa. Dijkstra demostró la implementación de regiones críticas y comunicación entre procesos usando semáforos. Dijkstra con su sistema THE demostró que a través del ordenamiento jerárquico en capas se le puede dar una imagen más placentera al usuario. Habermann mostró que a través de un ordenamiento jerárquico de los requerimientos de los recursos se pueden prevenir deadlocks ( ) Desarrollo de Lenguajes Se caracteriza por el desarrollo de una tecnología y notación precisa de los conceptos concurrentes. Dijkstra en su sistema THE manejé el concepto de concurrencia a través del enunciado: COBEGIN S1;S2;S3; COEND. Hoare introdujo el concepto de región crítica condicional, esto es que la entrada a una región crítica era condicionada a una variable booleana. Dijkstra sugirió que las interacciones de los procesos se podían concentrar en ciertos módulos de los programas. Siguiendo la idea anterior Hoare propone en 1973 la notación para el concepto denominado monitor. El monitor consta de estructuras de datos propias accesibles sólo a través de procedimientos propios y una parte de inicialización. Surge la idea de que un compilador auxilie en la creación de programas concurrentes.

18 20 CAP I. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS El primer lenguaje es: pascal concurrente (1974) que soporta el concepto de proceso y monitor. Después surge MODULA (1977) soportando el concepto de proceso y monitor De ésta forma un programa concurrente podría ser hecho de pequeños módulos que en cierta forma semejaban un programa secuencial (1975- ) Entendimiento Formal Surge la idea de verificación de programas. Hoare introduce definiciones axiomáticas del significado de enunciados concurrentes, regiones críticas y monitores. Dijkstra introdujo una notación de comandos guardados y en base a ella hacer la derivación formal de programas. Esta etapa está en su infancia (1980- ) Refinamiento de Hardware Debido a que los costos del hardware disminuyen y los de software aumentan surge la idea de soportar directamente los conceptos de proceso y monitor en hardware (microprocesador). Surge la idea de escribir un programa concurrente independientemente del HW en donde correrá, probarlo y después diseñar la arquitectura más adecuada al software. Cada vez se tendrá HW más especializado de acuerdo a la aplicación. Esta etapa continúa (1980-) Redes de Computadoras Ha tomado aproximadamente 20 años diseñar sistemas de cómputo confiables en los cuales procesos concurrentes comparten almacenamiento. Surge la idea de redes de computadoras en las que la comunicación no sea por memoria compartida sino por F/S. Este enfoque es más natural para aplicaciones de tiempo real. Parece que éste enfoque es la solución para comunicación por mensajes en sistemas distribuidos. Surgen conceptos de paso de mensajes No determinístico y Procesos distribuidos que no están entendidos del todo, indicando la necesidad de nuevos conceptos para la computación distribuida. Se espera que esté bien entendida la computación distribuida por el año Si la evolución de la programación es cíclica se espera: - Nuevo reto de HW. - Surgiendo una crisis de SW. - La búsqueda de nuevos conceptos. - Nuevos lenguajes de programación.

19 1.4. REFERENCIAS 21 - Nuevas teorías. - Etcétera Referencias Para tener un mayor entendimiento de los temas vistos en este capítulo se recomiendan las siguientes lecturas adicionales (ver referencias al final del libro): [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13].

20 Capítulo 2 Manejo de procesos En este capítulo presentaremos los detalles relativos a la manipulación de procesos por parte del Sistema Operativo. Usando un diagrama de estados y transiciones de los procesos se explican todas las posibles operaciones relacionadas con procesos. 2.1.Introducción A través de los procesos es como es posible realizar un trabajo utilizando un sistema operativo. Los estados y transiciones de un proceso son ilustrados en la figura Definiciones de proceso Un programa en ejecución. Una actividad asíncrona. El espíritu animado de un procedimiento. El lugar de control de un procedimiento en ejecución. Lo que se manifiesta por el PCB dentro de un SO. La entidad a la que se le asignan procesadores. La unidad despachable. 2.3.Estados de un proceso Corriendo. Listo. Bloqueado. Eliminado. Suspendido Listo. Suspendido Bloqueado. 23

21 24 CAP 2. MANEJO DE PROCESOS Figura 2.1. Diagrama de los estados de un proceso Bloque de control de un proceso (PCB) Estado actual de un proceso. Identificación única del proceso. Prioridad del proceso. Dirección de memoria. Recursos asignados. Área de registros de CPU. 2.5.Operaciones sobre procesos CREAR. Nombrar al proceso, insertarlo en la lista de procesos, determinar su prioridad inicial, crear su PCE, asignar los recursos iniciales. DESTRUIR. Quitar recursos al proceso, eliminarlo de la lista de procesos, borrar su PCB. SUSPENDER. Quitarle los recursos temporalmente. REINICIAR. Reasignarle los recursos. CAMBIO DE PRIORIDAD. Modificar el atributo correspondiente en el PCB.

22 2.10. DESHABILITACIÓN / HABILITACIÓN DE INTERRUPCIONES 25 BLOQUEO. Quitarle el procesador esperando por la ocurrencia de un evento. Se inserta el proceso en la cola de bloqueados. DESBLOQUEO. Al ocurrir el evento esperado se inserta el proceso en la cola de listos. DESPACHO. Asignación del procesador a un proceso Creación jerárquica vs. creación no jerárquica En la creación jerárquica un proceso creado depende del proceso que lo creo, de manera que al terminar el proceso creador termina necesariamente el proceso creado. En la creación no jerárquica el proceso creado puede continuar ejecutándose a pesar de que el proceso creador ya termino Procesamiento de interrupciones SO. Gana el control. SO. Guarda status de proceso interrumpido. SO. Transfiere el control a ISR.(Rutina de Servicio de Interrupción) Tipos de interrupciones Supervisor CalIs (SVC) (pedir más memoria). FIS. Externas(quantum). Reinicio del Sistema. Chequeos de programa (división por cero). Chequeos de máquina. Interrupciones NMI y MI Funciones del núcleo (Kernel) Manejo de interrupciones. Creación / destrucción de procesos. Cambios de estado de un proceso. Despacho de procesos. Suspensión y reinicio de procesos. Sincronización de procesos. Comunicación interprocesos. Manejo de PCB s. Soporte de actividades de 110. Soporte de asignación / desasignación de recursos. Soporte del sistema de archivos. Soporte del mecanismo de llamadas y regresos de procedimientos. Soporte de funciones de contabilidad del sistema.

23 26 CAP 2. MANEJO DE PROCESOS Deshabilitación/habilitación de interrupciones SO con interrupciones deshabilitadas. Usuario con interrupciones habilitadas Estructura Jerárquica de un Sistema Operativo THE (DIJKSTRA) Migración del núcleo a microcódigo: 2.13 Rutinas, corrutinas, procesos e hilos Rutina Una rutina es un conjunto de estatutos y estructuras de datos propias. Tiene la característica de ser una parte de código PASIVA, es decir, solo se ejecuta cuando se llama a través de un CALL. Cada vez que se llama es ejecutada desde su primer instrucción. Al momento de ser llamada sólo se guardan parte de los registros del procesador, normalmente el apuntador del programa Corrutina Es un conjunto de estatutos y estructuras de datos propias. Es una parte de código PASIVA, pero la forma de ejecutarse no es a través de un CALL sino a través de un TRANSFER. Solo la primera vez que se le transfiere el control con TRANSFER se ejecuta desde su primer instrucción, las siguientes veces se ejecuta en la instrucción siguiente al TRANSFER que se ejecutó en SU código. Cuando se ejecuta un TRANSFER se guardan TODOS los registros de la corrutina que ejecutó el TRANSFER y se cargan los registros ANTERIORES de la corrutina a la cual se le transfiere el CONTROL. El formato de la instrucción TRANSFER es: TRANSFER(ID CO) donde IDÁSO identifica a la corrutina a la que se transfiere el control. Un detalle importante es que el CONTROL de cual corrutina se ejecuta depende de ellas mismas, es decir, que el CONTROL está CODIFICADO dentro de las corrutinas. La ventaja de las corrutinas es que es bastante simple el realizar una aplicación que simule MIJLTIPROGRAMACION, el lenguaje MODULA-2 en su definición estándar tiene contemplado el manejo de corrutinas.

24 2.13 RUTINAS. CORRUTINAS, PROCESOS E HILOS Proceso Un proceso es un conjunto de estatutos y estructuras de datos propios. Es una parte de código ACTIVA, su ejecución depende de un algoritmo de asignación del procesador y es la entidad a la que se le asignan recursos del sistema como memoria principal y dispositivos. Una vez que un proceso es creado, y se le asigna procesador empieza a correr en su primera instrucción, las siguientes veces que se le asigne procesador correrá a partir de la instrucción en la que se BLOQUEÓ o haya sido interrumpido. Cuando se quita el PROCESADOR a un PROCESO se guardan TODOS sus registros y al darle el PROCESADOR se cargan todos los registros del PROCESO al PROCESADOR. Los procesos son los más utilizados debido a que las aplicaciones son más simples, puesto que el control de la asignación del procesador no depende de ellos sino del algoritmo de asignación del PROCESADOR Hilos Algunos sistemas como el OS/2, MVS. UNIX-SUN y MACH ven a los procesos desde dos puntos de vista: 1. Como una unidad que posee recursos. A un proceso se le asigna una área de memoria para poder correr y periódicamente se le asignan memoria y otros dispositivos. 2. Como una unidad de despacho. Un proceso traslapa su ejecución con la de otros procesos y puede pasar durante su vida por varios estados como LISTO, CORRIENDO, BLOQUEADO, etc. y es despachado o planificado por el sistema operativo. A la parte relativa a la UNIDAD QUE POSEE RECURSOS se le denomina PROCESO o TAREA, mientras que a la parte de UNIDAD DE DESPACHO se le denomina PROCESO LIGERO o simplemente HILO (Thread). El uso más sobresaliente del concepto de HILO es que se pueden tener múltiples HILOS para el mismo PROCESO de forma que toma mucho menos tiempo crear nuevos HILOS que crear un nuevo PROCESO. De este modo es más eficiente diseñar una aplicación para correr como un solo proceso con múltiples hilos que correr dicha aplicación como múltiples procesos. Otra característica atractiva de los hilos es que dado que sólo existe un proceso es directa la compartición de datos entre los hilos, mientras que en un esquema con múltiples procesos se requeriría la intervención del KERNEL para realizar la compartición de datos lo que haría más lenta la aplicación. Un ejemplo práctico del uso de los hilos es el programa Aldus-PageMaker corriendo bajo OS/2, este programa está diseñado con tres hilos que siempre están activos: 1. Hilo Manejador de Eventos(Event Handling). 2. Hilo Redibujador de Pantalla(Screen Redraw).

25 28 CAP 2. MANEJO DE PROCESOS 3. Hilo de Servicio(Service) Encargado de la inicialización, Importación de datos, Auto flujo e Impresión Referencias Para tener un mayor entendimiento de los temas vistos en este capítulo se recomiendan las siguientes lecturas adicionales (ver referencias al final del libro): [14], [15], [16], [17], [18], [19], [20], [21], [22], [23],[24], [13], [25], [26], [27], [28].

26 Capítulo 3 Algoritmos de administración de procesadores En este capítulo se presentarán diversos algoritmos para controlar la asignación de procesadores a procesos Objetivos de la asignación de procesadores 1. Ser justo evitando la posposición indefinida 2. Maximizar el número de procesos atendidos por unidad de tiempo. 3. Maximizar el número de usuarios que reciben tiempos de respuesta aceptables. 4. Ser predecible. Debe funcionar en forma similar al variar la carga del sistema. Los tiempos de respuesta no deben incrementarse grandemente al incrementar el número de procesos en el sistema. 5. Minimizar la sobrecarga (Overhead) ocasionada por el algoritmo de asignación del CPU. 6. Balancear el uso del procesador. 7. Balancear e] tiempo de respuesta del sistema y la utilización del mismo. 8. Reforzar las prioridades en ambientes donde sea necesario, v.gr. en aplicaciones de tiempo real. 9. Dar más prioridad a los procesos que tengan asignados los recursos importantes del sistema. 10. Debe presentar una degradación paulatina (Graceful Degradation) al tener cargas de trabajo grandes Criterios de la asignación de CPU Debería considerarse: 29

27 30 CAP 3. ALGORITMOS DE ADMINISTRACIÓN DE PROCESADORES 1. La cantidad de Entrada/Salida que realizará un proceso. 2. El tipo de proceso, si es INTERACTIVO o tipo BATCH. 3. Lo urgente de la respuesta, si es tiempo real o no. 4. Prioridad de los procesos. 5. La frecuencia con la que un proceso genera FALTAS DE PAGINA( Si mayor frecuencia menor prioridad). 6. El número de veces que se le ha asignado el procesador a un proceso. 7. El tiempo de ejecución acumulado de un proceso. 8. El tiempo estimado de ejecución que le falta a un proceso Asignación preemptive vs. no-preemptive En el caso de los sistemas con adquisición por prioridad (PREEMPTIVE), el procesador es asignado al proceso de mayor prioridad, sin importar si se le acababa de asignar el procesador a un proceso de menor prioridad. En el caso de los sistemas que no manejan adquisición por prioridad el procesador le es quitado a un proceso solo cuando él se bloquea o termina Manejo de quantum Para evitar que un proceso monopolice el procesador, en muchos sistemas se utiliza un temporizador de QUANTUMS que genera una interrupción periódica. Cada vez que ocurre esta interrupción se le quita el procesador que está actualmente corriendo y se le otorga al siguiente proceso de la cola de listo, cuando ocurre esto se dice que se dió un cambio de contexto Prioridad La prioridad puede tener características estáticas y dinámicas: CARACTERÍSTICAS ESTÁTICAS - Tamaño de código. - Tiempo estimado de ejecución. - Cantidad de Entrada / salida estimada. CARACTERÍSTICAS DINÁMICAS - Tiempo acumulado de ejecución. - Cantidad de recursos que tenga algún proceso. - Número de veces que se le ha otorgado el PROCESADOR a algún proceso. - Tiempo estimado faltante para terminar de un proceso.

28 3.9. ASIGNACIÓN DE CPU SHORTEST REMAINING TIME FIRST 31 Figura 3.1. Asignación de CPU FIFO Asignación de CPU FIFO Está es la disciplina más sencilla, el procesador es asignado en orden secuencial de entrada al sistema, el procesador se le quita a un proceso hasta que termina. Esto se ilustra en la figura Asignación de CPU Round Robin El procesador es asignado a los diferentes procesos en rebanaditas de tiempo llamadas quantum. Al terminarse el quantum de un proceso, este es insertado al final de la cola de listo. Si el proceso termina antes de terminar su quantum, o al terminar esté, el proceso libera el CPU y se le otorga el CPU al siguiente proceso de la cola de listo. El tamaño del quantum no debe ser tan pequeño que se acerque al tiempo de cambio de contexto, ni tan grande que se acerque al tiempo de ejecución de un proceso. Esto se ilustra en la figura 3.2. Figura 3.2. Asignación de CPU Round Robin Asignación de CPU Shortes Job First (SJF) Este algoritmo es de tipo NO-PREEMPTIVE en la que el PROCESADOR se le otorga al proceso con menor tiempo estimado de ejecución. El poder estimar el tiempo de ejecución de un proceso no es fácil. Tomando como equivalente el tamaño del código y el tiempo de ejecución podría ocurrir que en un proceso de tamaño de código pequeño sea muy iterativo y un proceso de tamaño de código grande no tenga iteraciones.

29 32 CAP 3. ALGORITMOS DE ADMINISTRACIÓN DE PROCESADORES 3.9. Asignación de CPU Shortest Remaining Time First Es similar al algoritmo anterior pero es de tipo PREEMPTIVE. Tiene gran sobrecarga puesto que se debe ir registrando el tiempo de ejecución de cada proceso Asignación de CPU de colas con retroalimentación multiniveles Es un algoritmo de tipo PREEMPTIVE entre las colas de diferente prioridad. En todas las colas menos la última la atención es en forma FlEO, y en la última es ROUND ROBIN. Un proceso al entrar ingresa a la primer cola y conforme avanza en su ejecución pasa a las colas de menor prioridad si acaso no termina antes. Tiene la ventaja que los procesos pequeños terminan normalmente antes de llegar a la última cola, y los procesos grandes al llegar a la última cola ya avanzaron en su ejecución. El procesador se le asigna al primer proceso de la cola de más alta prioridad que no esté vacía. Permite clasificar fácilmente a los procesos conforme avanzan en su ejecución. Una variación es permitir varias vueltas en las primeras colas. Este algoritmo se ilustra en la figura 3.3. Figura 3.3. Colas con retroalimentación multi-niveles Asignación de CPU Selfish Round Robin (SRR) Clasifica a los procesos en NUEVOS y ACEPTADOS. Los procesos NUEVOS tienen que esperar a que tengan la prioridad de un proceso aceptado para convenirse en ACEPTADO y competir por los QUANTUMS del procesador. Los procesos aceptados son

30 3.14. ASIGNACIÓN DE CPU BASADOSEN PRIORIDADES EXTERNAS 33 manejados en forma ROUND ROBIN. La prioridad de los procesos nuevos se incrementa con un razón a. La prioridad de los procesos aceptados se incrementa con una razón b. Si todos los procesos aceptados terminan se acepta al proceso nuevo de mayor prioridad. Este método se puede implementar fácilmente si se considera que todos los procesos aceptados tienen la misma prioridad. Algunos casos interesantes son: 1. Si b / a = 0, es decir b =0. Todos los procesos son aceptados inmediatamente y el algoritmo se convierte en Round Robin. 2. Si b / a _ 1. Un proceso nuevo no se acepta hasta que los procesos aceptados terminan, dándose un algoritmo similar a FlFO. 3. Si 0 < b / a < 1. Los procesos aceptados son egoístas pero llega un momento en que los procesos nuevos pasan a ser procesos aceptados y no necesariamente ocurre esto hasta que terminen todos los procesos aceptados Asignación de CPU con algoritmos híbridos Los algoritmos anteriores pueden ser combinados para crear nuevos v.g.: 1. En las colas con retroalimentación multiniveles, se podría manejar la última cola como FlFO para reducir el tiempo perdido por CAMBIOS DE CONTEXTO. 2. Manejar los procesos en forma Round Robin por un número determinado de quantum y después manejar los procesos en forma FIFO. 3. Manejar colas de diferente prioridad cada una de ellas en forma ROUND ROBIN o FlFO Asignación de CPU dependientes del estado 1. Ajustar el tamaño del quantum en el algoritmo Round Robin en función del número de procesos en la cola de LISTOS. De este modo sería más justo el tiempo otorgado a cada proceso. Se debe cuidar que si hay demasiados procesos en la cola de listos no se den QUANTUMS muy pequeños. En el caso de que sólo exista un proceso en la cola de listos se evitarían cambios de contexto. 2. Dar un quantum adicional al proceso que está corriendo cuando un nuevo proceso entra al sistema. 3. Algunas versiones del sistema operativo UNIX utilizan el siguiente método: Cada segundo se calcula la prioridad de cada proceso. La prioridad de un proceso es función de la prioridad dada inicialmente y el tiempo de CPU dado recientemente al proceso. Entre más tiempo de CPU se le ha dado recientemente a un proceso es menor su prioridad Asignación de CPU basados en prioridades externas 1. Usar Round Robin pero el tamaño del quantum es particular para cada proceso y el tamaño de él depende de la prioridad del proceso.

31 34 CAP 3. ALGORITMOS DE ADMINISTRACIÓN DE PROCESADORES 2. Se da el siguiente Quantum al proceso que haya sufrido más, el sufrimiento se mide por: Tiempo de espera de un proceso. Número de veces que se le ha quitado el CPU a un proceso. 3. Se tiene el compromiso de un tiempo máximo de respuesta Referencias Para tener un mayor entendimiento de los temas vistos en este capítulo se recomiendan las siguientes lecturas adicionales (ver referencias al final del libro): [3], [14], [29], [30], [18], [31], [32], [l0], [33], [34], [11]. [26], [27], [35], [36], [37], [25].

32 Capítulo 4 Administración de Memoria Real 4.1. Introducción Por almacenamiento real se entiende a la memoria principal que en las computadoras actuales se implementa a través de memorias de semiconductores y dicha memoria es accesible directamente por el CPU. El almacenamiento virtual, como se verá en el capítulo 8, es la capacidad de accesar más memoria que la principal Organización La memoria principal es un recurso muy costoso e importante, razón por la cual ha habido muchos estudios para optimizar su uso. Algunas preguntas importantes en la organización son: + Localizaremos a un solo usuario o a varios usuarios en memoria principal al mismo tiempo? + Si hay varios usuarios al mismo tiempo, Les asignaremos la misma cantidad de memoria a cada uno o les asignaremos PARTICIONES de tamaño diferente a cada uno? + Particionaremos la memoria principal en forma dinámica o en forma estática? + Requerimos que los procesos de usuario sean diseñados para correr en una partición específica o pueden correr en cualquier partición en la que quepan? + Se requiere que un proceso sea localizado en un solo bloque contiguo en memoria principal o puede ser dividido en varios bloques discontiguos? 35

33 36 CAP 4. ADMINISTRACIÓN DE MEMORIA REAL 4.3. Administración del almacenamiento Independientemente de qué práctica se escoja para la organización del almacenamiento con respecto a la administración del mismo debemos cuestionamos: Cuándo tomaremos un nuevo programa para cargarlo en memoria? Se esperará a que se requiera cargar un programa o se tratará de anticipar las demandas? Cargaremos los programas tratando de minimizar: espacio desperdiciado o tiempo requerido para ejecución? 4.4. Jerarquía de almacenamiento En los 50 s y 60 s la memoria principal estaba constituida por memorias de núcleos magnéticos muy costosas, por lo cual era indispensable diseñar un sistema computacional con el mínimo tamaño requerido. Por lo tanto era necesario sólo conservar en memoria principal el código y datos estrictamente necesario y lo demás en memoria secundaria. La memoria secundaria era de mayor densidad, con un costo por bit menor, pero con tiempos de acceso mayores que la memoria principal. Teniendo la jerarquía ilustrada en la figura 4.1. Figura 4.1. Jerarquía de Almacenamiento de Memoria. En los 60 s fue muy clara la necesidad de que la jerarquía de almacenamiento incluyera un nivel adicional con cambios sustanciales en el desempeño de los sistemas computacionales. Este nuevo nivel fue la memoria CACHE, que iría entre el CPU y la memoria principal. La memoria CACHE obviamente es más cara, de menos capacidad y más rápida que la memoria principal. El esquema de jerarquía de memoria usando memoria cache es ilustrado en la figura 4.2.

34 4.6.ASIGNACIÓN DE ALMACENAMIENTO CONTIGUO VS. NO-CONTIGUO 37 Figura 4.2. Jerarquía de memoria usando memoria cache Estrategias de Administración de Almacenamiento. 1. Estrategias de FETCH. Por demanda. Anticipatoria. 2. Estrategias de localización. 3. Estrategias de reemplazo Estrategias de Fetch.Se encargan de definir el CUANDO traer la siguiente parte de información a memoria principal. La estrategia más común es por demanda, es decir, que una parte de información se trae hasta que se requiere. Actualmente se investiga sobre políticas ANTICIPATORIAS Estrategias de localización Se refiere a DONDE dentro de memoria principal localizar un programa. FIRST FIT, BEST FIT, WORST FIT, BUDDY FIT, FIBONACCI FIT) Estrategias de reemplazo Se relaciona con la determinación de qué parte de un programa QUITAR para poder poner una nueva parte Asignación de Almacenamiento Contiguo vs. No-Contiguo Los primeros sistemas de cómputo requerían la asignación de almacenamiento contiguo, es decir que un programa tenía que ocupar un bloque de almacenamiento con localidades contiguas, mas sin embargo se vio más tarde la utilidad del almacenamiento NO CONTIGUO. En la localización NO CONTIGUA un programa es dividido en varios bloques o segmentos que pueden ser localizados dentro del espacio de almacenamiento en bloques

35 38 CAP 4. ADMINISTRACIÓN DE MEMORIA REAL de almacenamiento no necesariamente contiguos. Esto permite una mejor utilización del espacio de almacenamiento pero complica la labor del sistema operativo Asignación de almacenamiento contiguo a un solo usuario En los primeros sistemas computacionales todo el sistema de cómputo estaba dedicado a un solo usuario, limitando a que los programas que fuera a correr cupieran en el espacio disponible, la organización de memoria resultante es ilustrada en la figura 4.3. La única forma de poder correr programas más grandes que el espacio disponible fue el manejo de OVERLAYS. Dentro del manejo de OVERLAYS, dos o más áreas de un programa pueden ocupar el mismo espacio de almacenamiento en diferente tiempo. El manejo de OVERLAYS requiere una planeación muy cuidadosa y se realiza manualmente, pues el manejo automático es complejo, un esquema típico de manejo de overlays es ilustrado en la figura Protección en sistemas de un solo usuario Para evitar que un programa de usuario que esté funcionando mal o malicioso dañe el sistema operativo, se pueden verificar las direcciones generadas por el programa y no permitir accesos si las direcciones corresponden al sistema operativo. Si el usuario requiere accesar parte del sistema operativo se puede controlar a través de un llamado al supervisor (SUPERVISOR CALL). La protección de almacenamiento con asignación de almacenamiento contiguo a un solo usuario es realizado a través del uso de registros límite según se ilustra en la figura 4.5. Sistemas operativo Usuario No usado Figura 4.3. Asignación de almacenamiento contiguo a un solo usuario.

36 4.7. SISTEMAS TIPO BATCH 39-1 Carga la fase de inicialización y corre -2 Carga la fase de procedimiento en b y corre -3 Carga la fase de salida de b y corre Figura 4.4 Estructura de manejos de overlays 0 a Sistemas operativo CPU Usuario a b c No usado Registro limite Figura 4.5. Esquema de protección en un sistema con un solo usuario y almacenamiento contiguo Sistemas Tipo Batch En los primeros años de los 60 s los sistemas más novedosos eran los de tipo Batch en los cuales el tiempo requerido para poner a correr otro proceso se redujo a través del uso de PROCESADORES SATÉLITE. Los procesadores satélite podían preparar tandas de procesos a ejecutarse en la computadora central, leyendo las tarjetas perforadas del código de procesos y pasándolas a

Procesos. Planificación del Procesador.

Procesos. Planificación del Procesador. Procesos. Planificación del Procesador. Sistemas Operativos. Tema 2. Concepto de Proceso. Una definición sencilla: Programa en ejecución. Entidad pasiva Programa RECURSOS CPU Memoria Ficheros Dispositivos

Más detalles

Sistemas Operativos. Curso 2014 Planificación

Sistemas Operativos. Curso 2014 Planificación Sistemas Operativos Curso 2014 Planificación Agenda Introducción. Despachador. Clases de procesos. Esquemas de planificación. Criterios de planificación. Algoritmos de planificación. FCFS. SJF. Prioridad.

Más detalles

Sistemas Operativos. Curso 2015 Planificación

Sistemas Operativos. Curso 2015 Planificación Sistemas Operativos Curso 2015 Planificación Agenda Introducción. Despachador. Clases de procesos. Esquemas de planificación. Criterios de planificación. Algoritmos de planificación. FCFS. SJF. Prioridad.

Más detalles

El soporte del sistema operativo. Hace que un computador sea más fácil de usar. Permite que los recursos del computador se aprovechen mejor.

El soporte del sistema operativo. Hace que un computador sea más fácil de usar. Permite que los recursos del computador se aprovechen mejor. El soporte del sistema operativo Objetivos y funciones del sistema operativo Comodidad Hace que un computador sea más fácil de usar. Eficiencia Permite que los recursos del computador se aprovechen mejor.

Más detalles

Tema 1. Conceptos fundamentales de los Sistemas Operativos

Tema 1. Conceptos fundamentales de los Sistemas Operativos Tema 1. Conceptos fundamentales de los Sistemas Operativos 1. Introducción a los Sistemas Operativos. 1. Concepto de Sistema Operativo. Niveles del software. 2. Funciones principales de un Sistema Operativo.

Más detalles

4. Programación Paralela

4. Programación Paralela 4. Programación Paralela La necesidad que surge para resolver problemas que requieren tiempo elevado de cómputo origina lo que hoy se conoce como computación paralela. Mediante el uso concurrente de varios

Más detalles

Tema 1: Introducción a los S.O. Ejercicios de Planificiación de Procesos

Tema 1: Introducción a los S.O. Ejercicios de Planificiación de Procesos Tema 1: Introducción a los S.O. Ejercicios de Planificiación de Procesos 1.- Notas y criterios para los problemas de planificación NOTA GENERAL: Normalmente los enunciados no son rigurosamente completos,

Más detalles

Unidad II: Administración de Procesos y del procesador

Unidad II: Administración de Procesos y del procesador Unidad II: Administración de Procesos y del procesador 2.1 Concepto de proceso Un proceso no es más que un programa en ejecución, e incluye los valores actuales del contador de programa, los registros

Más detalles

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática Tema 1 Introducción. Arquitectura básica y Sistemas Operativos Fundamentos de Informática Índice Descripción de un ordenador Concepto básico de Sistema Operativo Codificación de la información 2 1 Descripción

Más detalles

Concurrencia. Primitivas IPC con bloqueo

Concurrencia. Primitivas IPC con bloqueo Concurrencia Primitivas IPC con bloqueo Primitivas de IPC con bloqueo La solución de Peterson es correcta, pero tiene el defecto de requerir espera ocupada: Cuando un proceso quiere entrar en su región

Más detalles

INTERRUPCIONES. La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales:

INTERRUPCIONES. La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales: INTERRUPCIONES La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales: a)consultas (POLLING): Se comprueban cíclicamente,

Más detalles

HISTORIA Y EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS

HISTORIA Y EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS HISTORIA Y EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS Las primeras computadoras eran enormes máquinas que se ejecutaban desde una consola. El programador, quien además operaba el sistema de computación, debía

Más detalles

Hilos, comunicación y competencia entre procesos. Dr. Alonso Ramírez Manzanares 2-Sep-2010

Hilos, comunicación y competencia entre procesos. Dr. Alonso Ramírez Manzanares 2-Sep-2010 Hilos, comunicación y competencia entre procesos Dr. Alonso Ramírez Manzanares 2-Sep-2010 Implementación de procesos Se mantiene una tabla de procesos con una entrada por cada proceso: Con lo cual tenemos

Más detalles

Computación Tercer Año

Computación Tercer Año Colegio Bosque Del Plata Computación Tercer Año UNIDAD 3 Sistemas Operativos E-mail: garcia.fernando.j@gmail.com Profesor: Fernando J. Garcia Ingeniero en Sistemas de Información Sistemas Operativos Generaciones

Más detalles

Hardware y Estructuras de Control. Memoria Virtual. Ejecución de un Programa. Ejecución de un Programa

Hardware y Estructuras de Control. Memoria Virtual. Ejecución de un Programa. Ejecución de un Programa Memoria Virtual Capítulo 8 Hardware y Estructuras de Control Las referencias de memoria se traducen a direcciones físicas dinámicamente en tiempo de ejecución Un proceso puede ser intercambiado hacia dentro

Más detalles

Planificación de Procesos. Módulo 5. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco

Planificación de Procesos. Módulo 5. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco Planificación de Procesos Módulo 5 Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco Planificación de Procesos Conceptos Básicos Criterios de Planificación

Más detalles

Una computadora de cualquier forma que se vea tiene dos tipos de componentes: El Hardware y el Software.

Una computadora de cualquier forma que se vea tiene dos tipos de componentes: El Hardware y el Software. ARQUITECTURA DE LAS COMPUTADORAS QUE ES UNA COMPUTADORA (UN ORDENADOR)? Existen numerosas definiciones de una computadora, entre ellas las siguientes: 1) Una computadora es un dispositivo capaz de realizar

Más detalles

Tema 4. Gestión de entrada/salida

Tema 4. Gestión de entrada/salida Tema 4. Gestión de entrada/salida 1. Principios de la gestión de E/S. 1.Problemática de los dispositivos de E/S. 2.Objetivos generales del software de E/S. 3.Principios hardware de E/S. 1. E/S controlada

Más detalles

Procesos. Bibliografía. Threads y procesos. Definiciones

Procesos. Bibliografía. Threads y procesos. Definiciones Procesos Prof. Mariela Curiel Bibliografía A. Tanembaum & M. Van Steen. Sistemas Distribuidos. Principios y Paradigmas. 2da. Edición. Smith & Nair. The Architecture of Virtual Machines. IEEE Computer.

Más detalles

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos. Unidad 1: Conceptos generales de Sistemas Operativos. Tema 3: Estructura del sistema operativo. 3.1 Componentes del sistema. 3.2 Servicios del sistema operativo. 3.3 Llamadas al sistema. 3.4 Programas

Más detalles

Introducción a las redes de computadores

Introducción a las redes de computadores Introducción a las redes de computadores Contenido Descripción general 1 Beneficios de las redes 2 Papel de los equipos en una red 3 Tipos de redes 5 Sistemas operativos de red 7 Introducción a las redes

Más detalles

Capitulo V Administración de memoria

Capitulo V Administración de memoria Capitulo V Administración de memoria Introducción. Una de las tareas más importantes y complejas de un sistema operativo es la gestión de memoria. La gestión de memoria implica tratar la memoria principal

Más detalles

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas: SISTEMAS DISTRIBUIDOS DE REDES 1. SISTEMAS DISTRIBUIDOS Introducción y generalidades La computación desde sus inicios ha sufrido muchos cambios, desde los grandes equipos que permitían realizar tareas

Más detalles

INTRODUCCIÓN. Que es un sistema operativo? - Es un programa. - Funciona como intermediario entre el usuario y los programas y el hardware

INTRODUCCIÓN. Que es un sistema operativo? - Es un programa. - Funciona como intermediario entre el usuario y los programas y el hardware INTRODUCCIÓN Que es un sistema operativo? - Es un programa. - Funciona como intermediario entre el usuario y los programas y el hardware INTRODUCCIÓN METAS: Brindar un entorno para que los usuarios puedan

Más detalles

SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008

SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008 SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008 1.- INTRODUCCIÓN A LOS PROCESOS 1.1.- Concepto 1.2.- Composición y estructura 1.3.- Estados y transiciones 2.- COMUNICACIÓN ENTRE PROCESOS

Más detalles

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3 UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3 INTRODUCCIÓN El elemento hardware de un sistema básico de proceso de datos se puede estructurar en tres partes claramente diferenciadas en cuanto a sus funciones:

Más detalles

Conceptos Básicos de Software. Clase III

Conceptos Básicos de Software. Clase III Clase III Definición de Sistema Operativo El sistema operativo es el programa (o software) más importante de una computadora. Para que funcionen los otros programas, cada computadora de uso general debe

Más detalles

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE PRUEBAS DE SOFTWARE La prueba del software es un elemento crítico para la garantía de la calidad del software. El objetivo de la etapa de pruebas es garantizar la calidad del producto desarrollado. Además,

Más detalles

Introducción a los Sistemas Operativos

Introducción a los Sistemas Operativos Introducción a los Sistemas Operativos 2º Ingeniero de Telecomunicación (Sonido e Imagen) Departamento de Ingeniería Telemática Universidad Carlos III de Madrid 2 Qué vamos a ver hoy? Qué es un sistema

Más detalles

Sistemas Operativos. Curso 2016 Procesos

Sistemas Operativos. Curso 2016 Procesos Sistemas Operativos Curso 2016 Procesos Agenda Proceso. Definición de proceso. Contador de programa. Memoria de los procesos. Estados de los procesos. Transiciones entre los estados. Bloque descriptor

Más detalles

Capítulo 1 Introducción a la Computación

Capítulo 1 Introducción a la Computación Capítulo 1 Introducción a la Computación 1 MEMORIA PRINCIPAL (RAM) DISPOSITIVOS DE ENTRADA (Teclado, Ratón, etc) C P U DISPOSITIVOS DE SALIDA (Monitor, Impresora, etc.) ALMACENAMIENTO (Memoria Secundaria:

Más detalles

Tema 11. Soporte del Sistema Operativo 11.1. REQUERIMIENTOS DE LOS SISTEMAS OPERATIVOS. 11.1.1. MULTIPROGRAMACIÓN.

Tema 11. Soporte del Sistema Operativo 11.1. REQUERIMIENTOS DE LOS SISTEMAS OPERATIVOS. 11.1.1. MULTIPROGRAMACIÓN. Tema 11 Soporte del Sistema Operativo 11.1. REQUERIMIENTOS DE LOS SISTEMAS OPERATIVOS. El sistema operativo es básicamente un programa que controla los recursos del computador, proporciona servicios a

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

CAPÍTULO I. Sistemas de Control Distribuido (SCD).

CAPÍTULO I. Sistemas de Control Distribuido (SCD). 1.1 Sistemas de Control. Un sistema es un ente cuya función es la de recibir acciones externas llamadas variables de entrada que a su vez provocan una o varias reacciones como respuesta llamadas variables

Más detalles

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos. Unidad 1: Conceptos generales de Sistemas Operativos. Tema 2: Estructura de los sistemas de computación. 2.1 Funcionamiento de los sistemas de computación. 2.2 Ejecución de instrucciones e interrupciones

Más detalles

PROYECTOS, FORMULACIÓN Y CRITERIOS DE EVALUACIÓN

PROYECTOS, FORMULACIÓN Y CRITERIOS DE EVALUACIÓN PROYECTOS, FORMULACIÓN Y CRITERIOS DE EVALUACIÓN GESTIÓN DE PROYECTOS CON PLANNER AVC APOYO VIRTUAL PARA EL CONOCIMIENTO GESTIÓN DE PROYECTOS CON PLANNER Planner es una poderosa herramienta de software

Más detalles

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX En este manual se presenta el proceso de configuración de una Maquina Virtual en VirtualBox, que será utilizada para instalar un Servidor

Más detalles

Unidad 2: Gestión de Procesos

Unidad 2: Gestión de Procesos Unidad 2: Gestión de Procesos Tema 5: Planificación de procesos. 5.1 Criterios y tipos de planificación. 5.2 Algoritmos de planificación. 5.3 Métodos multicolas y multiprocesadores. 5.4 Evaluación de políticas

Más detalles

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN Tabla de Contenidos LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN... 1 Tabla de Contenidos... 1 General... 2 Uso de los Lineamientos Estándares...

Más detalles

Guía N 1: Fundamentos básicos(i)

Guía N 1: Fundamentos básicos(i) 1 Guía N 1: Fundamentos básicos(i) Objetivos Generales: Ver una breve descripción de las capacidades más comunes de Excel Objetivos específicos: Descripción de los elementos de un libro: Hojas, iconos,

Más detalles

Operación Microsoft Windows

Operación Microsoft Windows Entornos de red Concepto de red En el nivel más elemental, una red consiste en dos equipos conectados entre sí mediante un cable de forma tal que puedan compartir datos. Todas las redes, no importa lo

Más detalles

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios "Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios Miguel Alfonso Flores Sánchez 1, Fernando Sandoya Sanchez 2 Resumen En el presente artículo se

Más detalles

Generalidades Computacionales

Generalidades Computacionales Capítulo 2 Generalidades Computacionales 2.1. Introducción a los Computadores Definición: Un computador es un dispositivo electrónico que puede transmitir, almacenar, recuperar y procesar información (datos).

Más detalles

Requerimientos principales de un sistema operativo

Requerimientos principales de un sistema operativo Descripción y control de procesos Requerimientos principales de un sistema operativo Intercalar la ejecución de varios procesos para maximizar el uso del procesador proporcionando un tiempo de respuesta

Más detalles

La Pirámide de Solución de TriActive TRICENTER

La Pirámide de Solución de TriActive TRICENTER Información sobre el Producto de TriActive: Página 1 Documento Informativo La Administración de Sistemas Hecha Simple La Pirámide de Solución de TriActive TRICENTER Información sobre las Soluciones de

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción

Más detalles

Módulos: Módulo 1. Hardware & Arquitectura de sistemas - 20 Horas

Módulos: Módulo 1. Hardware & Arquitectura de sistemas - 20 Horas Módulos: Módulo 1 Hardware & Arquitectura de sistemas - 20 Horas Este módulo permite conocer y configurar los elementos básicos del hardware del sistema, como también otros componentes adicionales como

Más detalles

Procesos. Procesos. Concurrencia de procesos. Qué es un proceso? Estados de un proceso. Modelo de 2 estados. (C) 2008 Mario Medina 1

Procesos. Procesos. Concurrencia de procesos. Qué es un proceso? Estados de un proceso. Modelo de 2 estados. (C) 2008 Mario Medina 1 Procesos Procesos Mario Medina mariomedina@udec.cl El sistema operativo como administrador de procesos Controla la ejecución de procesos para optimizar criterios Asigna recursos a procesos Facilita sincronización

Más detalles

http://www.statum.biz http://www.statum.info http://www.statum.org

http://www.statum.biz http://www.statum.info http://www.statum.org ApiaMonitor Monitor de Infraestructura BPMS Por: Ing. Manuel Cabanelas Product Manager de Apia Manuel.Cabanelas@statum.biz http://www.statum.biz http://www.statum.info http://www.statum.org Abstract A

Más detalles

INDICE. Prefacio Parte 1: sistemas operativos tradicionales

INDICE. Prefacio Parte 1: sistemas operativos tradicionales INDICE Prefacio Parte 1: sistemas operativos tradicionales 1 1 Introducción 1.1 Qué es un sistema operativo? 1.1.1 El sistema operativo como una maquina extendida 3 1.1.2 El sistema operativo como controlador

Más detalles

MACROS. Automatizar tareas a través del uso de las macros.

MACROS. Automatizar tareas a través del uso de las macros. OBJETIVOS MACROS Definiciones Automatizar tareas a través del uso de las macros. Grabar Ejecutar Manipular macros. Tipos de Macros en Excel Introducción Las operaciones tradicionales que se pueden realizar

Más detalles

Gestión de procesos DEFINICIONES DE PROCESOS

Gestión de procesos DEFINICIONES DE PROCESOS DEFINICIONES DE PROCESOS Gestión de procesos Un programa en Ejecución. Una instancia de un programa ejecutándose en un computador. La entidad que se puede asignar o ejecutar en un procesador. Una unidad

Más detalles

CÓMO TRABAJA TU SISTEMA OPERATIVO?

CÓMO TRABAJA TU SISTEMA OPERATIVO? CÓMO TRABAJA TU SISTEMA OPERATIVO? AUTORÍA MARÍA CATALÁ CARBONERO TEMÁTICA SISTEMAS OPERATIVOS ETAPA CICLO MEDIO Y SUPERIOR DE INFORMÁTICA Resumen Los sistemas operativos nacen de la informática. Su función

Más detalles

CRM Gestión de Oportunidades Documento de Construcción Bizagi Process Modeler

CRM Gestión de Oportunidades Documento de Construcción Bizagi Process Modeler Bizagi Process Modeler Copyright 2011 - Bizagi Tabla de Contenido CRM- Gestión de Oportunidades de Venta... 4 Descripción... 4 Principales Factores en la Construcción del Proceso... 5 Modelo de Datos...

Más detalles

Fundamentos de Sistemas Operativos

Fundamentos de Sistemas Operativos Fundamentos de Sistemas Operativos Sistemas Informáticos Fede Pérez Índice TEMA Fundamentos de Sistemas Operativos 1. - Introducción 2. - El Sistema Operativo como parte de un Sistema de Computación 2.1

Más detalles

Tema 6. Gestión de la memoria

Tema 6. Gestión de la memoria Tema 6. Índice Introducción Compartición de memoria Memoria virtual Soporte en los procesadores: la MMU en Linux en Windows NT/2000 1 Tema 6. Introducción Necesidad de la gestión de la memoria Requisitos

Más detalles

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos. RAIDS MODO LINEAL Es un tipo de raid que muestra lógicamente un disco pero se compone de 2 o más discos. Solamente llena el disco 0 y cuando este está lleno sigue con el disco 1 y así sucesivamente. Este

Más detalles

Creación y administración de grupos de dominio

Creación y administración de grupos de dominio Creación y administración de grupos de dominio Contenido Descripción general 1 a los grupos de Windows 2000 2 Tipos y ámbitos de los grupos 5 Grupos integrados y predefinidos en un dominio 7 Estrategia

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS

PROGRAMACIÓN ORIENTADA A OBJETOS PROGRAMACIÓN ORIENTADA A OBJETOS Clase 1. Introducción Profesor: Diego Sánchez Gómez Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases

Más detalles

MANUAL DE USUARIOS DEL SISTEMA MESA DE SOPORTE PARA SOLICITAR SERVICIOS A GERENCIA DE INFORMATICA

MANUAL DE USUARIOS DEL SISTEMA MESA DE SOPORTE PARA SOLICITAR SERVICIOS A GERENCIA DE INFORMATICA MANUAL DE USUARIOS DEL SISTEMA MESA DE SOPORTE PARA SOLICITAR SERVICIOS A Usuario Propietario: Gerencia de Informática Usuario Cliente: Todos los usuarios de ANDA Elaborada por: Gerencia de Informática,

Más detalles

Maxpho Commerce 11. Gestión CSV. Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd

Maxpho Commerce 11. Gestión CSV. Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd Maxpho Commerce 11 Gestión CSV Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd Índice general 1 - Introducción... 3 1.1 - El archivo CSV... 3 1.2 - Módulo CSV en Maxpho... 3 1.3 - Módulo CSV

Más detalles

Convivencia. Gestión del Sistema de Entrada/Salida

Convivencia. Gestión del Sistema de Entrada/Salida Convivencia Gestión del Sistema de Entrada/Salida Dra. Carolina Carolina Mañoso Mañoso Dpto. Dpto. Imformática Informática y y Automática.UNED Introducción (1/2) El sistema de Entrada/Salida es la parte

Más detalles

CAPÍTULO 3 VISUAL BASIC

CAPÍTULO 3 VISUAL BASIC CAPÍTULO 3 VISUAL BASIC 3.1 Visual Basic Microsoft Visual Basic es la actual y mejor representación del viejo lenguaje BASIC, le proporciona un sistema completo para el desarrollo de aplicaciones para

Más detalles

Capítulo 5. Cliente-Servidor.

Capítulo 5. Cliente-Servidor. Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor

Más detalles

Sistemas Operativos Windows 2000

Sistemas Operativos Windows 2000 Sistemas Operativos Contenido Descripción general 1 Funciones del sistema operativo 2 Características de 3 Versiones de 6 Sistemas Operativos i Notas para el instructor Este módulo proporciona a los estudiantes

Más detalles

Manual del Usuario. Sistema de Help Desk

Manual del Usuario. Sistema de Help Desk Manual del Usuario Sistema de Help Desk Objetivo del Manual El siguiente manual tiene como objetivo proveer la información necesaria para la correcta utilización del sistema Help Desk. Describe los procedimientos

Más detalles

Sistemas operativos avanzados. 1.3 Algoritmos de planificación del procesador

Sistemas operativos avanzados. 1.3 Algoritmos de planificación del procesador Sistemas operativos avanzados 1.3 Algoritmos de planificación del procesador Parámetros Cuando tenemos más de un proceso en condiciones de ejecutar, debemos escoger uno de entre ellos. Para escogerlo empleamos

Más detalles

REGISTRO DE EMPRESAS Y PERSONAS BASE DE INFORMACIÓN DE CLIENTES & CONTACTOS

REGISTRO DE EMPRESAS Y PERSONAS BASE DE INFORMACIÓN DE CLIENTES & CONTACTOS REGISTRO DE EMPRESAS Y PERSONAS BASE DE INFORMACIÓN DE CLIENTES & CONTACTOS La gestión del asesor comercial se basa en mantener contacto personalizado con un grupo de clientes empresariales o personales.

Más detalles

Tema 2. Procesos. 1. Concepto de proceso

Tema 2. Procesos. 1. Concepto de proceso Tema 2. Procesos 1. Concepto de proceso. 2. Principios de la Programación concurrente. 1. Concurrencia. Programación concurrente. 2. Áreas de comunicación entre procesos. 1. Exclusión mutua. 2. Sincronización.

Más detalles

Estructuras de Sistemas Operativos

Estructuras de Sistemas Operativos Estructuras de Sistemas Operativos Definicion de Sistema Operativos Un sistema operativo es un programa que actua como inter entre el usuario y el hardware de un computador y su proposito es proporcionar

Más detalles

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS 4 ARQUITECTURA DE DISTRIBUCIÓN DE DATOS Contenido: Arquitectura de Distribución de Datos 4.1. Transparencia 4.1.1 Transparencia de Localización 4.1.2 Transparencia de Fragmentación 4.1.3 Transparencia

Más detalles

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz Compiladores y Lenguajes de Programación Maria de Guadalupe Cota Ortiz Organizaciones que rigen las normas para estandarización de Lenguajes de Programación IEEE (Instituto de Ingenieros Eléctricos y Electrónicos)

Más detalles

Determinación del nivel de influencia

Determinación del nivel de influencia Determinación del nivel de influencia Aquí se describirán cada una de las características mencionadas y cómo analizar su grado de influencia en la determinación del factor de ajuste. - Comunicación de

Más detalles

Diseño orientado al flujo de datos

Diseño orientado al flujo de datos Diseño orientado al flujo de datos Recordemos que el diseño es una actividad que consta de una serie de pasos, en los que partiendo de la especificación del sistema (de los propios requerimientos), obtenemos

Más detalles

Arquitectura de sistema de alta disponibilidad

Arquitectura de sistema de alta disponibilidad Mysql Introducción MySQL Cluster esta diseñado para tener una arquitectura distribuida de nodos sin punto único de fallo. MySQL Cluster consiste en 3 tipos de nodos: 1. Nodos de almacenamiento, son los

Más detalles

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)

Más detalles

Hacer clic sobre la figura, para extraer todos los registros o presionar la tecla F2.

Hacer clic sobre la figura, para extraer todos los registros o presionar la tecla F2. b) Adicionar grados Para llevar a cabo esta operación el usuario deberá realizar los siguientes pasos: Recuperar la información, para realizar esta operación el usuario puede hacerla de las siguientes

Más detalles

TEMA 1: SISTEMAS INFORMÁTICOS. Parte 3: sistemas operativos

TEMA 1: SISTEMAS INFORMÁTICOS. Parte 3: sistemas operativos TEMA 1: SISTEMAS INFORMÁTICOS Parte 3: sistemas operativos Qué vamos a ver? Qué tipos de sistemas operativos existen principalmente Las distintas formas de instalar un sistema operativo En qué consiste

Más detalles

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7 Tutoriales de ayuda e información para todos los niveles AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7 Como agregar a una red existente un equipo con Windows 7 y compartir sus archivos

Más detalles

Acronis License Server. Guía del usuario

Acronis License Server. Guía del usuario Acronis License Server Guía del usuario TABLA DE CONTENIDO 1. INTRODUCCIÓN... 3 1.1 Generalidades... 3 1.2 Política de licencias... 3 2. SISTEMAS OPERATIVOS COMPATIBLES... 4 3. INSTALACIÓN DE ACRONIS LICENSE

Más detalles

(PHP y APACHE), y el programa de comunicación Skype, para controlar de manera

(PHP y APACHE), y el programa de comunicación Skype, para controlar de manera Capítulo 4. Llamada Telefónica En este capítulo se explicará la manera en que se configuraron las herramientas web (PHP y APACHE), y el programa de comunicación Skype, para controlar de manera dinámica

Más detalles

Tema 8 Procesos. * Definición informal: un proceso es un programa en ejecución

Tema 8 Procesos. * Definición informal: un proceso es un programa en ejecución Tema 8 Procesos 8.1 Aspectos básicos de los procesos 8.1.1 Concepto de proceso * Definición informal: un proceso es un programa en ejecución Un programa ejecutable es un conjunto de instrucciones y datos

Más detalles

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes: PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes: 1. Proporcionar una guía de actividades para el trabajo en equipo. (Guía detallada para el desarrollo

Más detalles

TEMA 1. INTRODUCCIÓN. 1. Diferentes niveles en la arquitectura de un computador

TEMA 1. INTRODUCCIÓN. 1. Diferentes niveles en la arquitectura de un computador TEMA 1. INTRODUCCIÓN 1. Diferentes niveles en la arquitectura de un computador.» Máquinas virtuales 2. Máquinas multinivel actuales. 3. Evolución histórica de las máquinas multinivel. 1 1. Diferentes niveles

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Modelado de casos de uso (I) Un caso de uso es una técnica de modelado usada para describir lo que debería hacer

Más detalles

Arquitectura de Aplicaciones

Arquitectura de Aplicaciones 1 Capítulo 13: Arquitectura de aplicaciones. - Sommerville Contenidos del capítulo 13.1 Sistemas de procesamiento de datos 13.2 Sistemas de procesamiento de transacciones 13.3 Sistemas de procesamiento

Más detalles

Sistemas Operativos - Funciones del sistema operativo» Cargar y ejecutar programas (procesos)» Facilitar funciones de E/S» Controlar y distribuir el acceso a los recursos» Controlar errores Componentes

Más detalles

CAPÍTULO 4 ANÁLISIS DE IMPLEMENTACIONES

CAPÍTULO 4 ANÁLISIS DE IMPLEMENTACIONES CAPÍTULO 4 ANÁLISIS DE IMPLEMENTACIONES En el anterior capítulo se realizaron implementaciones en una red de datos para los protocolos de autenticación Kerberos, Radius y LDAP bajo las plataformas Windows

Más detalles

3. GESTIÓN DE CONFIGURACIÓN DE SOFTWARE

3. GESTIÓN DE CONFIGURACIÓN DE SOFTWARE 3. GESTIÓN DE CONFIGURACIÓN DE SOFTWARE Software Configuration Management (SCM) es una disciplina de la Ingeniería de Software que se preocupa de [Ber92] [Ber84] [Bou98] [Mik97]: Identificar y documentar

Más detalles

ARREGLOS DEFINICION GENERAL DE ARREGLO

ARREGLOS DEFINICION GENERAL DE ARREGLO ARREGLOS DEFINICION GENERAL DE ARREGLO Conjunto de cantidades o valores homogéneos, que por su naturaleza se comportan de idéntica forma y deben de ser tratados en forma similar. Se les debe de dar un

Más detalles

Ingº CIP Fabian Guerrero Medina Master Web Developer-MWD

Ingº CIP Fabian Guerrero Medina Master Web Developer-MWD 1 Java es un lenguaje de programación de Sun Microsystems originalmente llamado "Oak. James Gosling Bill Joy 2 Oak nació para programar pequeños dispositivos electrodomésticos, como los asistentes personales

Más detalles

Una mirada práctica a los Micro-Kernels y los Virtual Machine Monitors François Armand, Michel Gien INFORMATICA III

Una mirada práctica a los Micro-Kernels y los Virtual Machine Monitors François Armand, Michel Gien INFORMATICA III Una mirada práctica a los Micro-Kernels y los Virtual Machine Monitors François Armand, Michel Gien INFORMATICA III DI PIETRO, Franco RODRIGUEZ, Matías VICARIO, Luciano Introducción En este papper se muestran

Más detalles

Una computadora es un dispositivo electrónico, operando bajo el control de las instrucciones almacenadas en su propia unidad de memoria.

Una computadora es un dispositivo electrónico, operando bajo el control de las instrucciones almacenadas en su propia unidad de memoria. Informáticas I 1. Sistemas Operativos Para comprender el concepto de sistemas operativos y entender los diferentes tipos de ventanas disponibles lo primero que tenemos que cubrir algunas definiciones básicas.

Más detalles

CAPÍTULO 3. HERRAMIENTA DE SOFTWARE DE PLANEACIÓN DE

CAPÍTULO 3. HERRAMIENTA DE SOFTWARE DE PLANEACIÓN DE CAPÍTULO 3. HERRAMIENTA DE SOFTWARE DE PLANEACIÓN DE INVENTARIO Y PROCESO Objetivos del capítulo Desarrollar una herramienta de software de planeación de inventario con los datos obtenidos del capítulo

Más detalles

La Tecnología líder en Simulación

La Tecnología líder en Simulación La Tecnología líder en Simulación El software de simulación Arena, es un "seguro de vida" para las empresa: le ayuda a predecir el impacto en las organizaciones de nuevas ideas, estrategias y políticas

Más detalles

Soporte y mantenimiento de base de datos y aplicativos

Soporte y mantenimiento de base de datos y aplicativos Soporte y mantenimiento de base de datos y aplicativos Las bases de datos constituyen la fuente de información primaria a todos los servicios que el centro de información virtual ofrece a sus usuarios,

Más detalles

Concurrencia: deberes. Concurrencia: Exclusión Mutua y Sincronización. Concurrencia. Dificultades con la Concurrencia

Concurrencia: deberes. Concurrencia: Exclusión Mutua y Sincronización. Concurrencia. Dificultades con la Concurrencia Concurrencia: deberes Concurrencia: Exclusión Mutua y Sincronización Capítulo 5 Comunicación entre procesos Compartir recursos Sincronización de múltiples procesos Asignación del tiempo de procesador Concurrencia

Más detalles

ALGUNAS AYUDAS PARA EL ACCESO AL AULA DIGITAL Contenido

ALGUNAS AYUDAS PARA EL ACCESO AL AULA DIGITAL Contenido ALGUNAS AYUDAS PARA EL ACCESO AL AULA DIGITAL Contenido Tabla de contenido 1 INFORMACIÓN PERSONAL... 2 1.1 Cómo ingresar al Aula Digital?... 2 1.2 Qué hacer si olvida su contraseña?... 2 1.3 Qué veo cuando

Más detalles

SISTEMAS OPERATIVOS AVANZADOS

SISTEMAS OPERATIVOS AVANZADOS SISTEMAS OPERATIVOS AVANZADOS TEMA 3 CLAVE: MIS 204 PROFESOR: M.C. ALEJA DRO GUTIÉRREZ DÍAZ 3. PROCESOS CONCURRENTES 3.1 Conceptos de programación concurrente 3.2 El problema de la sección crítica 3.3

Más detalles

Manual del Sistema de Registro de Factura y Póliza 2012 INDICE CAPITULO 1 1

Manual del Sistema de Registro de Factura y Póliza 2012 INDICE CAPITULO 1 1 INDICE CAPITULO 1 1 MANUAL DE INSTALACION DEL SISTEMA DE REGISTRO DE FACTURAS Y POLIZAS MÓDULO DEVOLUCIONES 1 INSTALACION DEL SISTEMA DE REGISTRO DE FACTURA Y PÒLIZA. 1 9. Si es por primera vez que está

Más detalles