llamada al sistema

Upload: carlos-saldana

Post on 09-Apr-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 llamada al sistema

    1/4

    Metodo de interaccin usado en un sistema operativo para que los programas realicen

    peticiones alnucleo del sistema operativo. En ingls:system call.

    Fundamentos

    Los programas son un conjunto de instrucciones organizadas con un objetivo. Un

    proceso es conceptualmente unprograma en ejecucin. En los sistemas operativos

    multitarea, puede haber varios procesos ejecutndose concurrentemente. Cada proceso

    puede requerir el uso de recursos de hardware, comoperifricos, o espacio dememoria

    principal, u otros recursos.

    Dado que el hardware es compartido por mltiples 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 fsico es manejado

    exclusivamente por el Sistema Operativo. La nica forma de acceder al hardware es atravs de las llamadas al sistema, que estn perfectamente definidas. Esto no ocurre en

    los Sistemas Operativos no duales, como elMS-DOS, donde cualquier proceso poda

    acceder a todos los niveles del hardware.

    Losprocesadores actuales pueden ejecutar las instrucciones en diferentes estados. En

    los sistemas duales, normalmente son llamados modo supervisor y modo usuario. Los

    procesadores proveen diferentes niveles de privilegio de forma tal que los sistemas

    operativos pueden restringir las operaciones que ejecutan los programas tanto por

    razones de seguridad como de estabilidad. Estas operaciones incluyen el acceso a

    perifricos, habilitar o deshabilitarinterrupciones, cambiar el estado del procesador, y

    acceder a la memoria, entre otras.

    [editar] Mecanismo

    Las llamadas al sistema comnmente usan una instruccinespecial de la CPUque causa

    que el procesador transfiera el control a un cdigo privilegiado, previamente

    especificado por el mismo cdigo. Esto permite al cdigo privilegiado especificar donde

    va a ser conectado as como el estado del procesador.

    Cuando una llamada al sistema es invocada, la ejecucin del programa que invoca es

    interrumpida y sus datos son guardados, normalmente en su PCB, para poder continuarejecutndose luego. El procesador entonces comienza a ejecutar las instrucciones de

    cdigo de alto nivel de privilegio, para realizar la tarea requerida. Cuando esta finaliza,

    se retorna al proceso original, y contina su ejecucin. El retorno al proceso

    demandante no obligatoriamente es inmediato, depende del tiempo de ejecucin de la

    llamada al sistema y delalgoritmo deplanificacin deCPU.

    [editar] Las bibliotecas como intermediarias

    Generalmente, los sistemas operativos proveenbibliotecas que relacionan los programas

    de usuario y el resto del sistema operativo, usualmente una biblioteca C comoglibc o el

    runtime de Microsoft C. Esta biblioteca maneja los detalles de bajo nivel para transferir

    informacin al kernel y conmutar a modo supervisor, as como cualquier procesamiento

    http://enciclopedia.us.es/index.php/Sistema_operativohttp://enciclopedia.us.es/index.php/Nucleo_del_sistema_operativohttp://enciclopedia.us.es/index.php/Nucleo_del_sistema_operativohttp://enciclopedia.us.es/index.php/Nucleo_del_sistema_operativohttp://es.wikipedia.org/wiki/Proceso_(inform%C3%A1tica)http://es.wikipedia.org/wiki/Programa_(computaci%C3%B3n)http://es.wikipedia.org/wiki/Multitareahttp://es.wikipedia.org/wiki/Hardwarehttp://es.wikipedia.org/wiki/Hardwarehttp://es.wikipedia.org/wiki/Perif%C3%A9ricoshttp://es.wikipedia.org/wiki/Perif%C3%A9ricoshttp://es.wikipedia.org/wiki/Memoria_principalhttp://es.wikipedia.org/wiki/Memoria_principalhttp://es.wikipedia.org/wiki/Memoria_principalhttp://es.wikipedia.org/wiki/MS-DOShttp://es.wikipedia.org/wiki/MS-DOShttp://es.wikipedia.org/wiki/Unidad_central_de_procesamientohttp://es.wikipedia.org/wiki/Interrupcioneshttp://es.wikipedia.org/w/index.php?title=Llamada_al_sistema&action=edit&section=2http://es.wikipedia.org/wiki/Conjunto_de_instruccioneshttp://es.wikipedia.org/wiki/Conjunto_de_instruccioneshttp://es.wikipedia.org/wiki/CPUhttp://es.wikipedia.org/wiki/CPUhttp://es.wikipedia.org/wiki/C%C3%B3digohttp://es.wikipedia.org/wiki/PCBhttp://es.wikipedia.org/wiki/Algoritmohttp://es.wikipedia.org/wiki/Algoritmohttp://es.wikipedia.org/wiki/Planificaci%C3%B3nhttp://es.wikipedia.org/wiki/Planificaci%C3%B3nhttp://es.wikipedia.org/wiki/CPUhttp://es.wikipedia.org/wiki/CPUhttp://es.wikipedia.org/w/index.php?title=Llamada_al_sistema&action=edit&section=3http://es.wikipedia.org/wiki/Biblioteca_(inform%C3%A1tica)http://es.wikipedia.org/wiki/Glibchttp://es.wikipedia.org/wiki/Glibchttp://es.wikipedia.org/wiki/Runtimehttp://es.wikipedia.org/wiki/Microsofthttp://es.wikipedia.org/wiki/N%C3%BAcleo_(inform%C3%A1tica)http://enciclopedia.us.es/index.php/Sistema_operativohttp://enciclopedia.us.es/index.php/Nucleo_del_sistema_operativohttp://es.wikipedia.org/wiki/Proceso_(inform%C3%A1tica)http://es.wikipedia.org/wiki/Programa_(computaci%C3%B3n)http://es.wikipedia.org/wiki/Multitareahttp://es.wikipedia.org/wiki/Hardwarehttp://es.wikipedia.org/wiki/Perif%C3%A9ricoshttp://es.wikipedia.org/wiki/Memoria_principalhttp://es.wikipedia.org/wiki/Memoria_principalhttp://es.wikipedia.org/wiki/MS-DOShttp://es.wikipedia.org/wiki/Unidad_central_de_procesamientohttp://es.wikipedia.org/wiki/Interrupcioneshttp://es.wikipedia.org/w/index.php?title=Llamada_al_sistema&action=edit&section=2http://es.wikipedia.org/wiki/Conjunto_de_instruccioneshttp://es.wikipedia.org/wiki/CPUhttp://es.wikipedia.org/wiki/C%C3%B3digohttp://es.wikipedia.org/wiki/PCBhttp://es.wikipedia.org/wiki/Algoritmohttp://es.wikipedia.org/wiki/Planificaci%C3%B3nhttp://es.wikipedia.org/wiki/CPUhttp://es.wikipedia.org/w/index.php?title=Llamada_al_sistema&action=edit&section=3http://es.wikipedia.org/wiki/Biblioteca_(inform%C3%A1tica)http://es.wikipedia.org/wiki/Glibchttp://es.wikipedia.org/wiki/Runtimehttp://es.wikipedia.org/wiki/Microsofthttp://es.wikipedia.org/wiki/N%C3%BAcleo_(inform%C3%A1tica)
  • 8/8/2019 llamada al sistema

    2/4

    de datos o tareas que deba ser realizada en modo supervisor. Idealmente, esto reduce la

    dependencia entre el sistema operativo y la aplicacin, e incrementa suportabilidad.

    [editar] Ejemplos y herramientas

    En los sistemas operativos bajo normaPOSIX o similares, algunas llamadas al sistema

    muy usadas son open,read, write, close,wait, exec, fork, exit y kill. Los sistemas

    operativos actuales tienen cientos de llamadas, por ejemplo Linux 2.x y FreeBSD tienen

    ms de 300.

    [editar] Implementaciones tpicas

    La implementacin de las llamadas al sistema requiere un control de transferencia que

    involucra caractersticas especificas de la arquitecturadelprocesador. Una forma tpica

    de implementar es usar unainterrupcin porsoftware.Linux usa esta implementacin

    en la arquitecturax86.

    Para los procesadores con arquitectura RISC, est es la nica forma, pero arquitecturas

    CISC como x86 soportan otras tcnicas adicionales. Un ejemplo es SYSCALL/SYSRE.

    Las llamadas al sistema

    Ya se ha comentado que el sistema operativo es una interfaz que oculta

    las peculiaridades del hardware. Para ello ofrece una serie de serviciosque constituyen una mquina virtual ms fcil de usar que el hardwarebsico. Estos servicios se solicitan mediante llamadas al sistema.

    La forma en que se realiza una llamada al sistema consiste en colocar

    una serie de parmetros en un lugar especfico (como los registros del

    procesador), para despus ejecutar una instruccin del lenguaje mquina

    del procesador denominada trap (en castellano, trampa). La ejecucin

    de esta instruccin mquina hace que el hardware guarde el contador de

    programa y la palabra de estado del procesador (PSW, Processor Status

    Word) en un lugar seguro de la memoria, cargndose un nuevo contador

    de programa y una nueva PSW. Este nuevo contador de programacontiene una direccin de memoria donde reside una parte (un programa)

    del sistema operativo, el cual se encarga de llevar a cabo el servicio

    solicitado. Cuando el sistema operativo finaliza elservicio, coloca un

    cdigo de estado en un registro para indicar si hubo xito o fracaso, y

    ejecuta una instruccin return from trap, esta instruccin provoca que el

    hardware restituya el contador de programa y la PSW del programa querealiz la llamada al sistema, prosiguindose as su ejecucin.

    Normalmente los lenguajes de alto nivel tienen una (o varias) rutinas de

    biblioteca por cada llamada al sistema. Dentro de estos procedimientos

    se asla el cdigo (normalmente en ensamblador) correspondiente a lacarga de registros con parmetros, a la instruccin trap, y a obtener el

    http://es.wikipedia.org/wiki/Portabilidadhttp://es.wikipedia.org/wiki/Portabilidadhttp://es.wikipedia.org/w/index.php?title=Llamada_al_sistema&action=edit&section=4http://es.wikipedia.org/wiki/POSIXhttp://es.wikipedia.org/wiki/POSIXhttp://es.wikipedia.org/wiki/Openhttp://es.wikipedia.org/wiki/Readhttp://es.wikipedia.org/wiki/Readhttp://es.wikipedia.org/w/index.php?title=Write&action=edit&redlink=1http://es.wikipedia.org/wiki/Closehttp://es.wikipedia.org/wiki/Waithttp://es.wikipedia.org/wiki/Waithttp://es.wikipedia.org/w/index.php?title=Exec&action=edit&redlink=1http://es.wikipedia.org/wiki/Bifurcaci%C3%B3n_(sistema_operativo)http://es.wikipedia.org/wiki/Exithttp://es.wikipedia.org/wiki/Killhttp://es.wikipedia.org/w/index.php?title=Llamada_al_sistema&action=edit&section=5http://es.wikipedia.org/wiki/Arquitecturahttp://es.wikipedia.org/wiki/Arquitecturahttp://es.wikipedia.org/wiki/Unidad_central_de_procesamientohttp://es.wikipedia.org/wiki/Interrupci%C3%B3nhttp://es.wikipedia.org/wiki/Interrupci%C3%B3nhttp://es.wikipedia.org/wiki/Softwarehttp://es.wikipedia.org/wiki/Softwarehttp://es.wikipedia.org/wiki/Linuxhttp://es.wikipedia.org/wiki/X86http://es.wikipedia.org/wiki/X86http://es.wikipedia.org/wiki/RISChttp://wwwdi.ujaen.es/~lina/TemasSO/glosario/GLOSARIO.htm#trampahttp://wwwdi.ujaen.es/~lina/TemasSO/glosario/GLOSARIO.htm#palabra_estado_pswhttp://wwwdi.ujaen.es/~lina/TemasSO/glosario/GLOSARIO.htm#palabra_estado_pswhttp://wwwdi.ujaen.es/~lina/TemasSO/glosario/GLOSARIO.htm#serviciohttp://wwwdi.ujaen.es/~lina/TemasSO/glosario/GLOSARIO.htm#serviciohttp://wwwdi.ujaen.es/~lina/TemasSO/glosario/GLOSARIO.htm#lenguajes_alto_nivelhttp://wwwdi.ujaen.es/~lina/TemasSO/glosario/GLOSARIO.htm#ensambladorhttp://es.wikipedia.org/wiki/Portabilidadhttp://es.wikipedia.org/w/index.php?title=Llamada_al_sistema&action=edit&section=4http://es.wikipedia.org/wiki/POSIXhttp://es.wikipedia.org/wiki/Openhttp://es.wikipedia.org/wiki/Readhttp://es.wikipedia.org/w/index.php?title=Write&action=edit&redlink=1http://es.wikipedia.org/wiki/Closehttp://es.wikipedia.org/wiki/Waithttp://es.wikipedia.org/w/index.php?title=Exec&action=edit&redlink=1http://es.wikipedia.org/wiki/Bifurcaci%C3%B3n_(sistema_operativo)http://es.wikipedia.org/wiki/Exithttp://es.wikipedia.org/wiki/Killhttp://es.wikipedia.org/w/index.php?title=Llamada_al_sistema&action=edit&section=5http://es.wikipedia.org/wiki/Arquitecturahttp://es.wikipedia.org/wiki/Unidad_central_de_procesamientohttp://es.wikipedia.org/wiki/Interrupci%C3%B3nhttp://es.wikipedia.org/wiki/Softwarehttp://es.wikipedia.org/wiki/Linuxhttp://es.wikipedia.org/wiki/X86http://es.wikipedia.org/wiki/RISChttp://wwwdi.ujaen.es/~lina/TemasSO/glosario/GLOSARIO.htm#trampahttp://wwwdi.ujaen.es/~lina/TemasSO/glosario/GLOSARIO.htm#palabra_estado_pswhttp://wwwdi.ujaen.es/~lina/TemasSO/glosario/GLOSARIO.htm#serviciohttp://wwwdi.ujaen.es/~lina/TemasSO/glosario/GLOSARIO.htm#lenguajes_alto_nivelhttp://wwwdi.ujaen.es/~lina/TemasSO/glosario/GLOSARIO.htm#ensamblador
  • 8/8/2019 llamada al sistema

    3/4

    cdigo de estado a partir de un registro. La finalidad de estos

    procedimientos de biblioteca es ocultar los detalles de la llamada al

    sistema, ofreciendo una interfaz de llamada al procedimiento. Como una

    llamada al sistema depende del hardware (por ejemplo, del tipo de

    registros del procesador), la utilizacin de rutinas de biblioteca hace el

    cdigo portable.

    El nmero y tipo de llamadas al sistema vara de un sistema operativo a

    otro. Existen, por lo general, llamadas al sistema para ejecutar ficheros

    que contienen programas, pedir ms memoria dinmica para un

    programa, realizar labores de E/S (como la lectura de un carcter de un

    terminal), crear un directorio, etc. Ejemplos de rutinas de biblioteca que

    realizan llamadas al sistema en un entorno del sistema operativo C-

    UNIX son: read, write, malloc, exec, etc.

    Llamadas al Sistema

    Las llamadas al sistema proveen una interfaz entre los procesos y el Sistema de

    Operacin. 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

    Llamadas al sistema

    l A cada llamada al sistema le corresponde un procedimiento que el programa de

    usuario puede llamar

    l El procedimiento se encarga de iniciar la llamada al sistema (mediante un

    TRAP)

    l Son distintas en cada sistema

    l ej: count = read (file, buffer, nbytes);

    Elementos de Sistemas Operativos Llamadas al Sistema1. Control de procesos y tareascargar, ejecutar

    fin, abortar

    crear proceso, terminar proceso

    obtener atributos, establecer atributos del proceso

    esperar tiempo

    esperar sucesos, indicar sucesos

    asignar, liberar memoria

    2. Manipulacin de Archivoscrear, eliminar

    abrir, cerrar

    leer, escribir, reposicionar

    obtener atributos, establecer atributos

    3. Manipulacin de Dispositivossolicitar, liberar

    leer, escribir, reposicionar

    obtener atributos, establecer atributos

    conectar, desconectar lgicamente

    4. Mantenimiento de Informacinobtener, establecer fecha y hora

    obtener, establecer datos del sistema

    http://wwwdi.ujaen.es/~lina/TemasSO/glosario/GLOSARIO.htm#codigo_portablehttp://wwwdi.ujaen.es/~lina/TemasSO/glosario/GLOSARIO.htm#memoria_dinamicahttp://wwwdi.ujaen.es/~lina/TemasSO/glosario/GLOSARIO.htm#codigo_portablehttp://wwwdi.ujaen.es/~lina/TemasSO/glosario/GLOSARIO.htm#memoria_dinamica
  • 8/8/2019 llamada al sistema

    4/4

    obtener atributos de proceso, archivo o dispositivo

    establecer atributos de proceso, archivo o dispositivo

    5. Comunicacionescrear, eliminar conexin

    enviar, recibir mensajes

    transferir informacin de estado

    conectar, desconectar dispositivos remotos

    CategorasInterfaz entre el proceso y el Sistema Operativo

    Llamadas al SistemaDisponibles como instrucciones en lenguajeensamblador o lenguajes de alto nivel, y se listan enlos manuales empleados en la programacin del

    lenguaje