Sistemas Operativos. Prólogo

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

Download "Sistemas Operativos. Prólogo"

Transcripción

1 Prólogo Las presentes notas son recopilaciones de diferentes libros básicos que se recomiendan a los estudiantes de nivel licenciatura para la materia de Sistemas Operativos, así como artículos, y manuales de programación que ayudan a ampliar la información. Se presentan también códigos básicos tomados de los libros base, así como algunas mejoras que se han llevado a cabo a lo largo de los cursos en los cuales he impartido la materia. Se recomienda tomar como punto de partida para la exploración el sistema operativo GNU/Linux, la distribución que considere pertinente, hago notar que los códigos presentados fueron probados bajo una distribución de Ubuntu. Nada de esto es comercial ni mucho menos para sacar un peso de algún lado, como les repito son recopilaciones de libros básicos como Sistemas Operativos de W. Stallings, Sistemas Operativos de M. Deitel, Sistemas Operativos de A. Tanenbaum, Sistemas Distribuidos de G. Coulouris, Sistemas Distribuidos de A. Tanenbaum, Sistemas Distribuidos de Mullender, Unix de C. Brown, Unix de F. M. Marquez, Unix de Robbins. Estas notas, digamos para colocarle un número de versión, son las 0.01, faltan demasiados detalles que pulir, figuras que colocar y tablas que actualizar, solo para justificar su primera liberación, diré a mi favor: necesito colocar estas notas para que las lean mis estudiantes, y no tengan excusa de no encontrar los libros en la biblioteca, pero si motivo de venir a verme y decirme que algo anda mal en estas páginas. Espero sea de utilidad! Hay golpes en la vida, tan fuertes... Yo no sé. Golpes como del odio de Dios; como si ante ellos, la resaca de todo lo sufrido se empozara en el alma... Yo no sé. Los heraldos negros. César Vallejo. 1

2 Capítulo 1 Introducción a los Sistemas Operativos Un sistema operativo (SO) se encarga de controlar y administrar los recursos con los que cuenta un dispositivo de comunicación, brindando con una interfaz para comunicar al usuario con el hardware. 1.1 Sistema Operativo Veamos primero algunas definiciones de algunos autores sobre qué es un sistema operativo, para comprender mejor lo necesario que es un sistema operativo para que un hardware puede ser utilizable. Definiciones 1. El software que controla el hardware. 2. Es un programa de aplicación que controla la ejecución de los programas de aplicación y que actúa como interfaz entre el usuario de una computadora y el hardware de la misma. 3. Es un administrador de recursos del dispositivo, tales como, los procesadores, los medios de almacenamiento, los dispositivos de entrada/salida, los medios de comunicación y los datos; y proporciona la interfaz con el usuario. Aunque podemos decir que en la definición 1, actualmente existe una tendencia significativa a la transferencia de las funciones del software al firmware, es decir, colocar un microcódigo incrustado en el hardware. Un sistema operativo tiene tres objetivos: 1. Comodidad. Hace que una computadora sea más cómoda de utilizar. 2. Eficiencia. Permite que los recursos de un sistema de computo se aprovechen más eficientemente. 3. Capacidad de evolución. Debe construirse de modo que permita el desarrollo efectivo, la verificación y la introducción de nuevas funciones en el sistema y, a la vez, no interferir en los servicios que brinda. 2

3 Jerarquía de elementos en una computadora El hardware y el software que se utilizan para proveer de aplicaciones a los usuarios pueden contemplarse de forma jerárquica (Figura 1-1). Usuario Final Aplicaciones Utilerías Sistema Operativo Hardware Figura 1-1. Jerarquía en el Sistema de Computo. Un sistema operativo ofrece servicios en las áreas siguientes: Creación de programas. Ofrece un conjunto de programas que no forman parte del S.O. pero son accesibles a través de él como son: los editores y los depuradores. Ejecución de programas. Se encarga de administrar las instrucciones y los datos que se deben cargar en la memoria principal, los archivos y los dispositivos de E/ S. Acceso a los dispositivos de E/S. Cada dispositivo de E/S requiere un conjunto propio y peculiar de instrucciones o de señales de control para su funcionamiento. El S.O. tiene en cuenta estos detalles de modo que el programador solo piensa en forma de lecturas y escrituras simples. Acceso controlado a los archivos. El S.O. se encarga de los detalles del control del dispositivo de E/S y en el caso de sistemas con varios usuarios trabajando simultáneamente, el S.O. brinda los mecanismos de control para el acceso a los archivos. Acceso al sistema. Las funciones de acceso al sistema brindan protección a los recursos y a los datos, ante usuarios no autorizados y debe resolver los conflictos en la propiedad de los recursos. Detección y respuesta a errores. El S.O. debe dar una respuesta que elimine la condición de error con el menor impacto posible sobre las aplicaciones que están en ejecución. La respuesta puede ser desde terminar el programa que produjo el error, hasta reintentar la operación o, simplemente informar del error a la aplicación. Contabilidad. Un buen sistema operativo debe recoger estadística de utilización de los diversos recursos y supervisar los parámetros de rendimiento tales como el tiempo de respuesta. 3

4 1.3 Clasificación de los sistemas operativos Con el paso del tiempo, los sistemas operativos fueron clasificándose de diferentes maneras, dependiendo del uso o de la aplicación que se les da. Hoy en día los sistemas los podemos clasificar en dos grandes grupos, los sistemas operativos para computadoras (ya sea para uno o varios procesadores) y los sistemas operativos para dispositivos móviles. A continuación se muestran una clasificación para los sistemas operativos de computadoras, y algunas de sus características. Sistemas Operativos por Lotes Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna interacción entre los usuarios y los programas en ejecución. Se reúnen todos los trabajos comunes para realizarlos al mismo tiempo, evitando la espera de dos o más trabajos como sucede en el procesamiento en serie. Estos sistemas son de los más tradicionales y antiguos, y fueron introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los programas. Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecución muy alto, porque el procesador es mejor utilizado y pueden ser simples, debido a la secuenciabilidad de la ejecución de los trabajos. Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual está orientado a procesamiento científico pesado, y el EXEC II para el UNIVAC 1107, orientado a procesamiento académico. Algunas otras características son: Requiere que el programa, datos y órdenes al sistema sean remitidos todos juntos en forma de lote. Permiten poca o ninguna interacción usuario/programa en ejecución. Mayor potencial de utilización de recursos que procesamiento serial simple en sistemas multiusuarios. No conveniente para desarrollo de programas por bajo tiempo de retorno y depuración fuera de línea. Conveniente para programas de largos tiempos de ejecución. Se encuentra en muchos computadores personales combinados con procesamiento serial. Planificación del procesador sencilla, típicamente procesados en orden de llegada. Planificación de memoria sencilla, generalmente se divide en dos: parte residente del S.O. y programas transitorios. No requieren gestión crítica de dispositivos en el tiempo. Suelen proporcionar gestión sencilla de manejo de archivos: se requiere poca protección y ningún control de concurrencia para el acceso. Sistemas Operativos de Tiempo Real Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario, sino los procesos. Por lo general, están subutilizados sus recursos con la finalidad de prestar atención a los procesos en el momento que lo requieran. Se utilizan en entornos donde son procesados un gran número de sucesos o eventos. Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy específicas como control de tráfico aéreo, bolsas de valores, control de refinerías, control 4

5 de laminadores. También en el ramo automovilístico y de la electrónica de consumo. Otros campos de aplicación de los Sistemas Operativos de tiempo real son los siguientes: Control de trenes. Telecomunicaciones. Sistemas de fabricación integrada. Producción y distribución de energía eléctrica. Control de edificios. Sistemas multimedia. Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS, Spectra, RTLinux. Los Sistemas Operativos de tiempo real, cuentan con las siguientes características: Se dan en entornos en donde deben ser aceptados y procesados gran cantidad de sucesos, la mayoría externos al sistema computacional, en breve tiempo o dentro de ciertos plazos. Se utilizan en control industrial, conmutación telefónica, control de vuelo, simulaciones en tiempo real, aplicaciones militares, etc. Procesa ráfagas de miles de interrupciones por segundo sin perder un solo suceso. Proceso se activa tras ocurrencia de suceso, mediante interrupción. Proceso de mayor prioridad expropia recursos. Por tanto generalmente se utiliza planificación expropiativa basada en prioridades. Administración de memoria menos exigente que tiempo compartido, usualmente procesos son residentes permanentes en memoria. Población de procesos estática en gran medida. Poco movimiento de programas entre almacenamiento secundario y memoria. Sistemas Operativos de multiprogramación ( Multitarea) Se distinguen por sus habilidades para poder soportar la ejecución de dos o más trabajos activos al mismo tiempo. Esto trae como resultado que la Unidad Central de Procesamiento siempre tenga alguna tarea que ejecutar, aprovechando al máximo su utilización. Su objetivo es tener a varias tareas en la memoria principal, de manera que cada uno está usando el procesador, o un procesador distinto, es decir, involucra máquinas con más de una CPU. Todos los sistemas operativos actuales soportan multitareas. UNIX, MACOS, LINUX, Windows, solo por mencionar los más conocidos. Las características de un Sistema Operativo de multiprogramación o multitarea son las siguientes: Mejora productividad del sistema y utilización de recursos. Multiplexa recursos entre varios programas. Generalmente soportan múltiples usuarios (multiusuarios). 5

6 Proporcionan facilidades para mantener el entorno de usuarios individuales. Requieren validación de usuario para seguridad y protección. Proporcionan contabilidad del uso de los recursos por parte de los usuarios. Sistemas Operativos Distribuidos. Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores esté en un equipo o en diferentes, en este caso es trasparente para el usuario. Existen dos esquemas básicos de éstos. Un sistema fuertemente acoplado es a es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local. Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone otro componente debe de ser capaz de reemplazarlo. Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc. Características de los Sistemas Operativos distribuidos: Colección de sistemas autónomos capaces de comunicación y cooperación mediante interconexiones hardware y software. Transparentes. Generalmente proporcionan medios para la compartición global de recursos. Servicios añadidos: denominación global, sistemas de archivos distribuidos, facilidades para distribución de cálculos. Sistemas Operativos de Red Son aquellos sistemas que mantienen a dos o más computadoras unidas a través de algún medio de comunicación (físico o no), con el objetivo primordial de poder compartir los diferentes recursos y la información del sistema. Sistemas Operativos Paralelos En estos tipos de Sistemas Operativos se pretende que cuando existan dos o más procesos que compitan por algún recurso se puedan realizar o ejecutar al mismo tiempo. En UNIX existe también la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva, simulando paralelismo (es decir, atender de manera concurrente varios procesos de un mismo usuario). Así, en lugar de esperar a que el proceso termine de ejecutarse (como lo haría normalmente), regresa a atender al usuario inmediatamente después de haber creado el proceso. 6

