0% encontró este documento útil (0 votos)
464 vistas25 páginas

Unidad 1 Sistema Operativos

El documento introduce los sistemas operativos, definiéndolos como programas que administran los recursos del hardware y facilitan la interacción entre el usuario y la computadora. Explica que los sistemas operativos dividen un sistema de computación en hardware, software de aplicaciones, usuarios y el propio sistema operativo. Además, describe brevemente la evolución histórica de los sistemas operativos desde los primeros programas de bits hasta los sistemas operativos modernos multiprocesamiento.

Cargado por

123eduardo123
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
464 vistas25 páginas

Unidad 1 Sistema Operativos

El documento introduce los sistemas operativos, definiéndolos como programas que administran los recursos del hardware y facilitan la interacción entre el usuario y la computadora. Explica que los sistemas operativos dividen un sistema de computación en hardware, software de aplicaciones, usuarios y el propio sistema operativo. Además, describe brevemente la evolución histórica de los sistemas operativos desde los primeros programas de bits hasta los sistemas operativos modernos multiprocesamiento.

Cargado por

123eduardo123
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Introduccin a los sistemas operativos

1.1 Concepto y definicin de Sistemas Operativos

Un Sistema Operativo es una parte importante de cualquier sistema de computacion. Un


sistema de computacion puede dividirse en cuatro componentes: el hardware, el Sistema
Operativo, los programas de aplicacion y los usuarios. El hardware (Unidad Central de
Procesamiento (UCP), memoria y dispositivos de entrada/salida (E/S)) proporciona los
recursos de computacion basicos. Los programas de aplicacion (compiladores, sistemas
de bases de datos, juegos de video y programas para negocios) definen la forma en que
estos recursos se emplean para resolver los problemas de computacion de los usuarios.

Recursos administrados por el Sistema Operativo

Existen diversas definiciones de lo que es un Sistema Operativo, pero no hay una


definicion exacta, es decir una que sea estandar; a continuacion se presentan algunas:
1.- Se pueden imaginar un Sistema Operativo como los programas, instalados en el
software o firmware, que hacen utilizable el hardware. El hardware proporciona la
"capacidad bruta de computo "; los sistemas operativos ponen dicha capacidad de a.C. al
alcance de los usuarios y administran cuidadosamente el hardware para lograr un buen
rendimiento.
2.- Los Sistemas Operativos son ante todo administradores de recursos; el principal
recurso que administran es el hardware del computador; ademas de los procesadores, los
medios de almacenamiento, los dispositivos de entrada/salida, los dispositivos de
comunicacion y los datos.
3.- Un Sistema Operativo es un programa que actua como intermediario entre el usuario y
el hardware del computador y su proposito es proporcionar el entorno en el cual el usuario
pueda ejecutar programas. Entonces, el objetivo principal de un Sistema Operativo es,
lograr que el sistema de computacion se use de manera comoda, y el objetivo secundario
es que el hardware del computador se emplee de manera eficiente.
4.- Un Sistema Operativo es un conjunto de programas que controla la ejecucion de
programas de aplicacion y actua como una interfaz entre el usuario y el hardware de una
computadora, esto es, un Sistema Operativo explota y administra los recursos de hardware
de la computadora con el objeto de proporcionar un conjunto de servicios a los usuarios
del sistema.
En resumen, se podria decir que los Sistemas Operativos son un conjunto de programas
que crean la interfaz del hardware con el usuario, y que tiene dos funciones primordiales,
que son:
Gestionar el hardware.- Se refiere al hecho de administrar de una forma mas eficiente los
recursos de la maquina.
Facilitar el trabajo al usuario.- Permite una comunicacion con los dispositivos de la
maquina.
El Sistema Operativo se encuentra almacenado en la memoria secundaria. Primero se
carga y ejecuta un pedazo de codigo que se encuentra en el procesador, el cual carga el
BIOS, y este a su vez carga el Sistema Operativo que carga todos los programas de
aplicacion y software variado.

1.2 Funciones y Caracteristicas

En general, se puede decir que un Sistema Operativo tiene las siguientes caracteristicas:
Conveniencia. Un Sistema Operativo hace mas conveniente el uso de una computadora.
Eficiencia. Un Sistema Operativo permite que los recursos de la computadora se usen de la
manera mas eficiente posible.
Habilidad para evolucionar. Un Sistema Operativo debera construirse de manera que permita el
desarrollo, prueba o introduccion efectiva de nuevas funciones del sistema sin interferir con el
servicio.
Encargado de administrar el hardware. El Sistema Operativo se encarga de manejar de una mejor
manera los recursos de la computadora en cuanto a hardware se refiere, esto es, asignar a cada
proceso una parte del procesador para poder compartir los recursos.
Relacionar dispositivos (gestionar a traves del kernel). El Sistema Operativo se debe encargar de
comunicar a los dispositivos perifericos, cuando el usuario asi lo requiera.

Organizar datos para acceso rapido y seguro.


Manejar las comunicaciones en red. El Sistema Operativo permite al usuario manejar con alta
facilidad todo lo referente a la instalacin y uso de las redes de computadoras.

Procesamiento por bytes de flujo a travs del bus de datos.

Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle fcil al usuario el acceso y
manejo de los dispositivos de Entrada/Salida de la computadora.
Tcnicas de recuperacin de errores.
Evita que otros usuarios interfieran. El Sistema Operativo evita que los usuarios se bloqueen entre
ellos, informndoles si esa aplicacin esta siendo ocupada por otro usuario.
Generacin de estadsticas.
Permite que se puedan compartir el hardware y los datos entre los usuarios.

El software de aplicacin son programas que se utilizan para disear, tal como el procesador de
palabras, lenguajes de programacin, hojas de clculo, etc.
El software de base sirve para interactuar el usuario con la mquina, son un conjunto de
programas que facilitan el ambiente plataforma, y permite el diseo del mismo.
El Software de base est compuesto por :
Cargadores.
Compiladores.
Ensambladores.

Macros.

1.3 Evolucion Histrica

Para tratar de comprender los requisitos de un Sistema Operativo y el significado de las principales caracterist
de un Sistema Operativo contemporaneo, es util considerar como han ido evolucionando estos con el tiempo.
Existen diferentes enfoques o versiones de como han ido evolucionando los Sistemas Operativos

La primer

estas versiones podria ser esta:

En los 40's, se introducen los programas bit a bit, por medio d


interruptores mecanicos y despues se introdujo el lenguaje
maquina que trabajaba por tarjetas perforadas.
Con las primeras computadoras, desde finales de los aos

hasta la mitad de los aos 50, el programador interactuaba de

manera directa con el hardware de la computadora, no existia


realmente un Sistema Operativo; las primeras computadoras
utilizaban bulbos, la entrada de datos y los programas se
realizaban a traves del lenguaje maquina (bits) o a traves de
interruptores.

Durante los aos 50's y 60's.- A principio de los 50's, la compania General's Motors implanto el primer sistema

operativo para su IBM 170. Empiezan a surgir las tarjetas perforadas las cuales permiten que los usuarios (qu
ese tiempo eran programadores, disenadores, capturistas, etc.), se encarguen de modificar sus programas.

Establecian o apartaban tiempo, metian o introducian sus programas, corregian y depuraban sus programas e

tiempo. A esto se le llamaba trabajo en serie. Todo esto se traducia en perdida de tiempo y tiempos de program
excesivos.

En los aos 60's y 70's se genera el circuito integrado, se organizan los trabajos y se generan los procesos Ba
(por lotes), lo cual consiste en determinar los trabajos comunes y realizarlos todos juntos de una sola vez. En
epoca surgen las unidades de cinta y el cargador de programas, el cual se considera como el primer tipo de
Sistema Operativo.

En los 80's, inicio el auge de la INTERNET en los Estados Unidos de America. A finales de los aos 80's

