Sitemas Operativos Monotarea

CP/M

Código QR

Introducción


Los monitores y el software de las primeras computadoras personales.

Monitores

Operaciones típicas de un monitor:

  • Mostrar un caracter en la pantalla o un teletipo.
  • Obtener un caracter del teclado.
  • Grabar el contenido de la memoria a un dispositivo de almacenamiento.
  • Restaurar el contenido de la memoria desde un dispositivo de almacenamiento.
  • Imprimir un caracter en la impresora.

Monitores

Por ejemplo, para mostrar el caracter '1' por pantalla:

  1. Colocar el valor 31H en un registro determinado.
  2. Colocar el valor de la operación "mostrar" en otro registro.
  3. Invocar a la interrupción asociada al monitor.
  4. Luego de mostrar el caracter, el monitor coloca un valor de estado en otro registro.

Demo de SCP 8086 Monitor

(Monitor de Altair 8800)

Demo de TEDMON

(Monitor de Commodore 128)

La crisis del software y CP/M


Los monitores y el software de las primeras computadoras personales.

Componentes de CP/M


  • BIOS: es similar a un monitor pero con una interfaz estandarizada.
  • BDOS: es el núcleo del sistema operativo, brinda llamadas al sistema independientes del HW a los programas de aplicación.
  • CCP: es el shell de línea de comandos

Una PC de la época

Componentes de una PC de la época
Elmasri: Figura 3.1

Características de las PCs de la época


  1. Memoria principal limitada en tamaño.
  2. El formato de discos estaba estandarizado.
  3. El manejo de interrupciones era principalmente para E/S.

Manejo de la E/S


El manejo de la E/S estaba limitado por la poca variedad de dispositivos de E/S disponibles.

Un problema era la falta de flexibilidad al manejar el teclado, la pantalla y el almacenamiento.

Otro problema era pérdida de performance al delegar en el S.O. la gestión de la E/S.

Manejo de la E/S


Entrada por Teclado: Portabilidad vs. Flexibilidad


Salida de Video: Portabilidad vs. Funcionalidad vs. Performance

El sistema de Archivos


Uno de los pricipales servicios prestados por CP/M era un sistema de archivos portable.

Cerca del 75% de las llamadas al sistema estaban relacionadas con el sistema de archivos.

El sistema de archivos estaba basado en el disco flexible de 8 pulgadas.

El sistema de Archivos

Estructura de un disco de 8 pulgadas
Un disco de 8" - Elmasri: Figura 3.2

El sistema de Archivos


Cada sistema de archivo se didive en:

  • Área Reservada (área de booteo)
  • Área de Directorio
  • Área de Almacenamiento de Datos
Estructura del sistema de archivos

El Área de Booteo

Contiene el código binario para iniciar la computadora y cargar el Sistema Operativo.

Las versiones cargables del BIOS, BDOS y CPP se escriben en este área. No son parte de ningún archivo y son invisibles para el usuario.

Al iniciar la computadora, un programa en la ROM lee estos archivos y los carga en memoria, este proceso se conoce como "booteo".

El Área de Directorio


Es de tamaño fijo y contiene 64 entradas de 32 bytes cada una.

Cada entrada almacena información sobre un archivo (aunque puede ser necesario utilizar varias entradas para un mismo archivo)

Sólo hay un directorio sin subdirectorios.

El Área de Directorio (cont)



No se almacena información sobre fechas ni horas.

No se almacena el tamaño del archivo (hay que calcularlo).

Si el directorio se llena, se llena el disco.

Entrada de Directorio

Entrada de directorio de CP/M
Entrada de Directorio - Elmasri: Figura 3.4

Ejecutando un Programa

El código binario debe estar en memoria, el proceso de carga lo efectúa normalmente el CCP.

Los programas se cargan a partir de la dirección 100H.

se les asigna espacio de pila en la memoria alta antes del S.O.

El proceso se ejecuta de principio a fin, si requiere E/S el procesador permanece ocioso hasta finalizar la operación (E/S programada).

Programa en Memoria

Programa cargado en memoria
Programa cargado en memoria - Elmasri: Figura 3.5

Gestión de Memoria

Se carga un solo programa en memoria. No existe detección o prevención de colisiones entre la pila y el programa.

El S.O. se coloca en la memoria alta y en caso de ser necesario se puede desalojar al CCP para tener más memoria de programa.

No contempla el heap, éste lo maneja el programa de aplicación. Si el programa no cabe en memoria pricipal puede usar overlays.

Mapa de Memoria de CP/M

Mapa de Memoria de CP/M
Mapa de Memoria de CP/M

Memoria Reservada en CP/M

Memoria Reservada en CP/M
Memoria Reservada en CP/M

Overlays en CP/M

Overlays en CP/M
Overlays en CP/M - Elmasri: Figura 3.6

Demo de CP/M

(Altair 8800)

Demo de CP/M

(Commodore 128 en modo Z80)

Bibliografía


  • Elmasri: Sistemas Operativos - Capítulo 3.

Por si tienen tiempo y ganas de pulir el inglés:
"Get Lamp"
https://www.youtube.com/watch?v=LRhbcDzbGSU&t=465s



Gracias!

https://sofrcu.github.com/
Licencia Creative Commons
Esta obra de Gabriel Arellano está bajo una licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional.