Sunteți pe pagina 1din 60

Instituto Politécnico Nacional

Escuela Superior de Ingeniería Mecánica y


Eléctrica
Análisis de Señales Analógicas

Alumno:

Meléndez Murillo Luis Daniel

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.

3.1 Introducción a los procesos.


La definición de proceso es tan fácil como decir que es un programa en ejecución tenemos como
algunas definiciones de proceso
 Un programa en ejecución
 La clase de programa ejecutado en un computador
 Una actividad que se caracteriza por la ejecución de instrucciones, en un estado actual y un
conjunto de recursos del sistema asociados.
También conocemos como proceso como una entidad que consiste en los siguientes elementos:
1. Código del programa que se comparte con otros procesos que están ejecutando en el
programa
2. Conjunto de datos asociados al dicho código

3.1.1 Diferencia entre proceso y programa.

La diferencia principal de un proceso y un programa es que el programa es un conjunto de


instrucciones que permite al CPU realizar una determinada tarea mientras que un proceso es un
programa en ejecución

3.1.2 Modelo de un proceso


Cada proceso contiene su propia CPU virtual para entender el modelo de un proceso es mas fácil
que hay un conjunto de procesos que se ejecutan en paralelo

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.

Cuatro contadores de programa


A B C D

Se muestra que si se observa durante suficiente tiempo, todos los procesos han avanzado, pero

en un instante dado sólo se ejecuta un proceso en realidad.

P
R
A ____ ____
O
B ____ ____
C
E C ____ ____
S
O D ____ ____
S

3.1.3 Estados de un proceso.

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:

A continuación se describe cada uno de estos procesos:

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.

3.1.4 Bloque de control de procesos.

• Identificador. Un identificador único asociado a este proceso, para


distinguirlo del resto de procesos.
• Estado. Si el proceso está actualmente corriendo, está en el estado en
ejecución.
• Prioridad: Nivel de prioridad relativo al resto de procesos.
• Contador de programa. La dirección de la siguiente instrucción
del programa que se eje- cutará.
• Punteros a memoria. Incluye los punteros al código de programa
y los datos asociados a di- cho proceso, además de cualquier
bloque de memoria compartido con otros procesos.
• Datos de contexto. Estos son datos que están presenten en los
registros del procesador cuando el proceso está corriendo.
• Información de estado de E/S. Incluye las peticiones de E/S
pendientes, dispositivos de E/S (por ejemplo, una unidad de cinta)
asignados a dicho proceso, una lista de los ficheros en uso por el
mismo, etc.
• Información de auditoría. Puede incluir la cantidad de tiempo de
procesador y de tiempo de reloj utilizados, así como los límites de
tiempo, registros contables, etc.

La información de la lista anterior se almacena en una estructura de datos, que se suele llamar
bloque de control de proceso

3.1.5 Niveles de planificación.

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.

Los sistemas  multiprocesador pueden clasificarse de la siguiente manera:

 Agrupación o multiprocesador débilmente acoplado o distribuido: consiste en una colección


de sistemas relativamente autónomos, cada procesador tiene su propia memoria principal y
canales de E/S.
 Procesadores funcionalmente especializados: en este caso hay un procesador principal  de
propósitos generales y procesadores especializados que son controlados  por el procesador
principal y le proveen servicios a él. Un ejemplo es el procesador de E/S.
 Multiprocesamiento fuertemente acoplado: consiste  en un grupo de procesadores que
comparten una memoria principal en común y están bajo el control integrado de un sistema
operativo.

·         A largo plazo:

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

·         A mediano plazo

·         Decide cuáles procesos es conveniente bloquear en determinado momento, sea por


escacez/saturación de algún recurso (como la memoria primaria) o porque están realizando alguna
solicitud que no puede satisfacerse momentaneamente; se encarga de tomar decisiones respecto a
los procesos conforme entran y salen del estado de bloqueado (esto es, típicamente, están a la
espera de algún evento externo o de la finalización de transferencia de datos con algún dispositivo).

·         A corto plazo

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

·         OBJETIVOS Y CRITERIOS DE PLANIFICACIÓN


·         Los objetivos del planificador se resumen en:

·         a) Reparto equitativo del tiempo de procesador


·         b) Eficiencia en el uso del procesador
·         c) Menor tiempo de respuesta en uso interactivo
·         d) Cumplir plazos de ejecución de los sistemas de tiempo real
 

·         a) La justicia: Intentamos que los procesos no salieran ni beneficiados ni


perjudicados.
·         b) Máxima capacidad de ejecución: Intentamos disminuir los cambios de contexto.
Cuanto antes termine un proceso y menos interrupciones haya, menos cambios de contexto
habrá.
·         c) Máxima capacidad de usuarios interactivos: Intentamos dar servicio a todos los
usuarios conectados.
·         d) Minimizar la sobrecarga: Intentamos que se gaste la menos cantidad de tiempo
posible en la administración del sistema.
·         e) Equilibrio en el uso de recursos: (muy difícil de conseguir). Intentamos que la
utilización de recursos sea equilibrada.
·         f) Garantizar el cumplimiento de las prioridades.
 

3.1.6 Políticas de planificación.

Los algoritmos de planificación que se exponen en esta sección no se limitan a un plazo de


planificación concreto. Aunque en general asumiremos planificación a corto plazo (entrada de
procesos a la CPU), algunos algoritmos pueden implementarse también a largo plazo o distribuirse
en más de un tipo de planificación (por ejemplo, a corto y medio plazo).

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.

Los estados de un proceso obedecen a su participación y disponibilidad dentro del sistema


operativo y surgen de la necesidad de controlar la ejecución de cada proceso. Los procesadores
sólo pueden ejecutar un solo proceso a la vez, turnándolos para el uso de este. Existen procesos no
apropiativos o cooperativos que básicamente ocupan todo el tiempo del procesador hasta que ellos
deciden dejarlo. Los procesos apropiativos son aquellos que ocupan por un período de tiempo el
procesador hasta que una interrupción o señal llega al procesador para hacer el cambio de proceso,
a esto se le conoce como cambio de contexto.
Los posibles estados que puede tener un proceso son ejecución, bloqueado y listo:

 Ejecución, es un proceso que está haciendo uso del procesador.


 Bloqueado, No puede ejecutarse hasta que un evento externo sea llevado a cabo.
 Listo, ha dejado disponible al procesador para que otro proceso pueda ocuparlo.
3.2Despacho de procesos.

La Planificación de procesos tiene como principales objetivos la equidad, la eficacia, el tiempo de


