You are on page 1of 22

Introduccin a los sistemas operativos

Dolors Royo Valls


P05/75097/00804 Mdulo 1

FUOC P05/75097/00804 Mdulo 1

Introduccin a los sistemas operativos

FUOC P05/75097/00804 Mdulo 1

Introduccin a los sistemas operativos

ndice

Introduccin............................................................................................. Objetivos .................................................................................................... 1. Definicin de sistema operativo .................................................... 2. Visin histrica................................................................................... 2.1. Los primeros computadores (la primera generacin) .....................

5 6 7 9 9

2.2. La segunda generacin .................................................................... 10 2.3. La tercera generacin....................................................................... 12 2.4. De la cuarta generacin hasta ahora ............................................... 15 2.5. Tabla resumen ................................................................................. 17 3. Los servicios que ofrece el sistema operativo ............................. 18 3.1. Las llamadas al sistema.................................................................... 18 3.2. El intrprete de rdenes................................................................... 18 Resumen..................................................................................................... 19 Actividades................................................................................................ 21 Glosario...................................................................................................... 21 Bibliografa............................................................................................... 22

FUOC P05/75097/00804 Mdulo 1

Introduccin a los sistemas operativos

Introduccin

Un sistema operativo est formado por los siguientes elementos: El hardware, que se refiere a la mquina fsica. El software, que se refiere al conjunto de programas que se ejecutan y que permiten sacar provecho de las prestaciones que ofrece el sistema. Sin software, el computador es prcticamente un objeto sin ninguna utilidad. El software permite almacenar informacin, procesarla y recuperarla. En general, tambin permite realizar una serie de actividades muy diversas que justifican la inversin econmica en el sistema computador. Actualmente, un sistema computador es un sistema complejo que consta de uno o ms procesadores, memoria, reloj, terminales, discos, impresoras, mdems, etc. Los dispositivos que contiene son de varios tipos* y tienen un funcionamiento muy variado**. Adems, en general hay ms de un usuario que utiliza a la vez el sistema. As, si un usuario quiere utilizar el sistema de forma eficiente y con cierta proteccin de su informacin respecto al resto de usuarios, difcilmente lo podr conseguir sin ningn tipo de ayuda. Es evidente que tiene que haber alguna forma de conseguir que los usuarios puedan acceder al sistema sin tener en cuenta la complejidad del hardware. El problema se ha resuelto poniendo por encima del hardware una capa de software para gestionar las distintas partes del sistema computador de forma eficiente y, a la vez, presentar al usuario una mquina virtual mucho ms sencilla de comprender y de utilizar. Esta capa de software es el llamado software de sistema, cuya parte ms importante es el sistema operativo (SO)*. En este mdulo didctico nos centramos en la descripcin de sistemas monoprocesadores y no tenemos en cuenta en ningn momento los sistemas multiprocesadores.
* Utilizaremos las siglas SO como abreviatura de sistema operativo. * Magntico, mecnico, lser, etc. ** Comparticin, control de errores, operaciones necesarias para utilizar el dispositivo, etc.

FUOC P05/75097/00804 Mdulo 1

Introduccin a los sistemas operativos

Objetivos

En los materiales didcticos de este mdulo presentamos los contenidos y las herramientas imprescindibles para alcanzar los objetivos siguientes: 1. Tener una visin lo ms clara posible de lo que es un sistema operativo. A causa de la complejidad del concepto, formulamos la definicin a partir de la descripcin de las funciones que cumple el sistema operativo dentro del sistema computador, y a partir del proceso evolutivo que han experimentado los sistemas operativos a lo largo de la historia, desde los primeros computadores hasta nuestros das. 2. Comprender la visin externa del sistema operativo: desde el punto de vista del usuario que utiliza el sistema para consultar, modificar, crear, destruir y almacenar informacin, y desde el punto de vista del usuario como programador.

FUOC P05/75097/00804 Mdulo 1

Introduccin a los sistemas operativos

1. Definicin de sistema operativo

En la figura siguiente se muestra un esquema general del sistema computador:

La capa inferior corresponde al hardware del computador. Por encima de sta encontramos el sistema operativo. Es muy difcil dar una definicin exacta y precisa del trmino sistema operativo; generalmente se define a partir de las funciones que desarrolla. Bsicamente son las dos funciones que presentamos a continuacin: 1) Gestin eficiente de los recursos del sistema

El SO controla el acceso eficiente a los recursos del computador: la memoria principal, el tiempo de la unidad central del proceso (CPU) y los dispositivos. Es decir, el SO se encarga principalmente de trabajos de proteccin y de utilizacin eficiente del sistema.

En general, en un sistema computador tenemos muchos programas que se ejecutan al mismo tiempo. Son programas que pueden pertenecer a uno o a varios usuarios, los cuales compiten por los diferentes recursos del sistema. El sistema operativo reparte el tiempo de CPU entre los diferentes programas y consigue una ejecucin concurrente, protege el acceso a la memoria* y coordina el acceso a los dispositivos compartidos (discos, memoria) y a los no compartidos (impresora). 2) Presentacin a los usuarios de una mquina virtual mucho ms sencilla de utilizar
* El SO protege el acceso a memoria entre diferentes usuarios y entre usuarios y el mismo SO.

El sistema operativo proporciona un entorno de trabajo al usuario y a los programas de aplicacin que permite utilizar el computador (ejecutar programas)

FUOC P05/75097/00804 Mdulo 1

Introduccin a los sistemas operativos

de forma ms fcil e intuitiva. Desde este punto de vista, el sistema operativo proporciona al usuario una mquina virtual mucho ms fcil de entender y utilizar por el hecho de que oculta la complejidad del hardware.

Lectura de un fichero Por ejemplo, si no existiera el sistema operativo en el momento de leer un fichero, el usuario necesitara comprender y ocuparse de los detalles tcnicos del disco: poner en funcionamiento el motor, recalibrar los cabezales, posicionarlos (la pista, la cara, el sector), leer y apagar el motor. El sistema operativo nos permite hacer esta lectura de datos de un fichero con una operacin mucho ms sencilla e intuitiva: con la operacin read (nombre_fichero,pos,reg) se indica que se quiere leer del fichero nombre_fichero, el registro reg, que est en la posicin pos.

Por encima del ncleo del sistema operativo tenemos el software del sistema, que consta del intrprete de rdenes (shell), compiladores, editores y, en general, programas que facilitan la comunicacin entre el sistema operativo y el usuario. Finalmente, por encima del software de sistema tenemos el software de aplicacin. Una parte de este software la utiliza el usuario sobre todo para resolver problemas especficos. En este nivel encontramos hojas de clculo, procesadores de texto, juegos de vdeo, etc.

FUOC P05/75097/00804 Mdulo 1

Introduccin a los sistemas operativos

2. Visin histrica

Para entender bien qu es un sistema operativo y para qu sirve, es importante analizar con detalle su evolucin. A continuacin explicamos cmo han ido evolucionando los sistemas operativos desde las versiones ms primitivas (monitores residentes y sistemas operativos por lotes), pasando por los sistemas operativos multiprogramados y de tiempo compartido, hasta los sistemas operativos distribuidos y los sistemas operativos en red. No es fcil separar el desarrollo de la arquitectura de los computadores de la evolucin de los sistemas operativos, esencialmente porque los sistemas operativos han evolucionado en funcin de los cambios tecnolgicos intentando sacar el mayor provecho de las nuevas tecnologas. stas, a sus vez, han solucionado muchos problemas que han ido surgiendo en los sistemas operativos.

2.1. Los primeros computadores (la primera generacin) Al principio slo estaba el hardware del computador. La tecnologa utilizada en la construccin de los primeros computadores eran las vlvulas de vaco, que obligaban a fabricar unos aparatos monstruosamente grandes.

El ENIAC, Electronic Numerical Integrator and Computer (computador e integrador numrico electrnico), pesaba aproximadamente treinta toneladas, ocupaba 150 m2 y tena una potencia de 150 kilovatios.

