LLAMADAS AL SISTEMA

Page 1

1

LLAMADOS AL SISTEMA 1

Resumen –Los Sistemas Operativos, a partir de este momento, abreviado (SO) desde sus inicios en los años 50 han pasado de ser simples máquinas usadas para realizar cálculos matemáticos a ser una de las herramientas más importantes del siglo XXI debido a los grandes avances que se han dado sobre estos, pues cabe resaltar que ha sido tanto el desarrollo en la computación que este ha permitido progresos en áreas tales como, la biología, la química, la física entre otros. Los SO modernos son diseñados con el objetivo de responder a los nuevos desarrollos de hardware y software, permitiendo así que lo usuarios realicen una multitud de tareas, estas se pueden realizar gracias a los llamdos al sistema (System Call)2 el cual se encarga de solicitar los servicios al SO, sin embargo, surgen dos preguntas que se desean responder ¿Qué son los llamados al sistema? Y ¿Para qué sirven ?, en el trasncurso de este documento se responderan estas preguntas.

La gestión de la memoria: El módulo de gestión de la memoria del SO controla los procesos que se ubicarán en la memoria, el lugar donde estarán ubicados y la cantidad de memoria que se le asignada a cada uno (ver figura 1).

Figura 1: Gestión de memoria principal3

La gestión del proceso: El módulo de gestión del proceso del SO controla la decisión de cuál proceso ejecutar, durante cuánto tiempo y tal vez con qué prioridad. La gestión de E/S4: El módulo de gestión de E/S del SO controla la comunicación con los dispositvos (ver figura 2).

Figura 2: Dispositivos de entrada y salida.5

I.

INTRODUCCIÓN

Los SO son software que estan implicados en casi todos los aspectos de la computación, estos podrían ser:

La gestión de archivos: Este módulo proporciona una interfaz de nivel superior que permite a los usuarios y los programas creen, borren, modifiquen, abran, cierre y apliquen otras operaciones a varios tipos de archivos (figura 3)

1

4 2

En computación los llamados a sistema es la forma programática en la que un software solicita un servicio. 3 https://www.google.com/search?q=gestion+de+la+memoria+principal&rlz=1C5CHFA_enCO80 2CO802&sxsrf=ALeKk02Tqa7nbvMD7dICu4IBWoU7dkRCw:1583280678013&source=lnms&tbm=isch&sa=X&ved=2ahUKE wjV4pGTxP_nAhVEd6wKHZU1DH0Q_AUoAXoECBAQAw&biw=1440&bih=821#imgrc=o VrsWeUy-BtRKM

Periféricos de entrada y salida.

5 https://www.google.com/search?q=perifericos+de+entrada+y+salida&tbm=isch&ved=2ahUKE wiEkPDox__nAhVWAlMKHYSxBRsQ2cCegQIABAA&oq=perif&gs_l=img.1.1.0i67j0i131i67l2j0i67l2j0i131j0l4.6269.6769..9206...0. 0..0.299.1376.2-5......0....1..gws-wizimg.......35i39.gBkpfX7Rvio&ei=__VeXsSUB9aEzAKE45bYAQ&bih=821&biw=1440&rlz=1 C5CHFA_enCO802CO802#imgrc=xtuvsBw0uz3PYM


2

Figura 3: sistema de archivos6

Accesos a la red: permitir que los usuarios y los programas en una computadora accedan a otros servicios y dispositivos en una red de computadoras (ver figura 4)

debe permitir que el usuario visualice los cambios realizados mediante una pantalla y finalmente si el usuario desea almacenar el archivo en su dispositivo, el SO debe brindar acceso a la gestión de archivos, para que este permita que el usuario le agregue un nombre y asigne un lugar de alojamiento. El proceso descrito anteriormente es un ejemplo sencillo de interacción entre usuario y máquina, que no puede llevarse acabo sin los llamados al sistema; pues son estos los que de forma programática solicitan un servicio al núcleo del SO en el que se ejecuta el software, es una forma en que los programas interactuán con el SO proporcionando así las funciones de este, mediante la interfaz de programa de aplicación (API8 ver figura 5).

Figura 4: Internet7

