Вы находитесь на странице: 1из 35

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.

Departamento de Sistemas Computacionales


Sistemas Operativos I

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.

1.2 Funciones y caractersticas.


Uno de los propsitos del sistema operativo que gestiona el ncleo intermediario consiste en gestionar los recursos de
localizacin y proteccin de acceso del hardware, hecho que alivia a los programadores de aplicaciones de tener que tratar con
estos detalles. La mayora de aparatos electrnicos que utilizan microprocesadores para funcionar, llevan incorporado un
sistema operativo. (telfonos mviles, reproductores de DVD, computadoras, radios, enrutadores, etc).

1.3 Evolucin histrica.


1960
IBSYS
1961
CTSS
1965
OS/360
1970

1971

1972

1973

BATCH-11 (PDP-11)
OS/8
MFT (sistema operativo)
MVT
RDOS
SVS
VM/CMS
Alto OS

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I

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

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I

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

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I

1999

2000

2001

2002

2003

2004

2005

2006

2007

Mandrake Linux(hoy Conocido como Mandriva Linux )


Solaris 7 (El primer 64-bit de Solaris.)
Windows 98
ReactOS 0.0.13
AROS
Mac OS 8
ReactOS 0.0.14
AtheOS
Mac OS 9
MorphOS
Windows 2000
Windows Me
ReactOS 0.0.16
Plan 9 (Tercera Version)
Amiga OS 4.0 (May 2001)
Mac OS X 10.1
Windows XP
z/OS
ReactOS 0.0.18
Syllable
Mac OS X 10.2
ReactOS 0.0.21
Plan 9 (Cuarta Version)
gnulinex
Windows Server 2003
Mac OS X 10.3
ReactOS 0.1.5
Ubuntu Linux
ReactOS 0.2.4
Mac OS X 10.4
ReactOS 0.2.9
Windows Vista
ReactOS 0.3.0
Mac OS X v10.5

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I

2008

2009

2010

ReactOS 0.3.2 (Versin nunca lanzada)


iPhone OS 1.0]
ReactOS 0.3.7
Windows Server 2008
iPhone OS 2.0
JNode 0.2.8
Mac OS X v10.6
Windows 7
ReactOS 0.3.10
iPhone OS 3.0
Palm webOS
Android
Windows Home 7
Android 2.1
iOS 4 (la ultima actualizacin es el iOS 4.1)
Ubuntu 10.04
Windows Mobile 7.1iOS (sistema operativo)

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

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I
computadora al mismo tiempo.

Ejemplos de Sistemas Operativos ( ordenadores )

Windows
Mac OS
Linux
Solaris
AmigaOS
Unix

Ejemplos de Sistemas Operativos ( Dispositivos Moviles )

Symbian
Android
iOS
Windows Mobile
BlackBerry OS
Palm OS

1.5 Estructura: niveles o estratos de diseo.

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

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I

Esquema del funcionamiento de un microncleo.


Artculo principal: Microncleo
El enfoque microncleo consiste en definir una abstraccin muy simple sobre el hardware, con un conjunto de
primitivas o llamadas al sistema que implementan servicios del sistema operativo mnimos, como la gestin de
hilos, el espacio de direccionamiento y la comunicacin entre procesos.
El objetivo principal es la separacin de la implementacin de los servicios bsicos y de la poltica de
funcionamiento del sistema. Por ejemplo, el proceso de bloqueo de E/S se puede implementar con un servidor en
espacio de usuario ejecutndose encima del microncleo. Estos servidores de usuario, utilizados para gestionar las
partes de alto nivel del sistema, son muy modulares y simplifican la estructura y diseo del ncleo. Si falla uno de
estos servidores, no se colgar el sistema entero, y se podr reiniciar este mdulo independientemente del resto. Sin
embargo, la existencia de diferentes mdulos independientes origina retardos en la comunicacin debido a la copia
de variables que se realiza en la comunicacin entre mdulos.
Algunos ejemplos de 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

Ncleos monolticos en contraposicin a microncleos


Artculos principales: Ncleo monoltico y Microncleo
Frecuentemente se prefieren los ncleos monolticos frente a los microncleos debido al menor nivel de
complejidad que comporta el tratar con todo el cdigo de control del sistema en un solo espacio de
direccionamiento. Por ejemplo, XNU, el ncleo de Mac OS X, est basado en el ncleo Mach 3.0 y en FreeBSD, en
el mismo espacio de direccionamiento para disminuir la latencia que comporta el diseo de microncleo
convencional.

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I
A principios de los aos 90, los ncleos monolticos se consideraban obsoletos. El diseo de Linux como un ncleo
monoltico en lugar de como un microncleo fue el tema de una famosa disputa[5] entre Linus Torvalds y Andrew
Tanenbaum. Los argumentos de ambas partes en esta discusin presentan algunas motivaciones interesantes.
Los ncleos monolticos suelen ser ms fciles de disear correctamente, y por lo tanto pueden crecer ms
rpidamente que un sistema basado en microncleo, pero hay casos de xito en ambos bandos. Los microncleos
suelen usarse en robtica embebida o computadoras mdicas, ya que la mayora de los componentes del sistema
operativo residen en su propio espacio de memoria privado y protegido. Esto no sera posible con los ncleos
monolticos, ni siquiera con los modernos que permiten cargar mdulos del ncleo.
Aunque Mach es el microncleo generalista ms conocido, se han desarrollado otros microncleos con propsitos
ms especficos. L3 fue creado para demostrar que los microncleos no son necesariamente lentos. La familia de
microncleos L4 es la descendiente de L3, y una de sus ltimas implementaciones, llamada Pistachio, permite
ejecutar Linux simultneamente con otros procesos, en espacios de direccionamiento separados.
QNX es un sistema operativo que ha estado disponible desde principios de los aos 80, y tiene un diseo de
microncleo muy minimalista. Este sistema ha conseguido llegar a las metas del paradigma del microncleo con
mucho ms xito que Mach. Se usa en situaciones en que no se puede permitir que haya fallos de software, lo que
incluye desde brazos robticos en naves espaciales, hasta mquinas que pulen cristal donde un pequeo error podra
costar mucho dinero.
Mucha gente cree que como Mach bsicamente fall en el intento de resolver el conjunto de problemas que los
microncleos intentaban subsanar, toda la tecnologa de microncleos es intil. Los partidarios de Mach afirman
que sta es una actitud estrecha de miras que ha llegado a ser lo suficientemente popular para que mucha gente la
acepte como verdad.

Ncleos hbridos (microncleos modificados)


Artculo principal: Ncleo hbrido
Los ncleos hbridos fundamentalmente son microncleos que tienen algo de cdigo no esencial en espacio de
ncleo para que ste se ejecute ms rpido de lo que lo hara si estuviera en espacio de usuario. ste fue un
compromiso que muchos desarrolladores de los primeros sistemas operativos con arquitectura basada en
microncleo adoptaron antes que se demostrara que los microncleos pueden tener muy buen rendimiento. La
mayora de sistemas operativos modernos pertenecen a esta categora, siendo el ms popular Microsoft Windows.
XNU, el ncleo de Mac OS X, tambin es un microncleo modificado, debido a la inclusin de cdigo del ncleo
de FreeBSD en el ncleo basado en Mach. DragonFlyBSD es el primer sistema BSD que adopta una arquitectura de
ncleo hbrido sin basarse en Mach.
Algunos ejemplos de ncleos hbridos:

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.

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I

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.

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I

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.

Funciones generalmente ejercidas por un ncleo


