Sie sind auf Seite 1von 6

ARQUITECTURA.

ESTRUCTURA Y FUNCIONAMIENTO DE LOS COMPUTADORES


Un computador es una mquina que toma como entrada datos e
instrucciones propias de su arquitectura, ejecuta una a una las
instrucciones, y produce resultados, en forma de datos de salida.
De esta forma, la inteligencia de los computadores estar dada
por la secuencia de instrucciones que ste debe ejecutar.
Las instrucciones de mquina son un conjunto predeterminado de
rdenes propias de la mquina, que ha sido especificado por sus
fabricantes. Este conjunto de rdenes tiene como objetivo que el
computador realice determinadas funciones.
Unidad central de proceso (CPU)
La CPU est compuesta por la unidad aritmtica, la unidad de
control y la memoria.
Adicionalmente se puede contar con dispositivos de entrada/salida,
como discos duros, monitor, mouse, etc.
Unidad de control
Se encarga del funcionamiento de todo el conjunto. Su
funcionamiento general consiste en:
Leer una instruccin de la memoria
Interpretar la instruccin
Leer los datos de memoria referenciados
Ejecutar la instruccin, y si es necesario, almacenar el resultado
Registros de control y estado
Residen en la unidad de control, dependen de la arquitectura del
computador. Los registros principales son:
Estado: Informacin producida por alguna de las ltimas
instrucciones del programa
Contador de programa (PC Program Counter): Almacena la
direccin de la siguiente instruccin
Registro de instruccin (IR Instruction Register): almacena la
instruccin que se va a ejecutar
Apuntador a la pila (SP Stack Pointer): Maneja la pila en memoria
principal
Modelo de programacin del computador
El modelo de programacin del computador est compuesto de:
Elementos de almacenamiento: Son aquellos elementos visibles a
las instrucciones de mquina, tales como los registros generales, el
contador de programa, el apuntador a la pila, el registro de estado,
la memoria RAM y el mapa de Entrada/Salida.
Juegos de instrucciones: Son aquellas operaciones que puede
realizar la mquina, unido a los modos de direccionamiento, que
especifican cmo se identifican los elementos de almacenamiento
que intervienen en las instrucciones.
Secuencia de funcionamiento: Modo en que se ejecutan las
instrucciones de mquina.
Registro de estado
Almacena la informacin producida por alguna de las ltimas
instrucciones del programa. El valor de los bits de este registro
puede ser usado para conocer el estado de una operacin
aritmtica o la informacin sobre la forma en que se debe comportar
la mquina. El registro de estado se compone de:
Bits aritmticos
Signo: Almacena el signo de la ltima operacin realizada
Acarreo: Se activa si la ltima suma o resta realizada posee carreo
Cero: Se activa si el resultado de la ltima operacin es cero
Desbordamiento: Se activa si la ltima operacin produjo
desbordamiento
Bits de nivel de ejecucin: Permiten establecer el nivel de
ejecucin
Bits de control de interrupciones: Interrupciones que puede aceptar
el Procesador