respuesta, el tiempo de regreso y el rendimiento.

 Equidad: Todos los procesos deben ser atendidos.


 Eficacia: El procesador debe estar ocupado el 100% del tiempo.
 Tiempo de respuesta: El tiempo empleado en dar respuesta a las solicitudes del usuario
debe ser el menor posible.
 Tiempo de regreso: Reducir al mínimo el tiempo de espera de los resultados esperados por
los usuarios por lotes.
 Rendimiento: Maximizar el número de tareas que se procesan por cada hora.

3.2.10Algoritmos de planificación de procesos.


Primero en llegar primero en ser servido
Conocido como FCFS (First Come First Served). Este algoritmo emplea una cola de procesos,
asignando un lugar a cada proceso por el orden de llegada. Cuando el proceso llega es puesto en su
lugar en la cola después del que llegó antes que él y se pone en estado de listo. Cuando un proceso
comienza a ejecutarse no se interrumpe su ejecución hasta que termina de hacerlo.

Prioridad al más corto


Su nombre es SJF (Shortest Job First). El proceso que se encuentra en ejecución cambiará de
estado voluntariamente, o sea, no tendrá un tiempo de ejecución determinado para el proceso. A
cada proceso se le asigna el tiempo que usará cuando vuelva a estar en ejecución, y se irá
ejecutando el que tenga un menor tiempo asignado. Si se da el caso de que dos procesos tengan
igual valor en ese aspecto emplea el algoritmo FCFS.

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 por prioridad


En este tipo de planificación a cada proceso se le asigna una prioridad siguiendo un criterio
determinado, y de acuerdo con esa prioridad será el orden en que se atienda cada proceso.

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.

Planificación de Colas Múltiples


El nombre se deriva de MQS (Multilevel Queue Schedulling). En este algoritmo la cola de
procesos que se encuentran en estado de listos es dividida en un número determinado de colas más
pequeñas. Los procesos son clasificados mediante un criterio para determinar en qué cola será
colocado cada uno cuando quede en estado de listo. Cada cola puede manejar un algoritmo de
planificación diferente a las demás.
3.2.2Prioridades.

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.

PROCESO PRIORIDA TIEMPO DE


D EJECUCION

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

La concurrencia comprende un gran número de cuestiones de diseño, incluyendo la comunicación


entre procesos, comparición y competencia por los recursos, sincronización de la ejecución de
varios procesos y asignación del tiempo de procesador a los procesos y es fundamental para que
existan diseños como Multiprogramación, Multiproceso y Proceso distribuido
Los procesos son concurrentes si existen simultáneamente. Cuando dos o más procesos llegan al
mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de procesos. Es
importante mencionar que para que dos o más procesos sean concurrentes, es necesario que tengan
alguna relación entre ellos

La concurrencia puede presentarse en tres contextos diferentes:

• Varias aplicaciones: La multiprogramación se creó para permitir que el tiempo de procesador de


la máquina fuese compartido dinámicamente entre varios trabajos o aplicaciones activas.

• Aplicaciones estructuradas: Como ampliación de los principios del diseño modular y la


programación estructurada, algunas aplicaciones pueden implementarse eficazmente como un
conjunto de procesos concurrentes.

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

Multiprocesador. Es una maquina formada por un conjunto de procesadores que comparten


memoria principal. En este tipo de arquitecturas, los procesos concurrentes no sólo pueden
intercalar su ejecución sino también superponerla.
Elementos a gestionar y diseñar a causa de la concurrencia.

Se pueden enumerar los siguientes:

1. El sistema operativo debe ser capaz de seguir la pista de los distintos procesos activos. Esto lo
hace por medio de 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:

• Tiempo de procesador: Es función de la planificación.


• Memoria: La mayoría de los sistemas operativos emplean esquemas de memoria virtual.
• Archivos:
• Dispositivos de E/S:

3. El sistema operativo debe proteger los datos y los recursos 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

3.4 Comunicación entre procesos

Un sistema operativo multiprogramado es un caso particular de sistema concurrente donde los


procesos compiten por el acceso a los recursos compartidos o cooperan dentro de una misma
aplicación para comunicar información. Ambas situaciones son tratadas por el sistema operativo
mediante mecanismos de sincronización que permiten el acceso exclusivo de forma coordinada a
los recursos y a los elementos de comunicación compartidos.

Según el modelo de sistema operativo descrito anteriormente, basado en colas de procesos y


transiciones de estados, los procesos abandonan la CPU para pasar a estado bloqueado cuando
requieren el acceso a algún dispositivo, generalmente en una operación de E/S, pasando a estado
preparado cuando la operación ha concluido y eventualmente volver a ejecución. La gestión de
estos cambios de estado, es decir, los cambios de contexto, es un ejemplo de sección crítica de
código dentro del sistema operativo que debe ser ejecutada por éste en exclusión mutua. Otros
ejemplos de código que debe protegerse como sección crítica incluyen la programación de los
dispositivos de E/S y el acceso a estructuras de datos y buffers compartidos.

El concepto de comunicación es algo más general y supone la existencia de algún mecanismo de


sincronización subyacente. Dentro del sistema operativo, el espacio de direcciones es único, por lo
que la comunicación se puede resolver mediante el uso de variables en memoria compartida. Como
contrapartida a la agilidad de este esquema, es necesario utilizar mecanismos de sincronización
explícitos para garantizar acceso exclusivo a las variables compartidas y evitar condiciones de
carrera. Puede producirse una condición de carrera sobre una variable cuando varios procesos
acceden concurrentemente a la variable para actualizarla.

El SO ofrece mecanismos básicos de comunicación, que permiten transferir cadenas de bytes.


Deben ser los procesos que se comunican quienes interpreten el significado de las cadenas
transferidas para su labor coordinada.

Los mecanismos de comunicación y sincronización son dinámicos. Es decir, cuando se necesita un


mecanismo de este estilo, se crea, usa y destruye, de forma que no se establezca de forma definitiva
ningún mecanismo de comunicación, ya que ellos podrían producir efectos indeseados. Es decir, la
comunicación es algo puntual.

Los servicios básicos de comunicación son:

a. crear: el proceso solicita la creación del mecanismo


b. enviar o escribir: el proceso emisor envía información al proceso receptor
c. recibir o leer: el proceso receptor recibe información
d. destruir: el proceso solicita la destrucción del mecanismo de comunicación

La comunicación puede ser sincrona y asíncrona:

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.

