sábado, 30 de noviembre de 2019

RESUMEN TEMA 3

Un proceso es un concepto manejado por el sistema operativo y que referencia un programa en ejecución.
Cuando se ejecuta más de un proceso de forma concurrente en un sistema, todos necesitan que el propio sistema les suministre una serie de recursos. Para ello, el sistema operativo, gracias a la UCP, se encarga de asignar estos recursos en un orden adecuado y atendiendo a unas prioridades. También realiza funciones de sincronización de todos los procesos, para que se ejecuten en el orden adecuado y según la prioridad decidida. 
Esta estructura de datos, que es única para cada proceso, identifica el proceso respecto de los demás y sirve para controlar su correcta ejecución. Es lo que se llama el bloque de control del proceso o BCP, y contendrá para cada proceso la siguiente información: estado actual del proceso, identificador del proceso, prioridad del proceso, ubicación en memoria y recursos utilizados. 

Una hebra es un punto de ejecución de un proceso. Un proceso tendrá siempre una hebra, en la que corre el propio programa, pero puede tener más hebras. 
Un proceso clásico será aquel que solo posea una hebra.

Una hebra o hilo es un subproceso de un proceso que consume recursos propios pero que depende del proceso padre que lo ha ejecutado.

Hoy en día existen gran cantidad de programas diseñados en multihilo o multihebra. De esta forma, si un programa puede realizar varias cosas, como analizar el registro del equipo, desfragmentar el disco duro y realizar copias de seguridad, todas ellas se podrán ejecutar a la vez. En programas convencionales, solamente se podría ejecutar una tras otra, pero no todas a la vez. 

Básicamente los estados posibles de un proceso, son los siguientes:

ü  En ejecución: El procesador está ejecutando instrucciones del programa que lo compone y tiene concedido el tiempo de uso de la UCP en un instante concreto. 
ü  Preparado en espera o activo: Un proceso está preparado para ser ejecutado; es decir, está esperando turno para poder utilizar su intervalo de tiempo y poner en funcionamiento sus instrucciones accediendo a los recursos del sistema. 
ü  Bloqueado. El proceso está retenido; es decir, está bloqueado debido a causas múltiples.
Un programa se convierte en proceso cuando se ejecuta y reside completamente en memoria RAM
Todos los procesos dentro de cualquier sistema operativo tienen unas características que los identifican. Cada proceso, tiene un identificador que lo discrimina de los demás. Cada proceso tiene un número asignado por el sistema operativo que sirve para identificar el proceso, lanzarlo a ejecución, detenerlo, cancelarlo, reanudarlo, etc. Este identificador de proceso se nombra con la abreviatura PID. (Proceso de Identificación de Proceso)





Toda la información de un proceso que el sistema operativo necesita para controlarlo se mantiene en una estructura de datos vista anteriormente: el bloque de control de procesos o BCP. En sistemas operativos multiproceso, el sistema operativo mantiene listas de bloques de control de procesos para cada uno de los estados del sistema. 
El BCP de cada proceso almacena información como:

ü  Estado actual del proceso. Ejecución, preparado o bloqueado. 
ü  Identificador del proceso. Dependiendo del sistema operativo, a cada proceso se le  asigna un PID. 
ü  Prioridad del proceso. La asignada por el planificador. 
ü  Ubicación en memoria. Dirección de memoria en la que se carga el proceso. 
ü  Recursos utilizados. Recursos hardware y software para poder ejecutarse. 

Gracias a los algoritmos de planificación, el cargador, planificador, BCP, recursos hardware y software se sincronizan mediante el sistema operativo para la ejecución ordenada de los procesos. 

Sabemos que el ordenador cuenta con la memoria central o principal, pero esta es limitada y, en grandes sistemas, insuficiente. 
Al principio, para ubicar los procesos en memoria y solucionar este problema, se adoptaron técnicas tales como dividir el programa en partes denominadas capas.

Al principio, en los sistemas operativos monousuario y monoproceso, la gestión de memoria era muy sencilla. Las memorias tenían poca capacidad y solo se reservaba una parte de ellas para el sistema operativo.
La parte del sistema operativo que administra la memoria es el administrador de memoria. Su labor es clara: llevar un registro de las partes de memoria que se están utilizando y de las que no.
Para gestionar la memoria en sistemas operativos multitarea, esta se divide en particiones fijas. Así, el sistema operativo dispone de una cola de los procesos que solicitan entrar en memoria. El planificador tiene en cuenta los requerimientos de memoria de cada uno de los procesos y las particiones de memoria disponibles. Estos requerimientos de uso de memoria se almacenan en el BCP (Bloque de control de procesos)
El swapping es una técnica similar a la de memoria virtual. Cuando varios usuarios están ejecutando procesos en un mismo ordenador, este se ve obligado a cargarlos en RAM. Según el estado en el que se encuentre el proceso de cada usuario, la memoria se irá liberando de su proceso y pasará a la zona de swap mediante la técnica que se llama  swap-out. De esta forma, la memoria interna queda liberada para que en ella se pueda almacenar otro proceso del mismo usuario o de otro.



Programas reubicables, reentrantes, residentes y reutilizables
Según cómo, dónde y cuándo se ubiquen en memoria, los programas pueden ser de varios tipos
Reubicables: Son aquellos que, una vez cargados en RAM para ejecutarse, pueden variar de situación, ya que la parte de RAM que ocupan puede ser necesaria para ubicar otro proceso. Estos procesos o programas cambian de posición cuando se está realizando una operación sobre el ordenador.
Reentrantes: Aquellos programas que, si no se están ejecutando, dejan la memoria libre para otros procesos.
Residentes: Son aquellos que, una vez cargados en memoria, permanecerán en ella hasta que se apague el ordenador. No cambian su ubicación en ningún momento. Suelen ser programas de antivirus, de análisis de sistema, de monitorización, etc
Reutilizables: Son programas que normalmente son utilizados por varios usuarios a la vez en memoria, independientemente del número de usuarios que los vayan a utilizar. Con ello se consigue un mejor aprovechamiento de la memoria. 

Cuando trabajamos con sistemas operativos multiusuario, la gestión de datos que se hace dentro del ordenador y su ubicación en memoria y en los soportes de almacenamiento externo, pueden plantear algunos problemas.
En general, los tipos de archivos que gestiona todo sistema operativo son tres:
ü  Archivos regulares o estándares. Son los que contienen información del usuario, programas, documentos, texto, gráficos, etc.
ü  Directorios. Son archivos que contienen referencias a otros archivos regulares o a  otros directorios.
Archivos especiales. Los que no son de ninguno de los dos tipos anteriores.

RESUMEN TEMA 2