Nivel de usuario
Este nivel es menos permisivo, algunas de las instrucciones de
mquina se encuentran restringidas (entrada/salida, gestin de
memoria), y slo se tiene acceso a determinados registros. El nivel
de usuario slo permite modificar los bits 0 a 5 del registro de
estado, y el apuntador de la pila del usuario
Nivel de ncleo (kernel)
En este nivel no se tiene restriccin en las instrucciones, los
registros generales ni el registro de estado.
Secuencia de funcionamiento del computador
El computador funciona de manera secuencial, con los siguientes
pasos:
1. Leer de la RAM la instruccin apuntada por el Program Counter
(PC)
2. Incrementar el PC
3. Ejecutar la instruccin leda de memoria
Se debe contar con instrucciones que permitan saltar a otra
instruccin, diferente a la siguiente en secuencia. Para ellos se
puede contar con instrucciones de salto o bifurcacin e
interrupciones. Las instrucciones de bifurcacin permiten
que el programa rompa su ejecucin y salte a otro segmento del
mismo programa. Las interrupciones (internas o externas) modifican
el valor del PC y lo hacen saltar a otro programa.
Las interrupciones son uno de los mecanismos que tienen los
modelos de computacin para interrumpir el funcionamiento
secuencial de la CPU, y de esta manera permitir que se ejecute otro
programa. Las excepciones se pueden producir por
desbordamientos, errores de entrada/salida, direccionamiento
errado.
Las interrupciones de reloj se ejecutan en un intervalo de tiempo
determinado.
Las interrupciones de Entrada/Salida permiten avisar a la CPU de la
ocurrencia de un evento.
Las excepciones de hardware se producen cuando ocurre un error
de memoria, o corte de corriente
La instruccin TRAP permite que un programa lance una
interrupcin De otro lado, las interrupciones pueden manejar
prioridades, con el fin de distinguirlas en orden de relevancia.
A nivel fsico, una interrupcin es una seal que se enva a la
unidad de control.
El agente que solicita la interrupcin debe proporcionar un vector
que especifica la direccin de la rutina de tratamiento. Este proceso
se lleva a cabo cuando termina la ejecucin de la instruccin de
mquina actual, y consiste en las siguientes operaciones:
Salvar algunos registros (Estado y pc)
Pasar a modo ncleo
Cargar un nuevo valor en el PC
El nuevo valor cargado en el PC corresponde a la direccin que ha
sido proporcionada por el agente que solicit la interrupcin, con
esto se activa la rutina de tratamiento. Luego de ejecutar dicha
rutina, se recupera el estado almacenado y se pasa al modo
usuario.
El concepto de reloj se puede aplicar en tres mbitos:
Seal que gobierna el ritmo la CPU, y determina la frecuencia de
ejecucin (Velocidad)
Temporizador que enva interrupciones peridicas al procesador
Acumulador de segundos, a partir del cual se puede calcular la
fecha y la hora.
Jerarqua de memoria
La memoria se puede dividir de acuerdo a su velocidad de acceso,
en donde se tiene:
Registros del procesador: Dispositivos de almacenamiento
temporal, cuya velocidad de acceso vara entre 1 a 5 nanosegundos Su capacidad vara de 64 a 256 bytes.

Memoria cach: Integrada al procesador, es un dispositivo de


almacenamiento temporal, cuya velocidad de acceso vara entre 1 a
5 nano -segundos. Su capacidad vara de 8 kB a 2 MB.
Memoria RAM: Almacenamiento temporal, su velocidad vara de 60
a 200 nanosegundos. Su capacidad vara de 64 MB a 64 GB.
Discos: Almacenamiento permanente, su velocidad de acceso
vara de 10 a 30
mili-segundos, y su capacidad de almacenamiento vara de 50 MB a
809 GB
Memoria Virtual
Debido a la necesidad de ejecutar varios procesos al tiempo, se
requiere mayor cantidad de memoria. Sin embargo, el computador
posee una memoria RAM limitada; para solucionar este problema
se puede hacer uso de otro componente de memoria (discos) para
que el sistema la utilice como memoria RAM. El manejo de memoria
virtual es transparente para el usuario, ya que es administrada por
el sistema operativo con ayuda del Hardware. De esta forma, el
sistema da la impresin de tener una cantidad ilimitada de RAM.
Memoria Virtual
La memoria total se divide en pginas, que son cargadas en un
espacio de memoria virtual, compuesto por la RAM, la ROM y en un
dispositivo de almacenamiento secundario. De esta forma, las
direcciones generadas por las instrucciones de mquina se refieren
al espacio virtual, que puede estar compuesto por un conjunto de
pginas en memoria principal y otras en memoria secundaria.
Sin embargo, para que un programa pueda ser ejecutado, debe
residir en memoria principal, por esto se debe realizar un
intercambio de pginas, en el cual se llevan a la memoria
secundaria aquellas pginas que no estn siendo utilizadas
actualmente y se cargan en memoria principal las pginas que el
programa necesita.Los espacios virtual y fsico se dividen en
pginas virtuales y pginas de intercambio. Cuando un programa
solicita una direccin de memoria (en el espacio virtual) que no se
encuentra en memoria principal, se produce un fallo de pgina que
debe ser atendido por el sistema operativo, para cargar la pgina
correspondiente a memoria principal.
Entrada y salida
Se puede definir como el intercambio de informacin entre los
dispositivos perifricos, la memoria y los registros del procesador.
Las operaciones de entrada/salida se pueden realizar a nivel de
bloque y a nivel de carcter.
Dispositivos de bloque: Cada vez que se realiza una operacin de
E/S, se intercambia un conjunto de bloques de informacin
Dispositivos de carcter: Cada operacin intercambia un carcter
Dispositivos de Entrada/Salida
Todo dispositivo de entrada/salida debe tener adems una pieza de
software/hardware llamada controlador, que posee registros de
control, datos y estado. Segn su configuracin, un dispositivo de
entrada/salida puede leer o escribir directamente en la RAM o en
los registros del procesador o lanzar interrupciones para informar
que existen datos. El sistema operativo tambin puede monitorear
constantemente los registros de estado del dispositivo para
verificar si existe un cambio.
Entrada/salida y concurrencia
De acuerdo a la concurrencia, las operaciones de E/S se pueden
dividir en:
No concurrente: El sistema operativo es el encargado de
monitorear los eventos que ocurren en los dispositivos de
entrada/salida (espera activa). No es conveniente porque se
consume tiempo de procesador
Concurrente
Interrupciones: EL procesador enva una orden al controlador y se
dedica a otra tarea. Cuando el dispositivo tiene datos disponibles,

genera una interrupcin. El procesador lanza una rutina de


interrupcin, encargada de leer el dato y almacenarlo en memoria.
Acceso directo a memoria (Direct Memory Access DMA): El
controlador
del dispositivo almacena el dato directamente en memoria y genera
una interrupcin
CONCEPTOS BASICOS.
Qu es un sistema operativo
Un sistema operativo es un programa que tiene encomendadas una
serie de funciones diferentes, cuyo objetivo es simplificar el manejo
y la utilizacin del computador. Las funciones bsicas de un sistema
operativo se pueden clasificar en:
Gestin de recursos
Ejecucin de servicios para los programas
Ejecucin de los mandatos de los usuarios
Gestin de recursos
En un computador pueden existir varios usuarios que ejecutan
varios programas, estos programas compiten por los recursos del
computador (Memoria, tiempo de CPU, perifricos). El sistema
operativo debe garantizar la proteccin de los programas frente a
otros.
Asignacin y liberacin de recursos: El S.O. debe monitorear para
saber cules recursos estn libres y cules estn asignados a cada
programa. Si se tiene un esquema de prioridades, se deben
resolver los conflictos que se pueden presentar.
Proteccin: El S.O. debe garantizar la confidencialidad de la
informacin, de manera que los programas no interfieran entre s.
Ejecucin de servicios para los programas
El S.O. ofrece a los programas un conjunto de servicios (llamadas
al sistema), que garantiza que los programas se ejecuten en un
ambiente protegido. De esta forma se crea una mquina virtual
extendida, que simplifica la labor de los programas. Dentro de los
servicios ms importantes se pueden mencionar:
Ejecucin de programas: El sistema operativo proporciona
servicios para ejecutar un programa, parar o abortar su ejecucin.
Tambin ofrece servicios que permiten conocer y modificar las
condiciones de ejecucin de los programas, adems de servicios
para la comunicacin y sincronizacin de programas.
rdenes de E/S: Proporciona servicios de lectura, escritura y
modificacin del estado de los perifricos.
Operaciones sobre archivos: El S.O. ofrece servicios para la
creacin, apertura, lectura, escritura, renombrado y borrado de
archivos.
Deteccin y tratamiento de errores: El S.O. es el encargado de
detectar las condiciones de error de hardware. Entre los errores se
puede mencionar errores de E/S, acceso a memoria,
desbordamientos, violacin de segmento de memoria, o
instrucciones prohibidas.
Gestin de usuarios y grupos
Todo sistema operativo multiusuario debe ofrecer los servicios
bsicos de manejo de usuarios y grupos, tales como creacin,
modificacin y eliminacin. Adems se debe brindar los servicios de
autenticacin y autorizacin.
Autenticacin: Proceso en el cual un usuario ingresa un nombre y
una contrasea, creados previamente en el sistema. El S.O. debe
validar que el usuario exista.
Autorizacin: Nivel de permisos de un usuario autenticado para
tener acceso a los servicios que ofrece el sistema operativo, y las
restricciones de seguridad frente a otros usuarios.
Ejecucin de mandatos de usuarios
Otra de las funciones de un S.O es proporcionar los medios para
que los usuarios puedan ejecutar mandatos, representados en
comandos de utilidad. Para ello el S.O. proporciona el Shell, que

