SISTEMAS OPERATIVOS

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
Rocket clouds
SISTEMAS OPERATIVOS por Mind Map: SISTEMAS OPERATIVOS

1. un SO es un programa que actua como interfaz entre el usuario y el hardware

2. controla la ejecucion de todo tipo de programas

3. algunas funciones importantes del SO son:

3.1. 1.Gestión de memoria

3.1.1. La memoria principal proporciona un almacenamiento rápido al que puede acceder directamente la CPU. Un SO hace las siguientes actividades para la gestión de memoria: Lleva un registro de la memoria primaria, es decir, qué parte de ella está en uso por quién y qué parte no está en uso. cuando se llevan acabo varios procesos, el sistema operativo decide qué proceso obtendrá memoria, cuando y cuanto tiempo. Asigna la memoria cuando un proceso lo solicita. Desasigna la memoria cuando un proceso ya no la necesita o ha sido terminado.

3.2. 2.Gestión del procesador

3.2.1. similar a lo que hace con la memoria,aqui el SO se encarga de asignar y desasignar el procesador cuando un proceso la solicita o ya no lo necesita y se ha terminado,respectivamente.

3.3. 3.Administración de dispositivos

3.3.1. Un sistema operativo gestiona la comunicación del dispositivo a través de sus respectivos controladores. Lo hace Las siguientes actividades para la gestión de dispositivos: Realiza un seguimiento de todos los dispositivos. El programa responsable de esta tarea se conoce como Controlador de E / S. Decide qué proceso obtiene el dispositivo cuando y por cuánto tiempo. Asigna el dispositivo de la manera más eficiente.

3.4. 4.Administración de archivos

3.4.1. Un sistema de archivos normalmente está organizado en directorios para facilitar la navegación y el uso. Esos directorios pueden contener archivos y otras instrucciones. aqui el SO realiza un seguimiento de la información, ubicación, usos, estado, etc.

3.5. 5.seguridad.

3.5.1. El SO, mediante contraseña y otras técnicas similares, evita acceso no autorizado a programas y datos.

3.6. 6.Control sobre el rendimiento del sistema.

3.6.1. registra el retraso entre la solicitud de un servicio y la respuesta del sistema.

3.7. 7.Coordinación entre otro software y usuarios.

3.7.1. Coordina y asigna los compiladores, intérpretes, ensambladores y otros softwares a varios usuarios de la computadora.

4. tipos de Sistemas Operativos

4.1. 1. sistema operativo por lotes.

4.1.1. Los usuarios de este sistema operativo no interactúan directamente con la computadora. Cada usuario prepara su trabajo en un dispositivo fuera de línea ,como tarjetas perforadas, y lo envía al operador de la computadora. Para acelerar el procesamiento, los trabajos con necesidades similares se agrupan y se ejecutan como un grupo. Los programadores dejan sus programas con el operador y el operador luego ordena los programas con requisitos similares en lotes.

4.1.1.1. Los problemas con dicho sistema son: Falta de interacción entre el usuario y el trabajo. La CPU a menudo está inactiva, porque la velocidad de los dispositivos de E / S es más lenta que la CPU. Difícil de proporcionar la prioridad deseada.

4.2. 2.SO de tiempo compartido.

4.2.1. Tiempo compartido o multitarea es un Extensión lógica de multiprogramación.el tiempo del procesador que se comparte entre múltiples usuarios simultáneamente se denominan tiempo compartido.permite a muchas personas, ubicadas en varias terminales, usar un sistema informático al mismo tiempo. La principal diferencia entre los sistemas de lotes multiprogramados y los sistemas de tiempo compartido es que en el caso de sistemas de lotes multiprogramados, el objetivo es maximizar el procesador uso, mientras que en los sistemas de tiempo compartido, el objetivo es minimizar el tiempo de respuesta. La CPU ejecuta varios trabajos cambiando entre ellos.Por lo tanto, el usuario puede recibir una respuesta inmediata. Por ejemplo, en un procesamiento de transacciones, el procesador ejecuta cada programa de usuario en una ráfaga corta o cuántica de la computación. Es decir, si hay n usuarios presentes, entonces cada usuario puede obtener un tiempo cuántico. Cuando el usuario envía el comando, el tiempo de respuesta es en pocos segundos.

4.2.1.1. ventajas: Proporciona una respuesta rápida. Evita la duplicación de software. Reduce el tiempo de inactividad de la CPU

4.2.1.2. Desventajas: Problemas en la seguridad e integridad de los programas y datos del usuario. Problema en la comunicación de datos.

4.3. 3.SO distribuidos

4.3.1. utilizan varios procesadores centrales para servir en tiempo real a múltiples aplicaciones y múltiples usuarios. en consecuencia los trabajos de procesamiento de datos se distribuyen entre los procesadores. Los procesadores se comunican entre sí a través de varias líneas de comunicación . Los procesadores en un sistema distribuido pueden variar en tamaño y función.Estos procesadores se denominan sitios, nodos, computadoras, etc.

4.3.1.1. ventajas: posibilidad de compartir recursos, un usuario en un sitio puede usar los recursos disponible en otro. Acelera el intercambio de datos entre ellos por correo electrónico. Si un sitio falla en un sistema distribuido, los sitios restantes pueden continuar operando. Reducción de la carga en el host de la computadora Reducción de los retrasos en el procesamiento de datos.

4.4. 4.SO de red

4.4.1. se ejecuta en un servidor y proporciona al servidor la capacidad de administrar datos, usuarios, grupos, seguridad, aplicaciones y otras funciones de red. El objetivo principal del sistema operativo de red es permitir el acceso compartido a archivos e impresoras entre múltiples computadoras en una red, típicamente una red de área local (LAN), una red privada red o a otras redes.

4.4.1.1. Ejemplos de sistemas operativos de red: Microsoft Windows Server 2003, Microsoft Windows Server 2008, UNIX, Linux, Mac OS X.

4.4.1.2. Las ventajas son: Los servidores centralizados son altamente estables. La seguridad es administrada por el servidor. Las actualizaciones a nuevas tecnologías y hardware se pueden integrar fácilmente en el sistema. El acceso remoto a los servidores es posible desde diferentes ubicaciones y tipos de sistemas.

4.4.1.3. Las desventajas son:: Alto costo para comprar y ejecutar un servidor. Dependencia de una ubicación central para la mayoría de las operaciones. Se requiere mantenimiento y actualizaciones regulares.

4.5. 5.SO en tiempo real

4.5.1. se define como un sistema de procesamiento de datos en el que el intervalo de tiempo requerido para procesar y responder a las entradas es tan pequeño que controla el entorno. El tiempo de respuesta es mucho menor en comparación con el procesamiento en línea. Los sistemas en tiempo real se utilizan cuando existen requisitos de tiempo rígidos en un proceso o el flujo de datos.los sistemas en tiempo real se pueden utilizar como un dispositivo de control en un aplicación dedicada Un sistema operativo en tiempo real debe tener un tiempo fijo bien definido, de lo contrario el sistema fallará. Por ejemplo, experimentos científicos,sistemas de control industrial, sistemas de armas, robots o control de tráfico aéreo. Hay dos tipos de sistemas operativos en tiempo real.

4.5.1.1. sistemas de tiempo real duros: garantizan que las tareas críticas se completen a tiempo. aqui el almacenamiento secundario es limitado y los datos se almacenan en ROM. En estos sistemas, la memoria virtual casi nunca se encuentra.

4.5.1.2. sistemas de tiempo real blandos: son menos restrictivos. Una tarea crítica en tiempo real tiene prioridad sobre otra tareas y conserva la prioridad hasta que se complete. Los sistemas blandos en tiempo real tienen una utilidad mas limitada que los sistemas duros.

5. servicios del SO

5.1. un sistema operativo proporciona servicios tanto al usuario como a los programas:

5.1.1. ejecución del programa

5.1.1.1. Las siguientes son las principales actividades de un sistema operativo. con respecto a la ejecución del programa: Carga un programa en la memoria Ejecuta el programa. Maneja la ejecución del programa. Proporciona un mecanismo para la sincronización de procesos. Proporciona un mecanismo para la comunicación del proceso.

5.1.2. operaciones de E / S (entrada y salida)

5.1.2.1. Los controladores especifican los dispositivos de hardware de los usuarios. Un sistema operativo administra la comunicación entre el usuario y los controladores del dispositivo. La operación de E / S significa operación de lectura o escritura con cualquier archivo o cualquier dispositivo de E / S específico. El sistema operativo proporciona acceso al dispositivo de E / S requerido cuando es necesario.

5.1.3. Manipulación de archivos.

5.1.3.1. Las computadoras pueden almacenar archivos en el disco (almacenamiento secundario), para fines de almacenamiento a largo plazo. Los ejemplos de medios de almacenamiento incluyen cintas magnéticas, discos magnéticos y unidades de discos ópticos como CD, DVD. Cada uno de estos medios tiene sus propias propiedades como velocidad, capacidad, velocidad de transferencia de datos y métodos de acceso a datos. los archivos del sistema normalmente estan organizados en directorios para facilitar la navegación y el uso. Estas Los directorios pueden contener archivos y otras instrucciones.

5.1.3.1.1. Las siguientes actividades son las principales de un sistema operativo con respecto a la manipulacion de archivos:  El programa necesita leer un archivo o escribir un archivo.  El sistema operativo le da permiso al programa para operar en el archivo.  El permiso varía de solo lectura, lectura-escritura, denegado, etc.  El sistema operativo proporciona una interfaz al usuario para crear / eliminar archivos.  El sistema operativo proporciona una interfaz al usuario para crear / eliminar directorios.  El sistema operativo proporciona una interfaz para crear la copia de seguridad del sistema de archivos.

5.1.4. comunicación

5.1.4.1. En el caso de sistemas distribuidos que son una colección de procesadores que no comparten memoria, dispositivos periféricos o un reloj, el sistema operativo administra las comunicaciones entre todos los procesos. Múltiples procesos se comunican entre sí a través de líneas de comunicación en la red. El sistema operativo maneja las estrategias de enrutamiento y conexión, y los problemas de contención y seguridad.

5.1.4.1.1. Las siguientes actividades son las principales de un sistema operativo con respecto a la administración de las comunicaciones:  Dos procesos a menudo requieren que se transfieran datos entre ellos.  Ambos procesos pueden estar en una computadora o en diferentes computadoras, pero son conectado a través de una red informática.  La comunicación se puede implementar por dos métodos, ya sea por Memoria compartida o por el paso de mensajes.

5.1.5. Detección de errores

5.1.5.1. El sistema operativo comprueba constantemente los posibles errores. aqui el sistema operativo toma las medidas adecuadas para garantizar una informática correcta y coherente.

5.1.6. Asignación de recursos

5.1.6.1. En caso de entorno multiusuario o multitarea, recursos como la memoria principal, el CPU,los ciclos y el almacenamiento de archivos deben asignarse a cada usuario o trabajo.

5.1.6.1.1. El sistema operativo gestiona todo tipo de recursos mediante planificadores. Los algoritmos de programación de la CPU se utilizan para una mejor utilización de la de este.

5.1.7. protección

5.1.7.1. La protección se refiere a un mecanismo o una forma de controlar el acceso de programas, procesos, o usuarios a los recursos definidos por un sistema informático.

5.1.7.1.1. El sistema operativo garantiza que todo el acceso a los recursos del sistema esté controlado. El sistema operativo garantiza que los dispositivos de E / S externos estén protegidos contra el acceso no válido. intentos El sistema operativo proporciona funciones de autenticación para cada usuario mediante contraseñas.

6. Propiedades del SO

6.1. 1.Procesamiento por lotes

6.1.1. el sistema operativo recopila los programas y datos en un lote antes de que comience el procesamiento.

6.1.1.1. El sistema operativo define un trabajo que tiene una secuencia predefinida de comandos, programas y datos como una sola unidad.  El sistema operativo mantiene un número de trabajos en la memoria y los ejecuta sinalguna informacion manual.  Los trabajos se procesan en el orden de presentación, es decir, por orden de llegada.  Cuando un trabajo completa su ejecución, se libera su memoria y la salida para el trabajo se copia en un carrete de salida para su posterior impresión o procesamiento.

6.1.1.1.1. ventajas: El procesamiento por lotes lleva gran parte del trabajo del operador a la computadora.  Mayor rendimiento a medida que se inicia un nuevo trabajo tan pronto como se termina el trabajo anterior sin ninguna intervención manual.

6.1.1.1.2. desventajas: Difícil de depurar programas.  Un trabajo podría entrar en un bucle infinito.  Debido a la falta de esquema de protección, un trabajo por lotes puede afectar a otros trabajos pendientes.

6.2. 2.Multitarea.

6.2.1. aqui el CPU ejecuta múltiples trabajos simultáneamente al cambiar entre ellos. Los cambios ocurren con tanta frecuencia que los usuarios pueden interactuar con cada programa mientras se está ejecutando

6.2.1.1. El usuario da instrucciones al sistema operativo o a un programa directamente, y recibe una respuesta inmediata  El sistema operativo maneja la multitarea de la manera en que puede manejar múltiples operaciones / ejecuta múltiples programas a la vez.  Los sistemas operativos multitarea también se conocen como sistemas de tiempo compartido.  Estos sistemas operativos fueron desarrollados para proporcionar el uso interactivo de una computadora sa un costo razonable.  Cada usuario tiene al menos un programa separado en la memoria. Cuando se ejecuta un proceso, generalmente se ejecuta solo por un tiempo muy corto.  Dado que las E / S interactivas generalmente se ejecutan a velocidades más lentas, puede llevar mucho tiempo completar. Durante este tiempo, una CPU puede ser utilizada por otro proceso.  El sistema operativo permite a los usuarios compartir la computadora simultáneamente.Ya que cada acción o comando en un sistema de tiempo compartido tiende a ser breve, .  A medida que el sistema cambia la CPU rápidamente de un usuario / programa al siguiente, cada usuario se le da la impresión de que él / ella tiene su propia CPU, mientras que en realidad una CPU se comparte entre muchos usuarios.

6.3. 3.multiprogramacion.

6.3.1. este se da cuando dos o más programas residen en la memoria al mismo tiempo. La multiprogramación supone un único procesador compartido. La multiprogramación aumenta la utilización de la CPU al organizar trabajos para que la CPU siempre tenga uno para ejecutar.

6.3.1.1. Un sistema operativo realiza las siguientes actividades relacionadas con la multiprogramación.  El sistema operativo mantiene varios trabajos en la memoria a la vez.  Este conjunto de trabajos es un subconjunto de los trabajos que se mantienen en el grupo de trabajos.  El sistema operativo selecciona y comienza a ejecutar uno de los trabajos en la memoria.  Los sistemas operativos de multiprogramación monitorean el estado de todos los programas activos y recursos del sistema que utilizan programas de gestión de memoria para garantizar que la CPU nunca está inactivo, a menos que no haya trabajos para procesar.

6.3.1.1.1. ventajas: Alta y eficiente utilización del procesador. El usuario siente que muchos programas tienenprocesador asignado casi simultáneamente.

6.3.1.1.2. desventajas: Se requiere la programación de la CPU. Para acomodar muchos trabajos en la memoria, se requiere administración de memoria.

6.4. 4.interactividad.

6.4.1. se refiere a la capacidad de los usuarios para interactuar con el sistema de la computadora.

6.4.1.1. el SO proporciona al usuario una interfaz para interactuar con el sistema.  Gestiona dispositivos de entrada para tomar entradas del usuario. Por ejemplo, el teclado.  Gestiona dispositivos de salida para mostrar salidas al usuario. Por ejemplo, el monitor. El tiempo de respuesta del sistema operativo debe ser corto, ya que el usuario envía y espera el resultado.

6.5. 5.entorno distribuido.

6.5.1. se refiere a múltiples procesadores independientes en el sistema de una computadora.

6.5.1.1. El sistema operativo distribuye lógicas de cómputo entre varios procesadores físicos. Los procesadores no comparten memoria o reloj. En cambio, cada procesador tiene su propia memoria local. El sistema operativo gestiona las comunicaciones entre los procesadores. Se comunican entre sí a través de varias líneas de comunicación.

6.6. 6.Spooling

6.6.1. es un acrónimo para operaciones periféricas simultáneas en línea. Spooling se refiere a poner datos de varios trabajos de E / S en un búfer. Este búfer es un área especial en memoria o disco duro accesible para dispositivos de E / S.

6.6.1.1. ventajas: La operación de spooling utiliza un disco como un búfer muy grande. Spooling es capaz de superponer operaciones de E / S para un trabajo con procesador.

7. Procesos del SO.

7.1. Un proceso es básicamente un programa en ejecución. La ejecución de un proceso debe progresar de manera secuencial.

7.1.1. Cuando un programa se carga en la memoria y se convierte en un proceso, se puede dividir en cuatro secciones: apilar, montón, texto y datos.

7.1.1.1. 1.Apilar El proceso Pila contiene los datos temporales, como el método / función parámetros, dirección de retorno y variables locales.

7.1.1.2. 2.Monton: Esta es una memoria asignada dinámicamente a un proceso durante su tiempo de ejecución.

7.1.1.3. 3.Texto: Esto incluye la actividad actual representada por el valor del contador del programa y el contenido de los registros del procesador.

7.1.1.4. 4.Datos: Esta sección contiene las variables globales y estáticas.

7.1.2. ciclo de vida de un proceso

7.1.2.1. Cuando se ejecuta un proceso, pasa por diferentes estados. Estas etapas pueden diferir en diferentes sistemas operativos, y los nombres de estos estados tampoco están estandarizados.

7.1.2.1.1. En general, un proceso puede tener uno de los siguientes cinco estados.

7.1.3. Bloque de control de un procesos (BCP).

7.1.3.1. es una estructura de datos mantenida por el sistema operativo para cada proceso.

7.1.3.2. guarda toda la información necesaria para realizar un seguimiento de un proceso

7.1.3.2.1. 1.Estado del proceso El estado actual del proceso, es decir, si está listo, ejecutándose, o esperando. 2.Privilegios de proceso Esto es necesario para permitir o no permitir el acceso a los recursos del sistema. 3.Identificacion de proceso Identificación única para cada uno de los procesos en el sistema operativo. 4.Puntero Un puntero al proceso principal. 5Contador de programa Program Counter es un puntero a la dirección de la siguiente instrucción que se ejecuta para este proceso. 6.Registros de la CPU Varios registros de CPU donde el proceso debe almacenarse para su ejecución. 7.Información de programación de CPU Prioridad de proceso y otra información de programación que se requiere para programar el proceso. 8.Información de gestión de memoria Esto incluye la información de la tabla de páginas, límites de memoria, tabla de segmentos dependiendo de la memoria utilizada por el sistema operativo. 9 Informacion de cuenta Esto incluye la cantidad de procesador utilizada para la ejecución del proceso, límites de tiempo, ID de ejecución, etc. 10 información de estado de E / S Esto incluye una lista de dispositivos de E / S asignados al proceso.

7.2. Un programa es un fragmento de código que puede ser una sola línea o millones de líneas. Un programa del ordenador generalmente lo escribe un programador de computadora en un lenguaje de programación.

7.2.1. Un programa de computadora es una colección de instrucciones que realiza una tarea específica cuando es ejecutado por una computadora.

7.2.2. Una parte de un programa de computadora que realiza una tarea bien definida se conoce como algoritmo.

7.2.3. Una colección de programas, bibliotecas y datos se conoce como software.

8. calendarizacion de procesos del SO.

8.1. es la actividad del administrador de procesos que maneja la eliminación de el proceso en ejecución desde la CPU y la selección de otro proceso en base de una estrategia particular

8.2. escencial en los SO de multiprogramacion.

8.3. colas de calendarizacion de procesos.

8.3.1. El sistema operativo mantiene todas los BCP en las colas de programación de procesos. El sistema operativo mantiene un cola para cada uno de los estados de proceso.Cuando se cambia el estado de un proceso, su BCP se desvincula desde su cola actual y se traslada a su nueva cola de estado.

8.3.1.1. El sistema operativo mantiene las siguientes colas importantes de calendarizacion de procesos: Cola de trabajos: esta cola mantiene todos los procesos en el sistema. Cola lista: esta cola mantiene un conjunto de todos los procesos que residen en la memoria principal,listo y esperando para ejecutar. Siempre se pone un nuevo proceso en esta cola. Colas de dispositivo: los procesos que están bloqueados debido a la falta de disponibilidad de un dispositivo E / S constituyen esta cola.

8.3.1.1.1. El sistema operativo puede usar diferentes criterios para administrar cada cola (FIFO, Round Robin, Priority, etc.)

8.4. modelo de proceso de dos estados

8.4.1. se refiere a los estados en ejecución y no en ejecución

8.4.1.1. 1.Corriendo Cuando se crea un nuevo proceso, ingresa al sistema como en el estado de ejecución.

8.4.1.2. 2.No corriendo Los procesos que no se están ejecutando se mantienen en cola, esperando su turno para ser ejecutados. Cada entrada en la cola es un puntero a un proceso particular.si el proceso se interrumpe, ese proceso se transfiere en la cola de espera. Si el proceso completado o abortado, el proceso se descarta. el despachador luego selecciona un proceso de la cola para ejecutarlo.

8.5. Planificadores

8.5.1. Su tarea principal es seleccionar los trabajos que se enviarán al sistema y decidir qué proceso a ejecutar.