b. asíncrona: el emisor hace el envío y prosigue su ejecución. El SO ofrece un almacenamiento


intermedio para guardar la información enviada, hasta que el receptor la solicite.

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:

· Un estado de ejecución (en ejecución, listo, bloqueado).


· Un contexto de procesador, que se salva cuando no esté ejecutándose.
· Una pila de ejecución.
· Algún almacenamiento estático para variables locales.
· Acceso a la memoria y a los recursos de ese trabajo que comparte con los otros hilos.

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. 

3.4.3 secciones criticas

Región Crítica. Protocolo de sincronización.

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

3. No se puede demorar indefinidamente la entrada de un proceso a un cierto recurso; no debe


permitirse el interbloqueo y la inanición. Todos los procesos deben poder acceder al recurso que
solicitan, sino se van a morir sin usarlo y no es justo.

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.

5. No se pueden hacer suposiciones sobre la velocidad relativa de los procesos o su número


(cantidad de procesadores). Nunca se puede saber a priori si a un proceso le falta mucho o poco
para terminar.

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

3.4.4 Exclusión mutua con espera ocupada


Principio de exclusión mutua
Se presentan a continuación varias proposiciones para lograr la exclusión mutua, de manera que
mientras un proceso esté ocupado actualizando la memoria compartida en su región crítica, ningún
otro proceso puede entrar a su región crítica y ocasionar problemas.

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.

Monitor tipo manager

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.

Monitor tipo gladiador

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.

La primera llamada envía un mensaje a un destino especificado y la segunda recibe un mensaje de


un origen especificado (o de cualquiera, si al receptor no le importa). Si no hay un mensaje
disponible, el receptor se puede bloquear hasta que llegue uno. De manera alternativa, puede
regresar de inmediato con un código de error.

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.

3.4.9. problema de la comunicación entre procesos


Para cada uno de los siguientes tres problemas se requiere escribir un programa que atienda las
necesidades que presenta cada uno de estos, aplicando la solución a la administración de procesos
que presenta un sistema operativo.
EL PROBLEMA DEL BARBERO DORMIL EL PROBLEMA DEL BARBERO DORMILÓN El
problema consiste en programar a un barbero y a sus clientes sin entrar en competencia
• La peluquería tiene un barbero, una silla de peluquero y n sillas para que se sienten los clientes en
espera, si es que los hay
Si no hay clientes el barbero se sienta en la silla de peluquero y se duerme. Cuando llega un cliente
debe despertar al barbero. • Si llegan más clientes mientras el barbero corta el cabello a un cliente,
ellos se sientan (si hay sillas desocupadas). • Un cliente que entra a la peluquería debe contar el
número de clientes que esperan. Si es menor que el número de sillas, él se queda; en caso contrario
se va.
Una solución • Cuando el barbero abre su negocio se debe ejecutar un semáforo denominado
barber que checa el número de barberos en espera de clientes (0 o 1), lo que establece un bloqueo
en otro semáforo: customer, que cuenta el número de clientes en espera, después se va a dormir. •
Cuando llega el primer cliente, éste ejecuta customer, que inicia procurando que un tercer semáforo
llamado mutex entre en una región crítica. Mutex se va a utilizar para la exclusión mutua. • Si otro
cliente llega, no podrá hacer nada hasta que el primero haya liberado a mutex
• El cliente verifica entonces si el número de clientes que esperan es menor que el número de sillas.
Si esto no ocurre, libera a mutex y sale sin su corte de pelo. • Si existe una silla disponible, el
cliente incrementa la variable entera waiting, que es una replica de customer. Después realiza un
“levantamiento” en customer, con lo que despierta al barbero. • Cuando el cliente libera a mutex, el
barbero lo retiene, ordena algunas cosas e inicia el corte de pelo.
• Al terminar el corte, el cliente sale del procedimiento y deja la peluquería. • Nótese que no existe
un ciclo para el cliente, puesto que el corte de pelo es una actividad que el cliente recibe
automáticamente, más no ejecuta tal actividad.

3.5.1 los cinco filósofos comensales


EL PROBLEMA DE LA CENA DE LOS EL PROBLEMA DE LA CENA DE LOS FILÓSÓFOS
• Este problema es útil para modelar procesos que están en competencia por el acceso exclusivo a
un número limitado de recursos Este problema se puede enunciar de la siguiente manera: Cinco
filósofos se sientan a la mesa. Cada uno tiene un plato de espagueti. El espagueti es tan escurridizo,
que un filósofo necesita dos tenedores para comerlo. Entre cada dos platos hay un tenedor.
La vida de un filósofo consta de dos periodos alternados de comer y pensar. (Esto es una
abstracción, incluso para los filósofos, pero las demás actividades son irrelevantes en este caso). •
Cuando un filósofo tiene hambre, intenta obtener un tenedor para su mano izquierda y otro para su
mano derecha, alcanzando uno a la vez y en cualquier orden. • Si logra obtener los dos tenedores,
come un rato y después deja los tenedores y continúa pensando.
• Una solución es esperar hasta que el tenedor especificado este disponible y tomarlo. Esta solución
es incorrecta si se hace la suposición de que los cinco filósofos toman sus tenedores izquierdos en
forma simultánea. Ninguno de ellos podría tomar su tenedor derecho, con lo que ocurriría un
bloqueo. • Al volver a colocar los tenedores en la mesa, ninguno estaría comiendo por lo que
intentarían volver a tomarlos y esta situación se repetiría indefinidamente y es lo que se denomina
como inanición.
• Otra solución es esperar un cierto tiempo arbitrario, en lugar del mismo tiempo, después de que
no pudiesen tomar el tenedor derecho y así reducir a un mínimo la probabilidad de inanición pero
hay ciertas aplicaciones críticas que requieren funcionalidad total que esta solución no proporciona.
• Una mejora de las soluciones anteriores es utilizar un semáforo para indicar que recurso se tiene
en uso. Esto solo permite tener a un filósofo con dos tenedores. • Si un filósofo requiere comer
debe verificar si a los lados no se están utilizando los dos tenedores, obteniendo así la solución más
viable para este problema.

3.5.2 lectores y escritores


EL PROBLEMA DE LOS LECTORES Y LOS EL PROBLEMA DE LOS LECTORES Y LOS
ESCRITORES ESCRITORES Se utiliza para modelar el acceso a una base de datos. • Cuando se
tiene una enorme base de datos, como por ejemplo un sistema de reservaciones de una aerolínea,
con muchos procesos en disputa por la escritura o lectura a dicha base. ¿Cómo se deben programar
los lectores y los escritores?. • Una solución es dar en primera instancia prioridad primaria a los
lectores y secundaria a los escritores, es decir, si existen lectores el escritor debe esperar hasta que
ya no haya lectores. • En segunda instancia, cuando el escritor tome prioridad primaria los lectores
deben esperar a que el escritor termine su función.