puede ser definido como una interfaz para ejecutar comandos. Esta
interfaz puede ser textual, en forma de terminales (Unix), o grfica,
en la cual se utiliza el teclado y el mouse para invocar los
comandos (Windows, MAC).
En su forma ms simple, el shell es un bucle infinito que espera una
orden del usuario, la analiza y en el caso que sea correcta la
ejecuta. Una vez que se ha concluido la ejecucin de la orden, el
shell espera una nueva orden.Los archivos de comandos son una
agrupacin de los comandos que el usuario introduce en el shell,
adems de instrucciones de control de flujo para controlar
su ejecucin. Los archivos de comandos ms comunes son los .bat
(windows) y los .sh (Unix).

Por encima de los servicios bsicos del sistema operativo, se


encuentran las interfaces para los programas de usuario,
representadas por WIN32 y POSIX, para Windows y Unix,
respectivamente. Estas interfaces proporcionan un API al
que se puede tener acceso a travs de un lenguaje de
programacin de alto nivel, como C.
Por ejemplo, la llamanda fopen en POSIX permite abrir un archivo
que se encuentre en un disco duro, un diskette, una memoria USB.
Los servicios del sistema operativo tambin se conocen como
llamadas al sistema, y proporcionan una interfaz estndar para
acceder a cada uno de los servicios sin tener que preocuparse por
la complejidad del hardware.

Arranque del computador


Luego del encendido del computador o de pulsar el botn RESET,
se genera una seal que carga en el PC la direccin de inicio del
programa de arranque (Iniciador) que se encuentra almacenado
en una memoria ROM, que forma parte del mapa de memoria.
Iniciador ROM El iniciador ROM tiene las siguientes funciones:
Comprobacin del sistema, por medio de un test de hardware
Lectura y almacenamiento en memoria del programa cargador del
sistema operativo (Loader).
Este programa se encuentra en un perifrico, usualmente un disco
duro o un diskette o un CDROM.
Ceder el control al cargador del sistema operativo.
Cargador del sistema operativo
Este programa se encarga de traer a memoria algunos de los
componentes del sistema operativo. Luego se pasa a la fase de
iniciacin, en la que se realizan los siguientes pasos:
Comprobacin del sistema: Se completan las pruebas de hardware
realizadas por el iniciador ROM, adems de realizar una prueba del
sistema de archivos
Se establecen las estructuras de informacin propias del S.O.
(Tabla de procesos, tabla de
memora y tablas de E/S)
Se carga en memoria el programa del S.O que estar residente.
Sistema operativo
Se crean uno o varios procesos de inicio (Login) para permitir el
trabajo interactivo por parte de los usuarios, adems de otros
procesos auxiliares (Servicios, demonios, etc).

Sistemas operativos monolticos


Todos los componentes se integran en un solo programa que
contiene todas las rutinas necesarias para su funcionamiento. Una
ventaja de este tipo de sistemas es su rapidez, pero su
mantenimiento es muy complejo.
Sistemas operativos estructurados El S.O. se organiza en capas,
donde cada una de ellas posee una interfaz bien definida en la capa
superior y slo utilizan los servicios que les ofrece la capa
inferior. Esta aproximacin ofrece modularidad y ocultacin de la
informacin.
Sistemas operativos cliente/servidor
Slo una pequea parte del S.O. se ejecuta en modo ncleo
(microncleo), yLa mayor parte de los servicios del sistema
operativo se implementa como servidores, a los cuales se les
pueden realizar solicitudes. Cada servidor puede hacer uso de otros
servidores para ejecutar una funcin.

Componentes y estructura de un sistema operativo


Un sistema operativo consta de tres capas:
Ncleo: Parte del sistema operativo que interacta directamente
con el hardware de la mquina. Sus funciones consisten en
gestionar los recursos de hardware, tratar las interrupciones de
hardware e implementar las funciones bsicas de gestin de
memoria.
Servicios: Estas facilidades se ofrecen para brindar una capa de
abstraccin sobre el ncleo. Los principales servicios que ofrece un
S.O. se pueden clasificar en:
Gestin de procesos: Creacin, planificacin y destruccin de
procesos
Gestin de memoria: Gestionar la memoria libre y ocupada,
realizar la asignacin y liberacin de memoria.
Gestin de entrada/salida: Maneja los dispositivos perifricos
Gestin de archivos y directorios: Manejo de archivos y directorios,
y en general de la administracin del almacenamiento secundario.
Seguridad y proteccin: Permite garantizar la identidad de los
usuarios y definir los permisos sobre los recursos del sistema.
Comunicacin y sincronizacin entre procesos: Brinda las
primitivas bsicas para comunicar y sincronizar procesos.
Intrprete de comandos (Shell): Permite que el usuario interacte
con el sistema operativo, a travs de comandos textuales (shell 1),
o interfaces grficas (shell 2).
Servicios del sistema operativos