7 1.4 Sistemas Operativos para dispositivos móviles Por otra parte, se tiene actualmente los sistemas operativos de los dispositivos móviles, como son: Android, Iphone OS, BlackBerry OS, Symbian, PalmOS, aunque los dos últimos y han dejado de estar presente dado que fueron absorbidos por los tres primeros. Symbian Symbian es un SO que estaba incorporado en los celulares Nokia, su Core es común a todos los dispositivos, cuenta con: kernel, servidor de archivos, administración de memoria, y manejadores de drives. Cuenta con una capa de sistema de comunicación como: TCP/IP, IMAP4, SMS y un administrador de base de datos; Software para la interfaz con el usuario y un conjunto de aplicaciones. En Symbian cada proceso se ejecuta en un espacio de dirección protegido, así como también el kernel tiene su propio espacio protegido. Por lo cual permite que varios procesos sean ejecutados en forma concurrentes. Symbian está escrito en C++, así que es natural el desarrollo de aplicaciones en este lenguaje, aunque también admite el desarrollo en Java. El sistema es multitarea, y cuenta con un hilo principal, el cual se encarga de desprender nuevos hilos para las diferentes actividades a realizar. iphone iphone fue creado a partir del Mac OS X, para ser el sistema operativo nativo de los smartphone iphone, dispositivos touch ipod, y después para las tables ipad. La arquitectura del model de iphone está formada por los siguientes elementos: Capa de aplicaciones, formada por las aplicaciones nativas (calendario, fotos, camara, etc..) y aplicaciones instaladas por el cliente, desarrolladas por un tercero. Capa de Middleware, formada por tres subcapas o Cocoa Touch, este es un framework que proporciona infraestructura necesaria para los desarrolladores o Media, formada por aplicaciones graficas, framework de audio y video para o crear aplicaciones multimedias. Core Services, proporciona el sistema de servicio fundamental que todas las aplicaciones usan de forma directa o indirecta vía un framework de nivel alto. Los framework de address book, core data SQLite library, y Core Location son algunos de los componentes de esta capa. Kernel, formado entre otras cosas por los drivers, framework de seguridad, CFNetwork. 7

8 BlackBerry El SO BlackBerry es una plataforma de software desarrollada por Research In Motion (RIM) para sus dispositivos smartphone liberados en El SO cuenta con las siguientes caracteisticas: Es multitareas, El kernel está basado en Java, Utiliza una arquitectura ARM, El administrador de memoria divide está en tres secciones: Memoria para aplicaciones, Memoria del dispositivo, Memoria de la tarjeta (opcional) Android Android es otro sistema operativo para dispositivos mooviles, el cual tiene las siguientes características: Almacenamiento, usa SQLite para el alacenamiento de datos. Conectividad, soporta GSM/EDGE, IDEN, CDMA, UMTS, Bluetooth, Wifi, LTE, WiMax. Web Browser, Basado en WebKit open-source. Media, incluye soporte de: H.263, H.264, MPEG-4 SP, AMR, AMR-WB, AAC, HE-AAC, MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF y BMP. Soporte de Hardware, Sensor acelerometro, camara, brújula digital, sensor de aproximación, y GPS Multi touch, pantalla multi touch Multitareas, soporta aplicaciones multitareas. Tethering o pasarela En runtime contiene librerias Core y la máquina virtual Dalvik En el kernel que es Linux contiene: Driver Display, Driver de Camara, Driver de Memoria Flash, Driver binder (IPC), Driver Keypad, Driver Wifi, Driver de Audio, Administrador de energía Android está basado en Linux, cuenta con un administrador de memoria, administrador de procesos, mecanismos IPC. En 2005 Google para entrar en la competencia de moviles, propone Androind, sistema operativo basado en una versión modificada de Linux, colocando así a Android como un sistema abierto y libre. Por lo que Android es liberado con una licencia Apache Open-Source. 8

9 1.5 Partes claves de los sistemas operativos Los procesos La gestión de memoria La seguridad y la protección de la información La planificación y la gestión de recursos La estructura del sistema Los errores frecuentes en los procesos son: Sincronización incorrecta: Es frecuente el caso en el que una rutina debe ser suspendida a la espera de un suceso en cualquier lugar del sistema. Por ejemplo, un programa inicia una lectura de E/S y debe esperar hasta que los datos están disponibles en un buffer antes de continuar. En tales casos se requiere alguna señal proveniente de alguna otra rutina. Fallos de exclusión mutua: Es habitual el caso en que más de un usuario o programa intenta a la vez hacer uso de un recurso compartido. Por ejemplo, en un sistema de reservas de líneas aéreas. Si no se controlan estos accesos, puede producirse un error. Debe existir algún tipo de mecanismo de exclusión mutua que permita que sólo una rutina a la vez pueda realizar una transacción sobre una determinada parte de los datos. Funcionamiento no determinista del programa: Los resultados de un programa en particular deben depender normalmente sólo de la entrada del programa y no de las actividades de otros programas en un sistema compartido. Pero cuando los programas comparten memoria y sus ejecuciones son intercaladas por el procesador, entonces pueden interferir con otros, sobre escribiendo zonas comunes de memoria de forma incierta. Así pues, el orden en que se organiza la ejecución de varios programas puede influir en los resultados de un programa en particular. Interbloqueos: Es posible que dos o más programas estén suspendidos a la espera uno del otro. El S.O. tiene cinco responsabilidades principales en la administración de almacenamiento: Aislamiento del proceso: El sistema operativo debe procurar que cada proceso independiente no interfiera con los datos y la memoria de ningún otro. Asignación y gestión automática: A los programas se les debe asignar memoria dinámicamente en la jerarquía de memoria, según la vayan necesitando. Este proceso debe ser transparente para el programador. Soporte para la programación modular: Los programadores deben ser capaces de definir módulos de programa y de crear, destruir y alterar el tamaño de los módulos dinámicamente. Protección y control de acceso: El s.o. debe permitir que las secciones de memoria estén accesibles de varias maneras para los diversos usuarios. Almacenamiento a largo plazo: Muchos usuarios y aplicaciones necesitan medios para almacenar información por largos periodos de tiempo. Normalmente, los s.o. satisfacen estos requisitos mediante la memoria virtual y los servicios del sistema de archivos. La memoria virtual es un servicio que permite a los programas direccionar la memoria desde un punto de vista lógico, sin depender del tamaño de la memoria principal física disponible. 9

10 El crecimiento de la utilización de los sistemas de tiempo compartido y, las redes de computadoras ha traído consigo un aumento en las preocupaciones de seguridad y protección de información. Se han identificado cuatro clases de políticas generales de protección, en orden creciente de dificultad: No compartición: Los procesos están completamente aislados uno del otro y cada proceso tiene control exclusivo sobre los recursos que le fueron asignados estática o dinámicamente. Con esta política, los procesos suelen compartir los programas o archivos de datos haciendo copias y pasándolas a su propia memoria virtual. Compartiendo los originales de los programas o archivos de datos: Una única copia física de un programa puede aparecer en varios espacios de memoria virtual como archivos de sólo lectura. Subsistemas confinados o sin memoria: En este caso, los procesos se agrupan en subsistemas para cumplir una política de protección en particular. Por ejemplo, un proceso cliente llama a un proceso servidor para llevar a cabo cierta tarea con los datos. El servidor se protegerá de que el cliente descubra el algoritmo con el cual se lleva a cabo su trabajo y el cliente se protegerá de que el servidor retenga alguna información sobre el trabajo que está llevando a cabo. Diseminación controlada de la información: A los usuarios y a las aplicaciones se les dan credenciales de seguridad de un cierto nivel, mientras que a los datos y a otros recursos (p.e. los dispositivos de E/S) se les dota de clasificaciones de seguridad. La política de seguridad hace cumplir las restricciones relativas a qué usuarios tiene acceso a qué clasificaciones. Control de acceso: Tiene que ver con la regulación del acceso del usuario al sistema completo, a los subsistemas y a los datos, así como a regular el acceso de los procesos a los recursos y objetos del sistema. Control del flujo de información: Regula el flujo de datos dentro del sistema y su distribución a los usuarios. Certificación: Es relativa a la demostración de que el acceso y los mecanismos de control del flujo se llevan a cabo de acuerdo a las especificaciones y a que estas cumplen las políticas de protección y seguridad deseadas. Una tarea clave del s.o. es administrar los recursos que tiene disponibles y planificar su utilización por parte de los diferentes procesos activos. Cualquier política de planificación y administración de recursos cuenta con los tres factores siguientes: Equidad: Sería conveniente que a todos los procesos que compitan por el uso de un recurso se les otorgue un acceso igualitario y equitativo, especialmente si estos procesos pertenecen a la misma clase. Sensibilidades diferenciales: El sistema operativo debe intentar tomar decisiones de asignación y planificación que satisfagan la totalidad de los requisitos. El s.o. debe contemplar estas decisiones dinámicamente. Por ejemplo, si un proceso está esperando por el uso de un dispositivo de E/S, el s.o. puede querer planificar la ejecución de dicho proceso tan pronto como sea posible y así tener disponible al dispositivo para las demandas de otros procesos. Eficiencia: El s.o. debe intentar maximizar la productividad, minimizar el tiempo de respuesta y, en el caso de tiempo compartido, alojar a tantos usuarios como sea posible. 10

11 La tarea de planificación y gestión de recursos es básicamente un problema de investigación operativa, así que se pueden aplicar los resultados matemáticos de esta disciplina. Hablemos ahora de la parte clave de un sistema operativo, la Estructura del sistema. El tamaño de un sistema operativo completo y la dificultad de las tareas que lleva a cabo plantean tres problemas desafortunados pero demasiado habituales: Los sistemas operativos cuando se entregan ya están cronológicamente retrasados. Esto conduce a nuevos sistemas operativos y actualizaciones de los anteriores. Los sistemas tienen fallos latentes que se manifiestan en el terreno y que deben ser detectados y corregidos. Su rendimiento no es a menudo el que se esperaba. Tabla 1-1. Jerarquía del Diseño de un Sistema Operativo. Nivel Nombre Objetos Ejemplos de operaciones 13 Shell Entorno de programación Sentencias de un lenguaje de del usuario. shell 12 Procesos de usuario Procesos de usuario. Salir, eliminar, suspender, reanudar. 11 Directorios Directorios. Crear, destruir, conectar, desconectar, buscar, listar 10 Dispositivos Dispositivos externos tales como impresoras, Crear, destruir, abrir, cerrar, leer, escribir pantallas y teclados. 9 Sistema de archivos Archivos. Crear, destruir, abrir, cerrar, leer, escribir 8 Comunicaciones Tubos (pipes). Crear, destruir, abrir, cerrar, leer, escribir 7 Memoria virtual Segmentos, páginas. Leer, escribir, traer (fech) 6 Almacenamiento Bloques de datos, Leer, escribir, asignar, liberar secundario local canales de dispositivos. 5 Procesos primitivos. Procesos primitivos, semáforos, colas de procesos listos. Suspender, reanudar, esperar, señalizar. 4 Interrupciones Programas de tratamiento Invocar, enmascarar, de interrupciones. desenmascarar, reintentar. 3 Procedimientos. Procedimientos, pila de Marcar la pila, llamar, retornar. llamadas, visualización. 2 Conjunto de instrucciones Evaluación de la pila, intérprete de Cargar, almacenar, sumar, restar, bifurcar. microprogramas, vectores de datos y escalares. 1 Circuitos electrónicos Registros, puertas, buses, Borrar, transferir, activar, etc. completar. 11

12 Capítulo 2 Procesos e Hilos Un proceso es una entidad en ejecución que tiene asociada un identificador para poder ser identificado. En el sistema se cuenta con procesos pesados, llamados hijos, y procesos ligeros, llamados hilos. 2.1 PROCESOS Todos los sistemas de multiprogramación están construidos en torno al concepto de procesos. El modelo más sencillo que puede construirse tiene en cuenta que, en un momento dado, un proceso puede estar ejecutándose en el procesador o no. Así pues, un proceso puede estar en uno de dos estados: Ejecución o No ejecución (Figura 2-1). Figura 2-1. Diagrama de transición de estados. Aún en este modelo tan simple se puede apreciar algunos de los elementos del diseño del sistema operativo, cada proceso debe representarse de forma que el sistema operativo pueda seguirle la pista. Esto es, debe haber información relativa a cada proceso, incluyendo su estado actual y su posición en memoria. Aquellos procesos que no están ejecutándose tiene que guardarse en algún tipo de cola, para que esperen su turno de ejecución (Figura 2-2). La vida de un proceso está limitada por su creación y su terminación. 12

13 Figura 2-2. Diagrama de colas. Creación de procesos Cuando se añade un proceso a los que ya está administrando el sistema operativo hay que construir las estructuras de datos que se utilizan para administrar el proceso y asignar el espacio de direcciones que va a utilizar el proceso. Existen cuatro sucesos comunes que llevan a la creación de un proceso: En un entorno de trabajo por lotes, un proceso se crea como respuesta a la remisión de un trabajo. En un entorno interactivo, se crea un proceso cuando un nuevo usuario intenta conectarse. Proceso generado por un proceso existente. Creado por el S.O. para dar un servicio. Cuando un proceso genera otro, el proceso generador se conoce como proceso padre y el proceso generado es el proceso hijo. Normalmente, estos procesos emparentados necesitarán comunicarse y cooperar entre sí. Terminación de procesos En cualquier sistema, debe haber alguna forma de que un proceso pueda indicar que ha terminado (vea Tabla 2-1). Terminación normal Tiempo límite excedido No hay memoria disponible. Violación de límites. Error de protección. Error aritmético. Tabla 2-1. Terminación de proceso. Razones para terminación de un proceso El proceso ejecuta una llamada a un servicio del SO que indica que ha terminado de ejecutarse. El proceso se ha ejecutado por más del límite especificado. El proceso necesita más memoria de la que el sistema le puede proporcionar. El proceso trata de acceder a una posición de memoria a la que no le está permitido. El proceso intenta utilizar un recurso o un archivo que no le está permitido utilizar, o trata de utilizarlo de forma incorrecta, como escribir en un archivo que es sólo de lectura. El proceso intenta hacer un cálculo prohibido, o trata de almacenar un número mayor del que el hardware acepta. 13

14 Tiempo máximo de espera rebasado. Fallo de E/S Instrucción privilegiada. Intervención del operador o del SO. Terminación del padre. Solicitud del padre. El proceso ha esperado más allá del tiempo máximo especificado para que se produzca cierto suceso. Se produce un error en la entrada o la salida, tal como no encontrar un archivo, un fallo de lectura o escritura después de un número máximo de intentos. El proceso intenta usar una instrucción reservada para el SO. Por alguna razón el operador o el sistema operativo terminan con el proceso. Cuando un proceso padre finaliza, el SO. Puede diseñarse para terminar automáticamente con todos sus descendientes. Un proceso padre tiene normalmente la autorización de terminar con cualquiera de sus descendientes. Identificadores de procesos Todo proceso tiene asociado un identificador (número positivo PID) y un padre con su respectivo identificador (número de proceso que ha creado al proceso actual PPID). Para obtener estos valores se utilizan los llamados getpid y getppid, respectivamente. Los procesos pueden estar agrupados en conjuntos que tienen alguna característica en común, como ejemplo el mismo padre. Para determinar a que grupo pertenece un proceso, se utiliza getpgrp, y para cambiar a un proceso como líder de un grupo se hace uso del llamado setpgrp. PROTOTIPO DE LA FUNCIÓN #include <sys/types.h>! #include <unistd.h>! pid_t getpgrp(void);! pid_t setpgrp(void); Se debe tener en consideración que cuando el proceso padre llega a morir antes que los hijos, el PPID del proceso hijo toma el valor de 1, que es el proceso init. Estado de un proceso (modelo de cinco estados) Si todos los procesos estuvieran siempre listos para ejecutar, entonces la disciplina de cola propuesta anteriormente sería eficaz, sin embargo, aún en el simple ejemplo que se ha descrito, esta implementación no es adecuada: algunos procesos en el estado de No Ejecución están listos para ejecutar, mientras que otros están bloqueados, esperando a que termine una operación de E/S. Así pues, utilizando una cola sencilla, el distribuidor podría no seleccionar exactamente el proceso que está en el extremo más antiguo de la 14

15 cola. Más bien, el distribuidor tendría que recorrer la lista buscando el proceso que no esté no bloqueado y que lleve más tiempo en la cola. Una forma más natural de afrontar esta situación es dividir el estado de No Ejecución en dos estados: Listo y Bloqueado. De esta forma contamos ahora con cinco estados (Figura 2-3): Ejecución. Proceso que está actualmente en ejecución. Listo. Proceso que está preparado para ejecutar, en cuanto se le dé la oportunidad. Bloqueado. Proceso que no puede ejecutarse hasta que se produzca cierto suceso, como la terminación de una operación de E/S. Nuevo. Proceso que se acaba de crear, pero que aún no ha sido admitido por el sistema operativo en el grupo de procesos ejecutables. Terminado. Proceso que ha sido excluido del grupo de procesos ejecutables, bien porque se detuvo o porque fue abandonado por alguna razón. Seleccionado para ejecución Ejecutado Terminación normal/anormal Nuevo Proceso creado Listo Tiempo terminado Solicitud de E/S Hecho E/S completa Bloqueado Figura 2-3. Diagrama de estado para un sistema operativo sencillo. Un proceso puede moverse voluntariamente al estado bloqueado haciendo una llamada a una función como sleep. EJERCICIO PROPUESTO 1. Investigue los procesos activos en su sistema. a) Que instrucción le permite visualizarlos? b) Qué parámetros son utilizados con dicha instrucción? 2. En el sistema Linux, investigue el uso del comando ps, y del comando top a) Cuál es la diferencia entre ellos? b) Cuál es el proceso 1? 15

16 c) Quién es el padre del proceso 1? Creación de procesos en Linux Linux crea los procesos a través de una llamada fork al sistema, copiado la imagen en memoria que tiene el proceso padre. El nuevo proceso recibe una copia del espacio de direcciones del padre. Los procesos continúan su ejecución en la instrucción que está después del fork. PROTOTIPO DE LA FUNCIÓN! #include <sys/types.h>! #include <unistd.h>! pid_t fork(void); La creación de dos procesos totalmente idénticos no es algo muy útil. El valor devuelto por fork es la característica distintiva, importante, que permite que el padre y el hijo ejecuten código distinto. El fork devuelve 0 al hijo y el ID del hijo al padre. EJEMPLO. En el siguiente fragmento de código tanto el padre como el hijo ejecutan la instrucción de asignación x =1 después del regreso de fork. #include <sys/types.h> #include <unistd.h> x = 0; fork(); x = 1; fork crea procesos nuevos haciendo una copia de la imagen del padre en la memoria. El hijo hereda la mayor parte de los atributos del padre, incluyendo el ambiente y los privilegios. El hijo también hereda algunos de los recursos del padre, tales como los archivos y dispositivos abiertos. No todos los atributos o recursos del padre son heredados por el hijo. Este último tiene un ID de proceso nuevo y, claro que es diferente del ID del padre. Los tiempos del hijo para el uso del CPU son iniciados a 0. El hijo no obtiene los 16

