Sei sulla pagina 1di 17

Proceso de Sistemas Operativos

Jhoni Torres Llacctahuaman


Jhony Bartolo arche
Liseth Alfonso Huamani
Doris Yaulilahua Ramos
Universidad para el Desarrollo Andino

Abril 2018

Universidad para el Desarrollo Andino.

Escuela Académica Profesional de Ingeniería Informática.

Sistemas Operativos I.
DEDICATORIA

El presente está dedicado en primer


lugar a Dios por darnos la vida, la
fortaleza y la posibilidad de poder
continuar la vida académica. A nuestros
padres, por su lucha diaria por brindar
una mejor calidad de estudios.
ÍNDICE

INTRODUCCIÓN ..................................................................................................... 1

PROCESO .................................................................................................................. 2

I. DEFINICIÓN ..................................................................................................... 2

1.1. Estados en los que puede estar un proceso ..................................................... 5

1.2. Características de los procesos ....................................................................... 5

1.3. Estados ........................................................................................................... 7

1.3.1. Estructuras de control del SO ..................................................................... 7

II. Modelo con estado Listo y Bloqueado ........................................................... 9

III. Modelo de estados de Unix .......................................................................... 10

CONCLUSIÓN ........................................................................................................ 13

BIBIOGRAFIA ........................................................................................................ 14
1

INTRODUCCIÓN

Todas las computadoras modernas pueden hacer varias cosas al mismo tiempo.

Mientras ejecuta un programa de usuario, una computadora también puede estar leyendo

de un disco y enviando texto a una pantalla o impresora.

Si bien, estrictamente hablando, en un instante dado la CPU está ejecutando sólo un

programa, en el curso de un segundo puede trabajar con varios programas, dando a los

usuarios la ilusión de paralelismo.


2

PROCESO

I. DEFINICIÓN

a) un proceso es "Una unidad de actividad que se caracteriza por la ejecución de

una secuencia de instrucciones, un estado actual, y un conjunto de recursos de

los sistemas asociados".

El proceso es la actividad que consiste en que el científico computacional

vaya leyendo la receta, obteniendo los ingredientes y horneando el pastel.

Cada proceso tiene su contador de programa, registros y variables, aislados

de otros procesos, incluso siendo el mismo programa en ejecución 2 veces.

Cuándo este último caso sucede, el sistema operativo usa la misma región de

memoria de código, debido a que dicho código no cambiará, a menos que se

ejecute una versión distinta del programa.

Los procesos son gestionados por el sistema operativo y están formados 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 unidad central de procesamiento para dicho programa.

 Su memoria de trabajo (memoria crítica), es decir, la memoria que ha

reservado y sus contenidos.

Un proceso se erige en pequeñas porciones, conocidas como páginas, y cada

proceso tiene su propia tabla de paginación, fungiendo como una optimización

del sistema operativo ante los fallo de página.

(gonzalez, 2012)
3

b) De forma intuitiva podemos considerar que un proceso es un programa en

ejecución. Si en un sistema informático se están ejecutando 3 programas

diferentes: un navegador, un compilador y un editor, mientras dure su ejecución

por cada programa existirá un proceso. Un sistema operativo multitarea intenta

dedicar atención a todos los procesos para que su ejecución avance en paralelo,

aunque sea de un modo aparente.

Normalmente existirán más procesos listos para ejecutar que CPUs reales.

Como una CPU, en un instante dado, sólo ejecuta un proceso, el sistema

operativo ha de repartir la atención de las CPUs entre los procesos listos para

ejecutar. A la técnica de alternar la ejecución de diferentes procesos en una

misma CPU se la llama tiempo compartido. A la decisión de qué proceso pasa a

ejecutar en una CPU, y durante cuánto tiempo, se la llama planificación.

Realmente sólo un programa sencillo genera un proceso. Cualquier aplicación

de usuario que quiera realizar varias acciones de manera simultánea (por

ejemplo: atender la interfaz de usuario y manejar las conexiones de red) puede

crear varios procesos que se ejecutan en paralelo. Además un mismo programa

