lunes, 24 de noviembre de 2014

NORMATIVAS LEGALES Y ÉTICAS

NORMATIVAS LEGALES Y ÉTICAS

- Derecho de autor:Cuando una persona inventa o crea algo, ésta puede recurrir al derecho para patentar su idea. Así, su invención puede ser usada por otros, velando para que su creación no sea usufructuada por parte de terceros o sencillamente para evitar el hacer pasar esa idea como propia.


Ahora desde una visión del profesor, éste utiliza en muchas instancias libros, software, webs, folletos, etc. que están resguardados por este derecho. Gracias a ello, podemos reproducir canciones, distribuir copias, mostrar dramatizaciones respecto a esa creación, etc., y poder así entregar de mejor forma el conocimiento.

- Problemas:
Sin embargo existen aun grandes vacíos, centrados en que al ser caros algunos libros o software, recurrimos a la piratería, no respetando el derecho de autor, ya que no le pedimos al creador su autorización o no compramos la licencia para utilizar sus ideas, cayendo en un delito.

- Soluciones:
Eliminar el IVA de los libros o software que ayuden a la educación.
Expandir el conocimiento y aplicación sobre el Creative Commons, y así podamos disfrutar de las nuevas creaciones respetando la autoría, siguiendo los parámetros que el creador ha impuesto a su obra, y de paso, evitando la piratería que se realiza a través de la comercialización ilegal de esas ideas.

ATAQUES

ATAQUES

Un ataque informático es un método por el cual un individuo, mediante un sistema informático, intenta tomar el control, desestabilizar o dañar otro sistema informático (ordenador, red privada, etcétera).
Hay diversos tipos de ataques informáticos. Algunos son:
  • Ataque de denegación de servicio,1 también llamado ataque DoS (Denial of Service), es un ataque a un sistema de computadoras o red que causa que un servicio o recurso sea inaccesible a los usuarios legítimos, normalmente provocando la pérdida de la conectividad de la red por el consumo del ancho de banda de la red de la víctima o sobrecarga de los recursos computacionales del sistema de la víctima.
  • Man in the middle,2 a veces abreviado MitM, es una situación donde un atacante supervisa (generalmente mediante un rastreador de puertos) una comunicación entre dos partes y falsifica los intercambios para hacerse pasar por una de ellas.
  • Ataques de REPLAY,3 una forma de ataque de red, en el cual una transmisión de datos válida es maliciosa o fraudulentamente repetida o retardada. Es llevada a cabo por el autor o por un adversario que intercepta la información y la retransmite, posiblemente como parte de un ataque enmascarado.
  • Ataque de día cero, ataque realizado contra un ordenador, a partir del cual se explotan ciertas vulnerabilidades, oagujeros de seguridad de algún programa o programas antes de que se conozcan las mismas, o que, una vez publicada la existencia de la vulnerabilidad, se realice el ataque antes de la publicación del parche que la solvente.

VIRUS

VIRUS

Un virus informático es un malware que tiene por objeto alterar el normal funcionamiento del ordenador, sin el permiso o el conocimiento del usuario. Los virus, habitualmente, reemplazan archivos ejecutables por otros infectados con el código de este. Los virus pueden destruir, de manera intencionada, los datos almacenados en una computadora, aunque también existen otros más inofensivos, que solo se caracterizan por ser molestos.

Los virus informáticos tienen, básicamente, la función de propagarse a través de un software, no se replican a sí mismos porque no tienen esa facultad ,como el gusano informático, son muy nocivos y algunos contienen además una carga dañina (payload) con distintos objetivos, desde una simple broma hasta realizar daños importantes en los sistemas, o bloquear las redes informáticas generando tráfico inútil.

