Você está na página 1de 4

Ctedra 1:Sistemas operativos

Sede Providencia // NRC 4191


Soluciones CAT1

Parte 1:
Ejercicio1:
Proceso: es ms que un programa en ejecucin que debe tener un progreso secuencial.
Programa es una entidad pasiva almacenada en disco (archivo ejecutable),mientras que un proceso es activo.
Un programa llega a ser un proceso cuando se carga su archivo ejecutable en memoria.
La ejecucin de un programa puede venir dada mediante una GUI, lnea de comandos, etc.
Un programa puede tener diferentes procesos -> varios usuarios utilizando el mismo programa.

=>Rbrica:

1 Punto si todo contestado correctamente.


0.75 diagrama y explicacin estados.
0.25 proceso y programa
0 en cada parte que no conteste debidamente.

Ejercicio2:
Diferencia entre Concurrencia y Paralelismo.
=> Rbrica:
1

- 0.75 si explica bien la respuesta.


- 0.50 si explica alguno de los dos conceptos.
- 0.25 si contesta de forma insuficiente
- 0 Si no explica

Parte 2:
Ejercicio1: (2.25 Puntos)
=> Rbrica:
*
*
*
*

2.25 =
1.50 =
0.25 =
0 = Si

Implementacin y salida correctas.


Salida incorrecta pero algoritmo bien implementado.
Si la implementacin es incompleta.
la implementacin es insuficiente o inexistente.

import java.io.*;
import java.util.Scanner;
class Ejercicio111 {
void findApacheUser(){
String user = "www-data";
String str;
try{
BufferedReader br = new BufferedReader(new FileReader("/etc/passwd"));

try{
String line = br.readLine();
while (line != null){
String[] ar =line.split(":");
if (ar[0].equals(user)) {
System.out.println("Existe: " + user + " home: " + ar[5] + "; Pid: "+ar[2]);
}
line = br.readLine();
}
br.close();
}catch(IOException ex){
ex.printStackTrace();
}
}catch(FileNotFoundException ex){
ex.printStackTrace();
}
}
public static void main(String[] args){
Ejercicio111 p = new Ejercicio111();
p.findApacheUser();
}
}
Ejercicio2 (3 Puntos)
=> Rbrica:
*
*
*
*
*

3 = implementa los dos hilos y se ejecutan correctamente.


2.5 = si implementa los dos hilos pero no se ejecuta correctamente.
2 = si implementa un hilo y el main.
0.25 = Si la implementacin es incompleta.
0 = Si la implementacin es muy insuficiente o inexistente.

import java.io.*;
import java.util.Scanner;
class Ejercicio22 extends Thread {
public void run() {
String str = getName();
if (str.equals("HiloUno")) {

try{
System.out.println("Soy hilo : "+getName() + "\n"+"Visualizacion del passwd:\n");

Process p = Runtime.getRuntime().exec("cat /etc/hosts");


Scanner sc = new Scanner(p.getInputStream());
while (sc.hasNext())
System.out.println(sc.nextLine());
}catch(IOException ex){
ex.printStackTrace();
}
}
else if (str.equals("HiloDos")) {
for (int i = 10; i > 0; i --){
System.out.println("Soy hilo : "+getName()+ " "+i);
}
}

}
public static void main(String[] args){
Thread t1 = new Ejercicio22();
Thread t2 = new Ejercicio22();
t2.setName("HiloUno");
t1.setName("HiloDos");
try{
t1.start();
t1.join();
t2.start();
t1.join();
}catch(InterruptedException ex){
ex.printStackTrace();
}
}
}

Você também pode gostar