Академический Документы
Профессиональный Документы
Культура Документы
Autónoma de Puebla
Sistemas Operativos 1
04/09/2020
Programa 1
. Dado dos vectores(v1,v2) con 3 componentes, realizar las siguientes operaciones:
Código Fuente
#include<unistd.h> //Fork
#include<sys/types.h> //Fork
#include<math.h>
#include<stdio.h> //print y scan
#include<stdlib.h> //exit
int main(){
int j=0,aux=0;
int v1[3]={1,2,3};
int v2[3]={3,2,1};
int v3[3]={0,0,0};
switch(fork() ){
case -1:
perror("Error al crear procesos");
exit(-1);
break;
int main(){
int i=0,cont=0;
char *p,a,b[30]={"Esta es la segunda tarea"};
printf("\nLa oracion es \n%s",b);
printf("\nInserte el caracter con el que deseas trabajar\n");
scanf("%c",&a);
switch(fork() ){
case -1:
perror("Error al crear procesos");
exit(-1);
break;
case 0: /*Codigo del hijo */
printf("\nEste es el proceso hijo: \n");
i=0;
while(b[i]!='\0'){
if(b[i]==a){
p=&b[i];
*p=' ';
}
i++;
}
printf("%s\n",b);
break;
}
}
Programa 3
Dado un archivo de texto (t1) realizar la siguiente tarea Proceso padre: a. Lectura del t1 y mostrar
en la pantalla Proceso hijo b. Escritura de una cadena en t1 y mostrar el resultado en pantalla
Código Fuente
#include<unistd.h> //Fork
#include<stdio.h> //print y scan
#include<stdlib.h> //exit
int main(){
pid_t pid;
FILE *f;
char aux;
char aux2;
char *cadena;
printf("---Proceso pid = %d comienza---\n",getpid());
pid= fork();
if(pid>0){
while(aux!=EOF){
aux=fgetc(f);
printf("%c",aux);
}
fclose(f);
}else if (pid==0){
printf("Soy proceso hijo\n");
f=fopen("Archivo.txt","a");
if(f==NULL){
printf("no se ha podido abrir el fichero \n");
exit(1);
}
}
fclose(f); }
else{
printf("error en los procesos\n");
}
return 0;
}
Programa 4
Dado dos vectores (v1,v2) con 3 componentes, realizar las siguientes operaciones Proceso padre:
a. Calcula el producto cruz V3=v1xv2
Proceso hijo: b. Calcula el producto punto v=v1•v2
Código Fuente
#include<unistd.h> //Fork
#include<sys/types.h> //Fork
#include<math.h>
#include<stdio.h> //print y scan
#include<stdlib.h> //exit
int main(){
int v1[3]={1,3,2};
int v2[3]={2,0,5};
int v3[3]={0,0,0};
int a=0,b=0,c=0;
switch(fork() ){
case -1:
perror("Error al crear procesos");
exit(-1);
break;
case 0: /*Codigo del hijo */
printf("\nEste es el proceso hijo: \n");
printf("Producto Punto: \n");
for (b=0;b<3;b++){
v3[b]=v2[b]*v1[b];
a=a+v3[b];
}
printf("El resultado es %d\n",a);
break;
}
Video de Youtube
https://youtu.be/GNgnXbDPHbU