El funcionamiento de un virus informático es conceptualmente simple. Se ejecuta un programa que está infectado, en la mayoría de las ocasiones, por desconocimiento del usuario. El código del virus queda residente (alojado) en la memoria RAM de la computadora, incluso cuando el programa que lo contenía haya terminado de ejecutarse. El virus toma entonces el control de los servicios básicos del sistema operativo, infectando, de manera posterior, archivos ejecutables que sean llamados para su ejecución. Finalmente se añade el código del virus al programa infectado y se graba en el disco, con lo cual el proceso de replicado se completa.

FIREWALL

FIREWALL

Un cortafuegos (firewall en inglés) es una parte de un sistema o una red que está diseñada para bloquear el acceso no autorizado, permitiendo al mismo tiempo comunicaciones autorizadas.
Se trata de un dispositivo o conjunto de dispositivos configurados para permitir, limitar, cifrar, descifrar, el tráfico entre los diferentes ámbitos sobre la base de un conjunto de normas y otros criterios.
Los cortafuegos pueden ser implementados en hardware o software, o una combinación de ambos. 

Los cortafuegos se utilizan con frecuencia para evitar que los usuarios de Internet no autorizados tengan acceso a redes privadas conectadas a Internet, especialmente intranets. Todos los mensajes que entren o salgan de la intranet pasan a través del cortafuegos, que examina cada mensaje y bloquea aquellos que no cumplen los criterios de seguridad especificados. También es frecuente conectar al cortafuegos a una tercera red, llamada «zona desmilitarizada» o DMZ, en la que se ubican los servidores de la organización que deben permanecer accesibles desde la red exterior.

Un cortafuegos correctamente configurado añade una protección necesaria a la red, pero que en ningún caso debe considerarse suficiente. La seguridad informática abarca más ámbitos y más niveles de trabajo y protección.

ACTUALIZACIONES

ACTUALIZACIONES

Quizá sea un cliché hablar sobre el ritmo de la tecnología y sus constantes cambios y sobre la necesidad de adelantarse a los acontecimientos. Pero los clichés surgen por una razón, ya que hay cierta verdad en ellos. En el caso del software informático y, especialmente del software de seguridad de Internet se habla continuamente del ritmo de la tecnología.

Históricamente, el software informático era una forma estática de tecnología. Se compraba un programa, se cargaba en el equipo y se utilizaba "tal cual" hasta que aparecía la siguiente versión. Sin embargo, ese modelo ya no es aplicable. El mundo digital actual está en constante cambio y, con el fin de que los últimos avances estén disponibles de inmediato, el software es ahora mucho más dinámico. Muchos programas pueden descargar actualizaciones por Internet e incorporar eficazmente la nueva tecnología en el software original. Claro está que no todas las actualizaciones son de vital importancia. Si se trata del software de un procesador de texto o un videojuego, no es fundamental actualizar el programa entre una versión y otra. No obstante, si se trata de software de seguridad, pasar por alto las actualizaciones puede tener consecuencias graves.

El problema: las amenazas cambian constantemente
Una vez que se carga un software de seguridad, su eficacia depende de la información disponible en el momento del desarrollo. Mientras tanto, los creadores de virus, los piratas informáticos y otros individuos malintencionados generan continuamente nuevas e ingeniosas formas de atacar a sus objetivos. Esto tiene consecuencias críticas en lo que se refiere a vulnerabilidades. Por más que haya instalado un nuevo software antivirus hace unos meses, el usuario podría seguir siendo vulnerable a una gran cantidad de posibles ataques de virus nuevos.

Los virus pueden atacar los recursos del sistema, infectar los datos o, incluso, volver a formatear el disco duro. Son una amenaza grave en constante desarrollo y no son el único tipo de peligro a la vanguardia. Los ataques a la seguridad continúan apareciendo en diversas formas y tamaños. Por ejemplo, muchos usuarios individuales ahora utilizan los servicios de conexión de banda ancha para estar online todo el tiempo. Como consecuencia, han aumentado los ataques directos de piratas informáticos en los ordenadores domésticos. A los piratas informáticos les encanta atacar a los usuarios que están "siempre online", y desarrollan continuamente nuevas formas de infiltrarse en los ordenadores domésticos que están conectados de forma permanente. Otros nuevos ataques son más sutiles; se utilizan anuncios de Internet para tentar a los consumidores y sonsacar información privada o, lo que es peor, utilizan Internet para establecer contacto con niños de manera inadecuada.
La Solución: protección en constante desarrollo

