miércoles, 5 de diciembre de 2012

Historia de los Sistemas Operativos


UNIVERSIDAD VALLE DEL GRIJALVA

TEMA: HISTORIA DE LOS SISTEMAS OPERATIVOS


MATERIA: SISTEMAS OPERATIVOS


ING. ALEJANDRO RUIZ MELGAR


ALUMNOS: ISAAC RESINOS LOPEZ

Jonathan Pérez Vela


ING. SISTEMAS COMPUTACIONALES


TUXTLA GUTIERREZ CHIAPAS MEXICO


30 DE NOVIEMBRE DEL 2012










OBJETIVO GENERAL
La historia de los sistemas operativos es bastante pero muy atractiva ya que a finales de los 40 apareció la primera generación de las computadoras, en los 50 el objetivo era la interacción entre la persona y la computadora, en los 60 fue la aparición de los circuitos integrados, en los 70 marcaron el inicio de UNIX, en los 80 Con la creación de los circuitos LSI -integración a gran escala-, chips que contenían miles de transistores en un centímetro cuadrado de silicio, empezó el auge de los ordenadores personales.

OBJETIVO ESPECIFICO

Es que con el transcurso del tiempo los sistemas operativos van avanzando con un gran éxito ya que se van modificando muchas partes que anterior mente no están funcionando.

HISTORIA DE LOS SISTEMAS OPERATIVOS

Un sistema operativo es un conjunto de programas destinado a permitir el uso apropiado de las partes físicas del ordenador (hardware).
Los sistemas operativos proveen un conjunto de funciones necesarias y usadas por diversos programas de aplicaciones de una computadora, y los vínculos necesarios para controlar y sincronizar el hardware de la misma. En las primeras computadoras, que no tenían sistema operativo cada programa necesitaba la más detallada especificación del hardware para ejecutarse correctamente y desarrollar tareas estándares, y sus propios drivers para los dispositivos periféricos como impresoras y lectores de tarjetas perforadas. El incremento de la complejidad del hardware y los programas de aplicaciones eventualmente hicieron del sistema operativo una necesidad.
Los primeros sistemas operativos fueron desarrollados por cada usuario para adecuar el uso de su propia computadora central, y es en 1956 que la General Motors desarrolla lo que es hoy considerado el primer sistema, el GM-NAA I/O, para su IBM 704.

LA DÉCADA DE 1940
A finales de la década de 1940, con lo que se podría considerar la aparición de la primera generación de computadoras, se accedía directamente a la consola de la computadora desde la cual se actuaba sobre una serie de micro interruptores que permitían introducir directamente el programa en la memoria de la computadora (en realidad al existir tan pocas computadoras todos podrían considerarse prototipos y cada constructor lo hacía sin seguir ningún criterio predeterminado). Por aquel entonces no existían los sistemas operativos, y los programadores debían interactuar con el hardware del computador sin ayuda externa. Esto hacía que el tiempo de preparación para realizar una tarea fuera considerable. Además para poder utilizar la computadora debía hacerse por turnos. Para ello, en muchas instalaciones, se rellenaba un formulario de reserva en el que se indicaba el tiempo que el programador necesitaba para realizar su trabajo. En aquel entonces las computadoras eran máquinas muy costosas lo que hacía que estuvieran muy solicitadas y que sólo pudieran utilizarse en periodos breves de tiempo. Todo se hacía en lenguaje de máquina.

LA DÉCADA DE 1950      
El objeto de facilitar la interacción entre persona y computadora, los sistemas operativos hacen una aparición discreta y bastante simple, con conceptos tales como el monitor residente, el proceso por lotes y el almacenamiento temporal.

 MONITOR RESIDENTE
Su funcionamiento era bastante simple, se limitaba a cargar los programas a memoria, leyéndolos de una cinta o de tarjetas perforadas, y ejecutarlos. El problema era encontrar una forma de optimizar el tiempo entre la retirada de un trabajo y el montaje del siguiente.

PROCESAMIENTO POR LOTES
Como solución para optimizar, en una misma cinta o conjunto de tarjetas, se cargaban varios programas, de forma que se ejecutaran uno a continuación de otro sin perder apenas tiempo en la transición.

