Sie sind auf Seite 1von 45

INSTITUTO POLITCNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERA MECNICA Y


ELCTRICA
UNIDAD CULHUACAN

INGENIERA EN COMPUTACIN

APUNTES DE LA MATERIA: SISTEMAS OPERATIVOS


ACADEMIA: COMPUTACION

SEXTO SEMESTRE

PROFESORA: M. en C. MARISOL HERNANDEZ LOPEZ

Fecha de entrega: 10 de septiembre de 2008

M. en C. Marisol Hernndez Lpez

INDICE TEMATICO
UNIDAD I. INTRODUCCIN
1.1 Funciones de un sistema operativo.
1.1.1 Administradores de un sistema operativo.
1.2 Evolucin de los sistemas operativos.
1.3 Tipos de sistemas operativos.
1.4 Estructuras de los sistemas operativos.
UNIDAD II. ADMINISTRACIN DE LA MEMORIA.
2.1 Jerarqua de la memoria.
2.1.1 Memoria secundaria.
2.1.2 Memoria principal.
2.1.3 Memoria cache.
2.2 Asignacin de memoria.
2.2.1 Contigua simple.
2.2.2 Particionada.
2.2.3 Algoritmos de asignacin de procesos.
2.2.4 Paginacin simple.
2.2.5 Segmentacin simple.
2.2.6 Paginacin por demanda.
2.2.7 Segmentacin por demanda.
2.3 Servicios de gestin de memoria.
2.3.1 Servicios POSIX.
2.3.2 Servicios Win32.
UNIDAD III. ADMINISTRADOR DE PROCESADOR.
3.1 Introduccin a los procesos.
3.1.1 Diferencia entre proceso y programa.
3.1.2 Modelo de un proceso.
3.1.3 Estados de un proceso.
3.1.3 Bloque de control de procesos.
3.1.5 Niveles de Planificacin.
3.1.6 Polticas de Planificacin.
3.1.7 Informacin de un proceso: estado del procesador, imagen de memoria del proceso, tablas del
sistema operativo.
3.2 Despacho de procesos.
3.2.1 Algoritmos de planificacin de procesos.
3.2.2 Prioridades.
3.3 Concurrencia.
3.3.1 Multitareas.
3.3.2 Multiprocesos.
M. en C. Marisol Hernndez Lpez

3.4 Comunicacin entre procesos.


3.4.1 Subprocesos.
3.4.2 Modelo de subprocesos.
3.4.3 Secciones crticas.
3.4.4 Exclusin mutua con espera ocupada.
3.4.5 Bloqueo y Desbloqueo (Sleep y Wakeup).
3.4.6 Semforos.
3.4.6.1 Binarios.
3.4.6.2 De conteo.
3.4.7 Monitores.
3.4.8 Transmisin de mensajes.
3.5 Problemas de comunicacin entre procesos.
3.5.1 Los cinco filsofos comensales.
3.5.2 Lectores y Escritores.
3.6 Servicios POSIX para la gestin de procesos.
3.7 Servicios WIN32 par ala gestin de procesos.
UNIDAD IV. DISPOSITIVOS DE ENTRADA / SALIDA.
4.1 Dispositivos E/S.
4.1.1 Interrupcin del CPU.
4.1.2 Definicin y manejo de interrupciones.
4.1.3 E/S programada.
4.1.4 E/S controlada por interrupciones.
4.1.5 Clasificacin.
4.1.6 Manejador de interrupciones.
4.1.7 Vector de interrupciones.
4.2 Canales de E/S.
4.2.1 Tipos de canales.
4.2.2 Interfaces.
4.2.3 Controladores.
4.3 Memorias Transitorias (Buffers).
4.3.1 Tipos de memorias transitorias.
4.3.2 Manejo de memorias transitorias.
4.3.3 Implementacin.
4.3.4 Terminales de red.
4.3.5 Interfaces graficas de usuario.
4.4 Servicios de E/S: genricos para POSIX y WIN32.
UNIDAD V. SISTEMA DE ARCHIVOS.
5.1 Manejo de archivos y directorios.
5.1.1 Aspectos bsicos de los archivos.
5.1.2 Directorios.
5.2 Sistemas de archivos.
5.2.1 Manejo del espacio en disco.
5.2.2 Almacenamiento de archivos.
M. en C. Marisol Hernndez Lpez

5.2.3 Estructura de directorios.


5.2.4 Archivos compartidos.
5.2.5 Rendimiento del sistema de archivos.
5.3 Seguridad.
5.3.1 Fallas de seguridad.
5.3.2 Principios de diseo para seguridad.
5.3.3 Virus.
5.3.4 Mecanismos de proteccin.
5.4 Ejemplos de sistemas de archivos.
5.4.1 CP/M.
5.4.2 MS-DOS.
5.4.3 Win 98.
5.4.4 UNIX V7.

M. en C. Marisol Hernndez Lpez

UNIDAD I
1. DEFINICION SISTEMA OPERATIVO:
Programa que acta como intermediario entre el usuario y el hardware de una computadora. Su propsito
es ofrecer un ambiente en el cual el usuario pueda ejecutar programas y su objetivo principal es hacer que el
sistema de cmputo se pueda utilizar de manera cmoda, su objetivo secundario es que el hardware de la
computadora sea usado de una forma eficiente.
ESTRUCTURA DE UN SISTEMA OPERATIVO
PROGRAMAS
PROGRAMAS
APLICACIONES PERSONALIZADOS

JUEGOS
COMPILADORES

EDITORES

INTERPRETE
DE
COMANDOS

PROGRAMAS DE APLICACIN
PROGRAMAS DE SISTEMA

SISTEMA OPERATIVO
LENGUAJE MAQUINA
HARDWARE
BIOS
(MULTIPROGRAMA)
HARDWARE
(DISPOSITIVOS FISICOS)
1.1 FUNCIONES PRINCIPALES DE UN SISTEMA OPERATIVO:
Un Sistema Operativo realiza 2 funciones principales que se basan en dos puntos de vista: 1) del usuario y 2)
del programador.

MAQUINA EXTENDIDA:
Es el programa que oculta la complejidad del hardware que el programador utilice, es decir, presenta una
visin agradable y ms fcil de manejar de todos los recursos del sistema (Hardware y Software). Muestra al
usuario el equivalente de una maquina extendida o maquina virtual que sea mas fcil de programar que el
hardware subyacente.

M. en C. Marisol Hernndez Lpez

CONTROLADOR DE RECURSOS:
Es el conjunto de programas que llevan un registro de la utilizacin de los recursos, da el paso a
solicitudes de recursos y controla su uso, adems tiene que mediar entre aquellas solicitudes que se encuentran en
conflicto.
1.1.1 ADMINISTRADORES DEL SISTEMA OPERATIVO

ADMINISTRADOR DE MEMORIA:
Esta a cargo de la memoria RAM, comprueba la validez de cada solicitud de espacio de memoria, su tarea
principal es proteger el espacio reservado para el sistema operativo, no puede permitir que parte alguna de ese
espacio sea alterado de forma accidental o propositiva y finalmente en entornos multiusuarios lleva el control del
uso de cada seccin de la memoria mediante una tabla conocida como Tabla de Memoria.

ADMINISTRADOR DE LA CPU:
Se encarga de asignar la Unidad Central de Procesamiento as como controlarla, monitorearla y manejarla
para que todos los procesos puedan ser atendidos. Contiene algoritmos para la planificacin de la CPU por lo que
trabaja con dos niveles de planificacin:
o PLANIFICADOR DE TAREAS (alto nivel): Se encarga de aceptar o rechazar las tareas que se
generan durante la aplicacin.
o PLANIFICADOR DE PROCESOS (bajo nivel): Una vez que las tareas son aceptadas decide cuales
de ellas obtienen la CPU y durante cuanto tiempo.

ADMINISTRADOR DE DISPOSITIVOS ENTRADA/SALIDA:


Se encarga de controlar y vigilar todos los dispositivos, as como las unidades de control, canales, buffers
y buses que forman el sistema de E/S. Su tarea fundamental es definir la manera ms eficiente de asignar los
recursos de E/S en base a polticas de programacin descritas por los diseadores del sistema.

ADMINISTRADOR DE ARCHIVOS:
Administra y lleva el control de todos los archivos que se encuentran en el sistema. Controla la
flexibilidad de acceso que se tiene para cada uno de ellos, se encarga de la creacin de cada archivo as como de
estipular sus caractersticas, adems contiene polticas de acceso, almacenamiento y bsqueda para cada archivo.

ADMINSTRADOR DE RED:
Proporciona la forma ms conveniente de compartir recursos (Hardware y Software) y al mismo tiempo
controla el acceso a los mismos, mediante protocolos de comunicacin.
1.2 EVOLUCION DE LOS SISTEMAS OPERATIVOS.
Los sistemas operativos han evolucionado a travs de los aos y se han apegado ntimamente a la
arquitectura de las computadoras en las cuales se ejecutan. La primera computadora digital real fue diseada por
el matemtico ingls Charles Babbage, la mquina analtica nunca la hizo funcionar adecuadamente por que era
un diseo puramente mecnico; sin tener que decirlo la maquina analtica no tuvo un sistema operativo.

M. en C. Marisol Hernndez Lpez

Primera Generacin 1940 (Bulbos y tableros de conexiones).


Debido a la tecnologa de bulbos y conexiones que exista en las computadoras de esa generacin la
necesidad de un Software que controlara estos recursos no exista, ya que estas conexiones eran realizadas por
personas que tenan el conocimiento de la computacin. Estas maquinas eran enormes y llenaban cuartos enteros
con decenas de miles de tubos de vaco, pero eran mucho mas lentas que an la computadora domstica ms
barata que existe hoy en el mercado.
Toda la programacin se realizaba en lenguaje maquina absoluto, a menudo alambrando tableros de
conexiones para controlar las funciones bsicas de la maquina. Los lenguajes de programacin se desconocan
(todava no exista el lenguaje ensamblador). El modo usual de operacin consista en que el programador firmaba
para tener acceso a un bloque de tiempo en la hoja de registros situada en la pared, despus bajaba al cuarto de
mquina, insertaba un tablero de conexiones en la computadora y pasaba las siguientes horas esperando que
ninguno de los 20 000 bulbos (mas o menos) se fundiera durante la ejecucin de su programa; virtualmente todos
los problemas eran los clculos numricos directos, como la elaboracin de tablas de senos y cosenos. Al inicio
de la dcada de 1950, la rutina haba mejorado un poco con la introduccin de las tarjetas perforadas, ahora era
posible escribir programas en tarjetas y leerlos, en vez de utilizar tableros de conexiones.
Segunda Generacin 1950 (Transistores y sistemas de procesamiento por lotes).
Por primera vez hubo una separacin entre los diseadores, constructores, operadores, programadores y
personal de mantenimiento dedicado a los sistemas de cmputo. Se disea un programa tpico y primitivo en una
tarjeta perforada el cual tena las instrucciones bsicas para la operacin de la computadora, a finales de la
segunda generacin y principios de la tercera generacin se introducen los primeros conceptos de sistemas
operativos de procesamiento por lotes.
La introduccin del transistor a mediados de la dcada de 1950 cambio la imagen radicalmente. Las
computadoras se volvieron lo suficientemente confiables que podan fabricarse y venderse a clientes con la
esperanza de que continuaran funcionando el tiempo suficiente para realizar algn trabajo til.
Para ejecutar un trabajo (un programa o conjunto de programas), un programador primero escriba el
programa en papel (en Fortran o lenguaje Ensamblador) y despus lo perforaba en tarjetas, luego llevara la pila
de tarjetas al cuarto de introduccin al sistema y la entregara a unos de los operadores; que al finalizar la
ejecucin imprima los resultados para su anlisis.
Debido al alto costo y desperdicio de tiempo del equipo, se buscaron maneras para solucionarlo por lo que
se adopt el procesamiento por lotes; la idea implcita en este sistema era la de conjuntar un cajn lleno de
trabajos en el cuarto de introduccin al sistema y despus leerlos en una cinta magntica mediante el uso de una
computadora pequea y poco costosa, como la IBM 1401, que era muy eficiente en la lectura de tarjetas, en el
copiado de cintas y en la impresin de la salida, pero no muy eficiente en los clculos numricos, otras maquinas
muchos ms costosas como la IBM 7094, se utilizaron para realizar los clculos reales.
Las grandes computadoras de la segunda generacin se utilizaban en su mayor parte para realizar clculos
cientficos y de ingeniera, como la solucin de ecuaciones diferenciales parciales. Se programaban
principalmente en FORTRAN y en lenguaje ENSAMBLADOR, los sistemas operativos comunes eran FMS
(Fortran Monitor System) e IBSYS, sistema operativo de IBM para la computadora 7094.

M. en C. Marisol Hernndez Lpez

Tercera Generacin 1960 (Circuitos Integrados y Multiprogramacin)


Se utilizan los primeros circuitos integrados y el concepto de multiprogramacin, IBM disea los primeros
sistemas operativos, as como el hardware que tiene que administrar. Al inicio de la dcada de 1960 muchos
fabricantes de computadoras tenan dos lneas de productos distinta y totalmente incompatibles. Por un lado
existan las computadoras cientficas de gran escala orientadas a las palabras, como la 7094 que se utilizaba para
realizar clculos numricos de ciencias e ingeniera, por el otro lado, estaban las computadoras comerciales
orientadas a los caracteres, como la 1401, que se utilizaban ampliamente para el ordenamiento de cintas e
impresin por parte del banco y compaas de seguros; el desarrollo y mantenimiento de dos lneas de productos
completamente diferentes era una proposicin costosa para los fabricantes.
IBM intento resolver estos dos problemas introduciendo en el mercado el Sistema 360, el cual era una
serie de maquinas de software compatible que iba desde computadoras del tamao de la 1401, hasta otras mucho
ms potentes que la 7094. Adems, el sistema 360 estaba diseado para realizar clculos tanto cientficos como
comerciales. El sistema 360 fue la primera lnea importante de computadoras que utiliz circuitos integrados, lo
cual ofreci una mayor ventaja de precio/rendimiento sobre las maquinas de la segunda generacin que se
construan a partir de transistores individuales.
La intencin era que todo el software como sistema operativo tena que funcionar en todos los modelos,
correr en sistemas pequeos que a menudo sustitua a las unidades 1401 para copiar o reproducir tarjetas en cinta,
y en sistemas muy grandes, que con frecuencia reemplazaban la 7094 para realizar predicciones climatolgicas y
otras operaciones complejas adems de funcionar adecuadamente en sistemas con pocos perifricos y en sistemas
con muchos perifricos y finalmente, funcionar en medios comerciales y cientficos. Por todo esto no haba
manera de que IBM escribiera una pieza de software que cumpliera todos esos requisitos conflictivos y el
resultado fue un sistema operativo enorme y extraordinariamente complejo llamado OS/360, quiz de dos a tres
rdenes de magnitud mayor que FMS, constaba de millones de lneas de lenguaje ensamblador escritas por miles
de programadores y contena miles y miles de errores ocultos que necesitaban un flujo continuo de nuevas
liberaciones en un intento por corregirlos. A pesar de su tamao y problemas enormes el OS/360 y los sistemas
operativos similares de la tercera generacin producidos por otros fabricantes de computadoras satisfacan a
muchos de sus clientes, tambin popularizaron varias tcnicas importantes ausentes en los sistemas operativos de
la segunda generacin, probablemente la ms importante sea la multiprogramacin.
Cuarta Generacin 1980 (Computadoras Personales).
Existen los primeros sistemas operativos multiprogramados de tiempo compartido. Microsoft disea el
sistema operativo DOS para las IBM PC, las 8088 de Intel y sucesores; Se realiza una divisin sobre la
funcionalidad de las computadoras: IBM dedicada a funciones comerciales y cientficas e INTEL dedicada a
computadoras personales, por lo que existen dos principales empresas en el diseo de sistemas operativos:
Microsoft y Multics.
Dos sistemas operativos han dominado la escena de la computacin: MS-DOS, escrito por Microsoft, Inc.
para la IBM PC y otras maquinas que utilizan la CPU INTEL 8088 y sucesores; y UNIX que domina en las
computadoras mayores que hacen uso de la familia de CPU MOTOROLA 68000 y sucesores. Quizs sea irnico
que descendiente directo de MULTICS, diseado para proporcionar un servicio de computacin gigantesco, se
haya vuelto tan popular en las computadoras personales, pero muestra principalmente lo bien pensadas que fueron
las ideas de MULTICS y UNIX.

M. en C. Marisol Hernndez Lpez

Aunque la versin inicial de MS-DOS era relativamente primitiva, versiones subsiguientes han incluido
ms y ms caractersticas de UNIX, lo que no es totalmente sorprendente dado que Microsoft es un proveedor
importante de UNIX, que usa el nombre comercial de XENIX.
Un avance interesante que empez a tomar sitio a mediados de la dcada de 1980 es el desarrollo de las
redes de computadoras que corren en un sistema operativo centralizado y en sistemas operativos distribuidos. En
un sistema operativo centralizado, los usuarios tienen conocimiento de la existencia de mltiples computadoras y
pueden ingresar en maquinas remotas y reproducir archivos de una maquina a la otra, cada maquina ejecuta su
sistema operativo local y tiene un usuario propio (o usuarios). Un sistema operativo distribuido es aquel que se
presenta ante sus usuarios como un sistema uniprocesador tradicional, aunque en realidad este compuesto de
mltiples procesadores.
1.3 TIPOS DE SISTEMAS OPERATIVOS
Se clasifican por la forma en que se introducen los datos al sistema, por su tiempo de respuesta y por tipo de
procesamiento:

Por tipo de introduccin y aceptacin de datos:


o Sistemas Operativos en Serie: Los mecanismos de desarrollo y ejecucin de programas en estos
sistemas son bastante lentos debido a la secuencia que sigue la operacin como la carga del
programa editor, el traductor del lenguaje, etc.
o Sistemas Operativos por Lotes o Batch (FMS e IBSYS): Se introduca una tarea mediante la
agrupacin de tarjetas en un paquete y se corra todo el paquete a travs de un lector como un
grupo (LOTE). En la actualidad no existen ni tarjetas ni cintas, pero todava se procesa en lotes, sin
la interaccin del usuario. La eficiencia de estos sistemas se mide en produccin, esto es la
cantidad de tareas completadas en un lapso de tiempo.
o Sistemas Operativos multiprogramados o multitarea (OS/360): Son Sistemas Operativos que
alternan con diferentes procesos a la vez, debido a que se tiene el concepto de memoria
particionada, por lo cual son capaces de aceptar mas de un trabajo a la vez.

Los Sistemas Operativos multiprogramados se subdividen por sus tiempos de respuesta:


o Interactivos (DOS, UNIX): Tambin conocidos como sistemas de Tiempo Compartido, se crearon
para satisfacer las demandas de los usuarios que necesitaban un tiempo de retorno rpido al
eliminar los errores de sus programas. Permite a cada usuario interactuar directamente con el
sistema de computo mediante introduccin de comandos a partir de una terminal tipo maquina de
escribir, proporciona una retroalimentacin inmediata al usuario y el tiempo de respuesta se puede
medir en minutos o segundos, segn el numero de usuarios activos.
o De tiempo real (trafico areo, vuelos espaciales, aeronaves de alta velocidad, equipo medico): Son
los mas rpidos, se utilizan en entornos donde el tiempo es crtico, debido a que los datos se
procesan con rapidez ya que la salida afecta a decisiones inmediatas. El sistema debe ser 100%
sensible el 100% de las veces por lo que el tiempo de respuesta se mide en fracciones de segundos.
o Hbridos: Son una combinacin de sistemas por lotes e interactivos, parecen interactivos porque
los usuarios pueden tener acceso al sistema mediante terminales y obtener respuesta rpida; pero
cuando la carga interactiva es ligera este sistema acepta y opera programas por lotes en un segundo
plano. Aprovecha el tiempo libre entre demandas de procesamiento para ejecutar programas que
M. en C. Marisol Hernndez Lpez

no necesitan ayuda significativa del operador, muchos de los sistemas de cmputo grandes son
hbridos.

Por el tipo de usuario:


o Monousuario: Dedica todos los recursos del sistema a un solo usuario, sus operaciones en red son
mnimas o casi nulas debido a que en estos Sistemas Operativos se implementaron en las primeras
computadoras personales.
o Multiusuario: Aceptan la interaccin con varios usuarios a travs de terminales, manejando el
concepto de red.

Los sistemas multiusuarios se dividen en dos tipos de acuerdo al procesamiento que llevan a cabo.
o Centralizado: Son aquellos que ejecutan todos los procesos en una sola computadora, y consideran
como terminales tontas a todas aquellas computadoras conectadas a la red (UNIX).
o Distribuidos: Son aquellos que ejecutan las tareas en diferentes computadoras, cada computadora
contiene su propio Hardware y Software de ejecucin. Permiten que los programas corran en
varios procesadores al mismo tiempo, con lo cual se requieren algoritmos de planificacin del
procesador ms complejos a fin de optimizar la cantidad de paralelismo lograda.

1.4 ESTRUCTURAS DE LOS SISTEMAS OPERATIVOS.


ESTRUCTURA MONOLITICA
Este tipo de organizacin es en mucho la ms comn, la estructura consiste en que no existe estructura
alguna. El sistema operativo se escribe como una coleccin de procedimientos, cada uno de los cuales puede
llamar a los dems cada vez que as lo requiera; cada procedimiento del sistema tiene una interfaz bien definida
en trminos de parmetros y resultados y cada uno de ellos es libre de llamar a cualquier otro si este proporciona
cierto calculo til para el primero.
Para construir el programa objeto real del sistema operativo, se compilan en forma individual los
procedimientos o los archivos que contienen los procedimientos y despus se enlazan en un solo archivo objeto
con el ligador. En trminos de ocultamiento de la informacin es prcticamente nula, cada procedimiento es
visible a los dems.
Los servicios (llamadas al sistema) que proporciona el sistema operativo se solicitan colocando los
parmetros en lugares bien definidos, como en los registros o en la pila, para despus ejecutar una instruccin
especial de trampa conocida como llamada al ncleo o llamada al supervisor, esta instruccin cambia la maquina
del modo usuario al modo ncleo y transfiere el control al sistema operativo.

M. en C. Marisol Hernndez Lpez

Programa 2 del usuario


Programa 1 del usuario
:
Llamada al ncleo

Programas del usuario (ejecucin en modo usuario)

(4)
(1)

Proc. del

(3) Servicio

El sistema operativo se ejecuta en modo ncleo

(2) Tabla de despacho

Ncleo

Memoria Principal
(1)
(2)
(3)
(4)

El programa del usuario es atrado hacia el ncleo.


El sistema operativo determina el nmero del servicio solicitado.
El sistema operativo localiza y llama al procedimiento correspondiente al servicio.
El control regresa al programa del usuario.

Esta organizacin sugiere el siguiente funcionamiento bsico del sistema operativo:


Un programa principal que llama al procedimiento del servicio solicitado.
Un conjunto de procedimientos de servicio que llevan a cabo las llamadas al sistema.
Un conjunto de procedimientos utilitarios que ayudan al procedimiento de servicio.
ESTRUCTURA POR CAPAS
Consiste en organizar el Sistema Operativo como una jerarqua de capas, cada una construida sobre la
inmediata inferior, donde la informacin y los datos son privados para cada capa. Este tipo de estructura sugiere
una orientacin modular lo cual conlleva la ventaja de mantenibilidad.
El primer sistema construido bajo este esquema fue el sistema THE (Technische Hogeschool Eindhoven),
el sistema tenia seis capas: la capa 0 se encargaba de la asignacin del procesador y la alternancia entre los
proceso cuando ocurren las interrupciones o expiran los cronmetros, esta capa proporcionaba la
multiprogramacin bsica de la CPU, la capa 1 realizaba la administracin de la memoria principal asignando el
espacio solicitado por los procesos, as como la organizacin de las paginas de dichos procesos en el caso de que
no se pudieran cargar en memoria garantizando la asignacin cuando estas fueran necesarias, la capa 2 permita
la comunicacin entre cada proceso y la consola del operador, la capa 3 controlaba los dispositivos de E/S y
guardaba en almacenes (buffer) los flujos de informacin entre ellos, la capa 4 en esta se encontraban los
programas del usuario y en la capa 5 se ubicaba el proceso del operador del sistema.

M. en C. Marisol Hernndez Lpez

Capa
5
4
3
2
1
0

Funcin
El operador
Programas del usuario
Control de E/S
Comunicacin Proceso-Operador
Administracin memoria y disco
Asignacin de la CPU y Multiprog.

Capa
5
4
3
2
1

1) Estructura del Sistema THE (1968).

Funcin
Interprete del lenguaje de rdenes
Sistema de Archivos
Gestin de Memoria (segmentos, pginas)
E/S Bsica
Ncleo (procesos, semforos)

2) Estructura por capas de los Sistemas Operativos actuales.

ESTRUCTURA DE MAQUINA VIRTUAL


Esta estructura esta orientada a los sistemas operativos hbridos sobre hardware de estilo mainframe.
Los programas que forman el Sistema Operativo se crean de acuerdo al hardware simple de la computadora como
lo es la E/S, interrupciones, modo ncleo y multiprogramacin. El primer Sistema Operativo que propuso esta
estructura fue el TSS/360 (actualmente conocido como VM/370).
Son sistemas de tiempo compartido que proporcionan 1) multiprogramacin y 2) una mquina extendida
con una interfaz ms cmoda que el hardware desnudo, lo cual en esencia es separar por completo estas dos
funciones. El ncleo del sistema, llamado monitor de la mquina virtual, se ejecuta directamente en el hardware y
realiza la multiprogramacin, proporcionando varias mquinas virtuales a la capa inmediata superior; sin embargo
estas mquinas virtuales no son mquinas extendidas, sino copias exactas del hardware desnudo que incluyen
modo de kernel/usuario, E/S, interrupciones y todo lo que contiene una mquina real, por lo tanto cada una puede
ejecutar cualquier sistema operativo ejecutable directamente en el hardware.
Algunas ejecutan uno de los descendientes de OS/360 para el procesamiento de transacciones por lotes,
mientras que otras ejecutan un sistema interactivo monousuario llamado CMS (Conversational Monitor System)
para usuarios interactivos de tiempo compartido.
370 virtuales
Llamadas al sistema aqu
Instrucciones de E/S
Salto aqu

CMS

CMS

CMS

Salto aqu

VM/370
Hardware desnudo de la 370
Estructura del VM\370 con CMS

El sistema OS/360 utilizado para procesamiento por lotes.


El sistema CMS utilizado para tiempo compartido.
M. en C. Marisol Hernndez Lpez

ESTRUCTURA DE CLIENTE SERVIDOR