No obstante, no se trata de una situación imposible de resolver. A medida que las amenazas evolucionan, también lo hacen las tecnologías antiamenazas. Los expertos en seguridad como Symantec trabajan continuamente para anticiparse y responder ante nuevas formas de ataques. Una vez que se conoce un método de ataque novedoso, no pasa mucho tiempo hasta que Symantec encuentra una forma de identificar la amenaza, impedir su propagación y remediar sus efectos. No obstante, desarrollar tecnologías nuevas y estrategias de respuesta es sólo parte de la solución. Las últimas tecnologías y la información deben recorrer un camino que va desde el laboratorio de desarrollo hasta el equipo de escritorio de los usuarios. Es ahí donde las actualizaciones del programa e Internet entran en juego.

Actualizaciones de software e Internet
Los fabricantes de software comprenden el beneficio de desarrollar y ofrecer actualizaciones de los programas. Por ejemplo, el creador de su sistema operativo seguramente desarrolla actualizaciones del sistema con regularidad. Estas actualizaciones casi siempre llegan a su ordenador a través de Internet. Lo mismo ocurre con el software del navegador de Internet. Muchas veces, estas actualizaciones están relacionadas con la funcionalidad y las funciones básicas. Otras veces, tratan problemas más críticos, como la seguridad. Cualquiera que sea el caso, probablemente ya está acostumbrado a actualizar el software y a utilizar Internet para hacerlo.

Internet es un vehículo de particular importancia para las actualizaciones de software de seguridad. Quizá sea una ironía que el mismo medio utilizado para la propagación de virus y otras amenazas sea además un mecanismo de distribución de la tecnología antiamenazas. Pero la realidad es que las empresas de seguridad pueden utilizar Internet de manera tan eficaz como los piratas informáticos. De hecho, Internet se ha convertido en el principal método de distribución de actualizaciones de seguridad.

ADMINISTRACIÓN DE CONTRASEÑAS

ADMINISTRACIÓN DE CONTRASEÑAS

Un administrador o gestor de contraseñas es un programa que se utiliza para almacenar una gran cantidad de parejas usuario/contraseña. La base de datos donde se guarda esta información está cifrada mediante una única clave (contraseña maestra o en inglés master password), de forma que el usuario sólo tenga que memorizar una clave para acceder a todas las demás. Esto facilita la administración de contraseñas y fomenta que los usuarios escojan claves complejas sin miedo a no ser capaces de recordarlas posteriormente.

POLÍTICAS DE USUARIO

POLÍTICAS DE USUARIO

La contraseña se debe considerar al mismo nivel que la firma escrita, es decir, es algo estríctamente personal y utilizado junto con el nombre de usuario para determinar de forma fehaciente quien realiza una operación, ya que en muchos casos se manejan datos críticos y con un alto grado de confidencialidad. Por ello siempre deben observarse las siguientes directrices:
Todo usuario debe acceder siempre al sistema con el nombre de usuario que le ha sido asignado.
  • La contraseña es personal e intransferible, por lo que nunca debe cederse o compartirse a terceras personas ni comunicarse por ningún medio escrito. Lo contrario supondría permitir una suplantación de personalidad.
  • Las contraseñas no se transmitirán de forma oral cuando exista el riesgo de que terceras personas puedan llegar a conocerlas.
  • Cuando un usuario olvide su contraseña se le deberá asignar otra nueva.
  • La contraseña debe tener una longitud mayor o igual a seis caracteres. No debe coincidir con ninguna palabra o nombre (el de la persona, familiar, aficiones, obtenida de un diccionario, etc.) que pueda permitir que una tercera persona la adivine.
  • Las contraseñas deben ser cambiadas periódicamente.
  • El administrador de usuarios informará a sus usuarios de todas estas políticas y velará por su cumplimiento.