Los ncleos tienen como funciones bsicas garantizar la carga y la ejecucin de los procesos, las entradas/salidas y
proponer una interfaz entre el espacio ncleo y los programas del espacio del usuario.
Aparte de las funcionalidades bsicas, el conjunto de las funciones de los puntos siguientes (incluidos los pilotos
materiales, las funciones de redes y sistemas de ficheros o los servicios) necesariamente no son proporcionados por
un ncleo de sistema de explotacin. Pueden establecerse estas funciones del sistema de explotacin tanto en el
espacio usuario como en el propio ncleo. Su implantacin en el ncleo se hace en el nico objetivo de mejorar los

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I
resultados. En efecto, segn la concepcin del ncleo, la misma funcin llamada desde el espacio usuario o el
espacio ncleo tiene un coste temporal obviamente diferente. Si esta llamada de funcin es frecuente, puede resultar
til integrar estas funciones al ncleo para mejorar los resultados.

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.

Funciones generalmente ejercidas por un ncleo


Los ncleos tienen como funciones bsicas garantizar la carga y la ejecucin de los procesos, las entradas/salidas y
proponer una interfaz entre el espacio ncleo y los programas del espacio del usuario.
Aparte de las funcionalidades bsicas, el conjunto de las funciones de los puntos siguientes (incluidos los pilotos
materiales, las funciones de redes y sistemas de ficheros o los servicios) necesariamente no son proporcionados por
un ncleo de sistema de explotacin. Pueden establecerse estas funciones del sistema de explotacin tanto en el
espacio usuario como en el propio ncleo. Su implantacin en el ncleo se hace en el nico objetivo de mejorar los
resultados. En efecto, segn la concepcin del ncleo, la misma funcin llamada desde el espacio usuario o el
espacio ncleo tiene un coste temporal obviamente diferente. Si esta llamada de funcin es frecuente, puede resultar
til integrar estas funciones al ncleo para mejorar los resultados.

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.

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I
Supervisin de la transmisin de datos entre la memoria principal y los dispositivos perifricos.
Reside siempre en la memoria principal y tiene el control sobre la computadora, por lo que ningn otro proceso
puede interrumpirlo; slo pueden llamarlo para que proporcione algn servicio de los ya mencionados. Un proceso
llama al ncleo mediante mdulos especiales conocidos como llamadas al sistema.
Consta de dos partes principales: la seccin de control de procesos y la de control de dispositivos. La primera asigna
recursos, programas, procesos y atiende sus requerimientos de servicio; la segunda, supervisa la transferencia de
datos entre la memoria principal y los dispositivos del ordenador. En trminos generales, cada vez que algn usuario
oprime una tecla de una terminal, o que se debe leer o escribir informacin del disco magntico, se interrumpe al
procesador central y el ncleo se encarga de efectuar la operacin de transferencia.
Cuando se inicia la operacin de la computadora, debe cargarse en la memoria una copia del ncleo, que reside en el
disco magntico (operacin denominada bootstrap). Para ello, se deben inicializar algunas interfaces bsicas de
hardware; entre ellas, el reloj que proporciona interrupciones peridicas. El ncleo tambin prepara algunas
estructuras de datos que abarcan una seccin de almacenamiento temporal para transferencia de informacin entre
terminales y procesos, una seccin para almacenamiento de descriptores de archivos y una variable que indica la
cantidad de memoria principal.
A continuacin, el ncleo inicializa un proceso especial, llamado proceso 0. En Unix, los procesos se crean
mediante una llamada a una rutina del sistema (fork), que funciona por un mecanismo de duplicacin de procesos.
Sin embargo, esto no es suficiente para crear el primero de ellos, por lo que el ncleo asigna una estructura de datos
y establece apuntadores a una seccin especial de la memoria, llamada tabla de procesos, que contendr los
descriptores de cada uno de los procesos existentes en el sistema.
Despus de haber creado el proceso 0, se hace una copia del mismo, con lo que se crea el proceso 1; ste muy
pronto se encargar de "dar vida" al sistema completo, mediante la activacin de otros procesos que tambin forman
parte del ncleo. Es decir, se inicia una cadena de activaciones de procesos, entre los cuales destaca el conocido
como despachador, o planificador, que es el responsable de decidir cul proceso se ejecutar y cules van a entrar o
salir de la memoria central. A partir de ese momento se conoce el nmero 1 como proceso de inicializacin del
sistema, init.
El proceso init es el responsable de establecer la estructura de procesos en Unix. Normalmente, es capaz de crear al
menos dos estructuras distintas de procesos: el modo monousuario y el multiusuario. Comienza activando el
intrprete del lenguaje de control Shell de Unix en la terminal principal, o consola del sistema, proporcionndole
privilegios de "superusuario". En la modalidad de un solo usuario la consola permite iniciar una primera sesin, con
privilegios especiales, e impide que las otras lneas de comunicacin acepten iniciar sesiones nuevas. Esta
modalidad se usa con frecuencia para revisar y reparar sistemas de archivos, realizar pruebas de funciones bsicas
del sistema y para otras actividades que requieren uso exclusivo de la computadora.
Init crea otro proceso, que espera a que alguien entre en sesin en alguna lnea de comunicacin. Cuando esto
sucede, realiza ajustes en el protocolo de la lnea y ejecuta el programa login, que se encarga de atender inicialmente
a los nuevos usuarios. Si el nombre de usuario y la contrasea proporcionadas son correctos, entonces entra en
operacin el programa Shell, que en lo sucesivo se encargar de la atencin normal del usuario que se dio de alta en
esa terminal.
A partir de ese momento el responsable de atender al usuario en esa terminal es el intrprete Shell. Cuando se desea
terminar la sesin hay que desconectarse de Shell (y, por lo tanto, de Unix), mediante una secuencia especial de
teclas (usualmente. < CTL > - D). A partir de ese momento la terminal queda disponible para atender a un nuevo
usuario.

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I

2.- Administracin de procesos y del procesador.


2.1 Concepto de proceso.
Un proceso es un programa en ejecucin. Los procesos son gestionados por el sistema operativo y estn formados por:

Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.


Su estado de ejecucin en un momento dado, esto es, los valores de los registros de la unidad central de
procesamiento para dicho programa.
Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.
Otra informacin que permite al sistema operativo su planificacin.
Esta definicin vara ligeramente en el caso de sistemas operativos multihilo, donde un proceso consta de uno o ms hilos, la
memoria de trabajo (compartida por todos los hilos) y la informacin de planificacin. Cada hilo consta de instrucciones y
estado de ejecucin.
Los procesos son creados y destruidos por el sistema operativo, as como tambin este se debe hacer cargo de la comunicacin
entre procesos, pero lo hace a peticin de otros procesos. El mecanismo por el cual un proceso crea otro proceso se
denomina bifurcacin (fork). Los nuevos procesos pueden ser independientes y no compartir el espacio de memoria con el
proceso que los ha creado o ser creados en el mismo espacio de memoria.
En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en que un proceso
solamente puede crear hilos para s mismo y en que dichos hilos comparten toda la memoria reservada para el proceso.
Mtodo
Dos o ms procesos pueden cooperar mediante seales de forma que uno obliga a detenerse a los otros hasta que reciban una
seal para continuar.

Se usa una variable de tipo semforo para sincronizar los procesos.


Si un proceso est esperando una seal, se suspende hasta que la seal se enve.
Se mantiene una cola de procesos en espera en el semforo.
La forma de elegir los procesos de la cola en espera es mediante una poltica first in first out.
La sincronizacin explcita entre procesos es un caso particular del estado "bloqueado". En este caso, el suceso que permite
desbloquear un proceso no es una operacin de entrada/salida, sino una seal generada a propsito por el programador desde
otro proceso.

2.2 Estados y transiciones de los procesos

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I

Crear y destruir los procesos.


Parar y reanudar los procesos.
Ofrecer mecanismos para que se comuniquen y sincronicen.
La gestin de procesos podra ser similar al trabajo de oficina. Se puede tener una lista de tareas a realizar y a estas
fijarles prioridades alta, media, baja por ejemplo. Debemos comenzar haciendo las tareas de prioridad alta primero y
cuando se terminen seguir con las de prioridad media y despus las de baja. Una vez realizada la tarea se tacha. Esto
puede traer un problema que las tareas de baja prioridad pueden que nunca lleguen a ejecutarse. y permanezcan en
la lista para siempre. Para solucionar esto, se puede asignar alta prioridad a las tareas ms antiguas.
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.
Definicin de un proceso:
Un proceso es un programa en ejecucin, pero esto no quiere decir que un programa por s mismo es un proceso, un
programa es una entidad pasiva.

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I
Por ejemplo un exe es una entidad pasiva guardada en el disco, cuando nosotros ejecutamos el exe entonces se
convierte en una entidad activa con un contador de programa que especifica la siguiente instruccin a ejecutarse y
un conjunto de recursos asociados.
Entre los tipos de proceso se encuentran:
Los procesos de tiempo real: Son aquellos en el que tiempo de respuesta es crtico para que no superen un
tiempo lmite.
Los procesos de segundo plano (procesos de clculo y servidores): Son los que no tienen interaccin con el
usuario y cuyo tiempo de respuesta no es crtico.
Los procesos interactivos: Estos no suelen usar mucho tiempo de cmputo, pero estos procesos al ser
requeridos deben tener un tiempo de respuesta rpido, ya que por lo general es cuando un usuario los pide.
Estados De Un proceso:

Nuevo: Es cuando el proceso se est creando.


Ejecucin: Es cuando se estn ejecutando instrucciones.
Espera: Es cuando el proceso est esperando que ocurra algn evento.
Listo: Es cuando el proceso est a la espera de ser asignado a un procesador.
Terminado: Es cuando el proceso ha terminado su ejecucin.

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.

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I
Multiprocesamiento simtrico
SMP es la sigla de Symmetric Multi-Processing, multiproceso simtrico. Se trata de un tipo de arquitectura de
ordenadores en que dos o ms procesadores comparten una nica memoria central.
Explicacin detallada
La arquitectura SMP (Multi-procesamiento simtrico, tambin llamada UMA, de Uniform Memory Access), se
caracteriza por el hecho de que varios microprocesadores comparten el acceso a la memoria. Todos los
microprocesadores compiten en igualdad de condiciones por dicho acceso, de ah la denominacin "simtrico".
Los sistemas SMP permiten que cualquier procesador trabaje en cualquier tarea sin importar su localizacin en
memoria; con un propicio soporte del sistema operativo, estos sistemas pueden mover fcilmente tareas entre los
procesadores para garantizar eficientemente el trabajo.
Una computadora SMP se compone de microprocesadores independientes que se comunican con la memoria a
travs de un bus compartido. Dicho bus es un recurso de uso comn. Por tanto, debe ser arbitrado para que
solamente un microprocesador lo use en cada instante de tiempo. Si las computadoras con un solo microprocesador
tienden a gastar considerable tiempo esperando a que lleguen los datos desde la memoria, SMP empeora esta
situacin, ya que hay varios parados en espera de datos.

2.3 Procesos ligeros: Hilos o hebras.


Un proceso ligero, o thread, es un programa en ejecucion (flujo de ejecucion) que comparte la imagen de memoria y
otras informaciones con otros procesos ligeros. Como muestra la Figura , un proceso puede contener un solo flujo
de ejecucion, como ocurre en los procesos clasicos, o mas de un flujo de ejecucion (procesos ligeros).
Desde el punto de vista de la programacion, un proceso ligero se define como una funcion cuya ejecucion se puede
lanzar en paralelo con otras. El hilo de ejecucion primario, o proceso ligero primario, corresponde a la funcion main.
Cada proceso ligero tiene informaciones que le son propias y que no comparte con otros procesos ligeros. Las
informaciones propias se refieren fundamentalmente al contexto de ejecucion, pudiendose destacar las siguientes:

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.

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I
Senales y semaforos.
Contabilidad.
Es importante destacar que todos los procesos ligeros de un mismo proceso comparten el mismo espacio de
direcciones de memoria, que incluye el codigo, los datos y las pilas de los diferentes procesos ligeros. Esto hace que
no exista proteccion de memoria entre los procesos ligeros de un mismo proceso, algo que si ocurre con los
procesos convencionales.
El proceso ligero constituye la unidad ejecutable en Windows NT. La Figura representa de forma esquematica la
estructura de un proceso de Windows NT con sus procesos ligeros.

2.4 Concurrencia y secuenciabilidad.


La concurrencia comprende un gran nmero de cuestiones de diseo, incluyendo la comunicacin entre procesos,
comparicin y competencia por los recursos, sincronizacin de la ejecucin de varios procesos y asignacin del
tiempo de procesador a los procesos y es fundamental para que existan diseos como Multiprogramacin,
Multiproceso y Proceso distribuido.
Los procesos son concurrentes si existen simultneamente. Cuando dos o ms 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
ms procesos sean concurrentes, es necesario que tengan alguna relacin entre ellos La concurrencia puede
presentarse en tres contextos diferentes:
Varias aplicaciones: La multiprogramacin se cre para permitir que el tiempo de procesador de la mquina
fuese compartido dinmicamente entre varios trabajos o aplicaciones activas.
Aplicaciones estructuradas: Como ampliacin de los principios del diseo modular y la programacin
estructurada, algunas aplicaciones pueden implementarse eficazmente como un conjunto de procesos
concurrentes.
Estructura del sistema operativo: Las mismas ventajas de estructuracin son aplicables a los
programadores de sistemas y se ha comprobado que algunos sistemas operativos estn implementados como
un conjunto de procesos. Existen tres modelos de computadora en los que se pueden ejecutar procesos
concurrentes:
Multiprogramacin con un nico procesador. El sistema operativo se encarga de ir repartiendo el
tiempo del procesador entre los distintos procesos, intercalando la ejecucin de los mismos para dar
as una apariencia de ejecucin simultnea.

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I
Multiprocesador. Es una maquina formada por un conjunto de procesadores que comparten memoria
principal. En este tipo de arquitecturas, los procesos concurrentes no slo pueden intercalar su
ejecucin sino tambin superponerla.
Multicomputadora. Es una maquina de memoria distribuida, que est formada por una serie de
computadoras. En este tipo de arquitecturas tambin es posible la ejecucin simultnea de los
procesos sobre los diferentes procesadores
En general, la concurrencia ser aparente siempre que el nmero de procesos sea mayor que el de procesadores
disponibles, es decir, cuando haya ms de un proceso por procesador. La concurrencia ser real cuando haya un
proceso por procesador. Aunque puede parecer que la intercalacin y la superposicin de la ejecucin de procesos
presentan formas de ejecucin distintas, se ver que ambas pueden contemplase como ejemplos de procesos
concurrentes.
Existen diversas razones que motivan la ejecucin de procesos concurrentes en un sistema:
Facilita la programacin de aplicaciones al permitir que stas se estructuren como un conjunto de procesos
que cooperan entre s para alcanzar un objetivo comn.
Acelera los clculos. Si se quiere que una tarea se ejecute con mayor rapidez, lo que se puede hacer es
dividirla en procesos, cada uno de los cuales se ejecuta en paralelo con los dems.
Posibilita el uso interactivo a mltiples usuarios que trabajan de forma simultnea.
Permite un mejor aprovechamiento de los recursos, en especial de la CPU, ya que pueden aprovechar las
fases de entrada-salida de unos procesos para realizar las fases de procesamiento de otros.
As como existen las razones que motivan la ejecucin de procesos concurrentes, tambin existen sus contras:
Inanicin e interrupcin de procesos.
Ocurrencia de bloqueos.
Que dos o mas procesos requieran el mismo recurso (No apropiativo)
Tipos de procesos concurrentes.
Los procesos que ejecutan de forma concurrente en un sistema se pueden clasificar como:
Proceso independiente: Es aquel que ejecuta sin requerir la ayuda o cooperacin de otros procesos. Un claro
ejemplo de procesos independientes son los diferentes shells que se ejecutan de forma simultnea en un sistema.
Procesos son cooperantes: Son aquellos que estn diseados para trabajar conjuntamente en alguna actividad, para
lo que deben ser capaces de comunicarse e interactuar entre ellos.
En ambos tipos de procesos (independientes y cooperantes), puede producirse una serie de interacciones entre ellos
y pueden ser de dos tipos:
Interacciones motivadas porque los procesos comparten o compiten por el acceso a recursos fsicos o
lgicos. Por ejemplo, dos procesos independientes compiten por el acceso a disco o para modificar una base
de datos.
Interaccin motivada porque los procesos se comunican y sincronizan entre s para alcanzar un objetivo
comn, Por ejemplo, un compilador que tiene varios procesos que trabajan conjuntamente para obtener un
solo archivo de salida.

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I
Elementos a gestionar y disear a causa de la concurrencia.
Se pueden enumerar los siguientes:
1. El sistema operativo debe ser capaz de seguir la pista de los distintos procesos activos . Esto lo hace por
medio de PBCs (Bloque de Control de Procesos).
2. El sistema operativo debe asignar y quitar los distintos recursos a cada proceso activo . Entre estos recursos
se incluyen:

Tiempo de procesador: Es funcin de la planificacin.


Memoria: La mayora de los sistemas operativos emplean esquemas de memoria virtual.
Archivos.
Dispositivos de E/S.

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.

2.5 Niveles, objetivos y criterios de planificacin.


NIVELES DE PLANIFICACIN
Se consideran tres niveles importantes de planificacin, los que se detallan a continuacin:
Planificacin de alto nivel: Se encarga de llevar procesos de disco a memoria y viceversa. Seleccionando los
trabajos que deben admitirse en el sistema. Tambin se denomina Planificacin de trabajos, Determina a qu
trabajos se les va a permitir competir activamente por los recursos del sistema, lo cual se denomina
Planificacin de admisin, Administra todos los recursos del sistema excepto el CPU, Mantiene las colas de
procesos bloqueados y suspendidos, Controla la creacin de procesos y Maneja el nivel de
multiprogramacin.
Planificacin de nivel intermedio: En algunos casos, en especial cuando el sistema est sobrecargado, el
planificador de nivel medio encuentra ventajoso retirar trabajos activos de la memoria para reducir el grado
de multiprogramacin, y por lo tanto, permitir que los trabajos se completen mas aprisa. Este
subadministrador controla los trabajos que se intercambian hacia fuera y de regreso.
Determina a qu procesos se les puede permitir competir por la cpu. oEfecta suspensiones y
activaciones (reanudaciones) de procesos. O Debe ayudar a alcanzar ciertas metas en el

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I
rendimiento total del sistema. O Equilibrar la administracin de trabajos en el sistema con la
asignacin del CPU a dichos procesos. O Nivelar la carga del sistema (procesos activos y pasivos).
Planificacin de bajo nivel: Se encarga de pasar de un proceso a otro en memoria principal. Determinando a
cul proceso listo se le asignar el CPU cuando ste se encuentra disponible. oDetermina a qu proceso listo
se le asigna la cpu cuando esta queda disponible y asigna la cpu al mismo, es decir que despacha la cpu al
proceso.
Objetivos de la Planificacin.
Los objetivos de la planificacin del procesador son los siguientes e involucran a los conceptos detallados
seguidamente:
Ser justa: oTodos los procesos son tratados de igual manera. oNingn proceso es postergado
indefinidamente.
Maximizar la capacidad de ejecucin: oMaximizar el nmero de procesos servidos por unidad de tiempo.
Maximizar el nmero de usuarios interactivos que reciban unos tiempos de respuesta aceptables: En un
mximo de unos segundos.
Ser predecible: oUn trabajo dado debe ejecutarse aproximadamente en la misma cantidad de tiempo
independientemente de la carga del sistema.
Minimizar la sobrecarga: oNo suele considerarse un objetivo muy importante.
Equilibrar el uso de recursos: oFavorecer a los procesos que utilizarn recursos infrautilizados.
Equilibrar respuesta y utilizacin: oLa mejor manera de garantizar buenos tiempos de respuesta es disponer
de los recursos suficientes cuando se necesitan, pero la utilizacin total de recursos podr ser pobre.
Evitar la postergacin indefinida: oSe utiliza la estrategia del envejecimiento. Mientras un proceso espera
por un recurso su prioridad debe aumentar, as la prioridad llegar a ser tan alta que el proceso recibir el
recurso esperado.
Asegurar la prioridad: oLos mecanismos de planificacin deben favorecer a los procesos con prioridades
ms altas.
Dar preferencia a los procesos que mantienen recursos claves: Un proceso de baja prioridad podra mantener
un recurso clave, que puede ser requerido por un proceso de ms alta prioridad. Si el recurso es no
apropiativo, el mecanismo de planificacin debe otorgar al proceso un tratamiento mejor del que le
correspondera normalmente, puesto que es necesario liberar rpidamente el recurso clave.
Dar mejor tratamiento a los procesos que muestren un comportamiento deseable: Un ejemplo de
comportamiento deseable es una tasa baja de paginacin.
Degradarse suavemente con cargas pesadas: oUn mecanismo de planificacin no debe colapsar con el peso
de una exigente carga del sistema. oSe debe evitar una carga excesiva mediante las siguientes acciones: No
permitiendo que se creen nuevos procesos cuando la carga ya es pesada. Dando servicio a la carga ms
pesada al proporcionar un nivel moderadamente reducido de servicio a todos los procesos.
CRITERIOS DE PLANIFICACIN
Equidad Garantizar que cada proceso obtiene su proporcin justa de la cpu.
Eficacia Mantener ocupada la cpu el ciento por ciento del tiempo.

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I
Tiempo de respuesta Minimizar el tiempo de respuesta para los usuarios interactivos.
Tiempo de regreso Minimizar el tiempo que deben esperar los usuarios por lotes(batch) para obtener sus
resultados.
Rendimiento Maximizar el nmero de tareas procesadas por hora.

2.6 Tcnicas de administracin del planificador.


Las disciplinas de planificacin pueden ser:
Expropiativas
No expropiativas
Se denomina planificador al software del sistema operativo encargado de asignar los recursos de un sistema entre
los procesos que los solicitan. Siempre que haya que tomar una decisin, el planificador debe decidir cul de los
procesos que compiten por la posesin de un determinado recursos lo recibir.
Los algoritmos (tcnicas) tienen distintas propiedades segn los criterios en los que se basen para su construccin,
lo cual se refleja en qu tipo de procesos se puede ver favorecido frente a otro en la disputa del procesador. Antes de
realizar la eleccin de un algoritmo se debe considerar las propiedades de estos frente al criterio de diseo elegido.
Algunos de estos son:
1. Eficacia: Se expresa como un porcentaje del tiempo medio de utilizacin. Aunque puede parecer lgico
intentar mantener este parmetro prximo al 100%, con un valor tan elevado otros aspectos importante de
medida del comportamiento del sistema pueden verse deteriorados, como por ejemplo el tiempo medio de
espera.
2. Rendimiento: Es una medida del numero de procesos completados por unidad de tiempo. Por ejemplo 10
procesos por segundo.
3. Tiempo de retorno o regreso: Es el intervalo de tiempo que transcurre desde que un proceso se crea o
presenta hasta que completa por el sistema.
4. Tiempo de espera: Es el tiempo que el proceso espera hasta que se le concede el procesador. Puede resultar
una medida mas adecuada de la eficiencia del sistema, ya que se elimina de la media el tiempo que tarda en
ejecutarse el mismo.
5. Tiempo de respuesta a un evento: Se denomina as el intervalo de tiempo que transcurre desde que se seala
un evento hasta que se ejecuta la primera instruccin de la rutina de servicio de dicho evento. El criterio de
seleccin de un algoritmo se suele basar en la maximizacin o minimizacin de una funcin de los
parmetros anteriores.

3.- Administracin de memoria.


Los sistemas de administracin de memoria se pueden clasificar en dos tipos: los que desplazan los procesos de la
memoria principal al disco y viceversa durante la ejecucin y los que no.

Gestin de la memoria principal


La Memoria es una gran tabla de palabras o bytes que se referencian cada una mediante una direccin nica. Este
almacn de datos de rpido accesos es compartido por la CPU y los dispositivos de E/S, es voltil y pierde su

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I
contenido en los fallos del sistema. El SO es el responsable de:
Conocer qu partes de la memoria estn siendo utilizadas y por quin.
Decidir qu procesos se cargarn en memoria cuando haya espacio disponible.
Asignar y reclamar espacio de memoria cuando sea necesario.
La parte del sistema operativo que administra la memoria se llama administrador de la memoria. Para ello existen
diferentes esquemas de administracin de memoria desde los mas simples hasta los mas elaborados entre los cuales
se ubican:
Administracin de la memoria sin intercambio o paginacin.
Los sistemas de administracin de memoria se pueden clasificar en dos tipos. Los que desplazan
los procesos de la memoria principal al disco y viceversa durante la ejecucin (intercambio y
paginacin) y aquellos que no.
Monopogramacin sin intercambio o paginacin.
Es en forma secuencial pues solo se tiene un objeto en memoria en cada instante, el usuario carga
toda la memoria con un programa, esto implica que cada proceso debe contener controladores de
dispositivo para cada uno de los dispositivos E/S que utilice.
Multiprogramacin y uso de la memoria.
La multiprogramacin facilita la programacin de una aplicacin al dividirla en dos o mas
procesos. La mayora de los procesos tardan cierto tiempo en la espera de datos de dispositivos
E/S. Un modelo para el uso y aprovechamiento de la CPU es el modelo probabilstico dado por
la frmula : Uso de la CPU = 1 pn
Multiprogramacin con particiones fijas.
El objetivo en todo esto es tener mas de un proceso en memoria a la vez, solucin posible sera
dividir la memoria en n partes al inicio de una sesin de uso de la mquina, pero an as se
obtiene el desperdicio de particiones grandes con una tarea pequea, la respuesta puede ser tener
particiones pequeas tambin. Las tareas que van llegando se forman hasta que una particin
adecuada est disponible, en cuyo momento la tarea se carga en esa particin y se ejecuta hasta
terminar.
Intercambio
En un sistema por lotes la organizacin de la memoria en particiones fijas es adecuado pero en
un ambiente multiusuario la situacin es distinta con el tiempo compartido, ya que existen mas
usuarios de los que puede albergar la memoria, por lo que es conveniente albergar el exceso de
los procesos en disco., por supuesto para ser ejecutados estos procesos deben ser trasladados a la
memoria principal. Al traslado de procesos de disco a memoria y viceversa se le llama
intercambio.
Multiprogramacin con particiones variables.
Mediante un algoritmo de administracin de memoria las particiones variables varan de forma
dinmica durante el uso de la mquina, evitando desperdicio de memoria.

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I
Otros mtodos de administracin de memoria que tenemos son:
La administracin de memoria con mapa de bits. La memoria se divide en unidades de asignacin, a cada
asignacin le corresponden un bit en el mapa de bits, un mapa de bits es una forma sencilla para llevar un
registro de las palabras de la memoria en una cantidad fija de memoria.
La administracin de memoria con listas ligadas. Otra forma de mantener un registro en memoria es
mediante una lista ligada donde cada entrada de la lista especfica un hueco o un proceso.
La administracin de memoria con el sistema de los asociados.
Basado en el sistema binario o utiliza para las direcciones.
Memoria Virtual
El mtodo diseado por Fotheringham en 1961 se conoce como Memoria Virtual, la idea es que
el tamao combinado de la pila, programa y datos puede exceder la memoria fsica disponible
para ello. El S.O. mantiene en memoria aquellas partes del programa que se deben permanecer
en memoria y el resto lo deja en disco, las partes entre el disco y la memoria se intercambian de
modo que se vayan necesitando.
Paginacin.
El espacio de direcciones de cada proceso se divide en bloques de tamao uniforme llamados
pginas, los cuales se pueden colocar dentro de cualquier para pgina marco disponible en
memoria. Cuando las tablas de pginas son muy grandes se puede utilizar un esquema de
paginacin de varios niveles para que las pginas se paginen a s mismas.
Existen distintos niveles de paginacin y a su vez distintos modelos de computadoras han trabajado con ellas.
Paginacin de nivel 1: PDP11
Paginacin de 2 niveles: la VAX
Paginacin de 3 niveles: la SPARC
Paginacin de 4 niveles: la 68030
Memoria asociativa
En los algoritmos de paginacin las tablas de pginas se mantienen en la memoria debido a su gran tamao, en
potencia este diseo tiene un efecto enorme en el rendimiento.
Algoritmos de reemplazo de pginas.
Cuando ocurre un fallo de pgina el sistema operativo debe elegir una pgina para retirarla de la
memoria y hacer un espacio para la pgina por recuperar. Si la pgina por eliminar fue
modificada mientras estaba en memoria, debe escribirla en el disco para mantener actualizada la
copia del disco, si por el contrario la pgina no ha sido modificada la copia del disco ya est
actualizada por lo que no es necesario volver a escribir, la pgina por leer slo escribe encima de
la
pgina
por
retirar.
Aunque es posible elegir una pgina al azar para el reemplazo relacionado con un fallo de
pgina, el rendimiento del sistema es mucho mejor si se elige una pgina de poco uso.

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I
Algoritmo de reemplazo de pginas optimo.
Mejor algoritmo posible para reemplazo de pginas pero irrealizable en la prctica.
Al momento de ocurrir un fallo de pgina cierto conjunto de pginas se encuentran en la
memoria, en la siguiente instruccin se har referencia a una de estas pginas, otras pginas no se
utilizaran sino hasta mucho despus, cada pgina puede ejecutarse con el nmero de
instrucciones ejecutadas antes de la primera referencia a esa pgina, el algoritmo dice que se
elimine la pgina con la mayor etiqueta; si una pgina no va a utilizase sino hasta mucho despus
que otra la eliminacin de la primera retrasa el fallo de pgina lo mas posible, el nico problema
de este algoritmo es que es irrealizable. Al momento del fallo de pgina el S.O. no tiene forma de
saber a qu pgina se hace referencia.
Algoritmo de pgina de uso no muy reciente.
En un fallo de pgina , el sistema operativo inspecciona todas las pginas y las divide en cuatro
categoras segn los valores actuales de los bits R y M.
Clase 0: No se ha hecho referencia ni ha sido modificada
Clase 1: No se ha hecho referencia pero ha sido modificada
Clase 2: Se ha hecho referencia pero no ha sido modificada
Clase 3: Se ha hecho referencia y ha sido modificada.
El algoritmo NRU implica una hiptesis que indica que es mejor eliminar una pgina modificada
sin referencias al menos por lo general un intervalo de reloj, este algoritmo es fcil de
comprender, de implantacin eficiente y con un rendimiento que, an sin ser el ptimo si es
adecuado en muchos casos.
Algoritmo de reemplazo primero en entrar, primero en salir FIFO
El sistema operativo tiene una lista de todas las pginas que se encuentran en memoria, siendo la
primera pgina la mas antigua y la ltima la mas reciente, en un fallo de pgina, se elimina la
primera pgina y se aade la nueva al final de la lista.
Algoritmo de reemplazo de pginas de la segunda oportunidad
Una modificacin simple del FIFO que evita deshacerse de una pgina de uso frecuente
inspecciona el bit R de la pgina mas antigua, busca una pgina antigua sin referencias durante el
anterior intervalo de tiempo.
Algoritmo de reemplazo de pginas del reloj
Aunque el anterior algoritmo es razonable un mejor enfoque es mantener las pginas en una lista
circular con la forma de un reloj, una manecilla apunta hacia la mas antigua. Al ocurrir un fallo
de pgina se inspecciona la pgina a la que apunta la manecilla si su bit R=0 se retira de la
memoria, se inserta la nueva pgina en su lugar en el reloj y la manecilla avanza una posicin, si
R=1 la manecilla avanza una posicin y el bit se limpia, esto continua hasta encontrar una pgina
con R=0.
Segmentacin.

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I
Una memoria segmentada tiene otras ventajas como hacer mas sencilla la administracin de las
estructuras de datos que crecen o se reducen, si cada procedimiento ocupa un segmento
independiente con la posicin inicial cero el ligado independiente de los procesos compilados es
mucho mas sencillo.
Bit que se activa si se hace referencia a la pgina en cuestin
Bit que se activa si se modifica la pgina.