Sistemas operativos monolticos


Los sistemas operativos monolticos se caracterizan porque todos
sus componentes se encuentran integrados en un nico programa
que se ejecuta en un nico espacio de direcciones. De esta forma,
todas las funciones que ofrece el sistema operativo se ejecutan en
modo ncleo.Los sistemas operativos monolticos son difciles de
mantener, ya que un cambio se puede propagar de manera
impredecible. Por otro lado la adicin de nuevas funcionalidades y
servicios se ve limitada al conocimiento de la totalidad del
sistema operativo.
Sistemas operativos estructurados
El S.O. se organiza en capas, donde cada una de ellas posee una
interfaz bien definida en la capa superior y slo utilizan los servicios
que les ofrece la capa inferior. Esta aproximacin ofrece
modularidad y ocultacin de la informacin.Un ejemplo de sistemas
operativos estructurados es OS/2.
Modelo cliente / servidor
La mayor parte de los servicios del sistema operativo se
implementa como servidores, a los cuales se les pueden realizar
solicitudes. Cada servidor puede hacer uso de otros servidores para
ejecutar una funcin.
El ncleo del sistema slo contiene las rutinas que interactan
directamente con el Hardware, tales como gestin de
interrupciones, gestin bsica del procesador, gestin de memoria,
y servicios bsicos de comunicacin entre procesos.
Algunos ejemplos de sistemas operativos cliente/servidor son
MINIX, Mach, Amoeba y Windows NT.
Prehistoria:
El hardware utilizaba tubos al vaco, lo cual haca que no fuera
enteramente confiable. Adems los primeros computadores
ocupaban un espacio muy grande. Algunos ejemplos de estos
primeros computadores fueron el ENIAC (Electronic Numerical
Integrator Analyzer and Computer), y el EDVAC (Electronic
Discrete Variable Automatic Computer).

En esta generacin no exista un sistema operativo como tal, el


usuario deba ingresar los programas por medio de tableros de
conmutacin y/o tarjetas perforadas.

Primera generacin:
Aparecen los transistores, lo que cambia radicalmente la
construccin de los computadores. Los trabajos (programas) se
procesaban por lotes (uno detrs de otro), y exista un programa
que se encargaba de cargar y ejecutar los dems programas
(cargador). Algunos ejemplos de sistemas operativos son FMS
(Fortran Monitoring System) e IBYSS de IBM.
Segunda generacin:
Con la aparicin de los circuitos integrados se dio una revolucin en
los computadores y los sistemas operativos. Aparece el concepto
de multiprogramacin como una alternativa al trabajo por lotes. La
multiprogramacin permite aprovechar el tiempo muerto de las
operaciones de Entrada / Salida para ejecutar otros trabajos
(programas). Aparece el concepto de planificador, que es un
programa encargado de repartir el uso del procesador entre los
trabajos que lo requieren. Tambin aparece el concepto de tiempo
compartido, que consiste en permitir que varios usuarios trabajen
en forma simultnea, al repartir el tiempo de CPU entre ellos
.Borroughs introduce en 1962 el MCP (Master Control Program),
que adems de permitir multiprogramacin utilizaba memoria
virtual.Por su parte, en el MIT se desarrollo CTSS, el primer sistema
de tiempo compartido. Este sistema se utiliz en el IBM7090 y
permita hasta 32 usuarios interactivos que se conectaban
mediante teletipos (terminales brutas). Tambin apareci el OS/360,
que operaba sobre los computadores 360 de IBM.
El sistema operativo ms reconocido de esta generacin es
MULTICS (desarrollado por el MIT y Bell Labs), que permita el
soporte a cientos de usuarios.
Tercera generacin:
Se caracteriza por la aparicin de Sistemas Operativos de propsito
general, entre ellos UNIX.
Estos sistemas permitan multiprogramacin y tiempo compartido.
Con UNIX nace el lenguaje C, uno de los ms utilizados hasta hoy
en da.
Cuarta generacin:
Con la difusin de los computadores personales tambin
evolucionan los sistemas operativos, en aspectos como velocidad
de procesamiento, manejo de memoria, soporte para redes y
multimedia. Los primeros sistemas que dominaron en esta
generacin fueron UNIX, MS-DOS y Windows.
PROCESOS.
Gestin de procesos
La gestin de procesos es uno de los componentes principales de
un sistema operativo. Este se encarga de generar y gestionar los
procesos que se ejecutan en una CPU, y atender sus peticiones.
Un proceso se puede considerar como la abstraccin de un
programa en ejecucin. Se debe tener en cuenta que un programa
es parte de un proceso: el programa es el conjunto de instrucciones
de mquina, que generalmente se almacena en un archivo
(ejecutable), y se carga en memoria en el momento de
su ejecucin. Debido a la arquitectura de los computadores actuales
(slo existe un PC, un juego de registros, etc.) en la cual slo se
puede ejecutar un proceso al tiempo,la CPU debe saltar de
proceso en proceso, asignndole a cada uno un tiempo
de ejecucin. Cada vez que se cambia el proceso que se est
ejecutando se debe salvar su estado de ejecucin con el fin que
pueda ser reiniciado ms tarde en el punto de ejecucin en el cual
se interrumpi.
Servicios de procesos

