Llamadas Al Sistemas Expo
Llamadas Al Sistemas Expo
SISTEMA
Integrantes:
Control de procesos
Terminar, abortar
Cargar, ejecutar
Crear proceso, terminar proceso
Obtener atributos del proceso, establecer atributos del proceso
Esperar tiempo
Esperar evento, señalar evento
Asignar y liberar memoria
Administración de archivos
Crear archivos, borrar archivo
Abrir, cerrar
Leer, escribir, reposicionar
Obtener atributos de archivo, establecer atributos de archivo
Administración de dispositivos
Solicitar dispositivos, liberar dispositivo
Leer, escribir, reposicionar
Obtener atributos de dispositivo, establecer atributos
de dispositivos
Conectar o desconectar dispositivo lógicamente
Mantenimiento de información
Obtener hora o fecha, establecer hora o fecha.
Obtener datos del sistema, establecer datos del sistema.
Obtener atributos de proceso, archivos o dispositivo.
Establecer atributos de proceso, archivo o dispositivos.
Comunicaciones:
Crear, borrar conexión de comunicación.
Enviar, recibir mensajes.
Transferir información de estado.
Conectar o desconectar dispositivos remotos.
Llamadas al sistema en Windows
La ventaja de utilizar las API de Windows en el código es que pueden ahorrar tiempo
porque contienen numerosas funciones útiles ya escritas y listas para utilizar.
La desventaja es que puede resultar difícil trabajar con las API de Windows y
pueden ser implacables cuando las cosas van mal.
Llamadas al sistema en GNU/Linux
Sin embargo, la librería GNU C encapsula las llamadas al sistema con funciones de
manera que pueden ser llamadas de manera sencilla y se confunden con llamadas
a funciones ordinarias. Las funciones de entrada/salida como open y read son
ejemplos de llamadas al sistema en Linux. Linux tiene más de 300 diferentes
llamadas al sistema.
1. LLAMADAS AL SISTEMA PARA LA ADMINISTRACIÓN DE ARCHIVOS
CONCEPTOS BASE
• Administrador de archivos: aplicación que provee acceso a archivos y facilita el realizar
operaciones con ellos.
• Archivo: conjunto de información que se encuentra almacenada o guardada en la memoria
principal del ordenador, en el disco duro, en el disquete flexible o en los discos compactos.
CARACTERÍSTICAS DEL SISTEMA DE ARCHIVOS
Contiene programas de administración que controla la creación, borrado y acceso de archivos
de datos y programas.
Mantiene el registro de la ubicación física de los archivos.
Llamadas más usadas: read & write (mismos parámetros).
LLAMADA LSEEK
• Proceso de forma aleatoria
• Capaz de leer los registros del archivo en cualquier orden
• Con cada archivo hay un apuntador asociado, el cual indica la posición actual en el archivo.
• Cada operación de lectura (read) da la posición en el archivo con la cual iniciar.
• Una operación especial (seek) establece la posición de trabajo pudiendo luego leerse el archivo
secuencialmente.
Las primeras dos llamadas, mkdir y rmdir, crean y eliminan directorios vacíos,
respectivamente. La siguiente llamada es link. Su propósito es permitir que aparezca el
mismo archivo bajo dos o más nombres, a menudo en distintos directorios. Un uso común
es para permitir que varios miembros del mismo equipo de programación compartan un
archivo común, en donde cada uno de ellos puede ver el archivo en su propio directorio,
posiblemente bajo distintos nombres
No es lo mismo compartir un archivo que proporcionar a cada miembro del equipo una
copia privada; tener un archivo compartido significa que los cambios que realice
cualquier miembro del equipo serán visibles de manera instantánea para los otros
miembros; sólo hay un archivo. Cuando se realizan copias de un archivo, los cambios
subsiguientes que se realizan en una copia no afectan a las demás.
3. LLAMADAS AL SISTEMA PARA LA ADMINISTRACIÓN DE PROCESOS
Este tipo de llamadas al sistema permiten realizar "actividades" relacionadas con los
programas que están en espera para ejecución o que se están ejecutando, es decir,
cuando son un proceso; cada sistema operativo tiene sus formas de invocar dichas
llamadas, en el caso de los sistemas operativos bajo el núcleo Linux estas se pueden
invocar desde el Shell o interprete de comandos y desde el lenguaje C. Las llamadas
más comunes de este tipo son:
fork( )
getpid( )
getppid( )
La familia de llamadas exec…(…)
wait( )
waitpid(…)
exit(…)
system(…)
El sistema operativo UNIX dispone de un conjunto de llamadas al sistema que definen una
poderosa interfaz para la programación de aplicaciones (API) que involucren múltiples
procesos; abriendo las puertas a la programación concurrente. Este interfaz suministra al
desarrollador de software herramientas tanto para la creación, sincronización y
comunicación de nuevos procesos, como la capacidad de ejecutar nuevos programas.
El kernel crea un nuevo proceso, proceso hijo, realizando una copia (clonación) del proceso
que realiza la llamada al sistema fork (proceso padre). Así, salvo el PID y el PPID los dos
procesos serán inicialmente idénticos. De esta forma los nuevos procesos obtienen una
copia de los recursos del padre (heredan el entorno)
Sin embargo, no se ejecuta ningún nuevo programa, para conseguir esto, uno de los
procesos ha de realizar otra llamada al sistema, exec, para reinicializar (recubrir) sus
segmentos de datos de usuario e instrucciones a partir de un programa en disco. En este
caso no aparece ningún proceso nuevo.
El proceso hijo hereda la mayoría de los atributos del proceso padre, ya que se copian de su
segmento de datos del sistema. Sólo algunos atributos difieren entre ambos:
PID:
archivos: El hijo obtiene una copia de la tabla de descriptores de archivo del proceso padre, con
lo que comparten el puntero del archivo. Si uno de los procesos cambia ese puntero (realiza una
operación de E/S) la siguiente operación de E/S realizada por el otro proceso se hará a partir de la
posición indicada por el puntero modificado por el primer proceso. Sin embargo, al existir dos
tablas de descriptores de archivos si un proceso cierra su descriptor, el otro no se ve afectado.
Terminación de procesos. System call exit y wait
byte más a la derecha = 0
Llamada al sistema exit byte de la izquierda contiene el valor del
parámetro status de exit
En UNIX, cada archivo tiene un modo que se utiliza por protección. El modo incluye
los bits leer-escribir-ejecutar para el propietario, grupo y los demás. La llamada al
sistema chmod hace posible modificar el modo de un archivo. Por ejemplo, para
que un archivo sea de sólo lectura para todos excepto el propietario, podríamos
ejecutar chmod(“archivo”, 0644);
La llamada al sistema kill es la forma en que los usuarios y los procesos de usuario
envían señales. Si un proceso está preparado para atrapar una señal específica, y
luego ésta llega, se ejecuta un manejador de señales. Si el proceso no está
preparado para manejar una señal, entonces su llegada mata el proceso (de aquí
que se utilice ese nombre para la llamada). POSIX define varios procedimientos
para tratar con el tiempo
Por ejemplo, time sólo devuelve la hora actual en segundos, en donde 0
corresponde a Enero 1, 1970 a medianoche (justo cuando el día empezaba y no
terminaba).
En las computadoras que utilizan palabras de 32 bits, el valor máximo que
puede devolver time es de 232 – 1 segundos (suponiendo que se utiliza un
entero sin signo).
Este valor corresponde a un poco más de 136 años. Así, en el año 2106 los
sistemas UNIX de 32 bits se volverán locos, algo parecido al famoso problema
del año 2000 (Y2K) que hubiera causado estragos con las computadoras del
mundo en el 2000, si no fuera por el masivo esfuerzo que puso la industria de IT
para corregir el problema.
Si actualmente usted tiene un sistema UNIX de 32 bits, se le recomienda que lo
intercambie por uno de 64 bits antes del año 2106.
LA API WIN32 DE WINDOWS
La API Win32 de WindowsWindows y UNIX difieren de una manera fundamental en sus respectivos
modelos de programación.
Un programa de UNIX consiste en código que realiza una cosa u otra, haciendo llamadas al sistema
para realizar ciertos servicios. En contraste, un programa de Windows es por lo general manejado por
eventos.
El programa principal espera a que ocurra cierto evento y después llama a un procedimiento para
manejarlo. Los eventos comunes son las teclas que se oprimen, el ratón que se desplaza, un botón de
ratón que se oprime o un CD-ROM que se inserta. Después, los manejadores se llaman para procesar el
evento, actualizar la pantalla y actualizar el estado interno del programa. Desde luego que Windows
también tiene llamadas al sistema.
Con UNIX, hay casi una relación de uno a uno entre las llamadas al sistema (por ejemplo, read) y los
procedimientos de biblioteca (por ejemplo, read) que se utilizan para invocar las llamadas al sistema.En
otras palabras, para cada llamada al sistema, es raro que haya un procedimiento de biblioteca que sea
llamado para invocarloPOSIX tiene aproximadamente 100 llamadas a procedimientos.
Administración de procesos
Llamada Descripción
pid = fork() Crea un proceso hijo, idéntico al padre
pid = waitpid(pid, &statloc, opciones) Espera a que un hijo termine
Administración de archivos
Llamada Descripción
fd = open(archivo, como, …) Abre un archivo para lectura, escritura o ambas
Llamadas varias
Llamada Descripción
GRACIAS