Escuchar "Episodio 02 - 2021 - 01 - Revisión de lo visto en la clase Sist. Operativos 2021-03-19 - API de Procesos"
Síntesis del Episodio
En la clase anterior estuvimos revisando algunos conceptos relacionados a los sistemas operativos y que correspondían a la parte final del capítulo 2 del libro:
Se mencionó que es proceso
Abstracción para hacer uso de la CPU
Un programa en ejecución
Se habló del gestor de memoria
Encargado de asociar direcciones de memoria virtual a memoria física
Asignar memoria a los procesos y proteger de accesos ilegales a esta ejemplo: un proceso 1 tratando de acceder a una región de memoria del proceso 2.
Se mencionó el tipo de kernel llamado microkernel el cual es una forma diferente de implementar el kernel y donde funcionalidades básicas residen como aplicaciones del sistema operativo: drivers de dispositivos, servidor de archivos, entre otros servicios.
Se tocó el tema de los hilos de ejecución e identificando que estos son abstracciones naturales que facilitan la paralelización de código y usan eficientemente los múltiples núcleos de nuestros dispositivos electrónicos: desde celulares hasta computadoras de escritorio.
Después de estos grandes temas se habló de los APIs de procesos. Los APIs o Ei-Pi-Ais que traducen interfaces de programación de aplicaciones son puertas de acceso a servicios ofrecidos, en este caso, por el sistema operativo. Es decir, los APIs permiten fácilmente a un programador el uso a funciones provistas por el sistema operativo u otros aplicativos de modo que se construyan aplicaciones más sofisticadas y ocultando al programador complejidades internas de algún tipo de aplicativo o incluso hardware. Ejemplos de APIs están
CUDA - “It allows software developers and software engineers to use a CUDA-enabled graphics processing unit (GPU) for general purpose processing”
Google Spreadsheet API - permite el acceso, gestión de hojas de cálculo y gestión de los datos al interior de estas.
API de VirtualBox - permite la gestión de máquinas virtuales
Comenzamos a ver el API de procesos, en particular, vimos la función fork(). La función fork() permite la creación de un nuevo proceso “exactamente” igual al proceso que invocó la función. Esta función devuelve un “entero” que puede tener tres valores:
Negativo, la función falló en su ejecución
Cero, quien está ejecutando esa parte del código es el nuevo proceso creado
Positivo, es el proceso que invocó la función fork().
Vimos un par de programas para ejemplificar el uso de esta función.
--- interlude
En nuestra próxima clase hablaremos acerca de otras funciones en el API de procesos como el wait(), varias funciones de la familia execv(), veremos como redireccionar la salida de un proceso a un archivo y veremos un primer acercamiento a una tarea de programación que consiste en el desarrollo de un shell primario.
Se mencionó que es proceso
Abstracción para hacer uso de la CPU
Un programa en ejecución
Se habló del gestor de memoria
Encargado de asociar direcciones de memoria virtual a memoria física
Asignar memoria a los procesos y proteger de accesos ilegales a esta ejemplo: un proceso 1 tratando de acceder a una región de memoria del proceso 2.
Se mencionó el tipo de kernel llamado microkernel el cual es una forma diferente de implementar el kernel y donde funcionalidades básicas residen como aplicaciones del sistema operativo: drivers de dispositivos, servidor de archivos, entre otros servicios.
Se tocó el tema de los hilos de ejecución e identificando que estos son abstracciones naturales que facilitan la paralelización de código y usan eficientemente los múltiples núcleos de nuestros dispositivos electrónicos: desde celulares hasta computadoras de escritorio.
Después de estos grandes temas se habló de los APIs de procesos. Los APIs o Ei-Pi-Ais que traducen interfaces de programación de aplicaciones son puertas de acceso a servicios ofrecidos, en este caso, por el sistema operativo. Es decir, los APIs permiten fácilmente a un programador el uso a funciones provistas por el sistema operativo u otros aplicativos de modo que se construyan aplicaciones más sofisticadas y ocultando al programador complejidades internas de algún tipo de aplicativo o incluso hardware. Ejemplos de APIs están
CUDA - “It allows software developers and software engineers to use a CUDA-enabled graphics processing unit (GPU) for general purpose processing”
Google Spreadsheet API - permite el acceso, gestión de hojas de cálculo y gestión de los datos al interior de estas.
API de VirtualBox - permite la gestión de máquinas virtuales
Comenzamos a ver el API de procesos, en particular, vimos la función fork(). La función fork() permite la creación de un nuevo proceso “exactamente” igual al proceso que invocó la función. Esta función devuelve un “entero” que puede tener tres valores:
Negativo, la función falló en su ejecución
Cero, quien está ejecutando esa parte del código es el nuevo proceso creado
Positivo, es el proceso que invocó la función fork().
Vimos un par de programas para ejemplificar el uso de esta función.
--- interlude
En nuestra próxima clase hablaremos acerca de otras funciones en el API de procesos como el wait(), varias funciones de la familia execv(), veremos como redireccionar la salida de un proceso a un archivo y veremos un primer acercamiento a una tarea de programación que consiste en el desarrollo de un shell primario.
Más episodios del podcast Cursos en Infraestructura Computacional
ZRam
25/03/2021