Los servicios que ofrece un sistema operativo para la gestin de


procesos se pueden clasificar en:
Creacin: La creacin de procesos se puede llevar a cabo de
varias maneras:
Inicializacin del sistema: En el momento de iniciar el S.O, el
proceso residente puede
ejecutar otros procesos. Con frecuencia estos procesos son
utilidades y servicios del sistema, utilidades de usuario, deteccin e
inicializacin de dispositivos de Hardware, software antivirus, etc.
Llamadas al sistema: La interfaz de programacin (API) del S.O.
ofrece algunas funciones para la creacin de procesos (fork en
POSIX y CreateProcess en Win32).
Solicitud del usuario: Por medio de una interfaz de usuario textual
o grfica, el usuario puede invocar nuevos procesos.
Inicializacin de un trabajo por lotes: Algunos sistemas operativos
ofrecen algn mecanismo para programar tareas, stas se inician
de manera automtica en una determinada fecha y hora, o cuando
se cumplan ciertas condiciones (Lmite de espacio en disco,
bloqueo de programas, etc).
Gestin: La gestin de procesos incluye su planificacin y
administracin.
Finalizacin: La finalizacin de un proceso se puede dar de dos
formas:
Voluntaria: El proceso termina su ejecucin de manera normal,
mediante una llamada exit, o cuando ocurre un error en la ejecucin
del programa que impide que pueda continuar normalmente.
Involuntaria: Debido a errores en la lgica de programacin se
pueden ejecutar operaciones no vlidas que producen la
terminacin de un proceso. De otro lado el sistema operativo puede
implementar estrategias para permitir la finalizacin de un proceso.
Un proceso es un programa en ejecucin gestionada por el sistema
operativo. Posee los siguientes componentes:
Imagen de memoria: Contenido de los segmentos de memoria en
los que residen los datos y el cdigo del proceso (programa).
Estado del procesador: Contenido de los registros del modelo d
programacin del computador.
Estado del proceso: Es un registro que contiene la informacin
necesaria para identificar cada proceso.De acuerdo al nmero de
procesos y de usuarios que pueden utilizar un sistema
al mismo tiempo, los sistemas operativos se clasifican en:
Monotarea: Slo se puede ejecutar un proceso en cada momento
Multitarea (multiproceso): Permite que coexistan varios procesos
activos a la vez. Esto no quiere decir que los procesos se ejecuten
al mismo tiempo. El S.O. administra el tiempo del procesador,
asignndole tiempo de procesador a cada proceso (tiempo
compartido).
Monousuario: Previsto para soportar un solo usuario. Un sistema
monousuario puede ser monotarea o multitarea.
Multiusuario: Permite varios usuarios trabajando simultneamente
desde varios terminales. Todo sistema operativo multiusuario es
multitarea: debe implementar estrategias de tiempo compartido.
Debido a que slo existe un EIP (Instruction Pointer) fsico, el S.O.
debe implementar estrategias para administrar el tiempo de la CPU.
Cuando un proceso entra en ejecucin, existe un EIP lgico.
Cuando se termina el tiempo de CPU para el proceso, el EIP fsico
se almacena en el estado del proceso. De esta manera cuando el
proceso adquiera nuevamente tiempo de CPU, su ejecucin
continuar en el punto en el cual fue interrumpido.
La grfica ilustra la administracin de tiempo de la CPU: el S.O.
asigna determinado tiempo a cada proceso (1 unidad, en este
caso), luego que termina este tiempo el proceso debe abandonar la
CPU y ceder el turno a otro proceso.
A medida que avanza el uso de los servicios del S.O. por parte del
usuario, se van creando y terminando procesos. Estos se
encuentran organizados en una jerarqua que comienza con el
primer proceso que se ejecut, y a partir del cual
se crearon los dems procesos.

En sistemas POSIX, el primer proceso en ser ejecutado es el


proceso denominado Init, que recibe un Identificador de Proceso
(PID) de 1. Este proceso se encarga de ejecutar los servicios de
arranque del sistema operativo, y los procesos para inicio de
sesin.
De forma general, el PID de un nuevo proceso que se crea en
POSIX corresponde al PID de su proceso padre + 1.
Estado del proceso
El S.O. mantiene por cada proceso una serie de estructuras de
informacin que le permite identificar las caractersticas de este, as
como los recursos que tiene asignados. Una de las estructuras del
S.O. es la tabla de procesos. Dentro de esta tabla se encuentra un
registro para cada proceso en memoria, llamada Bloque de Control
de Proceso.
Bloque de Control de Proceso (BCP)
Depende de cada S.O, pero a nivel general contiene la informacin
bsica del proceso. Se actualiza cuando el proceso est en
memoria pero no en ejecucin. Cuando el proceso se est
ejecutando, el estado del procesador vara de acuerdo al flujo de
instrucciones de mquina ejecutado. Luego, cuando se
interrumpe el proceso la informacin del BCP se actualiza en
memoria para reflejar los cambios en el estado del proceso.
Informacin del BCP
La informacin del BCP se puede clasificar en:
Informacin de identificacin: Se utiliza para diferenciar el proceso
de los dems procesos en memoria. Para ello debe contener la
siguiente informacin:
Identificador del proceso (Process ID - PID): Nmero nico que
identifica al proceso. Se asigna dinmicamente en el momento de
crear el proceso y depende de la cantidad de procesos que se
encuentren en memoria en el momento de la creacin. Vara cada
vez que se ejecuta nuevamente el proceso.
Identificador del proceso padre (Parent Process ID PPID): PID
del proceso desde el cual se gener el nuevo proceso.
Identificador de usuario (User ID UID). En los sistemas
operativos multiusuario, representa el identificador nico de cada
usuario dentro del sistema.
Estado del procesador: Almacena los valores del estado del
procesador en el momento en el cual se interrumpi el proceso.
Esto permite que el proceso pueda ser reiniciado desde el punto
en el cual fue interrumpido.
Informacin de control del proceso: Contiene la informacin que
requiere el S.O. para conocer los mecanismos para la gestin de
proceso:
Informacin de planificacin
Descripcin de los segmentos de memoria que utiliza el proceso
Recursos asociados con el proceso
Estructura del proceso
Comunicacin
Creacin de procesos
Todo proceso se crea a partir de una llamada al sistema. Esta
llamada se puede realizar desde diferentes puntos:
Proceso de usuario: Dentro de un proceso de usuario se puede
realizar la llamada al sistema para crear un nuevo proceso. Los
niveles de seguridad del S.O. determinarn si es posible crear un
nuevo proceso.
Proceso del sistema: De igual forma un proceso del sistema puede
realizar la llamada para crear nuevos procesos, este es el caso del
proceso Init: Una vez que se est ejecutando realiza llamadas al
sistema para crear nuevos procesos que se encargan de diferentes
labores, como controlar los dispositivos, y administrar los recursos
del computador (CPU, memoria, sistema de archivos), y
lanzar intrpretes de comandos textuales o grficos.
Tareas programadas: La mayora de sistemas operativos ejecutan
un programa especial (programador de tareas) que ejecuta tareas
en un determinado momento (cada 2 horas, diariamente,

mensualmente) o cuando se cumple cierta condicin en el sistema