3.6 ´proceso posix para la gestion de procesos


SERVICIOS POSIX PARA LA GESTIÓN DE PROCESOS
SERVICIOS POSIX: SERVICIOS POSIX Los servicios que ofrece POSIX se han agrupado según
las siguientes categorías: Identificación de procesos. El entorno de un proceso. Creación de
procesos. Terminación de procesos.

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:

a) OBTENER EL IDENTIFICADOR DE PROCESOS.

Este servicio devuelve el identificador del proceso que realiza la llamada. Su prototipo en lenguaje
C es el siguiente: p id_t getpid (void);

b) OBTENER EL IDENTIFICADOR DEL PROCESO PADRE:

Devuelve el identificador del proceso padre. Su prototipo es el que se muestra a continuación. p id


ti getppid (void);

c) OBTENER EL IDENTIFICADOR DE USUARIO EFECTIVO:

Devuelve el identificador de usuario efectivo.

Su prototipo es: u id_t getuid (void);

d) OBTENER EL IDENTIFICADOR DE USUARIO REAL.:

Este servicio devuelve el identificador de usuario real del proceso que realiza la llamada. Su
prototipo es: u id _t getuid ( void );

e) OBTENER EL IDENTIFACADOR DE GRUPO REAL:

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

f) OBTENER EL IDENTIFICADOR DE GRUPO EFECTIVO

Su prototipo es : g id_t getegid (void );


UNIDAD 4: DISPOSITIVOS DE ENTRADA / SALIDA

TEMA 4.1 DISPOSITIVOS E / S


Los computadores y sus dispositivos únicamente para E/S en estos mismos se pueden clasificar en tres partes:

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:

 La velocidad de transferencia de datos


 Aplicación (El uso al que está destinado un dispositivo)
 Complejidad de control
 Unidad de transferencia
 Representación de datos
 Condiciones de error
 E/S programada

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.

TEMA 4.1.1: INTERRUMPCIÓN DEL CPU

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.

Hay dos tipos: E/S síncrona y E/S asíncrona.

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.

TEMA 41.2 DEFINICIÓN Y MANEJO DE INTERRUPCIONES

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

CPU Mod E/S Mem

Según FUENTE que produce la 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):

 Interrupciones AUTOVECTORIZADAS: el vector de interrupción es FIJO.


 Interrupciones VECTORIZADAS: el vector de interrupción lo suministra el propio periférico

TEMA 4.1.3 E/S POGRAMADA

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.

La CPU se dedica por completo a realizar la operación de E/S:


 Realiza la inicialización, la comprobación de estado y la transferencia.
 La CPU tiene el control absoluto de la operación de E/S.
 Ventaja: Hardware mínimo.
 Inconvenientes:
 Malgasta tiempo de proceso (interroga continuamente al periférico).
 Dificultad para atender varios periféricos.

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

TEMA 4.1.4 E/S CONTROLADA POR INTERRUPCIONES

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

TEMA 4.1.6 MANEJADOR DE INTERRUPCIONES.

TEMA 4.1.7 VECTOR DE INTERRUPCIONES.

TEMA 4.2 CANALES DE ENTRADA / SALIDA.

TEMA 4.2.1 TIPOS DE CANALES.

TEMA 4.2.2 INTERFACES.

TEMA 4.2.3 CONTROLADORES.

TEMA 4.3 MEMORIAS TRANSITORIAS (BUFFERS).

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.

TEMA 4.3.1 TIPOS DE MEMORIA TRANSITORIAS.

TEMA 4.3.2 MANEJO DE MEMORIAS TRANSITORIAS.

TEMA 4.3.3 IMPLEMENTACIÓN

TEMA 4.3.4 TERMINALES DE RED

TEMA 4.3.5 INTERFACES GRAFICAS DE USUARIO.

TEMA 4.4 SERVICIOS DE E/S: GENÉRICOS, PARA POSIX Y WIN32


5.1Manejo de archivos y directorios.

El sistema de archivos o ficheros es el componente del sistema operativo encargado de


administrar y facilitar el uso de las memorias periféricas, ya sean secundarias o terciarias.
Sus principales funciones son la asignación de espacio a los archivos, la administración
del espacio libre y del acceso a los datos resguardados.

Estructuran la información guardada en una unidad de almacenamiento (normalmente un


disco duro de una computadora), que luego será representada ya sea textual o
gráficamente utilizando un gestor de archivos. La mayoría de los sistemas operativos
manejan su propio sistema de archivos.
El sistema de archivos se basa en la administración de clústers, la unidad de disco más
chica que el sistema operativo puede administrar. Un clúster consiste en uno o más
sectores. Por esta razón, cuanto más grande sea el tamaño del clúster, menores
utilidades tendrá que administrar el sistema operativo. Por el otro lado, ya que un sistema
operativo sólo sabe administrar unidades enteras de asignación (es decir que un archivo
ocupa un número entero de clústers), cuantos más sectores haya por clúster, más
espacio desperdiciado habrá. Por esta razón, la elección de un sistema de archivos es
importante. La estructura de directorios suele ser jerárquica, ramificada o “en árbol”,
aunque en algún caso podría ser plana.

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.

5.1.1Aspectos básicos de los archivos.

Concepto de archivo: Es una colección de información que se graba en almacenamiento secundario. Su


concepto es extremadamente general puesto que es definido por el creador y usuario.

Tipo abstracto de datos.

Nombre
Información en un formato visible.

•Identificador Es un numero con el que el sistema identifica el archivo.

Tipo Es necesario para saber si el sistema lo soporta.

Ubicación: Es un puntero a un dispositivo y a la ubicación de archivo.

Tamaño Es el tamaño actual del archivo.


•Protección Control de acceso; quien puede leer, escribir entre otras cosas del archivo.

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

• Esquema jerárquico. • Cuando se abre un fichero el SO busca el nombre en la estructura de directorios. •


Operaciones sobre un directorio: – Crear (insertar) y borrar (eliminar) directorios. – Abrir y cerrar
directorios. – Renombrar directorios. – Leer entradas de un directorio. • La organización jerárquica de un
directorio – Simplifica el nombrado de ficheros (nombres únicos) – Proporciona una gesBón de la
distribución => agrupar ficheros de forma lógica (mismo usuario, misma aplicación)
5.2Sistemas de archivos.

