Logo Studenta

Diapositivas Sistemas Operativos

¡Este material tiene más páginas!

Vista previa del material en texto

Informática II 
Una introducción a los sistemas 
operativos… 
Departamento de 
Ingeniería Electrónica 
Universidad Tecnológica Nacional 
Facultad Regional Haedo 
Autor: LAROSA, F. S. 
Autor: LAROSA, F. S. 
Estructura de un sistema informático 
Primera generación: Tubos de vacío y tableros 
1945-1955 
Las computadoras eran grandes estructuras que funcionaban en las 
Universidades. Tenían decenas de miles de tubos de vacío aunque en 
promedio eran mucho más lentas que las computadoras personales 
más baratas que se venden en la actualidad. 
 
Un solo grupo de personas diseñaba, construía, programaba y 
mantenía cada máquina. 
 
Los programas se hacían en lenguaje de máquina absoluto 
cambiando el cableado de los circuitos para controlar las funciones 
básicas de la máquina. 
 
No existían los sistemas operativos. 
 
Los circuitos de válvulas de vacío eran poco confiables 
 
 
 
 
Autor: LAROSA, F. S. 
Estructura de un sistema informático 
Primera generación: Tubos de vacío y tableros 
1945-1955 
Algunos ejemplos 
 
ENIAC(<1945): Utilizada por el equipo de Presper Eckert y William 
Mauchley en la Universidad de Pennsylvania para el Laboratorio de 
Investigación Balística del Ejército de los Estados Unidos de América. 
 
 
Colossus (<1944): Diseñada originalmente por Tommy Flowers 
para romper la encriptación de las comunicaciones alemanas 
durante la Segunda Guerra (máquina Lorenz). Estaba instalada en 
la instalación militar de Bletchley Park (codename Boniface). 
 
 
Algunas fotos de la ENIAC… 
Algunas fotos de la ENIAC… 
Algunas fotos de la ENIAC… 
Algunas fotos de la ENIAC… 
Algunas fotos de la ENIAC… 
Algunas fotos de la ENIAC… 
Algunas fotos de la ENIAC… 
Algunas fotos de la ENIAC… 
Algunas fotos de la ENIAC… 
Algunas fotos de la ENIAC… 
Autor: LAROSA, F. S. 
Estructura de un sistema informático 
Segunda Generación: Transistores y sistemas por lotes 
 
Con el advenimiento del transistor las computadoras se volvieron lo 
bastante fiables como para fabricarse y venderse a clientes 
comerciales. 
 
Estos mainframes se alojaban en salas de cómputo especiales con aire 
acondicionado manejados por operadores profesionales. 
 
Sólo las grandes corporaciones, dependencias de gobierno o 
universidades importantes podían pagar los varios millones de 
dólares que costaban. 
 
Para ejecutar un programa, el programador escribía primero el 
mismo en papel (FORTRAN o ensamblador) y luego lo perforaba en 
tarjetas. Después los llevaba el mazo de tarjetas perforadas al cuarto 
de entrada, lo entregaba y tomaba café hasta que le entregaban las 
salidas. 
 
 
 
 
1955-1965 
Autor: LAROSA, F. S. 
Estructura de un sistema informático 
Segunda Generación: Transistores y sistemas por lotes 
 
Sistemas de procesamiento por lotes 
 
La compilación y ejecución de los programas llevaba mucho tiempo 
puesto que requería de intercambiar tarjetas, por ejemplo, para 
compilar un programa en FORTRAN. 
 
Por ello se crea el sistema de procesamiento por lotes. La idea básica 
era juntar una bandeja llena de trabajos en el cuarto de entrada y 
luego pasarlos a una cinta magnética empleando una computadora 
más pequeña. 
 
Luego de reunir un lote de trabajos, la cinta se rebobinaba y se 
llevaba al cuarto de máquinas donde se montaba en una unidad de 
cinta. El operador cargaba un programa especial que ejecutaba los 
programas secuencialmente y grababa las salidas en una cinta. 
 
 
 
 
 
1955-1965 
Autor: LAROSA, F. S. 
Estructura de un sistema informático 
Tercera generación: Circuitos integrados y multiprogramación 
 
A principio de la década de 1960 los fabricantes de computadoras 
tenían dos líneas de productos diferentes e incompatibles por 
completo. Por un lado estaban las computadoras científicas a 
gran escala que se utilizaban para cálculos numéricos en ciencias e 
ingeniería. Por otro lado estaban las computadoras comerciales 
orientadas a caracterres que los bancos y compañías de seguridad 
usaban para almacenar información e imprimir. 
 
IBM lanza el Sistema/360 que propone unificar las líneas de 
computadoras de IBM en una misma familia. La misma disponía del 
sistema operativo propietario OS/360 que pone por primera vez 
en la historia a los sistemas operativos en el centro de la 
escena. 
El Sistema/360 es la primera computadora en usar circuitos 
integrados en lugar de componentes discretos lo cual la hace mucho 
más asequible en precio y más confiable. 
 
 
 
 
 
 
1965-1980 
Autor: LAROSA, F. S. 
Estructura de un sistema informático 
Tercera generación: Circuitos integrados y multiprogramación 
 