El Sistema Operativo es el conjunto de programas, servicios y funciones que gestionan y coordinan el funcionamiento del hardware y del software.
Por otro lado el S.O. ofrece al usuario la forma de comunicarse con el ordenador, bien mediante el teclado (interfaz texto), o mediante otros dispositivos como el ratón, la pantalla táctil, etc. (interfaz gráfica). El S.O. es el medio que el usuario utiliza para realizar sus funciones en un sistema informático u ordenador. El sistema operativo es el software básico del ordenador
El S.O es el que realiza todo el trabajo dentro del equipo; el que hace transparente al usuario el hardware del ordenador. El usuario lo utiliza pero se despreocupa de ejecutarlo o administrarlo. Gracias a una interfaz sencilla, proporciona al usuario una comunicación directa, sin que este tenga que preocuparse de la gestión de memoria, del procesador o de cualquier otro recurso o componente del hardware.
Se puede hacer una pequeña clasificación de los sistemas operativos teniendo en cuenta la gestión que hacen del software y el hardware, y la forma en las que el usuario lo puede utilizar.
·         Sistemas operativos monousuario (SOMO).
·         Sistemas operativos multiusuario (SOMU).
·         Sistemas Operativos en Red
En los Sistemas Operativos Monousuario, los recursos hardware y el software que se están utilizando están a disposición de un solo usuario.
En los Sistemas Operativos Multiusuario, varios usuarios pueden utilizar potencialmente los recursos software y hardware de un mismo ordenador. Varios usuarios pueden utilizar una misma impresora, y acceder por ejemplo a una misma base de datos.
En los Sistemas Operativos en Red, en los que un ordenador comparte recursos con otros equipos que están conectados en la misma red física.
Los SOMU, inicialmente eran sistemas operativos que se montaban en antiguos ordenadores llamados mainframes o microordenadores. Varios teclados y monitores se conectaban directamente a la única CPU, existente y los usuarios conectados compartían todo del mismo y único equipo: memoria, disco, procesador, impresora…
Hoy en los SORED la situación cambia. Varios usuarios que trabajan normalmente en un ordenador que tiene un SOMO pero con funciones de red, se conectan y validan vía red a un ordenador con un sistema operativo.
En los SOMO, la ejecución de un programa no implica demasiadas complicaciones. En primer lugar, el programa se introduce por teclado o se carga desde un dispositivo de almacenamiento externo. Este programa se ubica en memoria (proceso que realiza la UCP) Una vez allí empiezan a trabajar los componentes de la UCP, primero la unidad de control y después la unidad aritmético-lógica.
En los SOMU, existe una sola UCP, la del ordenador principal. A este ordenador están conectados teclados y monitores a modo de terminales, es decir, el usuario que ultima estos sistemas solo dispone de un teclado y un monitor para realizar su trabajo.
En estos, la única UCP existente, realiza los procesos
En los SORED, cada usuario tendrá para si un ordenador personal con otro SO, normalmente monousuario. Cada usuario encenderá su ordenador y establecerá comunicación con el ordenador principal que dispone del SORED.
El ordenador principal puede actuar de varias formas. La primera opción es delegar todo el peso del trabajo en el ordenador del usuario que ha cargado el programa. De esta forma, el ordenador principal solamente hace de servidor de aplicaciones, pero ni su procesador ni su memoria actúan para procesar el programa del usuario. Si los cuatro solicitan la ejecución de un programa en particular, el ordenador principal se dedicara a enviarles el programa a su ordenador cliente.

La primera computadora fue diseñada por Charles Babbage.
Resultado de imagen de valvulaS de vacio· Primera Generación: (1945-1955) Se utilizaban válvulas de vacío.(Imagen izquierda) Estas computadoras, que no eran ordenadores, eran máquinas programadas en lenguaje maquina puro. Eran de gran tamaño, elevado consumo de energía y muy lentas. Las operaciones se reducían a simples cálculos matemáticos.
Resultado de imagen de transistores ordenador· Segunda Generación: (1955-
1965) Aparición de los transistores (Imagen derecha), que se introducen dentro de la arquitectura de las computadoras. Desaparecen las válvulas de vacío, por lo que las computadoras se hacen más pequeñas, baratas, consumen menos y despiden menos calor.  En esta generación, aparece el procesamiento por lotes.
ü  Introducción de datos a procesar en un componente hardware.
ü  Llevar físicamente el soporte, cargado con los datos, a la computadora para que los procesara.
ü  El soporte en el que están los resultados se lleva a otro dispositivo físico distinto a la computadora para finalmente realizar la generación de resultados.
Resultado de imagen de ordenadores personalesResultado de imagen de circuitos integrados· Tercera Generación: (1965- 1980) Aparición de los circuitos integrados. (Imagen izquierda) Son más baratos y más rápidos consumen menos energía y despiden menos calor. Destacar el IBM360.
· Cuarta Generación (1980- hasta hoy). Aparición de las computadoras personales. (Imagen derecha)  Se utilizan complejas técnicas de integración y miniaturización de componentes electrónicos.

LAS IMÁGENES NO TIENEN DERECHOS DE AUTOR,. PARA BUSCARLAS HE PUESTO LAS SIGUIENTES CARACTERÍSTICAS:


El fin del Sistema Operativo es coordinar la utilización que se hace del hardware dependiendo de los programas o aplicaciones que ese esté utilizando.
La comunicación entre los diferentes niveles de realiza mediante las llamadas interfaces.




Un servicio es un tipo de aplicación que normalmente se ejecuta en segundo plano. Los servicios proporcionan a los usuarios aplicaciones que incorporan diversas formas de poder utilizar los recursos del S.O.
Estos servicios pueden utilizarse, entre otras cosas, para:
ü  Crear programas (editores, compiladores, depuradores, etc.).
ü  Ejecutar esos programas proporcionando al sistema los recursos hardware y software  necesarios.
ü  Acceder de forma controlada a los dispositivos de entrada/salida.
ü  Gestionar los archivos de forma controlada y segura.
ü  Acceder a la información de una forma controlada y segura.
ü  Supervisar y solucionar errores provocados por el hardware o el software.
ü  Suministrar información estadística, de seguridad y registro de lo que se hace en el  sistema.
En general, los servicios se utilizan para iniciar, detener, pausar, reanudar o deshabilitar programas y aplicaciones (que a su vez pueden ser servicios) en equipos locales y remotos.
Un proceso es un programa en ejecución. Los procesos en un SO tienen las siguientes características:
ü  Un proceso para empezar su ejecución ha de residir completamente en memoria y tener asignados todos los recursos que necesite.
ü  Cada proceso está protegido del resto de procesos; ningún otro podrá escribir en las zonas de memoria pertenecientes a ese proceso.
ü  Los procesos pueden pertenecer al usuario o ser propios del SO. Estos procesos
ü  pertenecientes a los usuarios se ejecutan en el llamado modo usuario del procesador.
ü  Cada proceso tendrá una estructura de datos llamada bloque de control de proceso, donde se almacenará la información del mismo.
ü  Los procesos podrán comunicarse, sincronizarse y colaborar entre sí. 

Lo que debe quedar claro es que cualquier programa que se esté ejecutando en un ordenador es un proceso, ya que desde ese momento el programa, denominado ya proceso, se puede ejecutar, se puede detener o se puede bloquear, entre otras muchas cosas. 
Cada proceso, para poder ser ejecutado, estará siempre cargado en la memoria principal.
Un programa no es un proceso, sino que se convierte en tal en el momento en que se pone en ejecución.
El reparto de los recursos del sistema entre los distintos procesos y su ejecución concurrente se conoce como multiprogramación.

Una de las tareas más importantes del ordenador, y en particular de la unidad central de proceso, es relacionar y comunicar las unidades periféricas (periféricos de entrada/ salida) con los componentes internos del equipo (memoria, procesador, buses). 
Esta comunicación se realiza a través del gestor de entrada/salida ubicado en la placa base del ordenador. Este componente, integrado en los circuitos de la placa base, se denomina chipset, y una de las funciones que realiza, entre otras muchas, es precisamente la de comunicar las unidades funcionales del equipo con los periféricos de entrada y/o salida. 


Cuando conectamos los periféricos a la placa base y les suministramos corriente, se produce la comunicación.
Hay que destacar las interfaces como medio de comunicación entre hardware y software a través del SO. Las interfaces se pueden clasificar en:

ü  Interfaz tipo texto. Si el SO es de tipo texto, todas las órdenes que el usuario introduzca y las respuestas que el SO dé se introducirán o visualizarán mediante cadenas de caracteres.
ü  Interfaz tipo gráfico. Hoy en día, la mayoría de los sistemas operativos utiliza medios de comunicación entre máquina y ordenador de tipo gráfico.
ü  Interfaz mixta. Hoy en día, casi todos los sistemas operativos utilizan ambas interfaces para comunicar el usuario con el ordenador.
ü   
De forma general, un SO se puede explotar de dos formas:

ü  Proceso en lotes: Este sistema de explotación se empezó a utilizar en la segunda generación de ordenadores.
ü  Proceso en tiempo real: Este tipo de explotación del ordenador es similar a la anterior. La diferencia está en que el usuario que introduce los datos es el que suele lanzar el programa para procesar los datos introducidos y el que obtiene la información procesada, todo ello en un mismo sistema informático y en un tiempo relativamente corto.
ü  Según el número de usuarios:
·         Monousuario (o monopuesto). Cuando solo un usuario trabaja con un ordenador. En este sistema todos los dispositivos de hardware están a disposición de ese usuario y no pueden ser utilizados por nadie más hasta que este no finalice su sesión. 
·         Multiusuario. En este sistema, varios usuarios pueden utilizar simultáneamente los recursos del sistema. Pueden compartir, sobre todo, los dispositivos externos de almacenamiento y los periféricos de salida, fundamentalmente impresoras.
ü  Según el número de procesos: Esta clasificación se hace atendiendo al número de programas que puede ejecutar simultáneamente el ordenador o sistema informático.
·         Monoprogramación o monotarea. En este caso, el sistema solamente puede ejecutar un programa o proceso a la vez.
·         Multiprogramación o multitarea. En este caso, la cosa es bien distinta. Este tipo de SO puede ejecutar varios programas o procesos concurrentemente, es decir, “simultáneamente”.
ü  Según el número de procesadores del sistema informático: Esta clasificación depende del número de procesadores que el SO sea capaz de gestionar. Su clasificación es la siguiente: 
·         Monoprocesador. El ordenador consta de un único procesador. Todos los trabajos a realizar pasarán por él. El ordenador que tenga este SO puede ser monousuario o multiusuario; monotarea o multitarea.
·         Multiprocesador. El ordenador cuenta con dos o más procesadores. Así, determinados SO pueden aprovechar las ventajas de este tipo de hardware. 
Hay dos formas de utilizar los diferentes procesadores por parte del SO: 

o          a) Multiproceso simétrico (SMP). El SO utilizará la potencia de los procesadores de igual forma. Así, irá utilizando poco a poco los dos o más procesadores con los que cuente el sistema de forma simultánea. 
o          b) Multiproceso asimétrico (AMP). El SO reparte las tareas que está realizando a cada procesador con los que cuenta el sistema informático.
ü  Según el tiempo de respuesta 
Esta clasificación se hace teniendo en cuenta el tiempo que tarda el usuario del sistema en obtener los resultados después de lanzar un programa a ejecución. 
·      Tiempo real. La respuesta es inmediata (o casi inmediata) tras lanzar un proceso. 
·      Tiempo compartido. Cada proceso utilizará ciclos de la UCP hasta que finalice.


Cabe destacar el concepto de pseudomultitarea. Este caso solamente afecta a los SO Windows 95, 98 y Me, porque son capaces de tener cargados en memoria más de un proceso y estar ejecutando, aparentemente, más de uno a la vez.

Actualmente, la mayoría de los SO, a partir de los 32 bits, son abiertos y segmentados. Esto permite, en primer lugar, su fácil modificación en caso necesario, ya que el conjunto de programas que lo componen está dividido en bloques. Su diseño permite que un blog que de programas controle los periféricos de entrada, otro los periféricos de salida, otro los dispositivos de almacenamiento, otro las comunicaciones, etc.

La última generación de sistemas operativos, a partir de los de 32 bits, son aquellos que se denominan sistemas operativos de máquina virtual. A diferencia de los anteriores, estos tienen un núcleo que les permite emular el hardware.
Virtualización: Término amplio que se refiere a la abstracción de los recursos de un ordenador. 

jueves, 7 de noviembre de 2019

BLOQUE DE CONTROL DE PROCESOS


BLOQUE DE CONTROL DE PROCESOS.

En primer lugar, nos centraremos en que es un proceso.

Se trata de una tarea que se puede definir como un programa en ejecución.

Un Bloque de Control de Procesos es un registro especial donde el sistema operativo agrupa toda la información que necesita conocer respecto a un proceso particular.

Información que contiene el BCP en Linux
Linux reserva una de estas estructuras para él y la apunta desde una tabla de procesos. El identificador del proceso es el índice de esa tabla y al asignarle un estado este lo inserta en la cola que representa el estado.
Resultado de imagen de bcp en linux
Resultado de imagen de bcp en linux


Información que contiene en BCP en Windows:
Habitualmente en un sistema operativo (Windows), se crea un proceso que resulta admitido, pasando al estado listo, pero, sin embargo, no tiene por qué ser siempre así.
ü  Exportaciones masivas de datos de una tabla de SQL Server a un archivo de datos.
ü  Exportaciones masivas de una consulta.
ü  Importaciones masivas de datos de un archivo de datos a una tabla de SQL Server.
ü  Genera archivos de formato.


LÍNEA DEL TIEMPO