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

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

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

Transcripción

1 Tema 2 : entorno programación linux Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso Francisco J. Santana 1

2 Programación C en UNIX Repasen el lenguaje C y fundamentos de UNIX asignatura Sistemas Operativos No necesitamos usar C++, ni otros refinamientos, pero si quieren pueden usar... C++ sencillo la librería ncurses Deben dar preferencia al uso de llamadas al sistema Francisco J. Santana 2

3 La función main Función de entrada al programa C int main(int argc, char *argv[]); Una rutina especial de arranque es llamada por el Kernel: La rutina es insertada en el ejecutable en el proceso de linkado La rutina se encarga de tomar del Kernel los parámetros y el entorno Y llama a la función main Francisco J. Santana 3

4 Manejo de errores En caso de error: Las llamadas al sistema devuelven -1 ó NULL (si la función devuelve tipo puntero) Deben siempre comprobar después de una llamada si todo es correcto, para ello Linux proporciona una variable errno y una función perror(): Francisco J. Santana 4

5 Manejo de errores Ejemplo de programa, del uso de la variable global errno y del procedimiento perror() /* errores.c: lista los 53 primeros errores de llamadas al sistema */ # include <stdio.h> main(argc,argv) int argc; char *argv[]; { int i; extern int errno; for (i=0;i<=53;i++){ fprintf(stderr,"%3d",i); errno=i; perror(" "); } exit(0); } Francisco J. Santana 5

6 Terminación de procesos Un proceso puede terminar de 5 formas: Normalmente: retornando de main (con return ó llegando al final) llamando exit llamando _exit Anormalmente: llamando abort terminado por una señal Francisco J. Santana 6

7 Terminación de procesos _exit vuelve al kernel inmediatamente. Definida por POSIX #include <unistd.h> void _exit(int status); exit realiza antes cierto limpiado (p.ej. terminar de escribir los buffers a disco). Es ANSI C #include <stdlib.h> void exit(int status); Francisco J. Santana 7

8 Terminación de procesos Las funciones exit y return pueden devolver un código de retorno El shell puede utilizar el código de retorno: % ls / bin coda etc lib misc nfs proc sbin usr boot dev home lost+found mnt opt root tmp var % echo $? 0 % ls fichero_no_existente ls: fichero_no_existente: No such file or directory % echo $? 1 Código de retorno 0 = terminación correcta Francisco J. Santana 8

9 Terminación de procesos Con ANSI C un proceso puede registrar hasta 32 funciones que se llamarán automáticamente por exit La función atexit: #include <stdlib.h> int atexit(void (*func) (void)); Francisco J. Santana 9

10 Argumentos de línea de comando int main(int argc, char *argv[]) { int i; for (i=0; i<argc; i++) printf( argv[%d]: %s\n, i, argv[i]); exit(0); } Francisco J. Santana 10

11 Variables de entorno Además de los parámetros, a un programa que comienza se le pasa la lista de variables de entorno. La lista es heredada del programa lanzador Es un array de punteros a cadenas terminadas en nulo (\0) extern char **environ; Las cadenas son de la forma variable=valor Francisco J. Santana 11

12 Variables de entorno Probar env en la línea de comandos. Podemos manimupar las variables de entorno desde el shell con los comandos: export PATH=.. echo $PATH Francisco J. Santana 12

13 Variables de entorno desde programas #include <stdio.h> /* The ENVIRON variable contains the environment. */ extern char** environ; int main () { char** var; for (var = environ; *var!= NULL; ++var) printf ( %s\n, *var); return 0; } ANSI C define una función útil: char *getenv(const char *name) Francisco J. Santana 13

14 Estructura en memoria de un programa C Direcciones altas parámetros y entorno pila heap Direcciones bajas datos no inicializados datos inicializados código exec los pone a 0 Leídos de disco por exec Francisco J. Santana 14

15 Codificación prudente: assert assert(condición) Para obviarlos se puede compilar definiendo la macro NDEBUG (opción DNDEBUG del compilador) Francisco J. Santana 15

16 Fallos de las llamadas al sistema Las llamadas al sistema podrán fallar por: Argumentos de la llamada inválidos Recursos agotados (p.ej. no hay memoria o disco suficiente) Acceso no permitido (p.ej. al intentar escribir un fichero para el que no tenemos permiso) Fallo hardware Interrupción por una señal Francisco J. Santana 16

17 La librería ncurses Trabaja con el concepto de ventana Uso: $ gcc curses_prog.c -o curses_prog lcurses Estructura general: #include <curses.h> main() { initscr(); /* cuerpo */ } endwin(); exit(0); Francisco J. Santana 17

18 La librería ncurses Facilidades para: Escritura en una posición de pantalla Colores, atributos Líneas horizontales y verticales Cajas Scrolling Manejo de Ratón... Francisco J. Santana 18

19 y a partir de ahora? Haremos un recorrido por los servicios básicos que proporciona el sistema operativo para: Procesos Señales Comunicación y sincronización de procesos Memoria Entrada/salida, ficheros Manejadores de dispositivos Francisco J. Santana 19

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

Sistemas Operativos I Manual de prácticas

