Sie sind auf Seite 1von 25

INSTITUTO TECNOLGICO DE VILLAHERMOSA

TIERRA, TIEMPO, TRABAJO Y TECNOLOGA

SISTEMAS OPERATIVOS 1

UNIDAD 1: INTRODUCCIN A LOS SISTEMAS OPERATIVOS

INGENIERA EN TECNOLOGAS DE LA INFORMACIN Y LAS


COMUNICACIONES

6to. SEMESTRE

FACILITADOR: ANTONIO PRIEGO CLEMENTE

VILLAHERMOSA, TABASCO, FEBRERO 2016

Contenido
Introduccin ...................................................................................................... 3
1. Introduccin a los sistemas operativos ......................................................... 3
1.1. S.O Definicin y concepto ...................................................................... 3
1.3. Evolucin histrica ................................................................................. 4
1.4. Tipos de sistemas operativos ............................................................... 11
1.5 Conceptos de los sistemas operativos .................................................. 15
1.6 LLAMADAS AL SISTEMA ..................................................................... 18
1.6.1 Llamadas al sistema para la administracin de procesos............... 18
1.6.3 Llamadas al sistema para la administracin de directorios ............. 20
1.6.4 Miscelnea de llamadas al sistema ................................................ 21
1.6.5 La API Win32 de Windows ............................................................. 21
1.7 ESTRUCTURA DE UN SISTEMA OPERATIVO ................................... 22
1.7.1 Sistemas monolticos ...................................................................... 22
1.7.2 Sistemas de capas ......................................................................... 22
1.7.3 Microkernels ................................................................................... 23
1.7.4 Modelo cliente-servidor ................................................................... 23
1.7.5 Mquinas virtuales .......................................................................... 24
1.7.6 Exokernels ...................................................................................... 24

Introduccin
Hablar sobre sistemas operativos es hablar sobre una alta gama de procesos
en el cual, se pueden manipular diferentes caractersticas de una computadora. Pero
no es solo eso, los sistemas operativos abarcan gran parte del software de nuestros
equipos electrnicos.
La investigacin del tema es de tipo documental y la informacin fue obtenida
del libro de sistemas operativos modernos Andrew S. Tanenbaum.
El subtema 1.1 lleva como nombre Sistema Operativo definicin y concepto, en
el cual se explican los conceptos bsicos que maneja un sistema operativo. El subtema
1.3 es la evolucin histrica que han tenido los sistemas operativos a travs de los
aos. En el 1.4 hablamos sobre los tipos de sistemas operativos adems de sus
caractersticas que tienen cada uno de ellos. El 1.5 lleva como nombre conceptos de
los sistemas operativos, que conceptos se manejan y como con implementados. 1.6
lleva como nombre Llamadas al sistema y como ltimo subtema es la investigacin de
estructura de un sistema operativo.

1. Introduccin a los sistemas operativos


1.1. S.O Definicin y concepto
- Multiproceso
- Multiplexado: Administracin de recursos: en el tiempo y en el espacio. Cuando un
recurso se multiplexa en el tiempo, los distintos programas o usuarios toman turnos
para utilizarlo.
En vez de que los clientes tomen turnos, cada uno obtiene una parte del recurso.
- Abstracciones en los programas de aplicacin

- Los clientes del S.O son los programas de aplicacin


- Una de las principales tareas del sistema operativo es ocultar el hardware y presentar
a los programas (y a sus programadores) abstracciones agradables, elegantes,
simples y consistentes con las que puedan trabajar.
- La abstraccin es la clave para lidiar con la complejidad.
- Las buenas abstracciones convierten una tarea casi imposible en dos tareas
manejables.
- La primera de stas es definir e implementar las abstracciones; la segunda, utilizarlas
para resolver el problema en cuestin.

1.3. Evolucin histrica


- Primera computadora digital: Charles Babbage (de 1792 a 1871).
- Babbage se dio cuenta de que necesitaba software para su mquina analtica, por lo
cual contrat a una joven llamada Ada Lovelace, hija del afamado poeta britnico Lord
Byron, como la primera programadora del mundo. El lenguaje de programacin Ada
lleva su nombre.

La primera generacin (1945 a 1955): tubos al vaco

El profesor John Atanasoff y su estudiante graduado Clifford Berry construyeron lo


que ahora se conoce como la primera computadora digital funcional en Iowa State
University. Utilizaba 300 tubos de vaco (bulbos). Aproximadamente al mismo tiempo,
Konrad Zuse en Berln construy la computadora Z3 a partir de relevadores. En 1944,
la mquina Colossus fue construida por un equipo de trabajo en Bletchley Park,
Inglaterra; la Mark I, por Howard Aiken en Harvard, y la ENIAC, por William Mauchley
y su estudiante graduado J. Presper Eckert en la Universidad de Pennsylvania.
Algunas fueron binarias, otras utilizaron bulbos, algunas eran programables, pero
todas eran muy primitivas y tardaban segundos en realizar incluso hasta el clculo ms
simple.

Toda la programacin se realizaba exclusivamente en lenguaje mquina o, peor


an, creando circuitos elctricos mediante la conexin de miles de cables a tableros
de conexiones (plugboards) para controlar las funciones bsicas de la mquina. Los
lenguajes de programacin eran desconocidos (incluso se desconoca el lenguaje
ensamblador). Los sistemas operativos tambin se desconocan.
A principios de la dcada de 1950, la rutina haba mejorado un poco con la
introduccin de las tarjetas perforadas. Entonces fue posible escribir programas en
tarjetas y leerlas en vez de usar tableros de conexiones; aparte de esto, el
procedimiento era el mismo.
o La segunda generacin (1955 a 1965): transistores y sistemas de
procesamiento por lotes
La introduccin del transistor a mediados de la dcada de 1950 permiti que las
computadoras se volvieron lo bastante confiables como para poder fabricarlas y
venderlas, con la expectativa de que seguiran funcionando el tiempo suficiente como
para poder llevar a cabo una cantidad til de trabajo.
Estas mquinas, conocidas como mainframes, estaban encerradas en cuartos
especiales con aire acondicionado y grupos de operadores profesionales para
manejarlas. Para ejecutar un trabajo (es decir, un programa o conjunto de programas),
el programador primero escriba el programa en papel (en FORTRAN o en
ensamblador) y despus lo pasaba a tarjetas perforadas. Luego llevaba el conjunto de
tarjetas al cuarto de entrada de datos y lo entregaba a uno de los operadores. Cuando
la computadora terminaba el trabajo que estaba ejecutando en un momento dado, un
operador iba a la impresora y arrancaba las hojas de resultados para llevarlas al cuarto
de salida de datos, para que el programador pudiera recogerlas posteriormente. Se
desperdiciaba mucho tiempo de la computadora mientras los operadores caminaban
de un lado a otro del cuarto de la mquina.
Dado el alto costo del equipo, se buscaron formas de reducir el tiempo
desperdiciado. La solucin fue el sistema de procesamiento por lotes. La idea era

recolectar una bandeja llena de trabajos en el cuarto de entrada de datos y pasarlos a


una cinta magntica usando una computadora relativamente econmica.
Las tarjetas de trabajos se lean y se colocaban en una cinta magntica, la cual
se llevaba al cuarto de mquinas, en donde se montaba en una unidad de cinta.
Despus, el operador cargaba un programa especial (el ancestro del sistema operativo
de hoy en da), el cual lea el primer trabajo de la cinta y lo ejecutaba. Los resultados
se grababan en otra cinta magntica que, con otra computadora, se imprima fuera de
lnea.
En gran parte se programaron en FORTRAN y lenguaje ensamblador.
Los sistemas operativos tpicos eran FMS (Fortran Monitor System) e IBSYS, el
sistema operativo de IBM para la 7094.

Tercera generacin

1960.- Los fabricantes tenan dos lneas de productos distintas e incompatibles.


Computadora cientfica 7094 usada en ingeniera y la 1401 usada en comercios.
Desarrollar y dar soporte a dos lneas era costoso para los fabricantes, muchos
clientes necesitaban equipos ms grandes y con mejores prestaciones.
IBM desarrollo una serie de mquinas con la lnea 360, manejando la
computacin cientifica y comercial. Fue la primera lnea de computadoras en integrar
circuitos integrados, mejorando su rendimiento y manteniendo un precio accesible.
IBM manejo en su lnea 360 un nico S.O, el OS/360 el cul era de tercera generacin,
contaba con miles de lneas en lenguaje ensamblador, y de igual manera con muchos
errores. Con esta indeseable caracterstica las nuevas versiones de OS/360 eran
frecuentes, llevando a la tcnica de la multiprogramacin.
Multiprogramacin:
Consiste en particionar la memoria en varias piezas, Mientras que un trabajo esperaba
a que se completara una operacin de E/S, otro poda estar usando la CPU.

