GithubHelp home page GithubHelp logo

juampibruno / tp-2023-1c-amcso Goto Github PK

View Code? Open in Web Editor NEW

This project forked from maquedapaul/tp-2023-1c-amcso

0.0 0.0 0.0 586 KB

Trabajo Práctico de Sistemas Operativos, elaborado en lenguaje C.

Shell 2.88% C 90.87% Makefile 6.24%

tp-2023-1c-amcso's Introduction

T.U.K.I - The Ultimate Kernel Implementation

El enunciado del proyecto se encuentra aquí.

El blog de marco teorico se encuentra aquí

Descripción del Proyecto

T.U.K.I (The Ultimate Kernel Implementation) es un proyecto académico desarrollado para simular un sistema operativo distribuido. A través de este trabajo, los estudiantes se familiarizan con conceptos avanzados de sistemas operativos, aprenden a utilizar diversas herramientas de programación y aplican teorías vistas en clase mediante una implementación práctica.

Objetivos del Trabajo Práctico

  • Adquirir conocimientos prácticos sobre el uso de APIs y herramientas de programación proporcionadas por los sistemas operativos.
  • Comprender los aspectos del diseño de un sistema operativo.
  • Reforzar conceptos teóricos mediante su implementación práctica.
  • Familiarizarse con técnicas de programación de sistemas como el uso de makefiles, archivos de configuración y logs.
  • Entender en detalle la operación de Linux utilizando un lenguaje de programación de bajo nivel como C.

Arquitectura del Sistema

Arquitectura del Sistema

El sistema se compone de cinco módulos:

  • Consola: Múltiples instancias que crean procesos.
  • Kernel: Administra y planifica la ejecución de procesos.
  • CPU: Ejecuta las instrucciones de los procesos.
  • Memoria: Administra el espacio de memoria usando segmentación.
  • File System: Administra y persiste los archivos creados por los procesos.

Flujo de Ejecución

  1. Consola: Envía información al Kernel para crear estructuras de administración.
  2. Kernel: Crea y planifica la ejecución de procesos mediante diversos algoritmos.
  3. CPU: Ejecuta las instrucciones y realiza peticiones a la Memoria y/o Kernel.
  4. Memoria: Administra el espacio de memoria y responde a las peticiones.
  5. File System: Gestiona archivos, respondiendo a peticiones del Kernel y haciendo peticiones a la Memoria.

Una vez finalizado un proceso, el Kernel notifica a la Consola correspondiente y cierra la conexión.

Módulos Detallados

1. Consola

  • Función: Inicia y envía procesos al Kernel.
  • Configuración: Recibe un archivo de configuración y un archivo de pseudocódigo con las instrucciones.
  • Instrucciones: Parseo de líneas con formato específico para enviar al Kernel.

2. Kernel

  • Función: Gestión y planificación de la ejecución de procesos.
  • Diagrama de Estados: Utiliza un diagrama de cinco estados para la planificación.
  • PCB: Estructura base para administrar procesos.
  • Planificadores:
    • Largo Plazo: Algoritmo FIFO.
    • Corto Plazo: Algoritmos FIFO y HRRN.

3. CPU

  • Función: Ejecuta las instrucciones de los procesos.
  • Ciclo de Instrucción: Comprende fetch, decode, y execute.
  • MMU: Unidad de administración de memoria para la traducción de direcciones.

4. Memoria

  • Función: Administra el espacio de memoria.
  • Esquema de Segmentación: Implementa y gestiona la memoria segmentada.

5. File System

  • Función: Administra y persiste los archivos.
  • Esquema Indexado: Similar al tipo Unix o ext2.

Evaluación del Trabajo Práctico

La evaluación consta de dos etapas:

  • Pruebas de Programas: Realizadas en el laboratorio.
  • Coloquio: Defensa teórica y práctica del trabajo realizado.

Deployment

  • Distribución de Procesos: Los procesos pueden ejecutarse en diversas computadoras.
  • Automatización del Despliegue: Es responsabilidad del grupo automatizar el despliegue con los archivos de configuración correspondientes.

Guía para Deployment

La guíase encuentra en el archivo [La Guia definitiva SO.txt].

Puesta en Marcha del Trabajo Práctico

Los módulos se deben levantar en el siguiente orden para asegurar el correcto funcionamiento de las conexiones:

  1. Memoria: ./bin/memory.out memory.config IP Escucha (ej 0.0.0.0)
  2. File System: ./bin/filesystem.out filesystem.config IP Escucha(ej 0.0.0.0)
  3. CPU: ./bin/cpu.out cpu.config IP Escucha
  4. Kernel: ./bin/kernel.out kernel.config IP Escucha
  5. Consola: ./bin/console.out console.config instrucciones.txt

tp-2023-1c-amcso's People

Contributors

maquedapaul avatar juampibruno avatar nicolechavez avatar briiaanmendez avatar brai93 avatar utnso avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.