PRÓLOGO. Contexto de desarrollo del libro. Novedades en la segunda edición

Documentos relacionados
II22. Sistemas Operativos III

ESCUELA DE INGENIERIA Informática Y Sistemas

SISTEMAS OPERATIVOS. Técnico en Informática El futuro está en tus manos ISAE UNIVERSIDAD FACULTAD DE CIENCIAS TECNOLOGICAS TÉCNICO EN INFORMÁTICA

Sistemas Operativos. Curso Página Web: Asignaturas de programación en el plan de estudios

Programa de la asignatura Curso: 2007 / 2008 SISTEMAS OPERATIVOS (1299)

Programa de la asignatura Curso: 2008 / 2009 SISTEMAS OPERATIVOS (1299)

Asignaturas antecedentes y subsecuentes

UNIVERSIDAD RICARDO PALMA FACULTAD DE INGENIERIA EAP INGENIERIA INFORMATICA

INDICE 1. Introducción 2. Entrada / Salida: Principios y Programación 3. Procesos

Universidad Autónoma de Baja California Facultad de Ciencias Administrativas Unidad Mexicali

Mercedes Fernández Redondo

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL FACULTAD DE INGENIERÍA ELECTRÓNICA E INFORMÁTICA SÍLABO

Sistemas Operativos Página 1 de 6

Contenido 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS PROCESOS Prólogo...

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA PROGRAMA DE ESTUDIO

División Académica de Informática y Sistemas

INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS

GUÍA DE APRENDIZAJE SISTEMAS OPERATIVOS

F1131 Fundamentos de sistemas operativos 1/12

Convivencia Introducción

GUÍA DE APRENDIZAJE SISTEMAS OPERATIVOS

GUÍA DOCENTE DE LA ASIGNATURA

UNIVERSIDAD AUTÓNOMA DE CHIHUAHUA Clave: 08MSU0017H. Clave: 08USU4053W FACULTAD DE INGENIERÍA. Programa del curso: SISTEMAS OPERATIVOS

UNIVERSIDAD DE GUADALAJARA

SILABO SISTEMAS OPERATIVOS

Tema 12: El sistema operativo y los procesos

CAPÍTULO 0. Guía del lector Organización del libro Orden de presentación de los temas Recursos en Internet y en la Web

Programa de Sistemas Operativos

Sumario Prólogo Unidad didáctica 1. Introducción a los sistemas operativos Objetivos de la Unidad... 12

PROGRAMA DE ASIGNATURA DE

GUÍA DOCENTE. Ingeniería Informática en Sistemas de Información Doble Grado:

Pontificia Universidad Católica del Ecuador

Arquitectura de Computadores (obligatoria)

UNIVERSIDAD DE LOS LLANOS Facultad de Ciencias Básicas e Ingeniería Programa Ingeniería de Sistemas SISTEMAS OPERATIVOS

DESCRIPCIÓN DEL CURSO:

Pontificia Universidad Católica del Ecuador

Pontificia Universidad Católica del Ecuador

UNIVERSIDAD DE GUADALAJARA

GUÍA DOCENTE 2016/2017. Introducción a los Sistemas Operativos Grado en INGENIERÍA INFORMÁTICA 1º curso. Modalidad Presencial

Concurrencia de Procesos

Fecha de elaboración: Agosto de 2004 Fecha de última actualización: Julio de 2010

Introducción a los Sistemas Operativos

Guía Docente 2015/2016

Ingeniería en Computación

Programación Concurrente y Paralela. Unidad 1 Introducción

Nombre del documento: Programa de Estudio de asignatura de Especialidad. Nombre de la asignatura: Protección de Sistemas Operativos

Universidad Centroccidental Lisandro Alvarado Decanato de Ciencias y Tecnología Departamento de Sistemas Barquisimeto

UNIVERSIDAD DEL CARIBE UNICARIBE. Escuela de Informática. Programa de Asignatura

Clases 02 & 03: Revisión de conceptos

Arquitectura de Computadores. E.P.S. Alcoi Curso

GUÍA DOCENTE CURSO FICHA TÉCNICA DE LA ASIGNATURA. Datos de la asignatura Nombre Sistemas Operativos

Tecnología de software para sistemas de tiempo real

INDICE Prologo Capitulo 0. Guía del lector Primera parte: antecedentes Capitulo 1. Introducción a los computadores