Para tener varios trabajos de forma segura en memoria a la vez, se requiere hardware
especial para proteger cada trabajo y evitar que los otros se entrometan y lo malogren;
el 360 y los dems sistemas de tercera generacin estaban equipados con este
hardware.
Spooling:
Leer trabajos en tarjetas y colocarlos en el disco tan pronto como se llevaban al cuarto
de computadoras. As, cada vez que terminaba un trabajo en ejecucin, el sistema
operativo poda cargar un nuevo trabajo del disco en la particin que entonces estaba
vaca y lo ejecutaba.
Timesharing:
Cada usuario tena una terminal en lnea. En un sistema de tiempo compartido, si 20
usuarios estn conectados y 17 de ellos estn pensando en dar un paseo o tomar caf,
la CPU se puede asignar por turno a los tres trabajos que desean ser atendidos. Como
las personas que depuran programas generalmente envan comandos cortos (por
ejemplo, compilar un procedimiento de cinco hojas) en vez de largos (por ejemplo,
ordenar un archivo con un milln de registros), la computadora puede proporcionar un
servicio rpido e interactivo a varios usuarios y, tal vez, tambin ocuparse en trabajos
grandes por lotes en segundo plano, cuando la CPU estara inactiva de otra manera.
El primer sistema de tiempo compartido de propsito general, conocido como CTSS
(Compatible Time Sharing System, Sistema compatible de tiempo compartido), se
desarroll en el M.I.T. en una 7094 modificada en forma especial (Corbat y
colaboradores, 1962). Sin embargo, en realidad el tiempo compartido no se populariz
sino hasta que el hardware de proteccin necesario se empez a utilizar ampliamente
durante la tercera generacin.
Multics:
Despus del xito del sistema CTSS, el M.I.T., Bell Labs y General Electric (que en
ese entonces era un importante fabricante de computadoras) decidieron emprender el

desarrollo de una utilera para computadora, una mquina capaz de servir a varios
cientos de usuarios simultneos de tiempo compartido.
MULTICS (MULTiplexed Information and Computing Service; Servicio de Informacin
y Cmputo MULTiplexado). El comercio electrnico ya est evolucionando en esta
direccin, en donde varias compaas operan centros comerciales electrnicos en
servidores multiprocesador a los que se conectan las mquinas clientes simples, algo
muy parecido al diseo de MULTICS.
Durante la tercera generacin fue el increble crecimiento de las minicomputadoras,
empezando con la DEC PDP-1 en 1961. La PDP-1 tena slo 4K de palabras de 18
bits, pero a $120,000 por mquina (menos de 5 por ciento del precio de una 7094) se
vendi como pan caliente. Para cierta clase de trabajo no numrico, era casi tan rpida
como la 7094 y dio origen a una nueva industria.
Ken Thompson uno de los cientficos de cmputo en Bell Labs que trabaj en el
proyecto MULTICS, encontr una pequea minicomputadora PDP-7 que nadie estaba
usando y se dispuso a escribir una versin simple de MULTICS para un solo usuario.
Ms adelante, este trabajo se convirti en el sistema operativo UNIX, que se hizo
popular en el mundo acadmico, las agencias gubernamentales y muchas compaas.
Debido a que el cdigo fuente estaba disponible ampliamente, varias organizaciones
desarrollaron sus propias versiones (incompatibles entre s), lo cual produjo un caos.
Se desarrollaron dos versiones principales: System V de AT&T y BSD (Berkeley
Software Distribution, Distribucin de Software de Berkeley) de la Universidad de
California en Berkeley. El IEEE desarroll un estndar para UNIX conocido como
POSIX.
En 1987 el autor liber un pequeo clon de UNIX conocido como MINIX, con fines
educativos. El deseo de una versin de produccin (en vez de educativa) gratuita de
MINIX llev a un estudiante finlands, llamado Linus Torvalds, a escribir Linux.

Cuarta Generacin (1980-2015):

Esta generacin se caracteriza por la utilizacin de los microprocesadores


para la construccin de computadores de menor tamao, haciendo posible que una
sola persona tuviera su propio computador personal. Los computadores personales
con mayores capacidades y que se empezaron a utilizar en la empresa y en las
universidades recibieron el nombre de estaciones de trabajo.

Durante esta generacin aparecen los sistemas operativos que proporcionan una
interfaz ms amigable al usuario, esto se traduce en mejores herramientas de
interaccin con el computador, tales como capacidades grficas, conos, sistemas de
mens, etc.

Los sistemas operativos que cobran gran popularidad en este perodo son MS-DOS
de Microsoft y UNIX. Este ltimo tuvo sus primeros desarrollos en Berkeley y
posteriormente en AT&T.

DOS (sistema operativo en disco)


VERSIONES:
PC-DOS (IBM)
DR-DOS (Digital Research)
MS-DOS 1.0 Abril 1981
1.1
2.0
3.0
3.1
3.2
MS-DOS (Microsoft) 3.3
4.0
5.0
6.0
6.2
7.0 Agosto 1995

Se trata del 1 sistema operativo creado para ordenadores personales en la dcada


de los 80 dado que los sistemas anteriores fueron creados para maquinas grandes
en entornos de empresa. A lo largo del tiempo pugnaron tres fabricantes por la
hegemona del mercado hasta que en la dcada de los 90 con la aparicin de las 1as
plataformas de Windows 3.0 3.1 y 3.11 Microsoft se queda sola por la retirada de los
dems aunque ya IBM lo haba dejado mucho tiempo antes.

