Sie sind auf Seite 1von 12

UNIVERSIDAD ANDINA DEL CUSCO

FACULTAD DE INGENIERÍA Y ARQUITECTURA


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS

PROYECTO DE RESPONSABILIDAD SOCIAL

GLOSARIO DE INSTRUCCIONES EN LA PROGRAMACIÓN EN C

ASIGNATURA: Sistemas Operativos

DOCENTE: Ing. Palomino Olivera, Emilio

ESTUDIANTE: Maldonado Infantas, Jusit

CUSCO – PERÚ
2019
PRESENTACIÓN

El presente proyecto es un glosario de instrucciones en la programación en C, realizado en cesiones


de clase de Sistemas Operativos. Contiene términos o instrucciones de cada linea de código de los
temas avanzados en clase, como ya ha sido mencionado y con su interpretación de cada instrucción.
Los temas realizados son: Gestión de procesos, Gestión de hilos, Gestión de seniales y
Concurrencia.

Las instrucciones mencionados a continuación son explícitamente para una retroalimentación, para
aprender y comprender el funcionamiento de cada linea de código.

2
GLOSARIO DE TÉRMINOS SOBRE
(LENGUAJE DE PROGRAMACIÓN C)

GESTIÓN DE PROCESOS:

Librerías:
include: (Todas las librerías son declaradas con el preprocesador #include).
Ejemplo: #include <stdio.h>

stdio.h: Librería que contiene tipos, macros y funciones para la realización de tareas de E/
S. Ejemplo: #include <stdio.h>

stdlib.h: Librería que contiene tipos, macros y funciones para la conversión numérica, g
eneración de números aleatorios, búsquedas y ordenación, gestión de memoria y tareas
similares. Ejemplo: #include <stdlib.h>

sys/types.h: Librería que contiene funciones de búsqueda y ordenamiento de directorios


y manipulación de archivos. Ejemplo: #include <sys/types.h>

argv[]: #include <stdio.h> Es un arreglo que contiene todos los parámetros recibidos.
argc:#include <stdio.h> Cantidad de parámetros contando el nombre del ejecutable que es el
primer parámetro.
Ejemplo: int main (int argc, char * argv []) El nombre de la variable argc significa "conteo de
argumentos", argc contiene el número de argumentos pasados al programa. El nombre de la
variable argv significa "vector de argumento". Un vector es una matriz unidimensional, y argv es
una matriz unidimensional de cadenas. Cada cadena es uno de los argumentos que se pasaron al
programa

3
break: #include <stdio.h> Tiene dos usos: para finalizar un case en una sentencia switch y para
forzar la terminación inmediata de un bucle.

char: #include <stdio.h> Es un tipo de dato que hace referencia a caracteres, los cuales se
almacenan como números enteros acorde a la tabla ASCII.

char *nombre: #include <stdio.h> (Un puntero es una variable que contiene una dirección de
memoria) donde Char es cualquier tipo valido en este caso es una cadena y nombre es el nombre de
la variable puntero.

char **var: #include <stdio.h> (Indirección múltiple o punteros a punteros) se puede hacer que un
puntero apunte a otro puntero que apunte a un valor de destino. Donde var es un puntero que apunta
a un puntero de tipo Char.

extern: #include <stdio.h> Es el tiempo de ejecución del programa donde el objeto existe en la
memoria, informa al enlazador de programas para que realice las unificaciones pertinentes entre
ficheros.

extern char **environ: #include <stdio.h> La variable environ apunta a una serie de punteros a
cadenas llamadas el environ". (Esta variable debe ser declarada en el programa de usuario, pero es
declarado en el archivo de encabezado <unistd.h> si la característica _GNU_SOURCE se define la
macro de prueba).

fork: #include <sys / types.h> Es una función que al momento de la ejecución crea un proceso hijo
que se diferencia de su creador únicamente por su PID.

getpid: #include <sys / types.h> #include <unistd.h> Devuelve el ID de proceso (PID) del proceso
de llamada. (Esta a menudo es usado por rutinas que generan nombres de archivos temporales
únicos.)

getppid: #include <sys / types.h> #include <unistd.h> Es una función que devuelve el
identificador de procesos del padre del procesos actual.

4
getuid: #include <sys / types.h> #include <unistd.h> Es una función que devuelve la identidad del
usuario.

getenv: #include <Stdlib.h> Esta función devuelve una cadena terminada en nulo con el valor de la
variable solicitada.

null: #include <stdio.h> Constante de puntero nulo (Se iguala a NULL para saber que no tiene
asignada ninguna dirección de memoria).

