Publicado el 10 de Febrero del 2017
1.038 visualizaciones desde el 10 de Febrero del 2017
236,4 KB
34 paginas
Creado hace 19a (25/04/2005)
El sistema operativo OSO
Departamento de Ingeniera y Tecnologa de Computadores
Universidad de Murcia
25 de abril de 2005
Introduccin
˝ndice
1.
2. Estructura del sistema
3. Ejecucin del sistema operativo
Iniciacin del sistema operativo . . .
3.1.
. . .
3.2. Puntos de entrada al sistema operativo . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . .
. . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
4. Gestin de procesos y de memoria
. . . .
4.1. La tabla de procesos . .
. . . .
4.2. Estado de un proceso .
. . . .
. . . .
4.3. Contexto de un proceso . . . .
. . . .
4.4. Gestin de procesos . .
. . . .
. . . .
4.4.1. Creacin de procesos .
. . . .
4.4.2. Planicacin de procesos . . .
4.4.3. Apropiacin de la CPU . . . .
. . . .
4.5. Gestin de memoria . .
. . . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . .
. . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . .
. . .
. . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . .
. . .
. . .
. . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
5. Sistema de cheros
5.1. Gestin de los dispositivos de almacenamiento . .
5.2. Gestin del sistema de cheros . . . .
. . . .
. . .
6. Gestin de la E/S
6.1. Lectura de un dispositivo de almacenamiento . . .
. . . .
6.2. Salida por pantalla
. .
6.3. Entrada por teclado . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . .
. . .
7. Llamadas al sistema
7.1. Sincronizacin de procesos dentro del nœcleo . . .
. . . .
7.2. La llamada sys_crear_proceso .
7.3. La llamada sys_escribir .
. . . .
. . . .
. . . .
. . . .
7.4. La llamada sys_leer . . . .
. . .
. . .
. . .
8. Funciones auxiliares
1
2
3
4
4
6
9
9
10
11
13
16
16
17
17
17
23
24
25
27
28
28
28
30
31
31
31
31
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1.
Introduccin
Este documento describe la estructura, diseæo e implementacin del sistema operativo OSO. OSO es un sistema
operativo monoltico muy pequeæo con el que se pretende mostrar, de manera prÆctica, algunos de los conceptos
fundamentales de los sistemas operativos actuales, en especial, el concepto de multitarea.
Entre los objetivos que han guiado el diseæo de este sistema operativo podemos destacar los siguientes:
El sistema operativo debe ser lo mÆs pequeæo posible. Por este motivo OSO slo implementa tres llamadas
al sistema bÆsicas como son: la creacin de procesos, la lectura de teclado y la salida por pantalla. La
implementacin de estas llamadas al sistema tambiØn serÆ un aspecto importante ya que muestran cmo el
sistema operativo ofrece sus servicios a los procesos de usuario.
El sistema operativo debe ser multitarea. La multitarea es uno de los conceptos mÆs importantes y es
fundamental entender su funcionamiento. En concreto, se pretende mostrar el funcionamiento del cambio
de contexto, el bloqueo/desbloqueo de procesos y la planicacin de los mismos.
El sistema operativo debe hacer una gestin bÆsica de la memoria. En el caso de OSO la gestin de la
memoria la vamos a basar en particiones estÆticas de igual tamaæo.
El sistema operativo debe gestionar algœn tipo de sistema de cheros. La importancia de ver en detalle
el funcionamiento de los sistemas de cheros es que en ellos se almacenan el cdigo y los datos de los
distintos programas que ejecuta el sistema operativo. Este objetivo tambiØn implica el uso de algœn tipo
de dispositivo de almacenamiento. Para simplicar estos dos objetivos de diseæo se usa el disquete como
dispositivo de almacenamiento y FAT12 como sistema de cheros.
Por œltimo, el sistema operativo debe ser interactivo. Esta caracterstica facilita mucho el uso del sistema
operativo al permitir al usuario controlar el funcionamiento del mismo. Este objetivo se va a conseguir
mediante la entrada de informacin por teclado y la salida de informacin por pantalla, lo que supone una
gestin bÆsica de la E/S por parte del sistema operativo. Esta gestin de la E/S nos va a permitir, ademÆs,
mostrar de forma natural uno de los aspectos fundamentales de la gestin de procesos como es el bloqueo
de un proceso y su desbloqueo posterior.
En cuanto a la implementacin son tambiØn varios los objetivos que hemos tenido en cuenta. Algunos de ellos
son los siguientes:
La implementacin debe centrarse en el sistema operativo y no en el hardware. Para cumplir este objetivo
se utiliza el «modo real» de los procesadores actuales de Intel y compatibles. Este modo ofrece una visin
del hardware muy sencilla, aunque tiene como principal problema el que no ofrece ningœn mecanismo de
proteccin hardware al sistema operativo.
La implementacin debe hacerse en un lenguaje de alto nivel. En el caso de OSO, el lenguaje utilizado
es C. El lenguaje ensamblador tambiØn se utiliza pero slo en aquellos casos en los que es realmente
necesario (como es la implementacin del cambio de contexto). Un aspecto importante es entender cmo
se relaciona el lenguaje de alto nivel con el lenguaje ensamblador. En el caso de C esta relacin es mucho
mÆs directa que la proporcionada por otros lenguajes de alto nivel como Pascal o C++, lo que justica el
uso de este lenguaje.
El entorno de programacin debe ser lo mÆs sencillo y cmodo posible. Este objetivo se consigue de varias
maneras, principalmente, utilizando el disquete como dispositivo de almacenamiento y FAT12 como sis-
tema de cheros, al igual que hace el sistema operativo OSO. Al utilizar un sistema de cheros real se
puede modicar su contenido fÆcilmente mediante las utilidades que existen en los sistemas operativos ac-
tuales (como Windows y Linux). As, podremos cambiar de manera sencilla el nœcleo del sistema operativo
cuando lo modiquemos y los programa a ejecutar en Øl.
2
En las siguientes secciones vamos a describir cmo se han conseguido estos objetivos. En primer lugar de-
scribiremos la estructura general del sistema operativo. DespuØs veremos cmo se han implementado cada uno
de sus distintos componentes.
2. Estructura del sistema
La gura 1 describe la estructura general del sistema en el que se ejecuta el sistema operativo OSO.
Crear
proceso
Escribir en
pantalla
Leer de
teclado
Llamadas al sistema
Ncleo del
sistema operativo
Espacio de
usuario
Espacio
del ncleo
BIOS
Hardware
de teclado
PIC
Hardware
Figura 1: Estructura general de OSO
Como podemos observar, la interfaz de llamadas al sistema slo proporciona tres servicios bÆsicos a los pro-
gramas de usuario: la creacin de procesos, la lectura de caracteres de teclado y la salida por pantalla de cadenas
de caracteres.
Para implementar las tres llamadas al sistema, OSO necesita acceder al hardware. Esto no siempre es as, es
decir, podra haber llamadas al sistema que no necesitaran acceder al nal al hardware. OSO accede al hardware,
bien directamente, bien indirectamente a travØs de la BIOS. Aunque el sistema operativo puede omitir la BIOS y
acceder directamente a cualquier dispositivo hardware, en el caso de OSO se ha optado por hacer uso de algunos
servicios de la BIOS en aras de simplicar la implementacin del sistema operativo. No obstante, es importante
saber que los sistemas operativos actuales rara vez hacen uso de la BIOS ya que Østa presenta algunos problemas
para el sistema operativo (no es reentrante, habilita las interrupciones, etc.).
Como muestra la gura, OSO hace uso de la BIOS para leer de disco y escribir en pantalla, y accede direc-
tamente al hardware para leer de teclado y para indicar al PIC (Programmable Interrupt Controller) que una
interrupcin ha sido tratada.
De las distintas interrupciones existentes, OSO slo va a controlar dos: la del reloj (o timer) y la del teclado.
La interrupcin de reloj se va a utilizar para implementar la multitarea. As, se le va a poder quitar la CPU a un
proceso cuando Øste lleve demasiado tiempo en ella. La interrupcin del teclado, por su parte, se va a utilizar
para desbloquear a aquellos procesos bloqueados que esperan un carÆcter de teclado.
3
Las llamadas al sistema se solicitan con una interrupcin software (ejecucin de la instruccin de salto int
22h). Esta interrupcin software y las dos interrupciones hardware (la de reloj y la de teclado, ambas iniciadas
por la activacin elØctrica de cables) constituyen los tres œnicos puntos de entrada al sistema operativo, es decir,
estas tres interrupciones son las que hacen que el procesador deje de ejecutar cdigo de los procesos de usuario
para ejecutar cdigo del sistema operativo.
Un aspecto a tener en cuenta es que OSO se ejecuta en el modo real de los procesadores de Intel y compatibles.
Ya que este modo no ofrece ningœn tipo de proteccin, los procesos de usuario podrÆn acceder directamente al
hardware sin que el sistema op
Comentarios de: El sistema operativo OSO (0)
No hay comentarios