operativo (poco espacio, falta de memoria).
La creacin de procesos depende del sistema operativo, cada una
recibe determinados parmetros. Existe la llamada fork para POSIX
y CreateProcess para WIN32.
Llamada al sistema fork
La llamada fork de POSIX crea una copia exacta del proceso que la
solicita. En la grfica, el proceso A dentro de sus instrucciones hace
uso de la llamada fork().
En ese instante el S.O. crea una copia de la imagen de memoria del
proceso y de su estado (A), y la copia en otro segmento de
memoria. Esta nueva copia es idntica al proceso original, es decir
que se tienen dos procesos que ejecutan el mismo programa en el
mismo punto. La diferencia entre el proceso A y A se da en algunos
campos del BCP, entre los que sobresalen:
PID: El identificador de proceso es diferente en el proceso original
(padre) y en el nuevo proceso. Generalmente el identificador del
proceso hijo es el PID del padre ms uno.
PPID: El identificador del padre del proceso original no cambia,
pero el identificador del padre del proceso hijo es el identificador del
proceso original.
PC: Cada proceso adquiere un PC lgico diferente, por estar en
dos segmentos de memoria diferentes. Sin embargo el PC de cada
uno apunta a la misma instruccin del programa.
Los dos procesos comparten los descriptores de archivo que
existen en el momento de realizar la llamada.
La llamada fork se acompaa de la llamada exec, que permite
cambiar la imagen de memoria del proceso por un nuevo
ejecutable.
Planificacin de Procesos
La planificacin se refiere al mecanismo usado por el sistema
operativo para asignar la CPU a cada uno de los procesos
existentes en el sistema.
Los computadores actuales pueden ejecutar un gran nmero de
procesos, pero slo cuentan con un conjunto limitado de
procesadores (1, 2, 4, 8).
Por esta razn el Sistema Operativo debe controlar en todo
momento el uso de la CPU (los procesadores disponibles), tratando
que todos los procesos puedan ser ejecutados.
Existen diferentes algoritmos de planificacin, que se estudiarn
ms adelante.
Por ejemplo, se puede usar una estrategia FIFO, en la cual el
proceso que primero solicite ejecucin recibe la CPU (el
procesador) desde su inicio hasta que termina. Otra estrategia
comn es asignar la CPU durante un determinado periodo de
tiempo, y luego asignarla a otro proceso para crear una Ronda
(Round-Robin). Eventualmente todos los procesos recibirn el
tiempo de CPU necesario para que completen su ejecucin.
Estado de un proceso
De acuerdo a la ejecucin de un proceso y de la estrategia del
sistema operativo para planificarlo, se puede encontrar en varios
estados:
Ejecucin: El proceso tiene asignado tiempo de CPU para su
ejecucin. En este estado el proceso puede hacer uso de los
recursos del computador. En un sistema operativo multiproceso slo
puede existir un proceso en ejecucin por cada CPU (ncleo) del
procesador.
Bloqueado: Cuando un proceso realiza una llamada al sistema, se
bloquea. El caso tpico es cuando se solicita un recurso de
entrada/salida, el proceso debe esperar hasta que el dispositivo de
E/S informe que est listo. En la grfica, el proceso puede pasar de
el estado en ejecucin al estado bloqueado cuando solicita un
recurso de E/S (1). En un S.O. multiproceso,cuando un proceso se
bloquea se le asigna tiempo de CPU a otro proceso.
Listo: El proceso se encuentra listo para recibir tiempo de CPU,
pero en el momento la CPU no se encuentra disponible. Este

estado se puede dar por dos casos: El proceso se encuentra en


ejecucin pero el S.O. decide que debe otorgarle tiempo de CPU a
otro proceso (2), o el proceso estaba esperando para que finalizara
una llamada al sistema (4).
Otro diagrama de estados de un proceso incluye un nuevo estado
(suspendido).

Este estado aparece cuando el sistema maneja memoria virtual, y


debido a las necesidades de memoria del S.O, el segmento de
memoria en el que se encuentra el proceso es llevado a memoria
de intercambio (Swapping). Los procesos entonces pasan a un
estado de Suspendido. Luego que se recuperan los segmentos de
memoria que el S.O. ha llevado a memoria de intercambio, el
proceso puede pasar nuevamente al estado de listo.

Das könnte Ihnen auch gefallen