3.1 Poltica y filosofa.


Filosofa:
La memoria principal puede ser considerada como un arreglo lineal de localidades de almacenamiento de un byte de
tamao. Cada localidad de almacenamiento tiene asignada una direccin que la identifica.
Una de las funciones bsicas que debe implementar un SO es la Administracin de la Memoria para tener un control
sobre los lugares donde estn almacenados los procesos y datos que actualmente se estn utilizando.
Sea cual sea es esquema de organizacin del almacenamiento que se adopte para un sistema especfico, es necesario
decidir que estrategias se deben utilizar para obtener un rendimiento ptimo .las estrategias de administracin del
almacenamiento determinan el comportamiento de la administracin de memoria cuando se siguen ciertas polticas:
Cundo se toma un nuevo programa para colocarlo en memoria?
Se toma el programa cuando el sistema lo solicita especficamente o se intenta anticiparse alas particiones
del sistema?
En que lugar del almacenamiento principal se coloca el programa por ejecutar?
Se colocan los programas lo ms cerca unos de otros en los espacios disponibles de la memoria principal
para
reducir
al
mnimo
el
desperdicio de espacio, o se colocan los programas lo ms rpido posible para reducir al mnimo el tiempo
de ejecucin?
Si se necesita colocar un nuevo programa en el almacenamiento principal y ste est lleno, Cul de los otros
programas se desaloja?
Se han realizado sistemas que utilizan cada una de estas estrategias de administracin.
Los programas y datos necesitan estar en el almacenamiento principal para ser ejecutados o para poder hacer
referencia de ellos. Los que no se necesitan de inmediato pueden guardarse en el almacenamiento secundario.
Unix permite procesos mltiples y en un proceso puede generar otro fcilmente. La planificacin del procesador usa
un algoritmo basado en prioridades. La administracin de memoria es un algoritmo de regiones variables con
intercambios. Inicialmente los algoritmos realizados se eligieron por sencillez, no por velocidad ni complejidad. El
desarrollo inicial se hizo bajo un espacio muy pequeo de memoria.
Los recursos de memoria totales eran insuficientes para justificar algoritmos complejos, por lo que UNIX
intercambiaba el contenido en memoria de los procesos.

Polticas.

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I
FIFO: Los procesos se despachan de acuerdo a su tiempo de llega a la cola de procesos listos, si un proceso llega al
procesador sale hasta que termine. La poltica FIFO actualmente no se usa como el esquema principal de un sistema,
pero si por ejemplo cuando se usa una poltica de prioridades y hay procesos con la misma prioridad, a estos se les
podra aplicar FIFO.
Round Robin: Los procesos se despachan en la forma que lo hace el FIFO, pero se les asigna una cantidad limitada
de tiempo (CUANTUM) en el procesador, si no termina en ese lapso se manda al final de la lista de procesos listos.
SJF (Shortest job first - Prioridad del trabajo mas corto): Se ejecuta primero el proceso en espera que tiene el menor
tiempo estimado. SJF favorece a los procesos cortos, ya que los largos podran llegar a rezagarse mucho tiempo e
incluso nunca ejecutarse.
SRT (Sortest remaining time scheduling Tiempo restante ms corto): En SJF una vez que un proceso comienza su
ejecucin continua hasta terminar. En SRT, un proceso en ejecucin puede ser desposedo por uno nuevo de menor
tiempo de ejecucin.
HRN: (highest response ratio next Prioridad de la tasa de respuesta ms alta): Poltica no apropiativa que corrige
el retraso excesivo de procesos grandes que produce el SJF, para as no caer en un favoritismo excesivo por los
procesos cortos, lo logra usando una formula basada en el tiempo de espera y el tiempo de servicio, con lo cual la
prioridad de cada trabajo no solo esta en funcin del tiempo de servicio sino tambin del tiempo que ha esperado
para ser atendido.

3.2 Memoria real.


La memoria real o principal es en donde son ejecutados los programas y procesos de
una computadora y es el espacio real que existe en memoria para que se ejecuten los
procesos. Por lo general esta memoria es de mayor costo que la memoria secundaria,
pero el acceso a la informacin contenida en ella es de ms rpido acceso. Solo la
memoria cache es ms rpida que la principal, pero su costo es a su vez mayor.
Administracin de la memoria con mapas de bits.
Este tipo de administracin divide la memoria en unidades de asignacin, las cuales pueden ser tan pequeas como
unas cuantas palabras o tan grandes como varios kilobytes. A cada unidad de asignacin le corresponde un bit en el
mapa de bits, el cual toma el valor de 0 si la unidad est libre y 1 si est ocupada (o viceversa). La figura 6 muestra
una parte de la memoria y su correspondiente mapa de bits.
Un mapa de bits es una forma sencilla para llevar un registro de las palabras de la memoria en una cantidad fija de
memoria, puesto que el tamao del mapa slo depende del tamao de la memoria y el tamao de la unidad de
asignacin.
Administracin de la memoria con listas ligadas.
Otra forma de mantener un registro de la memoria es mediante una lista ligada de los segmentos de memoria
asignados o libres, en donde un segmento puede ser un proceso o un hueco entre dos procesos. La memoria de la
figura 7(a) est mostrada como una lista ligada de segmentos en la figura 7(b). Cada entrada de la lista especifica un
hueco (H) o un proceso (P), la direccin donde comienza, su longitud y un apuntador a la siguiente entrada.
En este ejemplo, la lista de segmentos est ordenada por direcciones, lo que da la ventaja de que al terminar o
intercambiar un proceso, la actualizacin de la lista es directa.

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I
Asignacin del hueco de intercambio.
En algunos sistemas, cuando el proceso se encuentra en la memoria, no hay un hueco en el disco asignado a l.
Cuando deba intercambiarse, se deber asignar un hueco para l en el rea de intercambio del disco. Los algoritmos
para la administracin del hueco de intercambio son los mismos que se utilizan para la administracin de la
memoria principal.
En otros sistemas, al caerse un proceso, se le asigna un hueco de intercambio en el disco. Cuando el proceso sea
intercambiado, siempre pasar al hueco asignado, en vez de ir a otro lugar cada vez. Cuando el proceso concluya, se
libera el hueco de intercambio. La nica diferencia es que el hueco en disco necesario para un proceso debe
representarse como un nmero entero de bloques del disco. Por ejemplo, un proceso de 13.5 K debe utilizar 14K
(usando bloques de 1K).

3.2.1.- Administracin de Almacenamiento.