8.5.2. existen tres tipos.

8.5.2.1. Planificador a largo plazo

8.5.2.1.1. determina qué programas son admitido en el sistema para su procesamiento. Selecciona procesos de la cola y los carga. en memoria para su ejecución. El proceso se carga en la memoria para la programación de la CPU.

8.5.2.1.2. los sistemas operativos de tiempo compartido no tienen este planificador

8.5.2.2. Planificador a corto plazo

8.5.2.2.1. Su objetivo principal es aumentar el rendimiento del sistema. de acuerdo con el conjunto de criterios elegido. Es el cambio de "estado listo" a "estado cprriendo" del proceso.

8.5.2.2.2. toman la decisión de qué proceso ejecutar a continuación. Los planificadores a corto plazo son más rápidos que los planificadores a largo plazo.

8.5.2.3. Planificador a mediano plazo

8.5.2.3.1. Elimina los procesos de la memoria. Reduce el grado de multiprogramación. El planificador a medio plazo es encargado de manejar los procesos externos intercambiados.

8.5.2.3.2. Un proceso en ejecución puede quedar suspendido si realiza una solicitud de E / S. Un proceso suspendido no puede avanzar hacia su finalización. En esta condición, para eliminar el proceso desde la memoria y hacer espacio para otros procesos, el proceso suspendido es trasladado al almacenamiento secundario.

9. Algoritmos de calendarizacion

9.1. Un calendarizador de procesos programa diferentes procesos para ser asignados a la CPU en función de algoritmos de calendarizacion particulares.

9.2. Los algoritmos de calendarizacion pueden ser preferentes o no preferentes.

9.2.1. Preferentes: se basa en la prioridad donde un planificador puede adelantarse a un proceso en ejecución de baja prioridad en cualquier momento cuando un proceso de alta prioridad entra en un estado listo.

9.2.1.1. Algoritmo Shortest Remaining Time (SRT)

9.2.1.1.1. Similar al algoritmo SJN  Al procesador se le asigna el trabajo más cercano a la finalización, pero se puede adelantar por un nuevo trabajo listo con menor tiempo de finalización.  Imposible implementar en sistemas interactivos donde el tiempo de CPU requerido no es conocido.

9.2.1.2. Round Robin (RR)

9.2.1.2.1.  Cada proceso tiene un tiempo fijo para ejecutarse; es llama quantum.  Una vez que se ejecuta un proceso durante un período de tiempo determinado, se adelanta y El proceso se ejecuta durante un período de tiempo determinado.

9.2.2. No preferente: están diseñados para que una vez que un proceso ingrese al estado de ejecución, no pueda ser reemplazado hasta que complete su tiempo asignado

9.2.2.1. Algoritmo First Come First Served (FCFS)

9.2.2.1.1.  Los trabajos se ejecutan por orden de llegada. .  Es fácil de entender e implementar.  Su implementación se basa en la cola FIFO.  Bajo rendimiento, ya que el tiempo de espera promedio es alto.

9.2.2.2. Algoritmo Shortest Job Next (SJN)

9.2.2.2.1.  El mejor enfoque para minimizar el tiempo de espera.  Fácil de implementar en sistemas por lote donde el tiempo de CPU requerido se conoce de antemano.  Imposible implementar en sistemas interactivos donde el tiempo de CPU requerido no es conocido.  El procesador debe saber de antemano cuánto tiempo llevará un proceso.

9.2.2.3. Algoritmo de calendarizacion basada en prioridad

9.2.2.3.1. uno de los algoritmos más comunes de programación en sistemas por lotes.  A cada proceso se le asigna una prioridad. Se debe ejecutar el proceso con mayor prioridad primero y así sucesivamente.  Los procesos con la misma prioridad se ejecutan por orden de llegada.  La prioridad se puede decidir en función de los requisitos de memoria, los requisitos de tiempo o cualquier otro requisito de recursos.

10. MULTITHREADING

10.1. Un hilo es un flujo de ejecución a través del código de proceso, con su propio contador de programa que realiza un seguimiento de qué instrucción ejecutar a continuación, registros del sistema que mantienen su variables de trabajo actuales y una pila que contiene el historial de ejecución.

10.2. Un hilo comparte con sus hilos pares poca información como segmento de código, segmento de datos y abrir archivos. Cuando un hilo altera un elemento de memoria de segmento de código, todos los otros hilos mira eso.

10.3. Diferencia entre proceso y subproceso