Comienza la multiprogramación. Antiguamente cuando se hacía 
una pausa para realizar una operación de E/S la CPU permanecía 
ociosa. En aplicaciones de cálculo numérico las pausas no eran una 
cuestión de peso, mientras que si lo eran en computadoras 
comerciales donde podía llegar a desperdiciarse casi un 80% del 
tiempo. Es por eso que se comenzó a segmentar la memoria en 
diferentes secciones dedicadas a diferentes aplicaciones. Así, al 
realizarse una pausa en una de ellas la CPU podía continuar 
ejecutando otras tareas. 
 
Comienza el tiempo compartido. Se ajustan las grandes 
computadoras para permitir que cada usuario tuviese una terminal 
en línea que les permitiese hacer uso de la misma. El sistema 
operativo de la computadora debía estar preparado para ejecutar 
selectivamente los requerimientos de los usuarios. 
 
 
 
 
 
 
1965-1980 
Autor: LAROSA, F. S. 
Estructura de un sistema informático 
Tercera generación: Circuitos integrados y multiprogramación 
 
Nace el sistema MULTICS. Los diseñadores de este sistema decidieron 
emprender el desarrollo de un “servicio de computadora”, una 
máquina que atendiera a cientos de usuarios simultáneos en tiempo 
compartido. Se basaron en el sistema de distribución de la red 
eléctrica en que cada usuario se conecta a la red y toma de ella una 
cantidad de energía dentro de límites razonables. 
 
El concepto de un servidor potente el cual recibe requerimientos de 
una multiplicidad de máquinas más sencillas (tontas) pierde impulso, 
aunque en la actualidad se ha avanzado en sistemas con este 
espíritu. 
 
Uno de los científicos de Bell Labs que había trabajado en el proyecto 
MULTICS, Ken Thompson, se puso a escribir una versión austera del 
sistema MULTICS que se convertiría en la base del sistema operativo 
UNIX. 
 
 
 
 
 
 
1965-1980 
Autor: LAROSA, F. S. 
Estructura de un sistema informático 
Cuarta generación: Computadoras personales 
Con el desarrollo de los circuitos integrados a gran escala (LSI: Large Scale of 
Integration) se hacen posibles, al menos en teoría, las computadoras 
personales. 
A principios de la década de 1980, IBM diseñó la PC y buscó software para 
que se ejecutara en ella. El personal de IBM se puso en contacto con Bill 
Gates para usar bajo licencia su intérprete de BASIC y también le consultó 
acerca de un sistema operativo para su nueva computadora. Bill Gates se 
percató de que un fabricante de computadoras local, Seattle Computer 
Products, tenía un sistema operativo apropiado, el DOS (Disk Operating 
System). Gates se ofreció a comprar el sistema operativo y ofreció a IBM un 
paquete DOS/BASIC que IBM aceptó. Gates contrató a Tim Paterson, 
creador del sistema DOS en su nueva empresa, Microsoft para que escribiera 
algunas modificaciones al software original. Para la época fue 
extremadamente novedoso como política de negocios vender el software 
para que fuera vendido preinstalado. 
MS-DOS (el nombre comercial del sistema DOS) pronto dominó el mercado 
de computadoras personales y luego se le fueron agregando funciones más 
avanzadas. 
 
 
 
 
 
 
1980 a la actualidad 
Autor: LAROSA, F. S. 
Estructura de un sistema informático 
Cuarta generación: Computadoras personales, GUI 
Doug Engelbart (Standford Reserach Institute) inventó la primera 
GUI (Graphical User Interface) provista de ventanas, íconos, menús y 
ratón. Los investigadoresde Xerox adoptaron esta línea que luego 
abandonaron. Steve Jobs, uno de los jóvenes que inventaron la 
computadora Apple en la cochera de su casa se decide construir una 
computadora con GUI, la Lisa, que fue un fracaso como proyecto 
comercial. 
 
El segundo intento de Jobs, la Apple Macintosh fue un enorme éxito, 
no sólo porque era más económica, sino porque era amigable para el 
usuario (user-friendly) lo cual implicaba “que estaba orientada a 
personas que no sólo no tenían conocimientos de 
computación sino que además no tenía ninguna intención 
de aprender”. 
 
 
 
 
 
1980 a la actualidad 
Autor: LAROSA, F. S. 
Estructura de un sistema informático 
Cuarta generación: Computadoras personales 
Microsoft pensó mucho en el éxito comercial de la Apple Macintosh 
cuando lanzó su sistema operativo Windows 3.1 que no era un 
sistema operativo nuevo, sino mas bien, una GUI que se ejecutaba 
encima de MS-DOS. 
 
Otro sistema operativo de Microsoft es el Windows NT (New 
Technology) que fue internamente reescrito desde cero para 
funcionar completamente en 32 bits. 
 
Otro contendiente en el mundo de las computadoras es UNIX (y sus 
derivados) que es sobre todo fuerte en el mundo de los servidores de 
red, 
 
En computadoras personales LINUX se está convirtiendo en una 
alternativa popular a Windows sobre todo en el círculo de los 
estudiantes y los usuarios avanzados. 
 
 
 
 
1980 a la actualidad 
Autor: LAROSA, F. S. 
Sistemas Operativos 
¿Qué es un sistema operativo? 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Dos concepciones 
Hardware 
Sistema 
Operativo 
Aplicaciones 
El sistema 
operativo como 
MÁQUINA 
EXTENDIDA 
El sistema 
operativo como 
ADMINISTRADOR 
DE RECURSOS 
Las definiciones de Tanenbaum 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Sistema operativo = MAQUINA EXTENDIDA 
PROBLEMA 
La arquitectura (conjunto de instrucciones básicas, 
organización de memoria, buses, set de dispositivos de 
entrada/salida) es complicada de programar. 
 
 
 