Un sistema de archivos (FS) es un componente del sistema operativo que proporciona


la organización de la creación, el almacenamiento y el acceso a conjuntos de datos con
nombre: archivos.
El sistema de archivos incluye:
 La colección de todos los archivos en el disco.
 Conjuntos de estructuras de datos utilizadas para administrar archivos (directorios de
archivos, descriptores de archivos, tablas de asignación de espacio libre y ocupado en disco).
 Un complejo de software de sistema que implementa varias operaciones en
archivos: creación, destrucción, lectura, escritura, nomenclatura, búsqueda.
Las tareas resueltas por el FS dependen del método de organización del proceso
informático en su conjunto. El tipo más simple es FS en sistemas operativos de usuario
único y de programa único. Las funciones principales en un FSde este tipo están
destinadas a resolver los siguientes problemas:
 Nombramiento de archivos.
 La interfaz del programa para aplicaciones.
 Mapeo del modelo lógico del FS a la organización física del almacén de datos.
 Estabilidad FS ante fallas de energía, errores de hardware y software.
Las tareas de FS son complicadas en los sistemas operativos multitarea que están
diseñados para funcionar como un solo usuario, pero proporcionan la capacidad de
ejecutar múltiples procesos simultáneamente. Se agrega una nueva encomienda a las
tareas enumeradas anteriormente: compartir un archivo de varios procesos. El archivo
en este caso es un recurso compartido, lo que significa que el FS debe resolver todo el
complejo de problemas asociados con dichos recursos. En particular: se deben
proporcionar medios para bloquear el archivo y sus partes, hacer coincidir copias, evitar
carreras, eliminar puntos muertos. En los sistemas multiusuario, surge otra tarea:
proteger los archivos del acceso no autorizado de otro usuario.
Las funciones FS, que trabajan como parte de un sistema operativo de red, se vuelven
aún más complejas; necesita organizar la protección de los archivos de un usuario
contra el acceso no autorizado de otro.
El objetivo principal del sistema de archivos y su correspondiente sistema de
administración de archivos es organizar una conveniente gestión organizada de estos: en
lugar de un acceso de bajo nivel a los datos que indican direcciones físicas específicas
del registro que necesitamos, el acceso lógico se utiliza con el nombre y el registro del
archivo.
5.2.1Manejo del espacio en disco.

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. 

El manejo del espacio libre en disco se lleva a cabo de la siguiente manera: 


•Vector de bits. El espacio libre en disco es frecuentemente implementado como un mapa de bits, donde cada block es
representado por un bit y si el bloc es libre el bit es cero de lo contrario está asignado.
•Lista ligada. Una lista ligada de todos los blocks libres. Otra implantación se consigue guardando la dirección del primer
block libre y el número de los blocks libres contiguos que le siguen. Cada entrada de la lista de espacio libre consiste
de una dirección de disco y un contador (por conteo).
•Por agrupación. Se almacena la dirección en n blocks libres en el primer block libre y el último contiene la dirección de otro
block que contiene la dirección de otros blocks libres. 

Para manejar los espacios en disco existen los siguientes métodos: 


•Contiguos. Esta asignación requiere que cada archivo ocupe un conjunto de direcciones contiguas en el disco, su asignación
es definida por la dirección del primer bloc y la longitud del archivo.
• Asignación ligada o encadenada. Cada archivo es una lista ligada de blocks y el directorio contiene un apuntador al primer
bloc y al último.
•Asignación Indexada. Cada archivo tiene su propio bloc de índice el cual es un arreglo de direcciones de bloc.

5.2.2Almacenamiento de archivos.

El almacenamiento de archivos, también denominado almacenamiento a nivel


de archivo o basado en archivos, es exactamente lo que cree que podría ser:
los datos se almacenan como una sola pieza de información dentro de una
carpeta, tal como organiza hojas de papel dentro de un sobre de manila.
Cuando necesita acceder a ese dato, su computadora debe conocer la ruta
para encontrarlo. Pero cuidado, ya que puede ser una ruta larga y sinuosa. Los
datos almacenados en archivos se organizan y se recuperan utilizando una
cantidad limitada de metadatos que le indican a la computadora exactamente
dónde se guarda el archivo. Es como un catálogo de tarjetas de biblioteca para
archivos de datos.

Piense en un armario lleno de archivadores. Cada documento se organiza con


base en algún tipo de jerarquía lógica: por archivador, por cajón, por carpeta y,
luego, por papel. De aquí proviene el término almacenamiento jerárquico, y
este es el almacenamiento de archivos. Es el sistema de almacenamiento de
datos más antiguo y más utilizado para sistemas de almacenamiento conectado a
la red y sistemas directos, y es el que probablemente ha estado utilizando
durante décadas. Cada vez que accede a documentos guardados en archivos
en su computadora personal, utiliza el almacenamiento de archivos. El
almacenamiento de archivos tiene amplias capacidades y puede almacenar
prácticamente cualquier cosa. Es genial para almacenar una gran variedad de
archivos complejos y ofrece una navegación bastante rápida a los usuarios.

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

dirección que dice: G:\fotos indica que estamos en la carpeta fotos del disco G

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.

Cuando hay varios usuarios trabajando en conjunto en un proyecto, a menudo


necesitan compartir archivos. Como resultado, con frecuencia es conveniente que
aparezca un archivo compartido en forma simultánea en distintos directorios que
pertenezcan a distintos usuarios. La siguiente gráfica muestra el sistema de
archivos de la gráfica de Directorios Jerárquicos de nuevo, sólo que con uno de
los archivos de C ahora presentes en uno de los directorios de B también. La
conexión entre el directorio de B y el archivo compartido se conoce como un
vínculo (liga). El sistema de archivos en sí es ahora un Gráfico acíclico dirigido
(Directed Acyclic Graph, DAG) en vez de un árbol.
Compartir archivos es conveniente, pero también introduce ciertos problemas.
Para empezar, si los directorios en realidad contienen direcciones de disco,
entonces habrá que realizar una copia de las direcciones de disco en el directorio
de B cuando se ligue el archivo. Si B o C agregan posteriormente al archivo, los
nuevos bloques se listarán sólo en el directorio del usuario que agregó los datos.
Los cambios no estarán visibles para el otro usuario, con lo cual fracasa el
propósito de la compartición.
Sistem
a de Archivos con Archivo compartido
Este problema se puede resolver de dos formas. En la primera solución, los
bloques de disco no se listan en los directorios, sino en una pequeña estructura de
datos asociada con el archivo en sí. Entonces, los directorios apuntarían sólo a la
pequeña estructura de datos. Éste es el esquema que se utiliza en UNIX (donde la
pequeña estructura de datos es el nodo-i).