Estos primeros computadores se utilizaban para efectuar clculos matemticos en cuestiones militares. Por ejemplo, para calcular trayectorias balsticas y tablas de senos y cosenos. La velocidad de operacin se meda en milisegundos.

Los dispositivos eran cintas de papel y tarjetas perforadas. El programa se escriba en lenguaje mquina, se cargaba manualmente en la memoria y se ejecutaba. El resultado se almacenaba en cinta de papel o en tarjetas perforadas.
Modelo de tarjeta perforada

FUOC P05/75097/00804 Mdulo 1

10

Introduccin a los sistemas operativos

En esta primera poca se consideraba que no haba sistema operativo y que el usuario interaccionaba directamente con el computador. Evidentemente, la programacin de la mquina en este nivel era muy poco productiva tanto para el usuario como para el hardware. El proceso de introduccin de programas, que era largo y complicado, haca inviable la ejecucin de programas medianos o grandes en este entorno.

2.2. La segunda generacin La aparicin del transistor en la dcada de 1950 permiti construir computadores mucho ms pequeos y fiables, de modo que ya se podan fabricar con la idea de venderlos. Eran mquinas muy caras y slo estaban al alcance de las grandes corporaciones, instituciones como el ejrcito, las universidades y el gobierno. La velocidad de las operaciones se calculaba en microsegundos. a) Aparecen nuevos dispositivos de entrada/salida: los lectores de tarjetas perforadas y las impresoras
Primer transistor de puntas de contacto (1958)

Las tarjetas y las cintas perforadas se utilizaban para programar los computadores y para recibir los resultados de sus clculos mediante mquinas lectoras-perforadoras de tarjetas.

b) Tambin se inventan nuevos dispositivos de almacenamiento: las unidades de disco y las cintas magnticas. c) Se desarrolla el primer software, que incluye ensambladores, lenguajes de comunicacin*, cargadores, montadores, libreras de funciones matemticas y rutinas estndar de entrada/salida de los diferentes dispositivos que pueden utilizar los programas**. Con este nuevo entorno se mejora considerablemente el proceso de programacin y ejecucin de programas respecto de la etapa inicial. En esta etapa, el proceso tiene lugar siguiendo los pasos que exponemos a continuacin:
* Algol, Cobol, Fortran. ** Impresoras, monitores y tarjetas perforadas.

FUOC P05/75097/00804 Mdulo 1

11

Introduccin a los sistemas operativos

1) Los programas se escriben en lenguajes ensamblador o de alto nivel; una vez creados se denominan cdigo fuente. 2) Los programas se traducen de forma automtica mediante los compiladores/traductores a lenguaje mquina: Si hay errores de sintaxis se tiene que repetir el proceso desde el principio. Si no hay errores sintcticos, el cdigo objeto producido a partir del cdigo fuente por el programa traductor/compilador se puede cargar en memoria y ejecutar. 3) Otro programa, el cargador, automatiza el proceso de cargar el programa en la memoria para ejecutarlo. 4) Despus de transferir el control al programa cargado por medios manuales o automticos, empieza la ejecucin del programa. Una vez cargado en la memoria, el programa se puede reejecutar con diferentes datos, y los resultados se consiguen por la impresora o en cinta de papel. Si se detectan errores en tiempo de ejecucin, es posible determinar dnde se han producido haciendo un volcado de la memoria y de los registros del computador o bien utilizando el programa depurador. En este sistema, las rutinas de entrada/salida, junto con el programa cargador, se pueden considerar una primera versin muy rudimentaria del sistema operativo. Los traductores de lenguaje de alto nivel, los editores y los depuradores son programas del sistema que se incluyen en los diferentes servicios que ofrece el sistema operativo, pero generalmente se considera que no forman parte del mismo. Pese a todas estas mejoras, el modo de operacin continuaba siendo poco eficaz a causa de las distintas operaciones manuales que convena efectuar, que comportaban una utilizacin baja de los recursos del sistema. Puesto que el coste econmico del sistema computador era elevado, no es extrao que se buscasen formas de aprovechar el tiempo perdido y aumentar la utilizacin de los recursos del sistema para eliminar los tiempos muertos generados por las operaciones manuales. El primer objetivo fue automatizar al mximo todas las operaciones mediante el uso de hardware. Sin embargo, pese a la automatizacin de estas operaciones y a la mejora de los dispositivos*, la velocidad de las operaciones de entrada/ salida de datos continuaba siendo demasiado lenta en comparacin con la velocidad del procesador y la de la memoria. Puesto que no era posible reducir el coste temporal de las operaciones de entrada/salida, se intent al menos efectuarlas el mnimo nmero posible de veces. La idea era agrupar los trabajos de forma que las operaciones auxiliares slo se hiciesen una vez por todos los trabajos del grupo. Este sistema se denomina sistema por lotes (sistema batch).
* Utilizacin de cintas en lugar de tarjetas perforadas.