El programador no quiere meterse en los detalles de la programación, antes 
bien quiere que se le presente una abstracción simple de alto nivel. 
 
Para ello el sistema provee al programador con un set de funciones (llamadas 
al sistema) que le ofrecen la perspectiva de una máquina extendida o máquina 
virtual que es más fácil de programar que el hardware subyacente. 
 
 
 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Sistema operativo = ADMINISTRADOR DE RECURSOS 
PROBLEMA 
Un equipo informático es un sistema complejo que 
consta de procesador/es, memoria, discos, dispositivos E/S 
y un conjunto de aplicaciones que buscan hacer uso de 
los recursos. 
 
 
 
Lo anterior implica una multiplexación (división) en: 
 
•Tiempo: El sistema operativo asigna un recurso por turnos a los programas 
que lo demandan. Ejemplo: CPU, impresora. 
 
•Espacio: El sistema operativo asigna parte del recurso a las aplicaciones. 
Ejemplo: Memoria, espacio en disco. 
 
 
 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Conceptos de sistemas operativos 
Algunos de los conceptos fundamentales de todos los sistemas 
operativos son: 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
 
 
 
Un proceso es básicamente un programa en ejecución. Cada proceso tiene asociado su 
propio espacio de direcciones (una lista de posiciones de memoria desde algún mínimo 
hasta algún máximo que el proceso puede leer y escribir). El espacio de direcciones 
contiene el código del programa ejecutable, sus datos y su pila. Cada proceso consta 
además de un conjunto de registros: 
 
 
 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Procesos 
TSS Segment 
(Registro de estado de tarea) 
Extraído del manual Intel 3 A 
“System Programming Guide” 
Página 7-5 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
El conjunto de los registros de la CPU constituye una “imagen” de la máquina que 
permite recuperar el estado de la CPU cuando se reanuda el proceso. 
 
Un programa que forma parte del kernel del sistema operativo llamado “scheduler” 
(planificador, calendarizador) divide el tiempo de uso del procesador en pequeñas 
porciones (slices=rodajas) y asigna estas porciones a los programas que se están 
ejecutando. 
 
 
 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Procesos 
 
Programa 
A 
 
Programa 
B 
 
Programa 
C 
 
… 
 
Programa 
Z 
 
El programa A se 
ejecuta por un 
tiempo determinado 
Una vez concluído el 
tiempo el sistema 
operativo guarda el 
contexto del proceso 
El sistema operativo 
carga el contexto del 
proceso B y lo 
reanuda 
Programa A Programa B 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Por ejemplo, en LINUX, la lista de procesos consta de una lista doblemente enlazada que 
contiene todos los descriptores de procesos: 
 
 
 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Procesos 
Los procesos pueden estar activos o no. Por ejemplo, si un proceso está esperando el 
ingreso de información por teclado para continuar hasta que no la recibe queda en un 
estado particular (TASK_INTERRUPTIBLE) y se saca de la lista de procesos activos. 
Cuando recibe la información, el sistema operativo le reasigna el estado activo 
(TASK_RUNNING) y lo devuelve a la lista de procesos activos. 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Procesos 
Contenido de un descriptor 
de proceso 
Extraído de “Understanding 
the Linux Kernel” 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Procesos 
Jerarquía de procesos 
Extraído de “Understanding 
the Linux Kernel” 
 
 
 
Los procesos se agrupan en una serie de jerarquías. Por ejemplo, un usuario ejecuta un 
comando en el ‘shell’ para llevar a cabo determinada acción. El shell crea un nuevo 
proceso el que a la vez puede o no generar nuevos procesos. Cuando un proceso genera 
a otro éste último recibe el nombre de ‘proceso padre’ y aquel el de ‘proceso hijo’. 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Procesos: Ejemplo (Servidor Concurrente) 
En base al modelo cliente-servidor una determinada funcionalidad (manejo de correo 
electrónico, multimedia, compartir archivos, etc.) se presenta como una aplicación 
distribuída que particiona la carga de trabajo a realizar entre aplicaciones que proveen 
servicios (server/servidor) y aplicaciones que los solicitan (clients/clientes). 
 
 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Inicialización 
Espera 
requerimientos de 
conexión por parte de 
los clientes 
Inicialización 
Intenta conectar con 
el servidor 
Una vez establecida la 
conexión el servidor genera 
un proceso hijo para que 
atienda al cliente. 
Proceso 
hijo 
Una vez llevada a 
cabo la conexión el 
cliente intercambiará 
información con el 
proceso hijo del 
servidor. 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Procesos 
Tabla de Señales 
Funciones de manejo de Señales 
Extraído de “Understanding the Linux 
Kernel” 
 
 
 
Los procesos se comunican mediante 
señales lo que permite sincronizar los 
procesos, manejar errores y articular la 
comunicación de los mismos entre sí. 
 
Algunas de las funciones son: 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administraciónde dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Manejo de bloqueos 
Otra de las funciones de un sistema operativo es la de sincronizar el acceso a los recursos 
(memoria, hardware de entrada/salida, etc.) de forma razonable de manera tal que los 
procesos involucrados en estas operaciones no entren en conflicto. 
 