comienza el gran auge y evolucion de los Sistemas Operativos. Se descubre el concepto de multiprogramacio

que consiste en tener cargados en memoria a varios trabajos al mismo tiempo, tema principal de los Sistemas
Operativos actuales.

Los 90's y el futuro, entramos a la era de la computacion distribuida y del multiprocesamiento a traves de mult
redes de computadoras, aprovechando el ciclo del procesador.

Se tendra una configuracion dinamica con un reconocimiento inmediato de dispositivos y software que se ana
elimine de las redes a traves de procesos de registro y localizadores.

La conectividad se facilita gracias a estandares y protocolos de sistemas abiertos por organizaciones como la
Organizacion Internacional de normas, fundacion de software abierto, todo estara mas controlado por los
protocolos de comunicacion OSI y por la red de servicios digital ISDN.

Se ha desarrollado otra version, la cual se ha hecho en base a etapas o generaciones:


1a. Etapa (1945-1955): Bulbos y conexiones.

Despues de los infructuosos esfuerzos de Babbage, hubo poco progreso en la construccion de las computado

digitales, hasta la Segunda Guerra Mundial. A mitad de la decada de los 40's, Howard Aiken (Harvard), John V

Newman (Instituto de Estudios Avanzados, Princeton), J. Prespe R. Eckert y Williams Mauchley (Universidad d

Pennsylvania), asi como Conrad Zuse (Alemania), entre otros lograron construir maquinas de calculo mediant

bulbos. Estas maquinas eran enormes y llenaban cuartos completos con decenas de miles de bulbos, pero era
mucho mas lentas que la computadora casera mas economica en nuestros dias.
Toda la programacion se llevaba a cabo en lenguaje de maquina absoluto y con frecuencia se utilizaban
conexiones para controlar las funciones basicas de la maquina. Los lenguajes de programacion eran
desconocidos (incluso el lenguaje ensamblador). No se oa de los Sistemas Operativos el modo usual de
operacion consistia en que el programador reservaba cierto periodo en una hoja de reservacion pegada a la

pared, iba al cuarto de la maquina, insertaba su conexion a la computadora y pasaba unas horas esperando q

ninguno de los 20,000 o mas bulbos se quemara durante la ejecucion. La inmensa mayoria de los problemas e
calculos numericos directos, por ejemplo, el calculo de valores para tablas de senos y cosenos.

A principio de la decada de los 50's la rutina mejoro un poco con la introduccion de las tarjetas perforadas. Fue

entonces posible escribir los programas y leerlas en vez de insertar conexiones, por lo demas el proceso era e
mismo.
2a. Etapa. (1955-1965): Transistores y Sistemas de Procesamiento por lotes.

La introduccion del transistor a mediados de los aos 50's modifico en forma radical el panorama. Las

computadoras se volvieron confiables de forma que podian fabricarse y venderse a clientes, con la esperanza
que ellas continuaran funcionando lo suficiente como para realizar un trabajo en forma.

Dado el alto costo del equipo, no debe sorprender el hecho de que las personas buscaron en forma por dema
rapidas vias para reducir el tiempo invertido. La solucion que, por lo general se adopto, fue la del sistema de

procesamiento por lotes.


3ra Etapa (1965-1980): Circuitos integrados y multiprogramacion.

La 360 de IBM fue la primera linea principal de computadoras que utilizo los circuitos integrados, lo que

proporciono una gran ventaja en el precio y desempeno con respecto a las maquinas de la segunda generacio
construidas a partir de transistores individuales. Se trabajo con un sistema operativo enorme y

extraordinariamente complejo. A pesar de su enorme tamano y sus problemas el sistema operativo de la linea

360 y los sistemas operativos similares de esta generacion producidos por otros fabricantes de computadoras
realmente pudieron satisfacer, en forma razonable a la mayoria de sus clientes. Tambien popularizaron varias
tecnicas fundamentales, ausentes de los sistemas operativos de la segunda generacion, de las cuales la mas
importante era la de multiprogramacion.