FUOC P05/75097/00804 Mdulo 1

12

Introduccin a los sistemas operativos

Un ejemplo de su funcionamiento sera el siguiente: agrupando en un lote todos los programas escritos en lenguaje de alto nivel Fortran, slo se tiene que cargar una vez el compilador de Fortran, y los trabajos que se realizan dentro del lote se pueden procesar uno detrs de otro con un secuenciamiento automtico. Para que sea posible este secuenciamiento automtico, se tiene que poder indicar al sistema operativo al menos cundo empieza y cundo finaliza un programa dentro del lote. En este punto, conviene introducir el concepto de lenguaje de control de trabajos (JCL)*. Con este lenguaje se poda indicar al sistema operativo el inicio y la finalizacin de un trabajo, dar rdenes de carga y ejecucin y solicitar ciertos recursos del computador (tiempo de CPU, cantidad de memoria, etc.) Pese a esta automatizacin, la CPU continuaba parada mucho tiempo. El problema principal era la diferencia de velocidades entre la CPU y los dispositivos: las CPU en este perodo eran lentas, pero los lectores de tarjetas todava lo eran ms. Por tanto, la CPU estaba mucho tiempo parada esperando que finalizase una operacin de entrada/salida. Para intentar reducir al mximo estas diferencias de trabajo, apareci el trabajo fuera de lnea (off-line). Con este sistema se intentaban solapar las operaciones de entrada/salida con la ejecucin de programas. Mientras los programas escritos en tarjetas se lean y se pasaban a cinta en una mquina, en otra mquina se podan ir ejecutando otros programas que ya se haban cargado anteriormente en otra unidad de cinta. Posteriormente se idearon otras tcnicas de solapamiento como el almacenamiento en memoria intermedia (buffering), que consiste en solapar las operaciones de entrada/salida de un programa con las operaciones de clculo del mismo programa. La aparicin del disco proporcionar una nueva tcnica de trabajo: la gestin de colas (spooling), que permita solapar las operaciones de entrada/salida de diferentes trabajos mientras se ejecutaban otras operaciones.
* Las siglas JCL provienen de la abreviatura de la expresin inglesa Job Control Language.

2.3. La tercera generacin La tercera generacin de computadores surge a mediados de los aos sesenta y tecnolgicamente se basa en los circuitos integrados. Estas nuevas mquinas son mucho ms pequeas que las de la segunda generacin, y tambin son mucho ms rpidas, la velocidad de proceso se mide en nanosegundos.

Circuito integrado

La serie IBM 360 El primer grupo de computadores con circuitos integrados fue el compuesto por los de la serie 360 de IBM.

FUOC P05/75097/00804 Mdulo 1

13

Introduccin a los sistemas operativos

Otro aspecto muy importante de esta nueva generacin es el hecho de que se introducen mecanismos nuevos: interrupciones, proteccin, bsqueda de una concurrencia mxima de operacin, etc. Paralelamente, se desarrollaron el hardware y el software, que dieron lugar a los siguientes elementos: Perifricos ms rpidos y efectivos. Terminales remotos (con los que se puede acceder a bancos de datos, actualizar cuentas corrientes, etc.) Softwares de base adaptados al usuario que se caracterizaban por la elaboracin de lenguajes universales, pensados para que los pudiesen utilizar diferentes computadores con caractersticas hardware muy diversas. Se estandarizaron los lenguajes de alto nivel ya existentes (Fortran, Algol, Cobol, PL/1) y aparecieron otros, como el Basic y el Pascal. Una de las tcnicas ms innovadoras de esta generacin es la multiprogramacin, que permite solapar la ejecucin de varios programas.
La ejecucin de programas en computadores de segunda generacin En los computadores de la segunda generacin, la ejecucin de los programas era totalmente secuencial. Cuando un programa se detena para esperar la finalizacin de una operacin de entrada/salida (de una unidad de cinta o de cualquier otro dispositivo), la unidad central de proceso (CPU) sencillamente se detena y tambin esperaba que la operacin de entrada/salida acabase. En el caso de programas cientficos, en los que domina el clculo de operaciones en coma flotante (los cuales se efectan en la CPU) y las operaciones de entrada/salida son poco frecuentes, este sistema de trabajo ya era lo bastante eficiente.

Con la aparicin de computadores de menor tamao y ms fiables gracias a las nuevas tecnologas y a la posibilidad de incrementar la produccin de computadores, los costes de fabricacin se redujeron. De esta forma nace un sector informtico comercial muy importante. Los computadores se pusieron al alcance de empresas medianamente grandes y empieza el uso comercial de la informtica. En el procesamiento de datos comerciales, el tiempo de espera a causa de operaciones de entrada/salida puede suponer el 90% del tiempo total de ejecucin. As pues, conviene introducir mejoras para conseguir reducir el tiempo de respuesta de estas operaciones. La solucin ser la introduccin de la programacin concurrente. Durante la ejecucin de un programa, generalmente podemos distinguir entre fases de clculo intensivo y fases en las que se efectan operaciones de entrada/salida de forma intensiva. Esto se ilustra en la figura de la pgina siguiente, donde las fases de clculo intensivo se indican mediante rectngulos grises y las de entrada/salida, con rectngulos blancos. La ejecucin secuencial de dos programas se muestra en el punto a. Para simplificarlo, supondremos que los programas tienen un comportamiento idntico.

FUOC P05/75097/00804 Mdulo 1

14

Introduccin a los sistemas operativos

Como se puede deducir de la figura de la pgina siguiente, durante la ejecucin secuencial de los dos programas se supone que o bien la CPU o bien los dispositivos estn inactivos en algn momento, incluso cuando el flujo de trabajos que esperan para ser ejecutados no est vaco. Una forma de solucionar este problema es asignar cualquier otra tarea a la CPU o a los dispositivos de entrada/salida cuando, por algn motivo, estn inactivos. Si es posible ejecutar los programas de forma concurrente, stos pueden proporcionar trabajo tanto a la CPU como a los dispositivos en cualquier instante durante la ejecucin de los dos programas.

En el punto b de la figura se muestra un posible escenario de la ejecucin concurrente de los dos programas. El procesador empieza ejecutando el primer proceso, el proceso A, y cuando ste lleva a cabo una operacin de entrada/salida, el procesador, en lugar de quedarse inactivo, pasa a ejecutar el segundo proceso, el proceso B, que se supone que se encuentra en memoria esperando para ser ejecutado. Cuando este segundo proceso acaba o realiza una operacin de entrada/salida, el procesador ejecuta el primer proceso A. El proceso contina alternando la ejecucin de los dos procesos hasta que ambos finalizan.

Como podemos ver en el esquema de la figura anterior, con la ejecucin concurrente o multiprogramada se puede incrementar considerablemente el rendimiento del computador: el tiempo de ejecucin de los dos programas se reduce de 10 unidades en la ejecucin secuencial a 6 unidades en la ejecucin concurrente, y la utilizacin del sistema en este segundo caso es de un cien por cien. El ejemplo, aunque muy representativo, no es real, ya que generalmente la distribucin de las fases de clculo y programacin son ms

FUOC P05/75097/00804 Mdulo 1

15

Introduccin a los sistemas operativos

variables, de forma que no siempre se consigue que el procesador y los dispositivos estn activos.