10.3.1. proceso

10.3.1.1. El proceso es pesado o recurso intensivo.

10.3.1.2. El cambio de proceso necesita interacción con sistema operativo

10.3.1.3. En procesamiento múltiple ambientes, cada proceso ejecuta el mismo código pero tiene su memoria propia y recursos de archivo.

10.3.1.4. Si un proceso está bloqueado, entonces no otro proceso puede ejecutarse hasta que el El primer proceso está desbloqueado.

10.3.1.5. Múltiples procesos sin usar los hilos usan más recursos.

10.3.1.6. En múltiples procesos cada proceso opera independientemente de la otros.

10.3.2. subproceso

10.3.2.1. El hilo es liviano, toma menos recursos que un proceso.

10.3.2.2. El cambio de hilo no necesita interactuar con el sistema operativo

10.3.2.3. Todos los hilos pueden compartir el mismo conjunto de abrir archivos, procesos hijos.

10.3.2.4. Mientras un hilo está bloqueado y esperando, un segundo hilo en el mismo La tarea puede ejecutarse.

10.3.2.5. Los procesos de subprocesos múltiples usan menos recursos

10.3.2.6. Un hilo puede leer, escribir o cambiar Datos de otro hilo.

10.4. Hilos de nivel de kernel

10.4.1. En este caso, el kernel realiza la gestión de subprocesos. No hay gestión de hilos código en el área de aplicación.

10.4.2. El Kernel mantiene información de contexto para el proceso en su conjunto y para los individuos. hilos dentro del proceso.

10.4.3. Ventajas

10.4.3.1.  Kernel puede programar simultáneamente múltiples hilos del mismo proceso en Múltiples procesos.  Si un hilo en un proceso está bloqueado, el Kernel puede programar otro hilo del mismo proceso  Las rutinas del núcleo pueden ser multiproceso.

10.4.4. Desventajas

10.4.4.1.  Los hilos del núcleo son generalmente más lentos de crear y administrar que los hilos del usuario.  La transferencia del control de un hilo a otro dentro del mismo proceso requiere un cambio de modo al Kernel.

10.5. Modelos de subprocesos múltiples

10.5.1. Algunos sistemas operativos proporcionan un subproceso de nivel de usuario combinado y un subproceso de nivel de kernel instalaciones. Solaris es un buen ejemplo de este enfoque combinado.

10.5.1.1. Los modelos de subprocesos múltiples son tres tipos

10.5.1.1.1. Relación de muchos a muchos

10.5.1.1.2. Relación de muchos a uno

10.5.1.1.3. Relación uno a uno

10.5.2. Algunos sistemas operativos proporcionan un subproceso de nivel de usuario combinado y un subproceso de nivel de kernel instalaciones. Solaris es un buen ejemplo de este enfoque combinado.

10.6. Diferencia entre subprocesos a nivel de usuario y a nivel de núcleo S.N. Subprocesos de nivel de usuario Subproceso de nivel de kernel

10.6.1. Nivel usuario

10.6.1.1. Los subprocesos a nivel de usuario son más rápidos crear y administrar

10.6.1.2. La implementación es por un hilo biblioteca a nivel de usuario.

10.6.1.3. El subproceso a nivel de usuario es genérico y puede ejecutarse en cualquier sistema operativo.

10.6.1.4. Las aplicaciones multiproceso no pueden Aproveche el multiprocesamiento.

10.6.2. Nivel kernel

10.6.2.1. Los subprocesos a nivel de kernel son más lentos para crear y gestionar

10.6.2.2. El sistema operativo admite la creación de Hilos de grano

10.6.2.3. El subproceso a nivel de kernel es específico de sistema operativo.

10.6.2.4. Las rutinas del núcleo pueden ser multiproceso

11. Gestión de memoria

11.1. Maneja o gestiona la memoria primaria y mueve los procesos de ida y vuelta entre la memoria principal y disco durante la ejecución.

11.1.1. Procesar espacio de direcciones

11.1.1.1. El espacio de direcciones del proceso es el conjunto de direcciones lógicas a las que un proceso hace referencia en su código. Por ejemplo, cuando se usa el direccionamiento de 32 bits, las direcciones pueden variar de 0 a 0x7fffffff

11.1.1.2. El sistema operativo se encarga de asignar las direcciones lógicas a las direcciones físicas.

11.1.1.3. Hay tres tipos de direcciones utilizadas en un programa antes y después de asignar la memoria