17 bloqueos que el padre mantiene. Si el padre ha colocado una alarma, el hijo no recibe notificación alguna del momento en que ésta expira. El hijo comienza sin señales pendientes, aunque el padre las tenga en el momento en que se ejecuta el fork. Aunque el hijo hereda la prioridad del padre y los atributos de la administración de procesos, tiene que competir con otros procesos, como entidad aparte, por el tiempo del procesador. El identificador del proceso se recupera por medio de la instrucción getpid(), y el identificador del proceso que es su padre por medio de la instrucción getppid(). Los prototipos de estas instrucciones son las siguientes. PROTOTIPO DE LA FUNCIÓN #include <sys/types.h>! #include <unistd.h>! pid_t getpid(void); PROTOTIPO DE LA FUNCIÓN #include <sys/types.h>! #include <unistd.h>! pid_t getppid(void); El tipo de dato pid_t representa el ID del proceso. De esta manera se puede obtener el ID del proceso invocando getpid; y la función getppid retorna el ID del proceso padre del proceso actual. El tipo de dato pid_t es un tipo entero con signo el cual representa el ID del proceso. En la librería GNU C, esto es un int. EJEMPLO. En el siguiente ejemplo después de la llamada fork, los procesos padre e hijo imprimen sus identificadores. #include <stdio.h> #include <sys/types.h> #include <unistd.h> 17

18 pid_t hijo; void main (void) if ( (hijo = fork ( )) = = 0) fprintf (stderr, soy el hijo, ID= %ld\n, (long)getpid()); /* Aquí coloca el código que deseas que realice el proceso hijo */ else if (hijo > 0) fprintf (stderr, soy el padre, ID = %ld\n, (long)getpid()); /* Aquí coloca el código que deseas que realice el proceso padre */ EJEMPLO. Con el siguiente fragmento de código se crea una cadena de n procesos. #include <stdio.h> #include <sys/types.h> #include <unistd.h> int i, n; pid_t hijo; void main (void) for (i = 1; i < n; i++) if (hijo = fork()) break; /* mientras no sea diferente de cero, es decir, no exista error */ fprintf (stderr, Este es el proceso %ld con padre %ld \n, (long)getpid(), (long)getppid()); EJEMPLO. El siguiente fragmento de código crea un abanico de procesos. #include <stdio.h> #include <sys/types.h> #include <unistd.h> int i, n; pid_t hijo; void main (void) for (i = 1; i < n; i++) if (hijo = fork() <=0) break; /* después de crear un proceso, el proceso creador termina */ fprintf (stderr, Este es el proceso %ld con padre %ld \n, (long)getpid(), (long)getppid()); 18

19 El sistema de llamada wait () Qué sucede con el proceso padre después de que éste crea un hijo? Tanto el padre como el hijo continúan la ejecución desde el punto donde se hace la llamada a fork. Si el padre desea esperar hasta que el hijo termine, entonces debe ejecutar una llamada a wait o a waitpid. PROTOTIPO DE LA FUNCIÓN #include <sys/types.h> #include <sys/wait.h> pid_t wait (int *stat_loc) La llamada al sistema wait detiene el proceso que llama hasta que un hijo de éste termine o se detenga, o hasta que el proceso que la invocó reciba una señal. wait regresa de inmediato si el proceso no tiene hijos o si el hijo termina o se detiene y aún no se ha solicitado la espera. Si wait regresa debido a la terminación de un hijo, el valor devuelto es positivo e igual al ID de proceso de dicho hijo. De lo contrario, wait devuelve 1 y pone un valor en errno. Si errno es igual a ECHILD, indica que no existen procesos hijos a los cuales hay que esperar. Si errno es igual a EINTR, la llamada fue interrumpida por una señal. stat_loc es un apuntador a una variable entera. Después del llamado a wait, el estado de la información almacenada en la localidad apuntada por stat_loc puede ser analizada aplicando los siguiente macros: WIFEXITED (*stat_loc). Si en la evaluación el valor no es cero (true) entonces el proceso hijo termino normal. WEXITSTATUS (*stat_loc). Si el proceso hijo termina normalmente, este macro evalúa los 8 bits mas bajos del valor pasado por la función exit, _exit o return desde la función main. WIFSIGNALED (*stat_loc). Si en la evaluación el valor no es cero (true) el proceso hijo termino porque recibió una señal no controlada. WTERMSIG (*stat_loc). Si el proceso hijo finaliza por una señal que no fue capturada, este macro evalúa el número de la señal. El hijo regresa su estado llamando a exit, _exit o return. Por otra parte cuando se necesite esperar que un proceso especifico termine, se debe utilizar la función waitpid la cual suspende la ejecución del proceso en curso hasta que el hijo especificado por el argumento pid ha terminado, o hasta que se produce una señal 19

20 cuya acción es finalizar el proceso actual o llamar a la función manejadora de la señal. PROTOTIPO DE LA FUNCIÓN #include <sys/types.h> #include <sys/wait.h> pid_t waitpid (pid_t pid, int *status, int options) *status es la localidad en la cual se devuelve la información del estado de terminación del hijo, pid contiene un valor que puede ser, -1 para indicar que espera a cualquier hijo, positivo indica que debe esperar al proceso cuyo PID sea ese número, 0 para indicar que espere a cualquier hijo cuyo Process Group ID sea igual al del proceso que invoco el llamado, negativo indica que espere a cualquier proceso cuyo Process Group ID sea igual al valor absoluto de PID. En options se coloca una combinación de las siguientes banderas: WEXITED que espera por hijos que hayan terminado, WSTOPPED que espera por hijos que hayan sido parados por recibir una señal, WNOHANG que no espera por un hijo que esta en ejecución, WNOWAIT deja al hijo sin modificar ni marcar en la tabla de procesos, tal que una posterior llamada se comportaría como si no hubiésemos hecho wait por dicho hijo, WUNTRACED que no esperar si el hijo está parado a no ser que este siendo trazado, WCONTINUED volver si un hijo ha continuado ejecutándose tras mandarle la señal SIGCONT. Las banderas WUNTRACED y WCONTINUED solo son efectivas si SA_NOCLDSTOP no ha sido establecida para la señal SIGCHLD. Terminación de procesos Como se ha visto el proceso debe terminar de alguna manera, es decir, de forma normal o anormal. Lo que se desea es una terminación normal, en el mejor de los casos, para esto el proceso debe hacer un llamado a la función exit. Esta función se encarga de retirar los recursos que está utilizando el proceso, así como dejarlo preparado para su eliminación, quitarlo del planificador e indicar su terminación a su padre, por medio de la señal SIGCHLD. Para pasar de un estado a otro se define un estado transitorio que en el sistema se le llama zombie. En linux si el proceso que termina no tuviera padre, ya que este acabó antes que él, se eliminaría directamente del planificador en la llamada exit, y es adoptado por el proceso 1 (init). 20

21 PROTOTIPO DE LA FUNCIÓN #include <stdlib.h> void exit (int status) El llamado a exit () termina la ejecución del proceso y devuelve el valor de estatus al proceso padre. Desde el sistema en Linux se puede consultar lo que devuelve el último proceso que finaliza por medio de la variable de entorno?. Ejemplo. Programa que muestra el empleo de wait. #include <sys/types.h> #include <sys/wait.h> #include <unistd.h> #include <stdio.h> main() pid_t hijo; int estado; if ( (hijo=fork()) == -1) perror ("fallo el fork"); exit (1); else if (hijo == 0) fprintf (stderr, "soy el hijo con pid = %ld \n", (long) getpid()); else if (wait(&estado)!=hijo) fprintf (stderr, "una señal debio interrumpir la espera \n"); else fprintf (stderr, "soy el padre con pid = %ld e hijo con pid = %ld\n", (long)getpid(),(long)hijo); exit(0); Descripción de procesos El Sistema Operativo es el controlador de los sucesos que se producen en un sistema de computo. Es el Sistema Operativo el que planifica y expide a los procesos para su ejecución en el procesador, el que asigna los recursos a los procesos y el que 21

22 responde a las solicitudes de servicios básicos realizadas por los programas de usuario. Este concepto queda ilustrado en la Figura 2-4. Tabla de memoria Imagen del proceso Memoria Dispositivos Archivos Procesos Tabla de E/S Tabla de archivos Tabla de procesos proceso 1 proceso 2 proceso 3. proceso n Proceso 1 Imagen del proceso Proceso n Figura 2-4. Procesos y recursos. 2.2 Estructuras de control del sistema operativo Si el Sistema Operativo va a administrar los procesos y los recursos, entonces tiene que disponer de información sobre el estado actual de cada proceso y de cada recurso. El método universal para obtener esta información es sencillo: el sistema operativo construye y mantiene tablas de información sobre cada entidad que esté administrando. P1 P2 Pn Memoria Virtual Recursos Procesador E/S E/S E/S Memoria Principal Figura 2-5. Procesos y recursos. Debemos tener claro que las tablas deben estar enlazadas o disponer de referencias cruzadas de alguna manera. La memoria, la E/S y los archivos son administrados en nombre de los procesos, por lo que debe haber alguna referencia directa o indirecta a estos recursos en la tablas de procesos. Los archivos que son referidos en las tablas de archivos son accesibles a través de un dispositivo de E/S y, algunas veces, estarán en memoria principal o en memoria virtual (Figura 2-5). 22

23 Operaciones sobre procesos Los sistemas que administran procesos deben ser capaces de realizar ciertas operaciones sobre los procesos y con ellos. Tales operaciones incluyen: Crear un proceso Destruir un proceso Suspender un proceso Reanudar un proceso Cambiar la prioridad de un proceso Bloquear un proceso Despertar un proceso Despachar un proceso Permitir que un proceso se comunique con otro (comunicación entre procesos) Crear un proceso implica operaciones tales como: Dar un nombre al proceso Insertarlo en la lista de procesos conocidos del sistema (o tabla de procesos) Determinar la prioridad inicial del proceso Crear el bloque de control de proceso Asignar los recursos iniciales al proceso. 2.3 Sistema de llamada exec La llamada fork al sistema crea una copia del proceso que la llama. Muchas aplicaciones requieren que el proceso hijo ejecute un código diferente del de su padre. La familia exec de llamadas al sistema proporciona una característica que permite traslapar al proceso que llama con un módulo ejecutable nuevo. La manera tradicional de utilizar la combinación fork-exec es dejar que el hijo ejecute el exec para el nuevo programa mientras el padre continúa con la ejecución del código original. Existen seis variaciones de la llamada exec al sistema, las cuales se distinguen por la forma en que son pasados los argumentos de la línea de comando y el ambiente, y por si es necesario proporcionar la ruta de acceso y el nombre del archivo ejecutable. execl (execl, execlp y execle). Pasan los argumentos de la línea de comando como una lista y son útiles si se conoce el número de argumentos de la línea de comando en el momento de la compilación. 23

24 PROTOTIPO DE LA FUNCIÓN #include <unistd.h> int execl (const char *path, const char *arg0,, const char *argn, char * / *NULL*/); int execle (const char *path, const char *arg0,, const char *argn, char * /*NULL*/, const char *envp[]); int execlp (const char *file, const char *arg0,,const char *argn, char */*NULL*/); execv (execv, execvp y execve). Pasan los argumentos de la línea de comando en un arreglo de argumentos. PROTOTIPO DE LA FUNCIÓN #include <unistd.h> int execv (const char *path, const char *argv[]); int execvp (const char *file, const char *argv[]); int execve (const char * path, const char *argv[], const char *envp[]); EJEMPLO. Programa que crea un proceso para ejecutar ls l. #include <sys/types.h> #include <sys/wait.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> main( ) pid_t hijo; int estado; if (( hijo = fork( )) = = -1) perror ( Error al ejecutar fork ); exit (1); 24

25 else if (hijo = = 0) if (execl ( /usr/bin/ls, ls, -l, NULL) < 0) perror ( Falla en la ejecución de ls ); exit (1); else if (hijo! = wait (&estado)) perror ( Se presento una señal antes de la terminación del hijo ); exit (0); NOTA. La función perror muestra un mensaje con el error estándar seguido por el de la última llamada al sistema o la biblioteca que lo produjo. PROTOTIPO DE LA FUNCIÓN #include <stdio.h> int perror ( const char *s) El DIAGRAMA de estado para los procesos de UNIX es bastante complejo. El proceso se está ejecutando en modo usuario. El proceso se está ejecutando en modo kernel. El proceso no se está ejecutando, pero está listo para ejecutarse tan pronto como el kernel lo ordene. El proceso está durmiendo cargado en memoria. El proceso está listo para ejecutarse, pero el swapper (proceso 0) debe cargar el proceso en memoria antes de que el kernel pueda ordenar que pase a ejecutarse. El proceso está durmiendo y el swappper ha descargado el proceso hacia una memoria secundaria (área de swap del disco) para crear espacio en la memoria principal donde poder cargar otros procesos. El proceso está volviendo del modo kernel al modo usuario, pero el kernel se apropia del proceso y hace un cambio de contexto, pasando otro proceso a ejecutarse en modo usuario. El proceso acaba de ser creado y está en un estado de transición; el proceso existe, pero ni está preparado para ejecutarse (estado 3), ni durmiendo (estado 4). Este estado es el inicial para todos los procesos, excepto el proceso 0. El proceso ejecuta la llamada exit y pasa al estado zombi. El proceso ya no existe, pero deja para su proceso padre un registro que contiene el código de salida y 25

26 algunos datos estadísticos tales como los tiempos de ejecución. El estado zombi es el estado final de un proceso. // Colocar figura de estados de los procesos en UNIX 2.4. Hilos Los hilos representan una manera de trabajar con diferentes procesos no emparentados. Para utilizarlos se necesita contar con la librería pthreads que es un estándar de POSIX (Portable Operating System Interface). Para los sistemas UNIX, un estándar de programación C para interface de programación de hilos se encuentra especificada por el estándar IEEE POSIX c. Las implementaciones que se basan en este estándar son referenciados como POSIX threads o Pthreads. La diferencia entre un hilo y un proceso es que los procesos no comparten la misma memoria, mientras que los hilos sí comparten totalmente la memoria entre ellos. Para la creación de los hilos se usan las funciones de la librería pthread o de cualquier otra que soporte threads mientras que para crear procesos usaremos la llamada al sistema fork(). Para compilar programas que hagan uso de la librería pthread, usando GNU cc o GNU Compiler Collection gcc ejecutamos la orden: o cc programa_con_pthreads.c -o programa_con_pthreads -lpthread gcc programa_con_pthreads.c -o programa_con_pthreads -lpthread Tabla 2-2. Lista de llamados en POSIX 1.c. Descripción POSIX Gestión de hilos pthread_create pthread_exit pthread_kill pthread_join pthread_self Exclusión mutua pthread_mutex_init pthread_mutex_destroy pthread_mutex_lock pthread_mutex_trylock pthread_mutex_unlock 26

27 variables de condición pthread_cond_init pthread_cond_destroy pthread_cond_wait pthread_cond_timedwait pthread_cond_signal pthread_cond_broadcast Creación de hilos La función pthread_create es usada para crear un hilo, con ciertos atributos, y esté ejecutará una determinada función o subrutina con los argumentos que se le indique. PROTOTIPO DE LA FUNCIÓN #include <pthread.h> int pthread_create (pthread_t *thread, const pthread_attr_t *attr, void* (*start_routine) (void *), void *arg) Los atributos para un proceso son especificados en attr, si attr es NULL, el atributo por omisión es usado. Si la función se realiza con éxito, se almacena el ID del hilo en la localidad referenciada por thread. El hilo que está creado ejecuta la función o rutina start_routine con arg como su argumento. Si necesitamos pasar o devolver más de un parámetro a la vez, se puede crear una estructura y colocar ahí los campos necesarios. Luego se pasa o se devuelve la dirección de esta estructura como único parámetro. Cuando finaliza start_routine se llama implícitamente a pthread_exit() o su equivalente. El estado de las señales del nuevo hilo será: Se heredará la máscara de señales del hilo creador El conjunto de señales pendientes del nuevo hilo estará vacío. Un hilo termina si: Se llama a pthread_exit(), especificando un valor de estado final que es disponible para otros hilos en el mismo proceso llamando a pthread_join() Realiza un return desde start_routine que es equivalente a pthread_exit() Es cancelado pthread_cancel() El hilo principal ejecuta un return desde main. Causando la terminación de todos los hilos. 27

28 pthread_create retorna 0 en caso de éxito, o un número de error en otro caso, y el contenido de *thread se indefine. Los errores que pueden retornados en errno son: EAGAIN. Insuficiente recursos para crear un hilo, o el límite de los hilos del sistema fueron alcanzados (en Linux vea /proc/sys/kernel/threads-max) EINVAL. Inválido el atributo. EPERM. Política de planificación no permitida y los parámetros de attr. Terminación de un hilo La función pthread_exit() terminará la ejecución del hilo que haga su invocación y hará disponible el valor value_ptr para cualquier join con éxito con el hilo que hace la llamada. PROTOTIPO DE LA FUNCIÓN #include <pthread.h> int pthread_exit (void *value_ptr) Atributos de un hilo La función pthread_attr_init () se encarga de inicializar el objeto de atributos attr del hilo con los valores por defecto utilizado en una implementación. PROTOTIPO DE LA FUNCIÓN #include <pthread.h> int pthread_attr_init ( pthread_attr_t *attr) Destrucción de los atributos de un hilo La función pthread_attr_destroy () se encarga de destruir el objeto de atributos attr del hilo con valores no definidos en una implementación. Un objeto de atributos destruido con función podrá ser inicializado posteriormente con la función pthread_attr_init(). 28

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE CIENCIAS PRACTICA DE PROCESOS HERRAMIENTAS

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE CIENCIAS PRACTICA DE PROCESOS HERRAMIENTAS UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE CIENCIAS PRACTICA DE PROCESOS HERRAMIENTAS Caso 1: 1.- Necesitamos un cd o Dvd para grabar alguna de las versiones de livecd de Linux. 2.- Liga de una

Más detalles

Procesos e Hilos en C

Procesos e Hilos en C Procesos e Hilos en C 6 de febrero de 2012 En esta sesión vamos a escribir programas en lenguaje C que utilicen hilos y procesos para comparar el rendimiento del sistema ante la gestión de unos y otros.

Más detalles

Sistemas Operativos Practica 1: procesos y concurrencia.

Sistemas Operativos Practica 1: procesos y concurrencia. Sistemas Operativos Practica 1: procesos y concurrencia. Objetivos: Introducir al alumno a los conceptos de programa, concurrencia, paralelismo y proceso o tarea. Manejo del concepto de concurrencia haciendo

Más detalles

Sistemas Operativos Práctica 3

Sistemas Operativos Práctica 3 Sistemas Operativos Práctica 3 Ing. Andrés Bustamante afbustamanteg@unal.edu.co Ingeniería de Sistemas Facultad de Ingeniería Universidad de la Amazonia 2009 1. Objetivo El objetivo de la práctica es que

Más detalles

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO Definición y objetivos de un S.O Definición y objetivos del sistema operativo Estructura, componentes y servicios de un S.O Llamadas al sistema

Más detalles

Introducción a los Sistemas Operativos

Introducción a los Sistemas Operativos Introducción a los Sistemas Operativos Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es 1 Índice General Conceptos sobre ordenadores Concepto

Más detalles

Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria

Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria Sistemas operativos UPCO ICAI Departamento de Electrónica y Automática 1 Hasta ahora hemos visto Relación programa-sistema operativo Gestión de memoria Reserva para la ejecución Pilas, heap, memoria de

Más detalles

Herramientas Informáticas I Software: Sistemas Operativos

Herramientas Informáticas I Software: Sistemas Operativos Herramientas Informáticas I Software: Sistemas Operativos Facultad de Ciencias Económicas y Jurídicas Universidad Nacional de La Pampa Sistemas Operativos. Es el software base que permite trabajar como

Más detalles

Threads, SMP y Microkernels. Proceso

Threads, SMP y Microkernels. Proceso Threads, SMP y Microkernels Proceso Propiedad de los recursos a un proceso se le asigna un espacio de dirección virtual para guardar su imagen Calendarización/ejecución sigue una ruta de ejecución la cual

Más detalles

Prácticas de Sistemas Operativos

Prácticas de Sistemas Operativos Prácticas de Sistemas Operativos Toñi Reina, David Ruiz, Juan Antonio Álvarez, Antonio Tallón, Javier Gutiérrez, Pablo Neira, Paco Silveira, Sergio Segura y José Ángel Bernal Boletín 4: Procesos Curso

Más detalles

Sistemas Operativos. Daniel Rúa Madrid

Sistemas Operativos. Daniel Rúa Madrid Sistemas Operativos Daniel Rúa Madrid Qué es? Es un programa que administra el hardware de una computadora. También proporciona las bases para los programas de aplicación y actúa como intermediario entre