Estos son algunas de las tareas que los SO realizan internamente, con base a esto, se pudo evidenciar la interacción implicita entre las peticiones realizadas por el usuario y el SO, por ejemplo, si un usuario desea crear un archivo de texto el SO debe gestionar un espacio en memoria en el cual se alojará el programa que permitirá la edición del archivo, posterior a este, el SO debe permitir

Figura 5: API9

II.

LLAMADOS A SISTEMA.

que las E/S efectuen cambios en el arhivo por medio de entradas ya sean por teclado, pulsaciones táctiles o comandos por voz, también

Una llamada al sistema es un mecanismo que proporciona la interfaz entre un proceso y el sistema operativo. Es un método programático en

6

89.2113.0j13......0....1..gws-wiz-img.......35i39j0i67j0i131.kaiY5AgfrU&ei=VxhfXqyuL8SxwbkPptSZgAo&bih=821&biw=1440&rlz=1C5CHFA_enCO8 02CO802#imgrc=GNhaORLypfD04M

https://www.google.com/search?q=sistema+de+archivos&tbm=isch&ved=2ahUKEwiU0rK3n__ nAhXFsDEKHSVwAL4Q2cCegQIABAA&oq=sistema+de+archivos&gs_l=img.3..35i39j0l9.1044711.1047411..1047799... 0.0..0.167.2724.0j19......0....1..gws-wizimg.......0i131j0i67j0i131i67.e2AnuCpQXVU&ei=pcteXtTrOMXhxgGl4IHwCw&bih=821&bi w=1440&rlz=1C5CHFA_enCO802CO802#imgrc=XuhnQVn7Zr0H7M 7 https://www.google.com/search?q=acceso+a+redes&tbm=isch&ved=2ahUKEwjstcXJ6P_nAhX EWDABHSZqBqAQ2cCegQIABAA&oq=acceso+a+redes&gs_l=img.3..0l3j0i24l3.234093.236692..236829...0.0..0.1

8

Software que permite que dos programas de software interactúen entre sí.

9 https://www.google.com/search?q=interfaz+de+programa+de+aplicaci%C3%B3n+en+lo+SO&tbm=isch&ved=2ahUKEwijn IGA9MDoAhV1QTABHVrdAHIQ2cCegQIABAA&oq=interfaz+de+programa+de+aplicaci%C3%B3n+en+lo+SO&gs_lcp=CgNpbWcQA1CbwANY4NEDYM PTA2gAcAB4AIAB2AGIAdULkgEFMC43LjKYAQCgAQGqAQtnd3Mtd2l6LWltZw&sclient=img&ei=eTiBXuP7L_WC wbkP2rqDkAc&bih=821&biw=1440&rlz=1C5CHFA_enCO802CO802#imgrc=LF3o_8ZnMrgxfM


3

el que un programa de computadora solicita un servicio del núcleo del sistema operativo. En general, las llamadas al sistema están dadas como instrucciones en lenguaje ensamblador, además ofrecen los servicios del SO a los programas de usuario a través de la API (interfaz de programación de aplicaciones). Estos son los únicos puntos de entrada para el sistema kernel (ver figura 6).

podría comprender que instrucciones debe efectuar sin la ayuda de las interrupciones invocadas por los llamados al sistema. Otras de las funciones realizadas por las llamadas al sistema son: ≡ ≡ ≡ ≡ ≡

Leer y escribir desde archivos demanda llamadas al sistema. Si un sistema de archivos desea crear o eliminar archivos, se requieren llamadas al sistema. Las llamadas al sistema se utilizan para la creación y gestión de nuevos procesos. Las conexiones de red necesitan llamadas del sistema para enviar y recibir paquetes. Proteccion.

Figura 7: descripción de un llamado al sistema.11 Fiugra 6: llamadas al sistema10

Si partimos del ejemplo definido anteriormente, se pueden encontrar varios casos en el cual el SO debió usar los servicios proporcionados por los llamados al sistema para poder llevar a cabo la petición realizada por el usuario, por ejemplo, cuando el usuario quizo iniciar el editor de texto envió una señal a la API, indicándole al SO que debía gestionar un espacio en memoria donde se alojara el programa seleccionado. Por otro lado, los llamados al sistema también se encargan del manejo de los E/S por lo tanto, en el momento en que se ingresa texto ya sea por teclado, pulsaciones táctiles o comandos de voz, el SO no 10 11