La tendencia en los sistemas operativos modernos consiste en llevar mas lejos la idea de subir cdigo a
capas superiores y quitar lo ms que se pueda del modo de kernel, dejando un microkernel mnimo. Esto es,
implementando casi todo el sistema operativo en procesos de usuario, para solicitar un servicio, un proceso del
usuario (proceso-cliente) enva la solicitud a un proceso servidor que realiza el trabajo y regresa la respuesta. El
ncleo del Sistema Operativo, ahora es el encargado de controlar la comunicacin entre los clientes y los
servidores.
Una gran ventaja de esta estructura es que todos los procesos servidores se ejecutan como proceso en
modo usuario y no en modo kernel, de esta manera no tienen acceso directo al hardware, por lo tanto, si se activa
un error en el servidor de archivos, el servicio de archivos podra fallar, pero eso no har que se detengan todos
los dems procesos servidores, es decir, toda la maquina. Otra ventaja del modelo cliente-servidor es su
adaptabilidad para usarse en sistemas distribuidos.
Proceso Proceso
Cliente Cliente

Servidor de
Procesos

Servidor de
Terminales ..

Microkernel

Servidor de
Archivos

Servidor de
Memoria

El cliente obtiene servicio


enviando mensajes a los
procesos servidores

Modo de Usuario
Modo de kernel

El modelo Cliente-Servidor

M. en C. Marisol Hernndez Lpez

UNIDAD II.
2. ADMINISTRACION DE MEMORIA
El desempeo de todo sistema ha dependido de dos cosas: cuanta memoria est disponible y de qu
manera se utiliza mientras se procesan los trabajos. La parte del sistema operativo que administra la memoria
principal se denomina administrador de memoria, su responsabilidad es mantenerse al tanto de qu partes de la
memoria estn en uso y cuales no, asignar memoria a los procesos cuando la necesitan y liberarla cuando
terminan, adems de administrar los intercambios entre la memoria principal y el disco.
La administracin de la memoria principal es vital debido a que es el nico espacio fsico disponible en el
cual se almacenan las instrucciones que forman un proceso para que sean ejecutadas. El ciclo tpico de ejecucin
de instrucciones incluye la transferencia de instrucciones de memoria a CPU, decodificacin de instrucciones,
bsqueda de operandos y ejecucin efectiva de las instrucciones, posteriormente los resultados tambin pueden
ser almacenados en memoria.
2.1 JERARQUIA DE MEMORIA
La jerarqua de memoria se refiere a los diferentes tipos de memoria disponibles en un sistema. Estos
diferentes tipos de memoria se colocan en una pirmide mientras ms abajo en la jerarqua de memoria se
encuentra el tipo de memoria, ms lenta y barata es, pero hay mayor cantidad de ella en un sistema.
El xito o fracaso de un acceso a un nivel superior se designa como acierto o fallo: un acierto (hit) es un
acceso a memoria que se encuentra en nivel superior, mientras que un fallo (miss) significa que no se encuentra
en ese nivel. La frecuencia de aciertos es la fraccin de accesos a memoria encontrados en el nivel superior. La
frecuencia de fallos es la fraccin de accesos a memoria no encontrados en el nivel superior. En la jerarqua de
memoria podemos ver que se cumplen una seria de condiciones:

Al bajar de nivel aumenta la capacidad de la memoria.


Al bajar de nivel disminuye el coste por bit.
El registro es el ms caro, luego la cache.
Al bajar de nivel se observa que el tiempo de acceso aumenta. Acceder a un disco ptico es ms lento que
a un disco magntico.
Si seguimos bajando de nivel, disminuye la frecuencia de acceso: no es lo mismo que el tiempo que es el
tiempo que trae el dato, es el n de veces que accede a esa memoria.

Esta es la clave del funcionamiento de la jerarqua de memoria, esa disminucin de frecuencia se debe
sobre todo a lo que se conoce como principio de localidad o cercana de referencia.

M. en C. Marisol Hernndez Lpez

Jerarqua de Memoria
2.1.1 MEMORIA SECUNDARIA
Son una extensin de la memoria principal, el requerimiento fundamental para la memoria secundaria es
que sea capaz de retener grandes cantidades de datos y de manera permanente. El dispositivo ms comn es el
disco magntico, el cual almacena tanto programas como datos, los cuales permanecen en el disco hasta que son
cargados en memoria principal. Muchos programas utilizan el disco duro como fuente y como destino de la
informacin para su procesamiento.
2.1.2 MEMORIA PRINCIPAL
Para la ejecucin de los procesos, estos deben estar almacenados en la memoria principal (RAM). La
RAM es el nico espacio de almacenamiento a la que el procesador tiene acceso. La interaccin entre el
procesador y la memoria se lleva a cabo mediante dos opciones orientadas a direccionamiento de memoria:

LOAD: Mueve una palabra de la memoria a un registro del CPU.


STORE: Mueve el contenido de un registro a la memoria.

Se implementa con una tecnologa de semiconductores llamada memoria dinmica de acceso aleatorio
(DRAM), que forma un arreglo de palabras de memoria. La CPU carga en automtico instrucciones desde la
memoria principal para su ejecucin. Se deseara que los programas y los datos residieran en memoria de manera
permanente, sin embargo esto no es posible por dos principales desventajas: 1) la memoria principal es demasiado
pequea para que pueda almacenar todos lo programas y datos de manera permanente y 2) la memoria principal
es un dispositivo de almacenamiento voltil.
2.1.3 MEMORIA CACHE
Es un espacio muy pequeo de memoria que almacena los datos ms usados, por lo que tiene las mismas
caractersticas de la RAM. La memoria cache es una versin de rpido acceso, diseada para resolver las
diferencias de velocidad entre un CPU muy rpido y una memoria principal mas lenta, lo hace almacenando una
copia de los datos de uso frecuente en una memoria de fcil acceso en vez de la memoria principal, cuyo acceso

M. en C. Marisol Hernndez Lpez

es mas lento; un tamao de cache razonablemente pequeo puede generar mejoras significativas en el
rendimiento.
Su propsito principal es aproximar la velocidad de la memoria (acceso) a la de aquellas ms rpidas que
existen, cada vez que se realiza una carga de datos a los registros del CPU se hace una prueba de cache que
consiste en la bsqueda de estos datos dentro de la cache antes de llegar a la RAM.
Dado que la memoria cache es un pequeo espacio que contiene relativamente pocos datos, el procesador
tiene acceso a sus datos e instrucciones con mucha mayor rapidez que si tuviera que recuperarlos de la memoria
principal, la memoria cache se localiza entre el procesador y la memoria principal.
Memoria
Principal

CPU

Controlador
de cache

Acierto

Memoria
Cache
Falla

Un controlador de cache determina la frecuencia con que se utilizan los datos, transfiere los que se usan a
menudo a la memoria cache y los elimina cuando identifica datos de uso aun mas constante, los datos en la
memoria cache se deben considerar como temporales, en el caso de una falla de energa, estos se pierden y no
pueden recuperarse, exactamente igual que la memoria RAM.
2.2 ASIGNACION DE MEMORIA
Los primeros esquemas de administracin de memoria introdujeron conceptos fundamentales que
ayudaron a la evolucin de la administracin de memoria, haciendo eficiente su uso en los sistemas actuales. La
eleccin de un mtodo de administracin de la memoria para un sistema especfico depende de muchos factores,
fundamentalmente del diseo del hardware del sistema.
2.2.1 CONTIGUA SIMPLE
Tambin conocida como monoproceso, el tamao de la memoria era muy pequeo por lo que solo
existan dos particiones contiguas, una definida para el S. O. y otra para los llamados procesos transitorios o
procesos de usuario. La designacin del espacio para el sistema operativo se llevaba a cabo mediante hardware,
por lo que el espacio designado para los procesos transitorios se define por el propio sistema operativo, es decir,
la primera localidad disponible era la inmediata despus del sistema operativo y la ltima estaba definida por la
capacidad mxima de la memoria.

M. en C. Marisol Hernndez Lpez

Para que el sistema pudiera proteger las localidades designadas tanto para el sistema operativo como para
los otros procesos, requera de algn tipo de asistencia de hardware, como por ejemplo la utilizacin de los
registros valla, los cuales delimitan una frontera entre el rea del sistema operativo y el rea de procesos.
0
SISTEMA
OPERATIVO
(MONITOR)

AREA DE
PROCESOS
TRANSITORIOS

Mxima Localidad de Memoria


2.2.2 MEMORIA PARTICIONADA (MULTIPROGRAMACION)
La multiprogramacin consiste en que el espacio de memoria de usuario es compartido por mltiples
procesos, es decir, un conjunto de procesos pueden ser almacenados en memoria de forma simultneamente. La
utilizacin de multiprogramacin trae consigo varias ventajas entre las cuales se cuenta el mejor aprovechamiento
de la CPU, pues cuando un proceso est realizando E/S, la CPU podra ser utilizada por otro proceso; por otro
lado la multiprogramacin es atractiva para los sistemas multiusuarios y procesos interactivos.
PARTICIONES FIJAS
El primer intento para posibilitar la multiprogramacin fue la creacin de particiones fijas (estticas) en la
memoria principal: una particin para cada tarea. La memoria es dividida en varios bloques de tipo fijo, los cuales
se definen en cuanto se inicia el arranque del sistema, posteriormente esas particiones permanecen fijas; en caso
de que se deseara reconfigurar estos bloques se tena que reiniciar el sistema nuevamente y configurar.
Este esquema introdujo un factor esencial: la proteccin del espacio de memoria para los procesos. La
proteccin de cada uno de estos bloques estaba a cargo del sistema operativo, el cual contena una tabla en la que
se mostraba el tamao de la particin, as como su direccin de inicio y fin de la particin y el estado de libre u
ocupado.
Las desventajas de esta asignacin surgen debido a que es necesario que el programa se almacene
completo y contiguo en la memoria desde el principio hasta el fin de su ejecucin, por lo que si el tamao de la
particin es demasiado pequeo las tareas grandes sern rechazadas o por el contrario si el tamao de la particin
es demasiado grande, se desperdicia memoria lo que se conoce como fragmentacin interna.

M. en C. Marisol Hernndez Lpez

Lista de tareas:
J1 30K
J2 50K
J3 30K
J4 25K

SISTEMA OPERATIVO

SISTEMA OPERATIVO

PARTICION 1
100K

Tarea 1 (30K)

Particin 1

PARTICION 2
25K

Tarea 4 (25K)

PARTICION 3
25K

Particin 2
Particin 3

Tarea 2 (50K)
PARTICION 4
50K

MEMORIA PRINCIPAL

Particin 4

MEMORIA PRINCIPAL

TABLA DE MEMORIA:
Tamao de Direccin en
Particin
Memoria
100K
200K
25K
300K
25K
325K
50K
350K

Acceso
Tarea 1
Tarea 4
Tarea 2

Estado de
Particin
Ocupado
Ocupado
Libre
Ocupado

2.2.3 ALGORITMOS DE ASIGNACION DE PROCESOS


Los tres tipos de algoritmos para la asignacin de procesos en la memoria son:
PRIMER AJUSTE: Tiene que asignar la primera particin disponible y suficiente para la tarea que la
solicita de acuerdo a la prioridad FIFO.
MEJOR AJUSTE: Asigna la particin ms pequea pero suficiente para la tarea que la solicita, la
bsqueda la realiza en toda la tabla de memoria hasta encontrar la adecuada.
PEOR AJUSTE: Asigna la particin ms grande disponible y suficiente para almacenar la tarea que la
solicita, la bsqueda se realiza en toda la tabla de memoria.
2.2.4

PAGINACION SIMPLE

Se basa en el concepto principal de dividir cada tarea de llegada en pginas de igual tamao, donde el
tamao de pgina es fijo y depende del tamao de los sectores del disco duro (y los sectores de memoria). Los
M. en C. Marisol Hernndez Lpez

sectores en que se divide la memoria principal se denominan marcos de pgina y en ellos se almacena las pginas
de cada tarea. El tamao usual de cada marco de pgina va desde los 512 bytes hasta 64 Kbytes.
La principal ventaja de la paginacin simple es el almacenamiento no continuo de las pginas dentro de la
memoria principal, sin embargo es necesario que la tarea se almacene completa hasta el termino de su ejecucin.
El administrador de memoria debe realizar las siguientes tareas:
1. Determinar el nmero de pginas de cada programa.
2. Ubicar los marcos de pgina vacos en la memoria principal.
3. Cargar todas las pginas del programa en los marcos de pgina.
Por lo que requiere el manejo de tres tablas importantes:
TABLA DE MAPAS DE PAGINAS (TMP): Contiene la informacin de los marcos de pgina, su
direccin y nmero de pgina.
TABLA DE MAPA DE MEMORIA (TMM): Contiene la direccin de los marcos de pgina y su
estado libre u ocupado.
TABLA DE TAREAS (TT): Contiene el tamao de la tarea en nmeros de pgina y la localidad de
memoria donde se encuentra almacenada.
2.2.5 SEGMENTACION SIMPLE
SEGMENTO: Modulo independiente del programa que realiza una tarea en especifico pero en conjuncin
con los dems mdulos.
Es un mtodo de asignacin de memoria que se realiza a nivel lgico, debido a que divide cada proceso de
llegada en segmentos o mdulos de distintos tamaos cada uno independiente de los dems. La carga de los
procesos en la memoria principal debe ser completa y de manera no contigua, por lo que la asignacin se define
como Dinmica.
Una vez que quedan asignados los segmentos y terminan su ejecucin, la memoria permanece con las
particiones que se crearon al asignar estos segmentos, por lo que la asignacin de nuevos segmentos tendr que
ser en las particiones que se encuentren vacas y que sean suficientes para la asignacin.
La asignacin por segmentacin simple es un proceso complejo que requiere del uso de tres tablas que le
permitan un buen manejo tanto de los bloques en memoria como de los segmentos que solicitan ser asignados.
TABLA DE TAREAS: Lista todas las tareas en proceso.
TABLA DE MAPA DE SEGMENTOS: Lista detalles sobre cada segmento.
TABLA DE MAPA DE MEMORIA: Vigila la asignacin de la memoria principal.
2.2.6 PAGINACION POR DEMANDA
Es similar a lo visto para la paginacin simple, con la diferencia que este esquema introdujo la idea de
cargar solo una porcin del programa para su procesamiento. Los paginas de los procesos residen en el disco duro
y solo cuando van a ser ejecutados deben ser cargados en memoria.
M. en C. Marisol Hernndez Lpez

Una de las innovaciones de mayor importancia en la paginacin por demanda es que hizo posible el
amplio uso de la memoria virtual, lo que permite al usuario ejecutar tareas con menos memoria principal de lo
que requerira si utilizara la paginacin simple.
El sistema operativo se sigue apoyando en las mismas tablas que se utilizan en la paginacin simple, pero
con la adicin de tres nuevos campos para cada pgina en la Tabla de Mapa de Paginas:
Campo #1, establece si la pagina solicitada esta o no en la memoria.
Campo #2, determina si el contenido de la pgina se ha modificado.
Campo #3, define si la pgina ha sido referenciada recientemente.
La ventaja principal de la paginacin por demanda es que pueda ejecutar procesos con nmeros de pginas
mayores a la memoria fsicamente disponible debido al reemplazo de pginas, haciendo creer al usuario que tiene
una memoria casi infinita.
Las desventajas principales es que sigue existiendo fragmentacin interna en la ltima pgina de cada
proceso y adems un reemplazo continuo de pginas lo que se conoce como hiperpaginacin.
2.2.7 SEGMENTACION POR DEMANDA
Un proceso no necesita tener todos los segmentos cargados en memoria para ser ejecutado, este esquema
se basa en la idea de que solamente se deben cargar en memoria aquellos segmentos que estn siendo activamente
utilizados. La ventaja principal de este esquema es el uso de la Memoria virtual (parecido a la paginacin por
demanda), la principal desventaja es que debido a una asignacin dinmica existe la fragmentacin externa y el
reemplazo continuo de segmentos a los que llamamos hipersegmentacin.
2.3 SERVICIOS DE GESTION DE MEMORIA
Las labores que lleva a cabo el sistema de gestin de memoria son ms bien de carcter interno, los
principales servicios estn relacionados con la proyeccin de archivos. Tpicamente existirn dos:

Proyectar un archivo. Permite incluir en el mapa de memoria de un proceso un archivo o parte del mismo,
con esta operacin, se crea una regin asociada al objeto de memoria almacenado en el archivo.
Normalmente, se pueden especificar algunas propiedades de esta nueva regin, por ejemplo, proteccin.
Desproyectar un archivo. Eliminar una proyeccin previa o parte de la misma.

2.3.1 SERVICIOS POSIX


El estndar POSIX (Portable Operating System) define un conjunto de servicios de gestin de memoria y
los mas frecuentemente utilizados son los que corresponden con la proyeccin y desproyeccin de archivos
(mmap,munmap). El servicio mmap tiene el siguiente prototipo:
caddr_t mmap (caddr_t direc, size_t longitud, int protect, int indicador, int descriptor, off_t despl);
El primer parmetro indica la direccin del mapa donde se quiere que se proyecte el archivo, la funcin
devolver la direccin de proyeccin utilizada.
M. en C. Marisol Hernndez Lpez

El parmetro descriptor se corresponde con el descriptor del archivo que se pretende proyectar y los
parmetros despl y longitud establecen que zona del archivo se proyecta: desde la posicin despl hasta
desp+longitud.
El argumento protect establece la proteccin sobre la regin que puede ser de lectura (PROT_READ), de
escritura (PROT_WRITE), de ejecucin (PROT_EXEC).
El parmetro indicador permite establecer ciertas propiedades en la regin:
MAP_SHARED. La regin es compartida. Las modificaciones sobre la regin afectaran al archivo. Un
proceso hijo compartir esta regin con el padre.
MAP_PRIVATE. La regin privada. Las modificaciones sobre la regin no afectaran al archivo. Un
proceso hijo no compartir esta regin con el padre, sino que obtendr un duplicado de la misma.
MAP_FIXED. El archivo debe proyectarse justo en la direccin especificada en el primer parmetro,
siempre que ste sea distinto de cero.
Cuando se quiere eliminar una proyeccin previa o parte de la misma, se usa el servicio munmap cuyo
prototipo es:
int munmap (caddr_t direc, size_t longitud);
2.3.2 SERVICIOS WIN32
La API Win32 incluye varias funciones que permiten a un proceso administrar en forma explicita su
memoria virtual. Las ms importantes de esas funciones son:
Funcin API Win32
VirtualAlloc
VirtualFree
VirtualProtect
VirtualQuery
VirtualLock

Descripcin
Reserva o compromete una regin
Libera o descompromete una regin
Modifica la proteccin de leer/escribir/ejecutar una regin
Pregunta por la situacin de una regin
Hace residente en memoria una regin (Inhabilita su paginacin)

VirtualUnlock
CreateFileMapping
MapViewOfFile

Hace paginable una regin


Crea un objeto de correspondencia de archivo y lo nombra
Establece correspondencia con un archivo y el espacio de direcciones

UnmapViewOfFile
OpenFileMapping

Elimina la correspondencia entre un archivo y el espacio de direcciones


Abre un objeto de correspondencia de archivo creado con anterioridad

M. en C. Marisol Hernndez Lpez

UNIDAD III.
3. ADMINISTRADOR DEL PROCESADOR
El administrador del procesador trabaja con tres niveles de planificacin:
Planificador de nivel alto (Tareas): Acepta o rechaza tareas de acuerdo a polticas establecidas que
generan una jerarqua de tareas para la asignacin del recurso.
Planificador de nivel bajo (Procesos): Decide la toma ms adecuada para asignar la CPU, cuanto tiempo y
bajo que condiciones la van a utilizar.
Planificador de nivel medio: En un entorno muy interactivo, cuando el sistema esta sobrecargado el
planificador de nivel medio encuentra ventajoso retirar trabajos activos de la memoria para reducir el
grado de multiprogramacin con el objetivo de que los trabajos en memoria se completen ms rpido.

3.1.1 INTRODUCCION A LOS PROCESOS


Un proceso, puede definirse como una entidad activa (programa en ejecucin), que requiere un conjunto
de recursos para llevar a cabo su funcin, tales como procesador, memoria, dispositivos E/S, registros especiales,
etc., en conclusin un proceso es una instancia de un programa ejecutable.
3.1.2 DIFERENCIA ENTRE PROCESO Y PROGRAMA
La diferencia fundamental entre un proceso y un programa se da cuando existe actividad en las tareas que
mantienen un cdigo o conjunto de instrucciones, por lo tanto se puede decir que un programa es una unidad
inactiva almacenada en un dispositivo de almacenamiento secundario y que al momento de ser llamado a
memoria principal para su ejecucin se convierte en un proceso.
3.1.3 MODELO DE UN PROCESO
Todo software ejecutable de la computadora, incluso el sistema operativo se organiza en varios procesos
secuenciales o simplemente procesos. De manera conceptual cada proceso tiene su propia CPU virtual, por
supuesto que la realidad es que una verdadera CPU alterna entre los procesos en ejecucin. Esta rpida
conmutacin se denomina multiprogramacin.
Modelos distintos de los procesos en su ejecucin:
a) Conmutacin de procesos
b) Proceso Secuencial
A
B
C
A
D

c) Un solo programa esta activo a la vez


D
C
B
A
Tiempo
M. en C. Marisol Hernndez Lpez

3.1.3

ESTADOS DE UN PROCESO

A medida que un proceso se ejecuta, cambia de estado. El estado de un proceso est definido en parte por
la actividad actual de ese proceso. En el estado de ejecucin solo puede haber un proceso, sin embargo, varios
pueden estar listos o bloqueados. Cada proceso puede estar en uno de los siguientes estados:

Nuevo (New): El proceso se est creando.


Listo (Ready): El proceso est esperando que se le asigne a un procesador.
En ejecucin (Running): Se estn ejecutando instrucciones.
En espera (Waiting): El proceso est esperando que ocurra algn suceso (como la terminacin de una
operacin de E/S o la recepcin de una seal).
Terminado (Terminated): El proceso termin su ejecucin.

3.1.4 BLOQUE DE CONTROL DE PROCESOS


El bloque de control de procesos (PCB) de un trabajo se crea cuando el planificador de trabajos lo acepta y se
actualiza conforme este avanza desde el principio hasta el final de su ejecucin. El PCB es una estructura de
datos que contiene los datos del trabajo necesarios para que el sistema operativo administre el procesamiento de
este. El PCB contiene entre otros los siguientes campos:
Identificacin del proceso.
Estados del proceso.
Condicin del proceso.
Contabilidad.
3.1.5 NIVELES DE PLANIFICACION
El administrador del procesador trabaja con tres niveles de planificacin:

Planificador de nivel alto (Tareas): Acepta o rechaza tareas de acuerdo a polticas establecidas que
generan una jerarqua de tareas para la asignacin del recurso.
Planificador de nivel bajo (Procesos): Decide la toma ms adecuada para asignar la CPU, cuanto tiempo y
bajo que condiciones la van a utilizar.
Planificador de nivel medio: En un entorno muy interactivo, cuando el sistema esta sobrecargado el
planificador de nivel medio encuentra ventajoso retirar trabajos activos de la memoria para reducir el
grado de multiprogramacin con el objetivo de que los trabajos en memoria se completen ms rpido.

3.1.6 POLITICAS DE PLANIFICACION


Define especficamente una prioridad de los algoritmos de planificacin que resuelven los problemas de
ejecucin de acuerdo a una o ms polticas:
1. Maximizacin de la produccin: Significa el poder ejecutar tantos trabajos de la cola de listos como le sea
posible al sistema.
M. en C. Marisol Hernndez Lpez

2. Minimizar los tiempos de respuesta: Se trata de que el sistema sea capaz de atender solicitudes de la manera
ms rpida posible.
3. Minimizar los tiempos de de retorno del sistema: El sistema debe ser capaz de aceptar procesos y sacarlos
con la mayor rapidez.
4. Minimizar los tiempos de espera: Que los trabajos que se encuentran en la cola de listos sean sacados con
mayor rapidez.
5. Minimizar la eficiencia del procesador: Que el sistema sea capaz de mantener ocupada la CPU el 100% de
las veces, el 100% del tiempo.
6. Asegurar justicia para todos los procesadores: El sistema garantiza que todos los procesos deben tener lo
que quieren en el tiempo que lo requieren.
3.1.7 INFORMACION DE UN PROCESO
Las colas utilizan los PCB para llevar el control de los trabajos de la misma manera que los funcionarios
las aduanas usan los pasaportes para llevar el control de los visitantes.
3.2 DESPACHO DE PROCESOS
El planificador de procesos se apoya en un algoritmo de planificacin de procesos, basado en una poltica
especifica para asignar al CPU y mover los trabajos por el sistema. Los primeros sistemas operativos utilizaban
polticas no apropiativas, diseadas para mover los trabajos por lotes a travs del sistema con tanta eficiencia
como era posible. La mayor parte de los sistemas actuales, con su nfasis en el uso interactivo del tiempo de
respuesta, utiliza un algoritmo que se ocupa de las solicitudes inmediatas de usuarios interactivos.
3.2.1 ALGORITMOS DE PLANIFICACION DE PROCESOS
ALGORITMO FCFS
Primero en entrar, primero en servirse, es un algoritmo de planificacin no apropiativa que maneja los
trabajos de acuerdo con tu tiempo de llegada: conforme entran son servidos. Los tiempos que maneja son:
tiempos de retorno de proceso, tiempo de retorno promedio de sistema.
El tiempo de retorno de proceso: Es el tiempo en que el proceso termina su ejecucin y devuelve el control
al sistema operativo para que alterne con otro proceso.
El tiempo de retorno promedio de sistema: Este se calcula sumando todos los tiempos de retorno de los
procesos ejecutados y dividendo entre el nmero de procesos.
ALGORITMO SJF
Este algoritmo asocia a cada trabajo en la cola de listos, el tiempo de CPU de cada proceso de tal manera
que cuando la UCP est disponible se asigna al trabajo con el tiempo de CPU ms corto. SJF es probablemente
ptimo, ya que reduce el tiempo de espera promedio de cada trabajo. Sin embargo, la dificultad principal para la
implementacin de este algoritmo es que no se conoce ni es posible conocer el tiempo de CPU real de cada
proceso. Los tiempos que maneja son:
Tiempo de espera: Tiempo que espera un proceso para ser obtenido.
Tiempo de retorno de proceso: Tiempo de terminacin de proceso, tiempo en que devuelve el control al
sistema operativo.
M. en C. Marisol Hernndez Lpez

Tiempo de retorno promedio del sistema: Tiempo promedio de trabajo del sistema.

PLANIFICACION ROUND ROBIN


Es un tipo de algoritmo aplicado en sistemas multiprogramados. Se basa en la justicia de asignacin del
procesador para todos los procesos de llegada. Utiliza la prioridad FIFO y se basa en un QUANTUM de tiempo
que varia de 100ms hasta 1 o 2 segundos, para asegurar justicia entre los trabajos. Los tiempos que calcula son:
El tiempo de retorno de proceso: Este tiempo se calcula restando el tiempo en que realmente termina el
proceso menos el tiempo de llegada.
El tiempo de retorno promedio de sistema: Este se calcula sumando todos los tiempos de retorno de los
procesos ejecutados y dividendo entre el nmero de procesos.
Existen dos condiciones principales para la terminacin del QUANTUM:
1. Interrupcin de E/S por parte del proceso.
2. Cuando el proceso utiliza ciclos de CPU menores al QUANTUM del tiempo.
3.2.2 PRIORIDADES
Es un algoritmo que se basa en un conjunto de prioridades para la ejecucin de los procesos, donde cada
prioridad no es ms que un criterio que permita menor complejidad de ejecucin. La jerarqua de prioridades se
establece de la siguiente manera: Menor prioridad aquellos procesos que por su complejidad reclaman
mayor esfuerzo del procesador y mayor prioridad aquellos que requieren menos del procesador.
Dentro de las prioridades que se manejan estn:
Tiempo de llegada.
Ciclo de CPU.
Tamao de memoria.
Tipo proceso (sistema, programa).
No. Archivos.
No. E/S.
3.3 CONCURRENCIA
La concurrencia es la propiedad de los sistemas que permiten que mltiples procesos sean ejecutados al
mismo tiempo, y que potencialmente puedan interactuar entre s. Los procesos concurrentes pueden ser
ejecutados realmente de forma simultnea, slo cuando cada uno es ejecutado en diferentes procesadores.
En cambio, la concurrencia es simulada si slo existe un procesador encargado de ejecutar los procesos
concurrentes, simulando la concurrencia, ocupndose de forma alternada en uno y otro proceso a pequesimos
intervalos de tiempo. Debido a que los procesos concurrentes en un sistema pueden interactuar entre otros
tambin en ejecucin, el nmero de caminos de ejecucin puede ser extremadamente grande, resultando en un
comportamiento sumamente complejo. Las dificultades asociadas a la concurrencia han sido pensadas para el
desarrollo de lenguajes de programacin y conceptos que permitan hacer la concurrencia ms manejable.

M. en C. Marisol Hernndez Lpez

3.3.1

MULTITAREAS

Caractersticas de un sistema operativo que permite ejecutar varios procesos al mismo tiempo usando uno
o ms microprocesadores.
Existen diferentes tipos de multitarea:
MULTITAREA NULA: Aquel sistema operativo que carece de multitarea. An as puede simularla
implementndola en un espacio de usuario o usando trucos como los TSR en MS-DOS. Justamente la familia
DOS son ejemplos de sistemas operativos de multitarea nula.
MULTITAREA COOPERATIVA: Tipo de multitarea en donde los procesos de usuario son quieres ceden
la CPU al sistema operativo a intervalos regulares. Es sumamente problemtico porque si por algn motivo el
proceso de usuario es interrumpido, no cede la CPU al sistema operativo que lo ejecuta y, por lo tanto, quedar
trabado (tildado). Los sistemas operativos Windows antes de la versin 1995 implementaban este tipo de
multitarea.
MULTITAREA PREFERENTE: Tipo de multitarea en donde el sistema operativo se encarga de
administrar uno o ms procesadores, repartiendo el tiempo de uso del mismo entre los distintos procesos que
esperan utilizarlo. En el caso de un solo procesador, cada proceso o tarea lo utiliza en perodos cortos de tiempo,
lo que, en la prctica, da la sensacin de que estuviesen ejecutndose al mismo tiempo. Los sistemas operativos
que utilizan este tipo de multitareas son los UNIX, VMS, Windows NT, etc.
MULTITAREA REAL: Tipo de multitarea en donde el sistema operativo ejecuta los procesos realmente
al mismo tiempo haciendo uso de mltiples procesadores. La ejecucin realmente se realiza en distintos
procesadores para cada proceso o tarea. Obviamente en el caso de que los procesos o tareas sean ms que la
cantidad de procesadores, stos comienzan a ejecutarse en procesadores "en uso" en la forma de multitareas
preferente. Todos los sistemas operativos modernos soportan esta capacidad.
3.3.2 MULTIPROCESOS
Es una situacin en la cual dos o ms procesadores operan al unsono. Esto quiere decir que dos o ms
CPU ejecutan instrucciones de manera simultnea. Por lo tanto, con ms de un proceso activo a la vez, cada CPU
puede tener al mismo tiempo un proceso en estado de ejecucin. Para los sistemas multiprocesamiento, el
administrador del procesador tiene que coordinar la actividad de cada procesador, as como sincronizar la
interaccin entre los CPU.
La complejidad de la tarea del administrador del procesador cuando se ocupa de varios procesadores o de
mltiples procesos, hace que su prioridad sea la sincronizacin, lo cual es la clave del xito de todo sistema
multiproceso.
3.4 COMUNICACIN ENTRE PROCESOS.
Se basa en dos conceptos fundamentales que son competencia y cooperacin, la competencia se da en la
situacin en que dos o ms procesos necesitan un mismo recurso, por lo que el sistema debe ser capaz de atender

M. en C. Marisol Hernndez Lpez

a estos procesos sin afectar la integridad del sistema; la cooperacin existe cuando hay procesos relacionados que
de manera colectiva presentan una sola aplicacin.
3.4.1 SUBPROCESOS
En los sistemas operativos tradicionales cada proceso tiene un espacio de direcciones y un solo subproceso
de control. Sin embargo existen situaciones en las que es deseable tener varios subprocesos de control en el
mismo espacio de direcciones, operando de forma pseudoparalela.
3.4.2 MODELO DE SUBPROCESOS
Un subproceso tiene un contador de programa que indica cual instruccin se ejecutara a continuacin,
tiene registros que contienen sus variables de trabajo actales y tiene una pila, que contiene el historial de
ejecucin. Aunque un subproceso debe ejecutarse en algn proceso, el subproceso y su proceso son conceptos
distintos que pueden tratarse aparte, los subprocesos son las entidades que se calendarizan para ejecutarse en la
CPU.
Los subprocesos aportan al modelo de procesos la posibilidad de que haya varias ejecuciones en el mismo
entorno de un proceso, en gran medida independientes una de otra, tener mltiples subprocesos ejecutndose en
paralelo en un proceso es anlogo a tener mltiples procesos ejecutndose en paralelo en una computadora.
3.4.3 SECCIONES CRITICAS
Es una secuencia de instrucciones con un comienzo y un fin claramente especificado que delimita la
entrada a un recurso compartido, es decir, actualiza una o ms variables compartidas. Cuando un proceso entra a
una seccin critica, debe completar todas las instrucciones incluidas en ella antes de que se permita que otro
proceso entre a la misma seccin crtica.
3.4.4 EXCLUSION MUTUA CON ESPERA OCUPADA
Debido a los problemas de competencia existe una forma de garantizar que si un proceso utiliza un recurso
compartido los dems procesos no pueden utilizarlo, la exclusin mutua. Esta se define como sigue: Un proceso
puede excluir temporalmente a todos los dems procesos de utilizar un recurso compartido que tiene este
proceso.
La espera ocupada sucede cuando un proceso hace una prueba continua de una variable, en espera de que
aparezca cierto valor y este no aparece, esta situacin en algn momento puede tambin ser garanta de una
exclusin mutua.

M. en C. Marisol Hernndez Lpez

3.4.5 BLOQUEO Y DESBLOQUEO (SLEEP Y WAKEUP)


SLEEP y WAKEUP, se define como una solucin para lograr exclusin mutua, utiliza variables de
cerradura y funciona como su nombre lo dice: una funcin manda a dormir procesos y otra funcin los despierta.
Es el mtodo que soluciona los problemas de las variables de cerradura. Cuando un proceso entra a su
regin critica hace una llamada al sistema mediante la variable SLEEP (S), si el recurso esta desocupado se asigna
al proceso y omite la llamada a SLEEP, una vez que el recurso se asigna al proceso las siguientes llamadas a
SLEEP hacen que el sistema suspenda a los procesos que las hicieron, hasta que el recurso sea liberado. La
llamada WAKEUP (W), contiene un parmetro que indica el proceso que hay que despertar y es el primer proceso
de la cola que hizo la llamada a SLEEP.
3.4.6 SEMAFOROS
Los semforos son otra solucin de software para lograr exclusin mutua, existen dos tipos de variables
semforos: binarios y de conteo.
3.4.6.1 SEMAFOROS BINARIOS
Es una variable definida como Semforo que puede contener dos valores, 0 que indica ocupado y 1 que
indica libre. Los semforos binarios utilizan dos funciones Signal y Wait, para manipular la variable semforo.
SIGNAL indica una llamada al sistema que cambia el valor de la variable semforo a libre (+1) y WAIT es una
llamada al sistema que indica una espera hasta que la variable semforo indique libre (-1).
3.4.6.2 SEMAFOROS DE CONTEO
Los semforos de conteo se inicializan con el nmero de recursos disponibles. Cada proceso que desea
usar un recurso realiza una operacin DOWN, la cual decrementa el contador y cuando es liberado un recurso, es
decir, un proceso ha salido de su regin y critica, realiza una operacin UP, la cual incrementa el contador.
Cuando el contador llega a cero significa que todos los recursos estn siendo utilizados, por lo que los
procesos subsecuentes que deseen utilizar un recurso se bloquearan hasta que el contador sea mayor que cero.
3.4.7 MONITORES
Un monitor es un conjunto de procedimientos que proporciona el acceso con exclusin mutua a un recurso
o conjunto de recursos (datos o dispositivos) compartidos por un grupo de procesos. Los procedimientos van
encapsulados dentro de un mdulo que tiene la propiedad especial de que slo un proceso puede estar activo cada
vez para ejecutar un procedimiento del monitor.
El monitor se puede ver como una valla alrededor del recurso (o recursos), de modo que los procesos que
quieran utilizarlo deben entrar dentro de la valla, pero en la forma que impone el monitor. Muchos procesos

M. en C. Marisol Hernndez Lpez

pueden querer entrar en distintos instantes de tiempo, pero slo se permite que entre un proceso cada vez,
debindose esperar a que salga el que est dentro antes de que otro pueda entrar.
La ventaja para la exclusin mutua que presenta un monitor frente a los semforos u otro mecanismo es
que sta est implcita: la nica accin que debe realizar el programador del proceso que usa un recurso es invocar
una entrada del monitor. Si el monitor se ha codificado correctamente no puede ser utilizado incorrectamente por
un programa de aplicacin que desee usar el recurso. Cosa que no ocurre con los semforos, donde el
programador debe proporcionar la correcta secuencia de operaciones espera y seal para no bloquear al sistema.
Los monitores no proporcionan por si mismos un mecanismo para la sincronizacin de tareas y por ello su
construccin debe completarse permitiendo, por ejemplo, que se puedan usar seales para sincronizar los
procesos. As, para impedir que se pueda producir un bloqueo, un proceso que gane el acceso a un procedimiento
del monitor y necesite esperar a una seal, se suspende y se coloca fuera del monitor para permitir que entre otro
proceso.
3.4.8 TRANSMISION DE MENSAJES
Este mtodo de comunicacin entre procesos utiliza dos primitivas, send y relieve, que al igual que los
semforos y a diferencia de los monitores, son llamadas al sistema, no construcciones del lenguaje. De tal manera
pueden incluirse con facilidad en procedimientos de biblioteca como:
send(destino, &mensaje); y relieve(origen, &mensaje);
La primera llamada enva un mensaje a un destino dado y la segunda recibe un mensaje de un origen dado.
Si no hay mensajes disponibles, el receptor puede bloquearse hasta que llegue uno, o bien, regresar de inmediato
cono un cdigo de error.
3.5 PROBLEMAS DE COMUNICACION ENTRE PROCESOS
INANICION
Sucede cuando un proceso esta en espera de un recurso que nunca va a ser liberado, esto es el resultado de
una asignacin conservadora de recursos, donde una tarea no puede ejecutarse por que permanece en espera de
recursos que nunca quedan disponibles, lo que afecta directamente y exclusivamente a los procesos. Debido a que
esta situacin conservadora de recursos se da por prioridad, una posible solucin es aplicar la prioridad por
antigedad del proceso.
DEADLOCK (Abrazo mortal)
Se trata de bloqueos mutuos entre procesos y recursos, es un problema de sincronizacin de procesos que
afectan exclusivamente a los recursos, debido a que un proceso se vuelve propietario de un recurso que ya no
necesita y no lo puede liberar por que esta en espera de otro recurso que se encuentra en la misma situacin,
provocando un bloqueo mutuo de recursos y procesos.

M. en C. Marisol Hernndez Lpez

3.5.1 LOS CINCO FILOSOFOS COMENSALES


Cinco filsofos estn sentados en torno a una mesa circular, cada uno tiene un plato de espagueti y
requiere de dos tenedores para comerlo, entre cada par de platos hay un tenedor. La vida de un filsofo consiste
en periodos alternados de comer y pensar, cuando un filsofo tiene hambre, trata de tomar los tenedores que estn
a su izquierda y a su derecha, uno a la vez, en cualquier orden. Si logra tomar los tenedores, come durante un
tiempo, luego los deja en la mesa y sigue pensando. El problema sucede cuando los filsofos tratan de comer al
mismo tiempo y entonces cada uno tomara su tenedor derecho o bien izquierdo y por lgica ninguno podr tener
ambos tenedores para comer, si tuvieran que verificar que ambos tenedores estn disponibles (uno a la vez) para
comer, debera existir una eficiente sincronizacin para que esto sucediera, sino tendran que hacer la revisin
indefinidamente lo que provocara inanicin.
Este problema suele suceder en los sistemas operativos cuando se trata de atender solicitudes para el uso
de recursos, una posible solucin es detectar trabajos con inanicin, esto es controlando el tiempo que cada
trabajo permanece en espera de recursos, una vez detectada la inanicin el sistema puede bloquear nuevos
trabajos hasta que los trabajos hambrientos queden satisfechos.
3.5.2 LECTORES Y ESCRITORES
El sistema categoriza los procesos dependiendo del modo como utilizan el recursos, por lo que maneja
dos tipos de procesos: procesos lectores (R) y procesos escritores (W).

LECTOR: No modifica la estructura de los datos, por lo que son capaces de compartir archivos al
mismo tiempo con otros procesos lectores.
ESCRITOR: Debido a que es capaz de leer y modificar la estructura tienen acceso exclusivo a los
datos, solo puede entrar un proceso lector a la vez.

SOLUCIONES DEL PROBLEMA


1er SOLUCION: El sistema debe mantener un alto grado de concurrencia entre los lectores, aceptar tantos
lectores como le sea posible. Un escritor no va a ser capaz de hacer uso de la variable hasta que salga o termine el
ltimo lector que entro. Sin embargo, tiene una desventaja: en esta situacin el sistema no permite ninguna
actualizacin.
2 SOLUCION: Una estrategia propone que tanto lectores como escritores puedan completar sus
operaciones en tiempos finitos. De esta manera, un nuevo lector no debera comenzar si hay un escritor
esperando, esto evita la postergacin de escritores y todos los lectores que esperan el final de una escritura
deberan tener prioridad sobre el siguiente escritor, esto evita la postergacin de lectores.
3.6 SERVICIOS POSIX PARA LA GESTION DE PROCESOS
Las primeras versiones de UNIX no tenan subprocesos. En un principio se usaban muchos paquetes de
subprocesos, pero la proliferacin de tales paquetes dificulto mucho la escritura de cdigo porttil, de ah que se
haya creado un proyecto que tenia como objetivo lograr la portabilidad de estas aplicaciones en la diferentes
M. en C. Marisol Hernndez Lpez

versiones de UNIX (tal como con MS-DOS), POSIX, de las iniciales de Portable Operating System, por lo tanto
las llamadas empleadas para administrar subprocesos se estandarizaron como parte de esta.
La especificacin POSIX no adopto una postura en cuanto a si los subprocesos deban implementarse en el
kernel o en el espacio de usuario, la ventaja de tener subprocesos en el espacio de usuario es que se les puede
implementar sin tener que modificar el kernel y la conmutacin de subprocesos es muy eficiente, la desventaja
esta en que si un subproceso se bloquea, todos los subprocesos del proceso se bloquearan.
Las llamadas de subprocesos mas usadas son las siguientes:
Llamada de subprocesos Descripcin
pthread_create
Crea un subproceso nuevo en el espacio de direcciones del invocador
pthread_exit
Termina el subproceso invocador
pthread_join
Espera a que un subproceso termine
pthread_mutex_init
Crea un nuevo mutex
pthread_mutex_destroy
Destruye un mutex
pthread_mutex_lock
Cierra el bloqueo de un mutex
pthread_mutex_unlock
Abre el bloqueo de un mutex
pthread_cond_init
Crea una variable de condicin
pthread_cond_destroy
Destruye una variable de condicin
pthread_cond_wait
Espera a una variable de condicin
pthread_cond_signal
Libera un subproceso que espera a una variable de condicin

3.6.1 SERVICIOS WIN32 PARA LA GESTION DE PROCESOS


Win32 dispone de dos mecanismos de comunicacin, que tambin se pueden utilizar para sincronizar.
Estos mecanismos son las tuberas y los mailslots, como mecanismos de sincronizacin puros, Win32 dispone de
secciones crticas, semforos, mutex y eventos.
Los objetos de sincronizacin en Win32 tienen asociados un manejador que se puede utilizar en funciones
de espera (wait), que permiten a un proceso ligero (subproceso) bloquear su ejecucin.
Las caractersticas de los mecanismos de sincronizacin, son:
Mecanismos
Identificador
Tuberas
Descriptor de archivos
Semforos
Variable de tipo semforo
Mutex y variables condicionales Variable de tipo mutex y condicional
Cola de mensajes
Descriptor propio

M. en C. Marisol Hernndez Lpez

UNIDAD IV.
4.1 DISPOSITIVOS DE ENTRADA/SALIDA
Existe un administrador de dispositivos entrada/salida que se encarga de vigilar y controlar cada uno de
los dispositivos de E/S as como los canales, unidades de control, buffers y todo aquel componente que permita la
comunicacin entre el sistema operativo y el hardware.
Debido a que el administrador E/S maneja polticas de asignacin y liberacin de los recursos tiene una
relacin estrecha con el BIOS del sistema, el cual contiene informacin sobre el manejo y control de cada uno de
ellos.
Mantener el equilibrio entre la oferta y la demanda de recursos, adems tiene la capacidad para controlar
muchas facetas de las E/S automticamente sin la implicacin del procesador.
4.1.1 INTERRUPCION DEL CPU
Las interrupciones se dividen en dos tipos las cuales son: Externas e Internas. Una interrupcin
externa es provocada por un dispositivo externo al procesador. Las dos lneas que pueden sealar interrupciones
externas son la lnea de interrupcin no enmascarable (NMI) y la lnea de peticin de interrupcin (INTR). La
lnea NMI reporta la memoria y errores de paridad de E/S. El procesador siempre acta sobre esta interrupcin,
aun si emite un CLI para limpiar la bandera de interrupcin en un intento por deshabilitar las interrupciones
externas. La lnea INTR reporta las peticiones desde los dispositivos externos, en realidad, las interrupciones 05H
a la 0FH, para cronometro, el teclado, los puertos seriales, el disco duro, las unidades de disco flexibles y los
puertos paralelos.
Una interrupcin interna ocurre como resultado de la ejecucin de una instruccin INT o una operacin de
divisin que cause desbordamiento, ejecucin en modo de un paso o una peticin para una interrupcin externa,
tal como E/S de disco. Los programas por lo comn utilizan interrupciones internas, que no son enmascarables,
para accesar los procedimientos del BIOS y del DOS.
4.1.2 DEFINICION Y MANEJO DE INTERRUPCIONES
INTERRUPCIN
Es una llamada al sistema, generada por el propio proceso, las interrupciones son tomadas siempre por el
sistema operativo que a su vez analiza la peticin y lleva a cabo un proceso especfico que direcciona la
interrupcin a una tabla que indica la prioridad y los procesos necesarios para ejecutarla.
Es la indicacin al sistema de que hay otra actividad pendiente y cambio de contexto, se tiene que estar
ejecutando un programa y producir una interrupcin, consiste en que el procesador atiende una interrupcin y
decide en funcin de unos criterios preestablecidos cambiar de proceso. Las interrupciones se pueden dividir en 2
grupos:
Interrupciones de Software. Tambin son conocidas como "falsas interrupciones" ya que se
producen como consecuencia de la ejecucin de otra instruccin al no ser el hardware las que las
produce. Otra forma de entender estas interrupciones, es verlas desde el punto de vista de llamadas
M. en C. Marisol Hernndez Lpez

a subrutinas, lgicamente, la gracia est en que esas subrutinas no son nuestras, sino que son las
propias de cada sistema operativo, driver o similar tiene. Quedaros pues, con que somos nosotros
los que hacemos invocamos a la interrupcin. Este tipo de interrupcin es el ms habitual en la
programacin.
Interrupciones de Hardware. Este tipo de interrupcin es invocado directamente por los
dispositivos hardware de nuestro ordenador, por lo que "son bastante ms autnticas" que las
anteriores. Al producir algn dispositivo hardware la interrupcin el controlador de interrupciones
o PIC se encarga de gestionarla determinando, en el caso de producirse ms de una interrupcin a
la vez, cual de ellas tiene ms prioridad y debe de ser gestionada por la CPU. El funcionamiento de
este tipo de interrupciones es bastante similar y se suele utilizar mucho para la programacin de
sistemas de comunicaciones.

4.1.3 ENTRADA / SALIDA PROGRAMADA


Un controlador de dispositivos o unidades de E/S se encargan de controlar uno o ms dispositivos del
mismo tipo, de intercambiar informacin entre ellos y al memoria principal de ellos o la CPU.
SPOOL: Concepto basado en evitar tiempos de seo por parte del procesador, debido a que permite llevar
a cabo instrucciones de entrada/salida fuera de lnea de ejecucin. La entrada/salida programada permite que se
transfiera informacin entre las unidades de control y la CPU, a travs de un programa que se ejecuta
continuamente.
4.1.4 ENTRADA/ SALIDA CONTROLADA POR INTERRUPCIONES
Permite que el procesador envi la orden de E/S al controlador de dispositivos especficos sin esperar a
que la orden se lleve a cabo, por lo que el procesador puede dedicarse a otras tareas mientras que la instruccin de
E/S inicia su ejecucin.
4.1.5 CLASIFICACION
Interrupcin enmascarable: Significa que, bajo control del software, el procesador puede aceptar o ignorar
(enmascarar) la seal de interrupcin. Para ello se enva una seal a la terminal INTR, y el procesador la atiende
o la ignora en funcin del contenido de un bit (IF) en un registro (FLAGS) que puede estar habilitado o
deshabilitado. En el primer caso, cuando se recibe la seal, el procesador concluye la instruccin que estuviese en
proceso y a continuacin responde con una combinacin de seales en algunas de sus patillas componiendo una
sucesin de dos seales INTA ("Interrupt Acknowledge").
Interrupcin no enmascarable: Significa que la interrupcin no puede ser deshabilitada por software. Este tipo de
interrupciones ocurren cuando se recibe una seal en la terminal NMI ("Nonmaskable Interrupt") del procesador.
Se reservan para casos en que es crtica la respuesta, por ejemplo que se detecte un error de paridad en la
memoria. Adems son de prioridad ms alta que las enmascarables. La nica forma de enmascarar estas
interrupciones es a travs de circuitos externos al procesador, por ejemplo a nivel del PIC.

M. en C. Marisol Hernndez Lpez

4.1.6 MANEJADOR DE INTERRUPCIONES


El manejador de interrupciones es un programa de control que se encarga de guiar la secuencia de
interrupcin por la cual se hizo la llamada. Cuando sucede una interrupcin el manejador tiene que llevar a cabo
la siguiente secuencia de instrucciones:
1. Describir y almacenar la interrupcin: Debe conocer el tipo de interrupcin que se dio para enviarlo al
usuario mediante un mensaje (mensaje de error o avisos).
2. Guardar el estado del procesador que hizo la interrupcin: El manejador debe almacenar el estado actual
de los procesos que se encontraban activos y del proceso que hizo la llamada, los datos que se guardan
son: contador de programa, contenidos de los registros, pilas y atributos de los procesos.
3. Procesar la interrupcin:
Cuando se trata de una E/S se detiene al proceso y se enva a la cola apropiada del dispositivo
de E/S, cuando se atiende a la solicitud de E/S y una vez que acaba el proceso es devuelto a la
cola de listos para que contine su ejecucin.
Cuando se trata de un error el mensaje de error y el estado del proceso se enva al usuario, la
ejecucin de los procesos se detiene y el sistema debe ser capaz de restaurarse o reiniciarse.
4.1.7 VECTOR DE INTERRUPCIONES
Es el mecanismo de interrupcin que acepta una direccin, que es un nmero que selecciona una rutina
especfica para manejo de interrupciones. Esta direccin es un desplazamiento en una tabla la cual se denomina
Vector de Interrupciones, este contiene las direcciones de memoria de los manejadores de interrupcin
especializados.
En muchas arquitecturas de computacin tpicas, los vectores de interrupcin se almacenan en una tabla en
una zona de memoria, la llamada tabla de vectores de interrupcin, de modo que cuando se atiende una peticin
de interrupcin de nmero n, el sistema, tras realizar eventualmente algunas tareas previas ( tales como salvar el
valor de ciertos registros) transfiere el control a la direccin indicada por el elemento n-simo de dicha tabla.
Usualmente, en las arquitecturas ms tpicas, la transferencia de control se efectuar de modo anlogo a una
llamada a funcin a nivel de mquina, almacenndose en una pila el estado actual del registro contador de
programa, que ser recuperado por una instruccin mquina de retorno de interrupcin, que restaurar el estado
correspondiente a la ejecucin normal de programa forzando la ejecucin de la siguiente instruccin.
4.2 CANAL DE E/S
Son unidades programables que se encargan de las entradas y salidas provenientes de la CPU y las llevan a
la unidad de control apropiada.
Sincronizan la velocidad rpida del CPU con la lenta del dispositivo de E/S y permite la superposicin de
operaciones de E/S con las operaciones del procesador, de tal forma que la CPU y al E/S puedan procesarse de
manera concurrente, a este concepto se le denomina spool.

M. en C. Marisol Hernndez Lpez

CANAL 1

UNIDAD DE CONTROL 1.
UNIDAD DE CONTROL 2.

Disco 1.
Disco 2.
Disco 3.
Disco 1.
Disco 2.
Disco 3.

CPU.
UNIDAD DE CONTROL 3.
CANAL 2

UNIDAD DE CONTROL 4.
UNIDAD DE CONTROL 5.

Disco 4.
Disco 5.
Disco 6.
Teclado.
Mouse.

4.2.1 TIPOS DE CANALES


Los canales son tan rpidos como la CPU, que cada canal puede dirigir varias unidades de control, as
mismo cada unidad de control puede dirigir varios dispositivos. La configuracin tpica de un canal es que un
canal y hasta ocho unidades de control, cada una de las cuales se comunica con hasta ocho dispositivos de E/S.
Al inicio de un comando E/S, la informacin que pasa de la CPU al canal es:
1.
2.
3.
4.

Comando E/S (read, write, rewind, etc)


Numero del canal.
Direccin del registro fsico que se va a transferir (desde el almacenamiento secundario).
Direccin de inicio del buffer a partir del cual se va a transferir el registro o hacia el cual se va a mandar.

4.2.2 INTERFACES
La mayor parte de los sistemas utilizan uno de dos estndares de interfaz de alto rendimiento: IDE o SCSI.
IDE, ofrece un buen rendimiento, son poco costosas y se entran en las PC, SCSI, son ms caras y transfieren
datos a una tasa ms rpida que las IDE, servidores y estaciones de trabajo.
4.2.3 CONTROLADORES
CONTROLADORES DE DISPOSITIVOS (Unidades de E/S).
Es un conjunto de componentes electrnicos que operan un puerto, un bus o un dispositivo mediante un
modo de programa especfico que maneja las interrupciones particulares del dispositivo. Se encargan de
interpretar la seal enviada por el canal que corresponde a una instruccin especfica para un dispositivo
especfico.

M. en C. Marisol Hernndez Lpez

Las unidades de E/S por lo regular constan de un componente mecnico y uno electrnico, en muchos
casos es posible separar las dos partes para tener un diseo ms modular y general. El componente electrnico se
denomina controladora o adaptador de dispositivo.
4.3 MEMORIAS TRASITORIAS (BUFFERS)
Los buffers son reas de almacenamiento temporal que residen en la memoria principal, en los canales y
en las unidades de control. Sirven para almacenar datos ledos de un dispositivo de entrada antes que los necesite
el procesador y para almacenar datos que se escribirn en un dispositivo de salida.
4.3.1 TIPOS DE MEMORIAS TRANSITORIAS
Buffers de una nica fila
Un buffer de una nica fila no es en realidad un cursor, aunque aqu se apliquen las mismas reglas de
pertenencia que se aplican a un cursor de conjunto de claves de slo avance. Con un buffer de una nica
fila slo es posible examinar los datos de la fila del conjunto de resultados. Las filas anteriores no estn
disponibles y la fila actual no estar accesible despus de pasar a la siguiente fila del conjunto de
resultados.
Buffers de n filas
Un buffer de n filas ampla el mbito y la capacidad de desplazamiento del buffer de una nica fila. En
este caso, a la estacin de trabajo se le expone un nmero determinado de filas del conjunto de resultados
y a la aplicacin se le permite que se desplace libremente por esas filas.
4.3.2 MANEJO DE MEMORIAS TRANSITORIAS
El uso de bferes tambin es un problema, tanto para los dispositivos de caracteres como para los de
bloques. Para entender mejor el problema, consideremos un proceso que quiere leer datos de un mdem, una
posible estrategia para manejar los caracteres que llegan es hacer que el proceso de usuario emita una llamada al
sistema read y se bloquee en espera de un carcter. La llegada de cada carcter causa una interrupcin, el
procedimiento de servicio de interrupciones entrega el carcter al proceso de usuario y lo desbloquea; despus de
colocar el carcter en algn lado, el proceso lee otro carcter y vuelve a bloquearse. Esta posible solucin no es
recomendable debido a que un proceso se ejecutara muchas veces durante lapsos de tiempo muy cortos.
Los bferes son muy importantes en las operaciones de salida. Por ejemplo, considere la forma en que se
envan salidas al mdem siguiendo el modelo descrito anteriormente, el proceso de usuario ejecuta una llamada
write al sistema para enviar a la salida n caracteres.
4.3.3 IMPLEMENTACION
La implementacin mas adecuada para el uso de memorias transitorias es que el kernel copie los datos en
un bfer kernel y desbloqueando de inmediato el invocador. Ahora no importa cuando termine la E/S real; el
usuario podr volver a utilizar el bfer en el instante en que se le desbloquee.
M. en C. Marisol Hernndez Lpez

El uso de bferes es una tcnica ampliamente utilizada, pero tiene sus desventajas, si los datos se colocan
en demasiados bferes sucesivos, hay una merma en el desempeo.
4.3.4 TERMINALES DE RED
Se denominan dispositivos de comunicacin y son aquellos que permiten conectar a la computadora con
otras a travs de una red, los dos tipos de dispositivos mas importantes son: Tarjeta red y el mdem.
El administrador de red proporciona una forma conveniente para los usuarios de compartir recursos y al
mismo tiempo controlar sus acceso a los mismos, mediante la implementacin de protocolos y comunicaciones de
red; estos recursos incluyen hardware como la CPU, reas de memoria, impresoras, unidades de almacenamiento
secundario, mdem; y recursos de software como compiladores, programas de aplicacin y archivos de datos.
4.3.5 INTERFACES GRAFICAS DE USUARIO
Una interfaz grfica de usuario, definida por sus siglas en ingls GUI, es la interfaz de usuario que le
permite activar los comandos de sistema operativo con un clic sobre un icono de escritorio mediante un
dispositivo apuntador como un ratn o una pantalla tctil. El GUI evolucion a partir de las interfaces de usuario
impulsadas por comandos.
Muchas interfaces grficas de usuario comparten muchas similitudes, tanto en apariencia como en
operacin. Ejemplo de ello, se puede mencionar a sistemas operativos populares como Windows (todas sus
versiones hasta las actuales), UNIX, Macintosh (diferentes versiones) y Linux.
4.4 SERVICIOS DE E/S: GENERICOS PARA POSIX Y WIN32
Debido al tratamiento diferenciado que se da el reloj, se presentan separadamente los servicios
relacionados con el mismo de los correspondientes a los dispositivos de entrada/salida convencionales.
En cuanto a los servicios del reloj, se van a especificar de acuerdo a las tres categoras: fecha y hora,
temporizaciones y contabilidad.
SERVICIO DE FECHA Y HORA: El servicio para obtener fecha y hora es time, y su prototipo es:
time_t time(time_t *t);
SERVICIO DE TEMPORIZACION: El servicio esta definido por alarm, y su prototipo es:
unsigned int alarm (unsigned int segundos);
SERVICIO DE CONTABILIDAD: Existen diversas funciones que se pueden englobar en esta categoria, por
ejemplo la mas usada times, que devuelve informacin sobre el tiempo de ejecucin de un proceso y sus hijos.
clock_t times (struct tms *info);

M. en C. Marisol Hernndez Lpez

UNIDAD V.
5. SISTEMA DE ARCHIVOS
Es el software que se encarga de crear, eliminar, modificar y controlar el acceso a cada uno de los archivos
del sistema, adems de administrar los recursos utilizados por los archivos.
La funcin principal del administrador de archivos es una de las funciones principales es estar a cargo de
los componentes fsicos del sistema, los recursos de informacin y las polticas que se utilizan para almacenar y
distribuir los archivos.
5.1 MANEJO DE ARCHIVOS Y DIRECTORIOS
El administrador de archivos controla la informacin mediante la utilizacin de archivos y directorios. Por
lo tanto realiza cuatro tareas fundamentales:
1.
2.
3.
4.

Controlar el almacenamiento de los archivos.


Utilizar polticas de almacenamiento (donde, como).
Asignacin del archivo.
Desasignar el archivo.

5.1.1 ASPECTOS BASICOS DE LOS ARCHIVOS


Los archivos son un mecanismo de abstraccin. Son una forma de almacenar informacin en un disco y
volver a leerla mas adelante. Esto debe hacerse de forma que el usuario quede protegido contra los detalles de
forma y lugar de almacenamiento de la informacin, as como el funcionamiento real de los discos.
Cuando un proceso crea un archivo, le da a ste un nombre. Cuando el proceso concluye el archivo sigue
existiendo y otros procesos pueden tener acceso a l mediante su nombre. La extensin determina con que
programa se ejecuta ese archivo.
ESTRUCTURA DE UN ARCHIVO
Los archivos se pueden estructurar de varias maneras: puede ser una serie estructurada de bytes, o una
secuencia de archivos de longitud fija, cada uno con su propia estructura interna. Tambin esta la estructura de
rbol en los archivos donde hablamos de jerarquas y ramificaciones y llaves.
TIPOS DE ARCHIVOS
Los sistemas operativos soportan varios tipos de archivos, archivos regulares, directorios, archivos
especiales de caracteres y archivos especiales de bloques.
1. Archivos regulares: son aquellos que contienen informacin del usuario (generalmente
son binarios o en ASCII).
2. Los directorios: son archivos del sistema para el mantenimiento de una estructura del
sistema de archivos.
3. Los archivos especiales de caracteres: Tienen relacin con entrada/salida y se usan para
modelar dispositivos seriales de E/S, tales como las impresoras, terminales y redes.
M. en C. Marisol Hernndez Lpez

4. Los archivos especiales de bloques: se usan para modelar discos.


5.1.2 DIRECTORIOS
En sistemas de archivos jerrquicos, en lo usual, se declara la ubicacin precisa de un archivo con una
cadena de texto llamada "ruta". La nomenclatura para rutas vara ligeramente de sistema en sistema, pero
mantienen por lo general una misma estructura. Una ruta viene dada por una sucesin de nombres de directorios y
subdirectorios, ordenados jerrquicamente de izquierda a derecha y separados por algn carcter especial que
suele ser una barra ('/') o barra invertida ('\') y puede terminar en el nombre de un archivo presente en la ltima
rama de directorios especificada. Un directorio tiene por lo menos varios datos, uno por archivo
5.2 SISTEMAS DE ARCHIVOS
El administrador de archivos tiene que controlar esta informacin mediante el sistema de archivos, que
esta compuesto principalmente por una estructura de directorios y una coleccin de archivos correspondiente a
cada directorio.
C:

Invoca siempre a FAT.

La tabla de asignacin de archivos contiene un ndice separado de un nivel para cada archivo; el ndice
posee una entrada para cada seccin asignada al archivo. El ndice del archivo se guardar en un bloque aparte y
la entrada del archivo en la tabla de asignacin, apuntar a dicho bloque.
Cuando se crea un sistema de archivos, se almacena en una parte especial del mismo una tabla que
contiene una entrada por cada bloque de disco y que est indexada por nmero de bloque. A medida que se
asignan nuevos bloques al archivo, se apunta a ellos desde la ltima entrada de la tabla asociada al archivo.
5.2.1 MANEJO DEL ESPACIO EN DISCO
Los sistemas de archivos se almacenan en discos. Casi todos los discos pueden dividirse en una o mas
particiones, con sistemas de archivos independientes en cada particin. El sector 0 del disco se llama registro
maestro de arranque (MBR; Master Boot Record) y sirve para arrancar la computadora. El final del MBR
contiene la tabla de particiones, esta tabla contiene las direcciones inicial y final de cada particin. Una de las
particiones de la tabla esta marcada como activa, cuando se enciende la computadora el BIOS lee el MBR del
disco y lo ejecuta. Lo primero que hace el programa MBR es localizar la particin activa, leer su primer bloque,
llamado bloque de arranque y ejecutarlo. El programa del bloque de arranque carga el sistema operativo
contenido en esa particin.
5.2.2 ALMACENAMIENTO DE ARCHIVOS
ASIGNACIN ADYACENTE
El aspecto ms importante en la implantacin del sistema de archivos es cmo se realiza el registro de los
bloques asociados a cada archivo. El espacio en disco se divide en unidades de asignacin denominadas bloques,
M. en C. Marisol Hernndez Lpez

de tal manera que cuando un proceso solicita espacio en disco se entregar una cantidad de bloques que satisfaga
las necesidades. Los tamaos tpicos de bloques fluctan entre 512 bytes hasta 2 Kb.
Para guardar constancia de las secciones asignadas a un archivo se utiliza una estructura denominada
normalmente como Tabla de Asignacin de Archivos (FAT). Cuando se crea un archivo se le asigna un nico
conjunto contiguo de bloques; por tanto esta es una estrategia de asignacin previa denominada asignacin
adyacente. En la asignacin adyacente se almacena cada archivo como un solo bloques de datos en el disco.
ASIGNACIN POR LISTAS LIGADAS
Para almacenar archivos se mantiene a cada uno de ellos como una lista ligada de bloques en disco. Donde
en cada bloque de un archivo existe un apuntador al siguiente bloque del mismo. La primera palabra de cada
bloque guarda la direccin del siguiente. Cada bloque contendr un puntero al siguiente bloque de la cadena.
ASIGNACIN POR LISTAS LIGADAS CON NDICE
En esta asignacin se toma el apuntador que se encuentra en la primera palabra del bloque de disco y lo
colocamos en una tabla o ndice de la memoria, estaramos hablando de una asignacin por listas ligadas con
ndice. En la asignacin indexada, todo el bloque est disponible para almacenar datos. La asignacin puede
hacerse por bloques de tamao fijo o en secciones de tamao variable.
La tabla de asignacin de archivos contiene un ndice separado de un nivel para cada archivo; el ndice
posee una entrada para cada seccin asignada al archivo. El ndice del archivo se guardar en un bloque aparte y
la entrada del archivo en la tabla de asignacin, apuntar a dicho bloque.
5.2.3 ESTRUCTURA DE DIRECTORIOS
Antes de poder leer un archivo ste debe ser abierto, al abrir un archivo, el So usa el nombre de la ruta de
acceso dado por el usuario para localizar el dato en el directorio.

Directorios en CP/M: en este sistema solo existe un directorio, por lo que todo lo debe hacer el sistema
de archivos para encontrar el nombre es que tiene que buscar en un solo directorio.
Directorios en MS/DOS: los directorios pueden contener otros directorios, lo que conduce a un sistema
jerrquico de archivos.
Directorios en UNIX: es en extremo su estructura sencilla, cada entrada contiene un nombre de
archivo y su nmero de nodo-i. toda la informacin relativa al tipo, tamao, tiempos, propiedad y
bloques en disco esta contenida en ese nodo.

5.2.4 ARCHIVOS COMPARTIDOS


Cuando varios usuarios colaboran en un proyecto, es comn que necesiten compartir archivos, por ello es
en muchos casos conveniente que un archivo compartido aparezca al mismo tiempo en diferentes directorios que
pertenecen a distintos usuarios. El archivo compartido se llama enlace (link), por lo que ahora el sistema de
archivos es mas bien una grfica cclica dirigida, no un rbol.

M. en C. Marisol Hernndez Lpez

Compartir archivos es conveniente, pero tambin presenta problemas, por principio, si los directorios
contienen en verdad direcciones de disco, tendr que crearse una copia de ellas en cada uno cuando se enlace el
archivo, adems de que la actualizacin correcta no puede mantenerse a tiempo.
5.2.5 RENDIMIENTO DEL SISTEMA DE ARCHIVOS
El acceso al disco es mucho ms lento que el acceso a memoria. La lectura de una palabra de memoria
tarda un mximo de unas cuantas centenas de nano segundos. La lectura de un bloque de disco tarda decenas de
milisegundos, 100 000 veces mas lento.
La tcnica ms comn para reducir los accesos a disco es el bloque de cache o bfer cach. Una cach
es una coleccin de bloques que pertenecen desde el punto de vista lgico al disco, pero que se mantienen en la
memoria por razones de rendimiento.
5.3 SEGURIDAD
Los trminos seguridad y proteccin se utilizan en forma indistinta. Sin embargo, es til hacer una
distincin entre los problemas generales relativos a la garanta de que los archivos no sea ledos o modificados
por personal no autorizado, lo que incluye aspectos tcnicos, de administracin, legales y polticos, por un lado y
los sistemas especficos del sistema operativo utilizados para proporcionar la seguridad, por el otro. Para evitar la
confusin, se utilizar el trmino seguridad para referirnos al problema general y el trmino mecanismo de
proteccin para referirnos a los mecanismos especficos del sistema operativo utilizado para resguardar la
informacin de la computadora. Sin embargo, la frontera entre ellos no est bien definida.
5.3.1 FALLAS DE SEGURIDAD
Al igual que la industria del transporte tiene el Titanic y el Hindenburg, los expertos en seguridad de las
computadoras tienen algo que quisieran poder olvidar. En esta seccin se analizaran algunos problemas de
seguridad que surgieron en cuatro sistemas operativos: Unix, Multics, Tenex, y el OS/360.
La utilera LPR de Unix imprime un archivo en la impresora de lneas tiene una opcin para eliminar el
archivo despus de ser impreso. En las primeras versiones de Unix, era posible que cualquiera utilizara LPR para
imprimir, para que despus el sistema eliminara el archivo con la contrasea.
El problema de seguridad de Multics se relacionaba con el hecho de que los diseadores de sistema
siempre pensaron en Multics como un sistema de tiempo compartido, cuyas facilidades para el procesamiento por
lotes surgieron como una idea tarda, para pacificar ciertas viejas intransigencias de los lotes. La seguridad en el
tiempo compartido era excelente; la seguridad en los lotes era inexistente. Cualquier persona poda introducir un
trabajo por lotes que leyera un paquete de naipes en el directorio de cualquier otro usuario.
El sistema operativo Tenex era muy popular en las computadoras DEC-10 ya no se utiliza mucho pero su
nombre quedar grabado para siempre en los anales de la seguridad de las computadoras, debido al siguiente error
del diseo. Tenex permita la paginacin. Para que los usuarios supervisaran el comportamiento de sus
programas, era posible indicar al sistema que llamara una funcin del usuario si ocurra un fallo de pgina.
M. en C. Marisol Hernndez Lpez

En el sistema OS/360 era posible iniciar una lectura de cinta y continuar despus el clculo mientras que la
unidad de cinta transferira datos al espacio el usuario. El truco aqu consista en iniciar con cuidado una lectura
de cinta y despus hacer una llamada al sistema que necesitar una estructura de datos del usuario; por ejemplo,
un archivo que leer y su contrasea.
5.3.2

PRINCIPIOS DE DISEO PARA SEGURIDAD

Al disear sistemas se debe asegurar que pueden resistir ataques de estos tipos:
1. Solicitar pginas de memoria, espacio en disco y solo leerlas. Muchos sistemas no las borran antes de
asignarlas y podran contener interesante informacin escrita por el anterior usuario.
2. Intentar llamadas al sistema no vlidas, o bien llamadas vlidas con parmetros no vlidos, o incluso
llamadas vlidas con parmetros vlidos pero no razonables. Muchos sistemas pueden ser confundidos
con facilidad.
3. Iniciar la conexin al sistema y oprimir entonces DEL, RUBOUT o BREAK a la mitad de la secuencia de
acceso. En ciertos sistemas el programa de verificacin de la contrasea quedar eliminado y se
considerar un acceso exitoso.
4. Intentar modificar las complejas estructuras del sistema operativo que est en el espacio del usuario. En
muchos sistemas, para abrir un archivo, el programa construye una enorme estructura de datos, la cual
contiene el nombre del archivo y muchos otros parmetros, lo cual se transfiere al sistema. Al leer o
escribir en un archivo, el sistema puede actualizar a veces la propia estructura. La modificacin de estos
campos puede causar estragos a la seguridad.
5. Engaar al usuario, escribiendo un programa que haga aparecer "login": En la pantalla y que despus
desaparezca. Muchos usuarios irn hacia la Terminal y le indicarn su nombre y su contrasea de acceso,
la cual registrar el programa para su diablica maestro.
6. Buscar manuales que digan "no lleve a cabo X" he intentar tantas variaciones de X como sea posible.
7. Convencer a un programador del sistema para que modifique el sistema, con el fin de evitar ciertas
verificaciones vitales de seguridad para cualquier usuario con su nombre de acceso. Este ataque se conoce
como una trampa (trap door).
5.3.3 VIRUS
Una categora especial de ataque es el virus computacional, el cual se ha convertido en un enorme
problema para muchos usuarios de computadoras. Un virus es un fragmento de programa que se aade a un
programa legtimo con la intencin de infectar a otros. Difiere de un gusano solo en el echo en que un virus est a
cuesta de un programa existente, mientras que un gusano es un programa completo en si mismo.
Un virus tpico funciona de la manera siguiente. En primer lugar, la persona que escribe el virus produce
un nuevo programa til, que ha menudo es un juego para MS-DOS. Este programa contiene el cdigo del virus
oculto en l. El juego se enva a un sistema de boletines pblicos, o bien se le ofrece gratis o a un mdico precio
en discos flexibles. Se anuncia el programa y las personas empiezan a cargarlo y usarlo. La construccin de un
virus no es fcil, por lo que las personal que los realizan son brillantes en general y la calidad del juego o
programa es con frecuencia excelente.

M. en C. Marisol Hernndez Lpez

Al iniciar el programa, este comienza a examinar de inmediato todos los programas en binario del disco
duro, para ver si ya estn infectados. Si encuentra un programa no infectado, lo infecta al aadir el cdigo del
virus al final del archivo y re emplaza la primera instruccin con un salto al virus. Cuando el cdigo del virus
termina su ejecucin, ejecuta las instrucciones que estaban antes en primer lugar y despus salta a la segunda
instruccin. De esta forma, cada vez que se ejecuta un programa infectado, este intenta infectar ms programas.
5.3.4 MECANISMO DE PROTECCION
DOMINIOS DE PROTECCIN
Un sistema de cmputos contiene muchos objetos que necesitan proteccin. Estos objetos pueden ser el
hardware, la CPU, los segmentos de memoria, terminales, unidades de disco o impresoras; o bien ser del
software, como los proceso, archivos, bases de datos o semforos.
Cada objeto tiene un nico nombre mediante el cual se la hace referencia y un conjunto de operaciones
que se pueden realizar en l. READ y WRITE son operaciones adecuadas para un archivo; UP y DOWN tiene
sentido en un semforo. Es evidente que se necesita una va para prohibir el acceso de los procesos a los objetos a
los que no tiene permitido dicho acceso. Adems, este mecanismo debe posibilitar la restriccin de los procesos a
un subconjunto de operaciones legales en caso necesario. Por ejemplo, puede permitirse que el proceso A lea el
archivo F, pero no escriba en l.
LISTAS PARA CONTROL DE ACCESO
En la prctica, rara vez se almacena la matriz puesto que es grande y rala. La mayora de los dominios no
tienen acceso alguno a la mayora de los objetos, por lo que el almacenamiento de una enorme matriz casi vaca
es un desperdicio de espacio en disco. Sin embargo, existen dos mtodos prcticos, que guardan la matriz por
renglones o por columnas, pero slo los elementos no vacos. Los dos puntos de vista son distintos, aunque no lo
parezcan.
La primera tcnica asocia a cada objeto una lista (ordenada) con todos los dominios que pueden tener
acceso al objeto y la forma de dicho acceso. Esta lista se llama Lista de Control de Acceso (ACL). El propietario
de un objeto puede modificar su ACL en cualquier momento, lo que hace fcil prohibir accesos antes permitidos.
El nico problema es que probable que la modificacin de la ACL no afecte a los usuarios que utilicen en ese momento al objeto
(por ej. alguien que tenga abierto el archivo).

MODELOS DE PROTECCIN
Las matrices de proteccin, no son estticas. Estas cambian con frecuencia cuando se crean los objetos, se
destruyen objetos anteriores o bien cuando los propietarios deciden agrandar o restringir el conjunto de usuarios
de sus objetos. Se ha prestado gran atencin al modelado de sistemas de proteccin en los que la matriz de
proteccin cambia de manera constante.
5.4 EJEMPLOS DE SISTEMAS DE ARCHIVOS
Existen diversos sistemas operativos y por consecuencia cada uno con una estructura especifica de su
sistema de archivos, sin embargo lo que si tienen en comn, es el hecho de que el uso de sus sistemas de archivos
es con el objetivo de mantener una estructura ordenada de la informacin y sobre todo el hecho de tener el control
de la misma.
M. en C. Marisol Hernndez Lpez

5.4.1 CP/M
Un sistema CP/M solo tiene un directorio, que contiene entradas de tamao fijo de 32 bytes, el tamao del
directorio, aunque fijo para una implementacin dada, podra ser distinto en otras implementaciones de CP/M.
Todos los archivos del sistema aparecen en este directorio.
Despus de que CP/M arranca, lee el directorio y calcula un mapa de bits que contiene lo bloques de disco
libres, viendo cuales bloques no estn en ningn archivo. Este mapa de bits, que solo ocupa 32 bytes par aun
disco de 180 Kb, se mantiene en memoria durante la ejecucin. En el momento de apagar el sistema el mapa se
desecha, es decir no se escribe en el disco.
5.4.2 MS-DOS
El sistema de archivos de MS-DOS sigue de cerca el patrn del sistema CP/M, incluyendo el uso de
nombres de archivo de 8 + 3 caracteres. La primera versin de MS-DOS hasta la limitada a un solo directorio, sin
embargo a partir de la segunda versin se expandi de manera considerable la funcionalidad del sistema de
archivos. La principal mejora fue la inclusin de un sistema de archivos jerrquico en el que los directorios
podan anidarse hasta una profundidad arbitraria. Esto implicaba que el directorio raz poda contener
subdirectorios y estos contener otros subdirectorios.
5.4.3 WIN 98
La estructura de directorios de Windows 98 tena que ser compatible con MS-DOS, sin embargo utilizaba
los 10 bytes reservados de las entradas. El sistema de archivos representa los nombres de archivos largos de
modo que sean compatibles con MS-DOS. Ahora se puede tener acceso a los archivos con cualquiera de los dos
nombres.
Desde el punto de vista conceptual, la implementacin del sistema de archivos FAT-32 es similar a la del
sistema de archivos FAT-16, sin embargo en lugar de un arreglo de 65,536 entradas, hay tantas entradas como se
necesiten para cubrir la parte del disco que contiene datos.
5.4.4 UNIX V7
UNIX tiene tres tipos de archivos: directorios, archivos ordinarios y archivos especiales. UNIX almacena
los archivos como secuencias de bytes y no les impone estructura alguna. Por lo tanto los archivos de texto son
cadenas de caracteres y los archivos binarios son secuencias de dgitos binarios agrupados en palabras.
El sistema de archivos de UNIX organiza al disco en bloques de 512 bytes cada uno y lo divide en cuatro
regiones: la primera, se reserva para el arranque (direccin 0), la segunda contiene el tamao del disco y las
fronteras con las dems regiones, la tercera, incluye una lista de definiciones de archivo, conocida como lista i
que utiliza una combinacin de nmeros primarios de dispositivo mayores y menores y numero i que singularizan
el archivo y la cuarta regin contiene los bloques libres disponibles para almacenamiento de archivos.

M. en C. Marisol Hernndez Lpez

BIBLIOGRAFIA:
1) A. Tanenbaum
Sistemas Operativos Modernos
Prentice Hall, 5 Edicin
2) W. Stallings
Sistemas Operativos
Pearson-Prentice Hall
5 Edicin
3) I. Flynn, A. Mchoes
Sistemas Operativos
Thomson Learning
3 Edicin
4) Carretero, Garca
Sistemas Operativos: Una visin aplicada
Mc-Graw Hill
6 Edicin
5) Milenkovic
Sistemas Operativos: Conceptos y Diseo
Mc-Graw Hill
2 Edicin

M. en C. Marisol Hernndez Lpez