Software">
Nothing Special   »   [go: up one dir, main page]

Principios de Entrada Salida

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 51

Entrada / Salida

Una de las funciones principales de un sistema operativo es el control de todos los dispositivos
de entrada / salida de la computadora. Debe enviar comandos a los dispositivos, detectar las
interrupciones y controlar los errores. El código de E/S representa una fracción significativa
del sistema operativo.

El corazón de una computadora lo constituye la CPU.

Pero no serviría de nada sin:


• Dispositivos de almacenamiento secundario (discos) y terciario (cintas y sistemas de
archivo).
• Dispositivos periféricos, que le permitan interactuar con el usuario.

 Generalmente están fuera de la computadora y se conectan a ella mediante cables.


 Son los teclados, ratones, micrófonos, cámaras y cualquier otro dispositivo de E/S que
se le ocurra conectar a una computadora.
Hardware de una computadora.

El sistema operativo realiza la intercomunicación entre los programas de aplicación y el


hardware, ósea maneja el hardware.
Todos estos dispositivos de E/S se pueden agrupar en tres grandes grupos:

• Periféricos. Se llama así a los dispositivos que permiten la comunicación entre los usuarios
y la computadora. Dentro de este grupo se incluyen todos los dispositivos que sirven para
proporcionar interfaz con el usuario, tanto para entrada (ratón, teclado, etc.) como para salida
(impresoras, pantalla, etc.).

• Dispositivos de almacenamiento. Se usan para proporcionar almacenamiento no volátil de


datos y memoria. Su función primordial es abastecer de datos y almacenamiento a los
programas que se ejecutan en la UCP. Según su capacidad e inmediatez se pueden dividir en
almacenamiento secundario (discos y disquetes) y terciario (cintas y sistemas de archivo).

• Dispositivos de comunicaciones. Permiten conectar a la computadora con otras


computadoras a través de una red. Los dos tipos de dispositivos más importantes
de esta clase son los MODEM y las tarjetas de interfaz a la red.
Principio de funcionamiento.

El procesador se comunica con los dispositivos a través de los dispositivos a través de los
puertos de entrada/salida.
 En la arquitectura IBM PC, se disponen de 65536 puertos de entrada/salida
 Los puertos son de 8-bits pero varios puertos consecutivos pueden ser tratados como
puertos de 16 o 32 bits.
 Todo dispositivo conectado al bus de entrada/salida tiene su propio conjunto de puertos.

Esquema de una computadora.

 Los dispositivos de e/s permiten a la CPU relacionarse con el mundo exterior: teclados,
pantallas, impresoras, discos . . .
 La comunicación de la CPU con un elemento externo es similar a la comunicación con la
memoria: se leen y escriben datos
 El comportamiento es distinto: los datos no siempre están disponibles (Ej. teclado), y el
dispositivo puede no estar preparado para recibirlos (Ej. Impresora).
 Al ser distinto el comportamiento los métodos son distintos que para el acceso a
memoria
Estructura de un sistema de e/s

 En teoría los dispositivos de e/s se comunicarían con la CPU por los buses del sistema
 Dado que son muy heterogéneos sería muy costoso que la CPU los manejase
directamente
 Los dispositivos están conectados a una pieza de hardware llamada controlador de
dispositivo (a veces controladora o adaptador)
 El controlador de dispositivo admite comandos abstractos de la CPU y se encarga de
transmitirlos al dispositivo (ej. escribir bloque 2534 a disco)
 Se libera a la CPU de tareas de muy bajo nivel (escribir datos en cara X del plato Y, en cilindro Z, sector T)
Cada dispositivo hardware de la computadora es manejado por un controlador, el cual posee
un buffer de almacenamiento.

La función del controlador es realizar la transferencia de datos entre el dispositivo y el buffer


propio. Luego el procesador mueve los datos entre el buffer del controlador y la memoria
principal.

Los controladores avisan al procesador que han finalizado alguna tarea mediante
interrupciones.

Hay casos en que un controlador puede manejar varios dispositivos, por ejemplo los discos.
Los controladores se comunican con la CPU a través de unos registros o puertos.
Generalmente incluyen:
 Registros de control Para enviar òrdenes al dispositivo
 Registros de estado Para obtener información del estado dispositivo o controlador,
disponibilidad de datos . . .
 Registros de datos Pueden ser de entrada, salida o bidireccionales