REPORT THIS AD
REPORT THIS AD

En la segunda solución, B se vincula a uno de los archivos de C haciendo que el


sistema cree un archivo, de tipo LINK e introduciendo ese archivo en el directorio
de B. El nuevo archivo contiene sólo el nombre de la ruta del archivo al cual está
vinculado. Cuando B lee del archivo vinculado, el sistema operativo ve que el
archivo del que se están leyendo datos es de tipo LINK, busca el nombre del
archivo y lee el archivo. A este esquema se le conoce como vínculo simbólico
(liga simbólica), para contrastarlo con el tradicional vínculo (duro).
5.2.5Rendimiento del sistema de archivos.

Deben distinguirse los términos "sistema de archivos" y "sistema de gestión de


archivos": el primero tiene que ver con los principios de acceso a los datos
organizados como archivos. Y el segundo está relacionado con la implementación
específica del sistema de archivos, es decir este es un conjunto de módulos de
software que proporcionan trabajo con archivos en un sistema operativo específico.
TIPOS DE ARCHIVO
Archivos regulares: contienen información arbitraria que el usuario ingresa en ellos o
que se forma como resultado del trabajo del sistema y los programas del usuario.
El contenido de un archivo normal está determinado por la aplicación que trabaja con
él.

Los archivos normales pueden ser de dos tipos:


1. Software (ejecutable): son programas escritos en el lenguaje de comandos del sistema
operativo y realizan algunas funciones del sistema (tienen extensiones .exe, .com, .bat).
2. Archivos de datos: todos los demás tipos de archivos: textos y documentos gráficos,
hojas de cálculo, bases de datos, etc.
Los directorios son, por un lado, un grupo de archivos combinados por el usuario por
algunas razones (por ejemplo, archivos que contienen programas de juegos o archivos
que componen un paquete de software) y, por otro lado, este es un tipo especial de
archivo que contiene información de ayuda del sistema sobre un conjunto de archivos
agrupados por usuarios de acuerdo con algún atributo informal (tipo de archivo, su
ubicación en el disco, derechos de acceso, fecha de creación y modificación).
Los archivos especiales son archivos ficticios asociados con dispositivos de entrada /
salida que se utilizan para unificar el mecanismo de acceso a archivos y dispositivos
externos. Los archivos especiales permiten al usuario realizar E / S a través de los
comandos habituales de escritura o lectura desde archivos. Estos comandos son
procesados primero por los programas FS y luego, en alguna etapa de la ejecución de la
consulta, el sistema operativo se convierte en comandos para controlar el dispositivo
correspondiente (PRN, LPT1 para el puerto de impresora - los nombres simbólicos para
el sistema operativo son archivos, - USB para el teclado).
La gestión de archivos se da en la organización, almacenamiento y el acceso al
conjuntos de estos, de modo que al cumplir con sus funciones garanticen el cuidado y
protección de la información que manejen. Por ello es importante conocer y aplicar este
tipo de operaciones.

_
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:

• Confidencialidad. Requiere que la información de un sistema informático sólo se encuentre


accesible para lectura para aquellas partes que estén autorizadas a este tipo de acceso. Este
tipo de acceso incluye impresión, mostrado de datos y otras formas de observación,
incluyen- do la simple revelación de la existencia de un elemento.
• Integridad. Requiere que los contenidos de un sistema informático sólo podrán modificarse
por las partes que se encuentran autorizadas. Las modificaciones incluyen escritura, cambio,
modificación del estado, borrado y creación.
• Disponibilidad. Requiere que los componentes de un sistema informático estén disponibles
para todas aquellas partes autorizadas.
• Autenticación. Requiere que el sistema informático sea capaz de verificar la identidad de los
usuarios.

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:

• Interrupción. Se destruye un componente del sistema o se encuentra no disponible o utiliza-


ble. Es un ataque centrado en la disponibilidad. Ejemplos de este tipo incluyen la destrucción
de una pieza del hardware, como un disco duro, la interrupción del canal de comunicación o la
eliminación del sistema gestor ficheros.
• Intercepción. Una parte no autorizada consiga acceso a un componente. Esto es un ataque di-
rigido hacia la confidencialidad. La parte no autorizada puede ser una persona, un programa o
Sistema informático Sistema informático
4
Los ficheros sensibles
se deben asegurar
Datos
(seguridad de ficheros) Datos

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)

Procesos que representan usuarios Procesos que representan usuarios


Vigilancia Vigilancia

2 Se debe controlar el acceso a las


instalaciones informáticas
(autenticación de usuarios)
Usuarios que hacen peticiones

Figura 16.1. Ámbito de la seguridad informática [MAEK87].

Fuente de la Destino de
la
información

información
(a) Flujo normal
(b) Interrupción (c) Intercepción

(d) Modificación (e) Fabricación

Figura 16.2. Peligros de seguridad.


un ordenador. Ejemplos de este estilo son la escucha en un canal de comunicación
para captu- rar datos y la copia ilícita de ficheros o programas.
• Modificación. Un elemento no autorizado no sólo tiene acceso a un componente sino
que tam- bién es capaz de modificarlo. Éste es un ataque que va dirigido hacia la
integridad. Los ejem- plos incluyen cambiar valores de un fichero de datos, alterar un
programa para que exhiba un comportamiento diferente, y modificar el contenido de
los mensajes que se transmiten por la red.
• Fabricación. Un elemento no autorizado inserta objetos extraños en el sistema. Estos
son ata- ques contra la autenticación. Ejemplos de este tipo son la inserción de
mensajes externos en una red o la inclusión de un registró en un fichero

5.3.2Principios de diseño para seguridad.

Es necesario el diseñarlos para que admitan mecanismos de seguridad desde un


principio, Saitzer y Schroeder extrajeron los criterios de diseño siguientes para
dotar a un Sistema Operativo de mecanismos de seguridad:

· Diseño abierto (Para disuadir a posibles curiosos)

· Exigir permisos (Política de acceso restrictiva)

· Privilegios mínimos (Asignar únicamente prioridades necesarias)

· Mecanismos económicos (Sencillos, regulares y pequeños)

· Intermediación completa (Comprobación de acceso al sistema)

