Академический Документы
Профессиональный Документы
Культура Документы
7.- TEMARIO
1.- Introduccin a los sistemas operativos.
1.1 Definicin y concepto.
Un sistema operativo (SO) es el programa o conjunto de programas que efectan la gestin de los procesos bsicos de
un sistema informtico, y permite la normal ejecucin del resto de las operaciones.
1971
1972
1973
BATCH-11 (PDP-11)
OS/8
MFT (sistema operativo)
MVT
RDOS
SVS
VM/CMS
Alto OS
1976
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
BS2000
CP/M
TOPS-20
Apple DOS 3.1 (Primer SO Apple)
TripOS
VMS
Lisp Machine (CADR)
POS
NLTSS
OS-9
QDOS
SOS
XDE (Tajo) (Xerox Development Environment)
Xenix
MS-DOS
Commodore DOS
SunOS (1.0)
Ultrix
Lisa OS
Coherent
Novell NetWare
ProDOS
Macintosh OS (System 1.0)
MSX-DOS
QNX
UniCOS
AmigaOS
Atari TOS
MIPS OS
AIX
GS-OS
HP-UX
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
Arthur
IRIX (3.0 es la primera versin de SGI)
Minix
OS/2 (1.0)
A/UX (Apple Computer)
LynxOS
MVS/ESA
OS/400
NeXTSTEP (1.0)
RISC OS
SCO Unix (release 3)
Amiga OS 2.0
BeOS (v1)
OSF/1 ( karla duran OX )
Linux
386BSD 0.1
Amiga OS 3.0
Solaris 2.0 (Sucesor de SunOS 4.x; basado en SVR4)
Linux Debian y Linux Slackware
Plan 9 (Primera Version)
FreeBSD
NetBSD
Linux RedHat
Digital UNIX (aka Tru64 )
OpenBSD
OS/390
Windows 95
Plan 9 (Segunda Version)
Windows NT 4.0
Inferno
Mac OS 7.6 (El primer Mac OS llamado oficialmente as)
SkyOS
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
1.4 Clasificacin.
Administracin de tareas
Monotarea: Solamente puede ejecutar un proceso (aparte de los procesos del propio S.O.) en un momento
dado. Una vez que empieza a ejecutar un proceso, continuar hacindolo hasta su finalizacin y/o
interrupcin.
Multitarea: Es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de S.O. normalmente asigna los
recursos disponibles (CPU, memoria, perifricos) de forma alternada a los procesos que los solicitan, de
manera que el usuario percibe que todos funcionan a la vez, de forma concurrente.
Administracin de usuarios
Monousuario: Si slo permite ejecutar los programas de un usuario al mismo tiempo.
Multiusuario: Si permite que varios usuarios ejecuten simultneamente sus programas, accediendo a la vez a
los recursos de la computadora. Normalmente estos sistemas operativos utilizan mtodos de proteccin de
datos, de manera que un programa no pueda usar o cambiar los datos de otro usuario.
Manejo de recursos
Centralizado: Si permite usar los recursos de una sola computadora.
Distribuido: Si permite utilizar los recursos (memoria, CPU, disco, perifricos... ) de ms de una
Windows
Mac OS
Linux
Solaris
AmigaOS
Unix
Symbian
Android
iOS
Windows Mobile
BlackBerry OS
Palm OS
Tipos de ncleo
No necesariamente se necesita un ncleo para usar una computadora. Los programas pueden cargarse y ejecutarse
directamente en una computadora vaca, siempre que sus autores quieran desarrollarlos sin usar ninguna
abstraccin del hardware ni ninguna ayuda del sistema operativo. sta era la forma normal de usar muchas de las
primeras computadoras: para usar distintos programas se tena que reiniciar y reconfigurar la computadora cada vez.
Con el tiempo, se empez a dejar en memoria (an entre distintas ejecuciones) pequeos programas auxiliares,
como el cargador y el depurador, o se cargaban desde memoria de slo lectura. A medida que se fueron
desarrollando, se convirtieron en los fundamentos de lo que llegaran a ser los primeros ncleos de sistema
operativo.
Hay cuatro grandes tipos de ncleos:
Los ncleos monolticos facilitan abstracciones del hardware subyacente realmente potentes y variadas.
Los microncleos (en ingls microkernel) proporcionan un pequeo conjunto de abstracciones simples del
hardware, y usan las aplicaciones llamadas servidores para ofrecer mayor funcionalidad.
Los ncleos hbridos (microncleos modificados) son muy parecidos a los microncleos puros, excepto
porque incluyen cdigo adicional en el espacio de ncleo para que se ejecute ms rpidamente.
Los exoncleos no facilitan ninguna abstraccin, pero permiten el uso de bibliotecas que proporcionan
mayor funcionalidad gracias al acceso directo o casi directo al hardware.
Microncleos
AIX
La familia de microncleos L4
El microncleo Mach, usado en GNU Hurd y en Mac OS X
BeOS
Minix
MorphOS
QNX
RadiOS
VSTa
Hurd
Microsoft Windows NT, usado en todos los sistemas que usan el cdigo base de Windows NT
XNU (usado en Mac OS X)
DragonFlyBSD
ReactOS
Hay gente que confunde el trmino ncleo hbrido con los ncleos monolticos que pueden cargar mdulos
despus del arranque, lo que es un error. Hbrido implica que el ncleo en cuestin usa conceptos de arquitectura
o mecanismos tanto del diseo monoltico como del microncleo, especficamente el paso de mensajes y la
migracin de cdigo no esencial hacia el espacio de usuario, pero manteniendo cierto cdigo no esencial en el
propio ncleo por razones de rendimiento.
Exoncleos
Artculo principal: Exoncleo
Esquema bsico de la interaccin entre un Exoncleo (Exokernel) con el Software a travs de bibliotecas.
Los exoncleos, tambin conocidos como sistemas operativos verticalmente estructurados, representan una
aproximacin radicalmente nueva al diseo de sistemas operativos.
La idea subyacente es permitir que el desarrollador tome todas las decisiones relativas al rendimiento del hardware.
Los exoncleos son extremadamente pequeos, ya que limitan expresamente su funcionalidad a la proteccin y el
multiplexado de los recursos. Se llaman as porque toda la funcionalidad deja de estar residente en memoria y pasa a
estar fuera, en bibliotecas dinmicas.
Los diseos de ncleos clsicos (tanto el monoltico como el microncleo) abstraen el hardware, escondiendo los
recursos bajo una capa de abstraccin del hardware, o detrs de los controladores de dispositivo. En los sistemas
clsicos, si se asigna memoria fsica, nadie puede estar seguro de cul es su localizacin real, por ejemplo.
La finalidad de un exoncleo es permitir a una aplicacin que solicite una regin especfica de la memoria, un
bloque de disco concreto, etc., y simplemente asegurarse que los recursos pedidos estn disponibles, y que el
programa tiene derecho a acceder a ellos.
Debido a que el exoncleo slo proporciona una interfaz al hardware de muy bajo nivel, careciendo de todas las
funcionalidades de alto nivel de otros sistemas operativos, ste es complementado por una biblioteca de sistema
operativo. Esta biblioteca se comunica con el exoncleo subyacente, y facilita a los programadores de aplicaciones
las funcionalidades que son comunes en otros sistemas operativos.
Algunas de las implicaciones tericas de un sistema exoncleo son que es posible tener distintos tipos de sistemas
operativos (p.e. Windows, Unix) ejecutndose en un solo exoncleo, y que los desarrolladores pueden elegir
prescindir incrementar funcionalidades por motivos de rendimiento.
Actualmente, los diseos exoncleo estn fundamentalmente en fase de estudio y no se usan en ningn sistema
popular. Un concepto de sistema operativo es Nemesis, creado por la Universidad de Cambridge, la Universidad de
Glasgow, Citrix Systems y el Instituto Sueco de Informtica. El MIT tambin ha diseado algunos sistemas basados
en exoncleos. Los exoncleos se manejan en diferente estructura dado que tambin cumplen funciones distintas.
1.6 Ncleo.
En informtica, un ncleo o kernel (de la raz germnica Kern) es un software que constituye la parte ms
importante del sistema operativo.[1] Es el principal responsable de facilitar a los distintos programas acceso seguro
al hardware de la computadora o en forma ms bsica, es el encargado de gestionar recursos, a travs de servicios de
llamada al sistema. Como hay muchos programas y el acceso al hardware es limitado, tambin se encarga de decidir
qu programa podr hacer uso de un dispositivo de hardware y durante cunto tiempo, lo que se conoce como
multiplexado. Acceder al hardware directamente puede ser realmente complejo, por lo que los ncleos suelen
implementar una serie de abstracciones del hardware. Esto permite esconder la complejidad, y proporciona una
interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso al programador.
En informtica, el ncleo es el programa informtico que se asegura de:
La comunicacin entre los programas que solicitan recursos y el hardware.
Gestin de los distintos programas informticos (tareas) de una mquina.
Gestin del hardware (memoria, procesador, perifrico, forma de almacenamiento, etc.)
La mayora de las interfases de usuario se construyen en torno al concepto de ncleo. La existencia de un ncleo, es
decir, de un nico programa responsable de la comunicacin entre el hardware y el programa informtico, resulta de
compromisos complejos referentes a cuestiones de resultados, seguridad y arquitectura de los procesadores. El
ncleo tiene grandes poderes sobre la utilizacin de los recursos materiales (hardware), en particular, de la memoria.
Generalidades
Una visin tpica de la arquitectura de computadores como una serie de capas de abstraccin: hardware, firmware,
lenguaje de mquina, ncleo, software de sistema y aplicaciones[3]
En informtica, el ncleo es el programa informtico que se asegura de:
La comunicacin entre los programas que solicitan recursos y el hardware.
Gestin de los distintos programas informticos (tareas) de una mquina.
Gestin del hardware (memoria, procesador, perifrico, forma de almacenamiento, etc.)
La mayora de las interfases de usuario se construyen en torno al concepto de ncleo. La existencia de un ncleo, es
decir, de un nico programa responsable de la comunicacin entre el hardware y el programa informtico, resulta de
compromisos complejos referentes a cuestiones de resultados, seguridad y arquitectura de los procesadores. El
ncleo tiene grandes poderes sobre la utilizacin de los recursos materiales (hardware), en particular, de la memoria.
Unix
Un ncleo Unix es un programa escrito casi en su totalidad en lenguaje C, con excepcin de una parte del manejo de
interrupciones, expresada en el lenguaje ensamblador del procesador en el que opera. Las funciones del ncleo son
permitir la existencia de un ambiente en el que sea posible atender a varios usuarios y mltiples tareas en forma
concurrente, repartiendo al procesador entre todos ellos, e intentando mantener en grado ptimo la atencin
individual.
El ncleo opera como asignador de recursos para cualquier proceso que necesite hacer uso de las facilidades de
cmputo.
Creacin de procesos, asignacin de tiempos de atencin y sincronizacin.
Asignacin de la atencin del procesador a los procesos que lo requieren.
Administracin de espacio en el sistema de archivos, que incluye: acceso, proteccin y administracin de
usuarios; comunicacin entre usuarios y entre procesos, y manipulacin de E/S y administracin de
perifricos.
Hay que recalcar que estos nombres son arbitrarios, por lo que en cada sistema operativo pueden cambiar, sin
embargo todo sistema operativo los tiene, es por eso que a la hora de programar en java no representa ningn
problema.
Entender cmo se manejan los procesos es un objetivo que nos ayudara en cualquier lenguaje de programacin, por
ejemplo no hay necesidad de estudiar programacin orientada a objetos cada vez que se va a aprender java, C#,
Visual Basic y otro lenguaje.
Por lo tanto entender los procesos en un formato estndar es clave a la hora de programar threads en cualquier
lenguaje de programacin.
Todos sabemos que en un programa en ejecucin no puede estar ocupando la CPU permanentemente, esto es debido
a que un usuario necesite realizar ms de una accin a la vez, o tambin puede ser el caso que varios usuarios
accedan a un sistema simultneamente.
Contador de programa.
Pila.
Registros.
Estado del proceso ligero (ejecutando, listo o bloqueado).
Todos los procesos ligeros de un mismo proceso comparten la informacion del mismo. En concreto, comparten:
Espacio de memoria.
Variables globales.
Archivos abiertos.
Procesos hijos.
Temporizadores.
3. El sistema operativo debe proteger los datos y los recursos fsicos de cada proceso contra injerencias no
intencionadas de otros procesos.
4. Los resultados de un proceso deben ser independientes de la velocidad relativa a la que se realiza la
ejecucin con respecto a otros procesos concurrentes.
Cuando dos o mas procesos llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de
procesos. Es importante mencionar que para que dos o mas procesos sean concurrentes , es necesario que tengan
alguna relaciones entre ellos como puede ser la cooperaciion para un determinado trabajo o el uso de informacion y
recursos compartidos, por ejemplo: en un sistema de un procesador , la multiprogramaciion es una condicion
necesaria pero no suficiente para que exista concurrencia, ya que los procesos pueden ejecutarse de forma
totalmente independiente.
Por otro lado en un sistema de varios procesos se puede presentar la concurrencia siempre y cuando las actividades
necesiten actuar entre ellos sea para utilizar informacion como para cualquier otra cosa.
Polticas.
3.2.2.- Jerarqua.
Se conoce como jerarqua de memoria a la organizacin piramidal de la memoria en niveles, que tienen los
ordenadores. Su objetivo es conseguir el rendimiento de una memoria de gran velocidad al coste de una memoria de
baja velocidad, basndose en el principio de cercana de referencias.
Los puntos bsicos relacionados con la memoria pueden resumirse en:
Cantidad.
Velocidad.
Coste.
La cuestin de la cantidad es simple, cuanto ms memoria haya disponible, ms podr utilizarse. La velocidad
ptima para la memoria es la velocidad a la que el procesador puede trabajar, de modo que no haya tiempos de
espera entre clculo y clculo, utilizados para traer operandos o guardar resultados. En suma, el costo de la memoria
no debe ser excesivo, para que sea factible construir un equipo accesible.
Como puede esperarse los tres factores compiten entre s, por lo que hay que encontrar un equilibrio. Las siguientes
afirmaciones son vlidas:
A menor tiempo de acceso mayor coste.
A mayor capacidad mayor coste.
A mayor capacidad menor velocidad.
Se busca entonces contar con capacidad suficiente de memoria, con una velocidad que sirva para satisfacer la
demanda de rendimiento y con un coste que no sea excesivo. Gracias a un principio llamado cercana de referencias,
es factible utilizar una mezcla de los distintos tipos y lograr un rendimiento cercano al de la memoria ms rpida.
Los niveles que componen la jerarqua de memoria habitualmente son:
Nivel 0: Registros.
Nivel 1: Memoria cach.
Nivel 2: Memoria principal.
Nivel 3: Disco duro (con el mecanismo de memoria virtual).
Nivel 4: Redes(Actualmente se concidera un nivel mas de la jerarquia de memorias).
Un proceso entra a ejecutarse y llega al momento en que tiene que hacer espera por un dispositivo de entrada y/o
salida por ejemplo, el CPU estara ocioso mientras espera que el proceso puede usar el dispositivo para as
finalmente ejecutarse. Los sistemas de multiprogramacin evitan eso ya que durante ese tiempo de esperar pasan a
ejecutar otro proceso teniendo as al computador ocupado.
Particiones Variables
Particiones Fijas.
Consiste en dividir la memoria en varias particiones de tamao fijo.
Cada particin puede contener exactamente un proceso. El nivel de multiprogramacin est limitado por el nmero
de
particiones.
Cuando una particin est libre, se selecciona un proceso de la cola de entrada y se carga en la particin libre;
cuando un proceso termina, la particin est disponible para otro.
El sistema operativo conserva una tabla que indica qu partes de la memoria estn disponibles y cuales estn
ocupadas.
Grupos de asignacin
Los sistemas de archivos XFS estn particionados internamente en grupos de asignacin, que son regiones lineares de igual tamao dentro del
sistema de archivos. Los archivos y los directorios pueden crear grupos de asignacin. Cada grupo gestiona sus inodos y su espacio libre de
forma independiente, proporcionando escalabilidad y paralelismo mltiples hilospueden realizar operaciones de E/S simultneamente en el
mismo sistema de archivos.
HPFS sigla de High Performance File System, o sistema de archivos de altas prestaciones, fue creado especficamente para el sistema
operativo OS/2 para mejorar las limitaciones del sistema de archivos FAT. Fue escrito por Gordon Letwin y otros empleados de Microsoft, y
agregado a OS/2 versin 1.2, en esa poca OS/2 era todava un desarrollo conjunto entre Microsoft e IBM.
Se caracterizaba por permitir nombres largos, metadatos e informacin de seguridad, as como de autocomprobacin e informacin estructural.
Otra de sus caractersticas es que, aunque posea tabla de archivos (como FAT), sta se encontraba posicionada fsicamente en el centro de la
particin, de tal manera que redundaba en menores tiempos de acceso a la hora de leerla/escribirla.
Sistemas de proteccin
Mecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema. El SO se encarga de:
Distinguir entre uso autorizado y no autorizado.
Especificar los controles de seguridad a realizar.
Forzar el uso de estos mecanismos de proteccin.
Sistema de comunicaciones
Para mantener las comunicaciones con otros sistemas es necesario poder controlar el envo y recepcin de
informacin a travs de las interfaces de red. Tambin hay que crear y mantener puntos de comunicacin que sirvan
a las aplicaciones para enviar y recibir informacin, y crear y mantener conexiones virtuales entre aplicaciones que
estn ejecutndose localmente y otras que lo hacen remotamente.
Programas de sistema
Son aplicaciones de utilidad que se suministran con el SO pero no forman parte de l. Ofrecen un entorno til para
el desarrollo y ejecucin de programas, siendo algunas de las tareas que realizan:
Gestor de recursos
Como gestor de recursos, el Sistema Operativo administra: