# data[].attributes.body
https://es.scribd.com/document/291486240/Gestion-de-Procesos-POSIX

https://economipedia.com/definiciones/proceso.html

https://www.sodexo.es/blog/multitarea-multitasking/

https://www.ecured.cu/Multiprogramaci%C3%B3n

https://es.wikipedia.org/wiki/Unidad_central_de_procesamiento

http://www.hpca.ual.es/~vruiz/docencia/cursos/linux/html/node43.html

https://es.wikipedia.org/wiki/Bloque_de_control_del_proceso

https://jose7331.wordpress.com/2016/10/07/formacion-de-un-proceso/

https://es.wikipedia.org/wiki/Cambio_de_contexto#:~:text=Un%20cambio%20de%20contexto%20consiste,la%20ejecuci%C3%B3n%20de%20otro%20distinto.

https://es.slideshare.net/Tell123Say123/procesos-ligeros-hilos-o-hebras-66620167

http://www.webquestcreator2.com/majwq/ver/verp/58776

https://www.monografias.com/trabajos105/planificacion-procesos/planificacion-procesos.shtml

https://1984.lsi.us.es/wiki-ssoo/index.php/Planificaci%C3%B3n_en_sistemas_multiprocesadores#:~:text=Los%20sistemas%20multiprocesadores%20son%20aquellos,de%20los%20procesos%20en%20ejecuci%C3%B3n.

https://conocimientosweb.net/dcmt/ficha19190.html

https://es.wikipedia.org/wiki/Secci%C3%B3n_cr%C3%ADtica

https://es.wikipedia.org/wiki/Problema_productor-consumidor

https://www2.infor.uva.es/~cllamas/concurr/pract98/sisos30/index.html#:~:text=DESCRIPCION%20DEL%20PROBLEMA%3A&text=Solo%20puede%20utilizar%20el%20recurso,el%20escritor%20ante%20el%20lector).

https://es.wikipedia.org/wiki/Cliente-servidor

http://ocw.uc3m.es/ingenieria-informatica/sistemas-operativos/material-de-clase-1/mt_t3_l7.pdf

https://gallir.wordpress.com/2015/03/04/principios-de-concurrencia-soluciones-por-hardware/

https://es.wikipedia.org/wiki/Tuber%C3%ADa_(inform%C3%A1tica)

http://interbloqueo.blogspot.com/2013/04/metodos-para-el-tratamiento-del.html

# data[].attributes.body
La exclusión mutua es la actividad que realiza el sistema operativo para evitar que dos o más procesos ingresen al mismo tiempo a un área de datos compartidos o accedan a un mismo recurso

# data[].attributes.body
Existen tres formas de abordar el problema de interbloqueo
* Garantizar que en el sistema no ocurran interbloqueos. Prevensión y evitación: El sistema está diseñado para prevenir las 4 condiciones de COFFMAN y no caer bloqueado
* Permitir la aparición de interbloqueos y  recuperarse cuando ocurra (es necesario un sistema de detección y un mecanismo de recuperación)
* No tratar el problema ( si hay interbloqueos, el usuario tiene que intervenir)

# data[].attributes.body
Un interbloqueo (deadlock) es una situación en donde un grupo de procesos están permanentemente bloqueados como consecuencia de que cada proceso ha adquirido un subconjunto de los recursos necesarios para su operación y esta esperando la liberación de los restantes recursos mantenidos por otros del mismo grupo

# data[].attributes.body
El paso de mensajes es un paradigma de programación ampliamente usado en el software moderno. Sus aplicaciones cubren un amplio campo, y puede usarse desde para garantizar que los diferentes objetos que constituyen un programa informático puedan trabajar de forma coherente entre ellos hasta para permitir que una tarea pueda ejecutarse de forma sincronizada entre varios ordenadores

# data[].attributes.body
Es una variable de sincronización, las variables de condición son usadas en conjunto con mutex permiten a un hilo esperar por la ocurrencia de una condición arbitraria

# data[].attributes.body
Los semáforos permiten al programador asistir al planificador del sistema operativo en su toma de decisiones de manera que permiten sincronizar la ejecución de dos o más procesos. ... Los semáforos son un tipo de datos que están compuestos por dos atributos: Un contador, que siempre vale >= 0

# data[].attributes.body
consiste en una cadena de procesos conectados de forma tal que la salida de cada elemento de la cadena es la entrada del próximo. Permiten la comunicación y sincronización entre procesos. Es común el uso de búfer de datos entre elementos consecutivos.

