Fundamentos de la Arquitectura de Computadores y Sistemas Operativos

Arquitectura de Computadores

Clasificación de los Buses

Los buses se clasifican en: serie, paralelo, multiplexados, dedicados, centralizados, distribuidos, síncronos y asíncronos. Dos buses serán compatibles si son eléctricamente idénticos.

Arquitectura Von Neumann

La arquitectura Von Neumann se caracteriza por disponer de una sola memoria principal donde se almacenan datos e instrucciones. La CPU está formada por:

  • Unidad Aritmética Lógica (ALU): Realiza operaciones aritméticas y lógicas básicas.
  • Unidad de Control (UC): Es la parte más compleja de la CPU. Su función consiste en buscar la instrucción en la memoria principal, interpretarla y ejecutarla generando una secuencia.
  • Reloj: Cuanto más frecuente sea esta señal, más veloz será el procesador.
  • Registro de Instrucción (IR): Procedente de la memoria, guarda la instrucción que se va a ejecutar.
  • Contador de Programa (PC): Registro con la dirección de la siguiente instrucción a ejecutar.
  • Registro de Estado (SR): Guarda información de la última operación realizada por la ALU.

Algoritmos y Tipos de Datos

Tipos de Algoritmos

  • Cualitativos: Se describen los pasos utilizando palabras.
  • Cuantitativos: Se describen con cálculos numéricos.

Tipos de Datos

  • Simples: Numéricos, lógicos, alfanuméricos.
  • Estructurados: Vectores, matrices, registros, archivos, apuntadores.

Expresiones

  • Aritméticas: Realizan operaciones matemáticas con valores enteros o reales.
  • Relacionales: >, >=, etc.
  • Lógicos: NOT, AND, OR.

Operandos o Identificadores

  • Constantes: Cualquier dato que no cambia.
  • Variables: Numéricas, lógicas, alfanuméricas. Regla: Comienza con una letra, no contiene espacios en blanco, hasta 8 caracteres.

Diseño de Algoritmos

  • Top-Down: Divide el problema en otros más sencillos, niveles de mayor a menor complejidad relacionados por entrada/salida de información.
  • Bottom-Up: Se identifican los procesos que necesitan programarse conforme van apareciendo. Satisface el problema de inmediato.

Representación de Algoritmos

  • Diagrama de Flujo: Representación gráfica de un algoritmo, símbolos unidos por líneas.
  • Pseudocódigo: Mezcla de lenguaje de programación utilizado para el diseño de un programa. Usa palabras que indican el proceso a realizar.
  • Diagrama de Nassi-Schneiderman o Chapin: Se omiten flechas de unión, resalta la estructura de los programas, varias acciones en una caja.

Estructuras Algorítmicas

  • Secuenciales: Una acción sigue a otra, la salida de una es la entrada de la siguiente.
  • Asignación: Paso de valores o resultados a una zona de la memoria.
    • Simple: Pasa un valor constante a una variable.
    • Contador: Variable como sumador.
    • De Trabajo: Recibe el resultado de una operación con variables.

Manejo de Módulos

Un problema complejo se puede dividir en varios subproblemas (módulos) más sencillos. Un subprograma (procedimientos y funciones) recibe datos, ejecuta, genera resultados y devuelve el control al programa que lo llamó. Para ejecutar una función, hay que llamarla desde el algoritmo principal.

Conceptos Básicos de C

Identificadores

Constantes, variables, vectores, etc. Mejoran la legibilidad de un programa. Comienzan con una letra o subrayado. Longitud máxima: 31 caracteres (ANSI).

Palabras Reservadas

Representan una orden. Cada compilador puede incluir las suyas. No pueden ser nombres de identificador.

Tipos de Datos

  • int: Números enteros sin decimales, con signo.
  • char: Caracteres ASCII (equivalente a 8 bytes).
  • float: (1 palabra, coma flotante; números con decimales).
  • double: (2 palabras) Coma flotante doble precisión.
  • void: Vacío (declara una función que no devuelve valor, crea punteros genéricos).

Modificadores de Tipos de Datos

short, long, signed, unsigned. Adaptan el tipo base a las necesidades del programador.

Conversiones de Tipo

Cuando en una expresión intervienen variables y constantes de tipos diferentes, los operandos de menor precisión se igualan a los de precisión más alta. De mayor a menor: double, float, long, int, short, char. En una asignación, el lado derecho se convierte al tipo del lado izquierdo.

