Академический Документы
Профессиональный Документы
Культура Документы
INGENIERA EN COMPUTACIN
SEXTO SEMESTRE
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
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.
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 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.
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:
no necesitan ayuda significativa del operador, muchos de los sistemas de cmputo grandes son
hbridos.
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.
(4)
(1)
Proc. del
(3) Servicio
Ncleo
Memoria Principal
(1)
(2)
(3)
(4)
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
Funcin
Interprete del lenguaje de rdenes
Sistema de Archivos
Gestin de Memoria (segmentos, pginas)
E/S Bsica
Ncleo (procesos, semforos)
CMS
CMS
CMS
Salto aqu
VM/370
Hardware desnudo de la 370
Estructura del VM\370 con CMS
Servidor de
Procesos
Servidor de
Terminales ..
Microkernel
Servidor de
Archivos
Servidor de
Memoria
Modo de Usuario
Modo de kernel
El modelo Cliente-Servidor
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:
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.
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:
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
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.
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
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
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.
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
UnmapViewOfFile
OpenFileMapping
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.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:
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.
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.
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
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.
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.
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.
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
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.
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.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.
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);
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.
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.
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
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.
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.
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