Documente Academic
Documente Profesional
Documente Cultură
Alumno:
Grupo:
6CV2
Profesor:
Téllez
ÍNDICE:
Pág.
UNIDAD 3:
3.1 Introducción 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.4 Bloque de control de procesos.
3.1.5 Niveles de planificación.
3.1.6 Políticas de planificación.
3.1.7 Información de un proceso: estado del procesador, imagen de memoria del proceso, tabla
del sistema operativo.
3.2 Despacho de procesos.
3.2.1 Algoritmos de planificación de procesos.
3.2.2 Prioridades.
3.3 Concurrencia.
3.3.1 Multitareas.
3.3.2 Multiprocesos.
Comunicación entre procesos.
Subprocesos
Modelo de subprocesos.
Secciones críticas.
Exclusión mutua con espera ocupada.
Bloqueo y desbloqueo (Sleep y Wakeup)
Semáforos.
Binarios
De Conteo
Monitores.
Transmisión de mensajes.
Problemas de comunicación entre procesos.
Los cinco filósofos comensales.
Lectores y escritores.
Servicios POSIX para la gestión de procesos.
Servicos WIN32 para la gestión de procesos.
UNIDAD 4:
Dispositivos E/S.
Interrupción del CPU
Definición y manejo de interrupciones.
E/S programada
E/S controlada por interrupciones.
Clasificación.
Manejador de interrupciones.
Vector de interrupciones.
Canales de entrada / salida.
Tipos de canales.
Interfaces.
Controladores.
Memorias transitorias (Buffers).
Tipos de memoria transitorias.
Manejo de memorias transitorias.
Implementación
Terminales de red
Interfaces graficas de usuario.
Servicios de E/S: genéricos, para POSIX y WIN32
UNIDAD 5:
Manejo de archivos y directorios.
Aspectos básicos de los archivos.
Directorios.
Sistemas de archivos.
Manejo del espacio en disco.
Almacenamiento de archivos.
Estructura de directorios.
Archivos compartidos.
Rendimiento del sistema de archivos.
Seguridad.
Fallas de seguridad.
Principios de diseño para seguridad.
Virus.
Mecanismo de protección.
Ejemplos de sistemas de archivos
CP/M
Ms-DOS
Win 98
Unix V7
Unidad 3: Administración del procesador.
Se muestran cuatro procesos, cada uno con su propio flujo de control (es decir, su propio contador
lógico de programa) y ejecutándose de
manera independiente.
Se muestra que si se observa durante suficiente tiempo, todos los procesos han avanzado, pero
P
R
A ____ ____
O
B ____ ____
C
E C ____ ____
S
O D ____ ____
S
El estado de un proceso define su actividad actual. Durante su existencia, un proceso pasa por una
serie de estados discretos. Estos estados son se muestran en el siguiente diagrama:
Estado Descripción
Se dice que un proceso está en estado de nuevo cuando apenas se encuentra en
Nuevo
proceso de crearse.
Listo Un proceso está en estado de listo, cuando podría usar una UCP, si hubiera una
disponible.
Se dice que un proceso está estado de ejecución, si en ese momento tiene esta
En ejecución
ocupando la CPU.
Se dice que un proceso está en estado de bloqueado, si espera que ocurra algo, como
Bloqueado
por ejemplo, la terminación de una E/S, para así poder ponerse en marcha.
Terminado Cuando un proceso se ha completado su ejecución pasa a ser un proceso terminado.
La información de la lista anterior se almacena en una estructura de datos, que se suele llamar
bloque de control de proceso
Cuando un sistema informático tiene más de un único procesador, aparecen varios elementos
nuevos en el diseño de la tarea de planificación. Se va a comenzar con una breve introducción a los
multiprocesadores y, después, se estudiarán las distintas consideraciones a tener en cuenta para
llevar a cabo la planificación en el nivel de los procesos o en el nivel de los hilos.
· Decide qué procesos serán los siguientes en ser iniciados. Este tipo de planificación era el
más frecuente en los sistemas de lotes (principalmente aquellos con spool) y multiprogramados en
lotes; las decisiones eran tomadas principalmente considerando los requisitos pre-declarados de los
procesos y los que el sistema tenía libres al terminar algún otro proceso. La planificación a largo
plazo puede llevarse a cabo con periodicidad de una vez cada varios segundos, minutos e inclusive
horas.
· En los sistemas de uso interactivo, casi la totalidad de los que se usan hoy en día, este tipo de
planificación no se efectúa, dado que es típicamente el usuario quien indica expresamente qué
procesos iniciar.
· Decide cómo compartir momento a momento al equipo entre todos los procesos que
requieren de sus recursos, especialmente el procesador. La planificación a corto plazo se lleva a
cabo decenas de veces por segundo (razón por la cual debe ser código muy simple, eficiente y
rápido); es el encargado de planificar los procesos que están listos para ejecución.
Para describir una política de planificación hay que considerar los siguientes aspectos:
Cómo se selecciona el proceso que entrará a ejecución. De entre los procesos que están en
estado preparado, se elige uno de acuerdo a criterios como, por ejemplo, Sistemas
Operativos II Planificación de procesos y procesadores 62 prioridades, tiempo que lleva en
la cola de preparados, tasa de CPU que le ha correspondido.
Cuándo se lleva a cabo la planificación. Este aspecto afecta fundamentalmente a la
planificación a corto plazo. Hay dos alternativas básicas: si únicamente se planifica cuando
un proceso abandona la CPU porque acaba o se bloquea (políticas no expulsoras), o si se
puede forzar al proceso que está usando la CPU a abandonarla para planificar otro proceso
(políticas expulsoras).
La existencia o no de más de una política de planificación, ajustadas a los diferentes tipos
de procesos, y cómo se combinan. En los sistemas de propósito general coexisten procesos
de tipos diferentes que pueden requerir políticas específicas, por lo que se suelen definir
varias políticas particulares, cada una adecuada a un tipo de procesos, y una política global
aplicable al conjunto de tipos de procesos (planificación multinivel).
Además, en multiprocesadores, en qué procesador se ejecuta el proceso.
3.1.7 Información de un proceso: estado del procesador, imagen de memoria del proceso, tabla del
sistema operativo.
Round Robin
A cada proceso se le asigna un tiempo determinado para su ejecución, el mismo tiempo para todos.
En caso de que un proceso no pueda ser ejecutado completamente en ese tiempo se continuará su
ejecución después de que todos los procesos restantes sean ejecutados durante el tiempo
establecido. Este es un algoritmo basado en FCFS que trata la cola de procesos que se encuentran
en estado de listos como una cola circular.
Planificación garantizada
Para realizar esta planificación el sistema tiene en cuenta el número de usuarios que deben ser
atendidos. Para un número "n" de usuarios se asignará a cada uno un tiempo de ejecución igual a
1/n.
En este algoritmo a cada proceso se le asocia un numero entero de prioridad. Mientras menor sea
este entero pues mayor prioridad tiene el proceso, por lo que la escencia del algoritmo es planificar
la entrada de procesos a la CPU de acuerdo a la prioridad asociada de cada uno de ellos.
Un caso particular del algoritmo por prioridad es el SJF, donde el valor del proximo ciclo de CPU
representa la prioridad. El algoritmo por prioridad corrige algunas deficiencias del SJF,
particularmente el retraso excesivo de procesos largos y el favoritismo por procesos cortos.
Existe una disciplina de planificacion no apropiativa en la cual la prioridad de cada proceso no solo
se calcula en funcion del tiempo de servicio (tiempo en la CPU) sino tambien del tiempo que ha
esperado para ser atendido.
Con esta formula notamos que como el tiempo de servicio esta en el denominador los procesos
cortos tendran preferencia, y como tambien el tiempo de espera aparece en el numerador los
procesos largos que tambien han esperado, tendran una prioridad favorable.
En el siguiente ejemplo se tienen 4 procesos (P1, P2,P3 y P4). La tabla muesta los tiempos de
ejecucion de cada uno y su prioridad.
(TE)
P1 3 10
P2 1 1
P3 3 2
P4 2 5
En el ejemplo se muestra la cola organizada para una mayor comprensión del algoritmo, pero en
realidad dicha cola se encuentra desorganizada. De acuerdo a este criterio los procesos entraron a la
CPU y no la cederan hasta no haber terminado, ya que es un algoritmo sin desalojo.
3.3 Concurrencia.
• Estructura del sistema operativo: Las mismas ventajas de estructuración son aplicables a los
programadores de sistemas y se ha comprobado que algunos sistemas operativos están
implementados como un conjunto de procesos.
3.3.1Multitareas.
Multiprogramación con un único procesador. El sistema operativo se encarga de ir repartiendo el
tiempo del procesador entre los distintos procesos, intercalando la ejecución de los mismos para dar
así una apariencia de ejecución simultánea.
Multicomputadora. Es una maquina de memoria distribuida, que está formada por una serie de
computadoras. En este tipo de arquitecturas también es posible la ejecución simultánea de los
procesos sobre los diferentes procesadores.
En general, la concurrencia será aparente siempre que el número de procesos sea mayor que el de
procesadores disponibles, es decir, cuando haya más de un proceso por procesador. La
concurrencia será real cuando haya un proceso por procesador. Aunque puede parecer que la
intercalación y la superposición de la ejecución de procesos presentan formas de ejecución
distintas, se verá que ambas pueden contemplase como ejemplos de procesos concurrentes.
3.3.2Multiprocesos.
1. El sistema operativo debe ser capaz de seguir la pista de los distintos procesos activos. Esto lo
hace por medio de PBC’s (Bloque de Control de Procesos)
2. El sistema operativo debe asignar y quitar los distintos recursos a cada proceso activo. Entre
estos recursos se incluyen:
3. El sistema operativo debe proteger los datos y los recursos físicos de cada proceso contra
injerencias no intencionadas de otros procesos.
4. Los resultados de un proceso deben ser independientes de la velocidad relativa a la que se
realiza la ejecución con respecto a otros procesos concurrentes
a. síncrona: los dos procesos han de ejecutar servicios de forma simultánea. El emisor ha de
ejecutar el servicio enviar mientras el receptor ejecuta recibir.
3.4.1 Subprocesos
El concepto de proceso engloba dos conceptos separados y potencialmente independientes: uno
relativo a la propiedad de recursos y otro que hace referencia a la ejecución.
Unidad que posee recursos: A un proceso se le asigna un espacio de memoria y, de tanto en tanto,
se le puede asignar otros recursos como dispositivos de E/S o ficheros.
Unidad a la que se le asigna el procesador: Un proceso es un flujo de ejecución (una traza) a través
de uno o más programas. Esta ejecución se entremezcla con la de otros procesos. De tal forma, que
un proceso tiene un estado (en ejecución, listo, etc) y una prioridad de expedición u origen. La
unidad planificada y expedida por el sistema operativo es el proceso.
Dentro de un proceso puede haber uno o más hilos de control cada uno con:
CARACTERISTICAS
Se comparten recursos. La compartición de la memoria permite a las hebras pares comunicarse sin
usar ningún mecanismo de comunicación inter-proceso del SO.
La conmutación de contexto es más rápida gracias al extenso compartir de recursos
No hay protección entre las hebras. Una hebra puede escribir en la pila de otra hebra del mismo
proceso
Estado de los procesos ligeros
3.4.2
El modelo de proceso descrito hasta ahora se basa en dos conceptos independientes: agrupamiento
de recursos y ejecución. A veces es útil separarlos, y es aquí donde entran los subprocesos. Un
proceso se puede considerar como una forma de agrupar recursos relacionados. El modelo de
subprocesos Un proceso tiene un espacio de direcciones que contiene lo datos y
el texto del programa, así como otros recursos, que podrían incluir archivos abiertos, procesos
hijos, alarmas pendientes, etc. Al juntar todas estas cosas en forma de un proceso se les puede
administrar con más facilidad. Éste tiene un contador de programa que indica cuál instrucción se
ejecutará a continuación, tiene registros, que contienen sus variables de trabajoactuales, y tiene una
pila, que contiene el historial de ejecución. Los procesos sirven para agrupar recursos; los
subprocesos son las entidades que se calendarizan para ejecutarse en la CPU. los subprocesos
comparten un espacio de direcciones, archivos abiertos y otros recursos El termino múltiples
procesos se emplea para describir la situación en la que se permite varios subprocesos en el mismo
proceso.
Ima
Cuando un proceso con múltiples subprocesos se ejecuta en un sistema con una sola CPU, los
subprocesos se turnan para ejecutarse Además de compartir el mismo espacio de direcciones, todos
los subprocesos comparten el mismo conjunto de archivos abiertos, procesos hijos, alarmas,
señales, etc.
Tabla
Un subproceso puede estar en uno de varios estados: en ejecución, bloqueado, listo o terminado.
Los puntos de entrada de un recurso indican la cantidad de procesos que pueden utilizar
simultáneamente al mismo. Si un recurso tiene sólo un punto de entrada, se lo denomina recurso
crítico o recurso no compartible.
Región crítica de un proceso es la fase o etapa en la vida de ese proceso concurrente en la cual
accede a un recurso crítico para modificarlo o alterarlo. El uso adecuado de la concurrencia entre
procesos exige la capacidad de definir secciones críticas y hacer cumplir la exclusión mutua.
Cualquier servicio o capacidad que dé soporte para la exclusión mutua debe cumplir con un
protocolo de sincronización, que tiene los requisitos siguientes:
1. Debe cumplirse la exclusión mutua: sólo un proceso de entre todos los que poseen secciones
críticas por el mismo recurso u objeto compartido, debe tener permiso para entrar en ella en un
instante dado.
2. Un proceso que se interrumpe en una sección no crítica debe hacerlo sin estorbar a los otros. Es
decir que si se cuelga un proceso que está usando un recurso, los demás procesos que esperan
deben poder acceder al recurso de todas formas (el S.O. mata al proceso que se colgó y así libera al
recurso).
4. Cuando ningún proceso está en su sección crítica, cualquier proceso que solicite entrar en la suya
debe poder hacerlo sin dilatación. Es decir, si nadie está usando un cierto recurso, entonces se le
otorga al primer proceso que lo solicite.
6. Un proceso permanece en su sección crítica sólo por un tiempo finito. Esto sirve para evitar que
un proceso se quede con un recurso por mucho tiempo y para que un recurso no se quede trabado
sin sentido
Deshabilitando interrupciones
En un sistema con un solo procesador, la solución más simple es hacer que cada proceso
deshabilite todas las interrupciones justo después de entrar a su región crítica y las rehabilite justo
después de salir. Con las interrupciones deshabilitadas, no pueden ocurrir interrupciones de reloj.
Después de todo, la CPU sólo se conmuta de un proceso a otro como resultado de una interrupción
del reloj o de otro tipo, y con las interrupciones desactivadas la CPU no se conmutará a otro
proceso. Por ende, una vez que un proceso ha deshabilitado las interrupciones, puede examinar y
actualizar la memoria compartida sin temor de que algún otro proceso intervenga.
Por lo general este método es poco atractivo, ya que no es conveniente dar a los procesos de
usuario el poder para desactivar las interrupciones. Suponga que uno de ellos lo hiciera y nunca las
volviera a activar. Ése podría ser el fin del sistema; aún más: si el sistema es un multiprocesador
(con dos o posiblemente más CPUs), al deshabilitar las interrupciones sólo se ve afectada la CPU
que ejecutó la instrucción disable. Las demás continuarán ejecutándose y pueden acceder a la
memoria compartida.
Por otro lado, con frecuencia es conveniente para el mismo kernel deshabilitar las interrupciones
por unas cuantas instrucciones mientras actualiza variables o listas. Por ejemplo, si ocurriera una
interrupción mientras la lista de procesos se encuentra en un estado inconsistente, podrían
producirse condiciones de carrera. La conclusión es que a menudo deshabilitar interrupciones es
una técnica útil dentro del mismo sistema operativo, pero no es apropiada como mecanismo de
exclusión mutua general para los procesos de usuario.
La posibilidad de lograr la exclusión mutua al deshabilitar las interrupciones (incluso dentro del
kernel) está disminuyendo día con día debido al creciente número de chips multinúcleo que se
encuentran hasta en las PCs de bajo rendimiento. Ya es común que haya dos núcleos, las máquinas
actuales de alto rendimiento tienen cuatro y dentro de poco habrá ocho o 16. En un multinúcleo (es
decir, sistema con multiprocesadores) al deshabilitar las interrupciones de una CPU no se evita que
las demás CPUs interfieran con las operaciones que la primera CPU está realizando. En
consecuencia, se requieren esquemas más sofisticados.
3.4.5Sleep y wake up
Una de las más simples primitivas de comunicación entre procesos son sleep (dormir) y wakeup
(despertar). Sleep es una llamada al sistema que hace que el proceso que llama se bloquee o
desactive, es decir, que se suspenda hasta que otro proceso lo despierte. La llamada wakeup tiene
un parámetro, el proceso que se va a despertar o activar. De manera alternativa, tanto sleep como
wakeup tienen un parámetro, una dirección de memoria que se utiliza para asociar las llamadas a
sleep con las llamadas a wakeup.
3.4.6 semáforos
Un semáforo es una variable especial (o tipo abstracto de datos) que constituye el método clásico
para restringir o permitir el acceso a recursos compartidos (por ejemplo, un recurso de
almacenamiento del sistema o variables del código fuente)
Los semáforos se emplean para permitir el acceso a diferentes partes de programas (llamados
secciones críticas) donde se manipulan variables o recursos que deben ser accedidos de forma
especial. Según el valor con que son inicializados se permiten a más o menos procesos utilizar el
recurso de forma simultánea.
3.4.6.1 semáforos binarios
Un tipo simple de semáforo es el binario, que puede tomar solamente los valores 0 y 1. Se
inicializan en 1 y son usados cuando sólo un proceso puede acceder a un recurso a la vez. Son
esencialmente lo mismo que los mutex. Cuando el recurso está disponible, un proceso accede y
decrementa el valor del semáforo con la operación P. El valor queda entonces en 0, lo que hace que
si otro proceso intenta decrementarlo tenga que esperar. Cuando el proceso que decrementó el
semáforo realiza una operación V, algún proceso que estaba esperando comienza a utilizar el
recurso.
Para hacer que dos procesos se ejecuten en una secuencia predeterminada puede usarse un
semáforo inicializado en 0. El proceso que debe ejecutar primero en la secuencia realiza la
operación V sobre el semáforo antes del código que debe ser ejecutado después del otro proceso.
Éste ejecuta la operación P. Si el segundo proceso en la secuencia es programado para ejecutar
antes que el otro, al hacer P dormirá hasta que el primer proceso de la secuencia pase por su
operación V. Este modo de uso se denomina señalación (signaling), y se usa para que un proceso o
hilo de ejecución le haga saber a otro que algo ha sucedido.
El otro uso de los semáforos es para la sincronización. Los semáforos vacíos y llenos se necesitan
para garantizar que ciertas secuencias de eventos ocurran o no. En este caso, aseguran que el
productor deje de ejecutarse cuando el búfer esté lleno y que el consumidor deje de ejecutarse
cuando el búfer esté vacío. Este uso es distinto de la exclusión mutua.
3.4.6.2_____________
3.4.7 Monitores
Un monitor es un mecanismo de software para control de concurrencia que contiene los datos y
los procedimientos necesarios para realizar la asignación de un determinado recurso o grupo
de recursos compartidos reutilizables en serie.
Tipos De Monitores
Monitor tipo monitor
Este monitor fue implementado en Pascal Concurrente, lenguaje desarrollado por Per Brinch
Hansen. Es el monitor más simple de todos pues solo tiene tres estados y las funciones internas son
muy sencillas. Una característica distintiva de este monitor es que el proceso que reinicia a otros
debe salir del monitor, es decir abandona el estado activo. El diagrama de estados de este monitor
esta dado en la siguiente figura.
Este monitor es muy similar al monitor tipo monitor, la diferencia esencial es que un proceso que
es reiniciado debe abandonar el monitor, es decir no se le permite que entre al estado activo. El
diagrama de estados de este monitor se presenta en la figura.
Monitor tipo mediador
Este monitor fue propuesto por C.A.R. Hoare, tiene la característica de compensar las desventajas
de los monitores tipo monitor y tipo managEer. Un proceso que reinicia a otros puede permanecer
dentro del monitor y un proceso reiniciado también puede permanecer dentro del monitor, El
diagrama de estados de este monitor se da en la figura.
Este monitor propuesto por Cavers y Brown tiene la característica fundamental de solo tener un
punto de consistencia interno (un punto de consistencia interno ocurre cuando el proceso que está
activo abandona este estado y sigue dentro del monitor). El diagrama de estados de este monitor se
da en la figura.
3.4.8 Transmicion de mensajes
Este método de comunicación entre procesos utiliza dos primitivas (send y receive) que, al igual
que los semáforos y a diferencia de los monitores, son llamadas al sistema en vez de construcciones
del lenguaje. Como tales, se pueden colocar con facilidad en procedimientos de biblioteca.
Este método de comunicación entre procesos utiliza dos primitivas (send y receive) que, al igual
que los semáforos y a diferencia de los monitores, son llamadas al sistema en vez de construcciones
del lenguaje.
IDENTIFICACION DE PROCESOS
Identifica cada proceso por medio de un entero único denominado identificador de procesos de tipo
pid_ti . Los servicios relativos a la identificación de los procesos son los siguientes:
Este servicio devuelve el identificador del proceso que realiza la llamada. Su prototipo en lenguaje
C es el siguiente: p id_t getpid (void);
Este servicio devuelve el identificador de usuario real del proceso que realiza la llamada. Su
prototipo es: u id _t getuid ( void );
Este servicio permite obtener el identificador de grupo real. El prototipo que se utiliza para invocar
este servicio es el siguiente: g id_t getgid (void);
Legibles para el usuario: Se encarga de la comunicación del usuario con el computador, se puede tomar cómo ejemplo:
impresoras, teclado, y el mouse.
Legibles para la maquina: Estos únicamente utilizados para la comunicación con el equipo electrónico cómo: Unidades
de disco duro y cintas, sensores, los controladores y los activadores.
Comunicación: únicamente utilizados para la comunicación con los dispositivos remotos cómo: línea digital y los
módems.
Estos dispositivos cómo en todo tienen sus pros y sus contras cómo:
El modulo de E/S tiene su propia unidad de memoria y es un computador por derecho propio, gracias a esto se puede
controlar un conjunto de dispositivos de E/S, con una intervención pequeña del procesador.
El problema con las E/S programadas es que la CPU tiene que esperar un tiempo considerable antes de que el módulo
de E/S en cuestión esté listo para recibir o enviar los datos. La CPU debe verificar continuamente el estado del módulo
de E/S. El rendimiento del sistema disminuye.
Una alternativa es que la CPU continúa haciendo un trabajo útil después de enviar un comando de E/S. El módulo de
E/S interrumpe la CPU para solicitar su servicio cuando está listo para intercambiar datos. La CPU realiza la
transferencia de datos y luego continúa el preprocesamiento.
E/S síncrona: cuando finaliza la operación de E/S, el control vuelve al proceso que lo generó. La espera de E/S se
realiza mediante una instrucción de espera que pone la CPU en suspensión hasta que se produce otra interrupción.
Las máquinas que no tienen esta instrucción usan un bucle. Este bucle continúa hasta que se produce una interrupción
durante la cual el control se transfiere a otra parte del sistema operativo. Solo se procesa una solicitud de E/S a la vez.
El sistema operativo sabe exactamente qué dispositivo está interrumpiendo. Esta alternativa impide el procesamiento
simultáneo de E/S.
E/S asíncrona: vuelve al programa de usuario sin esperar a que se complete la operación de E/S. Se requiere una
llamada al sistema para que el usuario pueda esperar a que se complete la E/S (si es necesario). También es necesario
realizar un seguimiento de los diversos requisitos de E / S. Para este fin, el sistema operativo utiliza una tabla que
contiene una entrada para cada dispositivo de E/S (tabla de estado del dispositivo).
La ventaja de este tipo de E/S es la mayor eficiencia del sistema. Durante las E/S, la CPU se puede usar para procesar o
programar otras E/S. Debido a que la E/S puede ser muy lenta en comparación con la velocidad de la CPU, el sistema
hace un mejor uso de las funciones.
La E/S le indica a la CPU cuando está preparada para transferir datos (genera una interrupción a la CPU), activando
una línea especial conectada a la CPU (línea de interrupción).
Interrupciones HARDWARE
INTERNAS (producidas por la CPU)
EXTERNAS (producidas por los dispositivos de E/S)
Vectorizadas
No vectorizadas
Interrupciones SOFTWARE (producidas por la ejecución de instrucciones
de la CPU).
Según MODO DE CONOCER el VECTOR DE INTERRUPCIÓN (la dirección donde se encuentra la rutina de
servicio de la interrupción):
El procesador envía una “orden” de E/S, a petición de un proceso, a un módulo de E/S, a este proceso realiza una
espera hasta que se complete la operación antes de seguir.
Los datos se intercambian entre la CPU y el módulo de E/S. La CPU ejecuta un programa que controla directamente el
proceso de E/S, lo que incluye verificar el estado del dispositivo, enviar el comando de lectura o escribir y transferir
datos. Cuando la CPU envía el comando, debe esperar el final de la E/S. Si la CPU es más rápida, está inactiva. La
CPU es responsable de verificar periódicamente el estado del módulo de E/S hasta que determina que el proceso se ha
completado.
El dispositivo de E/S no tiene acceso directo a la memoria. La transferencia de un dispositivo de E/S a la memoria
obliga a la CPU a ejecutar múltiples instrucciones, incluida una instrucción de entrada
La E/S interrumpida es más eficiente que la E/S programada, pero también requiere la intervención de la CPU para
transferir datos entre la memoria y el módulo de E/S.
Toma el siguiente ejemplo. Cuando un terminal debe leer una línea, el primer carácter ingresado se envía a la
computadora. Cuando el controlador recibe el carácter, la CPU lo interrumpe. La CPU sirve la interrupción y luego
continúa el proceso ejecutado. Esto es posible si el dispositivo es muy lento en comparación con la CPU.
La CPU trata mucho entre un personaje y otro. Pero, ¿qué sucede cuando trabajamos con dispositivos de E/S más
rápidos? Seríamos interrumpidos muy a menudo y perdería mucho tiempo.
DMA se utiliza para dispositivos de E / S de alta velocidad. El controlador del dispositivo transfiere un bloque de datos
desde o para sus memorias intermedias directamente a la memoria sin la intervención de la CPU. Solo se produce una
interrupción por bloque en lugar de tener una interrupción por cada byte (o palabra).
Por ejemplo, un programa solicita la transmisión de datos. El sistema operativo busca un búfer disponible.
Los registros de datos del controlador DMA se actualizan con las direcciones de origen y destino y la duración de la
transferencia.
Esta actualización generalmente la lleva a cabo el administrador de dispositivos (rutina). El controlador DMA se
señaliza mediante bits de control en un registro de control para iniciar la operación de E/S. Mientras tanto, la CPU
puede realizar otras operaciones. El controlador DMA interrumpe el procesador cuando se completa la transferencia.
La CPU solo interviene al inicio y al final de la transferencia.
2) La transferencia de datos programada con baja E / S se lleva a cabo entre la CPU y un dispositivo, que transfiere
datos a través del canal de memoria dentro y fuera de la unidad de memoria. Los ciclos de memoria de solicitud de
DMA otorgan la solicitud, DMA transfiere datos directamente a la memoria. El procesador retrasa su proceso de
acceso a la memoria solo para la transferencia directa.
TEMA 4.1.5 CLASIFICACIÓN
Los datos tienen que leerse en una zona de datos del espacio de direcciones del proceso de usuario que corresponde con
las direcciones mandadas en el espacio de direcciones del proceso de usuario que corresponde con las direcciones
virtuales desde la 1000 hasta 1511. La forma más sencilla de enviar una “orden” de E/S a la unidad de cinta y, a
continuación, esperar a que los datos sean enviados.
El uso de estos es una técnica que amortigua la demanda de E/S, sin en cambio, aunque muchos buffers se utilicen, esto
no permitirán a un dispositivo E/S, mantener el ritmo de un proceso indefinido cuándo la demanda media del proceso
sea mayor que la que puede servir el dispositivo de E/S.
Incluso con múltiples buffers, todos los buffers acabarán llenándose y el proceso tendrá que esperar después de
procesar cada fragmento de datos.
En algunos sistemas de archivos los nombres de archivos son estructurados, con sintaxis
especiales para extensiones de archivos y números de versión. En otros, los nombres de
archivos son simplemente cadenas de texto y los metadatos de cada archivo son
alojados separadamente.
Nombre
Información en un formato visible.
•Fecha, hora e identificación del usuario Sirve para la monitorización del uso de dicho archivo.
5.1.2Directorios.
Directorio: Objeto que relaciona de forma unívoca un nombre de usuario de fichero con su descriptor
interno. • Organizan y proporcionan información sobre la estructuración de los sistemas de ficheros. • Un
directorio Bene entrada por cada fichero que alberga. • Información de la entrada: – Descriptor interno del
fichero. – Posiblemente, algunos atributos del fichero.
La diferencia de la Memoria Principal de la Memoria Secundaria , auxiliar, masiva, externa no es tan veloz
pero tiene gran capacidad para almacenar información en dispositivos tales como discos, cintas magnéticas,
discos ópticos. Frecuentemente los datos y programas se graban en la Memoria Secundaria, de esta forma,
cuando se ejecuta varias veces un programa o se utilicen repetidamente unos datos, no es necesario darlos
de nuevo a través del dispositivo de entrada.
•En la Memoria Secundaria un archivo consta de un conjunto de bloques (correspondiente a la cantidad de información que se
transfiere físicamente en cada operación de acceso (lectura o escritura).
•El Sistema Operativo o Sistema de Gestión de Archivos es el encargado de la asignación de bloques a archivos, de lo que
surgen dos cuestiones, en primer lugar, debe asignarle el espacio de Memoria Secundaria a los archivos y, en segundo
lugar, es necesario guardar constancia del espacio disponible para asignar.
El sistema de archivos se ocupa primordialmente de administrar el espacio de almacenamiento secundario, sobre todo
el espacio en disco.
5.2.2Almacenamiento de archivos.
El problema es que, al igual que con su archivador, el cajón virtual solo puede
abrirse hasta un punto. Los sistemas de almacenamiento basado en archivos
deben ampliarse agregando más sistemas, en lugar de ampliarse agregando
más capacidad.
5.2.3Estructura de directorios.
La información en un disco ha de estar ordenada. Y ese órden no es el mismo en todos los sistemas
operativos.
Comunmente se habla de estructura de directorios, o árbol de carpetas, etc, para definir el ordenamiento de
las carpetas bajo un determinado sistema. Veremos en esta sección algunos ejemplos, y cómo podemos sacar
ventaja de esto.
Ordenando el disco
Todos los discos (internos o extraíbles) tienen que tener un formato en el cual guardar los datos. Pero aunque
un disco esté listo para guardar información, necesitamos organizarlo. Una manera apropiada de hacerlo es
creando carpetas. Las carpetas nos permiten organizar la información según algún criterio: nombre del
propietario, tipos de documentos, etc.
Cuando instalamos un sistema operativo en nuestra computadora, éste crea un conjunto determinado de
carpetas para que su funcionamiento también sea adecuado. De esa manera, habrá un mejor control en el
momento de trabajar con programas y archivos.
Definición de carpetas.
Una carpeta es una división lógica en un medio de almacenamiento. Anteriormente se usaba el término
DIRECTORIO para referirnos a estas divisiones, pero con la aparición de sistemas operativos con interfaz
gráfica, el término fue modificándose, al comenzar a trabajar con objetos.
Una carpeta no ocupa espacio en el disco por sí misma, son los archivos que contenga lo que dictará su
tamaño. Aun así, para la creación de cada carpeta, el sistema operativo tiene que registrar sus datos, por lo
que en un sentido más real, algo de espacio (casi imperceptible) se emplea para el registro de las carpetas.
Una carpeta puede presentar tres posibilidades: 1- Contener archivos, 2- Contener más carpetas o, 3- Estar
vacía.
Estructura de carpetas (Árbol de directorios)
Como dijimos, todos los sistemas operativos organizan documentos y programas (y sus dependencias) en
carpetas. Pero cada uno de ellos lo hace de manera diferente. Podemos analizar la estructura de las carpetas
como si de un árbol se tratara. Observando detenidamente, veremos que la representación de las carpetas en
el disco duro, se parece a la de un árbol genealógico.
En Windows se usa el símbolo \ para representar carpetas o directorios. Cuando en una ventana vemos una
La estructura de carpetas básica de Windows es la que se muestra en la siguiente imágen, donde el Escritorio
es la raíz del sistema. ¿Identificas los 4 elementos principales o ramas que se desprenden del escritorio?
En cierta forma, las ramas principales en un sistema de archivos Windows es fácil de visualizar y abarcar.
Otros sistemas son un poco más complejos. A modo de ejemplo, la siguiente imágen muestra las ramas
principales de un sistema Linux:
Además de ser más extendido, en este caso la raíz no es el escritorio, ya que este no es parte esencial del
sistema. El escritorio se encuentra (de haberlo) en una carpeta dentro del directorio Home, en la carpeta de
cada usuario.
Cuando usamos ventanas al navegar por las carpetas, podemos usar los botones de navegación para
desplazarnos hacia atrás y adelante dentro del árbol de directorio, o también subir de nivel. De hecho, cuando
navegamos por el sistema, estamos navegando por el árbol de directorios. El nivel más alto que podemos
alcanzar cuando usamos el botón marcado en verde en la siguiente ilustración, es el escritorio. No podemos
encontrar un nivel superior en sistemas Windows.
5.2.4Archivos compartidos.
REPORT THIS AD
REPORT THIS AD
_
5.3Seguridad.
Para comprender los diferentes peligros existentes a nivel de seguridad, es necesario comenzar por la
definición de los requisitos de seguridad. La seguridad de los sistemas informáticos y de la red va di-
rigida a cuatro requisitos básicos:
5.3.1Fallas de seguridad.
Los tipos de ataques contra la seguridad del sistema o de la red se clasifican mejor considerando las
funciones de un sistema informático como si se tratase de un proveedor de información. En general,
existe un flujo de información desde una fuente, pudiéndose tratar de un fichero o una región de me-
moria, a un destino, que puede ser otro fichero o puede ser el mismo usuario. Ese flujo virtual se
muestra en la Figura 16.2a. El resto de elementos de la figura muestran las siguientes cuatro catego-
rías generales de ataques:
Se debe controlar el
1 2 Los datos se
acceso a los datos
deben transmitir
de forma segura
(protección) por la red
(seguridad de red)
Fuente de la Destino de
la
información
información
(a) Flujo normal
(b) Interrupción (c) Intercepción
· Compartición mínima
· Diseño por capas: Varios niveles, donde los niveles interiores son los de
más confianza
Los virus biológicos son pequeños fragmentos de código genético —ADN o ARN
— que pueden tomar la maquinaria de una célula viva y modificarla para realizar
miles de réplicas del virus original. Como su análogo biológico, un virus informático
contiene un código de instrucciones que se encarga de realizar copias de sí
mismo. Infectado un ordenador, un virus típico toma control del disco del sis- tema
operativo del ordenador. Posteriormente, en el momento en que el ordenador
infectado se pone en contacto con otro software éste quedará infectado, una
nueva copia del virus pasa a este programa. De esta forma, la infección se puede
expandir de ordenador en ordenador sin que los usuarios se per- caten, bien por
medio del intercambio de discos o enviándose programas de uno a otro a través
de la red. En un entorno de red, la posibilidad de acceder a aplicaciones y
servicios de sistema de otro or- denador proporciona una infraestructura perfecta
para la dispersión de los virus.
Un virus puede realizar lo mismo que cualquier otro programa. La única diferencia
es que se inserta él mismo dentro de otro programa y se ejecuta secretamente
cuando el programa anfitrión se va a eje- cutar. Una vez que el virus está en
ejecución, puede realizar cualquier función que esté permitida con los privilegios
del usuario en cuestión, tal como borrar ficheros y programas.
Durante su tiempo de vida, un virus típico pasa por las siguientes cuatro etapas:
TIPOS DE VIRUS
Ha habido una continua carrera entre los diseñadores de virus y los diseñadores
de software antivirus desde que los virus aparecieron por primera vez. A medida
que se iban desarrollando medidas contra los tipos de virus existentes, se iban
desarrollando nuevos virus. [STEP93] sugiere las siguientes cate- gorías entre las
más significativas de los tipos de virus:
• Virus polimórfico. Un virus que muta con cada infección, haciendo que la
detección por me- dio de la «firma» del virus sea imposible.
5.3.4Mecanismo de protección.
Después de tener claro que quiere decir cada tema surgen numerosas ideas en
nuestras mentes, ya que la seguridad es algo que manejamos en todos los
aspectos de nuestras vidas, y por experiencia se sabe que no depende de un solo
actor ( persona, computador , … ) si no que esta fuertemente ligada con todo lo
que lo rodea, por esto la seguridad no solo es manejada por el sistema operativo
si no que es necesario un refuerzo como otro software que
comúnmente denominamos “antivirus”. Un SO como administrador de los recursos
cumple funciones muy importantes en la instrumentación de la seguridad pero no
engloba todos los aspectos de esta, la cual se fortalece según las necesidades y
los usos ( es decir que según la necesidades y enfoques que dan los usuarios a
los equipos estos cuentan con diferentes tipos de seguridad ). En la actualidad los
conceptos e ideas tenidos sobre la seguridad han ido cambiando mucho, esto por
que se entro a un era donde es posible los accesos remotos a los equipos, donde
se busca que todo proceso sea mas fácil de realizar ( y sabemos que la seguridad
es inversamente proporcional a la facilidad de uso ).
Un sistema de seguridad debe cumplir con unos requisitos:
Se plantea que es mas fácil haces un sistema seguro si esto se ha incorporado
desde los inicios del diseño, por que no se puede hablar de un SO seguro si
su núcleo no lo es; de igual manera es posible hacer seguridad por hardware
donde se obtiene como ventaja la velocidad de operación permitiendo controles
mas frecuentes y mejora el performance
Con respecto a los SO mas seguros es difícil listarlos ya que todos tienen sus
seguidores y contractares los cuales por instinto suelen defender lo que usan, pero
es sin duda alguna lo que responden las encuestas hay una delas distribuciones
de Linux denominada openBSD que es conocido como el SO mas seguro a parte
de que no deja de ser software libre, de igual manera es situado a a los SO de
Windows encima del Mac OSX donde apenas la ultima versión empieza a aplicar
completamente algoritmos de seguridad que desde antes eran utilizados por la
competencia pero sin duda alguna los sistemas libres ganan la batalla con
respecto a la seguridad
Generalmente surgen dudas sobre que es lo que debemos proteger o que debo
cuidar mas y la respuesta es siempre variable según el tipo de necesidades de
cada usuario, pero generalmente los mas afectados son la CPU, la
memoria, terminales, procesos, ficheros y las bases de datos
Adware
Backdoor
Badware alcalinos
Bomba fork
Bots
Bug
Toryano
Cookies
Crackers
Cryptovirus
5.4.1CP/M
5.4.2Ms-DOS
5.4.3Win 98
5.4.4Unix V7
El sistema de archivos de UNIX y LINUX
EXT2
El sistema de archivos de Ms-DOS, Windows 3.11 y Windows 95 de
Microsoft®
Cuando se escribe un nuevo fichero al disco duro, este es guardado en uno o más
clusters, dependiendo del tamaño del fichero (archivo). Los tamaños típicos del
cluster son 2.048 Bytes, 4.096 Bytes o 8.192 Bytes. El sistema operativo crea una
entrada de FAT por cada nuevo fichero, graba y almacena la posición del cluster
(o clusters) donde se ha guardado. Cuando queremos leer un fichero, el sistema
operativo busca en la FAT la posición del mismo para su ejecución.
REPORT THIS AD
REPORT THIS AD
REPORT THIS AD
REPORT THIS AD
HFS
https://reynaldo-entrada-salida.es.tl/Entrada-y-salida-Programada.htm
http://icaro.eii.us.es/descargas/Entrada-Salida(AC06-07).pdf