Constantes

De carácter, de cadena de caracteres, numéricas, simbólicas.

Variables

  • Declaración: Reserva espacio en memoria según el tipo de datos.
  • Inicialización: Dar valor inicial en la declaración.

Expresiones

Operadores:

  1. Asignación: Asigna el valor de una expresión a un identificador (variable).
  2. Aritméticos: Representan operaciones matemáticas.
  3. Relacionales: Comparan valores, devuelven cierto o falso.

Precedencia de Operadores (de mayor a menor prioridad)

Monarios, binarios, relacionales, lógicos, asignación.

Sentencias

Indican una acción. Siempre acaban en ;. Hay de tipo: simples, compuestas, de control y comentarios.

Estructura de un Programa en C

Archivos de Cabecera

#include: Directiva para el acceso a librerías.

Entrada y Salida de Datos

  • int getchar(): Lee un carácter desde el teclado, devuelve un entero.
  • int putchar(): Envía a pantalla el carácter almacenado en la variable.
  • int scanf(): Entrada de datos con formato.
  • int printf(): Salida de datos con formato.

Sentencias de Control

  • Selección simple: Según el resultado de la evaluación de una expresión se ejecutará una sentencia u otra.
  • Selección múltiple: El resultado de la evaluación de una expresión provoca la ejecución de sentencias distintas.
  • Repetición con condición inicial: Ejecuta las sentencias entre llaves tantas veces como la expresión sea cierta. getchar() solo lee un carácter cada vez, espera a la siguiente llamada a getchar(). El bucle se repetirá hasta llegar al carácter return (‘\n’).
  • Repetición con condición final: Efectua las sentencias entre llaves tantas veces como la expresión sea cierta. Se ejecutan al menos una vez.
  • Repetición con contador: Se usa cuando la finalización del bucle depende del valor de una variable que se incrementa o decrementa en una cantidad fija.

Sistemas Operativos

Objetivos del Sistema Operativo

  • Control: Gestionar y asignar los recursos necesarios que requieren los programas.
  • Comodidad: Facilitar el uso de la máquina a los usuarios.
  • Eficiencia: El SO debe administrar los recursos (hardware y software) para aprovecharlos.

En un computador, los programas en ejecución deben compartir los recursos hardware disponibles. El SO establece a quién, cuándo, cuánto tiempo y la cantidad de recurso que asigna.

Estructura del Sistema Operativo

  • Núcleo: Sincroniza la activación de los procesos y define prioridades.
  • Llamadas al sistema: Conjunto de servicios que el S.O ofrece a los procesos de usuario.
  • Programas del sistema: Aplicaciones que se suministran con el S.O pero no forman parte de él.

Funciones del Sistema Operativo

Las más importantes:

  • Gestión de procesos
  • Gestión de memoria
  • Sistema de ficheros
  • Dispositivos de E/S y red
  • Gestión de protección y seguridad

Gestión de Procesos

El SO es responsable de la creación y eliminación de procesos, detener y reanudar procesos, comunicación y sincronización de procesos.

Gestión de la Memoria

El SO es responsable de conocer qué partes de la memoria están siendo utilizadas y por quién, decidir qué procesos se cargarán en memoria cuando haya espacio disponible, asignar y reclamar espacio de memoria cuando sea necesario. La problemática es el aislamiento del proceso y la asignación de la memoria.

Gestión de Ficheros

El SO es responsable de la creación y eliminación de ficheros. La problemática es la organización del sistema de ficheros, la asignación de espacio en disco a la información, la gestión del espacio libre y ocupado en disco y la protección.

Gestión de Dispositivos de E/S

El SO es responsable de gestionar el uso de los dispositivos E/S, el almacenamiento temporal de la información E/S y servir las interrupciones a los dispositivos de E/S. Problemática: manejadores de dispositivos específicos a cada dispositivo.

Gestión de la Red

Gestionar a varios niveles las comunicaciones con el exterior: manejadores de tarjetas de red, protocolos de comunicación (TCP/IP), aplicaciones para uso de la red.

Protección y Seguridad

Mecanismo para permitir o denegar el acceso de un proceso a un determinado recurso. El SO es responsable de definir propietarios de recursos o niveles de protección, garantizar la seguridad y el registro de accesos. Las llamadas al sistema definen la interfaz entre un proceso y el sistema operativo. Se implementan como interrupciones software.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.