1. INTRODUCCIÓN 1.1. Qué es un sistema operativo? El sistema operativo como máquina extendida El sistema operativo como gestor de

Guía Docente 2015/2016

GUÍA DOCENTE Curso

INSTITUTO POLITECNICO NACIONAL SECRETARIA ACADEMICA DIRECCION DE ESTUDIOS PROFESIONALES EN INGENIERIA Y CIENCIAS FISICO MATEMATICAS

Introducción a los Sistemas Operativos

Sistemas operativos: una visión aplicada. Capítulo 9 Seguridad y Protección

PLANIFICACIÓN DE LA DOCENCIA UNIVERSITARIA GUÍA DOCENTE. Sistemas operativos

Guía Docente 2016/2017

SO2 - Sistemas Operativos II

Universidad Central Del Este U C E Facultad de Ciencias y Humanidades Escuela de Pedagogía Mención Informática.

Planificaciones Sistemas Operativos. Docente responsable: MENDEZ MARIANO. 1 de 6

Pontificia Universidad Católica del Ecuador

SISTEMAS EN TIEMPO REAL

TEMA 1: INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS

Sistemas empotrados y ubicuos

Capítulo 2 Introducción a los sistemas operativos

Tema 3: Conceptos básicos de GNU/LINUX. Objetivo:

Nombre de la asignatura : Sistemas de Computación Código : Nivel (semestre de la carrera) : 7 : Ingeniería Civil Informática Nº de créditos : 4

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

Introduccion a Sistemas Operativos. Ej: Linux

Sistemas empotrados, ubicuos y móviles

Ingeniería Informática

GESTIÓN DOCENTE DE LA ASIGNATURA ESTRUCTURA DE COMPUTADORES A TRAVÉS DE INTERNET

SOA - Sistemas Operativos Avanzados

Guía docente de la asignatura

Organización del libro 2 Orden de presentación de los temas 3 Recursos en Internet y en la Web 4

Sistema Operativo. Introducción a los Sistemas Operativos. El Sistema Operatico como Interfaz Usuario/Computador. Objetivos del Sistema Operativo

Evolución del software y su situación actual

PARTICIPACIÓN DE ISA EN ASIGNATURAS DE INFORMÁTICA Y COMPUTADORES EN LA UMH

Conceptos y Estructuras de Sistemas Operativos

I.T.S.C.S. Instituto tecnológico superior compu sur SYLLABUS DE ARQUITECTURA I REF: ARQUITECTURA DE HARDWARE

ASIGNATURA: Arquitectura de Computadores

FUNDAMENTOS DE INFORMÁTICA PARA INGENIERÍA INDUSTRIAL

GUÍA DE APRENDIZAJE ARQUITECTURA DE COMPUTADORES

SISTEMAS OPERATIVOS: INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS. Introducción y conceptos básicos

La implantación de la nueva titulación de Grado en Ingeniería Informática en la Escuela Politécnica Superior se hará curso a curso.

GUÍA DOCENTE Arquitecturas Avanzadas de Computadores

Sistemas Operativos. Un sistema operativo es un conjunto de programas de computadora diseñados especialmente para cubrir los siguientes objetivos:

ANX-PR/CL/ GUÍA DE APRENDIZAJE

Sistemas distribuidos

GUÍA DE APRENDIZAJE GRAFICOS POR COMPUTADOR

GUÍA DEL CURSO ACADÉMICO ESCUELA UNIVERSITARIA DE INFORMÁTICA UNIVERSIDAD POLITÉCNICA DE MADRID

GUÍA DE APRENDIZAJE PERIFERICOS E INTERFACESS

IFCD0111 Programación en Lenguajes Estructurados de Aplicaciones de Gestión

DISEÑO CURRICULAR SISTEMAS OPERATIVOS

BOLETÍN OFICIAL DEL ESTADO UNIVERSIDADES

Transcripción:

