"debut TD0"

This commit is contained in:
JunkJumper
2020-09-04 10:27:13 +02:00
parent ac93b9b2af
commit cf00c53e65
88 changed files with 85 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
///************************************************/
///* imprimer : Ce programme illustre le principe */
///* du partage de temps de LINUX ... */
/**************************************************/
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <assert.h>
void imprimer (int unNombre, char unCar)
{
int i;
for (i=0; i<unNombre; i++) printf ("%c", unCar);
}
int main(int argc, char *argv[])
{
int nb, res;
assert (argc == 2);
nb = atoi (argv[1]);
res = fork();
if (res == -1)
{
perror ("fork");
exit (1);
}
if (res == 0)
{
imprimer (nb, '/');
return 0;
}
else
{
imprimer (nb, '*');
return 0;
}
}

View File

@@ -0,0 +1,37 @@
///***************************************************/
///* s_critique : Ce programme illustre le blocage */
///* du partage de temps de LINUX avec un semaphore. */
///***************************************************/
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <assert.h>
void imprimer (int unNombre, char unCar)
{
int i;
for (i=0; i<unNombre; i++) printf ("%c", unCar);
}
int main(int argc, char *argv[])
{
/// FINIR ///
int nb, res;
assert (argc == 2);
nb = atoi (argv[1]);
res = fork();
if (res == -1)
{
perror ("fork");
exit (1);
}
if (res == 0)
{
imprimer (nb, '/');
return 0;
}
else
{
imprimer (nb, '*');
return 0;
}
}

View File

@@ -0,0 +1,28 @@
///******************************************************************/
///* IUT NICE-COTE D'AZUR - Departement INFORMATIQUE - R. CHIGNOLI */
///* Module M311 Theme IPC POSIX */
///******************************************************************/
///* shm_add.c : voir enonce */
///* UTILISATION : commande nom_segment */
///* Utiliser ls -l /dev/shm et rm /dev/shm/... */
///******************************************************************/
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/mman.h>
int main (int argc, char * argv[]) {
int fd;
int * compteur;
if (argc != 2) {
fprintf(stderr, "Syntaxe : %s nom_segment\n", argv[0]);
exit(EXIT_FAILURE);
}
///
/// A TERMINER ...
///
return EXIT_SUCCESS;
}

View File

@@ -0,0 +1,41 @@
//******************************************************************/
///* IUT NICE-COTE D'AZUR - Departement INFORMATIQUE - R. CHIGNOLI */
///* Module M311 Theme IPC POSIX */
///******************************************************************/
///* shm_create.c : creation d'un nouveau segment de memoire de la */
///* taille d'un entier et initialisation a zero */
///* UTILISATION : commande nom_segment */
///* Utiliser ls -l /dev/shm et rm /dev/shm/... */
///******************************************************************/
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/mman.h>
int main (int argc, char * argv[])
{
int fd;
int * compteur;
if (argc != 2) {
fprintf(stderr, "Syntaxe : %s nom_segment\n", argv[0]);
exit(EXIT_FAILURE);
}
fd = shm_open("applejack", O_CREAT | O_RDWR, 0777);
if(fd == -1) {
perror("shm_open");
exit(1);
}
///
/// A TERMINER
///
return EXIT_SUCCESS;
}

View File

@@ -0,0 +1,28 @@
//******************************************************************/
///* IUT NICE-COTE D'AZUR - Departement INFORMATIQUE - R. CHIGNOLI */
///* Module M311 Theme IPC POSIX */
///******************************************************************/
///* shm_excl.c : voir enonce */
///* UTILISATION : commande nom_segment */
///* Utiliser ls -l /dev/shm et rm /dev/shm/... */
///******************************************************************/
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/mman.h>
int main (int argc, char * argv[]) {
int fd;
int * compteur;
if (argc != 2) {
fprintf(stderr, "Syntaxe : %s nom_segment\n", argv[0]);
exit(EXIT_FAILURE);
}
///
/// A TERMINER
///
return EXIT_SUCCESS;
}

View File

@@ -0,0 +1,43 @@
///*************************************************************/
///* shm_sem : memoire partagee et semaphores */
///* SYNTAXE shm_sem */
///* */
///* a) le p<>re cr<63>e un fils avec fork */
///* b) le fils cr<63>e une nouvelle m<>moire partag<61>e pouvant */
///* contenir 10 caract<63>res */
///* c) le p<>re <20>crit <20> BONJOUR <20> dans cette m<>moire partag<61>e */
///* d) le fils affiche le contenu de la m<>moire partag<61>e */
///* */
///* Version initiale : avec shm mais sans sem */ */
///* Version finale : avec shm et avec sem */
///* */
///* NOTE : POUR SIMPLIFIER, le choix des noms pour les IPC */
///* est libre ...Les conflits eventuels doivent <20>tre d<>tectes */
///* et donne lieu <20> un message et l'arret du programme */
///*************************************************************/
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <assert.h>
int main(int argc)
{
/// FINIR ///
int res;
assert (argc == 1);
res = fork();
if (res == -1)
{
perror ("fork");
exit (1);
}
if (res == 0)
{
/// FINIR ///
return 0;
}
else
{
/// FINIR ///
return 0;
}
}