Se trata de un sistema operativo grabado sobre disco de modo que se ha de


encontrar permanentemente activo y residente para poder trabajar con esa mquina.

Esto ahora parece intrascendente ya que todos los sistemas operativos (Windows,
Windows9.x, unix, linux, etc..) Estn ocupando algunos de los discos duros del
ordenador pero al principio los ordenadores no tenan disco duro ya que an no se
haban inventado y por tanto se encontraba en un diskette que deba estar
permanentemente introducido con el agravante de que solo haba una disquetera.

Entre todas las versiones que salieron al mercado y omitiendo las primeras muy
dependientes de la rudimentaria tecnologa de entonces son las versiones 3.3, 4.0 y
6.2 las que tuvieron un mayor xito comercial. En la actualidad la versin 7.0 aun
siendo la ms reciente no es la ms difundida ya que est muy arraigada la 6.22. Por
otro lado estas versiones han dejado paso a aquellas otras que dependen de
Windows como sistema mayoritariamente extendido pasando a adoptar la
numeracin de la versin de Windows.

Como supuestamente la cuarta generacin de computadoras est en marcha


desde principios de los aos noventa, debemos por lo menos, esbozar las
caractersticas que deben tener las computadoras de esta generacin. Tambin se
mencionan algunos de los avances tecnolgicos de la ltima dcada del siglo XX y lo
que se espera lograr en el siglo XXI. Las computadoras de esta generacin cuentan
con arquitecturas combinadas Paralelo / Vectorial, con cientos de microprocesadores

vectoriales trabajando al mismo tiempo; se han creado computadoras capaces de


realizar ms de un milln de millones de operaciones aritmticas de punto flotante
por segundo (teraflops); las redes de rea mundial (Wide Area Network, WAN)
seguirn creciendo desorbitadamente utilizando medios de comunicacin a travs de
fibras pticas y satlites, con anchos de banda impresionantes. Las tecnologas de
esta generacin ya han sido desarrolladas o estn en ese proceso. Algunas de ellas
son: inteligencia / artificial distribuida; teora del caos, sistemas difusos, holografa,
transistores pticos, etctera.
Caractersticas de esta generacin:

Se desarroll el microprocesador.

Se colocan ms circuitos dentro de un "chip".

"LSI - Large Scale Integration circuit".

"VLSI - Very Large Scale Integration circuit".

Cada "chip" puede hacer diferentes tareas.

Un "chip" sencillo actualmente contiene la unidad de control y la unidad de


aritmtica/lgica. El tercer componente, la memoria primaria, es operado por
otros "chips".

Se reemplaza la memoria de anillos magnticos por la memoria de "chips" de


silicio.

Se desarrollan las microcomputadoras, o sea, computadoras personales o PC.

Se desarrollan las supercomputadoras.

1.4. Tipos de sistemas operativos


Mainframe:
Los sistemas operativos para las mainframes estn profundamente orientados
hacia el procesamiento de muchos trabajos a la vez, de los cuales la mayor parte
requiere muchas operaciones de E/S. Por lo general ofrecen tres tipos de servicios:
procesamiento por lotes, procesamiento de transacciones y tiempo compartido.

Un sistema de procesamiento por lotes procesa los trabajos de rutina sin que
haya un usuario interactivo presente.
Los sistemas de procesamiento de transacciones manejan grandes cantidades
de pequeas peticiones, por ejemplo: el procesamiento de cheques en un banco o
las reservaciones en una aerolnea
Los sistemas de tiempo compartido permiten que varios usuarios remotos
ejecuten trabajos en la computadora al mismo tiempo, como consultar una gran base
de datos. Estas funciones estn ntimamente relacionadas; a menudo los sistemas
operativos de las mainframes las realizan todas. Un ejemplo de sistema operativo de
mainframe es el OS/390, un descendiente del OS/360. Sin embargo, los sistemas
operativos de mainframes estn siendo reemplazados gradualmente por variantes de
UNIX, como Linux.
Servidores:
Dan servicio a varios usuarios a la vez a travs de una red y les permiten
compartir los recursos de hardware y de software. Los servidores pueden
proporcionar servicio de impresin, de archivos o Web. Los proveedores de Internet
operan muchos equipos servidores para dar soporte a sus clientes y los sitios Web
utilizan servidores para almacenar las pginas Web y hacerse cargo de las
peticiones entrantes. Algunos sistemas operativos de servidores comunes son
Solaris, FreeBSD, Linux y Windows Server 200x
Multiprocesadores:
Una manera cada vez ms comn de obtener poder de cmputo de las
grandes ligas es conectar varias CPU en un solo sistema. Dependiendo de la
exactitud con la que se conecten y de lo que se comparta, estos sistemas se
conocen como computadoras en paralelo, multicomputadoras o multiprocesadores.
Con la reciente llegada de los chips multincleo para las computadoras
personales, hasta los sistemas operativos de equipos de escritorio y porttiles