https://www.guru99.com/system-call-operating-system.html https://www.guru99.com/system-call-operating-system.html

Como se pudo ver en la figura 7, los procesos ejecutados en el “modo de usuario “12 hasta el momento en que una llamada del sistema lo interrumpe. Después de eso, la llamada al sistema se ejecuta en modo kernel 13de forma prioritaria. Una vez que finaliza la ejecución de la llamada del sistema, el control vuelve al modo de usuario.

12 Conjunto de programas que gestionan los recursos de hardware y provee servicios a estos. 13 El nucleo o kernel es la parte central de un sistema operativo.


4

La ejecución de los procesos del usuario se reanudó en “modo Kernel14”. ≡

III.

Gestion de archivos: Las llamadas al sistema de administración de archivos manejan trabajos de manipulación de archivos como crear un archivo, leer y escribir, etc.

TIPOS DE LLAMADAS AL SISTEMA.

Funciones:

Existen 5 tipos de llamadas al sistema utilizadas por el SO (ver figura 8): ≡ Control de procesos. ≡ Gestión de archivos. ≡ Gestión de dispositivos. ≡ Mantenimiento de información. ≡ Comunicación.

≡ ≡ ≡ ≡ ≡

Crear un archivo Borrar archivo Abrir y cerrar archivo Leer, escribir y reposicionar Obtener y establecer atributos de archivo

Gestion de dispositivos: La administración de dispositivos hace el trabajo de manipulación de dispositivos, como leer de las memorias intermedias del dispositivo, escribir en las memorias intermedias del dispositivo, etc. Funciones: ≡ ≡ Figura 8: Tipos de llamados al sistema.15

Control de procesos: Este sistema llama a realizar la tarea de creación de procesos, terminación de procesos etc. Funciones: ≡ Fin y aborto ≡ Cargar y ejecutar ≡ Crear y finalizar procesos ≡ Evento de espera y firmado ≡ Asignar y liberar memoria.

14

Es el responsable de facilitar acceso seguro al hardware.

Solicitar y liberar dispositivo Lógicamente conectar / desconectar dispositivos Obtener y establecer atributos del dispositivo

Mantenimiento de información: Maneja la información y su transferencia entre el sistema operativo y el programa de usuario. Funciones: ≡ ≡

15

Obtener o establecer hora y fecha Obtenga atributos de proceso y dispositivo

https://www.guru99.com/system-call-operating-system.html


5

Comunicación: Estos tipos de llamadas al sistema se utilizan especialmente para las comunicaciones entre procesos. Funciones: ≡ ≡ ≡ ≡

IV.

Crear, eliminar conexiones de comunicaciones Enviar, recibir mensaje Ayuda OS para transferir información de estado Adjuntar o desconectar dispositivos remotos

REGLAS PARA PASAR PARÁMETROS PARA LA LLAMADA AL SISTEMA.

Existen tres reglas generales para parámetros a la llamada al sistema: ≡ ≡ ≡

V. ≡

≡ ≡ ≡

pasar

El sistema operativo debe extraer los parámetros de la pila. Los parámetros se pueden pasar en registros. Cuando hay más parámetros que registros, debe almacenarse en un bloque y la dirección del bloque debe pasarse como un parámetro a un registro.

LLAMADAS MÁS IMPORTANTES USADAS POR LOS SO. Wait(): Este se usa cuando un proceso necesita esperar a que otro termine para poder ejecutarse. Fork(): Los procesos utilizan esta llamada al sistema para crear procesos que son una copia de sí mismos Exec(): Se usa cuando se quiere reemplazar un archivo en ejecución. Kill():Se usa para terminar procesos. Exit(): Se usa para terminar la ejecución de un programa.

VI.

LLAMADAS AL SISTEMA EN WINDOWS