ALMACENAMIENTO TEMPORAL
Su objetivo era disminuir el tiempo de carga de los programas, haciendo simultánea la carga del programa o la salida de datos con la ejecución de la siguiente tarea. Para ello se utilizaban dos técnicas, el buffering y el spooling.

LA DÉCADA DE 1960
Se produjeron cambios notorios en varios campos de la informática, con la aparición del circuito integrado la mayoría orientados a seguir incrementando el potencial de los ordenadores. Para ello se utilizaban técnicas de lo más diversas.

MULTIPROGRAMACIÓN
En un sistema multi programado la memoria principal alberga a más de un programa de usuario. La CPU ejecuta instrucciones de un programa, cuando el que se encuentra en ejecución realiza una operación de E/S; en lugar de esperar a que termine la operación de E/S, se pasa a ejecutar otro programa. Si éste realiza, a su vez, otra operación de E/S, se mandan las órdenes oportunas al controlador, y pasa a ejecutarse otro. De esta forma es posible, teniendo almacenado un conjunto adecuado de tareas en cada momento, utilizar de manera óptima los recursos disponibles.

TIEMPO COMPARTIDO
En este punto tenemos un sistema que hace buen uso de la electrónica disponible, pero adolece la falta de interactividad; para conseguirla debe convertirse en un sistema multiusuario, en el cual existen varios usuarios con un terminal en línea, utilizando el modo de operación de tiempo compartido. En estos sistemas los programas de los distintos usuarios residen en memoria. Al realizar una operación de E/S los programas ceden la CPU a otro programa, al igual que en la multiprogramación. Pero, a diferencia de ésta, cuando un programa lleva cierto tiempo ejecutándose el sistema operativo lo detiene para que se ejecute otra aplicación.

TIEMPO REAL
Estos sistemas se usan en entornos donde se deben aceptar y procesar en tiempos muy breves un gran número de sucesos, en su mayoría externos al ordenador. Si el sistema no respeta las restricciones de tiempo en las que las operaciones deben entregar su resultado se dice que ha fallado. El tiempo de respuesta a su vez debe servir para resolver el problema o hecho planteado. El procesamiento de archivos se hace de una forma continua, pues se procesa el archivo antes de que entre el siguiente, sus primeros usos fueron y siguen siendo en telecomunicaciones.

MULTIPROCESADOR
Diseño que no se encuentran en ordenadores monoprocesador. Estos problemas derivan del hecho de que dos programas pueden ejecutarse simultáneamente y, potencialmente, pueden interferirse entre sí. Concretamente, en lo que se refiere a las lecturas y escrituras en memoria. Existen dos arquitecturas que resuelven estos problemas:
La arquitectura NUMA, donde cada procesador tiene acceso y control exclusivo a una parte de la memoria. La arquitectura SMP, donde todos los procesadores comparten toda la memoria. Esta última debe lidiar con el problema de la coherencia de caché. Cada microprocesador cuenta con su propia memoria cache local. De manera que cuando un microprocesador escribe en una dirección de memoria, lo hace únicamente sobre su copia local en caché. Si otro microprocesador tiene almacenada la misma dirección de memoria en su caché, resultará que trabaja con una copia obsoleta del dato almacenado.
Para que un multiprocesador opere correctamente necesita un sistema operativo especialmente diseñado para ello. La mayoría de los sistemas operativos actuales poseen esta capacidad.

SISTEMAS OPERATIVOS DESARROLLADOS
Además del Atlas Supervisor y el OS/360, los años 1970 marcaron el inicio de UNIX, a mediados de los 60 aparece Multics, sistema operativo multiusuario - multitarea desarrollado por los laboratorios Bell de AT&T y Unix, convirtiéndolo en uno de los pocos SO escritos en un lenguaje de alto nivel. En el campo de la programación lógica se dio a luz la primera implementación de Prolog, y en la revolucionaria orientación a objetos, Smalltalk.

 INCONVENIENTES DE LOS SISTEMAS OPERATIVOS
