llamada al sistema
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§ion=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§ion=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§ion=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§ion=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§ion=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§ion=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§ion=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§ion=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