Oscar Garcia Poblacion

@ogarcia

Prime membership

Joined on Nov 12, 2019

  • Bienvenidos ¡Hola! ![image](https://hackmd.io/_uploads/HkCm_MSdkl.png =200x) Soy Óscar García Población <span style="font-size: 34px;">https://www.linkedin.com/in/oscar-garcia-poblacion/</span> :email: oscar.gpoblacion@uah.es ![image](https://secuah.web.uah.es/2017/wp-content/uploads/2017/02/image4.png =300x)
     Like  Bookmark
  • The goal is to design the processor scheduler for the new VenanciOS operating system. For this purpose, a preemptive algorithm has been devised with dynamic priorities between 0 and 31, where low numbers indicate low priority and high numbers indicate high priority. Processes always start with a fixed priority of value 15. If their quantum is exhausted, their priority decreases by one unit (at least to the value 0) and, if the process does not exhaust and is ejected, it remains with the same priority. If the process goes to sleep waiting for a resource, when it wakes up it increases its priority (boosting), depending on the type of resource, according to the following table: Recurso Incremento de prioridad R₁ 1 R₂ 2
     Like  Bookmark
  • Creamos una imagen nueva a partir de python:latest. FROM python:latest COPY requirements.txt /requirements.txt RUN pip install -r requirements.txt COPY app app WORKDIR /app CMD ["python", "main.py"] El archivo dockerfile hace referencia a requirements.txt que con tiene el nombre de las bibliotecas (dependencias) que necesitamos que el contenedor tenga disponibles.
     Like  Bookmark
  • In the downloader practice we are told to download a big file using several processes working each on a different range of this big file. The file used as an example is hosted in a machine which IP is not reachable from Eduroam network. To overcome this, it is really easy to spin a webserver locally and use it to test our practice implementation. Here are the step for doing it. Generate a big sample file From the practice we know the size and the name of the file: ... #define TARGET_URL "http://<IP>/lolo"
     Like  Bookmark
  • Process Syncronization Cooperative vs Independent Cooperative processes share state The actions of cooperative processes depends on the actions of the others But all the processes are independent and isolated Producer-consumer problem It is a recurring problem in computing. It is necessary to synchronize the consumer process and the production process in order toAvoid consumption if there is nothing to consume Avoid overproduction, in case there is no space in the buffer.
     Like  Bookmark
  • Introducción a la tecnología de contenedores Definición de Wikipedia an open-source project that automates the deployment of software applications inside containers by providing an additional layer of abstraction and automation of OS-level virtualization on Linux. Características principales Es una herramienta software Permite desarrollar y empaquetar el código junto con todas sus dependencias en una imagen Uno o varios contenedores pueden ejecutar de forma aislada una imagen Los contenedores parecen máquinas virtuales, pero no tienen la sobrecarga de estas últimas y son por lo tanto más eficientes.
     Like  Bookmark
  • UAH, Departamento de Automática, ATC-SOL Unit 2 The goal of this practice is to study the page replacement algorithms used in virtual memory management mechanisms, clearly distinguishing the tasks performed by the hardware and the operating system in this context. Introduction The objective of this practice is the study of virtual memory management mechanisms. For this purpose, the operation of an MMU (Memory Management Unit) and the corresponding part of the operating system will be simulated. We will start by simulating the memory accesses caused by the execution of a hypothetical process which we will call gen_trace. The list of memory accesses, or traces, will allow us to study the way in which the processes make use of memory, and finally will serve as input data to a virtual memory simulator. The simulator includes hardware simulation, mainly the MMU, and also software simulation, mainly of the parts of the operating system involved, and in particular, of the page replacement algorithms.
     Like  Bookmark
  • Introducción a SSH SSH o Secure Socket Shell permite ejecutar una shell en un servidor remoto, de forma que dicha shell se pueda manipular a través de una red, utilizando para ello un canal TCP. Además, la interacción con la shell debe de hacerse de forma segura. Como los canales TCP no proporcionan una comunicación segura, es necesario añadir una capa de seguridad adicional que cifre los datos. Estas son las funcionalidades más relevantes de SSH. En resumen, mediante un cliente SSH podremos acceder a las máquinas sobre las que vayamos a operar de forma segura y eficiente. En los siguientes apartados se introducirán algunos aspectos importantes relacionados con SSH y su relación con el acceso a máquinas virtuales creadas en Google Cloud Engine. Encriptación y cifrado La encriptación se basa en el cifrado con una clave de un mensaje cuyo contenido se quiere proteger. SSH utiliza tanto el cifrado simétrico como el cifrado asimétrico. Cifrado simétrico En el cifrado simétrico se utiliza la misma clave tanto para el cifrado como el descifrado. Esto significa que la clave debe ser secreta (conocida solo por el emisor y el receptor). El mayor problema de este cifrado es cómo puede hacer llegar el emisor al receptor la clave de forma segura.
     Like  Bookmark
  • Instalar telegram haciendo: # influxdata-archive_compat.key GPG Fingerprint: 9D539D90D3328DC7D6C8D3B9D8FF8E1F7DF8B07E curl -s https://repos.influxdata.com/influxdata-archive_compat.key > influxdata-archive_compat.key echo '393e8779c89ac8d958f81f942f9ad7fb82a25e133faddaf92e15b16e6ac9ce4c influxdata-archive_compat.key' | sha256sum -c && cat influxdata-archive_compat.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg > /dev/null echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list sudo apt-get update && sudo apt-get install telegraf También se pueden seguir las instrucciones de instalación en el siguiente enlace: https://docs.influxdata.com/telegraf/v1/install/
     Like  Bookmark
  • Servicios web con Flask, docker y docker-compose En esta práctica vamos a introducir un framework muy popular para la programación de servicios web con Python llamada Flask. Aprenderemos como poner en marcha una aplicación mínima que ejecutaremos desde dentro de un contenedor docker. Aprovecharemos para introducir el concepto de aplicaciones stateless y aplicaciones stateful junto con el bases de datos en memoria. Aprenderemos además a utilizar variables de entorno y a orquestar contenedores cuando su complejidad o número así lo requiera. ¿Qué es Flask? Flask es un framework para construir aplicaciones web: Se autodeclara como un microframework:Pocas dependencias externasWerkzeug a WSGI utility library jinja2 which is its template engine Ligero
     Like 1 Bookmark
  • Unleash FastAPI slide: https://hackmd.io/@ogarcia/fast-api repo: https://github.com/leticiapb80/hero-app-template This is a workshop so, please prepare laptop or smartphone to join! :wave: Who am I?
     Like  Bookmark
  • ![](https://hackmd.io/_uploads/HkTB99KJp.png =400x) Docker container technology has revolutionized the way software applications are developed, deployed, and managed in modern computing environments. It provides a lightweight, portable, and efficient way to package an application and its dependencies into a single unit called a "container." These containers encapsulate everything needed to run an application, including the code, runtime, libraries, and system tools, ensuring consistency and reproducibility across different computing environments. Docker's containerization technology offers several key benefits, such as improved resource utilization, faster application deployment, and simplified management. Containers are isolated from each other and from the host system, ensuring security and preventing conflicts between applications. Moreover, Docker containers can be easily moved between different environments, from development to testing to production, making it an essential tool for modern software development and DevOps practices. In this introduction, we will explore the core concepts, components, and advantages of Docker container technology, highlighting its importance in the rapidly evolving world of software development and deployment. In the context of this laboratory, but in general of the software development activities, containers provide two great advantages. First, developing with containers provide environment consistency. Containers encapsulate the entire application and its dependencies, ensuring that developers work in consistent environments. What works on a developer's machine will work the same way in other environments, such as testing and production. And second, developers can work with multiple containers simultaneously, isolating different projects with different configurations, reducing conflicts and inconsistencies. In this document I will guide you in the process of using docker in the laboratory to develop and run your practices.
     Like  Bookmark
  • Arquitectura Software para Estrategia slide: https://hackmd.io/@ogarcia/arquitectura La arquitectura de software se refiere al diseño y organización de los componentes de un sistema de software, incluyendo sus estructuras, módulos, interfaces y relaciones, con el objetivo de cumplir con los requisitos funcionales y no funcionales del sistema. Requisitos Funcionales Objetivos y necesidades del usuario Qué hace el sistema, cómo se comporta y qué resultados produce
     Like  Bookmark
  • Let be a Unix-like file system, based on i-nodes, mounted on a device with a storage capacity of 32 MiB and a block size of 512 bytes. These blocks hold the following information: Block 0 is the boot block. It contains information about the operating system boot code. Block 1 is the superblock. It holds the meta-information for the operation of the file system. Block 2 through block 9 is the i-node list. It contains all the i-nodes representing objects in the file system. Block 10 is the first data block. The i-nodes will be eight bytes, each, and will store the following information: File type (1 byte). Directory (DIR), link (LNK), regular file (REG),named pipe (FIFO), block file (BLQ), character file (CAR).
     Like  Bookmark
  • Utilidades de eficiencia en el uso History Repetición de órdenes desde el histórico Búsqueda de órdenes pasadas Ctr-R Uso de alias Expansión de metacaracteres El metacaracteres *, ?, {}
     Like  Bookmark
  • ¿Qué es un API? Application Program Interface Una API es un conjunto de definiciones y protocolos que se utiliza para desarrollar e integrar distintas piezas de software. ¿Qué es un API REST? REST, or REpresentational State Transfer, is an architectural style for providing standards between computer systems on the web, making it easier for systems to communicate with each other. Es un estilo de arquitectura software, centrada en los recursos, que sirve para construir API sobre el protocolo HTTP.
     Like  Bookmark
  • The FAT file system is made up of three regions: the reserved region, the FAT region and the cluster region. In this document we will make a brief description of each one, with examples that will help you to better understand this file system and also help you to complete the laboratory practice. The reserved region Right before the first FAT, there are some reserved sectors. It contains some metadata related to the file system itself, it is the first sector and it is also known as the volume_id. This region is pointed by the corresponding partition entry, of the partition table in the MBR (Master Boot Record) This region is described by the following declaration: struct BS_Structure bs_data; Data member Offset Value
     Like  Bookmark
  • Introducción La shell es 1)una potente interfaz con el sistema operativo basada en línea de comandos y 2)un interprete de scripts. Un shell script es un programa realizado en el lenguaje de la shell. Dicho de una forma sencilla y generalizando, un shell script es un fichero de texto que contiene órdenes que también podrían ser ejecutadas desde la línea de comandos. Los shell script son muy utilizados en la administración de los sistemas ya que permiten, con una sola orden, ejecutar múltiples comandos, generalmente para automatizar alguna tarea. Ejemplos de tareas son la realización de copias de seguridad, la comprobación del espacio libre, la rotación de ficheros de log, etc. Cuando estas tareas se realizan de forma periódica su ejecución además se suele automatizar utilizando cron. La shell Hay múltiples implementaciones de shell: Bourne shell (sh), Bourne-Again shell (bash), Debian Almquist shell (dash), C shell (csh), etc. En Ubuntu, sh era la shell por defecto para el arranque del sistema, aunque desde hace años esa labor ha pasado a manos de dash (para minimizar los cambios, ahora en Ubuntu /bin/sh es un enlace simbólico a dash). Para los usuarios, la shell por defecto es bash (la shell de inicio de un usuario concreto se encuentra en /etc/passwd). Para saber qué shell se está usando (ya sea en un terminal, ya sea en un script) se puede consultar la variable de entorno $SHELL
     Like  Bookmark
  • El sistema de adquisión de datos de NEMO registra todas las lecturas en una base de datos relacional de tipo sqlite3. En esa base de datos existe una única tabla denominada, por motivos históricos, binTable. La estructura de definición de datos (DDL) de esa tabla, también por motivos históricos, tiene el siguiente formato: CREATE TABLE IF NOT EXISTS 'binTable' ( 'start_date_time' datetime NOT NULL, 'ch01' int(11) DEFAULT NULL, 'ch02' int(11) DEFAULT NULL, 'ch03' int(11) DEFAULT NULL, 'ch04' int(11) DEFAULT NULL,
     Like  Bookmark
  • i2flow: flujos de GIT en i2TIC slide: https://Aqui.ira.el.link Taller: https://hackmd.io/4VGrCeNpTriea5gEXHqMlA Haremos un taller todos juntos. Ten preparado tu portátil!
     Like  Bookmark