convencionales estn empezando a lidiar con multiprocesadores de al menos


pequea escala y es probable que el nmero de ncleos aumente con el tiempo.
La parte difcil ser hacer que las aplicaciones hagan uso de todo este poder
de cmputo. Muchos sistemas operativos populares (incluyendo Windows y Linux) se
ejecutan en multiprocesadores.
Computadoras personales:
Todos los sistemas operativos modernos soportan la multiprogramacin, con
frecuencia se inician docenas de programas al momento de arrancar el sistema. Su
trabajo es proporcionar buen soporte para un solo usuario. Se utilizan ampliamente
para el procesamiento de texto, las hojas de clculo y el acceso a Internet.
Computadoras de bolsillo:
Una computadora de bolsillo o PDA (Personal Digital Assitant, Asistente
personal digital) es una computadora que cabe en los bolsillos y realiza una pequea
variedad de funciones, como libreta de direcciones electrnica y bloc de notas.
Adems, hay muchos telfonos celulares muy similares a los PDAs, con la excepcin
de su teclado y pantalla.
Casi todos ellos se basan en CPUs de 32 bits con el modo protegido y
ejecutan un sofisticado sistema operativo. Una de las principales diferencias entre los
dispositivos de bolsillo y las PCs es que los primeros no tienen discos duros de
varios cientos de gigabytes, lo cual cambia rpidamente.
Integrados:
Los sistemas integrados (embedded), que tambin se conocen como
incrustados o embebidos, operan en las computadoras que controlan dispositivos
que no se consideran generalmente como computadoras, ya que no aceptan
software instalado por el usuario. Algunos ejemplos comunes son los hornos de
microondas, las televisiones, los autos, los grabadores de DVDs, los telfonos
celulares y los reproductores de MP3.

Nodos sensores:
Estos nodos son pequeas computadoras que se comunican entre s con una
estacin base, mediante el uso de comunicacin inalmbrica.
Cada nodo sensor es una verdadera computadora, con una CPU, RAM, ROM
y uno o ms sensores ambientales. Ejecuta un sistema operativo pequeo pero real,
por lo general manejador de eventos, que responde a los eventos externos o realiza
mediciones en forma peridica con base en un reloj interno. El sistema operativo
tiene que ser pequeo y simple debido a que los nodos tienen poca RAM y el tiempo
de vida de las bateras es una cuestin importante, el ms comn es TinyOS.
En tiempo real:
Estos sistemas se caracterizan por tener el tiempo como un parmetro clave.
Por ejemplo, si un auto se desplaza sobre una lnea de ensamblaje, deben
llevarse a cabo ciertas acciones en determinados instantes. Si un robot soldador
realiza su trabajo de soldadura antes o despus de tiempo, el auto se arruinar. Si la
accin debe ocurrir sin excepcin en cierto momento (o dentro de cierto rango),
tenemos un sistema en tiempo real duro. Muchos de estos sistemas se encuentran
en el control de procesos industriales, en aeronutica, en la milicia y en reas de
aplicacin similares.
Otro tipo de sistema en tiempo real es el sistema en tiempo real suave, en el
cual es aceptable que muy ocasionalmente se pueda fallar a un tiempo
predeterminado. Los sistemas de audio digital o de multimedia estn en esta
categora. Los telfonos digitales tambin son ejemplos de sistema en tiempo real
suave.
Tarjetas inteligentes:
Los sistemas operativos ms pequeos operan en las tarjetas inteligentes, que
son dispositivos del tamao de una tarjeta de crdito que contienen un chip de CPU.
Tienen varias severas restricciones de poder de procesamiento y memoria.

Algunas tarjetas inteligentes funcionan con Java. Lo que esto significa es que
la ROM en la tarjeta inteligente contiene un intrprete para la Mquina virtual de Java
(JVM). Los applets de Java (pequeos programas) se descargan en la tarjeta y son
interpretados por el intrprete de la JVM. Algunas de estas tarjetas pueden manejar
varias applets de Java al mismo tiempo, lo cual conlleva a la multiprogramacin y a la
necesidad de planificarlos.

1.5 Conceptos de los sistemas operativos