Se trataba de sistemas grandes, complejos y costosos, pues antes no se había construido nada similar y muchos de los proyectos desarrollados terminaron con costos muy por encima del presupuesto y mucho después de lo que se marcaba como fecha de finalización. Además, aunque formaban una capa entre el hardware y el usuario, éste debía conocer un complejo lenguaje de control para realizar sus trabajos. Otro de los inconvenientes es el gran consumo de recursos que ocasionaban, debido a los grandes espacios de memoria principal y secundaria ocupados, así como el tiempo de procesador consumido. Es por esto que se intentó hacer hincapié en mejorar las técnicas ya existentes de multiprogramación y tiempo compartido.
CARACTERÍSTICAS DE LOS NUEVOS SISTEMAS
SISTEMAS OPERATIVOS DESARROLLADOS
MULTICS (Multiplexed Information and Computing Service): Originalmente era un proyecto cooperativo liderado por Fernando Corbató del MIT, con General Electric y los laboratorios Bell, que comenzó en los 60, pero los laboratorios Bell abandonaron en 1969 para comenzar a crear el sistema UNIX. Se desarrolló inicialmente para el mainframe GE-645, un sistema de 36 bits; después fue soportado por la serie de máquinas Honeywell 6180.
Fue uno de los primeros. Además, los traducía a instrucciones de alto nivel destinadas a BDOS.
BDOS (Basic Disk Operating System): Traductor de las instrucciones en llamadas a la BIOS.
El hecho de que, años después, IBM eligiera para sus PC a MS-DOS supuso su mayor fracaso, por lo que acabó desapareciendo.

LA DÉCADA DE 1980
Con la creación de los circuitos LSI -integración a gran escala-, chips que contenían miles de transistores en un centímetro cuadrado de silicio, empezó el auge de los ordenadores personales. En éstos se dejó un poco de lado el rendimiento y se buscó más que el sistema operativo fuera amigable, surgiendo menús, e interfaces gráficas. Esto reducía la rapidez de las aplicaciones, pero se volvían más prácticos y simples para los usuarios. En esta época, siguieron utilizándose lenguajes ya existentes, como Smalltalk o C, y nacieron otros nuevos, de los cuales se podrían destacar: C++ y Eiffel dentro del paradigma de la orientación a objetos, y Haskell y Miranda en el campo de la programación declarativa. Un avance importante que se estableció a mediados de la década de 1980 fue el desarrollo de redes de computadoras personales que corrían sistemas operativos en red y sistemas operativos distribuidos. En esta escena, dos sistemas operativos eran los mayoritarios: MS-DOS (Micro Soft Disk Operating System), escrito por Microsoft para IBM PC y otras computadoras que utilizaban la CPU Intel 8088 y sus sucesores, y UNIX, que dominaba en los ordenadores personales que hacían uso del Motorola 68000.

MAC OS
El lanzamiento oficial del ordenador Macintosh en enero de 1984, al precio de US $1,995 (después cambiado a $2,495 dólares)[1]. Incluía su sistema operativo Mac OS cuya características novedosas era una GUI (Graphic User Interface), Multitareas y Mouse. Provocó diferentes reacciones entre los usuarios acostumbrados a la línea de comandos y algunos tachando el uso del Mouse como juguete.

MS-DOS
En 1981 Microsoft compró un sistema operativo llamado QDOS que, tras realizar unas pocas modificaciones, se convirtió en la primera versión de MS-DOS (Micro Soft Disk Operating System). A partir de aquí se sucedieron una serie de cambios hasta llegar a la versión 7.1, versión 8 en Windows Milenium, a partir de la cual MS-DOS dejó de existir como un componente del Sistema Operativo.