En el mundo Windows en general, las llamadas al sistema se denominan API (Windows application programming interface), es un conjunto de funciones residentes en bibliotecas (generalmente dinámicas, también llamadas DLL por sus siglas en inglés, término usado para referirse a éstas en Windows) que permiten que una aplicación corra bajo un determinado sistema operativo. Por ejemplo, Windows proporciona una función denominada FlashWindowEx que permite que la barra de título de una aplicación alterne entre un sombreado claro y otro oscuro. Las funciones API se dividen en varias categorías: ≡ Depuración y manejo de errores ≡ E/S de dispositivos ≡ Varias DLL, procesos e hilos ≡ Comunicación entre procesos ≡ Manejo de la memoria ≡ Monitoreo del desempeño ≡ Manejo de energía ≡ Almacenamiento ≡ Información del sistema ≡ GDI (interfaz para dispositivos gráficos) de Windows (tales como impresoras) ≡ Interfaz de usuario de 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.


6

VII.

LLAMADAS AL SISTEMA EN GNU/LINUX

Una llamada al sistema está implementada en el núcleo de Linux. Cuando un programa llama a una función del sistema, los argumentos son empaquetados y manejados por el núcleo, el cual toma el control de la ejecución hasta que la llamada se completa. Una llamada al sistema no es una llamada a una función ordinaria, y se requiere un procedimiento especial para transferir el control al núcleo. 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. Un listado de las llamadas al sistema de tu versión del kernel de Linux se puede encontrar en /usr/include/asm/unistd.h actualmente este fichero incluye a otros dos uno para arquitecturas de 32 bits y otro para arquitecturas de 64 bits (unistd_32.h y unistd_64.h respectivamente).

VIII. LLAMADAS AL SISTEMA EN SOLARIS Una aplicación que realiza una llamada al sistema en realidad llama a una función contenedora de libc que realiza cualquier postura requerida y luego ingresa al núcleo con una instrucción de trampa de software. Esto significa que el código de usuario y los compiladores no necesitan conocer la ruta al kernel y que los archivos binarios pueden funcionar en versiones 16

https://www.guru99.com/system-call-operating-system.html

posteriores del sistema operativo donde quizás la ruta se modificó, los números de llamada del sistema se sobrecargaron recientemente, etc.

Fiugra 9: llamadas al sistema arquitectura SPARC 16

En la función contenedora, los argumentos de llamada al sistema se reorganizan si es necesario. La función del kernel que implementa la llamada al sistema puede esperar los argumentos en un orden diferente al de la API de la llamada al sistema, por ejemplo, o varias llamadas al sistema relacionadas pueden compartir un solo número de llamada al sistema y seleccionar el comportamiento en función de un argumento adicional pasado al kernel. Luego, la función del núcleo coloca el número de llamada del sistema en el registro %g1 y ejecuta una de las instrucciones trap-always anteriores (por ejemplo, la biblioteca libc de 32 bits usa ta 0x8 y la libc de 64 bits usa ta 0x40). Hay mucha más actividad y posturas en las funciones de envoltorio que las descritas aquí, pero para nuestros propósitos simplemente notamos que todo se reduce a una instrucción ta para ingresar al kernel.


7

CONCLUSIÓN

La comunicación de los sistemas operativos con respecto al usuario son llevados a cabo por los llamados del sistemas operativos, donde por medio de una API, se realizan las diversas tareas que el usuario requiere llevar a cabo. Cada protocolo de comunicación puede variar a su vez con cada sistema operativo diferente según sea como Microsoft, Linux o Salaris.

IX.

REFERENCIAS.

▪ ▪ ▪

▪ ▪

https://www.geeksforgeeks.org/introduc tion-of-system-call/ https://www.guru99.com/system-calloperating-system.html https://www.tutorialspoint.com/whatare-system-calls-in-operating-system https://www.edicioneseni.com/open/mediabook.aspx?idR=df66 3d7617c5e82be1549651db02c6af Ramez Elmasri, A.Gil Carrick y David Levine. (2010). Sistemas operativos un enfoque en espiral. México : McGraw-Hill . https://docplayer.es/4891670-Llamadasal-sistema-sistemas-operativos.html https://flylib.com/books/en/2.830.1.29/ 1/


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.