Se debe diferenciar el puesto de trabajo de un usuario de su nombre de usuario y contraseña. Cuando un usuario se traslade de puesto de trabajo, conserva su nombre y contraseña, aunque trabaje en otro lugar.

INTRODUCCIÓN A LA SEGURIDAD

INTRODUCCIÓN A LA SEGURIDAD


Los riesgos, en términos de seguridad, se caracterizan por lo general mediante la siguiente ecuación.
La amenaza representa el tipo de acción que tiende a ser dañina, mientras que la vulnerabilidad (conocida a veces como falencias (flaws) o brechas (breaches)) representa el grado de exposición a las amenazas en un contexto particular. Finalmente, la contramedida representa todas las acciones que se implementan para prevenir la amenaza.
Las contramedidas que deben implementarse no sólo son soluciones técnicas, sino también reflejan la capacitación y la toma de conciencia por parte del usuario, además de reglas claramente definidas.
Para que un sistema sea seguro, deben identificarse las posibles amenazas y por lo tanto, conocer y prever el curso de acción del enemigo. Por tanto, el objetivo de este informe es brindar una perspectiva general de las posibles motivaciones de los hackers, categorizarlas, y dar una idea de cómo funcionan para conocer la mejor forma de reducir el riesgo de intrusiones.

Técnicas y herramientas de respaldo de datos

Técnicas y herramientas de respaldo de datos




La palabra "Backup" significa subir respaldo, siendo común el uso de este término dentro del ámbito informático. El respaldo de información es la copia de los datos importantes de un dispositivo primario en uno ó varios dispositivos secundarios, ello para que en caso de que el primer dispositivo sufra una avería electromecánica ó un error en su estructura lógica, sea posible contar con la mayor parte de la información necesaria para continuar con las actividades rutinarias y evitar pérdida generalizada de datos.

Gestión de actualizaciones

Gestión de actualizaciones


Todas las empresas de software recomiendan la actualización periódica desde la Red de sus programas informáticos cuando estén ejecutados en el escritorio del ordenador del usuario. Así se dota al equipo de una mayor estabilidad. Las actualizaciones añaden funcionalidades nuevas, mejoran las ya existentes y corrigen agujeros de seguridad. Sin embargo, un ordenador con programas en plena actualización puede convertirse en una máquina lenta y torpe; en consecuencia, conviene gestionarlas para que no se produzcan de manera simultánea.

CREACIÓN Y REDIMENSIÓN DE PARTICIÓN DEL DISCO DURO

CREACIÓN Y REDIMENSIÓN DE PARTICIÓN DEL DISCO DURO

Una partición de disco, en mantenimiento, es el nombre genérico que recibe cada división presente en una sola unidad física de almacenamiento de datos. Toda partición tiene su propio sistema de archivos (formato); generalmente, casi cualquier sistema operativo interpreta, utiliza y manipula cada partición como un disco físico independiente, a pesar de que dichas particiones estén en un solo disco físico.

Administración de discos


ADMINISTRACIÓN DE DISCOS


Con Microsoft Windows 2000 el tema del almacenamiento local y de red se ha simplificado para el usuario. Windows 2000 Server proporciona soporte tanto para almacenamiento remoto como para almacenamiento local y en medios extraíbles -todo de forma completamente transparente al usuario-. A la larga, el usuario no tiene que preocuparse de si un programa o archivo se almacena en disco, en cinta o en cualquier parte de Internet, sólo de que esté disponible cuando sea necesario.

Sistemas de archivos

SISTEMAS DE ARCHIVOS

El sistema de archivos o ficheros (en inglés:filesystem) 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.