- Típicamente son registros de 1 a 8 bytes de tamaño.
- Algunos controladores tienen chips FIFO que permiten almacenar pequeñas ráfagas de datos (buffers),
mientras el host (CPU) no los puede ir recibir.
Interrupciones.

Una interrupción es un mecanismo de comunicación entre un proceso (que se ejecuta en modo


usuario) y el sistema operativo (que se ejecuta en modo supervisor). El proceso emplea
las interrupciones por software para notificar al sistema operativo que requiere de su
intervención

Existen 3 tipos de interrupciones:

• Interrupciones hardware asincrónicas :

Son utilizadas por los dispositivos de entrada-salida para avisar que algo sucedió. Ej se
pulso una tecla.

Son asincrónicas porque algunos dispositivos pueden operar en forma simultánea con el
procesador y no se sabe en qué momento va a suceder la interrupción.
• Interrupciones hardware sincrónicas:

Llamadas también excepciones.

Se producen cuando el procesador realizo alguna operación no valida, como por ejemplo:
división por cero.

No siempre son un problema grave, por ejemplo: el procesador trato de leer una dirección
de memoria inválida, la página estaba en el disco, se debe cargar antes de leerla.

• Interrupciones software.

Son causadas por las llamadas al sistema, que son la interfaz entre la aplicación del
usuario y el hardware.
PRINCIPIOS DEL HARDWARE DE ENTRADA Y SALIDA (E/S)

Distintas personas analizan de varias maneras el hardware de Entrada y Salida. Los


