lunes, 7 de septiembre de 2009

Llamadas al Sistema

La principal razón para utilizar llamadas al sistema es para
requerir un servicio del kernel al cual el código de usuario
no puede acceder.
Los principales servicios disponibles son:

Administracion de Procesos
Administracion de Memoria
Administración del Sistema de archivos (E/S de archivos)
Administración de señales

Realiza una descripcion de cada uno de las funciones o instrucciones asociados a cada uno de los servicios de las llamadas al sistema disponibles en linux.

Saludos

22 comentarios:

  1. estas son algunas de las llamadas al sistema
    fork – crear proceso hijo (m+c)

    ioperm - ajusta algunos permisos de e/s (m-c)
    iopl – ajusta permisos de e/s (m-c)
    ipc – comunicacion entre procesos (-c)
    kill – enviar una senal a un proceso (m+c)
    killpg - enviar una senal a un grupo de procesos (mc!)

    ResponderEliminar
  2. de lo anterior que dijo gaby solo aumentaria algunos de los ejemplos y herramientas para algunas llamadas al sistema las mas usadas son open,read,waitclose,exec,fork, etc.y la definicion porsupuesto que seria un mecanismo usado por un programa aplicativo para solicitar un servicio al sistema operativo.

    ResponderEliminar
  3. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  4. Llamadas al sistema por S.F.C.

    Llamadas al sistema para la gestión de procesos, por lo Tanto en el uso de las llamadas al
    sistema operativo (FORK, EXEC, SIGNAL, PIPE, DUP, etc.) Estos son algunos de los comandos que se pueden usar.

    Parser.- que permite leer los mandatos introducidos por el usuario.
    • < fichero
    Usa fichero como entrada estándar abriéndolo para lectura (man open).
    • > fichero
    Usa fichero como salida estándar.
    • >& fichero
    Usa fichero como estándar error.
    • prompt
    Mensaje de apremio antes de leer cada línea. Por defecto será:
    ”msh>”
    Con el argumento filev se pueden obtener los ficheros utilizados en la redirección:
    • filev[0] apuntará al nombre del fichero a utilizar en la redirección de entrada
    en caso de que exista o NULL si no hay ninguno.
    • filev[1] apuntará al nombre del fichero a utilizar en la redirección de salida en
    caso de que exista o NULL si no hay ninguno.

    ResponderEliminar
  5. Una llamada de sistema es una interfaz entre una aplicación de espacio y de un servicio que éste presta. Debido a que el servicio se presta en el núcleo, una llamada directa no puede realizarse, en su lugar, debe utilizar un proceso de cruce de la frontera user-space/kernel

    el CSI La aplicación de las llamadas al sistema en Linux es variada basada en la arquitectura, pero también puede variar dentro de una arquitectura dada. Por ejemplo, los mayores procesadores x86 utilizado un mecanismo de interrupciones para migrar desde el espacio de usuario a kernel-space, pero IA-32 nuevos procesadores proporcionan instrucciones que optimicen la transición (con sysenter y las instrucciones de sysexit Debido a que existen muchas opciones y el resultado final es tan complicado, me quedo con una superficie de discusión a nivel de los detalles de la interfaz

    ResponderEliminar
  6. bueno lo q he leido de los comentarios anteriores son buenas definiciones acerca de algunos comandos y de las llamadas al sistema
    fork – crear proceso hijo (m+c). y una aportacion q haria es q la unica forma de acceder al hardware es a traves de las llamadas al sistema, q estan perfectamente definidas.
    esto no ocurre en los sistemas operativos no DUALES, como el ms-dos,donde cualquier proceso podia acceder a todos loas niveles del hardware.
    nota: si estoy mal en mi definicion me dicen va...

    ResponderEliminar
  7. llamadas al sistema es una herramienta que nos facilita el acceso a los recursos del sistema, xejemplo abrir un archivo(administrador del sistema de archivos), la instruccion es fopen.

    ResponderEliminar
  8. Las llamadas al sistema para la gestión del sistema de ficheros de Linux son las de crear (creat), cerrar (close), abrir (open), leer y escribir (read , write). También posee una llamada al sistema que nos devuelve el estado del archivo, esta llamada es fstat y se utiliza mucho ya que también devuleve los permisos de los archivos ya que en Linux como en Unix y en los demas sistemas que son multiusuario los ficheros están protegidos según para quien los use: Chmod para cambiar los modos de un archivo y getuid, setuid, getgid y setgid paraobtener iformación sobre los usuario.......

    ResponderEliminar
  9. Las llamadas al sistema proveen una interfaz entre los procesos y el Sistema de Operación. Por lo general estas llamadas se encuentran disponibles como instrucciones en lenguaje ensamblable. En algunos sistemas podemos realizar llamadas al sistema desde programas en lenguajes de alto nivel, en cuyo caso se asemejan a llamadas a funciones o procedimientos

    ResponderEliminar
  10. MICRONUCLEO O MICROKERNEL

    Micronúcleo (microkernel), es un tipo de núcleo de un sistema operativo que provee un conjunto de primitivas o llamadas al sistema mínimas, para implementar servicios básicos como espacios de direcciones, comunicación entre procesos y planificación básica.
    Todos los otros servicios (gestión de memoria, sistema de archivos, operaciones de E/S, etc.), que en general son provistos por el núcleo, se ejecutan como procesos servidores en espacio de usuario.
    Las principales ventajas de su utilización son la reducción de la complejidad, la descentralización de los fallos (un fallo en una parte del sistema no lo colapsaría por completo) y la facilitación para crear y depurar controladores de dispositivos.
    Por otro lado, sus principales dificultades son la complejidad en la sincronización de todos los módulos que componen el micronúcleo y su acceso a la memoria, la anulación de las ventajas de Zero Copy, la Integración con las aplicaciones. Además, los procesadores y arquitecturas modernas de hardware están optimizadas para sistemas de núcleo que pueden mapear toda la memoria.
    NUCLEO MONOLITICO
    Un núcleo monolítico es un tipo de núcleo o kernel de un sistema operativo. Como ejemplo de sistema operativo de núcleo monolítico están UNIX, Linux y FreeBSD.Un sistema operativo con núcleo monolítico concentra todas las funcionalidades posibles (planificación, sistema de archivos, redes, controladores de dispositivos, gestión de memoria, etc) dentro de un gran programa. El mismo puede tener un tamaño considerable, y deberá ser recompilado por completo al añadir una nueva funcionalidad. Todos los componentes funcionales del núcleo tienen acceso a todas sus estructuras de datos internas y a sus rutinas. Un error en una rutina puede propagarse a todo el núcleo. Todos sus componentes se encuentran integrados en un único programa que ejecuta en un único espacio de direcciones. En este tipo de sistemas, todas las funciones que ofrece el sistema operativo se ejecutan en modo supervisor.
    El problema que plantean este tipo de sistemas radica en lo complicado que es modificar el sistema operativo para añadir nuevas funcionalidades y servicios. En efecto, añadir una nueva característica implica la modificación de un gran programa, compuesto por miles de líneas de código fuente y funciones, cada una de las cuales puede invocar a otras cuando así lo requiera. Además en este tipo de sistemas no se sigue el principio de ocultación de la información. Para solucionar este problema es necesario dotar de cierta estructura al sistema operativo.
    La alternativa es tener una estructura de micronúcleo, donde las partes funcionales están divididas en unidades separadas con mecanismos de comunicación estrictos entre ellos.

    ResponderEliminar
  11. -*LLAMADAS ASL SISTEMA.
    *-Son un conjunto basico del sistema operativo
    *-Definen la interfaz entre procesos
    *-Son una parte intrinsca del nucleo del sistema operativo(Kernel)
    *-Kernel:coloeccin de moludulossofware que se ejecutan de forma privilegiada(se tiene acceso atodos los recursos de la maquina)
    programas de usuario
    interfaz de llamadas al sistema
    kernel
    hadaware(recursos)
    LA IMPLENMETNTACION de las llamadas al sistema se realizan mediante interrupciones de sofware o traps.
    nortmalmente se proporciona al usuario una interfaz (funciones biblioteca)que ocultan al usuariuo el m ecanismo interno de loas llamdas

    **tipo de llamadas UNIX
    **llamadas al sistema para gestion de procesos
    **llamdas al sistama para gestion de señales
    **llamadas al sistema para gestion de memoria
    **llamadas al sistema para gestion de ficheros y direcciones
    **llamadas al sistema para gestion de E/S.

    ResponderEliminar
  12. Las llamadas al sistema para la gestión del sistema de ficheros crear (creat), cerrar (close), abrir (open), leer y escribir (read , write). ,y las de archivos Estas llamadas son: Chmod para cambiar los modos de un archivo y getuid, setuid, getgid y setgid para obtener iformación sobre los usuarios.

    ResponderEliminar
  13. La razon pincipal de utilizar llamadas al sitema es para requerir servicios al kernel al cual el sodigo del usuario no ppuede accesar

    * Administracion de procesos
    -creacion de procesos(fork, system, exec)
    -atributos(getpid, getvid,...)
    - eliminacion de pocesos(kill, abort, exit,...)
    -espera por la terminacion de proceos(wait, waitpid)

    *Administracion de memoria
    -sbrk, mlock, start

    *administracion del sistema de archivos E/S
    -directorios (mkdir, chdir,...)
    -archivos(oen, creat, read, write,...)

    *Administracion de senales
    -creacion de señales(sigaction, signal, sigemptyset, sigprocmask,..)
    -envia de senales(kill)

    ResponderEliminar
  14. Llamada al sistema


    Metodo de interacción usado en un sistema operativo para que los programas realicen peticiones al nucleo del sistema operativo. system call.

    Dado que el hardware es compartido por múltiples procesos, el acceso a los recursos debe ser administrado para garantizar su correcto uso y evitar problemas de seguridad (si procesos malintencionados desean acceder a recursos asignados a otros procesos). Por estas razones,en los sistemas duales, el acceso al ambiente físico es manejado exclusivamente por el Sistema Operativo. La única forma de acceder al hardware es a través de las llamadas al sistema, que están perfectamente definidas. Esto no ocurre en los Sistemas Operativos no duales, como el MS-DOS, donde cualquier proceso podía acceder a todos los niveles del hardware.

    ResponderEliminar
  15. hola muchachos...
    Sus aportaciones son muy buenas, pero me gustaria que realizaran una lista de los tipos de llamadas al sistema y definieran cada uno.

    saludos

    ResponderEliminar
  16. Tipos de llamadas al sistema son:
    *administracion de procesos
    *administracion de archivos

    Administracion de procesos:
    °los procesos se pueden crear mediante:
    fork,exec(ejecucion de programas) y
    system(llama de forma directa al sistema).
    °identificadores de procesos
    pid,ppid(identificador de procesos padre)
    waitpid:espera por uno o todos los procesos
    hijos.
    Administrador de archivos:
    °abrir==> open
    escribir==> write
    leer==>read
    cerrar==> close
    Iseek:indica la posicion actual del archivo
    stat:para solicitar informacion de un archivo
    manejo de archivos:para utilizar un archivo se
    debe primero abrirlo con open
    -especificar el nombre del archivo
    -O_RDONLY->lectura
    -O_WRONLY->escritura
    -para crear usar O_CREAT
    -en todos los casos se retorna un descriptor
    del archivo(fd).
    Es lo que vimos en la clase...

    ResponderEliminar
  17. LLAMADAS AL SISTEMA CON ARCHIVOS.

    ARCHIVO:es un conjunto de registros relacionados

    Muchos S. O. soportan varios tipos de archivos, por ej.: archivos regulares, directorios, archivos especiales de caracteres, archivos especiales de bloques, etc.

    Los Archivos Regulares son aquellos que contienen información del usuario.
    Los Directorios son archivos de sistema para el mantenimiento de una estructura del sistema de archivos.
    Los Archivos Especiales de Caracteres:
    Tienen relación con la e / s.
    Se utilizan para modelar dispositivos seriales de e / s (terminales, impresoras, redes, etc.).
    Los Archivos Especiales de Bloques se utilizan para modelar discos.


    Las llamadas más comunes al sistema relacionadas con los archivos son:

    Create (crear): el archivo se crea sin datos.
    Delete (eliminar): si el archivo ya no es necesario debe eliminarse para liberar espacio en disco. Ciertos S. O. eliminan automáticamente un archivo no utilizado durante “n” días.
    Open (abrir): antes de utilizar un archivo, un proceso debe abrirlo. La finalidad es permitir que el sistema traslade los atributos y la lista de direcciones en disco a la memoria principal para un rápido acceso en llamadas posteriores.
    Close (cerrar): cuando concluyen los accesos, los atributos y direcciones del disco ya no son necesarios, por lo que el archivo debe cerrarse y liberar la tabla de espacio interno.
    Read (leer): los datos se leen del archivo; quien hace la llamada debe especificar la cantidad de datos necesarios y proporcionar un buffer para colocarlos.
    Write (escribir): los datos se escriben en el archivo, en la posición actual. El tamaño del archivo puede aumentar (agregado de registros) o no (actualización de registros).
    Append (añadir): es una forma restringida de “write”. Solo puede añadir datos al final del archivo.
    Seek (buscar): especifica el punto donde posicionarse. Cambia la posición del apuntador a la posición activa en cierto lugar del archivo.
    Get attributes (obtener atributos): permite a los procesos obtener los atributos del archivo.
    Set attributes (establecer atributos): algunos atributos pueden ser determinados por el usuario y modificados luego de la creación del archivo. La información relativa al modo de protección y la mayoría de las banderas son un ejemplo obvio.
    Rename (cambiar de nombre): permite modificar el nombre de un archivo ya existente.

    ResponderEliminar
  18. LLAMADAS AL SISTEMA-SEÑALES

    hay diferentes formas de una llamada al siistema tambien se puedo utilizar como una accion una señal mediante una llamada al sistema para indicar la comunicacion y coneccion ya sea de un hardware o un software.

    Señales
    – Interrupciones SW que se usan para:
    • que un proceso pueda interrumpir a otros
    • indicar a otros procesos que se ha detectado un error por HW
    (lo detecta el núcleo y avisa con señales al resto de capas del SO)
    – Recepción de señales:
    • Cuando un proceso recibe una señal, muere
    • Para evitarlo, el proceso usa la llamada “signal”:
    signal( TIPO_SEÑAL, TRATAMIENTO )
    – solo vale para una vez
    – captura la señal recibida, evita la muerte del proceso
    – salva el Entorno Volátil (EV) del proceso
    – ejecuta el tratamiento que se le pasa como parámetro
    – recupera el EV del proceso, para dejarlo como estaba

    ResponderEliminar
  19. LLAMADAS AL SISTEMA(PIPES O TUBERIAS)

    Existe una llamada al sistema estrictamente dedicada a la creación de tuberías
    anónimas: pipe. Las tuberías con nombre se crean utilizando la función mkfifo, o
    bien la llamada al sistema mknod.
    Creación de una tubería y ejecución de un programa
    Es frecuente utilizar tubería para comunicarse con un programa externo. Se
    proporciona dos funciones de biblioteca para simplificar esta tarea:

    FILE *popen (const char *command, const char *type);
    int pclose (FILE *stream);
    Pipe

    La función popen crea una tubería, y luego un proceso hijo. Este proceso ejecuta el
    mandato especificado por el parámetro mandato. Se devuelve un descriptor de
    entradas/salidas correspondiente a la tubería, según el valor de parámetro type:
    • Si type es la cadena r, el descriptor es accesible en lectura, y
    permite acceder a la salida estándar del mandato.
    • Si type es la cadena w, el descriptor es accesible en escritura,
    y permite acceder a la entrada estándar del mandato.
    La función pclose puede llamarse para cerrar la tubería, y utiliza la función fclose
    para el cierre. Luego provoca la finalización del proceso hijo asociado, que había
    sido creado por la llamada a popen.

    ResponderEliminar
  20. La implementación de las llamadas al sistema requiere un control de transferencia que involucra características especificas de la arquitectura del procesador. Una forma típica de implementar es usar una interrupción por software. Linux usa esta implementación en la arquitectura x86. claudia catsñeda

    Para los procesadores con arquitectura RISC, está es la única forma, pero arquitecturas CISC como x86 soportan otras técnicas adicionales. Un ejemplo es SYSCALL/SYSRET.
    DE.. CLAUDIA CASTAÑEDA

    ResponderEliminar
  21. Generalmente, los sistemas operativos proveen librerías que relacionan los programas de usuario y el resto del sistema operativo, usualmente una librería C como glibc o el runtime de Microsoft C. Esta librería maneja los detalles de bajo nivel para transferir información al kernel y conmutar a modo supervisor, así como cualquier procesamiento de datos o tareas que deba ser realizada en modo supervisor. Idealmente, esto reduce la dependencia entre el sistema operativo y la aplicación, e incrementa su portabilidad. veronica

    ResponderEliminar
  22. Un sistema distribuido se define como: una colección de computadores separados físicamente y conectados entre sí por una red de comunicaciones distribuida; cada máquina posee sus componentes de hardware y software que el usuario percibe como un solo sistema (no necesita saber qué cosas están en qué máquinas). El usuario accede a los recursos remotos (RPC) de la misma manera en que accede a recursos locales, o un grupo de computadores que usan un software para conseguir un objetivo en común.
    Los sistemas distribuidos deben ser muy confiables, ya que si un componente del sistema se descompone otro componente debe de ser capaz de reemplazarlo, esto se denomina Tolerancia a Fallos.
    Ventajas:
    Procesadores más poderosos y a menos costos
    • Desarrollo de Estaciones con más capacidades
    • Las estaciones satisfacen las necesidades de los usuarios.
    • Uso de nuevas interfaces.
    Avances en la Tecnología de Comunicaciones.
    • Disponibilidad de elementos de Comunicación.
    • Desarrollo de nuevas técnicas.
    Compartición de Recursos.
    • Dispositivos (Hardware).
    • Programas (Software).
    Eficiencia y Flexibilidad.
    • Respuesta Rápida.
    • Ejecución Concurrente de procesos (En varias computadoras).
    • Empleo de técnicas de procesamiento distribuido.
    Disponibilidad y Confiabilidad.
    • Sistema poco propenso a fallas (Si un componente no afecta a la disponibilidad del sistema).
    • Mayores servicios que elevan la funcionalidad ( Monitoreo, Telecontrol, Correo Eléctrico, Etc.).

    Crecimiento Modular.
    • Es inherente al crecimiento.
    • Inclusión rápida de nuevos recursos.
    • Los recursos actuales no afectan.
    Desventajas:
    *Requerimientos de mayores controles de procesamiento.
    *Velocidad de propagación de información ( Muy lenta a veces).
    *Servicios de replicación de datos y servicios con posibilidades de fallas.
    *Mayores controles de acceso y proceso ( Commit ).
    *Administración más compleja.
    *Costos.

    ResponderEliminar