Lo habitual es utilizar dispositivos de almacenamiento de datos que permiten el acceso a los datos como una cadena de bloques de un mismo tamaño, a veces llamados sectores, usualmente de 512 bytes de longitud (También denominados clústers). El software del sistema de archivos es responsable de la organización de estos sectores en archivos y directorios y mantiene un registro de qué sectores pertenecen a qué archivos y cuáles no han sido utilizados. En la práctica, un sistema de archivos también puede ser utilizado para acceder a datos generados dinámicamente, como los recibidos a través de una conexión de red (sin la intervención de un dispositivo de almacenamiento).
Los sistemas de archivos tradicionales proveen métodos para crear, mover, renombrar y eliminar tanto archivos como directorios, pero carecen de métodos para crear, por ejemplo, enlaces adicionales a un directorio o archivo (enlace duro en Unix) o renombrar enlaces padres (".." en Unix).

El acceso seguro a sistemas de archivos básicos puede estar basado en los esquemas de lista de control de acceso o capacidades. Las listas de control de acceso hace décadas que demostraron ser inseguras, por lo que los sistemas operativos experimentales utilizan el acceso por capacidades. Los sistemas operativos comerciales aún funcionan con listas de control de acceso.

Gestión de recursos


GESTIÓN DE RECURSOS

Los entornos informáticos modernos deben proporcionar una respuesta flexible a las diferentes cargas de trabajo que generan las distintas aplicaciones de un sistema. Una carga de trabajo es una adición de todos los procesos de una aplicación o grupo de aplicaciones. Si no se utilizan las funciones de gestión de recursos, el sistema operativo Oracle Solaris responde a las demandas de carga de trabajo adaptándose a las nuevas solicitudes de aplicaciones de forma dinámica. Esta respuesta predeterminada general significa que toda la actividad del sistema tiene el mismo acceso a los recursos. Las funciones de gestión de recursos le permiten tratar las cargas de trabajo individualmente. Puede realizar lo siguiente:
Restringir el acceso a un recurso específico.
Ofrecer recursos a las cargas de trabajo de modo preferencial.
Aislar cargas de trabajo entre sí.
La capacidad de minimizar los compromisos de rendimiento de varias cargas de trabajo, junto con las funciones que supervisan el uso de los recursos, se denomina administración de recursos. La administración de recursos se implementa a través de un conjunto de algoritmos. Los algoritmos controlan las series de solicitudes de capacidades que presenta una aplicación durante su ejecución.
Las funciones de administración de recursos permiten modificar el comportamiento predeterminado del sistema operativo con respecto a las diferentes cargas de trabajo. El comportamiento hace referencia principalmente al conjunto de decisiones que toman los algoritmos del sistema operativo cuando una aplicación presenta una o más solicitudes de recursos para el sistema. Puede utilizar las funciones de administración de recursos para:
Denegar recursos o preferir una aplicación para un conjunto de asignaciones mayor que no se permitiría con otra aplicación.
Tratar determinadas asignaciones de forma colectiva en lugar de utilizar mecanismos aislados.
La implementación de una configuración del sistema que utilice las funciones de administración de recursos puede tener varias finalidades. Puede realizar lo siguiente:
Impedir a una aplicación el consumo indiscriminado de recursos.
Cambiar una prioridad de aplicación basándose en eventos externos.
Equilibrar las garantías de recursos para un conjunto de aplicaciones con el fin de maximizar el uso del sistema.
Al planificar una configuración administrada por recursos, algunos de los requisitos clave son:
Identificar las cargas de trabajo implicadas en el sistema.
Distinguir las cargas de trabajo que no están en conflicto de las que tienen requisitos de rendimiento que afectan a las cargas de trabajo principales.
Una vez identificadas las cargas de trabajo conflictivas y las de cooperación, puede crear una configuración de recursos que presente el menor compromiso para los objetivos de servicio del negocio, dentro de las limitaciones de las funciones del sistema.
El sistema Oracle Solaris cuenta con una gestión de recursos eficaz que ofrece mecanismos de control, de notificación y de supervisión. Muchas de estas funciones se proporcionan a través de mejoras en los mecanismos existentes, como el sistema de archivos proc, los conjuntos de procesadores y las clases de planificación. Otras funciones son específicas de la administración de recursos. Estas funciones se describen en los capítulos siguientes.