La mayora de los sistemas operativos proporcionan ciertos conceptos bsicos
y abstracciones tales como procesos, espacios de direcciones y archivos, que son la
base para comprender su funcionamiento.
Procesos:
Un concepto clave en todos los sistemas operativos es el proceso. Un proceso
es en esencia un programa en ejecucin. Cada proceso tiene asociado un espacio
de direcciones, una lista de ubicaciones de memoria que va desde algn mnimo
(generalmente 0) hasta cierto valor mximo, donde el proceso puede leer y escribir
informacin.
Cada cierto tiempo, el sistema operativo decide detener la ejecucin de un
proceso y empezar a ejecutar otro; por ejemplo, debido a que el primero ha utilizado
ms tiempo del que le corresponda de la CPU en el ltimo segundo.
En muchos sistemas operativos, toda la informacin acerca de cada proceso
(adems del contenido de su propio espacio de direcciones) se almacena en una
tabla del sistema operativo, conocida como la tabla de procesos, la cual es un arreglo
(o lista enlazada) de estructuras, una para cada proceso que se encuentre
actualmente en existencia.
Las llamadas al sistema de administracin de procesos clave son las que se
encargan de la creacin y la terminacin de los procesos.
Espacios de direcciones:

Cada computadora tiene cierta memoria principal que utiliza para mantener los
programas en ejecucin. En un sistema operativo muy simple slo hay un programa
a la vez en la memoria. Para ejecutar un segundo programa se tiene que quitar el
primero y colocar el segundo en la memoria.
Sin embargo, en muchas computadoras las direcciones son de 32 o 64 bits,
con lo cual se obtiene un espacio de direcciones de 232 o 264 bytes,
respectivamente. Si un proceso requiere ms memoria, tcnica llamada memoria
virtual, como se mencion antes, en la cual el sistema operativo mantiene una parte
del espacio de direcciones en memoria principal y otra parte en el disco, moviendo
pedazos de un lugar a otro segn sea necesario.
Archivos:
Una de las funciones principales del sistema operativo es ocultar las
peculiaridades de los discos y dems dispositivos de E/S, presentando al
programador un modelo abstracto limpio y agradable de archivos independientes del
dispositivo.
Se requieren las llamadas al sistema para crear los archivos, eliminarlos, leer
y escribir en ellos. Antes de poder leer un archivo, debe localizarse en el disco para
abrirse y una vez que se ha ledo informacin del archivo debe cerrarse, por lo que
se proporcionan llamadas para hacer estas cosas. Para proveer un lugar en donde
se puedan mantener los archivos, la mayora de los sistemas operativos tienen el
concepto de un directorio como una manera de agrupar archivos.
Para especificar cada archivo dentro de la jerarqua de directorio, se
proporciona su nombre de ruta de la parte superior de la jerarqua de directorios, el
directorio raz. Dichos nombres de ruta absolutos consisten de la lista de directorios
que deben recorrerse desde el directorio raz para llegar al archivo, y se utilizan
barras diagonales para separar los componentes.
Antes de poder leer o escribir en un archivo se debe abrir y en ese momento
se comprueban los permisos. Si est permitido el acceso, el sistema devuelve un

pequeo entero conocido como descriptor de archivo para usarlo en las siguientes
operaciones. Si el acceso est prohibido, se devuelve un cdigo de error.
Entrada/Salida:
Cada sistema operativo tiene un subsistema de E/S para administrar sus
dispositivos de E/S. Parte del software de E/S es independiente de los dispositivos,
es decir, se aplica a muchos o a todos los dispositivos de E/S por igual. Otras partes
del software, como los drivers de dispositivos, son especficas para ciertos
dispositivos de E/S.
Proteccin:
Las computadoras contienen grandes cantidades de informacin que los
usuarios comnmente desean proteger y mantener de manera confidencial. Esta
informacin puede incluir mensajes de correo electrnico, planes de negocios,
declaraciones fiscales y mucho ms. Es responsabilidad del sistema operativo
administrar la seguridad del sistema de manera que los archivos sean accesibles a
los usuarios permitidos.
Existen muchas otras cuestiones de seguridad. Una de ellas es proteger el
sistema de los intrusos no deseados, tanto humanos como no humanos (por ejemplo,
virus).
Shell:
El sistema operativo es el cdigo que lleva a cabo las llamadas al sistema. Los
editores, compiladores, ensambladores, enlazadores e intrpretes de comandos en
definitiva no forman parte del sistema operativo, aun cuando son importantes y tiles.
Aunque no forma parte del sistema operativo, utiliza con frecuencia muchas
caractersticas del mismo y, por ende, sirve como un buen ejemplo de la forma en
que se pueden utilizar las llamadas al sistema. Tambin es la interfaz principal entre
un usuario sentado en su terminal y el sistema operativo, a menos que el usuario
est usando una interfaz grfica de usuario. Actualmente, muchas computadoras

personales utilizan una GUI. De hecho, la GUI es slo un programa que se ejecuta
encima del sistema operativo, como un shell.
Ontogenia recapitula filogenia:
Las computadoras personales existen no debido a que millones de personas
tienen un deseo reprimido durante siglos de poseer una computadora, sino a que
ahora es posible fabricarlas a un costo econmico. A menudo olvidamos qu tanto
afecta la tecnologa a nuestra visin de los sistemas y vale la pena reflexionar sobre
este punto de vez en cuando. En especial, con frecuencia ocurre que un cambio en
la tecnologa hace que una idea se vuelva obsoleta y desaparece con rapidez.

