Sei sulla pagina 1di 5

LLAMADAS AL SISTEMA

Las llamadas al sistema proporcionan una interfaz con la que el poder de invocar los servicios que el Sistema Operativo ofrece, rutinas tpicamente escritas en C o C++.

El intrprete de comandos
El intrprete de comandos llamado shell (concha) hace un uso intenso de las llamadas al sistema. Cuando un usuario entra al sistema, se inicia un shell. Una vez activado el shell espera a que el usuario emita un comando. Cuando se emite un comando el shell crea un proceso derivado y espera a que este termine, devolviendo un estatus y un valor de retorno. Este intrprete de comandos normalmente esta fuera del Kernel o ncleo, y las llamadas se hacen por niveles hacia su interior como se muestra en algunos ejemplos mostrados mas adelante. Llamadas al sistema Conjunto de servicios bsicos que proporciona el sistema operativo Definen la interfaz entre un proceso y el sistema operativo. Implementacin de las llamadas al sistema Se implementan como interrupciones software o traps. Normalmente se proporciona una interfaz como funciones de biblioteca de lenguajes de programacin que ocultan el trap y dan la apariencia de llamadas a procedimientos o funciones predefinidas

Denen Interfaz entre el S.O. y los programas de usuario Dependen mucho de la mquina y en ocasiones estn en cdigo ensamblador Lenguajes de alto nivel tienen libreras de procedimientos que permiten hacer llamadas al sistema Un proceso de usuario necesita un servicio del S.O. ) llamada al sistema ) control al S.O. Entonces el S.O. realiza las siguientes tareas: Determina qu quiere el proceso invocador, examinando los parmetros ejecutar la llamada al sistema Devuelve el control a la instruccin que est despus de la llamada al sistema Llamada a un procedimiento especial que se ejecuta en modo Ncleo

TIPOS DE LLAMADAS A SISTEMAS

Tomado del Captulo 2 del libro de Galvin Silberschatz, 7ma. Edicion

EJEMPLOS DE ALGUNAS LLAMADAS A SISTEMA Manejo de procesos pid = fork() - crea un proceso hijo idntico a proceso padre s = wait(&status) - espera a que un proceso hijo termine y determina su condicin de salida s = execve(name,argv,envp) - sustituye la imagen esencial de un proceso exit(status) - pone fin a la ejecucin del proceso y produce la condicin de salida Seales oldfunc = signal(sinc,func) - arregla que alguna seal sea capturada, pasada por alto, etc. s = kill(pid,sig) - envia una seal a un proceso residual = alarm(seconds) - planifica o programa una seal SIGALRM despus de cierto tiempo s = pause() - suspende al solicitante hasta la siguiente seal Manejo del archivo fd = creat(name,mode) - crea un nuevo archivo o trunca uno existente fd = mknod(name,mode,addr) - crea un nodo i especial, regular o de directorio fd = open(file,how) - abre un archivo para lectura, escritura o ambos s = close(fd) - cierra un archivo abierto n = read(fd,buffer,nbytes) - lee datos de un archivo en un buffer n = write(fd,buffer,nbytes) - escribe datos de un archivo en un buffer pos = lseek(fd,offset,whence) - mueve el apuntador del archivo a alguna otra parte del archivo Manejo del directorio y del sistema de archivos s = link(name1,name2) - crea un nuevo registro del directorio, name2 para name1 del archivo s = unlink(name) - elimina una entrada del directorio s = mount(special,name,rwflag) - monta un sistema de archivo s = unmount(special) - desmonta un sistema de archivo s = sync() - limpia todos los bloques reservados en la memoria para el disco Proteccin s = chmod(name,mode) - cambia los bits de proteccin asociados con un archivo uid = getuid() - determina el uid del solicitante gid = getgid() - determina el gid del solicitante s = setuid(uid) - fija el uid del solicitante s = setgid(gid) - fija el gid del solicitante Manejo del tiempo seconds = time(&seconds) - determina el tiempo transcurrido en segs. desde el 1o. de enero de 1970 s= stime(tp) - fija el tiempo desde el 1o. de enero de 1970

s = utime(file,timep) - fija la hora del "ltimo acceso" del archivo s = times(buffer) - fija los tiempos del usuario y del sistema que se han usado hasta ahora

Potrebbero piacerti anche