Gestión de cuentas de usuario


GESTIÓN DE CUENTAS DE USUARIO

En el contexto de la informática, un usuario es una persona que utiliza un sistema informático. Para que los usuarios puedan obtener seguridad, acceso al sistema, administración de recursos, etc, dichos usuarios deberán identificarse. Para que uno pueda identificarse, el usuario necesita una cuenta (una cuenta de usuario) y un usuario, en la mayoría de los casos asociados a una contraseña. Los usuarios utilizan una interfaz de usuario para acceder a los sistemas, el proceso de identificación es conocido como identificación de usuario o acceso del usuario al sistema (del inglés: "log in").
Los usuarios se caracterizan por ser el tipo de personas que utilizan un sistema sin la amplia experiencia necesaria que se requiere para entender al sistema (en oposición al técnico, hacker u otro perfil que sí se presupone conoce dicho sistema). En el contexto hacker, se les denomina usuarios reales. Véase también Usuario final.
Los usuarios de informática son muy similares a los usuarios en telecomunicaciones, pero con algunas pequeñas diferencias semánticas. La diferencia es comparable a la diferencia que existe entre un usuario final y los consumidores en la economía.
Por ejemplo, uno puede ser un usuario (y tener una cuenta) de un sistema informático, una red de computadoras o tener una cuenta de correo electrónico.

Organización del sistema

ORGANIZACIÓN DEL SISTEMA

La organización del sistema operativo consta del primer nivel que es el mas bajo, contiene contacto directo con los dispositivos electrónicos y es el núcleo.
en el segundo se encuentran la manipulación de los discos, el monitor,teclado y la gestión de los procesos son rutinas que implementan los servicios que ofrece el sistema operativo.
En el tercero se encuentra el gestor de la memoria y de archivos.
Por ultimo se encuentran los procesos que permiten la comunicación del usuario con el sistema operativo: las ordenes propias del sistema operativo y el caparazón entre los niveles inmediatamente superior e inferior solo es posible la comunicación.

domingo, 23 de noviembre de 2014

Administracion de S.O

Administracion de S.O



  •  Introduccion al proceso de administracion de S.O
Introducción El siguiente documento describe las características que presentan los sistemas operativos para la administración de procesos en los sistemas mono y multiprocesadores. Se comienza con una introducción sobre la funcionalidad de un proceso para luego entrar en los detalles de implementación típicos de los sistemas operativos. Aún no termine la totalidad del documento pero lo quiero publicar en Internet para obtener feedback por parte de los lectores interesados en el mismo.

  • ¿Qué es un proceso?

Un proceso es un programa en ejecución. Un proceso simple tiene un hilo de ejecución, por el momento dejemos esta última definición como un concepto, luego se verá en más detalle el concepto de hilo. Una vez definido que es un proceso nos podríamos preguntar cuál es la diferencia entre un programa y un proceso, y básicamente la diferencia es que un proceso es una actividad de cierto tipo que contiene un programa, entradas salidas y estados.

Los procesos pueden ser cooperantes o independientes, en el primer caso se entiende que los procesos interactúan entre sí y pertenecen a una misma aplicación. En el caso de procesos independientes en general se debe a que no interactúan y un proceso no requiere información de otros o bien porque son procesos que pertenecen a distintos usuarios.

  • Estados de los procesos

Un proceso puede estar en cualquiera de los siguientes tres estados: Listo, En ejecución y Bloqueado.
Los procesos en el estado listo son los que pueden pasar a estado de ejecución si el planificador los selecciona. Los procesos en el estado ejecución son los que se están ejecutando en el procesador en ese momento dado. Los procesos que se encuentran en estado bloqueado están esperando la respuesta de algún otro proceso para poder continuar con su ejecución. Por ejemplo operación de E/S.

  • Implantación de los procesos