La comunicación por medio de tuberías se basa en la interacción productor/consumidor, los procesos productores (aquellos que envían datos) se comunican con los procesos consumidores (que reciben datos) siguiendo un orden FIFO. Una vez que el proceso consumidor recibe un dato, este se elimina de la tubería

# data[].attributes.headline
Mecanismos de comunicación y sincronización.

# data[].attributes.subject
Mecanismos de comunicación y sincronización.

# data[].attributes.body
Los mecanismos de comunicación permiten la
transferencia de información entre dos procesos.

Los mecanismos de sincronización permiten forzar a un
proceso a detener su ejecución hasta que ocurra un evento
en otro proceso.

# data[].attributes.body
Son instrucciones del procesador que leen y modifican el valor de uno o varios registros sin ser interrumpidas y asegurando la coherencia de caché (introducen barreras de memoria).

# data[].attributes.body
El algoritmo de Peterson, también conocido como solución de Peterson,​ es un algoritmo de programación concurrente para exclusión mutua, que permite a dos o más procesos o hilos de ejecución compartir un recurso sin conflictos, utilizando sólo memoria compartida para la comunicación.

# data[].attributes.body
Es un modelo de diseño de software en el que las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados clientes. Un cliente realiza peticiones a otro programa, el servidor, quien le da respuesta. Esta idea también se puede aplicar a programas que se ejecutan sobre una sola computadora, aunque es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras.
La separación entre cliente y servidor es una separación de tipo lógico, donde el servidor no se ejecuta necesariamente sobre una sola máquina ni es necesariamente un solo programa. Los tipos específicos de servidores incluyen los servidores web, los servidores de archivo, los servidores del correo, etc. Mientras que sus propósitos varían de unos servicios a otros, la arquitectura básica seguirá siendo la misma

# data[].attributes.headline
El problema de los Lectores – Escritores

# data[].attributes.subject
El problema de los Lectores – Escritores

# data[].attributes.body
Se considera a cada usuario(lector y escritor) como dos procesos y al fichero en cuestión como un recurso. De modo que, para que un proceso acceda al recurso que necesita, tenemos que considerar a cada usuario (lector y escritor) como dos semáforos. Estos semáforos son binarios y valen 0 si el recurso (fichero) está siendo utilizado por otro proceso y 1 si dicho recurso está disponible.

La solución de este problema se basa en implementar un algoritmo eficiente (véase algoritmo) en el manejo de semáforos y memoria compartida que seguidamente describimos. A lo largo del programa se utilizan funciones necesarias para el manejo de memoria compartida

# data[].attributes.body
En computación, el problema del productor-consumidor es un ejemplo clásico de problema de sincronización de multiprocesos. El programa describe dos procesos, productor y consumidor, ambos comparten un buffer de tamaño finito. La tarea del productor es generar un producto, almacenarlo y comenzar nuevamente; mientras que el consumidor toma (simultáneamente) productos uno a uno. El problema consiste en que el productor no añada más productos que la capacidad del buffer y que el consumidor no intente tomar un producto si el buffer está vacío.

La idea para la solución es la siguiente, ambos procesos (productor y consumidor) se ejecutan simultáneamente y se “despiertan” o “duermen” según el estado del buffer. Concretamente, el productor agrega productos mientras quede espacio y en el momento en que se llene el buffer se pone a “dormir”. Cuando el consumidor toma un producto notifica al productor que puede comenzar a trabajar nuevamente. En caso contrario, si el buffer se vacía, el consumidor se pone a dormir y en el momento en que el productor agrega un producto crea una señal para despertarlo. Se puede encontrar una solución usando mecanismos de comunicación de interprocesos, generalmente se usan semáforos. Una inadecuada implementación del problema puede terminar en un deadlock, donde ambos procesos queden en espera de ser despertados.

# data[].attributes.body
Se denomina región crítica,(sección crítica y región crítica son denominaciones equivalentes) en programación concurrente de ciencias de la computación, a la porción de código de un programa de ordenador en la que se accede a un recurso compartido (estructura de datos o dispositivo) que no debe ser accedido por más de un proceso o hilo en ejecución. La sección crítica por lo general termina en un tiempo determinado y el hilo, proceso o tarea sólo tendrá que esperar un período determinado de tiempo para entrar. Se necesita un mecanismo de sincronización en la entrada y salida de la sección crítica para asegurar la utilización en exclusiva del recurso, por ejemplo un semáforo, monitores, el algoritmo de Dekker y Peterson, los candados

# data[].attributes.body
Los procesos que ejecutan de forma concurrente en un sistema se pueden clasificar como procesos independientes y cooperantes.