Otra caracteristica era la capacidad de leer trabajos de las tarjetas al disco, tan pronto como llegara al cuarto d
computo. Asi, siempre que concluyera un trabajo el sistema operativo podia cargar un nuevo trabajo del disco
la particion que quedara desocupada y ejecutarlo.
4ta Etapa (1980-Actualidad): Computadoras personales.
Un interesante desarrollo que comenzo a llevarse a cabo a mediados de la decada de los ochenta ha sido el
crecimiento de las redes de computadoras personales, con sistemas operativos de red y sistemas operativos
distribuidos.
En los sistemas operativos de red, los usuarios estan conscientes de la existencia de varias computadoras y

pueden conectarse con maquinas remotas y copiar archivos de una maquina a otra. Cada maquina ejecuta su
propio sistema operativo local y tiene su propio usuario.
Por el contrario, un sistema operativo distribuido es aquel que aparece ante sus usuarios como un sistema

tradicional de un solo procesador, aun cuando esta compuesto por varios procesadores. En un sistema distrib

verdadero, los usuarios no deben ser conscientes del lugar donde su programa se ejecute o de lugar donde se
encuentren sus archivos; eso debe ser manejado en forma automatica y eficaz por el sistema operativo.

1.4 Clasificacion

Con el paso del tiempo, los Sistemas Operativos fueron clasificandose de diferentes maneras, dependiendo d

de la aplicacion que se les daba. A continuacion se mostraran diversos tipos de Sistemas Operativos que exis
actualidad, con algunas de sus caracteristicas:

1.4.1 Sistemas Operativos por Lotes

Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o
ninguna interaccion entre los usuarios y los programas en ejecucion. Se reunen todos los
trabajos comunes para realizarlos al mismo tiempo, evitando la espera de dos o mas
trabajos como sucede en el procesamiento en serie. Estos sistemas son de los mas
tradicionales y antiguos, y fueron introducidos alrededor de 1956 para aumentar la
capacidad de procesamiento de los programas.
Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecucion muy
alto, porque el procesador es mejor utilizado y los Sistemas Operativos pueden ser
simples, debido a la secuenciabilidad de la ejecucion de los trabajos.
Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600,
el cual esta orientado a procesamiento cientifico pesado, y el EXEC II para el UNIVAC
1107, orientado a procesamiento academico.
Algunas otras caracteristicas con que cuentan los Sistemas Operativos por lotes son:

Requiere que el programa, datos y ordenes al sistema sean remitidos todos juntos
en forma de lote.

Permiten poca o ninguna interaccion usuario/programa en ejecucion.

Mayor potencial de utilizacion de recursos que procesamiento serial simple en


sistemas multiusuarios.

No conveniente para desarrollo de programas por bajo tiempo de retorno y


depuracion fuera de linea.

Conveniente para programas de largos tiempos de ejecucion (Ej., analisis


estadisticos, nominas de personal, etc.).

Se encuentra en muchos computadores personales combinados con


procesamiento serial.

Planificacion del procesador sencilla, tipicamente procesados en orden de llegada.

Planificacion de memoria sencilla, generalmente se divide en dos: parte residente


del S.O. y programas transitorios.

No requieren gestion critica de dispositivos en el tiempo.

Suelen proporcionar gestion sencilla de manejo de archivos: se requiere poca


proteccion y ningun control de concurrencia para el acceso.

Figura. Trabajos mas comunes que realiza el Sistema Operativo por lotes.

1.4.2 Sistemas Operativos de Tiempo Real

Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario, sino los

procesos. Por lo general, estan subutilizados sus recursos con la finalidad de prestar atencion a los procesos

momento que lo requieran. se utilizan en entornos donde son procesados un gran numero de sucesos o event

Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy especificas como contr

trafico aereo, bolsas de valores, control de refinerias, control de laminadores. Tambien en el ramo automovilist

la electronica de consumo, las aplicaciones de tiempo real estan creciendo muy rapidamente. Otros campos d
aplicacion de los Sistemas Operativos de tiempo real son los siguientes:
1.

