Utilización De Una Función Del Sistema Operativo Por Un Usuario
|
|
- Luz Franco San Segundo
- hace 5 años
- Vistas:
Transcripción
1 Utilización De Una Función Del Sistema Operativo Por Un Usuario s. candela Universidad de Las Palmas de
2 Llamada al sistema: open Los usuarios utilizan las funciones del sistema operativo mediante las llamadas al sistema (~200 en versión 2 de Linux), definidas en el sistema por un nombre y un número, (open, 5). El nombre de la llamada se encuentra definido en el archivo ensamblador arch/i386/kernel/entry.s.long SYMBOL_NAME (sys_open) /* 5 */ El número en include/asm/unistd.h 1. Un usuario en su programa en C invoca una función de la biblioteca del sistema fd = open ("/dev/hda", O_RDONLY); 2. La biblioteca en C, (libc, libm) proporciona funciones que invocan a las llamadas al sistema open -> syscall -> INT 0x80 (parámetros de la llamada en los registros del procesador) INTERRUPCIÓN SOFTWARE paso de modo usario a modo NÚCLEO 3. mediante las tablas IDT + GDT se ejecuta la función sys_call definida en arch/i386/kernel/entry.s sys_call utiliza el número de llamada al sistema (open, 5) transmitido en el registro eax para buscar en la tabla sys_call_table la dirección de la llamada al sistema 4. las llamadas tienen la sintaxis: sys_nombre (argumentos) int sys_open (const char *filename, int flags, int mode) 5. cuando la llamada termina vuelve el control a sys_call y este devuelve el control al usuario y se retorna a modo USUARIO. 2
3 Programa para leer el primer sector del disco duro. (según la idea de Andries Brouwer, Abre el fichero especial /dev/hda, asociado al primer disco duro IDE. Lee en la variable buf el primer sector del disco #include <unistd.h> /* números de las llamadas al sistema */ #include <fcntl.h> int main(){ int fd; char buf[512]; fd = open("/dev/hda", O_RDONLY); if (fd >= 0) read(fd, buf, sizeof(buf)); return 0; 3
4 open El fuente de la llamada al sistema sys_open se encuentra en fs/open.c, las líneas maestras de la llamada son: (1) Obtiene memoria en el núcleo y pasa el nombre del fichero al núcleo. (2) Obtiene un descriptor de fichero no utilizado fd. (3) Realiza el open, busca el inode asociado al fichero. (4) Almacena información del paso (3) en la ranura del programa que llama. (5) Libera el espacio de memoria en el núcleo reservada en (1) devuelve el descriptor de fichero fd 4
5 sys_open Veamos los fuentes, quitando las líneas no esenciales, el manejo de errores y de bloqueo. int sys_open(const char *filename, int flags, int mode) { char *tmp = getname(filename); /*(1)*/ int fd = get_unused_fd(); /*(2)*/ struct file *f = filp_open(tmp, flags, mode); /*(3)*/ fd_install(fd, f); /*(4)*/ putname(tmp); /*(5)*/ return fd; 5
6 (1) getname() La función getname() se encuentra en fs/namei.c. Pasa parámetros al núcleo. asigna memoria en el núcleo para el nombre del fichero /dev/hda. copia el nombre del fichero desde el espacio del usuario al espacio del núcleo. #define getname() kmem_cache_alloc(names_cachep, SLAB_KERNEL) #define putname(name) kmem_cache_free(names_cachep, (void *)(name)) char *getname(const char *filename) { char *tmp = getname(); /* asigna memoria */ strncpy_from_user(tmp, filename, PATH_MAX + 1); return tmp; 6
7 (2) get_unused_fd() El procedimiento get_unused_fd() se encuentra en fs/open.c. current es un puntero que señala en la tabla de procesos (task struct) la ranura del proceso que hizo el open. la estructura files almacena la información de ficheros del proceso busca el primer descriptor de fichero libre lo marca como usado en la estructura files devuelve el descriptor de fichero encontrado int get_unused_fd(void) { struct files_struct *files = current->files; int fd = find_next_zero_bit(files->open_fds, files->max_fdset, files->next_fd); FD_SET(fd, files->open_fds); /* en uso ahora */ files->next_fd = fd + 1; return fd; 7
8 (4) fd_install() El procedimiento fd_install() se encuentra en include/linux/file.h. Almacena información devuelta por filp_open() en la estructura files. void fd_install(unsigned int fd, struct file *file) { struct files_struct *files = current->files; files->fd[fd] = file; 8
9 (3) filp_open() La function filp_open() se encuentra en fs/open.c. Realiza el trabajo principal de sys_open(). El inode contiene la información que precisa el s.o. sobre un fichero. dentry, entrada a un directorio describe el nombre de un fichero, mediante el número del inode mas la ruta para encontrarlo. Utiliza la estructura nameidata que se encuentra definida en include/linux/fs.h. en la búsqueda del inode, almacena la entrada al directorio dentry y el sistema de fichero utilizado mnt que nos lleva a los procedimientos que manejan las estructuras, superbloque, inode, de ese FS. struct nameidata { struct dentry *dentry; /*entrada en el directorio*/ struct vfsmount *mnt; /*tipo de sistema de ficheros utilizado*/ struct qstr last; /* contiene el path */ ; 9
10 filp_open() busca el inode asociado con el fichero mediante open_namei busca una entrada en la tabla filp, con dentry_open struct file *filp_open(const char *filename, int flags, int mode) { struct nameidata nd; open_namei(filename, flags, mode, &nd); return dentry_open(nd.dentry, nd.mnt, flags); 10
11 open_namei() El procedimiento open_namei() se encuentra en fs/namei.c: llena campos de la estructura nameidata (nd->mnt y nd->dentry). realiza la búsqueda de la entrada de directorio mediante path_walk(). open_namei(const char *pathname, int flag, int mode, struct nameidata *nd) { if (!(flag & O_CREAT)) { /* El caso mas simple realizar una búsqueda sencilla. */ if (*pathname == '/') { /*directorio root*/ nd->mnt = mntget(current->fs->rootmnt); nd->dentry = dget(current->fs->root); else { /*directorio actual*/ nd->mnt = mntget(current->fs->pwdmnt); nd->dentry = dget(current->fs->pwd); path_walk(pathname, nd); /* Check permissions etc. */... return 0;... 11
12 path_walk Busca en la cache de directorios recientemente usados la entrada de directorio mediante cached_lookup(). Si no encuentra la entrada. Busca la entrada de directorio en el sistema de ficheros mediante real_lookup(), que irá a disco. Al finalizar nd contiene la entrada al directorio, o lo que es lo mismo el inode con la información del fichero path_walk (const char *name, struct nameidata *nd) { struct dentry *dentry; for(;;) { struct qstr this; this.name = next_part_of(name); this.len = length_of(this.name); this.hash = hash_fn(this.name); /* if. or.. then special, otherwise: */ dentry = cached_lookup(nd->dentry, &this); if (!dentry) dentry = real_lookup(nd->dentry, &this); nd->dentry = dentry; if (this_was_the_final_part) return; 12
13 dentry_open() encuentra una entrada vacía en la tabla filp. initializa la estructura file. struct file * dentry_open(struct dentry *dentry, struct vfsmount *mnt, int flags) { struct file *f = get_empty_filp(); f->f_dentry = dentry; f->f_vfsmnt = mnt; f->f_pos = 0; f->f_op = dentry->d_inode->i_fop;... return f; 13
14 Procedimientos para trabajar con el FS Cada sistema de fichero proporciona unas estructuras que contienen los procedimientos para trabajar con el: super_operations, procedimientos para trabajar con la estructura superbloque. file_operations, procedimientos para trabajar con la estructura file. inode_operations, procedimientos para trabajar con la estructura inode. address_space_operations direcciones de procedimientos que hacen otras cosas y a sí mas. Para un sistema de ficheros especifico, la dirección de la función de búsqueda real_lookup, se encuentra en la estructura inode_operations en el inode contenido en la entrada dentry del directorio para el que estamos realizando la búsqueda. Esta función especifica para un determinado sistema de ficheros, debe leer en el disco y buscar en el directorio para este fichero que estamos buscando. struct dentry * real_lookup(struct dentry *parent, struct qstr *name, int flags) { struct dentry *dentry = d_alloc(parent, name); parent->d_inode->i_op->lookup(dir, dentry); return dentry; 14
15 fs/romfs/inode.c Ejemplos de sistemas de fichero son minix y romfs porque ellos son sencillos y pequeños. Por ejemplo, en fs/romfs/inode.c: romfs_lookup(struct inode *dir, struct dentry *dentry) { const char *name = dentry->d_name.name; int len = dentry->d_name.len; char fsname[romfs_maxfn]; struct romfs_inode ri; unsigned long offset = dir->i_ino & ROMFH_MASK; for (;;) { romfs_copyfrom(dir, &ri, offset, ROMFH_SIZE); romfs_copyfrom(dir, fsname, offset+romfh_size, len+1); if (strncmp (name, fsname, len) == 0) break; /* next entry */ offset = ntohl(ri.next) & ROMFH_MASK; inode = iget(dir->i_sb, offset); d_add (dentry, inode); return 0; 15
16 romfs_copyfrom() romfs_copyfrom(struct inode *i, void *dest, unsigned long offset, unsigned long count) { struct buffer_head *bh; bh = bread(i->i_dev, offset>>rombsbits, ROMBSIZE); memcpy(dest, ((char *)bh->b_data) + (offset & ROMBMASK), count); brelse(bh); 16
LECCIÓN 1: INTRODUCCIÓN AL SISTEMA OPERATIVO LINUX
LECCIÓN 1: INTRODUCCIÓN AL SISTEMA OPERATIVO LINUX LECCIÓN 1: INTRODUCCIÓN AL SISTEMA OPERATIVO LINUX...1 LECCIÓN 1: INTRODUCCIÓN AL SISTEMA OPERATIVO LINUX...1 1.1 Génesis...1 1.2 Arquitectura del núcleo...2
Sistema de Ficheros SOA
Sistema de Ficheros Indice Introducción Descripción básica del hardware Visión estática Organización del espacio de disco Gestión del espacio de disco Gestión del espacio de nombres Ejemplo: Linux Ext2
1. Procesos vs Hilos 2. Cuando se ejecutan los procesos 3. Fork 4. Clone 5. Cómo se ejucuta el fork? 6. do_fork() 7. copy_process 8.
1. Procesos vs Hilos 2. Cuando se ejecutan los procesos 3. Fork 4. Clone 5. Cómo se ejucuta el fork? 6. do_fork() 7. copy_process 8. Código Proceso Manejados por el sistema operativo Memoria independiente
Taller de Sistemas Operativos. Virtual File System 2012
Taller de Sistemas Operativos Virtual File System 2012 Conceptos generales Linux provee de una capa de software a nivel de núcleo para el acceso al sistema de archivos. La capa es denominada Virtual File
Aday Talavera Hierro Benigno Daniel Martínez Roca 2007/2008
PIPE Aday Talavera Hierro Benigno Daniel Martínez Roca 2007/2008 Índice Introducción Estructuras de datos Creación de Pipe Destrucción de Pipe Escritura de Pipe Lectura de Pipe. Introducción Pipe es un
3.4 Administración de archivos en Linux Sistema de Archivos Virtual VFS El sistema de archivos VFS Super Block inodo dentry file
3.4 Administración de archivos en Linux Comenzaremos la explicación del sistema de archivos de Linux, exponiendo la idea de lo que se denomina Sistema de Archivos Virtual o simplemente VFS (Virtual File
Tema 3: Sistemas de Archivos
Tema 3: Sistemas de Archivos SSOO - Curso 2005/06 E. Domínguez C. Villarrubia Departamento de Tecnologías y Sistemas de Información Escuela Superior de Informática Universidad de Castilla - La Mancha Febrero
REPRESENTACIÓN INTERNA DE FICHEROS
REPRESENTACIÓN INTERNA DE FICHEROS Inodos Existe un inodo para cada fichero del disco. Los inodos se encuentran: o o En disco, en la lista de inodos. En memoria, en la tabla de inodos, de estructura semejante
Boletín 3- Archivos. Departamento de Lenguajes y Sistemas Informáticos
Boletín 3- Archivos Departamento de Lenguajes y Sistemas Informáticos Indice 1. Introducción al acceso a Archivos 1. Acceso a archivos en alto nivel 2. Acceso a archivos en bajo nivel 2. El acceso a los
Taller de Sistemas Operativos. System Calls 2012
Taller de Sistemas Operativos System Calls 2012 Agenda Conceptos generales La API POSIX y las System Calls Syscalls System Call Handler Como implementar una System Call Contexto de una System Call Utilizar
Segundo control de teoría
Preguntas cortas. Contesta y justifica TODAS las preguntas en el espacio asignado (0,5 cada pregunta) a) Qué consecuencias tendría en la cantidad de accesos a disco eliminar la Tabla de Inodos? b) Qué
Cap.2. Kernel Sistemas Operativos - Viña del Mar.
Cap.2. Kernel Sistemas Operativos - Viña del Mar. Maximiliano Osorio mosorio@inf.utfsm.cl Universidad Técnica Federico Santa Maria 19 de agosto de 2017 1 / 44 Tabla de contenidos 1 Proceso Protección de
Entrada/Salida. Alexis Tcach. Sistemas Operativos, 1c DC - FCEyN - UBA
DC - FCEyN - UBA Sistemas Operativos, 1c-2016 Menú del día Menú del día Recordar que es un device driver Recordar tipos de device drivers Programación básica (pseudocódigo). Más real en el taller Recordando
Entrada y Salida de Archivos
Entrada y Salida de Archivos E/S Básica de Archivo El servicio básico es sin buffering, a diferencias de la E/S estándar (stdio.h), dado que las primeras generan llamadas al sistema (read y write). Son
Planificador de procesos Creación de hilos y subprocesos. terminación de un hilo y notificarla Ejecución de programas desde ficheros ejecutables
1 Dónde estamos? Planificador de procesos Creación de hilos y subprocesos Llamadas al sistema que permiten esperar por la terminación de un hilo y notificarla Ejecución de programas desde ficheros ejecutables
Biblioteca de sistema
* Para la realización del presente examen se aconseja un tiempo de 2 horas. Teoría 1. Explique en detalle cómo se pasa una llamada al sistema operativo. El sistema operativo se activa cuando debe responder
SISTEMA DE FICHEROS EN UNIX
SISTEMA DE FICHEROS EN UNIX SISTEMA DE FICHEROS EN UNIX CONTENIDOS: - El subsistema de ficheros en la arquitectura general de Unix. - El buffer caché. - Estructura del buffer caché. - Funcionamiento del
Sistemas Operativos sesión 12: tuberías
Sistemas Operativos sesión : tuberías Grado en Ingeniería Informática Universidad Carlos III de Madrid Agenda Linux Comunicación con tuberías Ejercicios Agenda Linux Comunicación con tuberías Ejercicios
Plataformas de Tiempo Real
Master en Computación Plataformas de Tiempo Real POSIX Avanzado y Extensiones Tema 2. Gestión de Interrupciones en MaRTE OS Tema 3. Monitorización y control del tiempo de ejecución Tema 4. Planificación
Bloque I: Principios de sistemas operativos
Bloque I: Principios de sistemas operativos Tema 1. Principios básicos de los sistemas operativos Tema 2. Concurrencia Tema 3. Ficheros Tema 4. Sincronización y programación dirigida por eventos Tema 5.
Práctica 1: Intérprete de mandatos. Sistemas Operativos Área de Arquitectura y Tecnología de Computadores
Práctica 1: Intérprete de mandatos Introducción Desarrollo de un intérprete de mandatos (minishell) en UNIX/Linux en lenguaje C. Debe permitir: Ejecución de mandatos simples ls, cp, mv, rm, etc. Ejecución
El tiempo de búsqueda es de 3 + 0,04 x ms, siendo x el número de cilindros a recorrer.
1 SISTEMA DE FICHEROS Problema 1.1 La cola de acceso a un disco tiene las siguientes peticiones (solamente indicaremos el cilindro afectado). 10, 200, 75, 32, 450, 123. El tiempo de búsqueda es de 3 +
Tema 3: Ficheros. Enrique Soriano. 3 de marzo de Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC
Tema 3: Ficheros Enrique Soriano Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC 3 de marzo de 2010 (cc) 2010 Grupo de Sistemas y Comunicaciones. Algunos derechos reservados. Este trabajo
Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III
República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III Lenguaje C 1 Puntos previos Los códigos fuentes generados en C requieren ser compilados
Introducción al lenguaje C
Introducción al lenguaje C Ampliación de Informática Belarmino Pulido Junquera Índice 1. Presentación del lenguaje C 2. Estructura de un programa en C 3. Tipos de datos escalares 4. Operadores básicos
Sistemas Operativos: Programación de Sistemas. Curso 2006-07. Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.
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 2006-07 Francisco J. Santana 1 Programación
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
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
Apartado TGR Puntuación. No Presentado. EXAMEN DE SISTEMAS OPERATIVOS (Grado en Ing. Informática) 20/1/2014.
Apartado 1 2 3 4 5 6 7 TGR Puntuación No Presentado EXAMEN DE SISTEMAS OPERATIVOS (Grado en Ing. Informática) 20/1/2014. APELLIDOS Y NOMBRE:....................................................... Justificar
Formatos para prácticas de laboratorio
CARRERA PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA IC 2003-1 5314 Sistemas Operativos PRÁCTICA No. 6 LABORATORIO DE NOMBRE DE LA PRÁCTICA Comunicación entre procesos Tuberías DURACIÓN (HORA)
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
Estructuración del programa en partes más pequeñas y sencillas
Introducción Estructuración del programa en partes más pequeñas y sencillas Modularización Propósito único Identificable Reusable Mayor claridad: programación, depuración, etc. Construcción de librerías
LABORATORIO DE SISTEMAS ELECTRÓNICOS. Controladores para GNU/Linux
DEPARTAMENTO DE INGENIERÍA ELECTRÓNICA LABORATORIO DE SISTEMAS ELECTRÓNICOS Controladores para GNU/Linux Alvaro Araujo Marzo 06 OBJETIVOS CONCEPTO DE CONTROLADOR CONTROLADORES EN GNU/LINUX EJEMPLO DE CONTROLADOR
Tema 4: Gestión de Procesos
Tema 4: Gestión de Procesos SSOO - Curso 2005/06 E. Domínguez C. Villarrubia Departamento de Tecnologías y Sistemas de Información Escuela Superior de Informática Universidad de Castilla - La Mancha Marzo
1. Presentación del lenguaje C Creado en 1972 por D. Ritchie Lenguaje de propósito general Portátil o transportable (generalmente) Inicialmente de niv
Introducción al lenguaje C Informática Belarmino Pulido Junquera Índice 1. Presentación del lenguaje C 2. Estructura de un programa en C 3. Instrucciones del pre-procesador procesador 4. Tipos de datos
Práctica 2 - Manejo de estructuras de datos y punteros
Práctica 2 - Manejo de estructuras de datos y punteros Organización del Computador 2 1er Cuatrimestre 2017 1. Estructuras estáticas: Vectores y Matrices Ejercicio 1 Para cada uno de los siguientes ítems,
Programación de Sistemas. Programación de Sistemas con Ansi C sobre UNIX. Gestión de errores. Gestión de errores. Ficheros regulares
Programación de Sistemas con Ansi C sobre UNIX Pedro Merino Gómez Jesus Martínez Cruz Dpto. Lenguajes y Ciencias de la Computación Universidad de Málaga Programación de Sistemas Llamadas al sistema Gestión
Boletín 4- Procesos. Departamento de Lenguajes y Sistemas Informáticos
Boletín 4- Procesos Departamento de Lenguajes y Sistemas Informáticos Indice 1. Introducción (Procesos) 2. Identificadores de usuarios y procesos 3. La llamada fork() 4. Las llamadas wait() y exit() 5.
Funciones POSIX (I): Introducción
Funciones POSIX I Funciones POSIX I Llamadas al Llamadas al Sistema Sistema Gestión Básica Gestión Básica de Procesos de Procesos Procesos Procesos fork fork Señales Señales getpid getpid Memoria Memoria
Boletín 4- Procesos. Departamento de Lenguajes y Sistemas Informáticos
Boletín 4- Procesos Departamento de Lenguajes y Sistemas Indice 1. Introducción n (Procesos) 2. Identificadores de usuarios y procesos 3. La llamada fork() 4. Las llamadas wait() y exit() 5. La llamada
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
Examen Teórico (1/3 de la nota final)
Examen Teórico (1/3 de la nota final) 105000016 - Programación para Sistemas Grado en Ingeniería Informática (2009) Lenguajes y Sistemas Informáticos e Ingeniería de Software Facultad de Informática Universidad
Examen Final de SO Grau
Preguntas cortas 1. (0,5 puntos) Asumiendo que ninguna llamada devuelve error, representa las entradas nuevas de la TFA que aparecerán tras la ejecución del siguiente código: fork(); mknod( pipe, S_IFIFO
Para C un chero no es más que una porción de almacenamiento
Ficheros en C Para C un chero no es más que una porción de almacenamiento de memoria. C representa un chero como una estructura, de hecho el chero stdio.h contiene la dención de un chero como si fuese
Resumen Clase Anterior Ejercicio Clase 16 Archivos Ejemplo. ING1310 Introducción a la Computación. Archivos
ING1310 Introducción a la Computación Archivos Carlos Reveco creveco@dcc.uchile.cl careveco@miuandes.cl Facultad de Ingeniería/Universidad de los Andes/Chile Rev : 232 C.Reveco Facultad de Ingeniería/Universidad
Redirecciones y Tuberías
Redirecciones y Tuberías Ampliación de Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Redirecciones Redirección de la entrada y la salida estándar Unix/Linux definen
Asignación de disco en UNIX
SISTEMA DE FICHEROS Asignación de disco en UNIX Asignación de disco indexada (i-nodes) Bloques libres enlazados. Bloques de datos (y índices) Boot area Superblock Lista de i-nodes Introducció als Sistemes
Aplicación Multiproceso sobre HTTP Ejemplo -
LABORATORIO DE SISTEMAS OPERATIVOS (Curso 2013/2014) PRÁCTICA 3 Aplicación Multiproceso sobre HTTP Ejemplo - Objetivos del documento Este documento presenta un ejemplo, en el contexto de desarrollo planteado
ENTRADA/SALIDA. Relación Programa - Sistema Operativo - Hardware
ENTRADA/SALIDA UPCO ICAI Departamento de Electrónica y Automática 1 Relación Programa - Sistema Operativo - Hardware Mi programa no maneja directamente el hardware El sistema operativo es el que maneja
Archivos. Programación en C 1
Archivos Programación en C 1 Índice Tipos de archivos. Apertura de archivos. Cierre de archivos. Lectura de archivos. Escritura de archivos. Acceso directo en archivos binarios. Programación en C 2 Introducción
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
Funciones Definición de función
Funciones Definición de función Una función es un bloque de código que realiza una tarea específica. Una función es una porción de programa, identificable mediante un nombre, que realiza determinadas tareas
Sea el siguiente programa de nombre "c0p1" para copiar archivos (por simplicidad se ha eliminado todo control de errores): Se pide:
Sea el siguiente programa de nombre "c0p1" para copiar archivos (por simplicidad se ha eliminado todo control de errores): 1 /* c0p1 origen destino 2 * Copia "origen" sobre "destino" byte a byte, 3 * haciendo
Universidad de Costa Rica
1. Aspectos generales En este laboratorio se aprendio a usar funciones de sistema. Al principio se utilizo el modulo subprocess pero se tuvo muchos problemas por lo que se opto por glob. Definitivamente
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,
Prácticas de Sistemas operativos
Prácticas de Sistemas operativos David Arroyo Guardeño Escuela Politécnica Superior de la Universidad Autónoma de Madrid Segunda Semana: Procesos, Procesos Padre y Procesos Hijo, familia exec() 1 Entregas
Programación 1 Tema 16. Trabajo con ficheros: otras posibilidades
Programación 1 Tema 16 Trabajo con ficheros: otras posibilidades Objetivos Trabajo de forma no secuencial con ficheros Modo append Acceso directo Modo entrada y salida Objetivos Trabajo de forma no secuencial
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
Lenguaje C, tercer bloque: Funciones
Lenguaje C, tercer bloque: Funciones José Otero 1 Departamento de informática Universidad de Oviedo 28 de noviembre de 2007 Índice 1 Tipo puntero Concepto de puntero Operador dirección Operador indirección
MC Hilda Castillo Zacatelco PROCESOS
MC Hilda Castillo Zacatelco hildacz@gmail.com PROCESOS Definición y atributos Un proceso es la instancia de un programa en ejecución. Desde el punto de vista del SO, un proceso es la entidad más pequeña
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
Path.c. Universidad de Las Palmas de Gran Canaria 1. INTRODUCCIÓN CONVERSIÓN DE UN PATH EN SU CORRESPONDIENTE I-NODE...2
Path.c Universidad de Las Palmas de Gran Canaria 1. INTRODUCCIÓN...1 2. CONVERSIÓN DE UN PATH EN SU CORRESPONDIENTE I-NODE...2 3. CÓDIGO FUENTE (PATH.C)...4 3.1 EAT_PATH...4 3.2 LAST_DIR...5 3.3 GET_NAME...7
PUNTEROS DOBLES EN C XIII CUIEET MASPALOMAS. Sidonio Pérez Matilla EUITI de Eibar UPV
XIII CUIEET MASPALOMAS Sidonio Pérez Matilla EUITI de Eibar UPV INTRODUCCIÓN. DEFINICIONES DE PUNTERO y PUNTERO DOBLE. MAPA DE MEMORIA DE UN PROGRAMA CON PUNTEROS. FUNCIONES DE USUARIO Y PUNTEROS. EJEMPLO
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
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
Inodo en sistemas de ficheros Ext2. David Aguiar González
Inodo en sistemas de ficheros Ext2 David Aguiar González - CONTENIDO Estructura física Ext2 Inodo: - Qué es? - Estructuración Funciones ext2 Vs ext3 Vs ext4 Bibliografía ESTRUCTURA FÍSICA EXT2 (I) Todo
Contenido. Capítulo 1. Introducción a lenguaje C 1
Contenido Capítulo 1. Introducción a lenguaje C 1 Introducción... 2 Qué es un lenguaje de programación?... 2 Tipos de lenguajes de programación... 2 Introducción a lenguaje C... 2 Historia de lenguaje
Capitulo VI Arquitectura del sistema de archivos
Capitulo VI Arquitectura del sistema de archivos Las características que posee el sistema de archivos de UNIX son las siguientes: Posee una estructura jerárquica. Realiza un tratamiento consistente de
Tipos de Datos en C. Palabras reservadas en C
Tipos de Datos en C Tipo Tamaño de bits Rango char 8-128 a 127 unsigned char 8 0 a 255 signed char 8-128 a 127 int 16 32768 a 32767 unsigned int 16 0 a 65535 signed int 16 Igual que int short int 16 Igual
Los conocimientos previos necesarios para el desarrollo de estas prácticas son:
PRÁCTICA 2: MODIFICACIONES AL KERNEL Presentación Las prácticas de las asignaturas Ampliación de Sistemas Operativos y Diseño de Sistemas Operativos pretenden que el estudiante sea capaz de entender porciones
Tema 13: Manejo de archivos en lenguaje C
Tema 13: Manejo de archivos en lenguaje C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco)
Apellidos: Nombre: DNI: Parte Sistema Ficheros (Se deben contestar correctamente todas las cuestiones de cada pregunta para puntuar la misma).
Apellidos: Nombre: DNI: Sistemas Operativos Grado Ingeniera Informática UDC. Julio 2016 Sólo puede usar lápiz, bolígrafo y calculadora. Tiempo máximo para todo el examen: 3h Parte Sistema Ficheros (Se
Tema 3: Entrada/Salida de Ficheros
Tema 3: Objetivo: Almacenar datos en un dispositivo de almacenamiento secundario (p.e. disco duro). Pasos a seguir: 1 Abrir fichero 2 Escribir/leer del fichero 3 Cerrar fichero 1 Tema 3: Abrir el fichero:
Programación 1 Tema 16. Trabajo con ficheros: otras posibilidades
Programación 1 Tema 16 Trabajo con ficheros: otras posibilidades Objetivos Trabajo de forma no secuencial con ficheros Modo append Acceso directo Modo entrada y salida 2 Objetivos Trabajo de forma no secuencial
Plataformas de Tiempo Real
Master en Computación Plataformas de Tiempo Real POSIX Avanzado y Extensiones Tema 1. Ficheros y entrada/salida Tema 3. Monitorización y control del tiempo de ejecución Tema 4. Planificación EDF Tema 5.
EJERCICIO 1 (1 5 puntos)
Nº de Matrícula... EJERCICIO 1 (1 5 puntos) 15 minutos Escriba un programa en C denominado micp.c usando llamadas al sistema POSIX, que permita invocar el fichero ejecutable /bin/cp para copiar el contenido
Sintaxis de los aspectos generales de un lenguaje de programación
Sintaxis de los aspectos generales de un lenguaje de programación por Iván Cruz Un lenguaje de programación cuenta con una estructura y sintaxis que debe ser utilizada exactamente como se indique para
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
Instituto Técnico Jesús Obrero 4to año Programación Profesor: Luis Vallenilla
Instituto Técnico Jesús Obrero 4to año Programación Profesor: Luis Vallenilla Definición Archivos en Lenguaje C Estructura de datos dinámica y homogénea, compuesta por una colección de registros del mismo
Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)
Repaso Lenguaje C OBJETOS Variables Constantes Variable: objeto del ambiente cuyo contenido puede cambiar. Constante: objeto cuyo contenido no puede cambiar. Variables: - un nombre que la identifica. Deben
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
Programación de IA-32 Modo Real
Programación de IA-32 Modo Real Control del flujo de la ejecución Erwin Meza Vega IA-32 Modo real (1/2) Acceso sólo a características limitadas del procesador Se comporta como un 8086 muy rápido Uso de
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
Una función es un miniprograma dentro de un programa. Las funciones contienen varias
TEMA 6. FUNCIONES. Una función es un miniprograma dentro de un programa. Las funciones contienen varias sentencias bajo un solo nombre, que un programa puede utilizar una o más veces para ejecutar dichas
UNIDAD 3 Modularidad
Modularidad Funciones de biblioteca, uso. Módulos. Concepto. Clasificación. Ámbito de identificadores. Transferencia de información a y desde procedimientos: los parámetros, tipos de parámetros. Conceptos
Manipulación de archivos estructurados
Capítulo 1 Manipulación de archivos estructurados 1.1. Introducción Definición Un archivo es un medio de almacenamiento no volátil, es decir permanece luego de terminar la aplicación que la utiliza o luego
SISTEMAS OPERATIVOS: INTRODUCCIÓN Y CONCEPTOS BÁSICOS. Servicios del Sistema Operativo
SISTEMAS OPERATIVOS: INTRODUCCIÓN Y CONCEPTOS BÁSICOS Servicios del Sistema Operativo ADVERTENCIA 2 Este material es un simple guión de la clase: no son los apuntes de la asignatura. El conocimiento exclusivo
Gestión de Entrada/Salida y Sistema de Ficheros
Gestión de Entrada/Salida y Sistema de Ficheros Yolanda Becerra Fontal Juan José Costa Prats Facultat d'informàtica de Barcelona Universitat Politècnica de Catalunya BarcelonaTech 2014-2015QP Índice Conceptos
Fundamentos de la programación
Fundamentos de la programación 4A Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Facultad de Informática Universidad Complutense Archivos como parámetros
Ficheros. Archivo, o fichero: Características:
Ficheros Archivo, o fichero: Es una estructura de datos en memoria externa, cuyo tiempo de vida no está ligado a la ejecución del programa que lo crea o lo maneja. Un fichero existe desde que un programa
Programación 1 Desarrollo de proyectos de programación. Desarrollo de un módulo C++ de biblioteca para trabajar con conjuntos de letras
Programación 1 Desarrollo de proyectos de programación Desarrollo de un módulo C++ de biblioteca para trabajar con conjuntos de letras Objetivo del proyecto Desarrollo de un módulo C++ de biblioteca para
Segundo control de teoría
JUSTIFICA TODAS LAS RESPUESTAS. UNA RESPUESTA SIN JUSTIFICAR SE CONSIDERA INVALIDA EJERCICIO 1: Preguntas cortas (2 puntos) 1) Qué es el superbloque de un sistema de ficheros? qué tipo de información podemos
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.
LnxComm. Linux Communication. Fernando Pujaico Rivera
LnxComm Linux Communication Fernando Pujaico Rivera LnxComm : Linux Communication por Fernando Pujaico Rivera Copyright 2011 GPL (http://www.gnu.org/licenses/gpl.html)
UTN FRBA Algoritmos y Estructura de Datos Examen Final 13/02/2015. Apellido y nombre: Legajo: Cursó con Prof:
Sistema para el Seguimiento de Jugadores de Fútbol Temas evaluados: Resolución de problemas, estructuras de datos, archivos, listas, y lenguaje de programación. Contexto Usted es parte de un equipo que
Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.
Tema 8 : Gestión de memoria Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Introducción programa fuente otros objetos
Programación I Teoría I.
Programación I Teoría I http://proguno.unsl.edu.ar Horarios Teorías: Jueves 8:00 10:00; aula 58 (Bloque 2) Prácticas: Comisión 1: Licenciatura Martes de 10 a 13 en sala 7, bloque 2 jueves de 10 a 13 en