La implementación del modelo de procesos se logra debido a que el sistema operativo almacena en una tabla denominada tabla de control de procesos información relativa a cada proceso que se esta ejecutando en el procesador. Cada línea de esta tabla representa a un proceso.

La información que se almacena es la siguiente:
1) Identificación del proceso.
2) Identificación del proceso padre.
3) Información sobre el usuario y grupo.
4) Estado del procesador.
5) Información de control de proceso
5.1) Información del planificador.
5.2) Segmentos de memoria asignados.
5.3) Recursos asignados.

Comunicación entre procesos

  • Condiciones de competencia

Las condiciones de competencia se dan cuando dos o más procesos intentan acceder a un mismo recurso.

  • Secciones críticas

Para solucionar las condiciones de competencia se implementó un modelo para prohibir que dos procesos accedan al mismo recurso. El modelo en cuestión se denomina exclusión mutua.

Exclusión mutua con espera ocupada
Las soluciones con espera ocupada funcionan de la siguiente manera, cuando un proceso intenta ingresar a su región crítica, verifica si esta permitida la entrada. Si no, el proceso se queda esperando hasta obtener el permiso.

  • Desactivación de interrupciones

El método más simple para evitar las condiciones de competencia es hacer que cada proceso desactive todas sus interrupciones antes de entrar a su sección crítica y las active una vez que salio de la misma. Este modelo como se puede observar, éste modelo tiene una gran problema y es que si se produce una falla mientras que el proceso esta en la región crítica no se puede salir de la misma y el sistema operativo no recuperaría el control.

  • Variables cerradura

En éste caso se genera una variable la cual puede tener dos valores o bien 0 (no hay ningún proceso en su sección crítica) o bien 1 (indicando que la sección crítica está ocupada) entonces cada proceso antes de ingresar a la sección crítica verifica el estado de la variable de cerradura y en caso de que la misma este en 0, le cambia el valor e ingresa a la misma y en caso de que la misma sea 1 el proceso se queda verificando el estado de la misma hasta que el mismo sea 0.

El problema aquí se presenta si dos procesos verifican al mismo tiempo que la variable cerradura esta en 0 e ingresan a la región crítica.


  • Alternancia estricta

El algoritmo de alternancia estricta no bloquea el ingreso a la región crítica cuando otro proceso se esta ejecutando. El problema de ésta solución es que cuando un proceso no esta en la sección crítica igualmente tiene bloqueado el acceso a la misma y por lo tanto no permite que otro proceso que requiera ingresar a la misma logre hacerlo.


  • Instrucción TSL

Esta solución requiere ayuda del hardware y es debido a que en general las computadoras diseñadas para tener más de un procesador tienen una instrucción TEST AND SET LOCK

Dormir y despertar
El modelo de espera acotada tienen el inconveniente que se desperdicia tiempo de procesador.

  • El problema del productor y el consumidor

El problema del productor y el consumidor describe el echo de que cuando hay dos o más procesos interactuando a través de un buffer común habiendo procesos que ponen información o datos y otros que los sacan se pueden llegar a dar condiciones en las cuales los procesos que ingresan los datos no puedan hacerlo debido a que el buffer ya se encuentra lleno y para el caso de los que sacan los datos del buffer intenten sacar datos cuando ya no hay nada que sacar. Para evitar estas condiciones se desarrollaron métodos de comunicación/sincronización entre procesos en los cuales se impide que esto suceda haciendo que el proceso productor "duerma" si el buffer está lleno y una vez que exista espacio el proceso "consumidor" despierte al productor para que siga generando o viceversa.

  • Planificación de procesos

La planificación es el proceso por el cual el sistema operativo selecciona que proceso ejecutar. La selección del proceso se basa en alguno de los algoritmos de planificación que se describen más abajo.

  • Expulsión