Por ejemplo, supongamos que dos procesos quieren grabar una imagen de un DVD. 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Pide el control de 
la grabadora DVD. 
El SO se lo 
concede. 
Proceso 
I 
Accede al archivo 
de imagen del 
DVD. El SO le 
concede el acceso 
al archivo. 
Proceso 
II 
Intenta acceder al 
archivo de imagen 
de DVD. El SO lo 
bloquea porque se 
encuentra en uso 
por otro proceso. 
Proceso 
I 
Intenta acceder a 
la grabadora de 
DVD. El SO lo 
bloquea porque se 
encuentra en uso 
por otro proceso. 
Proceso 
II 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Administración de memoria 
Toda computadora tiene una memoria principal donde se alojan las aplicaciones y el 
kernel del sistema operativo. 
 
Antiguamente, los sistemas operativos sólo podían ejecutar una aplicación a la vez 
(monotarea). Una vez terminada, se desalojaba de memoria y se podia alojar una nueva 
en su lugar. 
 
 
 
 
 
Actualmente, los sistemas operativos pueden manejar la convivencia de varias 
aplicaciones “ejecutándose al mismo tiempo”. Para ello, el sistema operativo debe ubicar 
a cada uno en un segmento diferente del espacio de direcciones (mapa de memoria). 
 
 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Mapa de 
memoria 
Proceso A 
El proceso A se 
ejecuta por un lapso 
de tiempo 
determinado 
Se cierra el proceso 
A y la memoria 
ocupada por el 
mismo es liberada 
Mapa de 
memoria 
Se ejecuta el proceso 
B quien pasa a 
ocupar una fracción 
de la memoria 
disponible 
Mapa de 
memoria 
Proceso B 
Mapa de 
memoria 
Proceso A 
Proceso B 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Administración de memoria 
Incluso es posible ejecutar programas que ocupan una cantidad de memoria mayor a la 
disponible en el sistema. 
 
Para ello, el sistema operativo utiliza un ‘manejador (handler) de memoria virtual”. 
 
El programa reside parte en memoria de sistema y parte en memoria de disco. A medida 
que el programa se va ejecutando el sistema operativo carga las páginas de memoria 
disponibles en disco en la memoria de sistema. 
 
 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
DISCO 
El programa se 
ejecuta cargando la 
primera de sus 
páginas en memoria 
Página ‘1’ 
(disponible 
en memoria) 
Página ‘2’ 
(no presente 
en memoria) 
(EXCEPCION) 
Cuando se quiere 
ejecutar la segunda 
página el SO nota 
que no está presente 
en memoria y libra 
una excepción que 
es manejada por su 
handler de memoria 
virtual 
El handler copia la 
página del disco 
rígido a la memoria y 
termina. 
El programa continúa su 
operación normalmente 
como si nada hubiese 
pasado. 
En WINDOWS es un archivo: 
386SPART.PAR en Windows 3.1 
WIN386.SWP en Windows 3.11, 95 y 98 
pagefile.sys en Windows NT y sucesores 
En LINUX generalmente se utiliza una 
partición para tal fin 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Administración de dispositivos E/S 
Todo sistema operativo cuenta con un subsistema de 
entrada/salida que se encarga de administrar sus dispositivos de 
entrada/salida. Debe enviar comandos a los dispositivos, atrapar 
interrupciones y manejar errores, además de proporcionar una 
interfaz sencilla y fácil de usar entre los dispositivos y el resto del 
sistema. 
Para ello cuenta con dos tipos de programas diseñados para 
manejar los dispositivos (‘drivers’): 
 
 
 
 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Independiente del 
dispositivo. Ejemplo: 
drivers genéricos 
para mouse, 
teclado, etc. 
Genéricos 
Provistos para el 
fabricante para un 
dispositivo en 
particular. 
Específicos 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Administración de dispositivos E/S 
El hardware presenta diferentes “rostros” de acuerdo al especialista 
que se desempeñe en su utilización: 
 
 
 
 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Hardware 
Diseñador de 
aplicaciones 
Es una abstracción a la 
cual se accede por 
medio de un conjunto 
de llamadas al sistema 
(librería de llamadas). 
Hardware 
Diseñador de drivers 
Es una caja negra, 
fuente de 
interrupciones, acepta 
y recibe comandos. 
Hardware 
Diseñador de 
hardware 
Conjunto de 
dispositivos 
electrónicos, 
conductores, fuentes 
de alimentación, 
blindaje, etc. 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Tipos de dispositivos 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Esquema del 
kernel de LINUX 
(Extraído de “Linux 
Device Drivers”) 
 
 
 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Tipos de dispositivos 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Char device (Dispositivo de carácter) 
•Puede ser accedido como un flujo (stream)de bytes. 
•Las llamadas al sistema deben ser al menos: open, close, read y write. 
•Algunos ejemplos son: la consola de texto (/dev/console) y los puertos seriales 
(/dev/ttySO) 
•Se accede a ellos como como nodos en el sistema de archivos (/dev/tty, /dev/lp0). 
Block device (Dispositivos de bloques) 
•Puede ser accedido mediante operaciones de E/S que transfieren uno o mas bloques 
(usualmente 512 bytes o una potencia de dos mayor). 
•Se accede a ellos como nodos en el sistema de archivos (directorio /dev). 
•Pueden hostear un sistema de archivos (filesystem) 
Network device (Dispositivos de red) 
•Se acceden mediante una interfaz (sockets TCP y UDP). 
•No están mapeados como nodos en el sistema de archivos. 
Los dispositivos se pueden clasificar de muchas maneras. Presentaremos la forma en que 
los clasifica el sistema operativo LINUX. 
 
 
 
 
 
 
 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Acceso a los dispositivos 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