· Compartición mínima

· Fáciles de usar y aceptables (Aceptado por usuarios y fácil de usar)

· Separación de privilegios (Más de un mecanismo de protección,


criptografía)

Técnicas de diseño de sistemas seguros:

· Separación de recursos (Física, temporal, criptográfica y lógica)


· Uso de entornos virtuales (Espacios múltiples de memoria virtual, máquinas
virtuales) que proporcionan un entorno virtual completo para cada usuario.

· Diseño por capas: Varios niveles, donde los niveles interiores son los de
más confianza

Controles de seguridad externos al sistema operativo:

· Equipos de penetración y limitación de acceso: Para tratar de detectar el


mayor número de fallos posible es habitual usar equipos de penetración, en donde
su misión es llevar a cabo todos los ataques de seguridad sobre un sistema. El
conjunto de pruebas de seguridad debe ser complejo y riguroso, sobre todo si se
trata de sistemas que están conectados en red por la posibilidad de difusión de
virus e intento de adquisición de palabras de acceso al sistema mediante
programas que descifran dichos códigos. La complejidad de las comprobaciones y
el registro de acceso aumentan en los sistemas conectados a una red; en tal caso
la seguridad se enfrenta a múltiples puntos de ejecución y canales de
comunicación expuestos, por tal motivo se debe utilizar algún mecanismo de
protección como el firewall, que consiste en limitar el acceso a la red interna y solo
poder realizarlo a través de una máquina determinada denominada cortafuegos.

· Controles de programación: El diseño y código del sistema deben ser


revisados por un grupo de los diseñadores y programadores, se puede aplicar a
los programas encapsulando datos y métodos de un objeto de forma que sólo se
puedan acceder por métodos verificados e interfaz definida, pruebas
independientes, cualquier cambio o instalación de software en un sistema debe
ser aprobado por el administrador.

· Uso de estándares para seguridad: Existen estándares que describen un


sistema fiable, algunos controles serían el software viable, sospechar de procesos,
registrar accesos, búsquedas periódicas de agujeros de seguridad, etc.
5.3.3Virus.

Virus. Un virus es un programa que puede infectar otros programas


modificándolos; las modificacio- nes incluyen la copia del programa virus, que
puede a continuación infectar otros programas.

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:

• Fase latente. El virus está dormido. El virus se activará finalmente cuando


se dé un evento, por ejemplo una fecha, la presencia de otro programa o ficheros,
o que la capacidad del disco exceda de un determinado límite. No todos los virus
pasan por esta etapa.

• Fase de propagación. El virus inserta copias idénticas de sí mismo en otros


programas o en ciertas áreas de disco. Cada programa infectado contendrá ahora
una copia del virus, que a su vez entrará en la fase de propagación.

• Fase de activación. El virus se activa para realizar la función para la cual


fue concebido. Con el caso de la fase latente, la fase de activación se puede
lanzar por una amplia gama de eventos del sistema, incluyendo un contador del
número de veces que esta copia del virus se ha copia- do a sí mismo.

• Fase de ejecución. La función en cuestión se realiza. La función puede


variar desde un men- saje inofensivo en la pantalla, hasta la dañina destrucción de
programas y ficheros de datos.

La mayoría de los virus llevan a cabo su trabajo de una manera específica de un


sistema operati- vo en particular, y en algunos casos, específica también para la
plataforma hardware. Por tanto, están diseñados para aprovecharse de los
detalles y debilidades de determinados sistemas en concreto.

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 parásito. Forma tradicional y asimismo la más habitual de un virus. Un


virus parásito se inserta él mismo dentro de ficheros ejecutables y se replica,
cuando el programa infectado se encuentra en ejecución, buscando otros ficheros
ejecutables que infectar.

• Virus residente en memoria. Infecta la memoria principal como parte del


programa del siste- ma residente. Desde ese punto, el virus infectar todo programa
que se ejecuta.

• Virus en el sector de arranque. Infecta el sector de arranque maestro


(master boot record) y se dispersan cuando el sistema arranca desde el disco que
contiene el virus.

• Virus oculto. Una forma de virus diseñada expresamente para esconderse


del software de de- tección de los antivirus.

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

La función principal de un Sistema Operativo (SO) es la de tomar todos los


recursos físicos de un sistema de computo y brindarlos de manera virtual, esto es
logrado por medio de una abstracción del hardware (HW). En la actualidad no es
suficiente con permitir el manejo y uso del HW si no se maneja seguridad y
protección . 

 Es importante en definir claramente las diferencias entre estos dos conceptos

 La seguridad : es la ausencia de un riesgo. Aplicando esta definición a al


tema correspondiente, se hace referencia al riesgo de accesos no
autorizados, de manipulación de información, manipulación de las
configuraciones, entre otros

 La protección : son los diferentes mecanismo utilizados por el SO para


cuidar la información, los procesos, los usuarios, etc

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:

 Confidencialidad: Acceso solo a usuarios autorizados

 Integridad: Modificación solo por usuarios autorizados

 Disponibilidad:  Recursos solamente disponibles para usuario autorizado

 La seguridad se clasifica en:

 Externa:  protección contra desastres y contra intrusos

 Operacional: básicamente nos determina que acceso se permite a quien

 Una de las obligaciones de un sistema seguro es permanecer en constante


vigilancia, verificando y validando las posibles amenazas, esto lo hacen con uso
de contraseñas, controles de acceso

 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

Para poder garantizar la seguridad es fundamental proteger nuestro sistema, por


eso básicamente los mecanismo articulados para la protección son los que nos
llevan a un sistema seguro; existen diferentes formas de realizar la protección tal
vez la mas común y mas básica sea definir cuales son los archivos u objetos a
proteger para que posteriormente se delimite que usuarios pueden acceder a que
información

 Como objetivos de la protección esta:

 Controlar el acceso a los recursos


 Utilizabiliad por diferentes usuarios

 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

Un sistema de protección deberá tener la flexibilidad suficiente para poder imponer


una diversidad de políticas y mecanismos.

 La protección se refiere a los mecanismos para controlar el acceso de programas,


procesos, o usuarios a los recursos definidos por un sistema de computación.
Seguridad es la serie de problemas relativos a asegurar la integridad del sistema y
sus datos.

 Pero contra que nos debemos proteger:

 Adware

 Backdoor

 Badware alcalinos

 Bomba fork

 Bots

 Bug

 Toryano

 Cookies

 Crackers

 Cryptovirus

5.4Ejemplos de sistemas de archivos