Más detalles

ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla

ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla Índice de contenido 1.- Qué es un ordenador?...3 2.-Hardware básico de un ordenador:...3 3.-Software...4 3.1.-Software

Más detalles

Usando el Sistema Operativo

Usando el Sistema Operativo Sistemas Operativos Pontificia Universidad Javeriana Enero de 2010 Los sistemas operativos Los sistemas operativos Perspectivas del Computador Concepto general El sistema operativo es parte del software

Más detalles

Introducción a los Sistemas Operativos

Introducción a los Sistemas Operativos Introducción a los Sistemas Operativos (primera parte) USB Agosto 2012 Introduccion Un ordenador moderno consiste de uno o más procesadores, alguna memoria principal, discos, impresoras, un teclado, una

Más detalles

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía Tema 3 SUBRUTINAS ÍNDICE Definición e instrucciones básicas Soporte para el tratamiento de subrutinas (ejecución de la subrutina y gestión del bloque de activación) Interrupciones vs llamadas a procedimiento

Más detalles

T5-multithreading. Indice

T5-multithreading. Indice T5-multithreading 1.1 Indice Proceso vs. Flujos Librerías de flujos Comunicación mediante memoria compartida Condición de carrera Sección Crítica Acceso en exclusión mutua Problemas Abrazos mortales 1.2

Más detalles

- Bajo que condiciones el algoritmo de planifiación de procesos FIFO (FCFS) resultaría en el tiempo de respuesta promedio más pequeño?

- Bajo que condiciones el algoritmo de planifiación de procesos FIFO (FCFS) resultaría en el tiempo de respuesta promedio más pequeño? Sistemas Operativos. Grado Ingeniería Informática. TGR-2.1 Procesos. Noviembre 2014 Problemas para hacer en clase FIFO cpu C A 1. Dos procesos A y B tienen una ráfaga de CPU de 50 ms y un proceso C tiene

Más detalles

Ejercicio 1: Windows En este primer ejercicio primero vamos a ver que es el Sistema Operativo Windows, qué es un Sistema Operativo y para que sirve.

Ejercicio 1: Windows En este primer ejercicio primero vamos a ver que es el Sistema Operativo Windows, qué es un Sistema Operativo y para que sirve. Ejercicio 1: Windows En este primer ejercicio primero vamos a ver que es el Sistema Operativo Windows, qué es un Sistema Operativo y para que sirve. Antes de todo esto, vamos a ver un video que cuenta

Más detalles

Parte I:Teoría. Tema 3:Introducción a los Sistemas operativos. Instalación

Parte I:Teoría. Tema 3:Introducción a los Sistemas operativos. Instalación Tema 3:Introducción a los Sistemas operativos. Instalación Parte I:Teoría Introducción a los SO Componentes Llamadas al sistema Estructura del Kernel Drivers Esta obra está bajo una licencia Reconocimiento-No

Más detalles

06. GESTIÓN DE PROCESOS Y RECURSOS

06. GESTIÓN DE PROCESOS Y RECURSOS 06. GESTIÓN DE PROCESOS Y RECURSOS MENSAJES Y AVISOS DEL SISTEMA Y EVENTOS DEL SISTEMA Todos estos mensajes, avisos y eventos del sistema, los podemos ver en la herramienta Visor de eventos. Para acceder

Más detalles

Sistemas Operativos. Curso 2014 Estructura de los sistemas operativos

Sistemas Operativos. Curso 2014 Estructura de los sistemas operativos Sistemas Operativos Curso 2014 Estructura de los sistemas operativos Agenda Componentes de un sistema operativo. Servicios del sistema operativo (system services). Llamados a sistema (system calls). Estructura

Más detalles

Manipulación de procesos

Manipulación de procesos Manipulación de procesos Las primeras computadoras solo podían manipular un programa a la vez. El programa tenía control absoluto sobre todo el sistema. Con el desarrollo vertiginoso del hardware ese panorama

Más detalles

1.4.1 Inicio de la computadora por primera vez Hay problemas Causas, síntomas y soluciones a posibles averías...

1.4.1 Inicio de la computadora por primera vez Hay problemas Causas, síntomas y soluciones a posibles averías... Índice INTRODUCCIÓN...11 CAPÍTULO 1. EXPLOTACIÓN DE SISTEMAS MICROINFORMÁTICOS...13 1.1 La arquitectura de los ordenadores...14 1.1.1 La máquina de Turing...14 1.1.2 La arquitectura Harvard...15 1.1.3

Más detalles

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria 1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria Es un sistema tan complejo

Más detalles

FUNDAMENTOS DE INFORMÁTICA. Principios Básicos de Sistemas Operativos. Definición de Sistema Operativo

FUNDAMENTOS DE INFORMÁTICA. Principios Básicos de Sistemas Operativos. Definición de Sistema Operativo UNIVERSIDADE DE VIGO ESCOLA TÉCNICA SUPERIOR DE ENXEÑEIROS INDUSTRIÁIS FUNDAMENTOS DE INFORMÁTICA Principios Básicos de Sistemas Operativos 1 Definición de Sistema Operativo Un sistema operativo es parte

Más detalles

HP - UX. Qué es HP UX?

HP - UX. Qué es HP UX? HP - UX Integrantes: Cisneros Pedraza Christian. Jiménez Nieves José Manuel. Villanueva Armenta Fernando. Qué es HP UX? Hp UX es una variante de Unix creada por los desarrolladores de software de HP. Provee

Más detalles

Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.

Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Tema 5 : Comunicación entre Procesos mediante Tuberías Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Introducción Algunas

Más detalles

CICLOS DEL PROCESADOR

CICLOS DEL PROCESADOR UNIDAD DE CONTROL CICLOS DEL PROCESADOR Qué es un ciclo de búsqueda? Para qué sirve estudiar los ciclos de instrucción de una CPU? Para comprender el funcionamiento de la ejecución de instrucciones del

Más detalles

Servicios del Sistema Operativo (SO)

Servicios del Sistema Operativo (SO) Servicios del Sistema Operativo (SO) Un SO brinda un entorno para ejecutar programas. Este, ofrece servicios a los programas y a los usuarios de dichos programas. Por supuesto, los servicios específicos

Más detalles

Sistemas Operativos. Dr. Luis Gerardo de la Fraga. Departamento de Computación Cinvestav

Sistemas Operativos. Dr. Luis Gerardo de la Fraga.    Departamento de Computación Cinvestav Sistemas Operativos Dr. Luis Gerardo de la Fraga E-mail: fraga@cs.cinvestav.mx http://cs.cinvestav.mx/~fraga Departamento de Computación Cinvestav 12 de junio de 2015 Dr. Luis Gerardo de la Fraga Cinvestav,

Más detalles

La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.

La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual. Manual de Dev-C++ 4.9.9.2 Página 1 de 11 Introducción Dev-C++ es un IDE (entorno de desarrollo integrado) que facilita herramientas para la creación y depuración de programas en C y en C++. Además, la

Más detalles

Pontificia Universidad Católica del Ecuador

Pontificia Universidad Católica del Ecuador 1. DATOS INFORMATIVOS: FACULTAD DE INGENIERÍA ESCUELA DE SISTEMAS MATERIA O MÓDULO: Sistemas Operativos CÓDIGO: IS603.a CARRERA: INGENIERÍA DE SISTEMAS NIVEL: TERCERO No. CRÉDITOS: 4 CRÉDITOS TEORÍA: 4

Más detalles

Sistemas Operativos Tema 5. Procesos. 1998-2012 José Miguel Santos Alexis Quesada Francisco Santana

Sistemas Operativos Tema 5. Procesos. 1998-2012 José Miguel Santos Alexis Quesada Francisco Santana Sistemas Operativos Tema 5. Procesos 1998-2012 José Miguel Santos Alexis Quesada Francisco Santana 1 Contenidos Concepto de proceso Estructuras de datos: BCP y colas de procesos Niveles de planificación

Más detalles

Sistemas Operativos. Pedro Cabalar TEMA III. PROCESOS. Depto. de Computación Universidade da Coruña

Sistemas Operativos. Pedro Cabalar TEMA III. PROCESOS. Depto. de Computación Universidade da Coruña Sistemas Operativos Pedro Cabalar Depto. de Computación Universidade da Coruña TEMA III. PROCESOS. P. Cabalar Sistemas( Operativos Depto. de Computación Universidade Tema da Coruña III. Procesos ) 1 /

Más detalles

Diseño arquitectónico 1ª edición (2002)

Diseño arquitectónico 1ª edición (2002) Unidades temáticas de Ingeniería del Software Diseño arquitectónico 1ª edición (2002) Facultad de Informática objetivo Los sistemas grandes se descomponen en subsistemas que suministran un conjunto relacionado

Más detalles

Definición de Sistema Operativo

Definición de Sistema Operativo Definición de Sistema Operativo El sistema operativo es el programa (o software) más importante de un ordenador. Para que funcionen los otros programas, cada ordenador de uso general debe tener un sistema

Más detalles

Tema 1: Arquitectura de ordenadores, hardware y software

Tema 1: Arquitectura de ordenadores, hardware y software Fundamentos de Informática Tema 1: Arquitectura de ordenadores, hardware y software 2010-11 Índice 1. Informática 2. Modelo de von Neumann 3. Sistemas operativos 2 1. Informática INFORMación automática

Más detalles

Usuario. Programas de Aplicación. Sistema Operativo. Hardware. Figura 1. Sistema de cómputo estructurado por capas.

Usuario. Programas de Aplicación. Sistema Operativo. Hardware. Figura 1. Sistema de cómputo estructurado por capas. Generalidades acerca de los sistemas operativos Hoy en día muchas personas, usan las computadoras de una forma muy fácil, muchos incluso creen que la máquina tiene incorporada todas las potencialidades

Más detalles

Sistemas Operativos Ricardo Sanz

Sistemas Operativos Ricardo Sanz Sistemas Operativos Ricardo Sanz UPM-ASLab Curso 2005-2006 Contenido Qué es un Sistema Operativo? Los primeros sistemas Componentes básicos Sistemas actuales Qué es un Sistema Operativo? Un programa que

Más detalles