1.6 LLAMADAS AL SISTEMA


Los sistemas operativos tienen dos funciones principales: proveer abstracciones
a los programas de usuario y administrar los recursos de la computadora. En su mayor
parte, la interaccin entre los programas de usuario y el sistema operativo se relaciona
con la primera funcin: por ejemplo, crear, escribir, leer y eliminar archivos.
La parte de la administracin de los recursos es en gran parte transparente para
los usuarios y se realiza de manera automtica
La llamada al sistema (y el procedimiento de biblioteca) devuelve el nmero de
bytes que se leen en cuenta. Por lo general este valor es el mismo que nbytes pero
puede ser ms pequeo si, por ejemplo, se encuentra el fin de archivo al estar leyendo.
Si la llamada al sistema no se puede llevar a cabo, ya sea debido a un parmetro
invlido o a un error del disco, cuenta se establece a -1 y el nmero de error se coloca
en una variable global llamada errno. Los programas siempre deben comprobar los
resultados de una llamada al sistema para ver si ocurri un error.
1.6.1 Llamadas al sistema para la administracin de procesos
Fork es la nica manera de crear un nuevo proceso en POSIX. Crea un
duplicado exacto del proceso original, incluyendo todos los descriptores de archivos.

Despus de fork, el proceso original y la copia (el padre y el hijo) se van por
caminos separados, todas las variables tienen valores idnticos al momento de la
llamada a fork, pero como los datos del padre se copian para crear al hijo, los
posteriores cambios en uno de ellos no afectarn al otro.
La llamada a fork devuelve un valor, que es cero en el hijo e igual al identificador
del proceso (PID) hijo en el padre. Mediante el uso del PID devuelto, los dos procesos
pueden ver cul es el proceso padre y cul es el proceso hijo.

1.6.3 Llamadas al sistema para la administracin de directorios


Las primeras dos llamadas, mkdir y rmdir, crean y eliminan directorios vacos,
respectivamente. La siguiente llamada es link. Su propsito es permitir que aparezca
el mismo archivo bajo dos o ms nombres, a menudo en distintos directorios. Un uso
comn es para permitir que varios miembros del mismo equipo de programacin

compartan un archivo comn, en donde cada uno de ellos puede ver el archivo en su
propio directorio, posiblemente bajo distintos nombres.
1.6.4 Miscelnea de llamadas al sistema
La llamada a chdir cambia el directorio de trabajo actual. El concepto de un
directorio de trabajo elimina la necesidad de escribir nombres de ruta absolutos
(extensos) todo el tiempo.
En UNIX, cada archivo tiene un modo que se utiliza por proteccin. El modo
incluye los bits leer-escribir-ejecutar para el propietario, grupo y los dems. La llamada
al sistema chmod hace posible modificar el modo de un archivo.
La llamada al sistema kill es la forma en que los usuarios y los procesos de
usuario envan seales. Si el proceso no est preparado para manejar una seal,
entonces su llegada mata el proceso (de aqu que se utilice ese nombre para la
llamada).
1.6.5 La API Win32 de Windows
Un programa de Windows es por lo general manejado por eventos. El programa
principal espera a que ocurra cierto evento y despus llama a un procedimiento para
manejarlo. Los eventos comunes son las teclas que se oprimen, el ratn que se
desplaza, un botn de ratn que se oprime o un CD-ROM que se inserta. Despus, los
manejadores se llaman para procesar el evento, actualizar la pantalla y actualizar el
estado interno del programa.
Microsoft ha definido un conjunto de procedimientos conocidos como API Win32
(Application Program Interface, Interfaz de programacin de aplicaciones) que los
programadores deben utilizar para obtener los servicios del sistema operativo.
El nmero de llamadas a la API Win32 es muy grande, alrededor de los miles.
Lo que es ms, aunque muchas de ellas invocan llamadas al sistema, un nmero
considerable de las mismas se lleva a cabo completamente en espacio de usuario.

1.7 ESTRUCTURA DE UN SISTEMA OPERATIVO