Un proceso independiente es aquel que ejecuta sin requerir la ayuda o cooperación de otros procesos. Un claro ejemplo de procesos independientes son los diferentes intérpretes de mandatos que se ejecutan de forma simultánea en un sistema.

Los procesos cooperantes, cuando están diseñados para trabajar conjuntamente en alguna actividad, para lo que deben ser capaces de comunicarse e interactuar entre ellos en el ejemplo del compilador que se vio anteriormente, los dos procesos que lo conforman son procesos cooperantes.

# data[].attributes.headline
SERVICIOS POSIX PARA LA GESTIÓN DE PROCESOS

# data[].attributes.subject
SERVICIOS POSIX PARA LA GESTIÓN DE PROCESOS

# data[].attributes.body
Los servicios que ofrece POSIX se
han agrupado según las siguientes categorias: Identificacion de
procesos, El entorno de un proceso, Creacion de procesos, terminacion
de procesos.

# data[].attributes.body
La función principal de los temporizadores y las alarmas es proveer servicios para solicitar al sistema operativo que avisa al proceso pasado un tiempo. Los temporizadores se usan internamente para limitar tiempos de espera, y las alarmas, son para aplicaciones en tiempo real que permiten programar una serie de tareas
un sistema operativo para servidor es una plataforma que permite ejecutar programas y aplicaciones multiusuario. Además, estos sistemas operativos ofrecen la posibilidad de comunicarse con otros servidores para atender las solicitudes específicas de sus clientes.

# data[].attributes.body
Las señales son mensajes enviados por el sistema operativo al proceso en ejecución. También puede verse como una forma de atender eventos, es decir, permiten interrumpir la ejecución de un proceso para atender la ocurrencia de un evento.
Las excepciones son un tipo de interrupción que emplea el procesador para notificar al sistema operativo de un suceso excepcional, por ejemplo, cuando el proceso realiza la instrucción div para dividir un valor usando como denominador cero.

# data[].attributes.body
POSIX (acrónimo de Portable Operating System Interface, y X viene de UNIX como seña de identidad de la API) es una norma escrita por la IEEE, que define una interfaz estándar del sistema operativo y el entorno, incluyendo un intérprete de comandos

# data[].attributes.body
Los sistemas multiprocesadores son aquellos que disponen de 2 o más procesadores. Hasta el momento hemos aplicado los criterios de planificación considerando un único procesador. Con más de un procesador, tenemos que decidir a qué procesador se asignan cada uno de los procesos en ejecución. Hay dos estrategias de asignación en sistemas multiprocesadores, que son:

Asignación estática: Cuando un proceso pasa a estado activo por primera vez, se le asigna un determinado procesador (el que menor carga de trabajo tenga en ese momento) al que se asocia hasta fin de ejecución. Por tanto, un proceso tiene que pasar a estado activo empleando el mismo procesador hasta fin de ejecución. Dicho de otra manera, no es posible migrar procesos de un procesador a otro incluso si hay procesadores ociosos.

Asignación dinámica: En este caso, nuestros procesos en estado preparado pueden cambiar de procesador para pasar a estado activo si resulta que el último procesador en el que se ejecutó está ocupado y existe un procesador ocioso. Este método de asignación permite la migración de procesos de un procesador a otro, llevando a cabo un balanceo de carga de procesos entre los procesadores existentes. No obstante, la migración de un proceso de un procesador a otro es costosa. Por tanto, siempre que sea posible se intentará permanecer en el mismo procesador para no incurrir en la penalización asociada a los fallos de caché que resultan de la migración de procesos.

# data[].attributes.headline
Criterios de planificación (Planificación de la C.P.U)

# data[].attributes.subject
Criterios de planificación (Planificación de la C.P.U)

# data[].attributes.body
Criterios de Planificación

Utilización de la CPU mantener la CPU tan ocupada como sea posible (maximizar)

Rendimiento número de procesos que se completan por unidad de tiempo (maximizar)

Tiempo de retorno tiempo transcurrido desde que se presenta el proceso hasta que se completa (minimizar) Tiempo de espera tiempo que un proceso pasa en la cola de procesos listos esperando la CPU (minimizar)

Tiempo de respuesta tiempo que tarda un proceso desde que se le presenta una solicitud hasta que produce la primera respuesta (minimizar)

# data[].attributes.headline
Definición y Conceptos Básicos ( Planificación de la C.P.U)

# data[].attributes.subject
Definición y Conceptos Básicos ( Planificación de la C.P.U)

