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 int"rprete de comandos El int"rprete de comandos llamado shell #conc$a% $ace un uso intenso de las llamadas al sistema! Cuando un usuario entra al sistema, se inicia un s$ell! &na vez activado el s$ell espera a que el usuario emita un comando! Cuando se emite un comando el s$ell crea un proceso derivado ' espera a que este termine, devolviendo un estatus ' un valor de retorno! Este int"rprete de comandos normalmente esta fuera del (ernel o n)cleo, ' las llamadas se $acen por niveles $acia su interior como se muestra en al*unos e+emplos mostrados mas adelante! Llamadas al sistema Con+unto de servicios ,-sicos que proporciona el sistema operativo De.nen la interfaz entre un proceso ' el sistema operativo! Implementaci/n de las llamadas al sistema Se implementan como interrupciones soft0are o traps! 1ormalmente se proporciona una interfaz como funciones de ,i,lioteca de len*ua+es de pro*ramaci/n que ocultan el trap ' dan la apariencia de llamadas a procedimientos o funciones prede.nidas De.nen Interfaz entre el S!O! ' los pro*ramas de usuario Dependen muc$o de la m-quina ' en ocasiones est-n en c/di*o ensam,lador Len*ua+es de alto nivel tienen li,reras de procedimientos que permiten $acer llamadas al sistema &n proceso de usuario necesita un servicio del S!O! % llamada al sistema % control al S!O! Entonces el S!O! realiza las si*uientes tareas2 Determina qu" quiere el proceso invocador, e3aminando los par-metros e+ecutar- la llamada al sistema Devuelve el control a la instrucci/n que est- despu"s de la llamada al sistema Llamada a un procedimiento especial que se e+ecuta en modo 1)cleo TI4OS DE LLAMADAS A SISTEMAS Tomado del Captulo 5 del li,ro de 6alvin Sil,ersc$atz, 7ma! Edicion E8EM4LOS DE AL6&1AS LLAMADAS A SISTEMA Mane+o de procesos pid 9 for:#% ; crea un proceso $i+o id"ntico a proceso padre s 9 0ait#<status% ; espera a que un proceso $i+o termine ' determina su condici/n de salida s 9 e3ecve#name,ar*v,envp% ; sustitu'e la ima*en esencial de un proceso e3it#status% ; pone .n a la e+ecuci/n del proceso ' produce la condici/n de salida Se=ales oldfunc 9 si*nal#sinc,func% ; arre*la que al*una se=al sea capturada, pasada por alto, etc! s 9 :ill#pid,si*% ; envia una se=al a un proceso residual 9 alarm#seconds% ; plani.ca o pro*rama una se=al SI6AL>M despu"s de cierto tiempo s 9 pause#% ; suspende al solicitante $asta la si*uiente se=al Mane+o del arc$ivo fd 9 creat#name,mode% ; crea un nuevo arc$ivo o trunca uno e3istente fd 9 m:nod#name,mode,addr% ; crea un nodo i especial, re*ular o de directorio fd 9 open#.le,$o0% ; a,re un arc$ivo para lectura, escritura o am,os s 9 close#fd% ; cierra un arc$ivo a,ierto n 9 read#fd,,u?er,n,'tes% ; lee datos de un arc$ivo en un ,u?er n 9 0rite#fd,,u?er,n,'tes% ; escri,e datos de un arc$ivo en un ,u?er pos 9 lsee:#fd,o?set,0$ence% ; mueve el apuntador del arc$ivo a al*una otra parte del arc$ivo Mane+o del directorio ' del sistema de arc$ivos s 9 lin:#name@,name5% ; crea un nuevo re*istro del directorio, name5 para name@ del arc$ivo s 9 unlin:#name% ; elimina una entrada del directorio s 9 mount#special,name,r0Aa*% ; monta un sistema de arc$ivo s 9 unmount#special% ; desmonta un sistema de arc$ivo s 9 s'nc#% ; limpia todos los ,loques reservados en la memoria para el disco 4rotecci/n s 9 c$mod#name,mode% ; cam,ia los ,its de protecci/n asociados con un arc$ivo uid 9 *etuid#% ; determina el uid del solicitante *id 9 *et*id#% ; determina el *id del solicitante s 9 setuid#uid% ; .+a el uid del solicitante s 9 set*id#*id% ; .+a el *id del solicitante Mane+o del tiempo seconds 9 time#<seconds% ; determina el tiempo transcurrido en se*s! desde el @o! de enero de @B7C s9 stime#tp% ; .+a el tiempo desde el @o! de enero de @B7C s 9 utime#.le,timep% ; .+a la $ora del D)ltimo accesoD del arc$ivo s 9 times#,u?er% ; .+a los tiempos del usuario ' del sistema que se $an usado $asta a$ora