MICROSOFT WINDOWS
A mediados de los años 80 se crea este sistema operativo, pero no es hasta la salida de (Windows 95) que se le puede considerar un sistema operativo, solo era una interfaz gráfica del (MS-DOS) en el cual se disponía de unos diskettes para correr los programas. Hoy en día es el sistema operativo más difundido en el ámbito doméstico aunque también hay versiones para servidores como Windows NT. (Microsoft) ha diseñado también algunas versiones para superordenadores, pero sin mucho éxito. Años después se hizo el (Windows 98) que era el más eficaz de esa época. Después se crearía el sistema operativo de (Windows ME) (Windows Millenium Edition) aproximadamente entre el año 1999 y el año 2000. Un año después se crearía el sistema operativo de (Windows 2000) en ese mismo año. Después le seguiría el sistema operativo más utilizado en la actualidad, (Windows XP) y otros sistemas operativos de esta familia especializados en las empresas. Ahora el más reciente es (Windows 7) (Windows Seven) que salió al mercado el 22 de octubre del 2009, dejando atrás al (Windows Vista), que tuvo innumerables críticas durante el poco tiempo que duró en el mercado.

LA DÉCADA DE 1990
 GNU/LINUX
Este sistema al parecer es una versión mejorada de Unix, basado en el estándar POSIX, un sistema que en principio trabajaba en modo comandos. Hoy en día dispone de Ventanas, gracias a un servidor gráfico y a gestores de ventanas como KDE, GNOME entre muchos. Recientemente GNU/Linux dispone de un aplicativo que convierte las ventanas en un entorno 3D como por ejemplo Beryl o Compiz. Lo que permite utilizar Linux de una forma visual atractiva.
Existen muchas distribuciones actuales de Gnu/Linux (Debian, Fedora, Ubuntu, Slackware, etc.) donde todas ellas tienen en común que ocupan el mismo núcleo Linux. Dentro de las cualidades de Gnu/Linux se puede caracterizar el hecho de que la navegación a través de la web es sin riegos de ser afectada por virus, esto debido al sistema de permisos implementado, el cual no deja correr ninguna aplicación sin los permisos necesarios, permisos que son otorgados por el usuario. A todo esto se suma que los virus que vienen en dispositivos desmontables tampoco afectan al sistema, debido al mismo sistema de permisos.

REACTOS
 (React Operating System) es un sistema operativo de código abierto destinado a lograr la compatibilidad binaria con aplicaciones de software y controladores de dispositivos hechos para Microsoft Windows NT versiones 5.x en adelante (Windows XP y sus sucesores).
En 1996 un grupo de programadores y desarrolladores de software libre comenzaron un proyecto llamado FreeWin95 el cual consistía en implementar un clon de Windows 95. El proyecto estuvo bajo discusión por el diseño del sistema ya habiendo desarrollado la capa compatible con MS-DOS, pero lamentablemente esta fue una situación que no se completó. Para 1997 el proyecto no había lanzado ninguna versión, por lo que los miembros de éste, coordinados por Jason Filby, pudieron revivirlo. Se decidió cambiar el núcleo del sistema compatible con MS-DOS y de ahora en adelante basarlo en uno compatible con Windows NT y así el proyecto pudo seguir adelante con el nombre actual de React OS, que comenzó en febrero de 1998, desarrollando las bases del kernel y algunos drivers básicos.

SISTEMAS OPERATIVOS EN EL FUTURO
Se postulan como la alternativa de futuro frente a los sistemas operativos convencionales, pero existen tantas que no terminan de converger hacia un punto de eficacia masiva. La disponibilidad de aplicaciones operativas basada en la nube y que pueden llegar a sustituir a los Windows, Linux y Mac Os del mundo son innumerables. Veamos su importancia en la comunidad digital y las características principales que las sostienen como candidatas al título de sucesoras fundacionales del trinomio actual.
 ¿Cansados de los Windows y Linux de siempre? Si la respuesta es afirmativa, prepárate a sumergirte en el mundo diferente los sistemas operativos online, también llamados WebOS y que se separan radicalmente del concepto tradicional de sistema operativo. Los límites entre un verdadero sistema operativo y el conjunto de aplicaciones que representan una plataforma WebOS se mantienen difusos, según el diseño del que se hable en un momento determinado, pero en general, vamos a tratar a todos como si representaran un modelo genuino de soporte de software vital para lograr la comunicación eficaz entre la máquina y el usuario.