puede ser ejecutado varias veces de manera simultánea, por un mismo usuario o

por diferentes usuarios del sistema. En cada caso el sistema operativo creará los

procesos que correspondan a la múltiple ejecución del programa.

En definitiva, un proceso es una tarea que el sistema operativo puede

planificar para ejecutar en una CPU.

(Carceler, s.f.)

c) Un proceso podría ser una instancia de un programa en ejecución. A los procesos

frecuentemente se les refiere como tareas. El contexto de un programa que está

en ejecución es lo que se llama un proceso. Linux, es un sistema operativo


4

multitarea y multiusuario. Esto quiere decir que múltiples procesos pueden

operar simultáneamente sin interferirse unos con los otros. Cada proceso tiene la

"ilusión" que es el único proceso en el sistema y que tiene acceso exclusivo a

todos los servicios del sistema operativo.

Programas y procesos son entidades distintas, múltiples instancias de un

programa pueden ejecutarse simultáneamente. Cada instancia es un proceso

separado. Por ejemplo, si usuarios desde equipos diferentes, ejecutan el mismo

programa al mismo tiempo, habría tantas instancias del mismo programa, es

decir, procesos distintos.

Cada proceso que se inicia es referenciado con un número de identificación

único conocido como Process ID PID, que es siempre un entero positivo.

Prácticamente todo lo que se está ejecutando en el sistema en cualquier momento

es un proceso, incluyendo el shell, el ambiente gráfico que puede tener múltiples

procesos, etc. La excepción a lo anterior es el kernel en sí, el cual es un conjunto

de rutinas que residen en memoria y a los cuales los procesos a través de

llamadas al sistema pueden tener acceso.

(Ecured, 2011)

d) Un proceso no es más que un programa en ejecución, e incluye los valores

actuales del contador de programa, los registros y las variables.

Conceptualmente cada uno de estos procesos tiene su propia CPU virtual. Desde

luego, en la realidad la verdadera CPU conmuta de un proceso a otro.

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.
5

 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.

(Zoé, 2012)

1.1. Estados en los que puede estar un proceso

 Listo: Tiene todo lo necesario para ejecutarse excepto el procesador.

 Suspendido: No está en memoria principal.

 Bloqueado: Está esperando un evento.

 Bloqueado y suspendido.

 Listo y suspendido.

1.2. Características de los procesos

Aunque los detalles de implementación son diferentes en cada sistema

operativo. Desde un punto de vista teórico, asociado con los procesos podemos

encontrar:

1.2.1. Segmentos o memoria asignada

Memoria asignada para la ejecución de un proceso.

Normalmente segmento de código, segmento de datos y pila.

Si en un sistema informático tres usuarios cargan, una vez cada uno,

un mismo editor de textos. Suponiendo que el editor sólo necesita de un

proceso para ejecutarse, el sistema operativo contará con tres procesos

para la triple ejecución del editor.


6

Parece claro que en el sistema se reservará, para cada proceso,

memoria para almacenar las instrucciones del programa editor y para los

datos que está editando el usuario. También será necesario en cada

proceso tener un espacio de memoria llamado pila, en el que se registrará

el contexto actual antes de hacer un salto a una función, para retomarlo

cuando esta termine.

Así cada proceso contará con su propio segmento de código, segmento

de datos y pila.

Es responsabilidad de la gestión de memoria del sistema operativo

ubicar estos segmentos en memoria para cada proceso. En los sistemas

operativos modernos se utiliza memoria virtual, y estos segmentos no

tienen por qué residir (completamente) en memoria principal. Tampoco

se trata de bloques contiguos de direcciones de memoria físicas, pero

desde el punto de vista lógico los segmentos están disponibles y

probablemente estén formados por áreas de memoria contigua..

Aunque cada proceso ve su propio segmento de código, puede que

físicamente sólo haya un segmento de código en memoria para los tres

procesos, así se evita consumir memoria para guardar información

redundante. En un SO moderno puede que sólo exista un segmento de

código común, y compartido, para los tres procesos. Sin embargo, en este

ejemplo no tiene sentido compartir los segmentos de datos y pila pues

son diferentes en los tres procesos.

Compartir áreas de memoria es un método de comunicación entre

procesos.
7

1. Imagen de un proceso en Unix

Según William Stallings en el libro Sistemas Operativos, la

imagen de un proceso en Unix está formada por:

2. Contexto del usuario

2.1. Incluye: Texto del proceso (las instrucciones ejecutables),

Datos del proceso (segmento de datos), Pila del usuario

(argumentos, variables locales y punteros de las funciones),

Memoria compartida (utilizada para la comunicación

interproceso).

3. Contexto de los registros

3.1.Incluye: Contador de programa, Registro de estado del

procesador, Puntero de pila, Registros de propósito general

4. Contexto del sistema

4.1.Incluye: Entrada en la tabla de procesos, Área U (de usuario),

Tabla de regiones de pre proceso y Pila del núcleo

1.3. Estados

Un proceso va cambiando de estado durante su existencia. Algunos estados

posibles son: nuevo, listo para ejecutar, en ejecución, bloqueado y terminado.

1.3.1. Estructuras de control del SO

El sistema operativo debe seguir la pista a los diferentes procesos: qué

recursos tiene asignado cada proceso, a qué usuario pertenece,

características que le permitan tomar una decisión de planificación

óptima.
8

Mientras existe, es decir desde que se crea hasta que se destruye, un

proceso pasa por diferentes estados. El planificador del SO en función de

las necesidades del proceso y de la disponibilidad de recursos va

actualizando el estado de cada proceso.

Un modelo de estados extremadamente reducido es el de dos estados:

En este caso un proceso sólo puede encontrarse en dos estados

diferentes:

1. No ejecución: Está esperando la disponibilidad de una CPU o bien

no necesita la atención de ninguna CPU porque está esperando algún

suceso (por ejemplo una operación de entrada/salida).

2. Ejecución: El proceso se está ejecutando en alguna CPU.

Mientras que en el estado de no ejecución puede haber varios

procesos, en el estado de ejecución sólo habrá un proceso por cada CPU

instalada (normalmente una).

En este modelo pueden ocurrir las siguientes transiciones de estado:

 Entrar

Un proceso nuevo, recién creado, pasa al estado de no ejecución. Y

muy probablemente esté preparado para ejecutar tan pronto como haya

una CPU disponible.


9

 Expedir/Planificar

Cuando hay una CPU disponible el SO toma uno de los procesos que

están esperando en no ejecución y lo pasa al estado de ejecución.

 Interrumpir

Un proceso que está en ejecución pasa a no ejecución. Las razones

para esta transición son múltiples: el proceso ha estado en ejecución

durante un tiempo máximo, algún proceso de mayor prioridad demanda

la CPU, el proceso decide pasar voluntariamente a no ejecución, el

proceso inicia una operación de entrada/salida.

 Salir

El proceso termina y deja de existir

II. Modelo con estado Listo y Bloqueado

Un modelo más detallado puede incluir 5 estados:

Las novedades frente al modelo anterior son:

1. Cuando se crea un nuevo proceso, este debe ser admitido por el SO. El SO puede

rehusar pasar el nuevo proceso al estado de listo al proceso si no cuenta con

suficientes recursos.
10

2. El anterior estado de no ejecución se divide en listo y bloqueado. De esta manera

se distingue entre aquellos procesos que no se están ejecutando porque no hay una

CPU disponible (estado listo) y los que están esperando que ocurra algún suceso

(estado bloqueado).

3. Cuando un proceso completa su ejecución el SO libera sus recursos y

posiblemente realiza algunas operaciones contables como tomar nota de los

recursos que utilizó. En algunos sistemas se paga por el tiempo de CPU

consumido.

III. Modelo de estados de Unix

Si nos fijamos en el modelo de estados de Unix, vemos que aparecen muchos

estados nuevos y sus correspondientes transiciones:

El significado de los estados es:

1. Ejecución modo usuario

El proceso está siendo ejecutado por una CPU. En un momento dado sólo

puede haber tantos procesos en ejecución como CPUs físicas tenga la máquina.

Además la CPU está funcionando en modo usuario, es decir que está ejecutando
11

código del espacio de usuario. Si el código está mal escrito y se produce un error,

la aplicación terminará.

2. Ejecución modo núcleo

El proceso está siendo ejecutado por una CPU, y la CPU está funcionando en

modo núcleo. Sólo el kernel del SO se ejecuta en modo núcleo. Cuando una CPU

funciona en modo núcleo o modo supervisor, permite realizar algunas operaciones

que están prohibidas en modo usuario. De esta manera el núcleo del sistema

operativo puede controlar todo el sistema informático. Si el código está mal

escrito y se produce un error probablemente todo el sistema se detenga.

3. Listo para ejecutar y en memoria

Un proceso está listo para ejecutar cuando está disponible para ejecutar en

cuanto sea asignado a alguna CPU. Además este proceso está cargado en memoria

principal, de manera que puede ser ejecutado en cuanto quede una CPU

disponible.

4. Dormido y en memoria

Un proceso dormido está esperando que ocurra determinado suceso: le llegue

una señal de algún otro proceso, se complete una operación de entrada/salida,

transcurra determinado tiempo... Es decir, de momento no precisa la atención de

ninguna CPU. Además, el proceso está cargado en memoria principal.

5. Listo para ejecutar y descargado

Un proceso que estaba ocurriendo determinado suceso ya está preparado para

ejecutarse, pero aún necesita ser cargado en memoria principal antes de que pueda

ser planificado en alguna CPU.


12

6. Dormido y descargado

El proceso no necesita la atención de ninguna CPU porque está esperando

algún suceso externo, y el planificador del SO ha decidido descargarlo de la

memoria principal (a disco) para que la memoria principal liberada pueda agilizar

el funcionamiento de otros procesos.

7. Expulsado

Básicamente es un proceso que abandona la ejecución en modo núcleo antes

de ser planificado para la ejecución en modo usuario. A efectos de planificación

aquellos procesos que están en expulsado y los que están en listo para ejecutar y

en memoria forman una sola cola.

8. Creado

Un nuevo proceso puede pasar al estado de listo para ejecutar y en memoria o

bien al de listo para ejecutar y descargado en función de la memoria disponible.

9. Zombie

Cuando un proceso termina, el SO libera todos los recursos que tenía asociados

excepto la estructura de control que guarda los datos del proceso (código de

retorno, tiempo de ejecución...) esperando a que el proceso padre la recoja. Si un

proceso termina y el proceso padre no recoge estos datos, el proceso que ha

terminado se queda en el estado zombie. En un sistema que funciona

correctamente no debería haber procesos en este estado durante un tiempo

prolongado.
13

CONCLUSIÓN

Podemos concluir que es un poseso de entrada, actividades y salida, también se dice

que la entrada y la salida son tangibles o intangibles (se puede ver como también no).

Bueno también después que un proceso creado realiza su función, puede ocurrir

alguna de las siguientes condiciones:

1. Concluye normalmente (Normal exit - voluntariamente).

2. Termina con error (Error exit - voluntariamente).

3. Provoca un error fatal (Fatal error - involuntariamente).

4. Es destruido (Killed) por otro proceso (involuntario).

La mayoría de los procesos termina porque realizó su trabajo.

Los programas orientados a pantalla comúnmente incluyen herramientas para su

conclusión voluntaria.
14

BIBIOGRAFIA

Carceler, V. (s.f.). Institut Puig Castellar Santa Coloma de Gramenet. Obtenido de

https://elpuig.xeill.net/Members/vcarceler/c1/didactica/apuntes/ud3/na7

Ecured. ( 2011). Obtenido de https://www.ecured.cu/Administrador_de_procesos

gonzalez, g. (24 de junio de 2012). blogspot. Obtenido de

http://losprocesosinformaticos.blogspot.pe/

Zoé, S. (3 de abril de 2012). Mis blogs. Obtenido de

https://www.blogger.com/profile/12508889952391039219

Potrebbero piacerti anche