ingenieros eléctricos lo hacen en términos de chips, cables, fuentes de poder, etc. Los
programadores se fijan en la interfaz que se presenta al software (los comandos que aceptan
el hardware, las funciones que realiza y los errores que puede informar.

Sin embargo es frecuente que la programación de muchos dispositivos de entrada y salida


este íntimamente ligada con su operación interna.
DISPOSITIVOS DE ENTRADA Y SALIDA

Los dispositivos de entrada y saluda se pueden dividir de manera general en dos categorías:
dispositivos de bloque y dispositivos de carácter.

Dispositivo de Bloque: Es aquel que almacena la información en bloques de tamaño fijo,


cada uno con su propia dirección. Los tamaños comunes de los bloques van desde 128
bytes hasta 1024 bytes. La propiedad esencial de un dispositivo de bloque es la posibilidad
de leer o escribir en un bloque de forma independiente de los demás, es decir, el programa
puede leer o escribir en cualquiera de los bloques.
 Acceso a nivel de bloque, secuencial o aleatorio
 Mandatos: leer, escribir, buscar, …
 E/S directa o a través del servidor de ficheros
 Acceso posible a través de ficheros proyectados en memoria
Entre los dispositivos de bloque se pueden encontrar:

• CD − ROM: Acrónimo de Compact Disc−Read Only Memory. Estándar de


almacenamiento de archivos informáticos en disco compacto. Se
caracteriza por ser de sólo lectura. Otros estándares son el CD−R o
WORM (permite grabar la información una sola vez), el CD−DA (permite
reproducir sonido), el CD−I ( define una plataforma multimedia) y el
PhotoCD (permite visualizar imágenes estáticas ).

• Disco Duro: Los discos duros proporcionan un acceso más rápido a los
datos que los discos flexibles y pueden almacenar mucha más información.
Al ser las láminas rígidas, pueden superponerse unas sobre otras, de modo
que una unidad de disco duro puede tener acceso a más de una deellas.
La mayoría de los discos duros tienen de dos a ocho láminas. Un disco
duro normal gira a una velocidad de 3.600 revoluciones por minuto y las
cabezas de lectura y escritura se mueven en la superficie del disco sobre
una burbuja de aire de una profundidad de 10 a 25 millonésimas de
pulgada. El disco duro va sellado para evitar la interferencia de partículas
en la mínima distancia que existe entre las cabezas y el disco.

• Disquete o Disco flexible: Es un elemento plano de mylar (tereftalato de polietileno)


recubierto con óxido de hierro que contiene partículas minúsculas capaces
de mantener un campo magnético, y encapsulado en una carcasa o funda
protectora de plástico. La información se almacena en el disquete mediante
la cabeza de lectura y escritura de la unidad de disco, que alterala orientación
magnética de las partículas. La orientación en una direcciónrepresenta el
valor binario 1, y la orientación en otra el valor binario 0. Dependiendo de su
capacidad, un disco de este tipo puede contener desdealgunos cientos de
miles de bytes de información hasta casi tres millones (2,88 Mb). Un disco de
3y pulgada encerrado en plástico rígido se denomina normalmente disquete
pero puede llamarse también disco flexible.
Dispositivo de Carácter: Es aquel que envía o recibe un flujo de caracteres, sin sujetarse
a una estructura de bloques. No se pueden utilizar direcciones ni tienen una operación de
búsqueda.
 Acceso a nivel de a carácter, secuencial o aleatorio
 Mandatos: get, put, ….
 Bibliotecas para optimizar y dar forma a este tipo de accesos: edición de líneas,
ventanas virtuales, ….

Entre los dispositivos de carácter se pueden mencionar:

• Mouse: Es el segundo dispositivo de entrada más utilizado. El mouse o


ratón es arrastrado a lo largo de una superficie para maniobrar un
apuntador en la pantalla del monitor. Fue inventado por Douglas Engelbart
y su nombre se deriva por su forma la cual se asemeja a la de un ratón.
• Monitores: El monitor ó pantalla de vídeo, es el dispositivo de salida más
común. Hay algunos que forman parte del cuerpo de la computadora y
otros están separados de la misma. Existen muchas formas de clasificar
los monitores, la básica es en término de sus capacidades de color, pueden
ser: Monocromáticos, despliegan sólo 2 colores, uno para el fondoy otro
para la superficie. Los colores pueden ser blanco y negro, verde y negro ó
ámbar y negro. Escala de Grises, un monitor a escala de grises esun tipo
especial de monitor monocromático capaz de desplegar diferentestonos de
grises. Color: Los monitores de color pueden desplegar de 4 hasta 1 millón
de colores diferentes
• Impresoras de Línea: de línea: Son rápidas y ruidosas. Tienen la
desventaja de estar limitadas a la impresión de caracteres, por lo que no
son apropiadas para aplicaciones donde los gráficos son un ingrediente
esencial del producto acabado. Imprimen una línea de puntos a la vez. Se
alinean martillos similares a agujas sobre el ancho del papel.
• Tarjetas Perforadas: Fueron, inventadas en los años de la revolución
industrial (finales del siglo XVIII) por el francés Jacquard y perfeccionado
por el estadounidense Hermand Hollerith en 1890. Se usaron para
acumular y procesar automáticamente gran cantidad de datos. Durante
décadas, desde mediados de los cincuentas la tecnología de las tarjetas
perforadas se perfeccionó con la implantación de más dispositivos con
capacidades más complejas. Dado que cada tarjeta contenía en general
un registro (Un nombre, dirección, etc.) el procesamiento de la tarjeta
perforada se conoció también como procesamiento de registro unitario.
CONTROLADOR DE DISPOSITIVOS

Las unidades de entrada y salida constan por lo general de un componente mecánico y otro
electrónico. El componente electrónico se llama controlador de dispositivo de adaptador.
La tarjeta controladora tiene por lo general un conector, en el que se puede conectar el cable
que va al dispositivo en sí. Muchos controladores pueden manejar dos, cuatro y hasta ocho
dispositivos idénticos. Si la interfaz entre el controlador y el dispositivo es estándar, ya sea
un estándar oficial, de tipo ANSI, IEEE o ISO, o bien un estándar de hecho, entonces las
compañías pueden fabricar controladores o dispositivos que se ajusten a esa interfaz.
Es importante la distinción entre controlador y dispositivo por que el sistema operativo casi
siempre trabaja con el controlador y no con el dispositivo. Casi todo el micro y mini
computadoras utilizan el modelo de un bus para la comunicación entre la CPU y los
controladores. Los grandes mainframes utilizan con frecuencia otro modelo, con varios
buses y computadoras especializadas en Entrada y Salida llamadas canales de entrada y
salida que toman cierta carga de entrada y salida fuera de la CPU principal.

La tarjeta controladora casi siempre tiene un conector en el que puede insertarse un cable que
conduce al dispositivo. Muchos controladores pueden manejar dos, cuatro o incluso ocho
dispositivos idénticos. Muchas compañías producen unidades de disco que se ajustan a las
interfaces de controlador de disco IDE (Integrated Drive Electronics) o SCSI (SmalI Computer
System Interface).
La labor del controlador es convertir el flujo de bits en serie en un bloque de bytes y llevar a
cabo cualquier corrección de errores necesaria. Lo común es que el bloque de bytes
ensamble, bit a bit, en un buffer dentro del controlador. Después a verificar la suma y declarar
al bloque libre de errores, se le puede copiar en la memoria principal.
El controlador de una terminal CRT también funciona como un dispositivo de bits en un nivel
igual de bajo.
Lee bytes que contienen caracteres a exhibir en la memoria y genera las señales utilizadas
para modular la luz CRT para que esta se escriba en la pantalla. El controlador también
genera las señales para que la luz CRT vuelva a realizar un trazo horizontal después de
terminar una línea de rastreo, así como las señales para que se vuelva a hacer un trazo
vertical después de rastrear en toda la pantalla. De no ser por el controlador CRT, el
programador del sistema operativo tendría que programar en forma explícita el rastreo
análogo del tubo de rayos catódicos. Con el controlador, el sistema operativo inicializa éste
con pocos parámetros, tales como el número de caracteres por línea y el número de líneas
en la pantalla, para dejar que el controlador se encargue de dirigir en realidad el rayo de luz.

Cada controlador tiene unos cuantos registros que se utiliza para la comunicación con la
CPU. En ciertas computadoras, estos registros son parte del espacio normal de direcciones
de la memoria.
El sistema operativo realiza la entrada y salida al escribir comandos en los registros de los
controladores. Muchos de los comandos tienen parámetros, los cuales también se cargan
de los registros del controlador. Al aceptar un comando, la CPU puede dejar al controlador
y dedicarse a otro trabajo. Al terminar el comando, el controlador provoca la interrupción
para permitir que el sistema operativo obtenga el control de la CPU y verifique los resultados
de la operación. La CPU obtiene los resultados y el estado del dispositivo al leer uno o más
bytes de información de los registros del controlador.
Manejo de Dispositivos de entrada-salida.

El sistema operativo maneja todas las operaciones de entrada-salida. La atención de los


dispositivos de entrada-salida requiere de mucho esfuerzo por parte de la computadora, por
lo tanto se deben realizar de forma eficiente.

Existen 3 técnicas de atender los dispositivos de entrada-salida:

Técnica utilizada para dispositivos lentos. El dispositivo deberá tener una bandera que
indica si está ocupado o listo, el procesador entrara en un bucle en el cual consultara ese bit
cada cierto tiempo.
Características:
 Es la forma más sencilla de realizar operaciones de E/S
 La sincronización se consigue al preguntarle la CPU (poll) al dispositivo si tiene un dato
que entregar o, si es el caso, si está listo para recibir uno.
 Se pierde tiempo en preguntar la dispositivo (se pierde más cuanto más a menudo se le
pregunte)
 Es lento, e incluso podrían perderse datos si no se le pregunta muy a menudo

El procesador se pasa mucho tiempo dentro de un bucle esperando que los dispositivos
estén listos, por lo tanto, esta técnica es ineficiente. Recordar que uno de los objetivos del
sistema operativo es manejar los recursos de manera eficiente.
(Fuente:Tanembaum, Modern Operating Systems, 3rd ed.)
El procesador y el dispositivo realizan tareas simultáneamente, cuando el dispositivo
termino alguna tarea le avisa al procesador mediante una interrupción. Este método es
eficiente.
Cuando llega la interrupción el S.O. :
 Salva el estado de lo que está haciendo
 Trasfiere el control a la Rutina de Servicio de dicha interrupción
 Ejecuta la Rutina de Servicio de dicha interrupción
 Reanuda la ejecución donde fue interrumpida
 Dichas rutinas están en memoria en unas direcciones apuntadas por los vectores de

interrupción

Es el S.O., en su proceso de inicialización, el que instala dichas rutinas
Muchos controladores, en particular los correspondientes a los dispositivos de bloque,
permiten el acceso directo a memoria o DMA.
Este método se utiliza para aquellos dispositivos capaces de transmitir o recibir datos a
alta velocidad, como por ejemplo los discos.

El controlador del dispositivo transfiere bloques de datos desde su buffer a la memoria


principal sin la intervención del procesador.
 El controlador de DMA se encarga de la transferencia directa de datos, sin intervención
de la CPU.
 La CPU debe suministrar al controlador de DMA el tipo de operación (lectura o escritura),
dirección de transferencia de datos y cantidad de bytes a transferir
 El controlador de DMA suministra las señales de dirección y todas las señales de control
del bus
 Cuando la transferencia se completa le DMA avisa a la CPU por medio de una
interrupción.

El bus debe compartirse entre la CPU y el DMA. Varios modos de compartición:


 _ DMA modo bloque (burst)
 _ DMA por robo de ciclos
 _ Bus transparente
DMA modo bloque (burst ráfaga)
- Una vez que el DMA obtiene el control del bus se transfiere un bloque y la CPU queda en
espera (SÓLO ESPERA si necesita el bus, pero puede seguir leyendo instrucciones y datos de la memoria caché (L1,
L2, L3)) hasta que la transferencia termina
- Es el método más rápido
- Es el método que se utiliza con los dispositivos de almacenamiento secundario, como discos

DMA por robo de ciclos


- Cada vez que obtiene el control del bus, el DMA transfiere una palabra (p.ej: 4-8 bytes),
devolviéndole el control del bus a la CPU
- La trasferencia ser realiza con una serie de ciclos de DMA intercalados (robados)con ciclos de
CPU
Bus transparente
- El DMA solo utiliza el bus cuando la CPU no lo usa (p.e., durante la decodificación de una
instrucción o utilizando la ALU)
- SI hay memoria cache, la CPU puede acceder a código y datos en el cache mientras el DMA
realiza las transferencias
Dispositivos de almacenamiento.

Existen muchos medios de almacenamiento distintos:

• Memoria principal.
Es el único medio de almacenamiento donde el procesador puede acceder directamente.

• Almacenamiento secundario.
Son medios de almacenamientos de gran capacidad y no
volátiles, que sirven para extender la memoria principal.

Ejemplo : Discos magnéticos.


Protecciones Hardware.
Debido a que existen varios procesos que comparten los recursos, se debe prevenir que un
proceso acceda a los recursos de otro, esto se hace con la ayuda del hardware.
Existen varias protecciones hardware:

• Operación dual-mode.
Existen dos modos de ejecución de un programa, modo kernel o supervisor y modo
usuario.

El procesador posee un bit que indica el modo de operación en el cual se encuentra.

Cuando se produce una interrupción, el procesador pasa a modo supervisor. Los


procesos que se ejecutan en modo supervisor tienen acceso a instrucciones
privilegiadas (Ejemplo: instrucciones de I/O) y a todos los recursos de la computadora.

Los que se ejecutan en modo usuario no tienen acceso a los recursos ni a las instrucciones
privilegiadas.

El sistema operativo se ejecuta en modo supervisor y las aplicaciones en modo usuario,


por lo tanto, un programa de aplicación no tiene acceso a los recursos del sistema, pero
necesita utilizarlos. El sistema operativo le provee un mecanismo para que puedan
acceder a los recursos, denominado llamadas al sistema.

• Protección de I/O.
Todas las instrucciones de entrada-salida son privilegiadas, se debe asegurar que un
programa de aplicación se ejecute en modo usuario.

• Protección de memoria
Se debe proveer protección de memoria por lo menos en la tabla de vectores de
interrupciones y las rutinas de servicio de interrupciones.
El procesador posee dos registros que indican el rango de direcciones de memoria donde el
proceso puede acceder.

En la práctica la protección de memoria la realiza una parte del sistema operativo llamada
Gestor de memoria.
ESTRUCTURA DE UN SISTEMA OPERATIVO

Servicios de un sistema operativo.


Los servicios de un sistema operativo son utilizados por el programador para crear las
aplicaciones. Es importante que el programador conozca cómo están implementados esos
servicios, para poder utilizarlos de una manera más eficiente, logrando mejores
aplicaciones.
Llamadas al sistema.

Las llamadas al sistema son interfaces de programación que sirven para poder invocar los
servicios que el sistema operativo nos ofrece. Estas llamadas se encuentran escritas en
lenguajes de alto nivel como C y C++. En general, las llamadas a sistemas son accesadas
mediante una API (interfaz de programación de aplicaciones), en vez de invocarlas
directamente, de ésta manera se hace más fácil el trabajo para un programador de
aplicaciones.
Las API especifica un conjunto de funciones que el programador puede utilizar, incluyendo
los parámetros que son pasados a cada función y que retornan valores que el programador
puede esperar..
Las API más comunes que existen son tres:

Windows API (Windows application programming interface): son 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.

Debido a su estrecha relación con el desarrollo de software, los programas en sus


especificaciones generalmente explicitan la versión de la API del sistema operativo,
mediante diversas nomenclaturas tales como la versión específica del sistema operativo
(para Windows 98, por ejemplo), o explicitando la versión del conjunto de bibliotecas
(Plataforma Win32, etc.).
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
• Monitorización 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
POSIX para sistemas basados en POSIX (Unix, Linux, Mac OS X): sus principales
características son:

o Algunos tipos de datos utilizados por las funciones no se definen como parte de la
implementación. Estos tipos se encuentran definidos en el archivo de cabecera y
acaban con el sufijo _t. o Los nombres de las funciones en POSIX son en general
cortos y con todas sus letras en minúsculas, por ejemplo fork (para crear un nuevo
proceso), read (para leer datos de un archivo), close (para cerrar un archivo).
o Las funciones, normalmente, devuelven cero si se ejecutaron con éxito o -1 en caso
de error. o La mayoría de los recursos gestionados por el sistema operativo se
referencian mediante descriptores. Un descriptor es un número entero mayor o igual
que cero.
Java API para la Java Virtual Machine (JVM): brinda funciones de uso común para el
programador como por ejemplo, creación y manejo de elementos de GUI, manejo de
archivos, funciones de red, comunicación entre programas, además de existir dentro de su
Librería clases gráficas (awt y swing), las cuales permiten crear objetos gráficos
comunesaltamente configurables y con una arquitectura independiente de la plataforma.

El manejo de una aplicación de usuario invoca la llamada al sistema open()


Ejemplos:
El Standard POSIX especifica un numero de funciones que un sistema ajustado a el debe
suministrar, pero no especifica si deben ser llamadas al sistemas, librerías de funciones u
otra cosa.
Veamos un ejemplo de una llamada al sistema en un Unix:
Int open (char *path, int flags, int mode )
Abre una archivo para realizar escritura o lectura, esto esta determinado por el parámetro
mode. Si la llamada es exitosa, open() devuelve el descriptor de archivo, sino devuelve -1
y establece la variable global errno con el numero de error que se produjo. Los programas
deben verificar el valor devuelto y errno para saber si se produjo algún error.
Linux posee aproximadamente 170 llamadas al sistema, los programas utilizan mucho las
llamadas al sistema.
Se puede ver que cuales utiliza un programa mediante el comando strace, veamos la
salida de strace para un programa muy simple.
/* hello.c - programa simple para visualizar el uso que hace un
programa de las llamadas al sistema */

#include <stdio.h>

main()
{
printf"Hello World\n");
}