Si hay una cosa que toma la mayor parte del da de un administrador de sistemas, esto es la administracin del
almacenamiento. Pareciera que los discos nunca tienen espacio suficiente, que se sobrecargan con actividad de E/S
o que fallan repentinamente. Por eso es vital tener un conocimiento prctico slido del almacenamiento en disco
para poder ser un administrador de sistemas exitoso.
Una vista general del hardware de almacenamiento.
Antes de administrar el almacenamiento, primero es necesario entender el hardware en el que estn almacenados los
datos. A menos que posea un algn conocimiento sobre la operacin de los dispositivos de almacenamiento masivo,
quizs se encuentre en una situacin donde tenga un problema relacionado al almacenamiento pero le falte el
conocimiento de fondo para si quiera entender lo que ve. Al tener un entendimiento sobre la forma en que opera el
hardware subyacente, podr ms fcilmente determinar si el subsistema de almacenamiento de su computador est
funcionando correctamente.
La gran mayora de los dispositivos de almacenamiento masivo utilizan alguna forma de media de rotacin y
soportan el acceso aleatorio de los datos en esa media. Esto significa que los componentes siguientes estn presentes
en alguna forma dentro de casi todos los dispositivos de almacenamiento masivo:
Plato del disco
Dispositivo de lectura/escritura de datos
Brazos de acceso
Las secciones siguientes exploran con ms detalles cada uno de estos componentes.
Platos de discos
La media rotativa utilizada por casi todos los dispositivos de almacenamiento masivo estn en la forma de uno o
ms platos planos y de forma circular. El plato puede estar compuesto de cualquier nmero de materiales diferentes,
tales como aluminio, vidrio y policarbonatos.
La superficie de cada plato se trata de forma que permita el almacenamiento de datos. La naturaleza exacta del
tratamiento va a depender de la tecnologa de almacenamiento de datos utilizada. La tecnologa de almacenamiento
de datos ms comn est basada en la propiedad de magnetismo; en estos casos los platos se cubren con un
compuesto que presenta buenas caractersticas magnticas.
Otra tecnologa de almacenamiento de datos comn est basada en principios pticos; en estos casos, los platos se

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I
cubren con materiales cuyas propiedades pticas pueden ser modificadas, y en consecuencia, permitiendo almacenar
datos pticamente.
Sin importar la tecnologa de almacenamiento utilizada, los platos del disco se giran , causando que su superficie
completa barra ms all de otro componente - el dispositivo de lectura/escritura.
Dispositivo de lectura/escritura de datos.
El dispositivo de lectura/escritura es el componente que toma los bits y bytes en los que opera un sistema
computacional y los convierte en las variaciones magnticas u pticas necesarias para interactuar con los materiales
que cubren la superficie de los platos de discos.
Algunas veces las condiciones bajo las cuales estos dispositivos deben operar son difciles. Por ejemplo, en un
almacenamiento masivo basado en magnetismo, los dispositivos de lectura/escritura (conocidos como cabezales),
deben estar muy cerca de la superficie del plato. Sin embargo, si el cabezal y la superficie del plato del disco se
tocan, la friccin resultante provocara un dao severo tanto al cabezal como al plato. Por lo tanto, las superficies
tanto del cabezal como del plato son pulidas cuidadosamente y el cabezal utiliza aire a presin desarrollado por los
platos que giran para flotar sobre la superficie del plato, flotando a una altitud no menor que el grueso de un
cabello humano. Por eso es que las unidades de discos magnticos son muy sensibles a choques, cambios drsticos
de temperaturas y a la contaminacin del aire.
Los retos que enfrentan los cabezales pticos son de alguna manera diferentes de aquellos para los cabezales
magnticos - aqu, el ensamblado de la cabeza debe permanecer a una distancia relativamente constante de la
superficie del plato. De lo contrario, los lentes utilizados para enfocarse sobre el plato no producen una imagen lo
suficientemente definida.
En cualquier caso, las cabezas utilizan una cantidad muy pequea del rea de superficie del plato para el
almacenamiento de datos. A medida que el plato gira por debajo de las cabezas, esta rea de superficie toma la
forma de una lnea circular muy delgada.
Si es as como los dispositivos de almacenamiento masivo funcionan, significa que ms del 99% de la superficie del
plato se desperdiciara. Se pueden montar cabezas adicionales sobre el plato, pero para utilizar completamente el
rea de superficie del plato se necesitan ms de mil cabezales. Lo que se requiere es algn mtodo de mover los
cabezales sobre la superficie del plato.
Brazos de acceso.
Utilizando una cabeza conectada a un brazo que sea capaz de barrer sobre la superficie completa del plato, es
posible utilizar completamente el plato para el almacenamiento de datos. Sin embargo, el brazo de acceso debe ser
capaz de dos cosas:
Moverse rpidamente
Moverse con gran precisin
El brazo de acceso se debe mover lo ms rpido posible, pues el tiempo que se pierde moviendo el cabezal desde
una posicin a la otra es tiempo perdido. Esto se debe a que no se pueden leer o escribir datos hasta que el brazo se
detenga.
El brazo de acceso debe ser capaz de moverse con gran precisin porque, como se mencion anteriormente, el rea
de superficie utilizada por los cabezales es muy pequea. Por lo tanto, para usar eficientemente la capacidad de
almacenamiento del plato, es necesario mover las cabezas solamente lo suficiente para asegurar que cualquier datos
escrito en la nueva posicin no sobreescribe los datos escritos en la posicin previa. Esto tiene el efecto de dividir

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I
conceptualmente la superficie del plato en miles o ms aros concntricos o pistas. El movimiento del brazo de
acceso desde una pista a la siguiente a menudo se conoce como bsqueda y el tiempo que toma el brazo de acceso
para moverse de una pista a otra se le conoce como tiempo de bsqueda.
Cuando existen mltiples platos (o un plato que con ambas superficies utilizadas para almacenamiento de datos), se
apilan los brazos para cada superficie, permitiendo que se pueda acceder a la misma pista en cada superficie
simultneamente. Si se pueden visualizar las pistas para cada superficie con el acceso estacionario sobre una pista
dada, apareceran como que estn apiladas una sobre la otra, haciendo una forma cilndrica; por tanto, el conjunto de
pistas accesibles en una posicin dada de los brazos de acceso se conocen como cilindro.

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).

3.2.3.- Estrategias de Administracin de Memoria.


Estn dirigidas a la obtencin del mejor uso posible del recurso del almacenamiento principal.
Se dividen en las siguientes categoras:

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I
Estrategias de bsqueda:
Estrategias de bsqueda por demanda.
Estrategias de bsqueda anticipada.
Estrategias de colocacin.
Estrategias de reposicin.
Las estrategias de bsqueda estn relacionadas con el hecho de cundo obtener el siguiente fragmento de
programa o de datos para su insercin en la memoria principal.
En la bsqueda por demanda el siguiente fragmento de programa o de datos se carga al almacenamiento principal
cuando algn programa en ejecucin lo referencia.
Se considera que la bsqueda anticipada puede producir un mejor rendimiento del sistema.
Las estrategias de colocacin estn relacionadas con la determinacin del lugar de la memoria donde se colocar
(cargar) un programa nuevo.
Las estrategias de reposicin estn relacionadas con la determinacin de qu fragmento de programa o de datos
desplazar para dar lugar a los programas nuevos.
Asignacin Contigua de Almacenamiento Versus No Contigua.
En la asignacin contigua cada programa ocupa un bloque contiguo y sencillo de localizaciones de
almacenamiento.
En la asignacin no contigua un programa se divide en varios bloques o segmentos que pueden almacenarse en
direcciones que no tienen que ser necesariamente adyacentes, por lo que es ms compleja pero ms eficiente que la
asignacin continua.
Asignacin Contigua de Almacenamiento de Un Solo Usuario.
Se consideran S. O. que ya poseen desarrollado el sistema de control de entrada / salida: IOCS: input / output
control system.

3.2.4.- Asignacin Contigua vs No Contigua.


En la asignacin contigua cada programa ocupa un bloque contiguo y sencillo de localizaciones de
almacenamiento.
En la asignacin no contigua un programa se divide en varios bloques o segmentos que pueden almacenarse en
direcciones que no tienen que ser necesariamente adyacentes, por lo que es ms compleja pero ms eficiente que la
asignacin continua.

3.2.5.- Multiprogramacin de Particin Fija, Particin


Variable, con Intercambio de Almacenamiento.
Se denomina multiprogramacin a la tcnica que permite que dos o ms procesos ocupen la misma unidad de
memoria principal y que sean ejecutados al mismo tiempo (seudo-paralelismo, en una nica CPU slo puede
haber un proceso a la vez) en la unidad central de proceso o CPU.

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I
Aporta las siguientes ventajas:

La ya mencionada, varios procesos en ejecucin.


Permite el servicio interactivo simultneo a varios usuarios de manera eficiente.
Aprovecha los tiempos que los procesos pasan esperando a que se completen sus operaciones de E/S.
Aumenta el uso de la CPU.
Las direcciones de los procesos son relativas, el programador no se preocupa por saber en dnde estar el
proceso dado que el sistema operativo es el que se encarga de convertir la direccin lgica en fsica.

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

Cada trabajo ocupa tanto espacio como necesita.


El tamao del trabajo a ubicar no puede ser mayor que el almacenamiento principal disponible.
Se disminuye parcial o totalmente el desperdicio de memoria.
Aparecen: Condensacin y Compactacin

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.

3.3 Organizacin de memoria virtual


Introduccin.
Almacenamiento virtual significa la capacidad de direccionar un espacio de almacenamiento mucho mayor que el
disponible en el almacenamiento primario de determinado sistema de computacin.
Esta tecnologa apareci en 1960 en la Universidad de Manchester (Inglaterra), en el sistema Atlas.
La ilusin de la memoria virtual est soportada por el mecanismo de traduccin de memoria, junto con una gran
cantidad de almacenamiento rpido en disco duro. As en cualquier momento el espacio de direcciones virtual hace
un seguimiento de tal forma que una pequea parte de l, est en memoria real y el resto almacenado en el disco, y
puede ser referenciado fcilmente.
Debido a que slo la parte de memoria virtual que est almacenada en la memoria principal, es accesible a la CPU,
segn un programa va ejecutndose, la proximidad de referencias a memoria cambia, necesitando que algunas
partes de la memoria virtual se traigan a la memoria principal desde el disco, mientras que otras ya ejecutadas, se

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I
pueden volver a depositar en el disco (archivos de paginacin).
Los mtodos ms comunes de implementacin son mediante:
Tcnicas de paginacin.
Tcnicas de segmentacin.
Una combinacin de ambas tcnicas.

3.4 Administracin de memoria virtual

4.- Administracin de entrada/salida.


4.1 Dispositivos y manejadores de dispositivos: device drivers.
4.2 Mecanismos y funciones de los manejadores de dispositivos: device drivers.
4.3 Estructuras de datos para manejo de dispositivos.
4.4 Operaciones de Entrada /salida
Consiste en un sistema de almacenamiento temporal (cach), una interfaz de manejadores de dispositivos y otra para
dispositivos concretos. El sistema operativo debe gestionar el almacenamiento temporal de E/S y servir las
interrupciones de los dispositivos de E/S.

5.- Sistemas de archivos.


5.1 Concepto.
Los archivos son colecciones de informacin relacionada, definidas por sus creadores. stos almacenan programas
(en cdigo fuente y objeto) y datos tales como imgenes, textos, informacin de bases de datos, etc. El SO es
responsable de:
Construir y eliminar archivos y directorios.
Ofrecer funciones para manipular archivos y directorios.
Establecer la correspondencia entre archivos y unidades de almacenamiento.
Realizar copias de seguridad de archivos.
Existen diferentes Sistemas de Archivos, es decir, existen diferentes formas de organizar la informacin que se
almacena en las memorias (normalmente discos) de los ordenadores. Por ejemplo, existen los sistemas de archivos
FAT, FAT32, EXT3, NTFS, XFS, etc.
Desde el punto de vista del usuario estas diferencias pueden parecer insignificantes a primera vista, sin embargo,
existen diferencias muy importantes. Por ejemplo, los sistemas de ficheros FAT32 y NTFS, que se utilizan
fundamentalmente en sistemas operativos de Microsoft, tienen una gran diferencia para un usuario que utilice una
base de datos con bastante informacin ya que el tamao mximo de un fichero con un sistema de archivos FAT32
est limitado a 4 gigabytes, sin embargo, en un sistema NTFS el tamao es considerablemente mayor.

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I

XFS: Registro de bitcora (journaling)


XFS provee soporte para llevar un registro (journaling), donde los cambios al sistema de archivos primero son escritos a un diario
o journalantes de que se actualicen los datos del disco. El journal es un buffer circular de bloques del disco que no son parte del sistema de
archivos. En XFS el registro (journal) contiene entradas 'lgicas' que describen a un alto nivel las operaciones que se estn realizando, al
contrario de otros sistemas de archivo con un registro (journal) 'fsico', que guardan una copia de los bloques modificados durante cada
transaccin. Las actualizaciones del registro (journal) se realizan asincrnicamente para evitar una baja en el rendimiento. En el caso de una
cada repentina del sistema, las operaciones inmediatamente anteriores a la cada pueden ser terminadas, garantizando as la consistencia del
sistema. La recuperacin se realiza automticamente a la hora del montaje del sistema de archivos y la velocidad de recuperacin es
independiente del tamao del sistema de archivos. Incluso si alguna informacin que fuese modificada inmediatamente antes de la cada del
sistema no fuese escrita al disco, XFS se encarga de borrar todos los bloques de datos sin escribir, eliminando as cualquier compromiso de
seguridad.

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.

5.2 Nocin de archivo real y virtual.


5.3 Componentes de un sistema de archivos.
5.4 Organizacin lgica y fsica.
5.5 Mecanismos de acceso a los archivos.
5.6 Manejo de espacio en memoria secundaria.
5.7 Modelo jerrquico.
5.8 Mecanismos de recuperacin en caso de falla.

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I

6.- Proteccin y seguridad.


6.1 Concepto y objetivos de proteccin.
6.2 Funciones del sistema de proteccin.
6.3 Implantacin de matrices de acceso.
6.4 Proteccin basada en el lenguaje.
6.5 Concepto de seguridad.
6.6 Clasificaciones de la seguridad.
6.7 Validacin y amenazas al sistema.
6.8 Cifrado.
Gestin del almacenamiento secundario
Un sistema de almacenamiento secundario es necesario, ya que la memoria principal (almacenamiento primario) es
voltil y adems muy pequea para almacenar todos los programas y datos. Tambin es necesario mantener los
datos que no convenga mantener en la memoria principal. El SO se encarga de:

Planificar los discos.


Gestionar el espacio libre.
Asignar el almacenamiento.
Verificar que los datos se guarden en orden

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.

Instituto Tecnolgico de Cd. Victoria, Tamaulipas, Mxico.


Departamento de Sistemas Computacionales
Sistemas Operativos I

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:

Manipulacin y modificacin de archivos.


Informacin del estado del sistema.
Soporte a lenguajes de programacin.
Comunicaciones.

Gestor de recursos
Como gestor de recursos, el Sistema Operativo administra:

La CPU (Unidad Central de Proceso, donde est alojado el microprocesador).


Los dispositivos de E/S (entrada y salida)
La memoria principal (o de acceso directo).
Los discos (o memoria secundaria).
Los procesos (o programas en ejecucin).
y en general todos los recursos del sistema.

Вам также может понравиться