PRÓLOGO Los sistemas operativos son una parte esencial de cualquier sistema de computación, por lo que todos los planes de estudio de Informática y otras Ingenierías incluyen uno o más cursos sobre sistemas operativos. La mayoría de libros de sistemas operativos preparados para estos cursos, contienen gran cantidad de teoría general y aspectos de diseño, pero no muestran claramente cómo se usan. Este libro está pensado como un texto general de sistemas operativos, pudiendo cubrir tanto la parte introductoria como algunos aspectos de diseño de los mismos. En él se tratan todos los aspectos fundamentales de los sistemas operativos, tales como procesos, gestión de memoria, comunicación y sincronización de procesos, entrada/salida, sistemas de ficheros y seguridad y protección. Además, en cada tema, se muestra la interfaz de programación de UNIX y de Windows, con ejemplos de uso de las mismas. Esta solución permite que el lector, no sólo conozca los principios teóricos, sino cómo se aplican en sistemas operativos reales. Contexto de desarrollo del libro A principios de los 90, los profesores del Departamento de Arquitectura y Tecnología de la Facultad de Informática de la Universidad de Politécnica de Madrid comenzaron a elaborar apuntes que incluían teoría y problemas de Sistemas Operativos, con vistas a desarrollar un nuevo plan de estudios de Informática. Se revisaron cuidadosamente los planes de estudio existentes en dicha universidad, así como los de otras escuelas similares. Además se llevó a cabo una revisión exhaustiva de bibliografía relacionada con los sistemas operativos. La motivación para llevar a cabo la primera edición de este trabajo surgió de la insatisfacción con los libros de texto existentes en su momento, que, en líneas generales, se caracterizaban por enfatizar los siguientes aspectos: Teoría general sobre sistemas operativos. Aspectos de diseño detallado, generalmente específicos de un sistema operativo. Desarrollo en un ambiente de sistemas operativos clásicos. Comparando esta situación con la del mundo real se observaban considerables diferencias: Demanda de los estudiantes para tener apoyo en las cuestiones teóricas con ejemplos prácticos. Necesidad de conocer los sistemas operativos desde el punto de vista de la programación de sistemas. Visión generalista del diseño de los sistemas operativos, estudiando distintos sistemas. Esta situación obligaba a los autores a mezclar textos generales sobre sistemas operativos con otros libros que estudiaban sistemas operativos concretos y la forma de programarlos. Por esta razón, entre otras, el cuerpo de los apuntes, mencionado anteriormente, fue creciendo y modernizándose hasta llegar a este libro. La evolución de los sistemas operativos, así como los comentarios de los usuarios de este texto, tanto alumnos como profesores, nos han animado a elaborar una segunda edición del texto, mejorada y ampliada. Novedades en la segunda edición La segunda edición del libro incluye varias mejoras sobre la primera edición publicada en el año 2001.

xvi Sistemas operativos. Una visión aplicada En primer lugar se ha incluido un capítulo sobre planificación del procesador, lo que solventa una carencia clara en la primera edición del libro, en la que se incluían contenidos escasos sobre este tema, por otra parte fundamental para el sistema operativo. En segundo lugar, se han ampliado considerablemente los temas de gestión de memoria, sistemas de ficheros y directorios, seguridad y sistemas distribuidos, incluyendo material nuevo y actualizaciones sobre la primera edición. En tercer lugar, se han eliminado los dos temas de estudio de caso, ya que se habían quedado obsoletos debido a la evolución de los sistemas mostrados. En lugar de ello, se han incluido elementos puntuales por los distintos capítulos que muestran implementaciones concretas de algunos aspectos. Por último, se han eliminado dos de los apéndices debido a que no tenían sentido al existir ya un libro de prácticas de sistemas operativos asociado a este libro de prácticas que incluye estos contenidos muy ampliados. Además de esto, se han introducido nociones de gestión de sistemas SMP y NUMA, sistemas de tiempo real, gestión de bibliotecas dinámicas, pautas de diseño de manejadores de dispositivos, sistemas de ficheros con registro, sistemas de seguridad en redes de computadores, etcétera. Creemos que el resultado final es más completo que la primera edición. Características del libro Los sistemas operativos son una parte esencial de cualquier sistema de computación, por lo que todos los planes de estudio de Informática incluyen uno o más cursos sobre sistemas operativos. La mayoría de libros de sistemas operativos usados en estos cursos, incluyen gran cantidad de teoría general y aspectos de diseño, pero no muestran claramente cómo se usan. Este libro está pensado como un texto general de sistemas operativos, pudiendo cubrir tanto la parte introductoria como los aspectos de diseño de los mismos. Para ello, se incluyen en el libro las siguientes características para reforzar los contenidos teóricos: Numerosas figuras. Más de trescientas figuras disponibles en Power Point y PDF. Consejos y advertencias. El libro incluye cuadros de texto resaltados donde se muestran consejos de programación, advertencias de uso, ideas sobre prestaciones, etc. Estos cuadros reflejan la experiencia de los autores en el uso y en la docencia de Sistemas Operativos. Interfaz de programación de sistemas operativos para UNIX y Windows, con ejemplos de uso de las mismas. Esta solución permite que el lector, no sólo conozca los principios teóricos, sino como se aplican en sistemas operativos reales. Ejercicios. Cada capítulo incluye ejercicios con diferentes grados de dificultad para adecuarse a los distintos tipos de cursos en que se puede usar este libro. Estos ejercicios hacen énfasis en los aspectos teóricos más importantes. Bibliografía. Una extensa bibliografía, con referencias básicas y de ampliación, para cada capítulo. En la segundad edición se ha actualizado esta bibliografía para reflejar nuevos contenidos y sistemas existentes en la actualidad. Centro de aprendizaje on-line, con materiales suplementarios para el libro, situado en la dirección www.mhe.es/carretero2. En este portal Web se puede encontrar el siguiente material: información sobre el libro, información de los autores, material para el profesor (figuras del libro, transparencias, soluciones de ejercicios y problemas propuestos y material de prácticas) y Material para el estudiante (código fuente de los programas, figuras en PowerPoint, capítulos en PDF, problemas propuestos de sistemas operativos, etc.).

Prólogo xvii Organización del libro El libro está organizado en once temas, cuyo índice se muestra más abajo. Su contenido cubre todos los aspectos de gestión de un computador, desde la plataforma hardware hasta los sistemas distribuidos. Además se incluye un apéndice. Los temas son los siguientes: 1.- Conceptos arquitectónicos del computador En este tema se hace una breve descripción de la estructura y funcionamiento de un computador, haciendo énfasis en los aspectos fundamentales para el sistema operativo. La motivación para incluir este capítulo, es evitar la necesidad de que el lector posea conocimientos previos de estructura de computadores. En él se tratan aspectos tales como el modelo de programación del computador, tratamiento de interrupciones, jerarquía de memoria, entrada/salida y concurrencia. Además, se comentan brevemente los mecanismos de protección hardware. 2.- Introducción a los sistemas operativos En este tema se explica qué es un sistema operativo, cuáles son sus funciones principales, los tipos de sistemas operativos existentes actualmente y cómo se activa un sistema operativo. También se introduce brevemente la estructura del sistema operativo y de sus componentes principales (procesos, memoria, ficheros, comunicación, etc.), que se describen en detalle en capítulos posteriores. Además, se ponen dos ejemplos concretos, como son Linux y Windows. 3.- Procesos El proceso es la entidad más importante de un sistema operativo moderno. En este tema se estudia en detalle el concepto de proceso, la información asociada al mismo, sus posibles estados y las señales y temporizadores que pueden ser asociadas a un proceso. Un sistema operativo gestiona una colección de procesos que se ejecutan de forma concurrente. La planificación de dichos procesos es crucial para la gestión de un computador. Es esencial explotar los recursos de forma eficiente, equitativa y evitar bloqueos entre procesos. Además, se estudia en este capítulo el concepto de thread y su influencia sobre los aspectos anteriores del sistema. Todo ello se complementa con ejemplos de uso en UNIX y Windows. 4.- Planificación del procesador La gestión del procesador es fundamental para conseguir un buen funcionamiento del sistema. El tiempo compartido, la multiprogramación o los sistemas multiprocesadores, exigen una gestión eficiente y fiable del procesador. Ello se consigue a través del planificador, un elemento clave del sistema operativo. En este capítulo se muestran los fundamentos de la programación, los mecanismos, las políticas de planificación de propósito general y de sistemas de tiempo real y la interfaz de programación de los servicios de planificación del sistema. 5.- Gestión de memoria Este tema estudia la gestión de memoria de una manera integral, abarcando no sólo aquellos aspectos que incumben directamente al sistema operativo, sino también los asociados al proceso de compilación y montaje. En el capítulo se estudian los objetivos del sistema de memoria, así como todos los aspectos vinculados con la gestión del mapa de memoria de un proceso. Asimismo, se estudian los diversos esquemas de gestión de memoria, haciendo especial énfasis en la memoria virtual. Al final del tema se muestran los servicios de gestión de memoria existentes en UNIX y Windows y algunos ejemplos de uso de los mismos. 6.- Comunicación y sincronización de procesos Los procesos no son entidades aisladas, sino que en muchos casos cooperan entre sí y compiten por los recursos. El sistema operativo debe ofrecer mecanismos de comunicación y sincronización de procesos concu-