A fines de comunicarse con los dispositivos se utilizan uno o más 
registros que pueden estar ubicados en: 
 
 
 
 
 
 
Mapa de 
Memoria 
Mapa de 
Puertos E/S 
Mapa de 
Memoria 
Mapa de 
Memoria 
Mapa de 
Puertos E/S 
Mapa de 
Puertos E/S 
Espacios separados de memoria y E/S Espacios conjuntos de 
memoria y E/S 
Híbrido 
Mapa de Puertos E/S 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Acceso a los dispositivos 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Para el caso de un mapa de puertos y memoria separados 
(arquitectura Intel) se procede de la siguiente manera: 
 
 
 
 
 
 
CPU Memoria 
Dispositivo de 
E/S (1) 
Dispositivo de 
E/S (2) 
Bus de datos 
Bus de direcciones 
/M-IO 
La CPU coloca la 
dirección de 
memoria a la que 
necesita acceder en 
el bus de direcciones 
La memoria pone el 
dato a leer en el bus 
de datos. 
/R-W 
CASO 1: La CPU 
quiere leer un dato 
de la memoria. 
Las lineas de control 
se configuran para 
leer(/R-M=0) la 
memoria (/M-IO=0). 
Esta línea de control 
se usa para indicar sise quiere: 
-Leer(/R-W=0) 
-Escribir (/R-W=1) 
Esta línea de control se usa para 
indicar si se quiere: 
-Acceder a memoria (/M-IO=0) 
- Acceder a puertos (/M-IO=1) 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Acceso a los dispositivos 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Para el caso de un mapa de puertos y memoria separados 
(arquitectura Intel) se procede de la siguiente manera: 
 
 
 
 
 
 
CPU Memoria 
Dispositivo de 
E/S (1) 
Dispositivo de 
E/S (2) 
Bus de datos 
Bus de direcciones 
/M-
IO 
La CPU coloca la 
dirección del mapa 
de puertos a la que 
necesita acceder en 
el bus de direcciones 
El dispositivo 1 se da 
por aludido al 
encontrar que la 
dirección indicada le 
pertenece y lleva a 
cabo la acción descrita 
en el comando.. 
/R-W 
CASO 2: La CPU quiere 
enviar un comando a un 
dispositivo. 
Las lineas de control 
se configuran para 
escribir(/R-M=1) en 
el mapa de puertos 
(/M-IO=1). 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Acceso a los dispositivos 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
CPU Memoria E/S CPU Memoria E/S 
Bus de baja velocidad 
Bus de alta velocidad 
Este puerto permite a los dispositivos de 
E/S tener acceso a la memoria 
Tanto las direcciones de memoria como de 
E/S se colocan en este bus 
Arquitectura de un solo bus Arquitectura de un bus de memoria dual 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Acceso a los dispositivos 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Interrupciones/Excepciones 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
CPU 
Controladora 
de 
Interrupciones 
Bus 
Disco 
Teclado 
Timer 
Impresora 
Puerto serie 
Puerto paralelo 
1) El dispositivo llama la 
atención del procesador 
enviando un pedido de 
interrupción a la controladora 
de interrupciones. 
2) La controladora evalúa la interrupción 
tomando en cuenta su prioridad , si está 
habilitada, si el procesador está 
atendiendo una interrupción 
actualmente, etc. Y envía un pedido de 
interrupción al procesador 
3) La CPU atiende (o no) la interrupción 
y lee el bus de datos, en el cual la 
controladora le indica cual es la fuente 
de la interrupción. 
4) El sistema operativo detiene 
momentáneamente su ejecución y en 
base a la fuente de interrupción busca 
en una tabla (vector de interrupciones) 
el comienzo de la rutina de atención 
para la interrupción específica. 
Autor: LAROSA, F. S. 
Sistemas Operativos 
DMA (Direct Memory Access) 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
CPU 
Controladora 
de disco 
Memoria 
Principal 
1)La controladora de 
disco lee el bloque de 
datos byte por byte y lo 
almacena en un buffer 
interno previo calcular la 
suma de verificación del 
mismo. 
2) Una vez llenado el 
buffer, la controladora 
produce una pedido de 
interrupción a la CPU. 
3) La CPU lee los datos 
del buffer de la 
controladora de disco 
mediante un conjunto 
de operaciones 
sucesivas de lectura. 
4) La CPU escribe los datos 
tomados del disco en la 
memoria mediante una 
sucesión de operaciones 
de escritura. 
Autor: LAROSA, F. S. 
Sistemas Operativos 
DMA (Direct Memory Access) 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
CPU 
Controladora 
de disco 
Memoria 
Principal 
1)La CPU configura la 
controladora DMA 
indicándole la dirección 
a partir de la cual quiere 
transferir, la cantidad de 
bloques y a dónde 
quiere hacerlo. 
Controladora 
DMA 
2)La controladora DMA 
inicia un pedido de 
lectura a la controladora 
de disco (idéntico al que 
haría el procesador). 
3)Se transfiere el dato 
(byte o palabra) desde la 
controladora de disco 
hacia la memoria 
4) La controladora de 
disco acusa recibo a la 
controladora DMA de 
que la transferencia se 
ha completado. 
5) El proceso se repite 
hasta que se ha 
transferido la cantidad 
de datos indicada. 
6) La controladora DMA 
interrumpe a la CPU 
para indicarle que la 
transferencia ha sido 
completada. 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Sistema de archivos 
Todos los sistemas operativos poseen algún tipo de mecanismo 
para ocultar las peculiaridades de los discos y otros dispositivos de 
E/S para proveerle a las aplicaciones un modelo claro (en la jerga 
“una abstracción”) bajo la forma de una estructura de archivos y 
directorios. 
 