Para aumentar la utilizacin de los recursos del sistema computador, los sistemas multiprogramados permiten la ejecucin concurrente de ms de dos programas, de los cuales se dice que estn compitiendo por los recursos del sistema. El nmero de programas que estn activamente en competencia por los recursos del sistema determina el grado de multiprogramacin.

La aparicin de la multiprogramacin permite desarrollar sistemas con mltiples usuarios conectados simultneamente mediante terminales a un sistema computador. En este caso, el sistema multiprogramado puro no es muy eficiente, ya que, tal y como hemos explicado anteriormente, la CPU deja de ejecutar un programa y pasa a ejecutar otro que est pendiente de ejecucin siempre que el programa que se est ejecutando haga una operacin de entrada/salida o bien cuando finaliza. A causa de este funcionamiento, el tiempo de respuesta que tiene un usuario que est conectado interactivamente puede ser considerablemente grande.

Para solucionar este problema se propone un nuevo mecanismo llamado tiempo compartido, con el cual los diferentes programas que estn compitiendo por los recursos del sistema, entre los cuales est la CPU, tienen asignada la CPU durante un periodo de tiempo limitado, llamado quantum. De esta forma, cuando un programa deja de ejecutarse, libera la CPU por alguno de los siguientes tres motivos:

1) porque el programa finaliza, 2) porque el programa realiza una operacin de entrada/salida 3) porque ha pasado un quantum de tiempo en ejecucin.

El quantum de tiempo es lo bastante pequeo como para que los programas de los diferentes usuarios que estn conectados al sistema progresen concurrentemente y cada usuario tenga la impresin de que es el nico que utiliza el sistema.

2.4. De la cuarta generacin hasta ahora

Con la aparicin de la integracin a gran escala (LSI/VLSI) se inicia la era de los computadores personales (1974), a los cuales se aplican todos los mecanismos desarrollados hasta el momento (tanto de hardware como de software). Seguramente, la aportacin ms importante de esta nueva generacin son las redes de computadores (Internet e intranet).

FUOC P05/75097/00804 Mdulo 1

16

Introduccin a los sistemas operativos

El interior del procesador 80486 de Intel Los microprocesadores actuales se fabrican con tcnicas de integracin a una escala muy grande (VLSI).

Surgen los sistemas operativos en red y los distribuidos, que permiten utilizar recursos de mquinas remotas (discos, CPU, software, etc.) con diferentes niveles de abstraccin. Tambin se introduce el concepto de sistema operativo en tiempo real referido a los sistemas que deben procesar muchos datos, que generalmente se obtienen del exterior (sensores), en un tiempo limitado y en un periodo determinado. Es importante darse cuenta de que estos sistemas operativos se centran en conseguir un tiempo de respuesta efectivo, mientras que la utilizacin adecuada de recursos (gestin eficiente de la memoria) y la perspectiva del usuario quedan en un segundo plano. A partir de este momento y hasta nuestros das, los computadores se utilizan en cualquier mbito: los usuarios en sus casas (computadores personales), las pequeas y grandes empresas (software de gestin), las corporaciones, las universidades y los centros de investigacin (supercomputadores y multicomputadores). En general, hay una explosin de recursos: nuevos dispositivos cada vez ms avanzados (impresoras lser, mdems, etc.) y CPU cada vez ms rpidas (ms de 1 GHz), sistemas con ms memorias (megabytes) y discos con ms capacidad (gigabytes).

Los sistemas operativos en tiempo real se utilizan en entornos industriales, en equipos de conmutacin telefnica, y en simulaciones en tiempo real.

Hay que sealar que segn qu utilizacin se haga del sistema computador, interesa que el sistema operativo proporcione herramientas especficas a los usuarios que lo van a utilizar. As pues, se tienen que conseguir los siguientes objetivos:

Los sistemas en red o los distribuidos tienen que desarrollar gestores de comunicacin eficientes.

Los sistemas multiprogramados/multiusuario se tienen que centrar en conseguir tiempos de respuesta aceptables.

Interesa que los sistemas en tiempo real sean lo ms sencillos posible para procesar datos del exterior a la mayor velocidad que se pueda.