xviii Sistemas operativos. Una visión aplicada rrentes. En este tema se muestran los principales mecanismos usados en sistemas operativos, tales como tuberías, semáforos o el paso de mensajes, así como algunos aspectos de implementación de los mismos. Al final del tema se muestran los servicios de comunicación y sincronización existentes en UNIX y Windows y algunos ejemplos de uso de los mismos. 7.- Interbloqueos Las comunicaciones, el uso de recursos compartidos y las sincronizaciones son causas de bloqueos mutuos entre procesos, o interbloqueos. En este capítulo se presenta el concepto de interbloqueo, así como los principales métodos de modelado de interbloqueos. Además, se describen los principales algoritmos existentes para gestión de interbloqueos, incluyendo los de prevención, detección y predicción de interbloqueos. 8.- Entrada/Salida El procesador de un computador necesita relacionarse con el mundo exterior. Esta relación se lleva a cabo mediante los dispositivos de entrada/salida (E/S) conectados al computador. El sistema operativo debe ofrecer una interfaz de acceso a dichos dispositivos y gestionar los detalles de bajo nivel de los mismos. En este tema se muestran aspectos del hardware y el software de E/S, estudiando una amplia gama de dispositivos, tales como los de almacenamiento secundario y terciario, los relojes, la red o el terminal. Asimismo, se proporcionan pautas de diseño de manejadores de dispositivos. Al final del tema se muestran los servicios de entrada/salida existentes en UNIX y Windows y algunos ejemplos de uso de los mismos. 9.- Gestión de ficheros y directorios El sistema operativo debe proporcionar al usuario mecanismos de alto nivel para acceder a la información existente en los dispositivos de almacenamiento. Para ello, todos los sistemas operativos incluyen un sistema de gestión de ficheros y directorios. El fichero es la unidad fundamental de almacenamiento que maneja el usuario. El directorio es la unidad de estructuración del conjunto de ficheros. En este tema, se muestran los conceptos fundamentales de ficheros y directorios, la estructura de sus gestores y los algoritmos internos usados en los mismos. Al igual que en otros temas, se muestran los servicios de ficheros y directorios existentes en UNIX y Windows y algunos ejemplos de uso de los mismos. 10.- Introducción a los sistemas distribuidos Los sistemas de computación actuales raramente están aislados. Es habitual que estén conectados formando conjuntos de máquinas que no comparten la memoria ni el reloj, es decir sistemas distribuidos. Este tema presenta una breve introducción a dichos sistemas, estudiando las características de los sistemas distribuidos, sus problemas de diseño, su estructura y sus distintos elementos (redes, comunicación, memoria distribuida, sistemas de fichero distribuido, etc.). También se muestran distintas técnicas de diseño de aplicaciones cliente-servidor en sistemas distribuidos. 11.- Seguridad y protección Un sistema de computación debe ser seguro. El usuario debe tener la confianza de que las acciones internas o externas del sistema no van a ser un peligro para sus datos, aplicaciones o para las actividades de otros usuarios. El sistema operativo debe proporcionar mecanismos de protección entre los distintos procesos que ejecutan en un sistema y entre los distintos sistemas que estén conectados entre sí. En este tema se exponen los conceptos de seguridad y protección, posibles problemas de seguridad, mecanismos de diseño de sistemas seguros, los niveles de seguridad que puede ofrecer un sistema y los controles existentes para verificar si el estado del sistema es seguro. Además, se estudian los mecanismos de protección que se pueden usar para controlar el acceso a los distintos recursos del sistema, tanto a nivel de sistema individual como de red. Al final del tema, se muestran los servicios de protección existentes en UNIX y Windows y algunos ejemplos de uso de los mismos.