Además el sistema operativo debe proveer una serie de llamadas 
para abrir, guardar, crear, eliminar y cerrar los archivos. 
 
La forma más común de organizar los archivos es mediante una 
estructura de árbol de directorios. 
 
 
 
 
 
 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Sistema de archivos 
Todo archivo o directorio puede referenciarse mediante una ruta 
(en la jerga “path”) a partir del tope de la jerarquía (directorio 
raíz). 
 
 
 
 
 
 
 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Referida al directorio raíz. 
Ejemplo: \Facu\clase1.pps 
Ruta 
absoluta 
Referida al directorio de trabajo 
del proceso. 
Ejemplo: 
clase1.pps 
(‘Facu’ es el directorio de 
trabajo) 
 
Ruta 
relativa 
\ 
Facu 
Pepe.txt 
Clase1.pps 
Mis cosas 
Pincha_campe
on2009.mov 
Kill bill 1.avi 
Ejemplo de estructura 
rudimentaria de archivos 
 
 
 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Sistema de archivos 
Tanto en UNIX como en WINDOWS el sistema operativo toma a 
los archivos como una sucesión de bytes. 
 
El significado del archivo se interpreta a nivel de usuario por la 
aplicación encargada de operar sobre ese tipo de archivo en 
particular. 
 
 
 
 
 
 
 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Archivo 
0xFE 
0x1E 
0xF3 
0x21 
0x47 
0x7A 
0xF9 
byte 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Sistema de archivos 
Todo sistema de archivos asigna a cada archivo un conjunto de 
atributos… 
 
 
 
 
 
 
 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Autor: LAROSA, F. S. 
Sistemas de archivos 
Algo de discos rígidos… 
Es un dispositivo que consta de varios platos de metal que giran a 5400, 7200 0 10800 
rpm. Un brazo mecánico pivotea sobre los platos desde una esquina (de forma similar al 
brazo de un reproductor de discos de vinilo). La información se graba en una serie de 
discos concéntricos cambiando a voluntad la orientación magnética del material que 
sirve para diferenciar los unos de los ceros. 
 
 
A (Pista): Una de las circunferencias que 
conforman la estructura del disco. 
B (Sector): Cada uno de los sectores circulares de 
cada disco. 
C (Sector de una pista): Cada una de las 
intersecciones entre un sector y una pista. Conforma 
la mínima unidad accesible físicamente. 
D (Clúster): El conjunto de uno o más sectores de 
pista que conforman la mínima unidad accesible 
lógicamente. 
Cilindro: Conjunto que comprende todas las pistas 
alineadas verticalmente. 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell•Llamadas al sistema 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Sistema de archivos: Implementaciones 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Asignación contigua (I) 
A A A A A B B B 
 
Se van a grabar los archivos: 
A (5 bloques) 
B (3 bloques) 
Disco de ejemplo de 10 sectores 
Ahora se quiere grabar el archivo C (6 bloques)… 
¿Cómo procederemos? 
Ahora se quiere grabar el archivo C (6 bloques) … 
¿Cómo procederemos? 
Primero borramos el archivo A: 
 
 
 
Luego debemos reordenar (desfragmentar el disco): 
 
 
Ahora podemos grabar el archivo: 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Sistema de archivos: Implementaciones 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Asignación contigua (II) 
A A A A A B B B 
B B B 
B B B 
B B B C C C C C C 
Ventajas 
Las operaciones de lectura y escritura son sumamente rápidas y 
sencillas por estar los archivos guardados de forma contigua en el 
disco. 
 
Desventajas 
El sistema de archivos se fragmenta rápidamente y existe la 
necesidad de defragmentarlo para poder almacenar los nuevos 
archivos. 
 
Usos: Unidad de CD, DVD, cinta magnética. 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Sistema de archivos: Implementaciones 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Asignación contigua (III) 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Sistema de archivos: Implementaciones 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Tabla de memoria (I) 
0 1 2 3 4 5 6 7 8 9 
B1 A0 A1 B0 A2 B2 A3 A4 B3 
Disco de ejemplo de 10 sectores 
En este caso se tiene una tabla en memoria que permite «rastrear» 
los archivos: 
Sector Siguiente 
sector 
0 6 
1 2 
2 5 
3 0 
4 - 
5 7 
6 9 
7 8 
8 -1 
9 -1 
Entrada al 
archivo A 
Entrada al 
archivo B 
Tabla en memoria 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Sistema de archivos: Implementaciones 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Tabla de memoria (II) 
Ventajas 
Al tener información de como se encadenan los archivos 
directamente enla memoria la búsqueda se puede hacer 
rápidamente. 
 
Desventajas 
La fragmentación tiende a ser alta. 
El tamaño de la tabla en la memoria tiende a aumentar conforme 
aumenta el tamaño del disco por lo que se vuelve impráctico para 
discos grandes. 
 