FUOC P05/75097/00804 Mdulo 1

17

Introduccin a los sistemas operativos

2.5. Tabla resumen En la siguiente tabla presentamos una recopilacin de las caractersticas ms destacadas de cada generacin de computadores:

Generacin 1. 1925-1957 2. 1958-1964 3. 1964-1974 4. 1974-

Tecnologa

Tipo de programacin Lenguaje binario o mquina Fortran, Cobol, Pascal Ensambladores/montadores Sistemas con multiprogramacin

Velocidad de operacin Milisegundos

Dispositivos Cintas de papel Tarjetas perforadas Lectores de tarjetas Impresoras Unidades de disco Perifricos ms rpidos y efectivos

mbito de uso

Vlvulas de vaco

Militar Grandes corporaciones Gobiernos Universidades Empresas medianas

Transistores Memoria de ferrita

Microsegundos

Circuitos integrados LSI/VLSI Memoria de semiconductores o burbujas

Nanosegundos

Interconexin con bases de memoria

Redes

Domstico

FUOC P05/75097/00804 Mdulo 1

18

Introduccin a los sistemas operativos

3. Los servicios que ofrece el sistema operativo

El sistema operativo ofrece una gran variedad de servicios. Los podemos agrupar en los dos bloques siguientes: 1) Las llamadas al sistema son los servicios ms sencillos, y permiten hacer peticiones directas al sistema operativo. Las llamadas al sistema son la visin que tiene un programador de los servicios que puede ofrecer el sistema operativo. En ltima instancia, los lenguajes de alto nivel hacen una llamada al sistema. 2) En un nivel ms prximo al usuario, el software de sistema ofrece un programa, el llamado intrprete de rdenes, gracias al cual el usuario puede dialogar con el sistema operativo sin necesidad de escribir ningn programa.

Cada uno de estos servicios se describe con detalle en los apartados 1.3 y 1.4 del mdulo didctico El sistema operativo: una mquina virtual.

3.1. Las llamadas al sistema

Las llamadas al sistema ofrecen las soluciones bsicas para poder utilizar todos los recursos del sistema de una forma correcta y controlada. Aunque los diferentes sistemas operativos pueden ofrecer varias llamadas al sistema*, en general podemos encontrar en todos una semntica equivalente.
* Desde el punto de vista sintctico.

Las llamadas al sistema se pueden clasificar en: gestin de procesos, sealizacin de procesos, gestin de dispositivos de entrada/salida, gestin directa de los recursos del sistema, gestin del sistema de archivos y funciones de tiempo.

3.2. El intrprete de rdenes

El intrprete de rdenes es un programa encargado de interpretar y de comunicar al SO lo que quiere hacer el usuario del sistema. Este programa reconoce un conjunto limitado de rdenes que, bsicamente, permiten al usuario acceder, modificar, crear y proteger la informacin.

En general, los servicios (las rdenes) que ofrece el intrprete de rdenes estn bastante relacionados con los grupos de llamadas al sistema que hemos descrito.

FUOC P05/75097/00804 Mdulo 1

19

Introduccin a los sistemas operativos

Resumen

Los sistemas operativos han ido evolucionando a lo largo de los ltimos cincuenta aos, orientados hacia dos objetivos principales: 1) Gestionar de forma eficiente los recursos del sistema entre los diferentes programas que se ejecutan. 2) Proporcionar un entorno que facilite el desarrollo y la ejecucin de programas. Inicialmente se trabajaba con lenguaje mquina, pero la aparicin de lenguajes de alto nivel, compiladores y cargadores ha facilitado el trabajo de programacin. Por un lado, la evolucin del hardware (dispositivos cada vez ms rpidos) determina en cada momento los mtodos de trabajo y las tcnicas que se desarrollan. Inicialmente estaban los sistemas por lotes (batch) y las operaciones fuera de lnea (off-line) que permitan solapar operaciones de entrada/salida con operaciones de clculo. Con la multiprogramacin, varios programas se cargan en memoria y la CPU lleva a cabo una ejecucin concurrente para conseguir estar siempre ocupada. Finalmente, tenemos el tiempo compartido, que hace que varios usuarios puedan utilizar un computador interactivamente al mismo tiempo. Otros sistemas operativos incluyen los conceptos en red, distribucin de recursos y tiempo real. Finalmente, se han introducido los servicios que suele ofrecer un sistema operativo: en un nivel bajo estn las llamadas al sistema, y en un nivel ms alto tenemos el intrprete de rdenes.