pid_t: #include <sys / types.h> #include <unistd.h> Es una identificador de procesos.

return: #include <stdio.h> Se usa para volver de una función, es decir al punto en que se hizo la
llamada a la función.

GESTIÓN DE HILOS:
Librerías:
include: (Todas las librerías son declaradas con el preprocesador #include).
Ejemplo: #include <stdio.h>

stdio.h: Librería que contiene tipos, macros y funciones para la realización de tareas de
E/S. Ejemplo: #include <stdio.h>

pthread.h: Define un conjunto de tipos de lenguaje de programación C , funciones y


constantes. Ejemplo: #include <pthread.h>

stdlib.h: Librería que contiene tipos, macros y funciones para la conversión numérica, g
eneración de números aleatorios, búsquedas y ordenación, gestión de memoria y tareas
similares. Ejemplo: #include <stdlib.h>

fputc():#include <stdio.h> Es una función de manejo de archivos en lenguaje de programación C


que se utiliza para escribir un carácter en un archivo. Declaración: int fputc (int char, FILE * fp)
Ejemplo: fputc (ch, fp);
donde:

5
ch - valor del carácter
fp - puntero a archivo

pthread_exit(): #include <pthread.h> Termina el subproceso de llamada y hace que el valor de la


funcion esté disponible para cualquier unión exitosa con el subproceso de terminación. Ejemplo:
pthread_exit(0);

pthread_t: #include <pthread.h> Es un tipo similar inty se crea cuando lo define, no cuando llama.
Ejemplo: pthread_t x; donde: x es una variable.

pthread_create(): #include <pthread.h> Es una función que utiliza para crear un nuevo hilo, con
atributos especificado. Ejemplo: pthread_create(pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine)(void*), void *arg) dentro de un proceso. Si attr es NULL, se utilizan los
atributos predeterminados. Si los atributos especificados por attr se modifican más tarde, los
atributos del hilo no se ven afectados. Al completarse con éxito, pthread_create () almacena el ID
del hilo creado en la ubicación a la que hace referencia el hilo .

pthread_join(): #include <pthread.h> Es una función que proporciona un mecanismo simple que
permite que una aplicación espere a que un hilo termine. Ejemplo: después de que devuelve
pthread_join (), se puede reclamar cualquier almacenamiento de pila proporcionado por la
aplicación.

struct: #include <stdio.h> Una estructura se utiliza para almacenar los diferentes tipos de datos y
cada dato (miembro de la estructura) tiene su propia memoria independiente, lo que significa que
podemos acceder a cualquier miembro en cualquier momento. Ejemplo: struct [nombre de la
estructura] {lista de miembros}; donde: Parámetros del nombre de la estructura El nombre de tipo
se le dio a la estructura. Lista de miembros Miembros que la estructura puede contener.

GESTIÓN DE SENIALES:
Librerías:
include: (Todas las librerías son declaradas con el preprocesador #include).
Ejemplo: #include <stdio.h>

6
signal.h: La libreria <signal.h> definirá las siguientes constantes simbólicas, cada una
de las cuales se expande a una expresión constante distinta del tipo: nulo (*) (int)
cuyo valor no coincide con ninguna función declarable.

SIG_DFL: Solicitud de manejo de señal por defecto.


SIG_ERR: Devuelva el valor de la señal () en caso de error.
SIG_HOLD [ CX ] [Opción Inicio]: Solicita que se mantenga la señal.[Fin de la
opción]
SIG_IGN: Solicitar que la señal sea ignorada.

stdio.h: Librería que contiene tipos, macros y funciones para la realización de tareas de
E/S. Ejemplo: #include <stdio.h>

stdbool.h: La librería <stdbool.h> contiene cuatro macros para un tipo de datos


booleano. Las macros definidas en la norma ISO C son:
 bool que se expande a _Bool
 true que se expande a 1
 false que se expande a 0
 _bool_true_false_are_defined que se expande a 1

pthread.h: Define un conjunto de tipos de lenguaje de programación C , funciones y


constantes. Ejemplo: #include <pthread.h>

static void(): #include <signal.h> Static significa que el método está asociado con la clase, no con
una instancia específica (objeto) de esa clase. Esto significa que puede llamar a un método estático
sin crear un objeto de la clase.
Void significa que el método no tiene valor de retorno. Si el método retornara int y escribirías en int
lugar de void.

pthread_exit(): #include <pthread.h> Termina el subproceso de llamada y hace que el valor de la


funcion esté disponible para cualquier unión exitosa con el subproceso de terminación. Ejemplo:
pthread_exit(0);

7
pthread_t: #include <pthread.h> Es un tipo similar inty se crea cuando lo define, no cuando llama.
Ejemplo: pthread_t x; donde: x es una variable.

pthread_create(): #include <pthread.h> Es una función que utiliza para crear un nuevo hilo, con
atributos especificado. Ejemplo: pthread_create(pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine)(void*), void *arg) dentro de un proceso. Si attr es NULL, se utilizan los
atributos predeterminados. Si los atributos especificados por attr se modifican más tarde, los
atributos del hilo no se ven afectados. Al completarse con éxito, pthread_create () almacena el ID
del hilo creado en la ubicación a la que hace referencia el hilo .