Sistemas Operativos I Manual de prácticas Sistemas Operativos I Manual de prácticas Grupo de Sistemas Operativos (DSIC/DISCA) Práctica 3: Procesos POSIX ANTES DE EMPEZAR...... 2 PRÁCTICA 3: PROCESOS POSIX... 2 CREACIÓN DE PROCESOS MEDIANTE FORK...

Más detalles

SOLUCION EXAMEN junio 2006

SOLUCION EXAMEN junio 2006 SOLUCION EXAMEN junio 2006 1. Explique razonadamente si las siguientes afirmaciones son verdaderas o falsas: I) (1 p) En UNIX únicamente se distinguen dos tipos de procesos: los procesos de usuario y los

Más detalles

Procesos 1 / 31. Para entender el concepto de hebra, necesitamos compreender el concepto de proceso

Procesos 1 / 31. Para entender el concepto de hebra, necesitamos compreender el concepto de proceso Procesos 1 / 31 Concepto de proceso Para entender el concepto de hebra, necesitamos compreender el concepto de proceso Un proceso es un programa en ejecución Una instancia de un programa corriendo en un

Más detalles

Taller de Sistemas Operativos Introducción

Taller de Sistemas Operativos Introducción Taller de Sistemas Operativos Introducción Escuela de Ingeniería Civil en Informática Universidad de Valparaíso, Chile http:// Conceptos generales 2 Proceso stdin Descriptor Flujo (FILE*) 0 stdout 1 Proceso

Más detalles

El lenguaje de Programación C. Fernando J. Pereda

El lenguaje de Programación C. Fernando J. Pereda <ferdy@gentoo.org> El lenguaje de Programación C Fernando J. Pereda Por qué aprender C? Portable y muy extendido Estándar (C89, C99) El lenguaje de los sistemas Un lenguaje fácil (no, no es broma) Por

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

Ing. Andrés Bustamante afbustamanteg@unal.edu.co

Ing. Andrés Bustamante afbustamanteg@unal.edu.co Ing. Andrés Bustamante afbustamanteg@unal.edu.co 2009 Ing. Andrés Bustamante,afbustamanteg@unal.edu.co () 2009 1 / 12 Contenidos 1 2 3 4 5 Ing. Andrés Bustamante,afbustamanteg@unal.edu.co () 2009 2 / 12

Más detalles

Punteros. Definición Un puntero es un dato que contiene una dirección de memoria.

Punteros. Definición Un puntero es un dato que contiene una dirección de memoria. Punteros Definición Un puntero es un dato que contiene una dirección de memoria. NOTA: Existe una dirección especial que se representa por medio de la constante NULL (definida en ) y se emplea

Más detalles

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introduccion al Lenguaje C Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introducción C es un lenguaje de programación creado en 1972 por

Más detalles

Esquema de un programa en C: bloques básicos

Esquema de un programa en C: bloques básicos Esquema de un programa en C: bloques básicos // Incluimos los ficheros de cabecera que necesitemos. // Esto es un comentario #include #include // Si queremos definir alguna constante,

Más detalles

Modelos de Computación I. Ingeniería Informática

Modelos de Computación I. Ingeniería Informática Prácticas Pag. 1 Modelos de Computación I Ingeniería Informática Práctica 1 Lex como localizador de expresiones regulares con acciones asociadas Curso 2008-2009 Profesores: Carlos J. Mantas Ruiz Aida Jiménez

Más detalles

Programación Estructurada

Programación Estructurada Programación Estructurada PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 11 Nombre: Manejo de archivos Contextualización En los lenguajes de programación estructurada como C, que carecían de una conexión a base

Más detalles

Arquitectura del sistema operativo GNU/Linux. Luis Eduardo Sepúlveda R.

Arquitectura del sistema operativo GNU/Linux. Luis Eduardo Sepúlveda R. Arquitectura del sistema operativo GNU/Linux Luis Eduardo Sepúlveda R. Núcleo de un sistema operativo. Funciones más importantes: Administración de la memoria. Administración de los procesos Control de

Más detalles

TEMA 2: GESTIÓN DE ARCHIVOS

TEMA 2: GESTIÓN DE ARCHIVOS Tema 2: Gestión de archivos. GNU/LINUX 1/6 TEMA 2: GESTIÓN DE ARCHIVOS Este tema cubre la gestión básica del sistema de archivos (archivos, directorios y links) de GNU/LINUX mediante las órdenes disponibles

Más detalles

Cuentas. Guía 1er laboratorio Linux - Comandos - Fork. Programación en C. Linux. Linux: Cuenta (passwd): sisop@labs.cs.uns.edu.ar (sis2013op..

Cuentas. Guía 1er laboratorio Linux - Comandos - Fork. Programación en C. Linux. Linux: Cuenta (passwd): sisop@labs.cs.uns.edu.ar (sis2013op.. Cuentas Guía 1er laboratorio Linux - Comandos - Fork Linux: Cuenta (passwd): sisop@labs.cs.uns.edu.ar (sis2013op..) Windows: Cuenta (passwd): So (s2013o..) Programación en C Linux sobre Linux: gcc compiler

Más detalles

Paso de Borland Turbo C (bajo DOS) a Anjuta (Linux) 1.

Paso de Borland Turbo C (bajo DOS) a Anjuta (Linux) 1. Paso de Borland Turbo C (bajo DOS) a Anjuta (Linux) 1. Anjuta es un entorno de desarrollo de C que podemos encontrar en cualquier distribución de GNU/Linux. Si nuestra distribución no dispone de ella,

Más detalles

Generador de analizadores sintácticos BISON

Generador de analizadores sintácticos BISON Generador de analizadores sintácticos BISON PROCESADORES DE LENGUAJES 4 o Informática http://ccia.ei.uvigo.es/docencia/pl noviembre-2008 2008 ccia PL 1. Introducción Traduce la especificación de una gramática

Más detalles

Repaso sobre lectura de datos desde la línea de comandos, manejo de memoria dinámica e introducción a la librería GSL

Repaso sobre lectura de datos desde la línea de comandos, manejo de memoria dinámica e introducción a la librería GSL Clase No. 5: Repaso sobre lectura de datos desde la línea de comandos, manejo de memoria dinámica e introducción a la librería GSL MAT 251 Dr. Alonso Ramírez Manzanares CIMAT, A.C. e-mail: alram@ cimat.mx

Más detalles

Estructura de directorios

Estructura de directorios Diseño y Administración de Sistemas y Redes Juan Céspedes Curso 2005 2006 Un poco de historia 1 Un poco de historia Los primeros UNIX tenían una estructura de directorios muy distinta

Más detalles

LLAMADAS AL SISTEMA SISTEMAS OPERATIVOS

LLAMADAS AL SISTEMA SISTEMAS OPERATIVOS LLAMADAS AL SISTEMA SISTEMAS OPERATIVOS 26/05/2013 eduar14_cr@hotmail.com cilred_tlapa@hotmail.com LLAMADAS AL SISTEMA Las llamadas al sistema proporcionan la interfaz entre un proceso y el sistema operativo,

Más detalles

1. CARACTERÍSTICAS DE LINUX.

1. CARACTERÍSTICAS DE LINUX. UNIDAD 1: EL SISTEMA OPERATIVO LINUX 1. CARACTERÍSTICAS DE LINUX. El sistema operativo LINUX es un conjunto de programas y una serie de utilidades que permiten al usuario gestionar los recursos hardware

Más detalles

2 Programas y procesos

2 Programas y procesos 2 Programas y procesos 2.1. Procesos Un programa en ejecución es un proceso. El nombre programa no se utiliza para referirse a un programa en ejecución, porque ambos conceptos son distintos. La diferencia

Más detalles

Entorno de Programación Visual Studio 6

Entorno de Programación Visual Studio 6 Entorno de Programación Visual Studio 6 Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Programación en C 1 Proceso de Programación Edición

Más detalles

Autor: Prof. Pedro A. Hernández correo: pedroadonis@gmail.com Versión 1.0

Autor: Prof. Pedro A. Hernández correo: pedroadonis@gmail.com Versión 1.0 Tema: Unidad 3. Los comandos que se presenta en esta práctica son para el manejo de los archivos del Sistema Operativo GNU/Linux. Tiempo estimado de Ejecución : 1.30 H Valoración: 10% Objetivo: Dar a conocer

Más detalles

II. DISEÑO DEL SISTEMA. Introducción Instalación por red Arranque por red

II. DISEÑO DEL SISTEMA. Introducción Instalación por red Arranque por red II. DISEÑO DEL SISTEMA Introducción Instalación por red Arranque por red Qué es un cluster? Cluster de memoria Distribuida Nuestro Diseño Login SERVER PXE, NFS,TFTP, DHCP Internet DISKS NODOS DE COMPUTO

Más detalles

! " # $!% & % '" ()!*++,

!  # $!% & % ' ()!*++, !" # $!%&%'" ()!*++, Qué es Linux? Antecedentes. Licencia. Características. Entorno de Trabajo. Estructura General. Sistema de Ficheros. Tipos. Path. Permisos de Acceso. Distribuciones Comerciales. Elementos

Más detalles

Arquitectura de Computadores: Exámenes y Controles

Arquitectura de Computadores: Exámenes y Controles 2º curso / 2º cuatr. Grado en Ing. Informática Doble Grado en Ing. Informática y Matemáticas Arquitectura de Computadores: Exámenes y Controles Examen de Prácticas AC 05/07/2013 resuelto Material elaborado

Más detalles

Linux Principios básicos de uso del sistema [4ª edición]

Linux Principios básicos de uso del sistema [4ª edición] Introducción 1. Historia de Unix 11 2. GNU 13 2.1 FSF 14 2.2 CopyLeft y GPL 14 3. Linux 16 3.1 Características 18 3.2 Distribuciones 20 4. Qué distribución elegir? 20 4.1 Las distribuciones para el "gran

Más detalles

7. Manejo de Archivos en C.

7. Manejo de Archivos en C. 7. Manejo de Archivos en C. Los datos que hemos tratado hasta el momento han residido en la memoria principal. Sin embargo, las grandes cantidades de datos se almacenan normalmente en un dispositivo de

Más detalles

Si el fichero hashes existe, el script debe notificar el error y salir como corresponde. A continuación se muestra un ejemplo:

Si el fichero hashes existe, el script debe notificar el error y salir como corresponde. A continuación se muestra un ejemplo: Examen de Sistemas Operativos ITIS Fuenlabrada Junio 2009 Tiempo total: 3 horas. Problema: Llamadas al sistema (5 puntos) Escriba en C para Plan 9 un programa llamado catsha1 cuyo propósito es crear un

Más detalles

Prueba de Laboratorio Modelo B01 Semáforos y Memoria Compartida

Prueba de Laboratorio Modelo B01 Semáforos y Memoria Compartida Prueba de Laboratorio APELLIDOS: NOMBRE: GRUPO DE LABORATORIO: Indicaciones: No se permiten libros, apuntes ni teléfonos móviles. Cuando tenga una solución al ejercicio muéstrela al profesor (compilación

Más detalles

FILE *nombre_puntero_fichero; fopen(char_nombre_archivo,char_modo_apertura ); MODOS DE APERTURA. Abre un archivo de texto para lectura.

FILE *nombre_puntero_fichero; fopen(char_nombre_archivo,char_modo_apertura ); MODOS DE APERTURA. Abre un archivo de texto para lectura. FICHEROS El sistema de archivos de C está diseñado para secuencias que son independientes del dispositivo. Existen dos tipos se secuencias: de texto que es una ristra de caracteres organizados en líneas

Más detalles

La Jerarquía de Sistema de Archivos Estándar en GNU/Linux (FHS)

La Jerarquía de Sistema de Archivos Estándar en GNU/Linux (FHS) La Jerarquía de Sistema de Archivos Estándar en GNU/Linux (FHS) [ admin basico gnu ] Marcelo López Minnucci 17 de octubre de 2015 Objetivo del tutorial Conocer la ubicación estándar

Más detalles

Programación estructurada

Programación estructurada Programación estructurada Ambiente de trabajo en UNIX SunOS Oscar Alvarado Nava oan@correo.azc.uam.mx Departamento de Electrónica División de Ciencias Básicas e Ingeniería Universidad Autónoma Metropolitana,

Más detalles

Flex a la rápida. José Ignacio Medina

Flex a la rápida. José Ignacio Medina Flex a la rápida José Ignacio Medina Octubre, 2008 Este documento se distribuye bajo una licencia Creative Commons bync-sa 2.0. Usted es libre de copiar, distribuir, comunicar y ejecutar públicamente este

Más detalles

//Esta función es llamada cuando se produce un evento //de teclado void keycallback (void *userdata, SoEventCallback *eventoteclado) {

//Esta función es llamada cuando se produce un evento //de teclado void keycallback (void *userdata, SoEventCallback *eventoteclado) { Solución 4: /******************************************************** * * Este programa permite visualizar ficheros iv (vrml) * ********************************************************/ //Según el sistema

Más detalles

Sistemas de Ficheros en GNU/Linux

Sistemas de Ficheros en GNU/Linux en GNU/Linux Page 1 Nota de Copyright 2005. Algunos derechos reservados. Este trabajo se distribuye bajo la licencia Creative Commons Attribution-ShareAlike. Para obtener la licencia completa, véase http://creativecommons.org/licenses/by-sa/2.1/es

Más detalles

Reglas básicas de la programación en lenguaje C

Reglas básicas de la programación en lenguaje C 0. Introducción Reglas básicas de la programación en lenguaje C ISO - SO Departament d'arquitectura de Computadors Universitat Politècnica de Catalunya C es un lenguaje de programación de propósito general.

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

Práctica 0 Introducción a la programación en C

Práctica 0 Introducción a la programación en C DEPARTAMENTO DE AUTOMÁTICA ARQUITECTURA Y TECNOLOGÍA DE COMPUTADORES OBJETIVO Grado en Ingeniería de Computadores COMPUTACIÓN DE ALTAS PRESTACIONES Práctica 0 Introducción a la programación en C Se pretende

Más detalles

UNIVERSIDAD NACIONAL SAN ANTONIO ABAD DEL CUSCO CARRERA PROFESIONAL DE INGENIERIA ELECTRONICA LINUX AVID ROMAN GONZALEZ

UNIVERSIDAD NACIONAL SAN ANTONIO ABAD DEL CUSCO CARRERA PROFESIONAL DE INGENIERIA ELECTRONICA LINUX AVID ROMAN GONZALEZ UNIVERSIDAD NACIONAL SAN ANTONIO ABAD DEL CUSCO CARRERA PROFESIONAL DE INGENIERIA ELECTRONICA LINUX AVID ROMAN GONZALEZ Introducción Linux es clónico de UNIX El sistema en si refleja esta compleja herencia

Más detalles

SOR -::- Prácticas -::- Curso 05/06. RCP es un estándar desarrollado por Sun Microsystems y usado por muchos distribuidores de sistemas UNIX.

SOR -::- Prácticas -::- Curso 05/06. RCP es un estándar desarrollado por Sun Microsystems y usado por muchos distribuidores de sistemas UNIX. RPC RCP es un estándar desarrollado por Sun Microsystems y usado por muchos distribuidores de sistemas UNIX. El RPC es una interfaz de programación de aplicación (API) disponible para el desarrollo de

Más detalles

Programación en C. (Segunda Parte) DATSI, FI, UPM José M. Peña. jmpena@fi.upm.es. Programación en C

Programación en C. (Segunda Parte) DATSI, FI, UPM José M. Peña. jmpena@fi.upm.es. Programación en C (Segunda Parte) DATSI, FI, UPM José M. Peña jmpena@fi.upm.es 1 Índice Estructura de un programa C. Variables básicas. Operaciones aritméticas. Sentencias de control. Arrays y Strings. Funciones. Estructuras

Más detalles

GESTIÓN DE ARCHIVOS GNU/LINUX vs WINDOWS

GESTIÓN DE ARCHIVOS GNU/LINUX vs WINDOWS GESTIÓN DE ARCHIVOS GNU/LINUX vs WINDOWS Una de las primeras dificultades con las que se encuentran los usuarios novatos de Linux (por su gran diferencia con los sistemas operativos Windows) es la navegación

Más detalles

TEMA 6. Implementación de UNIX. Contenido

TEMA 6. Implementación de UNIX. Contenido TEMA 6 Implementación de UNIX Contenido 6.1. Introducción 6.2. El Núcleo (Kernel) de UNIX 6.3. Gestión de Procesos 6.3.1. Estructuras de Control de Procesos 6.3.2. Contexto de un proceso 6.3.3. Estados

Más detalles

Lenguaje C Funciones. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Lenguaje C Funciones. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Lenguaje C Funciones Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Qué es una función o rutina/subrutina? Se presenta como un subalgoritmo

Más detalles

UNIDAD DIDACTICA 2 COMANDOS BÁSICOS DE LINUX

UNIDAD DIDACTICA 2 COMANDOS BÁSICOS DE LINUX UNIDAD DIDACTICA 2 COMANDOS BÁSICOS DE LINUX Eduard Lara 1 1. SISTEMAS DE FICHEROS DE LINUX Todos los sistemas operativos estructuran sus objetos en una estructura jerárquica en forma de árbol que contiene

Más detalles

Contenidos. Funciones (suplemento) Funciones. Justificación del uso de Funciones

Contenidos. Funciones (suplemento) Funciones. Justificación del uso de Funciones Contenidos 1. Justificación del uso de funciones. 2. Declaración de funciones: prototipos. 3. Prototipos y ficheros de cabecera. 4. Polimorfismo (sobrecarga de funciones). 5. Argumentos formales y actuales.

Más detalles

Montaje de particiones

Montaje de particiones Instituto Tecnológico de Costa Rica Programa Mantenimiento de Computadoras Personales Curso: Linux Profesor: Ing. Javier Pérez Rodríguez Montaje de particiones Ubuntu reconoce automáticamente la conexión

Más detalles

Implementación de monitores POSIX

Implementación de monitores POSIX Implementación de monitores POSIX Ampliación de Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Programación concurrente: Problemática Presencia de condiciones de

Más detalles

Práctica 2: Realización de una Alarma Temporizada Diseño de Sistemas Operativos U.L.P.G.C.

Práctica 2: Realización de una Alarma Temporizada Diseño de Sistemas Operativos U.L.P.G.C. Práctica 2: Realización de una Alarma Temporizada David Jesús Horat Flotats Índice I. Explicación del Programa desarrollado... 2 Programa Principal... 2 Variables Tarea que realiza Parámetros Movimiento

Más detalles

Preliminares. Tipos de variables y Expresiones

Preliminares. Tipos de variables y Expresiones Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un

Más detalles

Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid

Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Manejo de Señales Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Señales Concepto Evento que interrumpe la ejecución normal de un proceso La acción por defecto suele

Más detalles

4.- ESTRUCTURA DEL SISTEMA DE ARCHIVOS DE LINUX

4.- ESTRUCTURA DEL SISTEMA DE ARCHIVOS DE LINUX 4.- ESTRUCTURA DEL SISTEMA DE ARCHIVOS DE LINUX 4.1.- Tipos de archivos La base del sistema de archivos de Linux, es obviamente el archivo, que no es otra cosa que la estructura empleada por el sistema

Más detalles

"Binary Diffing" visual en Linux con Radare2 "UNA IMAGEN DICEN MÁS QUE MIL PALABRAS"

Binary Diffing visual en Linux con Radare2 UNA IMAGEN DICEN MÁS QUE MIL PALABRAS "Binary Diffing" visual en Linux con Radare2 Binary Diffing o simplemente Bindiffing es una técnica utilizada para la visualización de código (mayormente en ensamblador) y así detectar patrones de conducta,

Más detalles

Contenidos. Gestión dinámica de memoria. Gestión dinámica de memoria. Introducción. 1. Introducción 2. El operador NEW 3. El operador DELETE

Contenidos. Gestión dinámica de memoria. Gestión dinámica de memoria. Introducción. 1. Introducción 2. El operador NEW 3. El operador DELETE Contenidos 1. Introducción 2. El operador NEW 3. El operador DELETE 1 Introducción Hasta ahora hemos visto que cada vez que queremos usar una variable debemos reservarle un lugar de la memoria al comenzar

Más detalles

Boletín 5- Señales. Departamento de Lenguajes y Sistemas Informáticos

Boletín 5- Señales. Departamento de Lenguajes y Sistemas Informáticos Boletín 5- Señales Departamento de Lenguajes y Sistemas Informáticos Indice 1. Introducción 2. Envío de señales desde la shell: kill 3. Llamadas al Sistema kill: envío de señal a un proceso raise: autoenvío

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Prácticas de C++ Practica Nº 8 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante ÍNDICE ÍNDICE... 1 1. INTRODUCCIÓN... 1 1.1 EJERCICIO 1: HERENCIA Y POLIMORFISMO I... 1 1.2 EJERCICIO

Más detalles

Universidad de Colima Facultad de Telemática.

Universidad de Colima Facultad de Telemática. Universidad de Colima Facultad de Telemática. Practica 3 MRTG Una herramienta para el mantenimiento vía web. Materia: Administración de Redes. Profesor: MC. Juan Manuel Ramírez Alcaráz Integrantes: Mario

Más detalles

Que es el Shell? Kernel. Other programs. csh. bash. X window

Que es el Shell? Kernel. Other programs. csh. bash. X window Scripts de shell Que es el Shell? Es la interfaz entre el usuario final y el Sistema Operativo. No es el S.O. Existen múltiples versiones y podemos averiguar cual tenemos instalada haciendo: % /bin/sh

Más detalles

El sistema UNIX. La historia de los sistemas UNIX

El sistema UNIX. La historia de los sistemas UNIX El sistema UNIX El sistema Unix es un sistema operativo que admite múltiples usuarios, así como también múltiples tareas, lo que significa que permite que en un único equipo o multiprocesador se ejecuten

Más detalles

Gestión de procesos en UNIX

Gestión de procesos en UNIX PROCESOS UNIX Gestión de procesos en UNIX Cada proceso sólo puede tener un flujo: el concepto proceso engloba todo Dos llamadas implicadas en la creación de procesos crear proceso cargar programa La relación

Más detalles

PRÁCTICA 2: Cliente-servidor UDP

PRÁCTICA 2: Cliente-servidor UDP PRÁCTICA 2: Cliente-servidor UDP El objetivo de esta práctica es la familiarización con aplicaciones elementales que usan los servicios de transporte de los sockets UDP. A lo largo de la práctica se realizarán

Más detalles

Tema 7 Vectores y cadenas de caracteres. Fundamentos de Informática

Tema 7 Vectores y cadenas de caracteres. Fundamentos de Informática Tema 7 Fundamentos de Informática Índice 1. Qué es un vector? 2. Vectores unidimensionales 3. Cadenas de caracteres 4. Paso de vectores unidimensionales a funciones. 5. Vectores multidimensionales: matrices

Más detalles

Administración de Sistemas Operativos

Administración de Sistemas Operativos Kernel 2.4, 2.6.x Comunicaciones Aplicaciones Aplicaciones Utilidades Kernel del sistema Usuarios Gestión de archivos y seguridad Shell Lenguajes Programadores 1 DISTRIBUCIONES DE LINUX PARTICIONES Recomendado:

Más detalles

Introducción al Linux y software libre. Marcelino Vicens Universidad de Valencia

Introducción al Linux y software libre. Marcelino Vicens Universidad de Valencia Introducción al Linux y software libre Marcelino Vicens Universidad de Valencia Concepto de Software libre Software Libre Se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar,

Más detalles

Práctica de gsoap. int ns enviar (unsigned nodo, std::string cadena, std::string &resultado); int ns recibir(unsigned nodo, std::string &resultado);

Práctica de gsoap. int ns enviar (unsigned nodo, std::string cadena, std::string &resultado); int ns recibir(unsigned nodo, std::string &resultado); Práctica de gsoap Para desarrollar programas que utilicen gsoap para llevar a cabo las comunicaciones, debemos bajar el paquete gsoap linux 2.7.tgz disponible en: http://atc.ugr.es/pedro/docencia/irhc/irhc.html

Más detalles

Laboratorio 1: Terminal de Linux y primer programa en C

Laboratorio 1: Terminal de Linux y primer programa en C Laboratorio 1: Terminal de Linux y primer programa en C March 28, 2013 Objetivos: - Conocer la consola de Linux y entender el funcionamiento de algunos comandos simples. - Escribir un programa en C, entender

Más detalles

TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 2 CADENAS O VECTORES DE CARACTERES 6 3 PASO DE CADENAS Y ARRAYS A FUNCIONES 8

TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 2 CADENAS O VECTORES DE CARACTERES 6 3 PASO DE CADENAS Y ARRAYS A FUNCIONES 8 TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 1.1 VECTORES O ARRAYS UNIDIMENSIONALES 2 1.2 ARRAYS MULTIDIMENSIONALES 3 1.3 INICIALIZACIÓN DE ARRAYS 4 1.3.1 INICIALIZACIÓN DE ARRAYS SIN

Más detalles

Tema 2. Organización de un sistema operativo tipo Linux

Tema 2. Organización de un sistema operativo tipo Linux Tema 2. Organización de un sistema operativo tipo Linux p. 1/11 Tema 2. Organización de un sistema operativo tipo Linux Administración de Sistemas Operativos Administración de Sistemas Operativos y Periféricos

Más detalles

; hcomment.rc HTTP://AA.ES/INFO.HTML http://www.bb.com http://www.cc.org/a.html aa.es www.bb.com www.cc.org ;

; hcomment.rc HTTP://AA.ES/INFO.HTML http://www.bb.com http://www.cc.org/a.html aa.es www.bb.com www.cc.org ; Examen de Sistemas Operativos ITIS Fuenlabrada Mayo 2011 Problema: Llamadas al sistema (3 puntos) Implemente en C para Plan 9 un programa hlines que a partir de una URL que se le pasa como argumento, escriba

Más detalles

Examen de Fundamentos de sistemas distribuidos

Examen de Fundamentos de sistemas distribuidos Examen de Fundamentos de sistemas distribuidos Tiempo total: 2 horas Problema: Programa: Rendezvous con semáforos(5 puntos) Utilizando como único mecanismo de sincronización los semáforos descritos en

Más detalles

Problemas de Redes de Computadores. Conjunto de problemas 1

Problemas de Redes de Computadores. Conjunto de problemas 1 Problemas de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Conjunto de problemas 1 Pregunta 1.1: Si configuro mi servidor Web para que no acepte conexiones desde la dirección IP 130.206.1.1,

Más detalles

Abelardo Pardo. Iria Estévez Ayres. Damaris Fuentes Lorenzo. Pablo Basanta Val. Pedro J. Muñoz Merino. Hugo A. Parada.

Abelardo Pardo. Iria Estévez Ayres. Damaris Fuentes Lorenzo. Pablo Basanta Val. Pedro J. Muñoz Merino. Hugo A. Parada. Arquitectura de sistemas Abelardo Pardo University of Sydney School of Electrical and Information Engineering NSW, 2006, Australia Autor principal del curso de 2009 a 2012 Iria Estévez Ayres Damaris Fuentes

Más detalles

TEMA 3: EL LENGUAJE C: PRESENTACIÓN

TEMA 3: EL LENGUAJE C: PRESENTACIÓN TEMA 3: EL LENGUAJE C: PRESENTACIÓN Historia del lenguaje C Características del lenguaje C Estructura de un programa en C El editor de textos: elementos Funciones: de usuario y de librería Librerías de

Más detalles

Tema 1. El Entorno de Trabajo

Tema 1. El Entorno de Trabajo Tema 1 El Entorno de Trabajo En este capítulo se introducen las bases sobre el entorno de trabajo para la programación en C++. El tema comienza con una visión general de los sistemas operativos y una descripción

Más detalles

Laboratorio 01: Programar en lenguaje ANSI C bajo Windows

Laboratorio 01: Programar en lenguaje ANSI C bajo Windows Laboratorio 01: Programar en lenguaje ANSI C bajo Windows http://computacion.cs.cinvestav.mx/~efranco @efranco_escom efranco.docencia@gmail.com Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido

Más detalles

Dispositivos esenciales,

Dispositivos esenciales, Planeación Antes de comenzar, determine primero los siguientes puntos: Finalidad productiva. Va ser un servidor, estación de trabajo o escritorio? Qué uso va tener el equipo? Qué servicios va a requerir?

Más detalles

CGI. Qué significa CGI?

CGI. Qué significa CGI? CGI Daniel Morató Area de Ingeniería Telemática Departamento de Automática y Computación Universidad Pública de Navarra daniel.morato@unavarra.es Laboratorio de Interfaces de Redes http://www.tlm.unavarra.es/asignaturas/lir

Más detalles

FUNDAMENTOS DE PROGRAMACIÓN Asignatura correspondiente al plan de estudios de la carrera de Ingeniería Informática

FUNDAMENTOS DE PROGRAMACIÓN Asignatura correspondiente al plan de estudios de la carrera de Ingeniería Informática Página 1/12 Universidad Nacional del Litoral Facultad de Ingeniería y Ciencias Hídricas Departamento de Informática FUNDAMENTOS DE PROGRAMACIÓN Asignatura correspondiente al plan de estudios de la carrera

Más detalles

Apellidos Nombre DNI

Apellidos Nombre DNI A continuación se muestra el listado de un programa cuyo objetivo es encontrar una palabra dentro de una cadena de caracteres de la sección de datos y copiar dicha palabra en otra zona de la sección de

Más detalles

Pasos para Realizar un Programa de lenguaje C en modo Consola en Visual Studio 2008 INDICE

Pasos para Realizar un Programa de lenguaje C en modo Consola en Visual Studio 2008 INDICE Pasos para Realizar un Programa de lenguaje C en modo Consola en Visual Studio 2008 Ignacio Alvarez García Septiembre 2012 INDICE 1. Preparar el proyecto para el programa... 1 1.1. Abrir Visual Studio

Más detalles

Funciones en C. En esta unidad aprenderás a: Comprender el desarrollo de un programa utilizando funciones

Funciones en C. En esta unidad aprenderás a: Comprender el desarrollo de un programa utilizando funciones Funciones en C 03 En esta unidad aprenderás a: Comprender el desarrollo de un programa utilizando funciones Establecer la diferencia entre la definición y declaración de una función Conocer y utilizar

Más detalles

Breve tutorial para escribir drivers en Linux

Breve tutorial para escribir drivers en Linux Breve tutorial para escribir drivers en Linux Xavier Calbet GULIC (Grupo de Usuarios de LInux de Canarias) xcalbet@yahoo.es Do you pine for the nice days of Minix-1.1, when men were men and wrote their

Más detalles

Facultad de Ingeniería Universidad de Buenos Aires. 75.08 Sistemas Operativos Lic. Ing. Osvaldo Clúa Lic. Adrián Muccio.

Facultad de Ingeniería Universidad de Buenos Aires. 75.08 Sistemas Operativos Lic. Ing. Osvaldo Clúa Lic. Adrián Muccio. Facultad de Ingeniería Universidad de Buenos Aires 75.08 Sistemas Operativos Lic. Ing. Osvaldo Clúa Lic. Adrián Muccio Shell Scripting I Qué es Unix? Evolución desde Multics Sistemas Abiertos Sabores Dennis

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

Programación Concurrente

Programación Concurrente Master en Computación Programación Concurrente Bloque II: Programación concurrente en POSIX Tema 1. Introducción al estándar POSIX Tema 3. Gestión de Threads Tema 4. Gestión del Tiempo Tema 5. Planificación

Más detalles

UNIVERSIDAD DR. JOSE MATIAS DELGADO

UNIVERSIDAD DR. JOSE MATIAS DELGADO NOMBRE DE LA ASIGNATURA: PROGRAMACION DE COMPUTADORAS 1 a. Generalidades. Duración del Ciclo en Semanas: Número de Orden: 16 Código: PRC1 16 Ciclo Académico: Duración/Hora Clase: 50 III minutos Prerrequisito

Más detalles

Sistemas Operativos - Intro

Sistemas Operativos - Intro Sistemas Operativos - Intro Técnicas Digitales III Ing. Gustavo Nudelman 2012 Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Conceptos generales Un sistema operativo es simplemente un

Más detalles

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

Redes (IS20) Ingeniería Técnica en Informática de Sistemas - (2º Curso)

Redes (IS20) Ingeniería Técnica en Informática de Sistemas - (2º Curso) Redes (IS20) Ingeniería Técnica en Informática de Sistemas - (2º Curso) Práctica 2: Programación en Red. Protocolos TCP y UDP. Comunicación entre procesos mediante Sockets Descripción del equipo: 1. Ordenadores

Más detalles

Oposicions 2007. Cos facultatiu tècnic, especialitat informàtica. PEL. CAS PRÀCTIC 4

Oposicions 2007. Cos facultatiu tècnic, especialitat informàtica. PEL. CAS PRÀCTIC 4 Oposicions 2007. Cos facultatiu tècnic, especialitat informàtica. PEL. CAS PRÀCTIC 4 PREGUNTA 1 Donada la següent DTD i un document XML basat en ella. Indica les incorreccions que veus en el document XML.

Más detalles

La jerarquía del sistema de archivos.

La jerarquía del sistema de archivos. Taller de GNU/Linux El sistema de archivos hoja 1/7 Universidad Nacional de La Matanza Ingeniería en Informática Taller de GNU/Linux La jerarquía del sistema de archivos. La siguiente información es un

Más detalles

Introducción al tipo de dato ARRAY

Introducción al tipo de dato ARRAY CONTENIDOS. Introducción al tipo de dato ARRAY. Definición, Características, Declaración, Acceso e Inicialización.. Arrays multidimensionales Definición, Declaración, Acceso e Inicialización. Introducción

Más detalles

Ingeniería Informática. Curso 3º. Sistemas Operativos Examen Final. TEORIA. 4 de Septiembre de 2009

Ingeniería Informática. Curso 3º. Sistemas Operativos Examen Final. TEORIA. 4 de Septiembre de 2009 Ingeniería Informática. Curso 3º. Sistemas Operativos Examen Final. TEORIA. 4 de Septiembre de 2009 1. [PROCESOS] a) Considerar el siguiente código: void main() { int j=10; pid_t pid; for (int i=0; i

Más detalles

FUNDAMENTOS DE PROGRAMACIÓN

FUNDAMENTOS DE PROGRAMACIÓN FUNDAMENTOS DE PROGRAMACIÓN Sabino Miranda Jiménez Universidad Autónoma del Estado de México (UAEM) Apuntadores (1) Un apuntador es una variable que contiene la dirección de una ora variable Generan código

Más detalles

Un puntero no es más que una variable estática cuyo contenido es una dirección de memoria.

Un puntero no es más que una variable estática cuyo contenido es una dirección de memoria. Los punteros en C 1 Introducción Cómo se organiza la memoria asociada a un programa? Como una colección de posiciones de memoria consecutivas. En ellas se almacenan los distintos tipos de datos, que ocupan,

Más detalles

Se guardan en archivos con extencion c y los cabezales con extension h

Se guardan en archivos con extencion c y los cabezales con extension h Se guardan en archivos con extencion c y los cabezales con extension h Tipos de Variables: Tipo Tamaño(bytes) Limite inferior Limite superior char 1 -- -- unsigned char 1 0 255 short int 2-32768 +32767

Más detalles