Control de trenes.

2.

Telecomunicaciones.

3.

Sistemas de fabricacion integrada.

4.

Produccion y distribucion de energia electrica.

5.

Control de edificios.

6.

Sistemas multimedia.

Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS y Spectra. Los Si
Operativos de tiempo real, cuentan con las siguientes caracteristicas:
1.

Se dan en entornos en donde deben ser aceptados y procesados gran cantidad de sucesos, la may
externos al sistema computacional, en breve tiempo o dentro de ciertos plazos.

2.

Se utilizan en control industrial, conmutacion telefonica, control de vuelo, simulaciones en tiempo re


aplicaciones militares, etc.

3.

Objetivo es proporcionar rapidos tiempos de respuesta.

4.

Procesa rafagas de miles de interrupciones por segundo sin perder un solo suceso.

5.

Proceso se activa tras ocurrencia de suceso, mediante interrupcion.

6.

Proceso de mayor prioridad expropia recursos.

7.

Por tanto generalmente se utiliza planificacion expropiativa basada en prioridades.

8.

Gestion de memoria menos exigente que tiempo compartido, usualmente procesos son residentes
permanentes en memoria.

9.

Poblacion de procesos estatica en gran medida.

10.

Poco movimiento de programas entre almacenamiento secundario y memoria.

11.

Gestion de archivos se orienta mas a velocidad de acceso que a utilizacion eficiente del recurso.

1.4.3 Sistemas Operativos de Multiprogramacion

Se distinguen por sus habilidades para poder soportar la ejecucion de dos o mas trabajos activos (que se esta

ejecutado) al mismo tiempo. Esto trae como resultado que la Unidad Central de Procesamiento (UCP) siempre
alguna tarea que ejecutar, aprovechando al maximo su utilizacion.

Su objetivo es tener a varias tareas en la memoria principal, de manera que cada uno esta usando el procesad
procesador distinto, es decir, involucra maquinas con mas de una UCP.

Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2, soportan la multita

Las caracteristicas de un Sistema Operativo de multiprogramacion o multitarea son las siguientes:

Mejora productividad del sistema y utilizacion de recursos.

Multiplexa recursos entre varios programas.

Generalmente soportan multiples usuarios (multiusuarios).

Proporcionan facilidades para mantener el entorno de usuarios individuales.

Requieren validacion de usuario para seguridad y proteccion.

Proporcionan contabilidad del uso de los recursos por parte de los usuarios.

Multitarea sin soporte multiusuario se encuentra en algunos computadores personales o en sistema


tiempo real.

Sistemas multiprocesadores son sistemas multitareas por definicion ya que soportan la ejecucion
simultanea de multiples tareas sobre diferentes procesadores.

En general, los sistemas de multiprogramacion se caracterizan por tener multiples programas activo
compitiendo por los recursos del sistema: procesador, memoria, dispositivos perifericos.

1.4.4 Sistemas Operativos de Tiempo Compartido

Permiten la simulacion de que el sistema y sus recursos son todos para cada usuario. El
usuario hace una peticion a la computadora, esta la procesa tan pronto como le es posible,
y la respuesta aparecera en la terminal del usuario.
Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son
continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusion de
que tiene el sistema dedicado para su mismo. Esto trae como consecuencia una gran
carga de trabajo al Sistema Operativo, principalmente en la administracion de memoria
principal y secundaria.
Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10.
Caracteristicas de los Sistemas Operativos de tiempo compartido:
1.

Populares representantes de sistemas multiprogramados multiusuario, Ej.:


sistemas de diseno asistido por computador, procesamiento de texto, etc.

2.

Dan la ilusion de que cada usuario tiene una maquina para si.

3.

Mayoria utilizan algoritmo de reparto circular.

4.

Programas se ejecutan con prioridad rotatoria que se incrementa con la espera y


disminuye despues de concedido el servicio.

5.

Evitan monopolizacion del sistema asignando tiempos de procesador (time slot).