11.1.1.3.1. Direcciones simbólicas

11.1.1.3.2. Direcciones relativas

11.1.1.3.3. Direcciones físicas

11.1.2. estática vs dinámica

11.1.2.1. Carga

11.1.2.1.1. La elección entre carga estática o dinámica debe hacerse en el momento de la computadora programa en desarrollo

11.1.2.2. Enlace

11.1.2.2.1. Cuando se usa el enlace estático, el enlazador combina todos los demás módulos que un programa necesita en un solo programa ejecutable para evitar cualquier dependencia del tiempo de ejecución.

11.1.2.2.2. Cuando se utiliza la vinculación dinámica, no es necesario vincular el módulo o biblioteca real con el programa, más bien se proporciona una referencia al módulo dinámico en el momento de compilación y vinculación.

11.1.3. Intercambiando

11.1.3.1. El intercambio es un mecanismo en el que un proceso puede intercambiarse temporalmente fuera de main memoria (o mover) al almacenamiento secundario (disco) y hacer que esa memoria esté disponible para otros procesos.

11.1.4. Asignación de memoria

11.1.4.1. La memoria principal generalmente tiene dos particiones

11.1.4.1.1. Memoria baja

11.1.4.1.2. Mempria alta

11.1.4.1.3. El sistema operativo utiliza el siguiente mecanismo de asignación de memoria.

11.1.5. Fragmentación

11.1.5.1. A medida que los procesos se cargan y eliminan de la memoria, el espacio de memoria libre se rompe en pequeños pedazos A veces sucede que los procesos no se pueden asignar a la memoria. Los bloques teniendo en cuenta su pequeño tamaño y los bloques de memoria no se utilizan. Este problema es conocido como fragmentación.

11.1.6. Paginación

11.1.6.1. Una computadora puede direccionar más memoria que la cantidad físicamente instalada en el sistema. Esta memoria extra en realidad se llama memoria virtual y es una sección de un disco duro que está configurado hasta emular la RAM de la computadora. La técnica de paginación juega un papel importante en implementando memoria virtual.

11.1.6.1.1. Ventajas y desventajas de la paginación

11.1.7. Segmentación

11.1.7.1. La segmentación es una técnica de gestión de memoria en la que cada trabajo se divide en Varios segmentos de diferentes tamaños, uno para cada módulo que contiene piezas que funcionan funciones relacionadas Cada segmento es en realidad un espacio de direcciones lógicas diferente del programa.

11.1.8. Fragmentación

11.1.8.1. A medida que los procesos se cargan y eliminan de la memoria, el espacio de memoria libre se rompe en pequeños pedazos A veces sucede que los procesos no se pueden asignar a la memoria. Los bloques teniendo en cuenta su pequeño tamaño y los bloques de memoria no se utilizan. Este problema es conocido como fragmentación.

11.1.8.1.1. Fragmentación interna

11.1.8.1.2. Fragmentación externa

11.1.9. Asignación de memoria

12. Memoria virtual

12.1. Una computadora puede direccionar más memoria que la cantidad físicamente instalada en el sistema. Esta memoria adicional en realidad se llama memoria virtual y es una sección de un disco duro eso está configurado para emular la RAM de la computadora.

12.1.1. Ventajas

12.1.1.1. los programas pueden ser más grandes que físicos memoria.

12.1.1.2. extender el uso de memoria física mediante el uso de disco

12.1.1.3. tener protección de memoria

12.1.2. .

12.1.2.1. Paginación de demanda

12.1.2.1.1. residen en la memoria secundaria y las páginas se cargan solo bajo demanda, no en avanzar.

12.1.2.2. Cadena de referencia

12.1.2.2.1. La cadena de referencias de memoria se denomina cadena de referencia. Se generan cadenas de referencia. artificialmente o rastreando un sistema dado y registrando la dirección de cada memoria referencia. La última opción produce una gran cantidad de datos, donde notamos dos cosas.

12.1.2.3. Algoritmos

12.1.2.3.1. FIFO

12.1.2.3.2. Algoritmo de reemplazo de página

12.1.2.3.3. Algoritmo de página óptimo

12.1.2.3.4. Algoritmo menos utilizado recientemente (LRU)

12.1.2.3.5. Algoritmo de almacenamiento intermedio de página

12.1.2.3.6. Algoritmo menos utilizado con frecuencia (LFU)