Ejemplos: FAT 12, FAT 16, FAT 32 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Sistema de archivos: Implementaciones 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Tabla de memoria (III) 
Ejemplo: 
Disco de 30 Mb Disco de 250Gb 
Tamaño del sector 512 bytes 512 bytes 
Cantidad sectores 62.500 488.281.250 
Tamaño variable 16 bits 32 bits 
Tamaño de tabla en 
memoria 
≈125kB 1,95GB 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Sistema de archivos: Implementaciones 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
i-nodos (I) 
En este caso, por cada archivo se tiene una estructura como sigue: 
0 1 2 3 4 5 6 7 8 9 
B1 A0 A1 B0 A2 B2 A3 A4 B3 
i-nodo de A 
Atributos de A 
1 
2 
4 
7 
8 
i-nodo de B 
Atributos de B 
3 
0 
6 
9 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Sistema de archivos: Implementaciones 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
i-nodos (II) 
Ventajas 
Al abrir un archivo sólo se mantiene el i-nodo de ese archivo en 
memoria, así, la cantidad de memoria ocupada no depende del 
tamaño de la unidad (como en el caso de FAT) sino de la cantidad 
de archivos abiertos. 
 
Ejemplos: Sistemas de archivos típicos de UNIX/LINUX como ext3 y 
ext4. 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Seguridad 
Todos los sistemas de computación comprenden una cierta 
cantidad de datos (correo electrónico, documentos personales o de 
negocios, diseños, etc.) o aplicaciones que sólo deben ser accedidos 
por ciertos usuarios. 
 
El sistema operativo es el encargado de controlar la seguridad del 
sistema a fines de regular el acceso a los archivos. 
 
 
 
 
 
 
 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Seguridad 
Por ejemplo, los sistemas tipo UNIX utilizan un código de nueve 
bits divididos en tres campos para llevar a cabo esta política de 
protección. 
 
 
 
 
 
 
 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
•Flag directorio 
• ‘ – ‘ : Archivo normal 
• ‘ d ‘ : Directorio 
•Usuario dueño 
•Grupo de usuarios del dueño 
•Resto de los usuarios 
 
Estas últimas tres categorias comparten: 
•‘ r ‘: Leer (Read) el archivo 
•‘ w ‘: Escribir (Write) el archivo 
•‘ x ‘: Ejecutar (eXecute) el archivo 
 (en caso que sea un directorio implica permiso de búsqueda) 
 
Flag 
directorio Usuario dueño 
Grupo de 
usuarios del 
dueño 
Resto de los 
usuarios 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Shell 
El sistema operativo es el código base que ejecuta las llamadas al sistema. 
 
Muchas veces se toman aplicaciones como compiladores, linkers, utilidades 
(desfragmentador, firewalls, etc.) o intérpretes de comandos (shells) como partes 
del sistema operativo aunque no lo sean. 
 
La razón de esta confusión es que este tipo de utilidades están fuertemente 
ligadas al sistema operativo. 
 
Un shell es un programa que hace uso de muchas de las funciones del sistema 
operativo y constituye (salvo que se use una GUI) la principal puerta de 
comunicación entre el usuario y el sistema operativo. 
 
Generalmente, el shell brinda un indicador de comandos (“prompt”) que indica 
al usuario que el shell se encuentra a sus órdenes. 
 
 
 
 
 
 
 
 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Shell 
 
 
 
 
 
 
 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
PROMPT 
Proceso “bash” Proceso “cmd.exe” 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Shell 
Una vez mostrado el prompt (“indicador de comandos”) el usuario puede ingresar un 
comando. 
 
Generalmente, un comando implica el inicio de un nuevo proceso que se abre como 
proceso hijo del intérprete de comandos 
 
 
 
 
 
 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Ejemplo de comando 
ejecutado como proceso 
hijo del bash 
 
 
 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Llamadas al sistema 
La interfaz entre el sistema operativo y las aplicaciones (programas de usuario) 
está definida por un conjunto de llamadas al sistema ofrecidas por el sistema 
operativo. 
 
Estas varían de un sistema operativo a otro aún cuando en términos generales 
son conceptualmente similares. 
 
Para ilustrar el concepto comenzaremos con las llamadas al sistema de UNIX y 
en particular al estándar POSIX del IEEE. 
 
El estándar POSIX resume todas las llamadas al sistema mínima que debe 
soportar un sistema operativo tipo UNIX paraser compatible con dicho 
estándar. 
 
 
 
 
 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Llamadas al sistema (POSIX) 
Procesos 
 
 
 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Llamada Descripción 
pid=fork() Crea un proceso hijo 
s=execve(name,argv,environp) Reemplaza un proceso por 
otro a partir de un archivo 
ejecutable 
exit(status) Termina un proceso en 
ejecución y devuelve “status” 
pid=waitpid(pid,…) Espera a un proceso hijo para 
que termine 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Llamadas al sistema (POSIX) 
Archivos 
 
 
 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Llamada Descripción 
Fd=open(file,…) Abrir un archivo para lectura, 
escritura o ambas. 
S=close(fd) Cerrar un archivo abierto 
N=read(fd,buffer,nbytes) Leer datos desde un archivo a un 
buffer (en memoria) 
N=write(fd,buffer,nbytes) Escribir datos desde un buffer (en 
memoria) a un archivo 
Position=lseek(fd,offset,whence) Mover la ventana de lectura dentro 
de un archivo 
S=stat(name,&buf) Obtener información del estado de 
un archivo 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Llamadas al sistema () 
 
 
 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Llamada Descripción 
S=mkdir(name,mode) Crear un nuevo directorio 
S=rmdir(name) Borrar un directorio vacio 
S=link(name1,name2) Crear una nueva entrada (name1) 
que apunta a name2 
S=unlink(name) Borrar una entrada de directorio 
S=mount(special,name,flag) Montar un sistema de archivos 
S=unmount(special) Desmontar un sistema de archivos 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Llamadas al sistema 
 
 
 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Llamada Descripción 