CONCLUSION
Pues se ve que los sistemas operativos son muy importantes para el ser humano ya que usamos las partes físicas del ordenador. Al transcurso del tiempo se esta viendo el avance notable de los sistemas operativos cada uno con su propia finalidad. Se están sustituyéndolos sistemas operativos que es un avance  tecnológico magnifico.




Gestión de la memoria



UNIVERSIDAD VALLE DEL GRIJALVA

TEMA: GESTION DE MEMORIA

MATERIA: SISTEMAS OPERATIVOS

ING. ALEJANDRO RUIZ MELGAR

ALUMNOS: ISAAC RESINOS LOPEZ
JONATHAN PERAZ VELA

ING. SISTEMAS COMPUTACIONALES

TUXTLA GUTIERREZ CHIAPAS MEXICO

27 DE NOVIEMBRE DEL 2012






OBJETIVO GENERAL:
Se vio como es la manera de asignarle memoria a los programas que lo necesiten. Las memorias virtuales  separan las direcciones de memoria utilizadas por un proceso de las direcciones físicas reales, el recolector de basura pues su función es asignar y recolectar los recursos de la memoria, su protección de los procesos no deberían poder referenciar la memoria de otros procesos sin permiso, para evitarlo existe la protección de memoria, que evita que código malicioso o erróneo de un programa interfiera con la operación de otros programas en ejecución, memoria compartida aunque la memoria utilizada por diferentes procesos suele estar protegida, algunos procesos puede que sí tengan que compartir información y, para ello, han de acceder la misma sección de memoria.
OBJETIVO ESPECIFICO
El objetivo es como saber lo que ayuda ala PC para que los programas tengan un espacio de memoria y como también que se hace con los espacios de memoria que no se están utilizando. Tiene algunos métodos para la liberación de memoria que son importante.
GESTIÓN DE MEMORIA
Es el acto de gestionar la memoria de un dispositivo informático. De forma simplificada se trata de proveer mecanismos para asignar secciones de memoria a los programas que las solicitan, y a la vez, liberar las secciones de memoria que ya no se utilizan para que estén disponibles para otros programas. El proceso de asignación de memoria a los programas que las solicitan es llamado por algunos "alocar" (del inglés "allocate" que significa asignar) pero la palabra "alocar" tiene otro significado para el diccionario de la lengua de la Real Academia Española. La gestión de la memoria principal de un ordenador es una tarea de suma importancia para el funcionamiento del mismo.
LOS SISTEMAS DE MEMORIA VIRTUAL
Separan las direcciones de memoria utilizadas por un proceso de las direcciones físicas reales, permitiendo la separación de procesos e incrementando la cantidad efectiva de memoria de acceso aleatorio utilizando la paginación. La calidad de la gestión de la memoria es crucial para las prestaciones del sistema.
EL RECOLECTOR DE BASURA
Es la asignación y liberación automática de los recursos de memoria para un programa. La implementación suele ser a nivel del lenguaje de programación en contraposición a la gestión manual de memoria, que asigna y libera los recursos de memoria de un ordenador de forma explícita.


CARACTERÍSTICAS
Los sistemas de gestión de memoria de sistemas operativos multitarea normalmente tratan con las siguientes tareas.
REASIGNACIÓN
En los sistemas con memoria virtual, los programas en la memoria debe ser capaz de residir en diferentes partes de la memoria en diferentes momentos. Esto se debe a que cuando el programa se cambió de nuevo en la memoria después de ser intercambiado por un tiempo que no siempre se puede colocar en el mismo lugar. La unidad de gestión de memoria virtual también debe hacer frente a la concurrencia. Gestión de memoria en el sistema operativo por lo tanto debe ser capaz de trasladar los programas en la memoria y manejar referencias de la memoria y las direcciones en el código del programa para que siempre apunten a la ubicación correcta en la memoria.
 PROTECCIÓN
Los procesos no deberían poder referenciar la memoria de otros procesos sin permiso, para evitarlo existe la protección de memoria, que evita que código malicioso o erróneo de un programa interfiera con la operación de otros programas en ejecución.
MEMORIA COMPARTIDA
Aunque la memoria utilizada por diferentes procesos suele estar protegida, algunos procesos puede que sí tengan que compartir información y, para ello, han de acceder la misma sección de memoria. La memoria compartida es una de las técnicas más rápidas para posibilitar la comunicación entre procesos.
ORGANIZACIÓN LÓGICA
Los programas a menudo están organizados en módulos, algunos de los cuales pueden ser compartidos por diferentes programas, algunos son de sólo-lectura y otros contienen datos que pueden se pueden modificar. La gestión de memoria es responsable de manejar esta organización lógica, que se contrapone al espacio de direcciones físicas lineales. Una forma de lograrlo es mediante la segmentación de memoria.
 ORGANIZACIÓN FÍSICA
La memoria suele dividirse en un almacenamiento primario de alta velocidad y uno secundario de menor velocidad. La gestión de memoria del sistema operativo se ocupa de trasladar la información entre estos dos niveles de memoria.
GESTIÓN DE MEMORIA EN DOS
Además de la gestión estándar de memoria, la barrera de los 640 KB de MS-DOS y los sistemas compatibles dieron lugar al desarrollo de programas conocidos como gestores de memoria cuando las memorias principales de los PC comenzaron a ser mayores que 640 KB a finales de los años 1980. Estos desplazan porciones del sistema operativo fuera de su localización tradicional para incrementar la cantidad de memoria convencional o semi convencional disponible para otras aplicaciones. El EMM386 es un ejemplo, el cual fue parte de la instalación estándar de las últimas versiones de DOS, así como el QEMM. Estos permitieron el uso de memoria más allá de la barrera de los 640 KB, donde la memoria solía estar reservada a la memoria de acceso aleatorio, y memorias superiores.
CONCLUSION:
Se dice que gestión de memoria es asignar secciones de memoria a los programas que las solicitan, y a la vez, liberar las secciones de memoria que ya no se utilizan para que estén disponibles para otros programas. Pues queda muy claro todo lo que no se utilice o lo que se necesite pues hay entra la gestión de memoria. Pues ha y entra lo que es el recolector de basura se dice es la asignación y liberación automática de los recursos de memoria para un programa.

Administración de procesos


UNIVERSIDAD VALLE DEL GRIJALVA

TEMA: ADMINISTRACIÓN DE PROCESOS

MATERIA: SISTEMAS OPERATIVOS

ING. ALEJANDRO RUIZ MELGAR

ALUMNOS:
ISAAC RESINOS LOPEZ
JONATHAN PERAZ VELA

ING. SISTEMAS COMPUTACIONALES

TUXTLA GUTIERREZ CHIAPAS MEXICO

26 DE NOVIEMBRE DEL 2012









OBJETIVO GENERAL:
Se dice que un proceso es un programa o más bien es una actividad de cierto tipo que tiene un programa entrada y salida. 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. Pues tiene  algunos tipos de estados que pueden ser  Listo, En ejecución y Bloqueado. El objetivo de los procesos 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. 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.
OBJETIVO ESPESIFICO:
Es que los procesos están bien administrados para poderse ejecutar. 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. 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.
QUE ES 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.
ESTADO 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.
IMPLEMENTACION DE 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:
*Identificación del proceso.
* Identificación del proceso padre.
* Información sobre el usuario y grupo.
*Estado del procesador.
* Información de control de proceso
* Información del planificador.
* Segmentos de memoria asignados.
*Recursos asignados
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 salió 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 apreciativa en la cual el sistema operativo puede cortar en cualquier momento la ejecución de un proceso y la planificación no apreciativa 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
*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.
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.

CONCLUSIÓN
Pues que los procesos son muy importantes para la PC como para el usuario. Como se dice que un proceso es una sucesión de tareas, que tienen como origen una entrada y como fin una salida. También es un programa en ejecución, y un programa es un conjunto de instrucciones que una vez ejecutadas realizan una o varias tareas en una PC. Las señales son parte de un proceso por que es el mecanismo que hay para la comunicación entre ellos.