Compilamos y ejecutamos strace.

$ gcc -o hello hello.c $ strace ./hello execve("./hello",


["./hello"], [/* 19 vars */]) = 0 brk(0)
= 0x80494d4 open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT
(No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=8196, ...}) = 0 mmap(0,
8196, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40014000 close(3)
= 0 open("/lib/libc.so.6", O_RDONLY) = 3 fstat(3,
{st_mode=S_IFREG|0755, st_size=1147373, ...}) = 0 read(3,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3"..., 4096) = 4096 mmap(0, 4096,
PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x40017000 mmap(0, 978648, PROT_READ|PROT_EXEC,
MAP_PRIVATE, 3, 0) =
0x40018000
mprotect(0x400ff000, 32472, PROT_NONE) = 0 mmap(0x400ff000,
20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0xe6000) = 0x400ff000 mmap(0x40104000, 11992,
PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40104000
close(3) = 0
munmap(0x40014000, 8196) = 0
personality(PER_LINUX) = 0 getpid()
= 334
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(3, 0), ...}) = 0
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x40014000
ioctl(1, TCGETS, {B9600 opost isig icanon echo ...}) = 0
write(1, "Hello World\n", 12Hello World
) = 12 munmap(0x40014000, 4096)
= 0 _exit(12)
= ?

Se ve el uso intensivo que las aplicaciones hacen de las llamadas al sistema.

También podría gustarte