# data[].attributes.body
El término planificación de procesos hace referencia a un conjunto de políticas y mecanismos del SO que gobiernan el orden en que se ejecutan los procesos (Milenkovic) Un planificador de procesos es un módulo del SO que se encarga de mover los procesos entre las distintas colas de planificación La ejecución de un proceso consiste en una alternancia entre ráfagas de CPU y ráfagas de E/S Un proceso limitado por E/S (I/O bound) es aquél que pasa más tiempo haciendo E/S que usando la CPU (tiene ráfagas de CPU cortas) Un proceso limitado por CPU (CPU bound) es aquél que pasa más tiempo computando que haciendo E/S (tiene ráfagas de CPU largas)

# data[].attributes.body
Proporciona al programador una API para gestionar y crear hebras.
Las tres principales bibliotecas de hebras actualmente en uso son :

POSIX Pthreads.

Win32.

JAVA.

Existen dos formas principales de implementar una biblioteca de hebras :
1)Primer metodo conciste en proporcionar una biblioteca enteramente en el espacio de usuario, sin ningún soporte del kernel.
2)Segundo metodo consiste en implementar una biblioteca a nivel de kernel, soportada directamente por el sistema operativo

# data[].attributes.body
Una hebra es una unidad básica de utilización de la CPU , comprende un ID hebra, un contador de programa, un conjunto de registros y una pila.

Modelos Multihebra

1)Modelos Multihebra

2)Modelo Uno a Uno
3)Modelo Muchos a Muchos

# data[].attributes.body
Un proceso ligero es una unidad básica de utilización de la CPU consistente en un juego de registros y un espacio de pila. Comparte datos, código y registros con sus hebras pares.Una tarea o proceso pesado esta conformado por una o mas hebras. Una hebra solo puede pertenecer a una sola tarea

# data[].attributes.body
Un cambio de contexto consiste en la ejecución de una rutina perteneciente al núcleo del sistema operativo multitarea de una computadora, cuyo propósito es parar la ejecución de un hilo o proceso para dar paso a la ejecución de otro distinto

# data[].attributes.body
La formación de un proceso  consiste en completar todas las informaciones que lo constituyen.De forma más especifica el SO debe hacer: Asignar un espacio de memoria para albergar la imagen de memoria. Seleccionar un BCP libre de la tabla de procesos. Rellenar el BCP con la información necesaria. Cargar los segmentos correspondientes. Crear en el segmento de pila la pila inicial. Inicialmente incluye el entorno del proceso y los parámetros que se pasan en la invocación.

# data[].attributes.body
https://sites.google.com/site/todosobreredeslanhoyendia/tabla-de-sistemas-operativos

# data[].attributes.attachment_link.readable_text
Linux: Es el sistema operativo favorito de muchos por la solidez, confiabilidad y seguridad que ofrece a los usuarios.

Unix: Es un sistema operativo multitarea y multiusuario, lo cual significa que puede ejecutar varios programas simultáneamente, y que puede gestionar a varios usuarios simultáneamente.

DOS: MS-DOS fue hecho por la compañía de software Microsoft.

Mac OS: Los ordenadores Macintosh tienen este sistema operativo de planta. Este sistema operativo es tan amigable para el usuario que cualquier persona puede aprender a usarlo en muy poco tiempo.

Requisitos mínimos de hardware para instalarlos diferentes SO  DOS  Windows 9X  Windows NT  Windows 2000  Windows XPHome Edition  Windows XPProfessional  LINUX

Algunos de los sistemas operativos utilizados en los dispositivos móviles están basados en el modelo de capas.

Sistema operativo de red, también llamado NOS (del inglés, Network Operating System), es un software que permite la interconexión de ordenadores para poder acceder a los servicios y recursos, hardware y software, creando redes de computadoras. Al igual que un equipo no puede trabajar sin un sistema operativo, una red de equipos no puede funcionar sin un sistema operativo de red. Consiste en un software que posibilita la comunicación de un sistema informático con otros equipos en el ámbito de una red.

Requerimientos para instalarDOS  Procesador8086/88  1 MBytes de memoria RAM  Unidad de disco duro con espacio de 200MBytes  Teclado  MonitorVGA

Configuración lineal de punto a punto: (enlaces concretos) Es un terminal síncrono, uno para multiplexar y otro para desmultiplexar, uno en cada extremo. (A)X______X (B).

Sistemas Operativos de Internet (IOS)