pthread_join(): #include <pthread.h> Es una función que proporciona un mecanismo simple que
permite que una aplicación espere a que un hilo termine. Ejemplo: después de que devuelve
pthread_join (), se puede reclamar cualquier almacenamiento de pila proporcionado por la
aplicación.

struct: #include <stdio.h> Una estructura se utiliza para almacenar los diferentes tipos de datos y
cada dato (miembro de la estructura) tiene su propia memoria independiente, lo que significa que
podemos acceder a cualquier miembro en cualquier momento. Ejemplo: struct [nombre de la
estructura] {lista de miembros}; donde: Parámetros del nombre de la estructura El nombre de tipo
se le dio a la estructura. Lista de miembros Miembros que la estructura puede contener.

getpid: #include <sys / types.h> #include <unistd.h> Devuelve el ID de proceso (PID) del proceso
de llamada. (Esta a menudo es usado por rutinas que generan nombres de archivos temporales
únicos.)

getpid: #include <sys / types.h> #include <unistd.h> Devuelve el ID de proceso (PID) del proceso
de llamada. (Esta a menudo es usado por rutinas que generan nombres de archivos temporales
únicos.)

CONCURRENCIA:
Librerías:
include: (Todas las librerías son declaradas con el preprocesador #include).
Ejemplo: #include <stdio.h>

8
stdio.h: Librería que contiene tipos, macros y funciones para la realización de tareas de
E/S. Ejemplo: #include <stdio.h>

pthread.h: Define un conjunto de tipos de lenguaje de programación C , funciones y


constantes. Ejemplo: #include <pthread.h>

semaphore.h: El encabezado definirá el tipo sem_t , que se utiliza para realizar operaciones
de semáforo. El semáforo se puede implementar utilizando un descriptor de archivos, en
cuyo caso las aplicaciones pueden abrir al menos un total de {OPEN_MAX} archivos y
semáforos. El símbolo SEM_FAILED se definirá Ejemplo: #include <semaphore.h>
Lo siguiente se declarará como funciones y también se puede definir como macros. Se
proporcionarán prototipos de funciones.

int sem_close (sem_t *);


int sem_destroy (sem_t *);
int sem_getvalue (sem_t * restrict, int * restrict);
int sem_init (sem_t *, int, unsigned);
sem_t * sem_open (const char *, int, ...);
int sem_post (sem_t *);
int sem_timedwait (sem_t * restrict, const struct timespec * restrict);
int sem_trywait (sem_t *);
int sem_unlink (const char *);
int sem_wait (sem_t *);

La inclusión del encabezado <semaphore.h> puede hacer que los símbolos visibles se
definan en los encabezados <fcntl.h> y <time.h> .

string.h: Libreria que contiene definiciones de macros, constantes y declaraciones de


funciones y tipos para manipular matrices de caracteres. Todas las funciones incorporadas de
C se declaran en el archivo de cabecera string.h. El tipo de variable de biblioteca definido en
la cadena del encabezado .h es size_t. Este es el tipo integral sin signo y es el resultado de la
palabra clave sizeof. Ejemplo: #include <string.h>

9
BUFSIZE: #include <stdio.h> Es una macro constante que representa el tamaño del búfer de
entrada. Se define en stdio.h y representa el tamaño de su implementación de C. Un tamaño común
es 512. Nos da el número máximo de caracteres que se pueden transferir a través de nuestro flujo de
entrada estándar, stdin. Ejemplo: #define BUFSIZE 5.

pthread_exit(): #include <pthread.h> Termina el subproceso de llamada y hace que el valor de la


funcion esté disponible para cualquier unión exitosa con el subproceso de terminación. Ejemplo:
pthread_exit(0);

pthread_create(): #include <pthread.h> Es una función que utiliza para crear un nuevo hilo, con
atributos especificado. Ejemplo: pthread_create(pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine)(void*), void *arg) dentro de un proceso. Si attr es NULL, se utilizan los
atributos predeterminados. Si los atributos especificados por attr se modifican más tarde, los
atributos del hilo no se ven afectados. Al completarse con éxito, pthread_create () almacena el ID
del hilo creado en la ubicación a la que hace referencia el hilo .

pthread_join(): #include <pthread.h> Es una función que proporciona un mecanismo simple que
permite que una aplicación espere a que un hilo termine. Ejemplo: después de que devuelve
pthread_join (), se puede reclamar cualquier almacenamiento de pila proporcionado por la
aplicación.

sem_t: #include <semaphore.h> sem_t será específico del sistema operativo, al igual que las
llamadas de señal / espera, ya que también necesariamente llaman al núcleo del sistema operativo.

sem_wait: #include <semaphore.h> La función sem_wait () bloqueará el semáforo al que hace


referencia sem realizando una operación de bloqueo de semáforo. Si el valor del semáforo es
actualmente cero, el subproceso que llama no regresará de la llamada a sem_wait () hasta que
bloquee el semáforo o la llamada sea interrumpida por una señal. La función sem_wait () es
interrumpible por la entrega de una señal.

sem_post: #include <semaphore.h> La función sem_post () desbloqueará el semáforo al que hace


referencia sem realizando una operación de desbloqueo de semáforo en ese semáforo. Si el valor del

10
semáforo resultante de esta operación es positivo, entonces no se bloquearon subprocesos esperando
a que el semáforo se desbloquee; el valor del semáforo simplemente se incrementa.

sem_init: #include <semaphore.h> La función sem_init () inicializará el semáforo sin nombre al


que se refiere sem . El valor del semáforo inicializado será valor . Después de una llamada exitosa a
sem_init (), el semáforo se puede usar en llamadas subsiguientes a sem_wait () , [ TMO ] [Opción
Inicio] sem_timedwait () , [Fin de la opción] sem_trywait () , sem_post () y sem_destroy () . Este
semáforo permanecerá utilizable hasta que el semáforo sea destruido. Si el argumento pshared tiene
un valor distinto de cero, entonces el semáforo se comparte entre procesos; en este caso, cualquier
proceso que pueda acceder al semáforo sem puede usar sem para realizar las operaciones sem_wait
() , [ TMO ] [Opción Inicio] sem_timedwait () , [Fin de la opción] sem_trywait () , sem_post () y
sem_destroy (). Solo sem se puede usar para realizar la sincronización. El resultado de referirse a
copias

void * (void *arg): #include <stdio.h> Es puntero general que pasa a la función, se utiliza
principalmente en las devoluciones de llamada, cuando se proporciona la biblioteca con la dirección
de CB y alguna dirección de contexto. La biblioteca no necesita saber el tipo de datos, por lo que el
puntero se almacena como vacío * y se entrega al CB, cuando se le llama desde el código de la
biblioteca, el CB, que forma parte del código de la aplicación, sabe exactamente cuál es el tipo de
datos pasado como un contexto y podría lanzar el puntero en consecuencia.

11
Bibliografía:
1. Mejía, M. J. P. (2004). C y C++ de afán. Universidad de
Antioquia.https://books.google.com.pe/bookshl=es&lr=&id=E1CMxC4KKSYC&oi=fnd&p
g=PR11&dq=Mej%C3%Ada,+M.+J.+P.+(2004).%C2%A0C+y+C%2B%2B+de+af
%C3%A1n+.Universidad+de+Antioquia.&ots=r0bw1K1vpi&sig=4hSsuNyexmZCDu13Z9
CN1T9-X0I#v=onepage&q&f=false
2. Orallo, E. H., Orallo, J. H., & Lizandra, M. C. J. (2001). C++ estándar. Editorial
Paraninfo.https://books.google.com.pe/bookshl=es&lr=&id=sjxQIhrMCegC&oi=fnd&pg=P
P1&dq=Orallo,+E.+H.,+Orallo,+J.+H.,+%26+Lizandra,+M.+C.+J.+(2001).%C2%A0C%2B
%2B+est%C3%A1ndar.
+Editorial+Paraninfo.&ots=xT2HWEVF5C&sig=ooT4OVKm54v3vAkul1Bi3RuUojg#v=o
nepage&q&f=false
3. Wagner, T., & Towsley, D. (1995). Getting started with posix threads. University of
Massachusetts at Amherst.
https://profs.info.uaic.ro/~busaco/teach/courses/net/docs/pthreads.pdf
4. WIKIBOOKS, (2018). C Programming/string.h
https://en.wikibooks.org/wiki/C_Programming/string.h

12

Das könnte Ihnen auch gefallen