S=chdir(dirname) Cambia el directorio de trabajo 
S=chmod(name,mode) Cambia los bits de protección de un 
archivo 
S=kill(pid,signal) Envía una señal a un proceso 
Seconds=time(&seconds) Entrega los segundos que han pasado 
desde el comienzo del día 1 de Enero 
de 1970 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Llamadas al sistema 
Cualquier computadora que tenga una sola CPU sólo puede 
ejecutar una instrucción a la vez. Si un proceso se está ejecutando 
actualmente en el espacio de direcciones del usuario y necesita 
acceder a un servicio del sistema como leer datos de un archivo, 
abrir un socket para iniciar una conexión con un servidor, etc. El 
procesador tendrá que ejecutar una instrucción TRAP (excepción) 
para transferir el control al sistema operativo. Éste determinará lo 
que quiere el proceso invocador al examinar los parámetros y a 
continuación ejecutará la llamada al sistema y devolverá (o no) el 
control a la instrucción que seguía a la llamada al sistema. 
 
En muchos aspectos, ejecutar una llamada es similar a ejecutar 
una función salvo que las llamadas al sistema entran en el kernel y 
las funciones no. 
 
 
 
 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Llamadas al sistema 
Veamos un ejemplo: 
 
 
 
 
 
 
 
 
 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
fd 
Cantidad 
de bytes 
‘nbytes’ 
Memoria 
buf 
puntero1 
puntero2 
puntero3 
… 
punteron 
Autor: LAROSA, F. S. 
Sistemas Operativos 
Llamadas al sistema 
•Procesos 
•Manejo de bloqueos 
•Administración de memoria 
•Administración de dispositivos E/S 
•Archivos 
•Seguridad 
•Shell 
•Llamadas al sistema 
Espacio de usuario Espacio de kernel 
Espacio de memoria del proceso en ejecución 
… 
read(fd,buffer,nbytes) 
… 
Pila del proceso en ejecución 
fd 
buffer 
nbytes 
1) La aplicación llega 
a la función ‘read’ 
2) La aplicación mete 
en la pila los 
parámetros de la 
función ‘read’ 
Función ‘read’ 
3) La función mete el código de la 
llamada en un registro especial 
4) La función pasa a modo kernel 
Código que atiende las llamadas al 
sistema 
5) El código que atiende las 
llamadas al sistema determina por 
el código introducido que es la 
llamada ‘read’ 
6) Mediante una tabla de punteros 
se determina cual es el programa 
manejador (‘handler’) adecuado 
para llevar a cabo la operación de 
lectura. 
Tabla de 
punteros 
7) El manejador ejecuta la 
operación para el que fue escrito. 
Código del ‘handler’ 
8) El control podría devolverse al 
procedimiento de biblioteca en el 
espacio de usuario. 
9) Retorno a la aplicación 
Autor: LAROSA, F. S. 
Sistemas Operativos 
El futuro… 
“640K is more memory than anyone will ever need” Bill Gates 
 
 
Autor: LAROSA, F. S. 
Sistemas Operativos 
El futuro… 
Virtualización 
 
El futuro de los servidores (y probablemente de las computadoras 
de oficina) se basará cada vez más en un esquema de sistemas 
operativos virtualizados: 
 
 
 
Windows 7 LINUX I LINUX II 
Hypervisor MV 
Hardware 
Sistema 
informático 
Autor: LAROSA, F. S. 
Sistemas Operativos 
El futuro… 
Operación multinúcleo 
 
Con procesadores hasta de ocho cores (en la actualidad en el 
mercado) los sistemas operativos se están quedando atrás en el 
aprovechamiento de este tipo de recursos de hardware… 
 
Muchos sistemas operativos y aplicaciones no aprovechan todas las 
capacidades de los múltiples cores (por no decir de las palabras de 
64 bits)… 
 
 
 
 
Autor: LAROSA, F. S. 
Sistemas Operativos 
El futuro… 
Espacios de direcciones de memoria extensos 
 
A medida que la cantidad de memoria de sistema («RAM») crece 
sin parar los paradigmas de programación cambiarán. 
 
El uso de memoria virtual se volverá cada vez más obsoleto hasta 
desaparecer y se incrementarán las dificultades para manejar y 
paginar cantidades de memoria crecientes. 
 
 
 
 
Autor: LAROSA, F. S. 
Sistemas Operativos 
El futuro… 
Redes 
 
A medida que los límites entre «afuera» y «adentro» en una 
computadora se van difuminando (se borran las diferencias entre 
datos almacenados local y remotamente) las aplicaciones deberán 
integrar ambos tipos de datos para ocultar estas 
«inconveniencias» al usuario. 
 
Muchos intentan imponer el paradigma de la «cloud computing» 
en el cual un sistema de computación se concibe inmerso en una 
nube de la cual forman parte millones de otros equipos… 
 
… un tema controvertido en cuanto a la seguridad. 
Autor: LAROSA, F. S. 
Sistemas Operativos 
El futuro… 
Multimedia y archivos extensos 
 
A medida que los archivos que nos rodean (especialmente bajo el 
influjo de las aplicaciones multimedia) crecen en tamaño se 
necesitarán nuevos sistemas de archivos capaces de manejarlos 
mejor y más eficientemente.

Continuar navegando