Es la característica por el cual el sistema operativo puede o no expulsar del estado de ejecución a un proceso dado. En este sentido entonces tenemos la planificación apropiativa en la cual el sistema operativo puede cortar en cualquier momento la ejecución de un proceso y la planificación no apropiativa en la cual una vez que el proceso esta en ejecución el sistema operativo no puede sacarlo de ese estado.

  • Objetivos de la planificación

Los objetivos de la planificación de proceso son:
Equidad, todos los procesos deben poder ejecutarse
Eficacia, mantener ocupada la CPU un 100% del tiempo
Tiempo de respuesta, minimizar el tiempo de respuesta al usuario
Tiempo de regreso, minimizar el tiempo que deben esperar los usuarios por lotes para obtener sus resultados
Rendimiento, maximizar el número de tareas procesadas por hora.

  • Algoritmos de planificación

Los algoritmos de planificación son los que definen que política se va a seguir para que un proceso pase al estado de ejecución.

  • Planificación Round-Robin

En este tipo de planificación cada proceso tiene asignado un quantum de tiempo para ejecutarse y en el caso de que no pueda terminar la ejecución en su quantum el proceso pasa de nuevo a la cola de procesos para ser ejecutado por otro quantum luego de recorrer la cola para asegurarse que todos los procesos reciban ese quantum de procesamiento.

  • Planificación por prioridad

En la planificación round-robin todos los procesos son tratados con la misma prioridad. Para el caso de este tipo de planificación a cada proceso se le asigna una prioridad y los mismos son ejecutados

  • Colas múltiples

Las colas múltiples están basadas en una pila que sirve como índice de una lista de procesos que se tienen que ejecutar.
Primero el trabajo más corto
Este tipo de algoritmo de planificación se usa para trabajos en batch o de procesamiento or lotes en los cuales se puede saber cual es el tiempo de duración de la ejecución de cada proceso y entonces se puede seleccionar primero el trabajo más corto. El problema que se presenta con éste algoritmo es que los grandes procesos podrían sufrir de inanición dado que cualquier proceso pequeño se "cuela" sobre uno de mayor tamaño y como resultado final se podría dar el caso que el proceso grande nunca
obtenga procesamiento.

  • Planificación garantizada

En este modelo de planificación se tiene en cuenta la cantidad de usuarios en el sistema y se le asigna a cada uno el tiempo de ejecución de 1/n (siendo n la cantidad total de usuarios) de esa forma el planificador tiene que llevar cuenta del tiempo de ejecución de los procesos y balancear el tiempo que están utilizando el procesador para cumplir con la ecuación previa.

  • Procesos ligeros

Los procesos ligeros son programas en ejecución son básicamente procesos pero a diferencia de éstos últimos que solo tienen un hilo de ejecución los primeros tienen el hilo principal más hilos secundarios o hijos, en éste caso todos los procesos hijos comparten la información del hilo principal pero además puede cada hilo tener su información privada.

Dentro de la información propia tenemos:
  • Contador de programa
  • Pila
  • Registros.
  • Estado del proceso ligero.
  • Dentro de la información compartida tenemos:
  • Variables globales.
  • Archivos abiertos
  • Señales
  • Semáforos.
  • Contabilidad.

Señales
Las señales son el mecanismo de comunicación que se establece entre los procesos. Para comparar se puede decir que las señales son a los procesos lo que las interrupciones son al procesador. Cuando un proceso recibe una señal detiene su ejecución, bifurca a la rutina del tratamiento de la señal que esta en el mismo proceso y luego una vez finalizado sigue la ejecución en el punto que había bifurcado anteriormente.

Las señales se pueden originar en un proceso o bien en el sistema operativo. Las señales se pueden enviar entre procesos, solo los que tengan el mismo uid, o bien el sistema operativo puede enviarle una señal a un proceso, por ejemplo excepciones de ejecución.