Introducción a la Computación. Herramientas Informáticas. Omar Ernesto Cabrera Rosero Universidad de Nariño

Introducción a la Computación. Herramientas Informáticas. Omar Ernesto Cabrera Rosero Universidad de Nariño Introducción a la Computación Omar Ernesto Cabrera Rosero Universidad de Nariño 6 de Julio 2010 Esquema Terminología Informática 1 Terminología Informática Computación e Informática Dato e Información

Más detalles

Qué es un programa informático?

Qué es un programa informático? Qué es un programa informático? Un programa informático es una serie de comandos ejecutados por el equipo. Sin embargo, el equipo sólo es capaz de procesar elementos binarios, es decir, una serie de 0s

Más detalles

SISTEMAS OPERATIVOS Arquitectura de computadores

SISTEMAS OPERATIVOS Arquitectura de computadores SISTEMAS OPERATIVOS Arquitectura de computadores Erwin Meza Vega emezav@unicauca.edu.co Esta presentación tiene por objetivo mostrar los conceptos generales de la arquitectura de los computadores, necesarios

Más detalles

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos PROGRAMACIÓN DE SHELL SCRIPTS EN LINUX El shell es un intérprete de órdenes, pero el shell no es solamente eso; los intérpretes de órdenes de Linux son auténticos lenguajes de programación. Como tales,

Más detalles

Introducción a la Operación de Computadoras Personales

Introducción a la Operación de Computadoras Personales Introducción a la Operación de Computadoras Personales Conceptos básicos de computadoras: Software Dr. Diego García Depto. de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur, Bahía

Más detalles

Tema 2 Introducción a la Programación en C.

Tema 2 Introducción a la Programación en C. Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes

Más detalles

Memoria. Organización de memorias estáticas.

Memoria. Organización de memorias estáticas. Memoria 1 Memoria Organización de memorias estáticas. 2 Memoria En memoria físicas con bus de datos sea bidireccional. 3 Memoria Decodificación en dos niveles. 4 Necesidad de cantidades ilimitadas de memoria

Más detalles

20483 Programación en C#

20483 Programación en C# 20483B 20483 Programación en C# Fabricante: Microsoft Grupo: Desarrollo Subgrupo: Microsoft Visual Studio 2012 Formación: Presencial Horas: 25 Introducción Este curso enseña a los desarrolladores las habilidades

Más detalles

Clasificación n de los Sistemas Operativos. Clasificación de los SO Estructuras de los SO Modos de procesamiento

Clasificación n de los Sistemas Operativos. Clasificación de los SO Estructuras de los SO Modos de procesamiento Clasificación n de los Sistemas Operativos Contenidos Clasificación de los SO Estructuras de los SO Modos de procesamiento Se pueden clasificar en Sistemas monolíticos Sistemas por capas Sistemas cliente/servidor

Más detalles

Informática Electrónica Manejadores de Dispositivos (Device Drivers)

Informática Electrónica Manejadores de Dispositivos (Device Drivers) Informática Electrónica Manejadores de Dispositivos (Device Drivers) DSI-EIE-FCEIA 2015 Que es un DD? Es una pieza de software que interactúa con (entre) el sistema operativo y con uno o mas dispositivos

Más detalles

ADMINISTRACION DE LA MEMORIA. En memoria 1 solo proceso Desventajas:

ADMINISTRACION DE LA MEMORIA. En memoria 1 solo proceso Desventajas: ADMINISTRACION DE LA MEMORIA Función del Administrador de Memoria Registra qué parte de memoria está libre y ocupada Asigna y libera espacio en memoria a los procesos Administra el intercambio entre la

Más detalles

Sistemas Operativos. Curso 2016 Sistema de Archivos

Sistemas Operativos. Curso 2016 Sistema de Archivos Sistemas Operativos Curso 2016 Sistema de Archivos Agenda Interfaz. Archivos. Directorios. Seguridad en archivos. Implementación. Definiciones. Sistema de archivos virtual. Estructura de los directorios.

Más detalles

Apuntadores en C y C++

Apuntadores en C y C++ Apuntadores en C y C++ Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Prof. Marcos A. Gil T. 8 de diciembre de 2004 1. Introducción Los apuntadores en C y C++ son una herramienta

Más detalles

Manual del Integrador Contable Premium Soft

Manual del Integrador Contable Premium Soft Manual del Integrador Contable Premium Soft Desarrollado por el TSU. Douglas D. Diaz A. El módulo de Integración Contable permite registrar la información de manera automática al sistema de Contabilidad

Más detalles

ESCUELA DE INFORMÁTICA

ESCUELA DE INFORMÁTICA TÉCNICO EN SISTEMAS LABORAL SUBMODULO TEMA 1 (Visual Basic for Application) Microsoft VBA (Visual Basic for Applications) es el lenguaje de macros de Microsoft Visual Basic que se utiliza para programar

Más detalles

PREGUNTAS INFORMÁTICA MONITOR UPB EXAMEN 1

PREGUNTAS INFORMÁTICA MONITOR UPB EXAMEN 1 PREGUNTAS INFORMÁTICA MONITOR UPB EXAMEN 1 1. Cuál de los siguientes componentes no forma parte del esquema general de un ordenador? A Memoria Principal B Disco Duro C Unidad de Control D Unidad Aritmético

Más detalles

Soluciones BYOD para el aula. 24.Febrero.2016

Soluciones BYOD para el aula. 24.Febrero.2016 Soluciones BYOD para el aula 1 24.Febrero.2016 Escritorios Virtuales Avanzados Software Libre 08/03/2016 2 Qué es evaos? Solución de virtualización de aplicaciones y escritorios Open Source basada en GNU/Linux

Más detalles

1. Sistema Operativo Unix

1. Sistema Operativo Unix 1. Sistema Operativo Unix 1.1 Introducción al S.O. Unix y su entorno 1.2 Subsistema de Archivos 1.3 Subsistema de Procesos 1.4 Políticas de Gestión de Memoria Dpto. Lenguajes y Sistemas Informáticos. Universidad

Más detalles

PROGRAMACION ORIENTADA A OBJETOS EN C++

PROGRAMACION ORIENTADA A OBJETOS EN C++ PROGRAMACION ORIENTADA A OBJETOS EN C++ 1- INTRODUCCIÓN El lenguaje C++ representa el resultado de los esfuerzos realizados para proporcionar las ventajas de la programación Orientada a Objetos a un lenguaje

Más detalles

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten

Más detalles

Programación de Sistemas Depuradores (Debugger) MIS. Lizbeth Hdz. Glz.

Programación de Sistemas Depuradores (Debugger) MIS. Lizbeth Hdz. Glz. Programación de Sistemas Depuradores (Debugger) MIS. Lizbeth Hdz. Glz. TIPOS DE ERRORES Sintácticos. Los errores de sintaxis, o sintácticos, ocurren cuando el programador escribe código que no va de acuerdo

Más detalles

Principios de Computadoras II

Principios de Computadoras II Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo rcoppo@uns.edu.ar Qué es un Objeto? Un objeto es una instancia de una clase Las clases actuán como modelos que permiten la creación

Más detalles

Funcionamiento de la computadora

Funcionamiento de la computadora Funcionamiento de la computadora La computadora es una maquina destinada a procesar datos. Este procesamiento involucra dos flujos de información: el de datos y el de instrucciones. Se parte del flujo

Más detalles

SISTEMA OPEATIVO DEFINICIÓN

SISTEMA OPEATIVO DEFINICIÓN DEFINICIÓN 1 DEFINICIÓN El sistema operativo es el software principal de un ordenador o cualquier otro dispositivo electrónico, que permite al usuario manejar dicho dispositivo: 1. Un usuario puede comunicarse

Más detalles

Instrucciones de configuración del acceso remoto (VPN) de la UCLM para Windows, Mac y Linux

Instrucciones de configuración del acceso remoto (VPN) de la UCLM para Windows, Mac y Linux Instrucciones de configuración del acceso remoto (VPN) de la UCLM para Windows, Mac y Linux Referencia -- Fecha 14/03/2016 Autores Área TIC Destinatarios Estudiantes, PDI y PAS de la UCLM Descripción Este

Más detalles

APUNTES SOBRE PROCESOS Y DEADLOCK CONCEPTO DE PROCESO 1

APUNTES SOBRE PROCESOS Y DEADLOCK CONCEPTO DE PROCESO 1 APUNTES SOBRE PROCESOS Y DEADLOCK Alejandro Bia PROCESO CONCEPTO DE PROCESO 1 - En 1960 (proyecto "Multics") surge concepto de proceso. Definiciones breves: - Programa en ejecución. - Entidad lógica a

Más detalles

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main. LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan

Más detalles

Elementos de un programa en C

Elementos de un programa en C Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución

Más detalles

Manual de instalación AutoFirma 1.4.3

Manual de instalación AutoFirma 1.4.3 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y LAS Manual de instalación 1.4.3 Manual de usuario Índice de contenidos 1 Introducción...3 2 Requisitos mínimos...4 3 Enlaces de descarga...5 4 Instalación...5

Más detalles

Unidad I: Organización del Computador. Ing. Marglorie Colina

Unidad I: Organización del Computador. Ing. Marglorie Colina Unidad I: Organización del Computador Ing. Marglorie Colina Arquitectura del Computador Atributos de un sistema que son visibles a un programador (Conjunto de Instrucciones, Cantidad de bits para representar

Más detalles

Manual de instalación AutoFirma 1.4.2

Manual de instalación AutoFirma 1.4.2 Manual de instalación AutoFirma 1.4.2 Fecha: 31/05/2016 Versión: 1.0 Índice 1. Introducción... 2 2. Requisitos mínimos... 3 2.1. Sistema Operativo... 3 2.2. Navegadores Web... 3 3. Enlaces de descarga...

Más detalles

Objetos de aprendizaje: Computadora

Objetos de aprendizaje: Computadora MOMENTO I. BLOQUE 1. Opera las funciones básicas del sistema operativo y garantiza la seguridad de la información Objetos de aprendizaje: Computadora Lectura 1: La Computadora La computadora es una máquina

Más detalles

Funciones básicas del depurador

Funciones básicas del depurador Funciones básicas del depurador Con frecuencia, los alumnos piensan que cuando su programa no tiene errores de compilación (está correctamente escrito) entonces ya es correcto. Muchas veces esto no es

Más detalles

PROTOCOLO IP. Vicente Sánchez Patón. I.E.S Gregorio Prieto. Tema 1 SRI

PROTOCOLO IP. Vicente Sánchez Patón. I.E.S Gregorio Prieto. Tema 1 SRI PROTOCOLO IP Tema 1 SRI Vicente Sánchez Patón I.E.S Gregorio Prieto Cada dispositivo de una red debe definirse en forma exclusiva. En la capa de red, es necesario identificar los paquetes de la transmisión

Más detalles

Administración Informática. Unidad I. Tipos de sistemas y su clasificación A) Sistemas de información.

Administración Informática. Unidad I. Tipos de sistemas y su clasificación A) Sistemas de información. UNIVERSIDAD NACIONALDE INGENIERÁ UNI NORTE SEDE REGIONAL EN ETELI Ing. Mario Pastrana Moreno. Unidad I. Tipos de sistemas y su clasificación 10-09-2010 Administración Informática A) Sistemas de información.

Más detalles

Sistema operativo móvil desarrollado por Apple Inc. Lanzada en el 2007 bajo el nombre de Iphone OS.

Sistema operativo móvil desarrollado por Apple Inc. Lanzada en el 2007 bajo el nombre de Iphone OS. Sistema operativo móvil desarrollado por Apple Inc. Lanzada en el 2007 bajo el nombre de Iphone OS. Posee la mayor tasa de adopción de nuevas actualizaciones. Al 13 de julio, el 90% posee ios 7 a menos

Más detalles

FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)

FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B) APRENDERAPROGRAMARCOM FUNCIONES PHP: DECLARACIÓN Y LLAMADAS PARÁMETROS, RETURN EJERCICIOS EJEMPLOS RESUELTOS (CU00827B) Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha

Más detalles

Guía práctica de estudio 03: Algoritmos

Guía práctica de estudio 03: Algoritmos Guía práctica de estudio 03: Algoritmos Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 03: Algoritmos Objetivo:

Más detalles

Recopilación presentada por 1

Recopilación presentada por 1 Aula Aula de de Informática Informática del del Centro Centro de de Participación Participación Activa Activa para para Personas Personas Mayores Mayores de de El El Ejido Ejido (Almería). (Almería). Consejería

Más detalles

Anexo C. Manual del usuario

Anexo C. Manual del usuario Anexo C Manual del usuario 1. Introducción La aplicación requiere tener instalada la máquina virtual de java versión 1.6 o superior (tanto en sistemas operativos Windows como en sistemas operativos Linux).

Más detalles

F1131 Fundamentos de sistemas operativos 1/12

F1131 Fundamentos de sistemas operativos 1/12 PROGRAMA DE ESTUDIO Fundamentos de sistemas operativos Programa Educativo: Licenciado en Informática Administrativa Área de Formación : Sustantiva Profesional Horas teóricas: 3 Horas prácticas: 2 Total

Más detalles

CONCEPTOS BÁSICOS COMPUTADORA

CONCEPTOS BÁSICOS COMPUTADORA CONCEPTOS BÁSICOS COMPUTADORA Una computadora (también llamada ordenador o computador) es un sistema digital con tecnología microelectrónica, capaz de recibir y procesar datos a partir de un grupo de instrucciones

Más detalles

Tutoría 2. Banco de memoria de 8 y 16 bits (8086)

Tutoría 2. Banco de memoria de 8 y 16 bits (8086) Tutoría 2. Banco de memoria de 8 y 16 bits (8086) RESUMEN Cuando el procesador opera en modo mínimo, éste genera las señales de control para la memoria y los dispositivos de E/S. [1, pág. 292]. Para utilizar

Más detalles

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para

Más detalles

Fecha de entrega: Miércoles 4 de Septiembre. Campus: Villahermosa. Carrera : Ingeniería en Sistemas Compuacionales. Nombre del maestro: Carlos Castro

Fecha de entrega: Miércoles 4 de Septiembre. Campus: Villahermosa. Carrera : Ingeniería en Sistemas Compuacionales. Nombre del maestro: Carlos Castro Nombre del estudiante: Giovanna Kristhel Mendoza Castillo Nombre del trabajo: Investigación sobre los Sistemas Operativos distribuidos Fecha de entrega: Miércoles 4 de Septiembre Campus: Villahermosa Carrera

Más detalles

PO-1TI-001. Código: Versión: Elaborado por: - Gerencia de IT. Página: Revisado por: - Gerencia de IT. Page 1 of 5

PO-1TI-001. Código: Versión: Elaborado por: - Gerencia de IT. Página: Revisado por: - Gerencia de IT. Page 1 of 5 PO-TI-00 Page of 5. PROPOSITO Y ALCANCE El Grupo Corporativo New Horizons y sus compañías operacionales, reconocen en los documentos preparados por los diferentes departamentos y unidades, un papel importante

Más detalles

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL FACULTAD DE INGENIERÍA ELECTRÓNICA E INFORMÁTICA SÍLABO

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL FACULTAD DE INGENIERÍA ELECTRÓNICA E INFORMÁTICA SÍLABO SÍLABO ASIGNATURA: SISTEMAS OPERATIVOS CODIGO: 8E0003 I. DATOS GENERALES: 1.1 Departamento Académico : Ingeniería Electrónica e Informática 1.2 Escuela Profesional : Ingeniería Informática 1.3 Ciclo de

Más detalles

Estructuras en LabVIEW.

Estructuras en LabVIEW. Estructuras en LabVIEW. Sumario: 1. Ejecución según el flujo de datos. 2. Estructuras básicas disponibles en LabVIEW. a) Estructura Sequence. b) Estructura Case. c) Estructura For Loop. d) Estructura While

Más detalles

Unidad 2: Gestión de Procesos

Unidad 2: Gestión de Procesos Unidad 2: Gestión de Procesos Tema 4, Procesos: 4.1 El concepto de proceso. 4.2 Planificación de procesos. 4.3 Procesos cooperativos. 4.4 Hilos (threads). Informática (Segovia) 1 4.1 El concepto de proceso.

Más detalles

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik Objetivos Objetivos Arquitecturas von Neumann Otras Unidad Central de Procesamiento (CPU) Responsabilidades Requisitos Partes de una CPU ALU Control & Decode Registros Electrónica y buses 2 Índice Capítulo

Más detalles

1-Componentes Físicos y Lógicos de un Ordenador.

1-Componentes Físicos y Lógicos de un Ordenador. 1-Componentes Físicos y Lógicos de un Ordenador. En este capítulo trataremos de explicar el conjunto de elementos por lo que está compuesto un ordenador. A grandes rasgos un Ordenador Personal o PC ( Personal

Más detalles

Una dirección IP es una secuencia de unos y ceros de 32 bits. La Figura muestra un número de 32 bits de muestra.

Una dirección IP es una secuencia de unos y ceros de 32 bits. La Figura muestra un número de 32 bits de muestra. DIRECCIONAMIENTO IP Un computador puede estar conectado a más de una red. En este caso, se le debe asignar al sistema más de una dirección. Cada dirección identificará la conexión del computador a una

Más detalles

Sistemas Distribuidos. Soporte de Sistemas Operativos

Sistemas Distribuidos. Soporte de Sistemas Operativos Soporte de Sistemas Operativos Soporte de Sistemas Operativos Soporte de Sistemas Operativos Soporte de Sistemas Operativos Tareas principales de un SO: Administrar recursos Proveer abstracciones de los

Más detalles

ojovoz Una plataforma de código abierto para la creación de memorias comunitarias. Manual del usuario

ojovoz Una plataforma de código abierto para la creación de memorias comunitarias.  Manual del usuario ojovoz Una plataforma de código abierto para la creación de memorias comunitarias. http://ojovoz.net Manual del usuario 1. CÓMO INSTALAR OJOVOZ. 1. ojovoz funciona en la mayoría de teléfonos con sistema

Más detalles

Guía práctica Windows 7 Registro y configuración Francisco Charte Ojeda

Guía práctica Windows 7 Registro y configuración Francisco Charte Ojeda Guía práctica Windows 7 Registro y configuración Francisco Charte Ojeda Dedicatoria Agradecimientos Sobre el autor Introducción Mejoras visibles Mejoras no visibles Windows 7 frente a otros sistemas Cómo

Más detalles

1

1 Curso: BORLAN DELPHI 5 Curso de desarrollo de aplicaciones Windows utilizando el entorno de programación Borland Delphi 5. Se estudian las particularidades del lenguaje Delphi, así como su sintaxis; sus

Más detalles

No hay un acuerdo universal sobre una definición de proceso, pero sí algunas definiciones aceptadas:

No hay un acuerdo universal sobre una definición de proceso, pero sí algunas definiciones aceptadas: 1 TEMA 2 ADMINISTRACIÓN DE PROCESOS El modelo de procesos Implantación de los procesos Comunicación entre procesos Problemas clásicos de la comunicación entre procesos Planificación de procesos INTRODUCCIÓN

Más detalles

MANUAL DE INSTALACIÓN DEL SIAHM 2014 EN EQUIPOS TERMINALES

MANUAL DE INSTALACIÓN DEL SIAHM 2014 EN EQUIPOS TERMINALES MANUAL DE INSTALACIÓN DEL SIAHM 2014 EN EQUIPOS TERMINALES Antes de proceder a instalar el SIAHM 2014 en un equipo terminal, debe asegurarse que tanto el servidor como la terminal estén conectados en red

Más detalles

PROCEDIMIENTOS DEL NOC RESPALDO Y RECUPERACION DE DATOS

PROCEDIMIENTOS DEL NOC RESPALDO Y RECUPERACION DE DATOS PROCEDIMIENTOS DEL NOC RESPALDO Y RECUPERACION DE DATOS Página 1 de 7 OBJETIVO El objetivo de este procedimiento es describir la política de respaldo por defecto para el NOC de Provectis, entendiéndose

Más detalles

Tema 6 Organización y gestión de la memoria

Tema 6 Organización y gestión de la memoria Departamento de Tecnologías de la Información Tema 6 Organización y gestión de la memoria Ciencias de la Computación e Inteligencia Artificial Índice 6.1 Organización de la memoria en tiempo de ejecución

Más detalles