6.

Gestion de memoria proporciona proteccion a programas residentes.

7.

Gestion de archivo debe proporcionar proteccion y control de acceso debido a


que pueden existir multiples usuarios accesando un mismo archivo.

1.4.5 Sistemas Operativos Distribuidos

Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede


ser que este conjunto de procesadores esta en un equipo o en diferentes, en este caso es
transparente para el usuario. Existen dos esquemas basicos de estos. Un sistema
fuertemente acoplado es a es aquel que comparte la memoria y un reloj global, cuyos
tiempos de acceso son similares para todos los procesadores. En un sistema debilmente
acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con
su memoria local.
Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del
sistema se compone otro componente debe de ser capaz de reemplazarlo.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los
siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.
Caracteristicas de los Sistemas Operativos distribuidos:

Coleccion de sistemas autonomos capaces de comunicacion y cooperacion


mediante interconexiones hardware y software .

Gobierna operacion de un S.C. y proporciona abstraccion de maquina virtual a


los usuarios.

Objetivo clave es la transparencia.

Generalmente proporcionan medios para la comparticion global de recursos.

Servicios anadidos: denominacion global, sistemas de archivos distribuidos,


facilidades para distribucion de calculos (a traves de comunicacion de procesos
internodos, llamadas a procedimientos remotos, etc.).

1.4.6 Sistemas Operativos De Red

Son aquellos sistemas que mantienen a dos o mas computadoras unidas a traves de algun medio de comunic

(fisico o no), con el objetivo primordial de poder compartir los diferentes recursos y la informacion del sistema.
El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando
posteriormente a procesadores Intel como Novell Netware.

Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware, Personal Netware, LAN Mana
Windows NT Server, UNIX, LANtastic.

1.4.7 Sistemas Operativos Paralelos

En estos tipos de Sistemas Operativos se pretende que cuando existan dos o mas procesos que compitan por
recurso se puedan realizar o ejecutar al mismo tiempo.

En UNIX existe tambien la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva, sim
paralelismo (es decir, atender de manera concurrente varios procesos de un mismo usuario). Asi, en lugar de

que el proceso termine de ejecutarse (como lo haria normalmente), regresa a atender al usuario inmediatamen
despues de haber creado el proceso.

Ejemplos de estos tipos de Sistemas Operativos estan: Alpha, PVM, la serie AIX, que es utilizado en los sis
RS/6000 de IBM.

1.5 Estructuras niveles o estratos de diseo

El nucleo o kernel se divide en 5 capas o niveles:

Nivel 1. Gestion de Memoria:Proporciona las facilidades de bajo nivel para la gestion de memoria secunda
necesaria para la ejecucion de procesos.

Nivel 2. Procesador: Se encarga de activar los cuantums de tiempo para cada uno de los procesos, crean
interrupciones de hardware cuando no son respetadas.

Nivel 3. Entrada/Salida: Proporciona las facilidades para poder utilizar los dispositivos de E/S requeridos p
procesos.

Nivel 4. Informacion o Aplicacion o Interprete de Lenguajes: Facilita la comunicacion con los lenguajes

sistema operativo para aceptar las ordenes en cada una de las aplicaciones. Ejecutando un programa el softw
este nivel crea el ambiente de trabajo e invoca a los procesos correspondientes.

Nivel 5. Control de Archivos: Proporciona la facilidad para el almacenamiento a largo plazo y manipulacio
archivos con nombre, va asignando espacio y acceso de datos en memoria.
El nucleo o kernel realiza diferentes funciones tales como:

Manejo de interrupciones.

Creacion y destruccion de procesos.

Cambio de estado de los procesos.

Despacho

Suspension y reanudacion de procesos.

Sincronizacion de procesos.

Comunicacion entre procesos.

Manipulacion de los bloques de control de procesos.

Apoyo para las actividades de entrada/salida.

Apoyo para asignacion y liberacion de memoria.

Apoyo para el sistema de archivos.