Prólogo xix Apéndice 1. Comparación de los servicios UNIX y Windows Tabla de llamadas al sistema de UNIX y Windows. Para cada función del sistema, se muestra la llamada UNIX y la de Windows que lleva a cabo dicha función, junto a un breve comentario de la misma. Materiales suplementarios Existe un centro de enseñanza on-line disponible a través de Web con materiales suplementarios para el libro, situada en la dirección: http://www.mhe.es/carretero2. En esta página Web se puede encontrar el siguiente material: Información sobre el libro, como el prólogo, tabla de contenidos, capítulos de ejemplo en PDF, erratas, etc. Información de los autores y dirección de contacto. Material para el profesor, como figuras del libro, transparencias, soluciones de ejercicios y problemas propuestos y material de prácticas. Las prácticas que se presentan han sido diseñadas como trabajos de laboratorio para estudiantes de las asignaturas de Sistemas Operativos de la Universidad Politécnica de Madrid y de la Universidad Carlos III de Madrid. Se ha hecho un importante esfuerzo para generalizar sus enunciados, de forma que puedan desarrollarse fácilmente sobre sistemas operativos de amplia difusión como Linux, UNIX o Windows. En casi todos los trabajos prácticos expuestos, se hace referencia al material de apoyo existente para las prácticas, que también se puede conseguir en las páginas Web anteriores. Material para el estudiante, como código fuente de los programas, figuras en PowerPoint, problemas propuestos de sistemas operativos, etc. Problemas y prácticas Para completar este libro de texto, concebido como un manual de teoría de sistemas operativos, los autores han escrito otros dos libros que incluyen trabajos sobre problemas y prácticas de sistemas operativos. Prácticas de sistemas operativos Prácticas de sistemas operativos. J. Carretero, F García Carballeira y F. Pérez. McGraw-Hill. 2002. Incluye alrededor de 40 proyectos prácticos relacionados con los aspectos indicados en el libro de teoría. Este libro está pensado como un texto general de prácticas de las asignaturas Sistemas Operativos y Diseño de Sistemas Operativos, pudiendo cubrir tanto la parte introductoria de los aspectos de programación de sistemas como aspectos avanzados de programación y diseño de Sistemas Operativos (programación de shell scripts, programación con llamadas al sistema, programación de módulos del sistema operativo, etc.). También incluye material de apoyo para los alumnos y soluciones de las prácticas para los profesores. Las soluciones de las prácticas están disponibles para los profesores en el portal Web del libro. www.mhe.es/carretero2. Problemas de sistemas operativos Problemas de sistemas operativos. J. Carretero, F García Carballeira y F. Pérez. McGraw-Hill. 2002. Incluye una completa colección de problemas de Sistemas Operativos ordenados en cada capítulo por grado de complejidad creciente. Se incluyen muchos problemas de examen. En él se presentan problemas resueltos que abarcan todos los aspectos fundamentales de los sistemas operativos, tales como procesos, planificación de procesos, gestión de memoria, comunicación y sincronización de procesos, entrada/salida y sistemas de archivos. Además, en cada tema, se muestra una pequeña introducción teórica al mismo y la in-

xx Sistemas operativos. Una visión aplicada terfaz de programación de sistemas operativos UNIX y Windows necesaria para los problemas del tema. Se incluye material de apoyo para los alumnos y soluciones en el portal Web del libro: www.mhe.es/carretero2 Comentario de los autores Es un placer para nosotros poder presentar la segunda edición de este libro a las personas interesadas en los sistemas operativos, su diseño y su programación. La elaboración de este texto ha supuesto un arduo trabajo para nosotros, tanto por la extensión de la obra como por los ejemplos prácticos incluidos en la misma. Además, se ha hecho un esfuerzo importante para tratar de unificar la terminología usada en distintos países de habla hispana. Con todo, creemos que el resultado final hace que el esfuerzo realizado haya merecido la pena. El esfuerzo realizado por mostrar los dos sistemas operativos más actuales, Linux y Windows, ha dado como resultado final un texto didáctico y aplicado, que puede ser usado tanto en cursos de introducción como de diseño de sistemas operativos. En el libro se incluyen ejemplos que muestran el uso de las llamadas al sistema de UNIX y Windows. Dichos ejemplos han sido cuidadosamente compilados y enlazados en los dos entornos en que estaban disponibles: Visual C y gcc. Nos gustaría mostrar nuestro agradecimiento a todas las personas que han colaborado en este texto con su ayuda y sus comentarios, tanto personalmente como a través de las páginas Web de la primera edición del libro. Jesús Carretero Pérez Félix García Carballeira Departamento de Informática Escuela Politécnica Superior Universidad Carlos III de Madrid Madrid, España Pedro de Miguel Anasagasti Fernando Pérez Costoya Departamento de Arquitectura y Tecnología de Sistemas Informáticos Facultad de Informática Universidad Politécnica de Madrid Madrid, España