FUOC P05/75097/00804 Mdulo 1

21

Introduccin a los sistemas operativos

Actividades
1. Cules son las dos funciones principales de un sistema operativo? 2. Qu es la multiprogramacin? Cul es su ventaja principal? 3. El concepto de multiprogramacin tiene sentido en sistemas operativos en tiempo real? Por qu? Y el concepto de tiempo compartido? Por qu? 4. En un sistema monousuario, un usuario puede proteger sus datos de alguna manera? Existe el concepto de proteccin en sistemas monousuarios? A qu nivel?

Glosario
almacenamiento en memoria intermedia Almacenamiento que permite solapar el procesamiento de un trabajo con su propia entrada/ salida. sin.: buffering batch Ved sistema por lotes. buffering Ved almacenamiento en memoria intermedia. gestin de colas Gestin que permite solapar el proceso de un trabajo con la entrada/salida de otro. sin.: spooling sistema monousuario Sistema en el cual el tipo de usuario no est definido y, por tanto, los datos que tiene el sistema son accesibles para cualquiera que pueda conectarse. sistema multiprogramado Sistema que permite que diversos procesos compartan el procesador. Cuando un proceso deja de ejecutarse (al finalizar o bien al realizar una peticin de entrada/salida) el procesador pasa a ejecutar otro proceso. sistema multiusuario Sistema que distingue entre diferentes usuarios (grupos de usuarios) y permite controlar el acceso a la informacin por parte de los diferentes grupos de usuarios que se puedan definir. sistema operativo distribuido Sistema conectado en red que permite la comparticin de recursos. Un usuario no tiene por qu saber dnde ejecutan sus procesos o qu recurso concreto de la red est utilizando. El sistema gestiona todos los recursos de forma trasparente para el usuario. sistema operativo en tiempo real Sistema operativo que tiene que ser capaz de reaccionar de forma rpida y segura ante acontecimientos externos en tiempo real. sistema operativo en red Sistema que est conectado mediante una red de interconexin. El usuario sabe en todo momento en qu mquina de la red se ejecutan sus procesos. sistema por lotes Forma de utilizar un computador donde la ejecucin de los trabajos no es interactiva. La ejecucin de los trabajos suele ser secuencial. sin.: batch software de sistema Software que permite utilizar y gestionar el computador. Comprende el ncleo (sistema operativo), los editores, el intrprete de rdenes, los compiladores, etc. spooling Ved gestin de colas.

FUOC P05/75097/00804 Mdulo 1

22

Introduccin a los sistemas operativos

tiempo compartido Sistema en el que varios procesos pueden compartir el procesador. En este caso, un proceso tiene asignado el procesador por un tiempo mximo, un quantum, si no acaba o realiza una peticin de entrada/salida. trabajo fuera de lnea (off-line) Un dispositivo es fuera de lnea si est desconectado del computador y, por tanto, no puede realizar ningn tipo de transferencia directa. Un trabajo fuera de lnea es el que se efecta en un dispositivo fuera de lnea.

Bibliografa
Bibliografa bsica
Milenkovic, M. (1994). Sistemas operativos, conceptos y diseo (2. ed., trad. de A. Bautista). Madrid: McGraw-Hill. Silberschatz, A.; Peterson, J. (1989). Sistemas operativos: conceptos fundamentales (2. ed., trad. de E. Morales). Barcelona: Revert. Tanembaum, A. (1991). Sistemas operativos: diseo e implementacin (trad. de F. Gmez). Mxico: Prentice-Hall.

Bibliografa complementaria
Taniguchi-Dietrich, P. (1985). La historia de los ordenadores. Barcelona: Eunibar (col. informtica bsica).