Sistema Operativo y Sistema en Python

PythonPythonBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Bienvenido al Laboratorio de Sistemas Operativos y Sistemas con Python, donde lo transportaremos a un futuro scenario de una colonia espacial. En esta era avanzada, la Tierra ha establecido un próspero asentamiento espacial en Marte, conocido como El Cuartel Ares. Tu papel es el de un pionero ciber-granjero, un miembro crítico de la colonia responsable de manejar los sistemas agrícolas automatizados del cuartel usando Python.

El objetivo de este laboratorio es crear robustos scripts de Python que interactúen con el sistema operativo para garantizar el funcionamiento sin problemas de la maquinaria agrícola y el software infraestructural subyacente. Realizarás tareas como la manipulación de archivos, el registro de datos y la automatización del sistema que son vitales para el sustento de la colonia. Entender la importancia de integrar Python con el sistema operativo para alcanzar objetivos del mundo real mientras se hace el scenario atractivo.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python/PythonStandardLibraryGroup -.-> python/os_system("Operating System and System") subgraph Lab Skills python/os_system -.-> lab-271578{{"Sistema Operativo y Sistema en Python"}} end

Configuración del Entorno

En este paso, configurarás tu entorno de proyecto, que es la base para nuestras operaciones de ciber-granja. Es esencial asegurar que las estructuras de directorios estén organizadas para mantener flujos de trabajo eficientes.

Abre un script de Python llamado ~/project/farm_operations/environment_check.py que verificará si todas las interfaces de maquinaria agrícola están en línea. Aquí hay una plantilla básica:

import os

def check_interfaces():
    print("Checking machinery interfaces...")
    ## Example check (In reality, you would replace this with checks specific to your system)
    os.system("ping -c 1 127.0.0.1")

if __name__ == "__main__":
    check_interfaces()

Ejecuta tu script desde la terminal:

python3 environment_check.py

Deberías ver una salida que indique que se están verificando las interfaces de maquinaria, como:

Checking machinery interfaces...
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.018 ms

--- 127.0.0.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.018/0.018/0.018/0.000 ms

Monitoreo del Sistema

Después de verificar las interfaces, es esencial monitorear el rendimiento del sistema para prevenir cualquier interrupción en las operaciones. Para esto, registraremos métricas importantes del sistema para asegurarnos de que todo funcione de manera óptima.

Abre un script de Python llamado system_monitor.py dentro de farm_operations:

import os

def system_monitor():
    print("Recording system metrics...")
    os.system("top -b -n 1 > system_metrics.log")

if __name__ == "__main__":
    system_monitor()

Este script ejecuta el comando top en modo batch para recopilar métricas del sistema y redirigirlas a un archivo de registro llamado system_metrics.log. Ejecuta el script:

$ python3 system_monitor.py
Recording system metrics...

Verifica el contenido de system_metrics.log para comprobar el registro exitoso de los datos del sistema:

$ cat system_metrics.log
top - 00:33:14 up 15 days, 14:22,  0 users,  load average: 0.04, 0.07, 0.10
Tasks:  16 total,   1 running,  15 sleeping,   0 stopped,   0 zombie
%Cpu(s):  6.2 us,  0.0 sy,  0.0 ni, 93.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   7802.7 total,    585.3 free,   3936.1 used,   3281.4 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   3555.6 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
    216 labex     20   0  657480  56304  38872 S   6.7   0.7   0:00.63 node
      1 root      20   0   11200   3780   3508 S   0.0   0.0   0:00.02 init.sh
     21 root      20   0   40812  27976  10540 S   0.0   0.4   0:00.22 supervisord
     22 root      20   0   15420   9396   7760 S   0.0   0.1   0:00.01 sshd
     23 labex     20   0    2632    972    880 S   0.0   0.0   0:00.00 dumb-init
     24 labex     20   0  721668  63708  38596 S   0.0   0.8   0:00.56 node
     41 labex     20   0  951088 106276  41152 S   0.0   1.3   0:06.74 node
    167 labex     20   0  994340 134536  41504 S   0.0   1.7   0:07.99 node
    189 labex     20   0  848976  51504  38352 S   0.0   0.6   0:00.18 node
    233 labex     20   0   14392   6488   4604 S   0.0   0.1   0:00.37 zsh
    403 labex     20   0  377336  70216  11228 S   0.0   0.9   0:02.21 python
    430 labex     20   0   38268  25560   9832 S   0.0   0.3   0:00.17 python
    435 labex     20   0   14396   6588   4652 S   0.0   0.1   0:00.17 zsh
    863 labex     20   0   21156   9408   6076 S   0.0   0.1   0:00.01 python
    864 labex     20   0   11200   3652   3388 S   0.0   0.0   0:00.00 sh
    865 labex     20   0   14176   3576   3220 R   0.0   0.0   0:00.00 top

Verás una salida similar al comando top dentro de la terminal.

Resumen

En este laboratorio, navegamos por un escenario donde el módulo os_system de Python tuvo un papel crucial en la administración de las operaciones agrícolas de una colonia espacial. Comenzando con la configuración del entorno hasta el monitoreo del sistema, el objetivo del laboratorio fue impartir habilidades prácticas en la creación de scripts que manipulan e interactúan con el sistema operativo. Al diseñar este laboratorio de manera integral, hice hincapié en la importancia de Python en aplicaciones del mundo real y tuve como objetivo brindar una experiencia de aprendizaje atractiva para los principiantes. Presenciar a los aprendices convertir estos escenarios en código funcional produce una sensación de logro gratificante.