2. Un proceso es básicamente un programa en ejecución.
Consta del programa ejecutable, sus datos y pila, contador y
otros registros, además de toda la información necesaria
para ejecutar el programa.
En forma periódica, el sistema operativo decide detener la
ejecución de un proceso y comenzar la ejecución de otro.
Cuando un proceso se detiene en forma temporal, éste debe
volverse a inicializar en el mismo estado que se encontraba
al detenerse. Esto quiere decir, que toda la información
relativa al proceso debe almacenarse de forma explícita en
alguna parte de la suspensión.
3. Un proceso es un concepto manejado por el sistema operativo que
consiste en el conjunto formado por:
Las instrucciones de un programa destinadas a ser ejecutadas por el
microprocesador.
Su estado de ejecución en un momento dado, esto es, los valores de
los registros de la CPU para dicho programa.
Su memoria de trabajo, es decir, la memoria que ha reservado y sus
contenidos.
Los procesos son creados y destruidos por el sistema operativo, así
como también este se debe hacer cargo de la comunicación entre
procesos, pero lo hace a petición de otros procesos. El mecanismo por
el cual un proceso crea otro proceso se denomina bifurcación (fork). Los
nuevos procesos son independientes y no comparten memoria (es decir,
información) con el proceso que los ha creado.
4. En muchos sistemas operativos, toda la
información relativa a un proceso, distinta del
contenido de su propio espacio de dirección, se
almacena en una tabla del sistema operativo
llamada Tabla de Procesos, la cual consta de un
arreglo (o lista ligada) de estructuras, una por
cada proceso existente en ese momento.
5. El principal trabajo del procesador es ejecutar las instrucciones
de máquina que se encuentran en memoria principal. Estas
instrucciones se encuentran en forma de programas. Para que
un programa pueda ser ejecutado, el sistema operativo crea un
nuevo proceso, y el procesador ejecuta una tras otra las
instrucciones del mismo.
En un entorno de multiprogramación, el procesador intercalará
la ejecución de instrucciones de varios programas que se
encuentran en memoria. El sistema operativo es el responsable
de determinar las pautas de intercalado y asignación de
recursos a cada proceso.
6. El modelo de estados más simple es el de dos estados. En este modelo,
un proceso puede estar ejecutándose o no. Cuando se crea un nuevo
proceso, se pone en estado de No ejecución. En algún momento el
proceso que se está ejecutando pasará al estado No ejecución y otro
proceso se elegirá de la lista de procesos listos para ejecutar para
ponerlo en estado Ejecución.
De esta explicación se desprende que es necesario que el sistema
operativo pueda seguirle la pista a los procesos, conociendo su estado y
el lugar que ocupa en memoria. Además los procesos que no se están
ejecutando deben guardarse en algún tipo de cola mientras esperan su
turno para ejecutar.
7. Dos o más procesos pueden cooperar mediante señales de forma
que uno obliga a detenerse a los otros hasta que reciban una señal
para continuar.
Se usa una variable llamada semáforo para intercambiar señales.
Si un proceso esta esperando una señal, se suspende (WAIT) hasta
que la señal se envíe (SIGNAL).
Se mantiene una cola de procesos en ESPERA en el semáforo.
La forma de elegir los procesos de la cola en ESPERA es mediante
una política FIFO.
La sincronización explícita entre procesos es un caso particular del
estado "bloqueado". En este caso, el suceso que permite
desbloquear un proceso no es una operación de entrada/salida, sino
una señal generada a propósito por el programador desde otro
proceso.
8. Los procesos son creados y destruidos por el sistema operativo, así
como también este se debe hacer cargo de la comunicación entre
procesos.
El mecanismo por el cual un proceso crea otro proceso se denomina
bifurcación.
El sistema operativo es el responsable de determinar las pautas de
intercalado y asignación de recursos a cada proceso.
Si existe un esquema con diferentes niveles de prioridad de procesos
es conveniente mantener varias colas de procesos listos, una para cada
nivel de prioridad, lo que ayuda a determinar cuál es el proceso que más
conviene ejecutar a continuación.
La sincronización explícita entre procesos es un caso particular del
estado "bloqueado". En este caso, el suceso que permite desbloquear un
proceso no es una operación de entrada/salida, sino una señal generada
a propósito por el programador desde otro proceso.
9. Los programas de Usuario se comunican
con el sistema operativo y le solicitan el
servicio mediante las llamadas al sistema. A
cada una de estas llamadas le corresponde
un procedimiento de la biblioteca que
pueden llamar los programas del usuario.
Este procedimiento pone los parámetros de
la llamada al sistema en un lugar específico
como pueden ser los registros de la
máquina, para después ejecutar una función
llamada TRAP para iniciar el sistema
operativo. Cuando el sistema operativo
recupera el control después del
TRAP, examina los parámetros para ver si
son válidos, en ese caso, desarrolla el
trabajo solicitado. Al terminar, el sistema
operativo coloca un código de estado en un
registro, para indicar si tuvo éxito o fracaso.
10. El sistema Operativo es el código que lleva a
cabo las llamadas al sistema. Los editores,
compiladores, ensambladores, ligadores e
intérpretes de comandos no son parte del
sistema operativo, aunque sean importantes
y útiles.
El Shell sin ser parte del sistema operativo,
hace uso extenso de muchas de las
características del sistema. También es la
interfaz entre un usuario sentado frente a un
terminal y el sistema operativo.
Cuando un usuario inicia una sesión, el Shell
se inicializa. El Shell reconoce a la terminal
como su entrada y salida estándar.
11. El Shell (caparazón) de un sistema operativo es la interfaz que
media entre el usuario y el sistema operativo. Básicamente, su
función es la de interpretar, ejecutar y devolver una respuesta a lo
que el usuario escribe por línea de comandos.
El Shell, en definitiva, no es más que un ejecutable que interpretar
los comandos transmitirlos.
línea de comandos no es más que una cadena de caracteres que
representan a un comando y que luego será interpretada por el
Shell. El comando suele ser un archivo ejecutable del sistema o del
Shell junto con otros argumentos opcionales (parámetros).
12. El kernel ó núcleo se puede definir como el
corazón de un sistema operativo. Es el
encargado de que el software y el hardware
de tu ordenador puedan trabajar juntos.
Las funciones más importantes del mismo,
aunque no las únicas, son:
Administración de la memoria para todos
los programas y procesos en ejecución.
Administración del tiempo de procesador
que los programas y procesos en ejecución
utilizan.
Es el encargado de que podamos acceder
a los periféricos/elementos de nuestro
ordenador de una manera cómoda.