Apoyo para el mecanismo de llamada y retorno de un procedimiento.

Apoyo para ciertas funciones de contabilidad del sistema.

El nucleo y los procesos

Una definicion mas especifica de lo que es el nucleo ( Kernel ) de un sistema operativo es: un conjunto de r
cuya mision es la de gestionar el procesador, la memoria, la entrada/salida y el resto de procesos disponibles

instalacion. Toda esta gestion la realiza para atender al funcionamiento y peticiones de los trabajos que se eje
el sistema.
El esquema general de la gestion del procesador, es el siguiente:

Definicion y concepto de proceso.

El Bloque de Control de Proceso (PCB) como imagen donde el sistema operativo ve el estado del proc

Estados por los que pasa un proceso a lo largo de su existencia en la computadora.

Operaciones que se pueden realizar sobre un proceso.

Clasificacion de los procesos segun su forma de ejecucion, de carga, etc.

Por proceso debe entenderse: un programa en ejecucion junto con el entorno asociado (registros, variables

1.6 Ncleo

El Kernel consiste en la parte principal del codigo del sistema operativo, el cual se encargan de controlar y ad
los servicios y peticiones de recursos y de hardware con respecto a uno o varios procesos, en otras palabras,
es el corazon del sistema operativo.

Cada sistema operativo tiene un tipo distinto de kernel: asi los Unix mas tradicionales como FreeBSD usan un

monolitico" en el que esta todo compilado dentro, otros usan los llamados "microkernels" como el Darwin, Hur

incluso Windows (krnl32.dll). GNU/Linux usa un kernel "modular" (vmlinuz); un nucleo bastante grande compa

un microkernel, pero que es capaz de delegar funciones en los llamados " modulos" , partes independientes d

que pueden ser incorporadas dinamicamente si hacen falta y luego descargadas si molestan. Asi se pueden c

"drivers" para hardware, firewall o funciones especiales de red (ppp, rdsi, etc) cuando se necesiten y cuando p
ejemplo, se cierre la conexion a internet, liberar la memoria que usaba ese modulo.

1.6.1 Interrupciones FHLI

Una interrupcion es un evento que altera la secuencia en que el procesador ejecuta las instrucciones. La inter
es generada por el hardware del sistema de computo.
Cuando ocurre una interrupcion:

El sistema operativo toma el control (es decir, el hardware pasa el control al sistema operativo).

El sistema operativo guarda el estado del proceso interrumpido. En muchos sistemas esta informac
guarda en el bloque de control de proceso interrumpido.

El sistema operativo analiza la interrupcion y transfiere el control a la rutina apropiada para atenderl
muchos sistemas actuales el hardware se encarga de esto automaticamente.

La rutina del manejador de interrupciones procesa la interrupcion.

Se restablece el estado del proceso interrumpido (o del siguiente proceso).

Se ejecuta el proceso interrumpido (o el siguiente proceso).

Una interrupcion puede ser iniciada especificamente por un proceso en ejecucion (en cuyo caso se suele deno

trampa (trap), y se dice que esta sincronizada con la operacion del proceso) o puede ser causada por algun ev
que puede estar relacionado o no con el proceso en ejecucion (en cuyo caso se dice que es asincrona con la

operacion del proceso). Los sistemas orientados hacia las interrupciones pueden sobrecargarse. Si estas llega

mucha frecuencia, el sistema no sera capaz de atenderlas. En algunos sistemas orientados hacia el teclado, c

tecla presionada almacena en la memoria un codigo de un byte y genera un interrupcion para informar a la UC

un caracter esta listo para ser procesado. Si la UCP no puede procesar el dato antes de que se presione la sig
tecla, se pierde el primer caracter.

1.6.2 Despachador SCHEDULER

Su mision es asignar los procesadores centrales a los procesos. Es llamado cuando un proceso no puede seg
puede emplearse mejor en otra parte. Se activa en las situaciones siguientes:
1.

Tras una interrupcion externa ha cambiado el estado de un proceso.

2.

Despues de que un extracodigo provoque imposibilidad de seguir la ejecucion de un proceso.

3.

Tras una senal de error se ha suspendido el proceso hasta que no se haya tratado este.

Estas son causas especiales de interrupcion, esto es, todas ellas consisten en interrupciones que alteran el es
algun proceso. El funcionamiento del dispatcher es el siguiente:

1. Es el proceso en curso el mas apropiado para ser ejecutado sobre este procesador? (por las razones que
prioridad, recursos, etc). Si es asi, devolver el control a la posicion de memoria senalada por el contado
programa (continuar).
En otro caso ir a 2.

2. Salvar el entorno volatil del proceso en curso.

3.

4.

Sacar del registro del proceso aquel cuyo entorno volatil es el mas adecuado para ser ejecutado.

Transferir el control a la posicion de memoria indicada por el contador de programa asociado al nue
proceso.

Para determinar el proceso mas adecuado para ser ejecutado se ordenan los procesos ejecutables de acuerd

algun criterio de prioridad. Las prioridades de los procesos vienen dadas y por tanto no son mision del dispatc

Se utilizara una cola ordenada de modo que en cabeza de la cola este el proceso mas adecuado, asi la mision
dispatcher es la de ejecutar el primer proceso de la cola que no este siendo ejecutado.

Se puede tener en lugar de una cola, mas de una. Por ejemplo tres. Una para aquellos procesos a los que se

permiten dos segundos consecutivos de CPU. Otra para los que se les permiten 0,25 y otra para los que se le
solo 0,02 segundos.

Cada cola se sirve con el criterio de "el primero en llegar es el primero en ser servido". Las colas con meno

tienen mayor prioridad. Los procesos se colocan inicialmente en la cola de menor tiempo. Si consume todo el
asignado se transfiere a la siguiente cola en prioridad, asi sucesivamente.

Se consigue asi que los procesos que consumen menos tiempo de procesador, reciban un proceso rapido, mi
que las tareas habituales uno mas largo.

1.6.3 Primitivas de Comunicacion

Los procesos que se ejecutan concurrentemente pueden ser procesos independientes o procesos cooperativo

proceso es independiente si no puede afectar o verse afectado por los restantes procesos que se ejecutan en

sistema. Cualquier proceso que no comparte datos con ningun otro proceso es un proceso independiente. Un
es cooperativo si puede afectar o verse afecta-do por los demas procesos que se ejecutan en el sistema.
Evidentemente, cualquier proceso que comparte datos con otros procesos es un proceso cooperativo.
Hay varias razones para proporcionar un entorno que permita la cooperacion entre procesos:

Compartir informacion. Dado que varios usuarios pueden estar interesados en la misma informaci

ejemplo, un archivo compartido), debemos proporcionar un entorno que permita el acceso concurrente
informacion.

Acelerar los calculos. Si deseamos que una determinada tarea se ejecute rapidamente, debemos

en subtareas, ejecutandose cada una de ellas en paralelo con las demas. Observe que tal aceleracion

puede conseguir si la computadora tiene multiples ele-mentos de procesamiento, como por ejemplos v
CPU o varios canales de E/S.

Modularidad. Podemos querer construir el sistema de forma modular, dividiendo las fun-ciones del
en diferentes procesos o hebras

Conveniencia. Incluso un solo usuario puede querer trabajar en muchas tareas al mismo tiempo. P
ejemplo, un usuario puede estar editando, imprimiendo y compilando en paralelo.

La cooperacion entre procesos requiere mecanismos de comunicacion interprocesos (IPC, interprocess


communication) que les permitan intercambiar datos e informacion. Existen dos modelos fundamentales de
comunicacion interprocesos:
(1) memoria compartida y

(2) paso de mensajes.

En el modelo de memoria compartida, se establece una region de la memoria para que sea compartida por lo

procesos cooperativos. De este modo, los procesos pueden intercambiar informacion leyendo y escribiendo da
la zona compartida.

También podría gustarte