SISTEMAS
OPERATIVOS 1
Mtro.
Pedro Tamayo Gómez.
ENCUADRE:
T.C 20
Tareas 20
Insumos 20
Actitud. 10
Examen 30
Total 100
EXAMEN
DIAGNÓSTICO.
1.
¿Qué es un Sistema
Operativo?
2.
¿Escribe el proceso de
encendido de una PC?
3.
¿A qué se le llama
tarea o proceso?
4.
¿Qué es
multiprocesamiento?
5.
¿Con qué unidades se mide la capacidad de
almacenamiento de un disco duro?
6.
¿Qué es el
multiprocesamiento?
7.
¿Con qué unidades se
mide la capacidad de procesamiento de una PC?
8.
¿Qué es un cuello de
botella?
9.
¿Qué es un Driver?
10.
Escriba como
administrar recursos de HW o SW en una PC:
RESPUESTAS
1.
Conjunto de órdenes y
programas que controlan los procesos básicos de una PC y permiten el
funcionamiento de otros programas y administra el HW y SW
2.
BIOS, SETUP y ROM
después S.O y por último las App.
3.
Es el mínimo conjunto
de datos utilizando por utilizado por una tarea que debe ser guardado para
permitir su interrupción en un momento dado, y una posterior continuación desde
el punto que fue interrumpida.
4.
Permitir que varios
procesos o Apps se ejecuten aparentemente al mismo tiempo compartiendo uno o
más procesadores.
5.
Se refiere al núm. de
procesadores del sistema.
6.
KB, MB, GB, TB, PB, EB…
7.
Hertz, kilohertz, megahertz, gigahertz, terahertz…
8.
Una fase donde cuando
se realizan muchas solicitudes pero no pueden ser atendidas al mismo tiempo
quedando en una fila de espera hasta llegar a un punto que quien está
atendiendo las solicitudes no puede más, saturándose y terminando el proceso.
9.
Controlador, rutina o
programa que enlaza un dispositivo periférico al sistema operativo.
10.
Ejemplo:
desfragmentador de disco, partición, puntos de restauración, etc.
SISTEMA OPERATIVO. 16/Agosto/16
¿QUÉ ES UN
SISTEMA OPERATIVO?
Conjunto de órdenes y programas que controlan los procesos
básicos de una computadora y permiten el funcionamiento de otros programas.
COMPONENTES DE
UN SISTEMA OPERATIVO.
NÚCLEO: representa las funciones básicas del S.O, como por
ejemplo la gestión de la memoria de los procesos, de los archivos de las entradas/salidas
principales y de las funciones de comunicación.
INTÉRPRETE DE COMANDOS: que posibilita la comunicación
entre el S.O a través de un lenguaje de
control.
SISTEMA DE ARCHIVOS: permite que los archivos se registren
en una estructura arbórea.
TIPOS DE S.O.
Los sistemas
operativos pueden ser clasificados de la siguiente manera:
A) Según
la administración de tareas:
– Monotarea: este tipo de sistemas operativos son
capaces de manejar un programa o realizar una sola tarea a la vez. Son los más
antiguos. Por ejemplo, si el usuario está escaneando, la computadora no
responderá a nuevas indicaciones ni comenzará un proceso nuevo.
– Multitarea: esta
característica es propia de los S.O. más avanzados y permiten ejecutar varios
procesos a la vez, desde uno o varios ordenadores, es decir que los pueden
utilizar varios usuarios al mismo tiempo. Esto se puede realizar por medio de
sesiones remotas una red o
bien, a través de terminales conectadas a una computadora.
B)
Según
la administración de usuarios:
– Monousuario: Sólo pueden responder a un usuario por
vez. De esta manera, cualquier usuario tiene acceso a los datos del sistema.
Existe un único usuario que puede realizar cualquier tipo de operación.
– Multiusuario: esta característica es propia de
aquellos S.O. en los que varios usuarios pueden acceder a sus servicios y procesamientos
al mismo tiempo. De esta manera, satisfacen las necesidades de varios usuarios
que estén utilizando los mismos recursos, ya sea memoria, programas, procesador, impresoras, scanner, entre
otros.

1.1 DEFINICIÓN Y CONCEPTO. 18/Agosto/16
AUTOR
|
CONCPETO
|
Andrew
S. Tanenbaum.
|
Un sistema distribuido es una colección
de PC independientes que aparecen ante los usuarios del sistema como una
única PC.
|
Silberschatz
Galvin Gagne.
|
Un S.O es un programa que administra el
HW de una PC.
|
Magister
David Luis La Red Mtz.
|
Un S.O es un grupo de programas de
proceso con las rutinas de control necesarias para mantener continuamente
operativos dichos programas.
|
Andrew
S. Tanenbaum.
‘Sistemas
Operativos modernos, 3era. Edición’.
|
Los S.O difieren de los programas de
usuario en varias cuestiones además del lugar en el que residen.
|
William
Stallings.
|
Explota los recursos de HW de uno o dos
procesadores para ofrecer un conjunto de servicios a los usuarios del
sistema.
|
1.2 FUNCIONES Y CARACTERÍSTICAS DE LOS SISTEMAS
OPERATIVOS (TAREA). 19/Agosto/16
Entre las principales
funciones de un sistema operativo encontramos:
1- La función de Interfaz de usuario: le da al usuario la capacidad de comunicarse con el computador, bien sea a través de comandos o imagenes. Probablemente una de la más relevante de las funciones de los sistemas operativos.
2- Gestión de Archivos: esta función del sistema operativo permite al usuario modificar y ediar los archivos a través de los programas.
3- Gestión de Recursos: dirige el hardware, la red y periféricos. Incluyendo la memoria.
4- Administrar Tareas: esta función de un sistema operativo la realiza a través de la asignación de recursos a cada programa, identificando
5- Soporte: los servicios de soporte van a depender de los programas que estemos usando, en general comprenden servicios de actualización, seguridad, identificación de controladores para nuevos hardware.
1- La función de Interfaz de usuario: le da al usuario la capacidad de comunicarse con el computador, bien sea a través de comandos o imagenes. Probablemente una de la más relevante de las funciones de los sistemas operativos.
2- Gestión de Archivos: esta función del sistema operativo permite al usuario modificar y ediar los archivos a través de los programas.
3- Gestión de Recursos: dirige el hardware, la red y periféricos. Incluyendo la memoria.
4- Administrar Tareas: esta función de un sistema operativo la realiza a través de la asignación de recursos a cada programa, identificando
5- Soporte: los servicios de soporte van a depender de los programas que estemos usando, en general comprenden servicios de actualización, seguridad, identificación de controladores para nuevos hardware.
El sistema operativo (SO)
tiene las siguientes características:
- Conveniencia: Un SO hace más conveniente el uso de
una computadora.
- Eficiencia: El SO permite que los recursos de
la computadora se usen de manera correcta y eficiente.
- Habilidad para evolucionar: un SO debe de ser capaz de aceptar
nuevas funciones sin que tenga problemas.
- Encargado de administrar el hardware: el SO debe de ser eficaz,
recibiendo las señales provenientes de los periféricos y Hardware en
general.
- Relacionar dispositivos: cuando el SO detecta otro sistema
operativo conectado en sí mismo.
- Algoritmos: un SO hace el uso de la computadora
más racional y eficiente.
TRABAJO EN CLASE, EXPOSICIONES. 23/Agosto/16
TUBOS DE VACÍO (Primera generación).
Las computadoras de tubos de vacío son computadoras digitales
programables que utilizan tubo de vacío en sus
circuitos lógicos. Fueron precedidas por los sistemas electromecánicos basados
en relés y
reemplazadas por las computadoras fabricadas con transistores discretos.
Las últimas máquinas de la lista pueden estar construidas con tubos de vacío y
transistores.
LA
SEGUNDA GENERACIÓN.
El invento del transistor hizo posible una
nueva generación de computadoras, más rápidas, más pequeñas y con menores
necesidades de ventilación. Sin embargo el costo seguía siendo una porción
significativa del presupuesto de una Compañía. Las computadoras de la segunda
generación también utilizaban redes de núcleos magnéticos en lugar de tambores
giratorios para el almacenamiento primario. Estos núcleos contenían pequeños
anillos de material magnético, enlazados entre sí, en los cuales podían
almacenarse datos e instrucciones.
25/Agosto/16
CIRCUITOS
INTEGRADOS Y MULTIPROGRAMACIÓN (Tercera generación).
Las computadoras de la tercera generación
emergieron con el desarrollo de los circuitos integrados (pastillas de silicio)
en las cuales se colocan miles de componentes electrónicos, en una integración
en miniatura. Las computadoras nuevamente se hicieron más pequeñas, más
rápidas, desprendían menos calor y eran energéticamente más eficientes.
LA
CUARTA GENERACIÓN.
Dos mejoras en la tecnología de las
computadoras marcan el inicio de la cuarta generación: el reemplazo de las
memorias con núcleos magnéticos, por las de chips de silicio y la colocación de
muchos más componentes en un Chip: producto de la microminiaturización de los circuitos
electrónicos. El tamaño reducido del microprocesador y de chips hizo posible la
creación de las computadoras personales (PC).
En 1971, intel Corporation, que era una
pequeña compañía fabricante de semiconductores ubicada en Silicon Valley,
presenta el primer microprocesador o Chip de 4 bits, que en un espacio de
aproximadamente 4 x 5 mm contenía 2250 transistores. Este primer
microprocesador que se muestra en la figura 1.14, fue bautizado como el 4004.
LA
ACTUALIDAD EN LOS SISTEMAS OPERATIVOS.
Se trata de la familia de Sistemas
Operativos más popular e importante de la historia de la informática. Su origen
se remonta a MS-DOS, cuando se le dota de una interfaz gráfica parecida a la
usada en Mac OS y se le llama Windows 3.x. Las posteriores versiones fueron
Windows 95, Windows 98 (la que consagró el uso de sistemas PC), Windows NT
(usado para servidores), Windows Me (SO inestable que pasó sin pena ni gloria
), Windows XP (Se sigue usando en la actualidad gracias a su estabilidad y
versatilidad gracias a su Kernel heredado de Windows NT, aunque Microsoft ya no
ofrece soporte técnico), Windows Vista (al igual que Windows Me plagado de
pequeños defectos ), Windows 7 (el SO más estable y versátil de Microsoft) y
Windows 8 (con un cambio radical en una parte de su interfaz gráfica, por el
momento no consigue posicionarse en el mercado de manera natural y los usuarios
domésticos que lo tienen es más por imposición por la compra de equipos nuevos
que por deseo). Además de estas versiones para PC, existen versiones de Windows
Server para ámbito profesional. En cuanto a dispositivos móviles, Microsoft
ofrece Windows Phone que ya se encuentra en su versión 10, y que no ha
terminado de encajar en el mercado, ya que es de lejos menos utilizado que
Android e IOS. Cómo última novedad está Windows 10, que se convierte en el primer sistema operativo
multidispositivo de la historia según Microsoft y que supone un avance
significativo en la informática versátil y de las cosas.
TENDENCIAS
EN LOS SISTEMAS OPERATIVOS.
Son las nuevas aplicaciones que darán una
innovación para los informáticos y para que puedan adaptar a todos los que
visitan sitios web para la realización de tareas y entretenimiento.
1.4 CLASIFICACIÓN. 29/Agosto/16
SISTEMAS
OPERATIVOS DE MAINFRAME.
Un Mainframe o
Macrocomputador es un sistema de computación utilizado en negocios para
almacenar bases de datos comerciales, servidores de transacciones y
aplicaciones, que requieren alta seguridad y disponibilidad que
normalmente no se encuentra en máquinas de menor escala. El poder de un
mainframe provee velocidad y capacidad de computación, permitiéndole
desarrollar grandes volúmenes de procesamiento. Un mainframe puede procesar
grandes cantidades de tareas de diferentes tipos y en distintas zonas horarias.
Se debe tener en cuenta que la mayoría de las compañías de Fortune 1000 usan
mainframes, y que el 60% de la información disponible en Internet está
almacenada en computadoras mainframe.
SISTEMAS
OPERATIVOS DE SERVIDORES.
Los sistemas
operativos orientados a servidores cuentan con ciertas cualidades que los hacen
más adecuados para el entorno de un servidor, como
·
Cualidades avanzadas y flexible
para el trabajo con la red
·
Fuerte seguridad en el sistema con
protección avanzada a usuarios, datos, recursos y memoria
En muchos casos,
los sistemas operativos orientados a servidores pueden interactuar con sensores
de hardware para detectar estados como sobrecalentamiento, fallos de discos o del
procesador, y en consecuencia alertar a su operador o tomar medidas de
rectificación por sí mismo.
Como los
servidores deben proveer un conjunto limitado de servicios a múltiples usuarios
mientras que una computadora personal debe soportar una amplia variedad de
funcionalidades requeridas por su usuario, los requerimientos de un sistema
operativo para un servidor son diferentes de aquellos en una computadora de
escritorio. Aunque es posible que un sistema operativo haga que una computadora
provea servicios y responda rápidamente a los requerimientos de un usuario, es
común el uso de diferentes sistemas operativos en servidores y computadoras de
personal. Algunos sistemas operativos vienen en sus versiones personales
(desktop) y servidores (server) con interfaces de usuario similares.
Los sistemas
operativos para servidores de Windows y Mac OS X son
usados en una minoría de los servidores, ya que también existen otros sistemas
operativos de pagos para mainframes como z/OS.
Los sistemas operativos predominantes en servidores son aquellos que
siguen distribuciones de
software open source de UNIX ,
como los basados en Linux y FreeBSD.7 El
ascenso de los servidores basados en microprocesadores se
facilitó a partir del desarrollo de UNIX para ejecutarse sobre la arquitectura de microprocesador x86. La
familia de sistemas operativos de Microsoft Windows también
puede ejecutarse sobre el hardware x86 y desde Windows NT,
está disponible para versiones adecuadas para uso en servidores.
SISTEMAS
OPERATIVOS DE MULTIPROCESADORES.
Los sistemas de
multiprocesamiento tienen procesadores múltiples corriendo al mismo tiempo. Los
sistemas de multiprocesamiento tradicionales tienen de 2 a 128 procesadores.
Más allá de ese número (y este límite superior sigue aumentando) de sistemas de
multiprocesamiento se convierten en procesadores paralelos. Los sistemas de
multiprocesamiento permiten que diferentes hilos funcionen en diferentes
procesadores. Esta capacidad acelera considerablemente el funcionamiento de
programa. Ahora dos hilos pueden funcionar más o menos independientemente uno
de otro sin requerir que el hilo intercambia para conseguir los recursos del
procesador. Los sistemas operativos de multiprocesador son en sí mismos con
hilos múltiples y generan también hilos que pueden funcionar en los procesadores
separados para mejor provecho.
Un sistema operativo multiproceso se refiere al número de procesadores del sistema, que es más de uno y éste es capaz de usarlos todos para distribuir su carga de trabajo. Generalmente estos sistemas trabajan de dos formas: simétrica o asimétricamente.
Cuando se trabaja de manera asimétrica, el sistema operativo selecciona a uno de los procesadores el cual jugará el papel de procesador maestro y servirá como pivote para distribuir la carga a los demás procesadores, que reciben el nombre de esclavos.
Cuando se trabaja de manera simétrica, los procesos o partes de ellos (threads) son enviados indistintamente a cualesquiera de los procesadores disponibles, teniendo, teóricamente, una mejor distribución y equilibrio en la carga de trabajo bajo este esquema. Se dice que un thread es la parte activa en memoria y corriendo de un proceso, lo cual puede consistir de un área de memoria, un conjunto de registros con valores específicos, la pila y otros valores de contexto. Un aspecto importante a considerar en estos sistemas es la forma de crear aplicaciones para aprovechar los varios procesadores.
SISTEMAS
OPERATIVOS DE COMPUTADORAS PERSONALES.
Todos los S.O
modernos soportan la multiprogramación, con frecuencia se inician docenas de
programas al momento de arrancar el sistema.
SISTEMAS
OPERATIVOS DE COMPUTADORAS DE BOLSILLO.
Es una PC que
cabe en los bolsillos y realiza una pequeña variedad de funciones, como libreta
de direcciones, electrónica y block de notas, hay muchos teléfonos celulares
muy similares a las PDA’S con la excepción de su teclado o pantalla.
SISTEMAS
OPERATIVOS INTEGRADOS.
También se
conocen como incrustados o embebidos, operan en las computadoras que controlan
dispositivos que no se consideran generalmente como computadoras, ya que no
aceptan SW instalado por el usuario.
SISTEMAS
OPERATIVOS EN TIEMPO REAL.
Estos sistemas se caracterizan por tener
el tiempo como un parámetro clave.
A menudo hay tiempo de entregas estrictas
que se deben cumplir.
CLASIFICACIÓN
DE LOS SISTEMAS OPERATIVOS.
Los sistemas
operativos pueden ser clasificados de la siguiente manera:
A) Según
la administración de tareas:
– Monotarea: este tipo de sistemas operativos son
capaces de manejar un programa o realizar una sola tarea a la vez. Son los más
antiguos. Por ejemplo, si el usuario está escaneando, la computadora no
responderá a nuevas indicaciones ni comenzará un proceso nuevo.
– Multitarea: esta
característica es propia de los S.O. más avanzados y permiten ejecutar varios
procesos a la vez, desde uno o varios ordenadores, es decir que los pueden
utilizar varios usuarios al mismo tiempo. Esto se puede realizar por medio de
sesiones remotas una red o
bien, a través de terminales conectadas a una computadora.
B)
Según
la administración de usuarios:
– Monousuario: Sólo pueden responder a un usuario por
vez. De esta manera, cualquier usuario tiene acceso a los datos del sistema.
Existe un único usuario que puede realizar cualquier tipo de operación.
– Multiusuario: esta característica es propia de
aquellos S.O. en los que varios usuarios pueden acceder a sus servicios y procesamientos
al mismo tiempo. De esta manera, satisfacen las necesidades de varios usuarios
que estén utilizando los mismos recursos, ya sea memoria, programas, procesador, impresoras, scanner, entre
otros.
1.5 ESTRUCTURA: NIVELES O EXTRACTO DE DISEÑO. 29/Agosto/16
NIVEL 1
Gestión de
memoria.
Proporciona la
facilidad de bajo nivel para la gestión de memoria.
NIVEL 2
Procesador.
Activa los
quantums de tiempo para cada uno de los procesos.
NIVEL 3
Entrada y
salida.
Proporciona las
facilidades para poder utilizar dispositivos de entrada y salida.
NIVEL 4
Información o
aplicación e intérprete de lenguajes.
Facilita la
comunicación con los lenguajes y el Sistema Operativo para aceptar las órdenes.
NIVEL 5
Control de
archivos.
Proporciona la
facilidad para el almacenamiento a largo plazo y manipulación de archivos con
nombre, va asignado espacio y acceso de datos de memoria.
1.6 NÚCLEO. 30/Agosto/16
El Núcleo (o kernel) es una colección de
módulos de software que se ejecutan en forma privilegiada –lo que significa que
tienen acceso pleno a los recursos del sistema. El núcleo normalmente
representa sólo una pequeña parte de lo que por lo general se piensa que es
todo el sistema operativo, pero es tal vez el código que más se utiliza. Por
esta razón, el núcleo reside por lo regular en la memoria principal, mientras
que otras partes del sistema operativo son cargadas en la memoria principal
sólo cuando se necesitan.
Práctica
Investigar
3 procesos.
APN UPDATER
El trabajo de
Updater es mantener su barra de htas. al día para ofrecer nuevas
características y para aumentar la compatibilidad.
COM SURROGATE
Es un proceso
que se ejecuta a través del dllhost.exe y forma parte del S.O.
Si éste está
infectado por un virus o está dañado, el proceso COM SURROGATE se dispara y
comienza a consumir RAM.
OPERA INTERNET
BROWSER
Es un navegador
web creado por la empresa noruega Opera SW. Usa el motor estandarizado Blink,
tiene versiones para PC de escritorio, teléfonos móviles y tabletas.
UNIDAD 2. “Administración de procesos y del
procesador”.
01/Septiembre/16
La gestión de
procesos es la tarea fundamental de cualquier sistema operativo moderno. El sistema
operativo debe asignar recursos a los procesos, permitir el intercambio de
información entre los mismos, proteger los recursos de un proceso del resto y
facilitar la sincronización de procesos. Para alcanzar estos objetivos, el
sistema operativo mantiene una estructura de datos para cada proceso que
describe su estado y los recursos que posee y que permite al sistema operativo
imponer un control sobre los procesos (PCB Bloque de Control de Proceso). En un
monoprocesador multiprogramado, debe intercalarse en el tiempo, la ejecución de
múltiples procesos. En un multiprocesador, no sólo puede intercalarse la
ejecución sino que los procesos se pueden ejecutar simultáneamente. Ambos,
intercalación y ejecución simultánea, son formas de concurrencia y llevan a una
multitud de problemas complejos, tanto para el programador de aplicaciones como
para el sistema operativo. El sistema operativo debe llevar a cabo la función
de planificar y ofrecer mecanismos para compartir y sincronizar procesos.
GLOSARIO
CONCEPTO
|
DEFINICIÓN
|
Controlador de
programa
|
Constituye la
parte del S.O dedicada a coordinar el funcionamiento de todos los recursos y
elementos de la computadora.
|
Registro
|
Es una memoria
de alta y poca capacidad, integrada en el microprocesador, que permite guardar
transitoriamente y acceder a valores muy usados.
|
Variable
|
Que está
sujeto a cambios frecuentes o probables.
|
Procesador
|
Componente
electrónico donde se realizan los procesos lógicos.
|
Concurrencia
|
Concurrencia
de proceso, dos o más procesos de ejecutan al mismo tiempo.
|
Secuencialidad
|
Son un tipo de
archivos en los que la información puede leerse y escribirse empezando desde
el principio del archivo.
|
Proceso
|
Instrucciones
de un programa destinadas a ser ejecutadas por el microprocesador.
|
Hilo
|
Es una entidad
más reducida capaz de convivir junto a otros hilos bajo el contexto de un
único proceso permitiendo compartir la información de estado.
|
Proceso ligero
|
Son una unidad
básica de la utilización del CPU consistente en un juego de registros y un
espacio de pila.
|
Exclusión
|
Se usa para
evitar el ingreso a sus secciones críticas por más de un proceso a la vez.
|
Memoria
|
Área donde se
almacenan y pueden ejecutarse los programas.
|
Ejecución
|
Realización de
una acción, un encargo o una orden.
|
Shell
|
El Shell es un
programa que se encuentra en el directorio /bin.
|
Dato
|
Expresión
general que describen las características de las entidades.
|
Instrucción
|
Acción
elemental que se da a una computadora a fin que efectúe una determinada
operación.
|
Memoria
principal
|
Donde se
almacenan temporalmente tanto datos como los programas que la CPU está
ejecutando.
|
Memoria
secundaria
|
Almacenamiento
masivo permanente no volátil con mayor
capacidad para almacenar datos e información.
|
Memoria caché
|
Almacena los
datos usados.
|
Independiente
|
Que no guarda
relación de dependencia con otra cosa.
|
Cooperante
|
Participante
en la ejecución.
|
2.1 CONCEPTO DE PROCESO
05/Septiembre/16
SISTEMAS
OPERATIVOS MODERNOS
Andrew
Tanenbaum.
Es una esencia,
un programa en ejecución. Cada proceso tiene asociado un espacio, decisiones,
una lista de ubicaciones de memoria que va desde algún mínimo hasta algún
máximo.
SISTEMAS
OPERATIVOS DISRTIBUÍDOS
Silberschatz
Galvín Gagne.
Una unidad de
actividad que se caracteriza por la ejecución de una secuencia de
instrucciones, un estado actual y un conjunto de recursos del sistema asociado.
SISTEMAS
OPERATIVOS MAGISTER
David Luis La
Red Mtz.
Una abstracción
de un programa en ejecución también
llamada tarea.
2.2 ESTADO Y TRANSICIONES DE LOS PROCESOS
06/Septiembre/16
·
Ejecución
·
Espera
·
Bloqueado
·
Suspendido
·
Terminado
El
concepto más importante en cualquier sistema operativo es el de proceso,
una abstracción de un programa en ejecución.
Consideremos
primero un servidor Web, a donde convergen las peticiones de páginas Web
provenientes de todos lados.
Cuando llega una
petición, el servidor verifica si la página que se necesita está en la caché. De
ser así, devuelve la página; en caso contrario, inicia una petición al disco
para obtenerla y, desde la perspectiva de la CPU, estas peticiones tardan
eternidades. Mientras se espera el cumplimiento de una petición, muchas más
pueden llegar. Si hay varios discos presentes, algunas o todas las demás
peticiones podrían dirigirse a otros discos mucho antes de que se cumpla la
primera petición. Es evidente que se necesita cierta forma de modelar y
controlar esta concurrencia. Los procesos (y en especial los hilos) pueden ayudar
en este caso.
Ahora
consideremos una PC de usuario. Cuando se arranca el sistema se inician muchos
procesos en forma secreta, lo que a menudo el usuario desconoce. Por ejemplo,
se podría iniciar un proceso para esperar el correo electrónico entrante; otro
que permite al antivirus comprobar periódicamente la disponibilidad de nuevas
definiciones de virus; algunos procesos de usuario explícitos para, por
ejemplo, imprimir archivos y quemar un CD-ROM, y todo esto mientras el usuario
navega por la Web. Toda esta actividad se tiene que administrar, y en este caso
un sistema de multiprogramación con soporte para múltiples procesos es muy
útil.
2.1.2
CREACIÓN DE UN PROCESO
Los sistemas
operativos necesitan cierta manera de crear procesos. En sistemas muy simples o
sistemas diseñados para ejecutar sólo una aplicación (por ejemplo, el controlador
en un horno de microondas), es posible tener presentes todos los procesos que
se vayan a requerir cuando el sistema inicie. No obstante, en los sistemas de
propósito general se necesita cierta forma de crear y terminar procesos según
sea necesario durante la operación. Ahora analizaremos varias de estas
cuestiones.
Hay cuatro
eventos principales que provocan la creación de procesos:
1. El arranque
del sistema.
2. La ejecución,
desde un proceso, de una llamada al sistema para creación de procesos.
3. Una petición
de usuario para crear un proceso.
4. El inicio de
un trabajo por lotes.
2.1.3
TERMINACIÓN DE PROCESOS
Una vez que se
crea un proceso, empieza a ejecutarse y realiza el trabajo al que está
destinado. Sin embargo, nada dura para siempre, ni siquiera los procesos. Tarde
o temprano el nuevo proceso terminará, por lo general debido a una de las
siguientes condiciones:
1. Salida normal
(voluntaria).
2. Salida por
error (voluntaria).
3. Error fatal
(involuntaria).
4. Eliminado por
otro proceso (involuntaria).
La mayoría de
los procesos terminan debido a que han concluido su trabajo. Cuando un
compilador ha compilado el programa que recibe, ejecuta una llamada al sistema
para indicar al sistema operativo que ha terminado. Esta llamada es exit en
UNIX y ExitProcess en Windows. Los programas orientados a pantalla también
admiten la terminación voluntaria. Los procesadores de palabras, navegadores de
Internet y programas similares siempre tienen un icono o elemento de menú en el
que el usuario puede hacer clic para indicar al proceso que elimine todos los
archivos temporales que tenga abiertos y después termine.
2.1.4
JERARQUÍAS DE PROCESOS
En algunos
sistemas, cuando un proceso crea otro, el proceso padre y el proceso hijo
continúan asociados en ciertas formas. El proceso hijo puede crear por sí mismo
más procesos, formando una jerarquía de procesos. Observe que, a diferencia de
las plantas y los animales que utilizan la reproducción sexual, un proceso sólo
tiene un padre (pero cero, uno, dos o más hijos).
En UNIX, un
proceso y todos sus hijos, junto con sus posteriores descendientes, forman un
grupo de procesos. Cuando un usuario envía una señal del teclado, ésta se envía
a todos los miembros del grupo de procesos actualmente asociado con el teclado
(por lo general, todos los procesos activos que se crearon en la ventana
actual). De manera individual, cada proceso puede atrapar la señal, ignorarla o
tomar la acción predeterminada que es ser eliminado por la señal.
Como otro
ejemplo dónde la jerarquía de procesos juega su papel, veamos la forma en que
UNIX se
inicializa a sí mismo cuando se enciende la computadora. Hay un proceso
especial (llamado
init)
en la imagen de inicio. Cuando empieza a ejecutarse, lee un archivo que le
indica cuántas terminales hay. Después utiliza fork para crear un proceso por
cada terminal. Estos procesos esperan a que alguien inicie la sesión. Si un
inicio de sesión tiene éxito, el proceso de inicio de sesión ejecuta un shell
para aceptar comandos. Éstos pueden iniciar más procesos y así sucesivamente.
Por ende, todos
los procesos en el sistema completo pertenecen a un solo árbol, con init en
la raíz.
2.1.5
ESTADOS DE UN PROCESO
Aunque cada
proceso es una entidad independiente, con su propio contador de programa y
estado interno, a menudo los procesos necesitan interactuar con otros. Un proceso
puede generar cierta salida que otro proceso utiliza como entrada. En el
comando de Shell cat capitulo1 capitulo2 capitulo3 | grep árbol el primer
proceso, que ejecuta cat, concatena tres archivos y los envía como
salida. El segundo proceso, que ejecuta grep, selecciona todas las
líneas que contengan la palabra “arbol”. Dependiendo de la velocidad relativa
de los dos procesos (que dependen tanto de la complejidad relativa de los programas,
como de cuánto tiempo ha tenido cada uno la CPU), puede ocurrir que grep esté
listo para ejecutarse, pero que no haya una entrada esperándolo. Entonces debe
bloquear hasta que haya una entrada disponible.
Cuando un
proceso se bloquea, lo hace debido a que por lógica no puede continuar,
comúnmente porque está esperando una entrada que todavía no está disponible.
También es posible que un proceso, que esté listo en concepto y pueda
ejecutarse, se detenga debido a que el sistema operativo ha decidido asignar la
CPU a otro proceso por cierto tiempo. Estas dos condiciones son completamente distintas.
En el primer caso, la suspensión está inherente en el problema (no se puede procesar
la línea de comandos del usuario sino hasta que éste la haya escrito mediante
el teclado).
En el segundo
caso, es un tecnicismo del sistema (no hay suficientes CPUs como para otorgar a
cada proceso su propio procesador privado). En la figura 2-2 podemos ver un
diagrama de estados que muestra los tres estados en los que se puede encontrar
un proceso:
1. En ejecución
(en realidad está usando la CPU en ese instante).
2. Listo
(ejecutable; se detuvo temporalmente para dejar que se ejecute otro proceso).
3. Bloqueado (no
puede ejecutarse sino hasta que ocurra cierto evento externo).
En sentido
lógico, los primeros dos estados son similares. En ambos casos el proceso está
deseoso de ejecutarse; sólo en el segundo no hay temporalmente una CPU para él.
El tercer estado es distinto de los primeros dos en cuanto a que el proceso no
se puede ejecutar, incluso aunque la CPU no tenga nada que hacer.
2.1.6
IMPLEMENTACIÓN DE LOS PROCESOS
Para implementar
el modelo de procesos, el sistema operativo mantiene una tabla (un arreglo de
estructuras) llamada tabla de procesos,
con sólo una entrada por cada proceso (algunos autores llaman a estas entradas bloques de control de procesos). Esta
entrada contiene información importante acerca del estado del proceso,
incluyendo su contador de programa, apuntador de pila, asignación de
memoria, estado
de sus archivos abiertos, información de contabilidad y planificación, y todo
lo demás que debe guardarse acerca del proceso cuando éste cambia del estado en
ejecución a listo o bloqueado, de manera que se pueda
reiniciar posteriormente como si nunca se hubiera detenido.
2.1.7
MODELACIÓN DE LA MULTIPROGRAMACIÓN
Cuando se
utiliza la multiprogramación, el uso de la CPU se puede mejorar. Dicho en forma
cruda: si el proceso promedio realiza cálculos sólo 20 por ciento del tiempo
que está en la memoria, con cinco procesos en memoria a la vez la CPU deberá
estar ocupada todo el tiempo. Sin embargo, este modelo es demasiado optimista,
ya que supone que los cinco procesos nunca estarán esperando la E/S al mismo
tiempo.
Un mejor modelo
es analizar el uso de la CPU desde un punto de vista probabilístico. Suponga que
un proceso gasta una fracción p de su tiempo esperando a que se complete
una operación de
E/S. Con n procesos
en memoria a la vez, la probabilidad de que todos los n procesos estén
esperando la E/S (en cuyo caso, la CPU estará inactiva) es pn. Entonces,
el uso de la CPU se obtiene mediante la fórmula
Uso de la CPU _ 1 _ pn
2.3 PROCESOS LIGEROS: HILOS O HEBRAS
Hilos En los
sistemas operativos tradicionales, cada proceso tiene un espacio de direcciones
y un solo hilo de control. Uso de hilos Resulta ser que hay varias razones de
tener estos miniprocesos, conocidos como hilos. La principal razón de tener
hilos es que en muchas aplicaciones se desarrollan varias actividades a la vez.
Un segundo argumento para tener hilos es que, como son mas ligeros que los
procesos, son mas fáciles de crear (es decir, rápidos) y destruir. Una tercera
razón de tener hilos es también un argumento relacionado con el argumento. El
modelo clásico del hilo El modelo clásico de proceso se basa en dos conceptos
independientes: agrupamiento de recursos y ejecución. Lo que agregan los hilos
al modelo de procesos es permitir a cabo varias ejecuciones en el mismo entorno
del proceso que son en gran parte independiente unas de las otras. El termino
multhilamiento también se utiliza para describir la situación de permitir
varios hilos en el mismo proceso. Cuando se ejecuta un proceso con
multihilamiento en un sistema con una CPU, los hilos toman turnos para
ejecutarse. Hilos en POSIX El paquete de hilos se conoce como Pthreads. Cada
uno tiene un identificador, un conjunto de registros y un conjunto de
atributos, que se almacenan en una estructura. Para crear un hilo se utiliza la
llamada a Pthreadcreate. Cuando un hilo ha terminado el trabajo que se le
asigna puede terminar llamado a pthread_exit. Implementación de hilos en el
espacio de usuario Hay dos formas principales de implementar un paquete de
hilos: en espacio de usuario y en el kernel. El primer método es colocar l
paquete de hilos completamente en espacio de usuario. El kernel no sabe nada
acerca de ellos. Con este método, los hilos se implementan mediante una
biblioteca. Cuando los hilos se administran en espacio de usuario, cada proceso
necesita su propia tabla en ese proceso. Implementaación de hilos en el kernel
La tabla de los hilos de kernel contiene los registros, el estado ademas
información de cada hilo. Todas las llamadas que podrían bloquear un hilo se
implementan como llamada al sistema, a un costo considerablemente mayor que una
llamada a un procedimiento del sistema nen tiempo de ejecución. Los hilos de
kernel no requieren de nuevos llamados al sistema sin bloqueo. Los hilos de
kernel resuelven solo algunos problemas. Implementaciones hibridas Una de estas
formas es utilizar hilos de nivel de kernel y después de multiplexar los hilos
de nivel de usuario con algunos o con todos los hilos de nivel kernel. Cuando
se utiliza este método, el programados puede determinar cuantos hilos de kernel
va a utilizar y cuantos hilos de nivel usuario va a multiplexar en cada uno.
Con este método, el kernel esta consiente solo de los hilos de nivel kernel y
los planifica. Activaciones del planificador Aunque los hilos de kernel son
mejores que los hilos del nivel usuario en cierta forma clave, también son sin
duda mas lentos. Los objetivos del trabajo de una activación del planificado
son imitar la funcionalidad de los hilos de kernel. La eficiencia se obtiene
evitando transiciones innecesarias entre los espacios de usuarios y de kernel.
Para realizar la notificación, el kernel activa el sistema en tiempo de
ejecución en una dirección inicial conocida, no muy similar a una señal en
Unix. A este mecanismo se le conoce como llamada ascendente (upcall) Hilos
emergentes Los hilos se utilizan con frecuencia en los sistemas distribuidos.
El método tradicional es hacer que un proceso o hilo, que esta bloqueado en una
llamada al sistema recibe, espere un mensaje entrante. A dicho hilo se le
conoce como hilo emergente (pop-up thread). Conversión de código de hilado
simple a multihilado Es mucho mas dificil convertir estos programas para que
utilicen multihilamiento de lo que podria parecer en un principio. Para empezar
el código de un hilo normalmente consiste de varios procedimientos, al igual
que un proceso. La primera llamada podria ser como se muestra a continuación.
create_global("bufptr"); Se necesitan dos llamadas para acceder a las
variables globales: una para escribirlas y la otra para leerlas. Para escribir
algo como: set_global("bufpf",&buf); Para leer: bufptr=read_global("bufpfr");
2.4 CONCURRENCIA Y SECUENCIABILIDAD
Concurrencia. -
Es una propiedad de los sistemas en el cual los procesos de una computadora se
hace simultaneamente, y pueden interactuar entre ellos. (Ejecución simultanea
de mas de un proceso). Ejemplos: *Dos o mas procesos decimos que son
concurrentes, paralelos, o que se ejecutan concurrentemente, cundo son
procesados al mismo tiempo, es decir, que para ejecutar uno de ellos, no hace
falta que se aya ejecutado otro. *Esta ejecución simultanea podria conseguirse
completamente, puesto que podemos asignarle, por ejemplo, un proceso A al
procesador A y un proceso B al procesador B y cada procesador realizaran la
ejecución de su proceso. Secuenciabilidad *Un programa secuencial tiene una
linea simple de control de flujo. *Las operaciones de un programa secuencial
están ordenadas de acuerdo con un orden estricto. *La verificación de un
programa secuencial es sencilla. - Cada sentencia de la respuesta correcta -
Las sentencias se ejecutan en el orden adecuado.
2.5 NIVELES, OBJETIVOS Y CRITERIOS DE PLANIFICACION
Libro: Sistemas
Operativos Modernos Autor: Andrew S. Tanenbaum Planificación Cuando una
computadora se multiprograma, con frecuencia tiene varios procesos o hilos que
compiten por la CPU al mismo tiempo. Esta situación ocurre cada vez que dos o
más de estos procesos se encuentran al mismo tiempo en el estado listo. La
parte del sistema operativo que realiza esa decisión se conoce como
planificador de procesos y el algoritmo que utiliza se conoce como algoritmo de
planificación. Introducción a la planificación Con los sistemas de
multiprogramación, el algoritmo de planificación se volvió más complejo debido
a que comúnmente había varios usuarios esperando ser atendidos. Comportamiento
de un proceso Casi todos los procesos alternan ráfagas de cálculos con
peticiones de E/S (de disco). Por lo general la CPU opera durante cierto tiempo
sin detenerse, después se realiza una llamada al sistema para leer datos de un
archivo o escribirlos en el mismo. Cuándo planificar procesos Una cuestión
clave relacionada con la planificación es saber cuándo tomar decisiones de
planificación. En primer lugar, cuando se crea un nuevo proceso se debe tomar
una decisión en cuanto a si se debe ejecutar el proceso padre o el proceso
hijo. un algoritmo de planificación apropiativa selecciona un proceso y deja
que se ejecute por un máximo de tiempo fijo. Categorías de los algoritmos de
planificación Esta situación se presenta debido a que las diferentes áreas de
aplicación (y los distintos tipos de sistemas operativos) tienen diferentes
objetivos. Tres de los entornos que vale la pena mencionar son: 1.
Procesamiento por lotes. 2. Interactivo. 3. De tiempo real. Metas de los
algoritmos de planificación Todos los sistemas Equidad - Otorgar a cada proceso
una parte justa de la CPU Aplicación de políticas - Verificar que se lleven a
cabo las políticas establecidas Balance - Mantener ocupadas todas las partes
del sistema Sistemas de procesamiento por lotes Rendimiento - Maximizar el
número de trabajos por hora Tiempo de retorno - Minimizar el tiempo entre la
entrega y la terminación Utilización de la CPU - Mantener ocupada la CPU todo
el tiempo Sistemas interactivos Tiempo de respuesta - Responder a las
peticiones con rapidez Proporcionalidad - Cumplir las expectativas de los
usuarios Sistemas de tiempo real Cumplir con los plazos - Evitar perder datos
Predictibilidad - Evitar la degradación de la calidad en los sistemas
multimedia Planificación en sistemas de procesamiento por lotes Primero en
entrar, primero en ser atendido Con este algoritmo, la CPU se asigna a los
procesos en el orden en el que la solicitan. Cuando el primer trabajo entra al
sistema desde el exterior en la mañana, se inicia de inmediato y se le permite
ejecutarse todo el tiempo que desee. La gran fuerza de este algoritmo es que es
fácil de comprender e igualmente sencillo de programar. El trabajo más corto
primero supone que los tiempos de ejecución se conocen de antemano. Por
ejemplo, en una compañía de seguros las personas pueden predecir con bastante
precisión cuánto tiempo se requerirá para ejecutar un lote de 1000
reclamaciones, ya que se realiza un trabajo similar cada día. El menor tiempo
restante a continuación Una versión apropiativa del algoritmo tipo el trabajo
más corto primero es el menor tiempo restante a continuación (SRTN, Shortest
Remaining Time Next). Con este algoritmo, el planificador siempre selecciona el
proceso cuyo tiempo restante de ejecución sea el más corto. Planificación en
sistemas interactivos Planificación por turno circular A cada proceso se le
asigna un intervalo de tiempo, conocido como quántum, durante el cual se le
permite ejecutarse. Si el proceso se bloquea o termina antes de que haya
transcurrido el quántum, la conmutación de la CPU se realiza cuando el proceso
se bloquea, desde luego. Planificación por prioridad La planificación por turno
circular hace la suposición implícita de que todos los procesos tienen igual
importancia. Con frecuencia, las personas que poseen y operan computadoras
multiusuario tienen diferentes ideas en cuanto a ese aspecto. Múltiples colas
Uno de los primeros planificadores por prioridad estaba en CTSS, el Sistema de
tiempo compartido compatible del M.I.T. que se ejecutaba en la IBM 7094
(Corbató y colaboradores, 1962). Cada conmutación de procesos ocasionaba
intercambiar (swapping) el proceso actual al disco y leer uno nuevo del disco.
El proceso más corto a continuación Como el algoritmo tipo el trabajo más corto
primero siempre produce el tiempo de respuesta promedio mínimo para los
sistemas de procesamiento por lotes, sería bueno si se pudiera utilizar para
los procesos interactivos también. Un método es realizar estimaciones con base
en el comportamiento anterior y ejecutar el proceso con el tiempo de ejecución
estimado más corto. Planificación garantizada Un método completamente distinto
para la planificación es hacer promesas reales a los usuarios acerca del
rendimiento y después cumplirlas. Planificación por sorteo Aunque hacer
promesas a los usuarios y cumplirlas es una buena idea, es algo difícil de
implementar. Sin embargo, se puede utilizar otro algoritmo para producir
resultados similares con una implementación mucho más sencilla. Planificación
de sistemas en tiempo real Es un sistema de tiempo real, el tiempo desempeña un
papel esencial ya que por lo general uno o mas dispositivos físicos externos a
la computadora generan estímulos. Política contra mecanismos Separa el
mecanismo de planificación de la política de planificación esto significa que
esta parametrizado de cierta forma pero los procesos de un usuario pueden
llenar los parámetros. Planificación de hilos La planificación en esta
diferencia de forma considerable, dependiendo si hay soporte para hilos a nivel
usuario o para hilo a nivel. Libro: Sistemas Operativos 2da Edición Autor:
William Stallings Capítulo 8: Planificación del mono procesador El sistema
operativo puede tomar tres tipos de decisiones que efectúan a la ejecución de
los procesos. La planificación a largo plazo determina cuando se admiten los
nuevos procesos, al sistema la planificación a medio plazo forma parte de la
función de intercambio y determina cuando se lleva parcial o totalmente el
proceso será ejecutado a continuación por el microprocesador. Desde el punto de
vista de un usuario, la característica más importante de un sistema es en
general el tiempo de respuesta mientras que desde el otro punto de vista del
sistema. Capítulo 9: Planificación de multiprocesadores y en tiempo real En un
multiprocesador frecuentemente acoplado a varios procesadores tienen acceso al
mismo procesador durante toda su vida o se puede expedir hacia un procesador
distinto. En este contexto no son aplicables los criterios tradicionales de
selección de algoritmos de planificación. En su lugar clave el factor esta en
cumplir los plazos. Son apropiados en este contexto los algoritmos que dependen
mucho de la propiedad y reacción a los plazos relativos. Libro: Sistemas
Operativos Autor: Magister David Luis La Red Martinez Introducción y definición
sobre procesos El concepto central de cualquier sistema operativo es el
proceso: una abstracción de un programa en ejecución también llamado tarea.
Estados de procesos Durante su existencia un proceso pasa por una serie de
estados discretos, siendo varias las circunstancias que pueden hacer que el
mismo cambie de estado. Procesamiento de interrupciones Una interrupción es un
evento que altera la secuencia en que el procesador ejecuta las interrupciones;
es un hecho generado por el hardware de la computadora. El núcleo del sistema
operativo Controla todas las operaciones que implican procesos y representa
solo una pequeña porción del código de todo el sistema operativo pero es de
amplio uso. Planificación de procesos Cuando mas de un proceso es ejecutable
desde el punto de vista lógico, el sistema operativo debe decidir cual de ellos
debe ejecutarse en primer termino. El planificador es la porción del sistema
operativo que decide y el algoritmo de planificación es el utilizado. Niveles
de planificación del procesador Se consideran 3 niveles importantes de
planificación 1- Planificación de alto nivel. 2- Planificación de nivel
intermedio. 3- Planificación de bajo nivel. Objetivos de la planificación - Ser
justa - Maximizar la capacidad de ejecución - Maximizar el numero de usuario
interactivos que reciben unos tiempos de respuesta aceptable - Ser predecible -
Minimizar la sobrecarga - Equilibrar el uso de recursos - Equilibrar respuesta
y utilización - Evitar la postergación indefinida - Asegurar la prioridad - Dar
preferencia a los procesos que mantienen recursos claves - Dar mejor
tratamiento a los procesos que muestren un "comportamiento deseable"
- Degradarse suavemente con cargas pesadas Criterios de planificación * La
limitación de un proceso a las operaciones de E/S * La limitación de un proceso
a la CPU * Si un proceso es por lote (bath) o interactivo * La prioridad de un
proceso Planificación apropiada Versus no apropiaiva Es útil cuando los
procesos de alta prioridad requieren atención rápida. Es importante para
garantizar buenos tiempos de respuesta en sistemas interactivos de tiempo
compartido. Temporizador de intervalos o reloj de interrupción El proceso al
cual está asignada la CPU se dice que esta en ejecución y puede ser un proceso
de sistemas operativo o de usuario. El sistema operativo posee un reloj de
interrupción para generar una interrupción, en algún tiempo futuro especifico o
después de un transcurso de tiempo en el futuro. Prioridades Prioridades
estáticas Características: * No cambian * Los mecanismos de implementación son
sencillos * Implican una sobrecarga relativamente baja * No responden a cambios
en el ambiente que aria deseable ajustar alguna prioridad Prioridades dinámicas
Características: * Responden al cambio * La prioridad inicial asignada a un
proceso puede durar poco tiempo, luego se reajusta a u mejor valor * Los
mecanismos de implementación son mas complicados que prioridades estáticas
Tipos de planificación Planificación a plazo fijo Ciertos trabajos se
planifican para ser terminados en tiempo especifico o a plazo fijo.
Planificación garantizada Se establece compromiso de desempeño con el proceso
de usuario por ejemplo, si existen "n" procesos en el sistema, el
proceso del usuario recibirá cerca del "1/n" de la potencia de la
CPU. Planificación del primero en entrar primero en salir (FIFO) Los procesos
se despachan de acuerdo con su tiempo de llegada a la cola de listos.
Planificación de asignación de rueda (RR) Los procesos se despachan en FIFO y
disponen una cantidad limitada de tiempo de CPU, llamada "división de
tiempo" o "cuanto". Tamaño del cuanto o Quantum La determinación
del tamaño del cuanto es decisiva para la operación efectiva de un sistema
computacional. Planificación del trabajo mas corto primero (SJF) Es una disciplina
no apropiativa y por lo tanto no recomendable en ambientes de tiempo
compartido. Planificación del tiempo restante mas corto (SRT) Es la contra
parte apropiativa del SJF. Es útil en sistemas de tiempo compartido.
Planificación el siguiente con relación de respuesta máxima (HRN) Comige
algunas debilidades de SJF, tales como el acceso de perjuicio hacia los
procesos largos y el exceso de favoritismo hacia las nuevos trabajos cortos.
Planificación por prioridad Considera factores externos al proceso. Las ideas
centrales que son cada proceso tiene asociada una prioridad y que el proceso
ejecutable on máxima prioridad es el que tiene el permiso de ejecución. Colas
de retroalimentación de niveles múltiples - Favorece trabajos cortos. -
Favorece trabajos limitados por la E/S par optimizar el uso de los dispositivos
de E/S. - Determinar la naturaleza de un trabajo lo mas rápido posible y
planificar el trabajo de consecuencia. Política Versus mecanismo de
planificación Puede ocurrir que aya procesos con muchos procesos hijos
ejecutándose bajo su control, por ejemplo, un proceso de un DBMS con procesos
hijos atendiendo funciones especificas, tales como, análisis de interrogantes,
acceso de disco, etc. Planificación a dos niveles Si la memoria principal es
insuficiente, ocurrirá lo siguiente: * Habrá procesos ejecutables en
insuficiente que se mantengan en disco. * Habrá importantes implicaciones para
la planificación.
2.6 TÉCNICAS DE ADMINISTRACIÓN DEL PLANIFICAR
Las disciplinas
del planificador del software del sistema operativo encargado de asignar los
recursos de un sistema entre los procesos que solicitan. Los algoritmos tienen
distintas propiedades según los criterios en los que saben para su
construcción, lo cual se refleja en qué tipo de procesos se puede ver
favorecido frente a otro en la disputa del microprocesador, antes de realizar
la elección de un algoritmo se debe considerar las propiedades de estos frente
al criterio de diseño elegido, algunos de estos son: a) Eficacia: Se expresa
como un porcentaje del tiempo medio de utilización. Aunque pueden parecer lógico
intentar mantener este parámetro próximo al 100% con valor elevado.
b)
Rendimiento: Es una medida de numero de procesos completados por unidad de
tiempo.
c) Tiempo de retorno o regreso: Es el intervalo del tiempo que
transcurre desde que un proceso se crea o presta hasta que se completa por el
sistema.
d)Tiempo de espera: Es el tiempo que el proceso espera hasta que se le
concede el procesador. e)Tiempo de respuesta a un evento: Se denomina al
intervalo o del tiempo que transcurre desde que se señala un evento hasta que
se ejecuta la primera instrucción de la rutina.
f) Fifo: Es un método utilizado
en la estructura de datos, contabilidad de datos y teoría de cola, que guarda
analogía con las personas que esperan en una cola y atendidas en que llegaron.
g) Sjf: Al igual que el algoritmo de la fifo las rofagas se ejecutan sin
interrupción, solo es útil para entornos bateh.
h) Rr: Cada proceso tiene
asignado un intervalo de tiempo de ejecución llamadas Quantums. Asignación de
memoria conflictiva La memoria esta usualmente dividida en dos particiones: una
para el sistema operativo residente y otra para los procesos del usuario. Mapeo
de memoria y protección Cuando el planificador de la CPU selecciona un
procesador para su ejecución el despachador carga los registros de re ubicación
y del límite los valores correctos. Asignación de memoria Es uno de los métodos
más simples para asignar la memoria consistente en dividirla en varias
particiones múltiples de tamaño fijo en donde se involucran agujeros de primer
ajuste, mejor ajuste y peor ajuste. Fragmentación Esta estrategia de primer
ajuste como la de mejor ajuste para la asignación de memoria sufren de
problemas denominados fragmentación de externa. Segmentación Es un aspecto
importante de la gestión de memoria que se volvió inevitable con los mecanismos
de paginación es la separación entre el usuario tiene de la memoria y la
memoria física real. Memoria virtual La técnica de memoria virtual, es un
mecanismo que permite la ejecución de procesos que no se encuentran completamente
en memoria. La memoria virtual incluye la separación de la memoria lógica, tal
como la percibe el usuario, con respecto a la memoria física.