1.7.1 Sistemas monolticos
El sistema operativo se escribe como una coleccin de procedimientos,
enlazados entre s en un solo programa binario ejecutable extenso. Cuando se utiliza
esta tcnica, cada procedimiento en el sistema tiene la libertad de llamar a cualquier
otro, si ste proporciona cierto cmputo til que el primero necesita. Al tener miles de
procedimientos que se pueden llamar entre s sin restriccin, con frecuencia se
produce un sistema poco manejable y difcil de comprender.
Esta organizacin sugiere una estructura bsica para el sistema operativo:
1. Un programa principal que invoca el procedimiento de servicio solicitado.
2. Un conjunto de procedimientos de servicio que llevan a cabo las llamadas al sistema.
3. Un conjunto de procedimientos utilitarios que ayudan a los procedimientos de
servicio.
1.7.2 Sistemas de capas
Capa 5 El operador: El proceso operador del sistema se encontraba en el nivel
5.
Capa 4 Programas de usuario: No tenan que preocuparse por la administracin
de los procesos, la memoria, la consola o la E/S.
Capa 3 Administracin de la entrada/salida: encargaba de administrar los
dispositivos de E/S y de guardar en bferes los flujos de informacin dirigidos para y
desde ellos.
Capa 2 Comunicacin operador-proceso: se encargaba de la comunicacin
entre cada proceso y la consola del operador (es decir, el usuario). Encima de esta
capa, cada proceso tena en efecto su propia consola de operador.

Capa 1 Administracin de memoria y tambor: Asignaba espacio para los


procesos en la memoria principal y en un tambor de palabras de 512 K que se utilizaba
para contener

partes de procesos (pginas), para los que no haba espacio en la

memoria principal.
Capa 0 Asignacin del procesador y multiprogramacin: El sistema consista en
procesos secuenciales, cada uno de los cuales e poda programar sin necesidad de
preocuparse por el hecho de que haba varios procesos en ejecucin en un solo
procesador
1.7.3 Microkernels
La idea bsica detrs del diseo de microkernel es lograr una alta confiabilidad
al dividir el sistema operativo en mdulos pequeos y bien definidos, slo uno de los
cuales (el microkernel) se ejecuta en modo kernel y el resto se ejecuta como procesos
de usuario ordinarios, sin poder relativamente.
Los sistemas operativos tienen tantos errores que los fabricantes de
computadoras colocan botones de reinicio en ellas (a menudo en el panel frontal), algo
que los fabricantes de televisiones, estreos y autos no hacen, a pesar de la gran
cantidad de software en estos dispositivos.
1.7.4 Modelo cliente-servidor
La comunicacin entre clientes y servidores se lleva a cabo comnmente
mediante el paso de mensajes.
Si el cliente y el servidor se ejecutan en el mismo equipo se pueden hacer ciertas
optimizaciones, pero en concepto estamos hablando sobre el paso de mensajes. Una
generalizacin obvia de esta idea es hacer que los clientes y los servidores se ejecuten
en distintas computadoras, conectadas mediante una red de rea local o amplia. Cada
vez hay ms sistemas que involucran a los usuarios en sus PCs domsticas como
clientes y equipos ms grandes que operan en algn otro lado como servidores. De
hecho, la mayor parte de la Web opera de esta forma. Una PC enva una peticin de
una pgina Web al servidor y la pgina Web se enva de vuelta

1.7.5 Mquinas virtuales


VM/370 IBM: estas mquinas virtuales no son mquinas extendidas, con archivos y
otras caractersticas adecuadas. En vez de ello, son copias exactas del hardware,
incluyendo el modo kernel/ usuario, la E/S, las interrupciones y todo lo dems que tiene
la mquina real. Como cada mquina virtual es idntica al verdadero hardware, cada
una puede ejecutar cualquier sistema operativo que se ejecute directamente slo en
el hardware.
Distintas mquinas virtuales pueden (y con frecuencia lo hacen) ejecutar
distintos sistemas operativos. En el sistema VM/370 original, algunas ejecutaban
OS/360 o uno de los otros sistemas operativos extensos de procesamiento por lotes o
de procesamiento de transacciones, mientras que otros ejecutaban un sistema
interactivo de un solo usuario llamado CMS.
Mientras que IBM ha tenido un producto de mquina virtual disponible durante
cuatro dcadas, y unas cuantas compaas ms como Sun Microsystems y HewlettPackard han agregado recientemente el soporte de mquinas virtuales a sus
servidores empresariales de alto rendimiento.
La virtualizacin tambin es popular en el mundo del hospedaje Web. Sin ella,
los clientes de hospedaje Web se ven obligados a elegir entre el hospedaje
compartido.
1.7.6 Exokernels
Su trabajo es asignar recursos a las mquinas virtuales y despus comprobar
los intentos de utilizarlos, para asegurar que ninguna mquina trate de usar los
recursos de otra.
La ventaja del esquema del exokernel es que ahorra una capa de asignacin.
En los otros diseos, cada mquina virtual piensa que tiene su propio disco, con
bloques que van desde 0 hasta cierto valor mximo, por lo que el monitor de la mquina
virtual debe mantener tablas para reasignar las direcciones del disco (y todos los
dems recursos). Con el exokernel, esta reasignacin no es necesaria. El exokernel

slo necesita llevar el registro para saber a cul mquina virtual se le ha asignado
cierto recurso.

Das könnte Ihnen auch gefallen