Documente Academic
Documente Profesional
Documente Cultură
Fundamentos
Los programas son un conjunto de instrucciones organizadas con un objetivo. Un
proceso es conceptualmente un programa en ejecución. En los sistemas operativos
multitarea, puede haber varios procesos ejecutándose concurrentemente. Cada proceso
puede requerir el uso de recursos de hardware, como periféricos, o espacio de memoria
principal, u otros recursos.
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.
[editar] Mecanismo
Las llamadas al sistema comúnmente usan una instrucción especial de la CPU que causa
que el procesador transfiera el control a un código privilegiado, previamente
especificado por el mismo código. Esto permite al código privilegiado especificar donde
va a ser conectado así como el estado del procesador.
Cuando una llamada al sistema es invocada, la ejecución del programa que invoca es
interrumpida y sus datos son guardados, normalmente en su PCB, para poder continuar
ejecutándose luego. El procesador entonces comienza a ejecutar las instrucciones de
código de alto nivel de privilegio, para realizar la tarea requerida. Cuando esta finaliza,
se retorna al proceso original, y continúa su ejecución. El retorno al proceso
demandante no obligatoriamente es inmediato, depende del tiempo de ejecución de la
llamada al sistema y del algoritmo de planificación de CPU.
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/SYSRE.
Llamadas al Sistema
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
Llamadas al sistema