5.4.1CP/M

5.4.2Ms-DOS

5.4.3Win 98

5.4.4Unix V7
El sistema de archivos de UNIX y LINUX

 EXT / EXT2 / EXT3: Es el protocolo de Linux para el almacenamiento de


datos, se trata de un sistema de ficheros de alto rendimiento usado para
discos duros, así como para sistemas de almacenamientoextraíbles
(disqueteras y memorias USB). Tiene la ventaja de permitir actualizar de
ext2 a ext3 sin perder los datos almacenados ni tener que formatear el
disco. Tiene un menor consumo de CPU y esta considerado mas seguro
que otros sistemas de ficheros en Linux dada su relativa sencillez y su
mayor tiempo de prueba. Los sistemas operativos Linux e UNIX son
capaces de detectar casi cualquier sistema de archivos (EXT, FAT, FAT32,
NTFS, CDFS, UDF, etc.).

EXT2
El sistema de archivos de Ms-DOS,  Windows 3.11 y Windows 95 de

Microsoft®

 FAT:  proviene de (“File Allocation Table“), que significa tabla de


localización de archivos. Estatabla se mantiene en el disco duro de nuestro
ordenador, y contiene un mapa de toda la unidad de forma que “sabe”
donde está cada uno de los datos almacenados.

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.

El sistema de archivos de Windows 98 y Windows Millenium de Microsoft®

 FAT32: proviene de (“File Allocation Table 32“), que significa tabla de


localización de archivos a 32 bits. Es el sistema de archivos que se empezó
a usar a partir de la versión OSR2 de Microsoft® Windows 95, la cuál tiene
una mejor manera de almacenar los datos con respecto a la FAT 16 ya que
puede manejar discos duros de hasta 2 Terabytes. Se utiliza básicamente
con Microsoft® Windows 98 y Microsoft® Windows ME. Los sistemas
operativos Windows 98 y ME de Microsoft® reconocen el sistema de
archivos FAT, FAT32, el CDFS utilizado en CD-ROM y el UDF utilizado en
DVD-ROM.

REPORT THIS AD

REPORT THIS AD

El sistema de archivos de Windows XP, Windows Vista y Windows 7 de


Microsoft®
 NTFS: proviene de (“New Tecnology File System“), que significa sistema

 de archivos de nueva tecnología, utilizado en la


plataforma Windows NT®. Permite accesos a archivos y carpetas
por medio de permisos, no es compatible con Linux (solo lee, y difícilmente
escribe), ni con Ms-DOS®, ni Windows 95, ni Windows 98 y tampoco puede
accederla, tiene formato de compresión nativa, permite encriptación,
soporta 2 TB, no se recomienda en sistemas con menos de 400 MB. Se
utiliza para Microsoft® Windows XP y Microsoft® Windows Vista y Windows
7. Los sistemas operativos Windows XP, Vista y 7 de Microsoft® reconocen
el sistema de archivos FAT, FAT32, NTFS, el CDFS utilizado en CD-ROM,
el UDF utilizado en DVD-ROM y el LFS para discos sin registro de arranque
maestro.

 exFAT: proviene de (“EXtended File Allocation Table“), que significa tabla


de localización de archivos extendida, el cuál se diseño para su uso en
dispositivos dealmacenamiento electrónico basados en el uso de tecnología
de memoria NAND, tales como memorias USB y unidades SSD, para ser
utilizado con versiones de Microsoft® Windows CE, es importante
mencionar que Windows  Vista y 7 tienen soporte para el formateo con este
sistema de archivos, al igual que MacOS® y Linux. Una característica
importante es que Permite almacenar hasta 1000 archivos en una carpeta.

Nuevos sistema de archivos de Microsoft®

 WinFS: proviene de 2 significados diferentes: (“Windows Future Storage“) y


(“Windows File System“), significando almacenamiento de “Windows” del
futuro y sistema de archivos de “Windows“. Este sistema fue desarrollado
por Microsoft® para facilitar la clasificación y las búsquedas de archivos,
utilizando un modo distinto a lo que actualmente conocemos como sistemas
de directorios y archivos, basado en funciones de búsqueda utilizadas en
las bases de datos como SQL; por lo que no se definió de manera clara si
WinFS se trataba de un sistema de archivos al 100% ó como un agregado
al sistema NTFS. Este sistema de archivos se vislumbró como propuesta
para su uso con Microsoft® Windows 7, pero no se concretó el proyecto y
se conserva NTFS en tal sistema operativo.

El sistema de archivos de MacOS de Apple®

 HFS/HFS+: significa (“Hierarquical File System”) ó sistema de archivos por

jerarquía, s ustituyo al MFS (“Macintosh File System”)


y el símbolo + indica extendido, es decir, la última versión de HFS. Fué
desarrollado por Apple®, admite el uso de direcciones de espacio en disco
de 64 bits y permite utilizar bloques de asignación de archivos de 32 bits
con el fin de potenciar la eficiencia del disco al reducir la utilización de
espacio en volúmenes de gran tamaño o con un número elevado de
archivos. Admite nombres de archivo más descriptivos, con una longitud
máxima de 255 caracteres y codificación de texto Unicode para los
nombres de archivo internacionales o con sistemas de escritura mixtos,
también ofrece un formato opcional de sistema de archivos con distinción
de mayúsculas y minúsculas para HFS+ que permite al administrador alojar
sinproblemas archivos utilizados por aplicaciones UNIX que requieren esta
función. Los sistemas operativos modernos MacOS de Apple® reconocen el
sistema de archivos HFS, HFS+, FAT, FAT32, el CDFS utilizado en CD-
ROM y el UDF utilizado en DVD-ROM.

REPORT THIS AD

REPORT THIS AD

HFS

Sistema de archivos de Sun® Solaris

 ZFS: significa (“Zettabyte File System”) ó sistema de archivos

ZettaByte,  desarrollado por Sun


Microsystems para el sistema operativo Solaris. Es un robusto sistema de
ficheros de 128 bits, creado para superar las expectativas de cualquier
sistema real, cuenta un sistema ligero de ficheros, nueva estructura
de almacenamiento en disco y administración simple de espacio y un
sistema de ahhutor reparación denominado “Self-healing” entre muchas
otras características que permiten su implementación en
grandes servidores.
Bibliografia

https://reynaldo-entrada-salida.es.tl/Entrada-y-salida-Programada.htm

http://icaro.eii.us.es/descargas/Entrada-Salida(AC06-07).pdf

S-ar putea să vă placă și