Es un sistema operativo móvil de la multinacional Apple Inc. Originalmente desarrollado para el iPhone (iPhone OS), después se ha usado en dispositivos como el iPod touch y el iPad. No permite la instalación de iOS en hardware de terceros. Tenía el 26% de cuota de mercado de sistemas operativos móviles vendidos en el último cuatrimestre de 2010, detrás de Android y Windows Phone. Actualmente su sistema operativo se encuentra en la novena versión, mejor conocida como iOS 9.

Requerimientos para instalarWindows 9X Procesador80486DX de 66 MHrz  16 MBytes de RAM  Teclado, mouse, monitorVGA 16 colores  Disco duro con espacio libre de 255 a 355 MBytes  Algunas veces es necesario un modem de 14.4 Kbps para actualizarlos drivers.  Un floppy y un CDROM(32X)

las ventajas de los dispositivos móviles son la comodidad del dispositivo en cuanto al tamaño, peso, dispersión, entre otros, las cuales les permiten a los usuarios realizar un uso del dispositivo sin mayor dificultad, el cual se convierte en una herramienta de trabajo y entretenimiento que provee características.

# data[].attributes.attachment_link.title
tabla de sistemas operativos - todosobreredeslanhoyendia

# data[].attributes.attachment_link.description
Linux: Es el sistema operativo favorito de muchos por la solidez, confiabilidad y seguridad que ofrece a los usuarios. Unix: Es un sistema operativo multitarea y multiusuario, lo cual significa que puede ejecutar varios programas simultáneamente, y que puede gestionar a varios usuarios simultáneamente. DOS: MS-DOS fue hecho por la compañía de software Microsoft.

# data[].attributes.body
El bloque de control del proceso (BCP) o en inglés PCB (Process Control Block) es un registro especial donde el sistema operativo agrupa toda la información que necesita conocer respecto a un proceso particular. Cada vez que se crea un proceso el sistema operativo crea el BCP correspondiente para que sirva como descripción en tiempo de ejecución durante toda la vida del proceso.

Cuando el proceso termina, su BCP es borrado y el registro puede ser utilizado para otros procesos. Un proceso resulta conocido para el sistema operativo y por tanto elegible para competir por los recursos del sistema sólo cuando existe un BCP activo asociado a él. El bloque de control de proceso es una estructura de datos con campos para registrar los diferentes aspectos de la ejecución del proceso y de la utilización de recursos

# data[].attributes.headline
             Grado de Multiprogramación 

# data[].attributes.subject
             Grado de Multiprogramación 

# data[].attributes.body
El concepto de multiprogramación se refiere a la idea general de poder cargar múltiples programas dentro de un mismo computador para que sean ejecutados en un determinado momento. Para lograr manejar múltiples programas
El grado de multiprogramación es la cantidad de programas que se tienen en memoria. En un sistema uniprocesador, habrá varios programas en memoria pero sólo uno en ejecución, en un momento específico. Los sistemas de tiempo compartido son una consecuencia lógica de la multiprogramación

# data[].attributes.body
La multitarea es la característica de los sistemas operativos modernos que permite que varios procesos o aplicaciones se ejecuten aparentemente al mismo tiempo, compartiendo uno o más procesadores.

Los sistemas operativos multitarea son capaces de dar servicio a más de un proceso a la vez para permitir la ejecución de muchos más programas.

# data[].attributes.body
Menor tiempo. Al ser más eficientes y rápidos en el trabajo se consigue un mayor rendimiento, ahorrando a su vez recursos

Incremento de la productividad Si se ejecuta bien, se puede asumir grandes volúmenes de trabajo.

Mejor reacción a tareas complejas. Esto se debe a acostumbrarse a hacer varias cosas a la vez con frecuencia.

Más responsabilidad. Al tener una habilidad para hacer más cosas a la vez, se puede asumir más responsabilidades con eficacia

Más responsabilidad. Al tener una habilidad para hacer más cosas a la vez, se puede asumir más responsabilidades con eficacia

Calidad de trabajo en cualquier circunstancia: Con espacios de trabajo que resultan tanto sencillos como complejos o inviables, se podría evitar caer en constantes distracciones con la multitarea

# data[].attributes.body
Un proceso es una secuencia de acciones que se llevan a cabo para lograr un fin determinado. Se trata de un concepto aplicable a muchos ámbitos, a la empresa, a la química, a la informática, a la biología, a la química, entre otros.

# data[].attributes.body
Su trabajo es interpretar las instrucciones de un programa informático mediante la realización de las operaciones básicas aritméticas, lógicas y externas (provenientes de la unidad de entrada/salida). Su diseño y avance ha variado notablemente desde su creación, aumentando su eficiencia y potencia, y reduciendo aspectos como el consumo de energía y el costo