SlideShare una empresa de Scribd logo
1 de 9
Descargar para leer sin conexión
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Superior
           Universidad “Valle del Momboy”
                Valera, Estado Trujillo




     Informe de Sistemas Operativos




                                                             Alumno:
                                          Asdrúbal Iván Suárez Rivera
                                    Cédula de Identidad: 20.655.970
Para el informe se utilizó la distribución OpenSUSE. La cual está basada en
Linux.


Para el primer ejercicio se pide lo siguiente:

Genere un vector aleatorio de n elementos. Sume los elementos del mismo e
imprima el resultado de esta suma.

Podemos dividir el programa en 3 etapas:


   1. Entrada
   2. Proceso
   3. Salida


Para la Entrada tenemos:


   • N (Siendo “N” el tamaño del vector)


En cuanto al proceso tenemos:


   • Generación del vector de acuerdo al tamaño proporcionado
   • Suma de los elementos del mismo.


Para finalmente tener en la salida:


   •   Resultado de la suma
Para implementar el ejercicio se usó el siguiente código:


Archivo vector.cpp
#include <iostream>
#include <cstdlib>
long int sumar_vector(int *,size_t);
void generar_vector(int *,size_t);
void impr_vector(int *,size_t);

int main()
{
    size_t tamano;
    int *vectorcito;
    long int suma;
    std::cout<<"Tamaño del vector: ";
    std::cin>>tamano;
    vectorcito = new int[tamano];
    generar_vector(vectorcito,tamano);
    suma = sumar_vector(vectorcito,tamano);
    impr_vector(vectorcito,tamano);
    std::cout<<"La suma es: "<<suma<<'n';
    delete vectorcito;
    return 0;
}
long int sumar_vector(int *vector,size_t tam)
{
    long int ret_val = 0;
    for(int x=0;x<tam;x++)
        ret_val += vector[x];
    return ret_val;
}
void generar_vector(int *vector,size_t tam)
{
    for(int x=0;x<tam;x++)
        vector[x] = std::rand() % 100;
}
void impr_vector(int *vector,size_t tam)
{
    std::cout<<"Elementos del vectorn";
    for(int x=0;x<tam;x++)
        std::cout<<vector[x]<<"n";
}
Luego, se compiló usando el siguiente comando


g++ vector.cpp -g -o vector.out


Generando un ejecutable llamado “vector.out”.


Éste ejecutable se corre usando el comando


./vector.out


Generando la siguiente salida


[asdrubal@localhost sistemasoperativos]$ ./vector.out
Tamaño del vector: 5
Elementos del vector
83
86
77
15
93
La suma es: 354


Es de hacer notar que ésta salida puede ser distinta al correr otra vez el
programa. Ya que en el mismo se puede observar que hay generación de
números aleatorios.
Kernel

                                                                                    1
Actualmente OpenSUSE usa el kernel de Linux versión 3.4 . Esto se puede
comprobar usando el comando “uname -r”, dando como resultado:


[asdrubal@localhost sistemasoperativos]$ uname -r
3.4.25

¿Qué pasa al abrir cualquier programa?

En cónsola podemos abrir cualquier programa.


Supongamos que queremos abrir el editor vectorial “Inkscape”. Mediante la
cónsola ejecutamos:


[asdrubal@localhost sistemasoperativos]$ inkscape


Al presionar la tecla ENTER, éste de una vez se aparece, tal y como lo podemos
ver en la siguiente imagen:




1    
    http://es.opensuse.org/Caracter%C3%ADsticas_m%C3%A1s_destacadas_del_producto 
En el administrador de tareas se puede observar el proceso abierto:




Se pueden observar entre otras cosas el consumo de CPU, ID de proceso,
memoria virtual.


Al ejecutar en la cónsola


[asdrubal@localhost sistemasoperativos]$ gimp


Sucede algo similar, con la salvedad de que en este caso, no es “Inkscape”, sino
“Gimp” el programa a ejecutar.
En Linux se pueden usar varias maneras de ejecutar procesos. Una forma es por
                                                                                 2
cónsola, otra es mediante llamadas al sistema desde cualquier proceso padre .


Anteriormente vimos como era la carga de procesos por cónsola. Ahora bien, es
posible hacerlo también mediante llamadas desde lenguaje C usando librerías
que pertenecen al estándar POSIX.

                            3
Éstas llamadas son :


    • Fork: Para crear un proceso hijo a partir de uno padre.
    • Wait: Para esperar hasta el momento en el que un proceso externo le
        mande una señal al proceso que ha ejecutado ésta llamada.
    • Exit: Para salir del proceso.
    • Signal: Para llamar a otro proceso.
    • Kill: Para matar un proceso.


Es posible matar un proceso a través de cónsola, supóngase que se abre
“Inkscape” mediante los comandos ya mencionados anteriormente.


Podemos “matar” el proceso “Inkscape” (Suponiendo que el ID del proceso es
999) usando la siguiente llamada:


[asdrubal@localhost sistemasoperativos]$ kill 999


En caso de haber sido otro el ID del proceso, sencillamente se coloca este ID.




2   “Sistemas Operativos Modernos” Andrew Tanenbaum
3    
    http://www.softpanorama.org/Internals/unix_system_calls.shtml
                                                                 
Sistema de Archivos


OpenSUSE, al igual que otras distribuciones Linux usa el sistema de archivos
        4
ext4.

                       5
Según Wikipedia “Las principales mejoras son:


    •Soporte de volúmenes de hasta 1024 PiB.

    •Soporte añadido de extent.
    •Menor uso del CPU.
    •Mejoras en la velocidad de lectura y escritura.”


Intento de borrado del /home/


Al ejecutar:

[asdrubal@localhost sistemasoperativos]$ rm /home/


El sistema devuelve



Error al eliminar el archivo. Permiso denegado.


Esto debido a que /home/ pertenece a “root”.




4    
    https://ext4.wiki.kernel.org/index.php/Ext4_Howto#For_people_who_are_running_openSuSE 
5    
    http://es.wikipedia.org/wiki/Ext4 
Cambio de privilegios


Se está usando LXDE como administrador de ventanas. Es posible acceder al
administrador del sistema como root mediante el comando



[asdrubal@localhost sistemasoperativos]$ sudo lxtask


Se puede cambiar la prioridad de los procesos de la forma mostrada en la
imagen:

Más contenido relacionado

La actualidad más candente

La actualidad más candente (18)

Guia de procesos
Guia de procesosGuia de procesos
Guia de procesos
 
Guía Práctica II - Procesos
Guía Práctica II - ProcesosGuía Práctica II - Procesos
Guía Práctica II - Procesos
 
Test hecho por ader
Test hecho por aderTest hecho por ader
Test hecho por ader
 
Codigos de terminal linux
Codigos de terminal linuxCodigos de terminal linux
Codigos de terminal linux
 
Procesos linux
Procesos linuxProcesos linux
Procesos linux
 
Niveles de ejecución arranque y parada de los servicios
Niveles de ejecución arranque y parada de los serviciosNiveles de ejecución arranque y parada de los servicios
Niveles de ejecución arranque y parada de los servicios
 
Conexion servidor con Samba
Conexion servidor con SambaConexion servidor con Samba
Conexion servidor con Samba
 
Niveles de ejecución en debian
Niveles de ejecución en debianNiveles de ejecución en debian
Niveles de ejecución en debian
 
codigos
codigos codigos
codigos
 
Uso de hilos
Uso de hilosUso de hilos
Uso de hilos
 
Guía 2
Guía 2Guía 2
Guía 2
 
Trabajo resumido
Trabajo resumidoTrabajo resumido
Trabajo resumido
 
Actividad 3
Actividad 3Actividad 3
Actividad 3
 
CMD en Windows
CMD en WindowsCMD en Windows
CMD en Windows
 
Windows
WindowsWindows
Windows
 
Comandos de java
Comandos de javaComandos de java
Comandos de java
 
Ejercicio 1 y 2 proceso del sistema
Ejercicio 1 y 2 proceso del sistemaEjercicio 1 y 2 proceso del sistema
Ejercicio 1 y 2 proceso del sistema
 
Curso de Metasploit
Curso de MetasploitCurso de Metasploit
Curso de Metasploit
 

Destacado

Trabado de filosofia de 100ponts
Trabado de filosofia de 100pontsTrabado de filosofia de 100ponts
Trabado de filosofia de 100pontssarathrusta
 
Medios para evitar rompimientos de relaciones entre las naciones
Medios para evitar rompimientos de relaciones entre las nacionesMedios para evitar rompimientos de relaciones entre las naciones
Medios para evitar rompimientos de relaciones entre las nacionesAsdrúbal Suárez
 
Trabado de filosofia de 100ponts
Trabado de filosofia de 100pontsTrabado de filosofia de 100ponts
Trabado de filosofia de 100pontssarathrusta
 
Trabado de filosofia de 100ponts
Trabado de filosofia de 100pontsTrabado de filosofia de 100ponts
Trabado de filosofia de 100pontssarathrusta
 
Tejiendo Algoritmos - Leandro Rabindranath León
Tejiendo Algoritmos - Leandro Rabindranath  LeónTejiendo Algoritmos - Leandro Rabindranath  León
Tejiendo Algoritmos - Leandro Rabindranath LeónAsdrúbal Suárez
 
Articulo cientifico de filosofia del conocimiento
Articulo cientifico de filosofia del conocimientoArticulo cientifico de filosofia del conocimiento
Articulo cientifico de filosofia del conocimientosarathrusta
 
Grafos bipartitos y subgrafos
Grafos bipartitos y subgrafosGrafos bipartitos y subgrafos
Grafos bipartitos y subgrafosAsdrúbal Suárez
 
Ley Orgánica de Educación (2009)
Ley Orgánica de Educación (2009)Ley Orgánica de Educación (2009)
Ley Orgánica de Educación (2009)Asdrúbal Suárez
 
Cómo se analiza un texto
Cómo se analiza un textoCómo se analiza un texto
Cómo se analiza un textopacoarenas
 
EL PROYECTO DE INVESTIGACION Fidias Arias
EL PROYECTO DE INVESTIGACION Fidias AriasEL PROYECTO DE INVESTIGACION Fidias Arias
EL PROYECTO DE INVESTIGACION Fidias AriasAsdrúbal Suárez
 
El Proceso De Investigacion Cientifica Mario Tamayo Y Tamayo[1]
El Proceso De Investigacion Cientifica   Mario Tamayo Y Tamayo[1]El Proceso De Investigacion Cientifica   Mario Tamayo Y Tamayo[1]
El Proceso De Investigacion Cientifica Mario Tamayo Y Tamayo[1]sarathrusta
 
EL PROYECTO DE INVESTIGACION -Arias Fidias
EL PROYECTO DE INVESTIGACION -Arias FidiasEL PROYECTO DE INVESTIGACION -Arias Fidias
EL PROYECTO DE INVESTIGACION -Arias FidiasAlexa' Ovalles
 

Destacado (13)

Trabado de filosofia de 100ponts
Trabado de filosofia de 100pontsTrabado de filosofia de 100ponts
Trabado de filosofia de 100ponts
 
Medios para evitar rompimientos de relaciones entre las naciones
Medios para evitar rompimientos de relaciones entre las nacionesMedios para evitar rompimientos de relaciones entre las naciones
Medios para evitar rompimientos de relaciones entre las naciones
 
Trabado de filosofia de 100ponts
Trabado de filosofia de 100pontsTrabado de filosofia de 100ponts
Trabado de filosofia de 100ponts
 
Trabado de filosofia de 100ponts
Trabado de filosofia de 100pontsTrabado de filosofia de 100ponts
Trabado de filosofia de 100ponts
 
Tejiendo Algoritmos - Leandro Rabindranath León
Tejiendo Algoritmos - Leandro Rabindranath  LeónTejiendo Algoritmos - Leandro Rabindranath  León
Tejiendo Algoritmos - Leandro Rabindranath León
 
Articulo cientifico de filosofia del conocimiento
Articulo cientifico de filosofia del conocimientoArticulo cientifico de filosofia del conocimiento
Articulo cientifico de filosofia del conocimiento
 
Grafos bipartitos y subgrafos
Grafos bipartitos y subgrafosGrafos bipartitos y subgrafos
Grafos bipartitos y subgrafos
 
Estructuras del ADN y ARN
Estructuras del ADN y ARNEstructuras del ADN y ARN
Estructuras del ADN y ARN
 
Ley Orgánica de Educación (2009)
Ley Orgánica de Educación (2009)Ley Orgánica de Educación (2009)
Ley Orgánica de Educación (2009)
 
Cómo se analiza un texto
Cómo se analiza un textoCómo se analiza un texto
Cómo se analiza un texto
 
EL PROYECTO DE INVESTIGACION Fidias Arias
EL PROYECTO DE INVESTIGACION Fidias AriasEL PROYECTO DE INVESTIGACION Fidias Arias
EL PROYECTO DE INVESTIGACION Fidias Arias
 
El Proceso De Investigacion Cientifica Mario Tamayo Y Tamayo[1]
El Proceso De Investigacion Cientifica   Mario Tamayo Y Tamayo[1]El Proceso De Investigacion Cientifica   Mario Tamayo Y Tamayo[1]
El Proceso De Investigacion Cientifica Mario Tamayo Y Tamayo[1]
 
EL PROYECTO DE INVESTIGACION -Arias Fidias
EL PROYECTO DE INVESTIGACION -Arias FidiasEL PROYECTO DE INVESTIGACION -Arias Fidias
EL PROYECTO DE INVESTIGACION -Arias Fidias
 

Similar a Trabajo de Sistemas Operativos.

Practica procesosy servicios
Practica procesosy serviciosPractica procesosy servicios
Practica procesosy serviciosCarlos Fontana
 
trabajo sistemas :
trabajo sistemas :trabajo sistemas :
trabajo sistemas :XAVIER MELO
 
Gnu linux programacion-de-sistemas
Gnu linux programacion-de-sistemasGnu linux programacion-de-sistemas
Gnu linux programacion-de-sistemasDiego Caceres
 
Tarea 3_individual_Nelis Rivero
Tarea 3_individual_Nelis RiveroTarea 3_individual_Nelis Rivero
Tarea 3_individual_Nelis RiveroNelisRivero
 
Conocimiento y gestión del s
Conocimiento y gestión del sConocimiento y gestión del s
Conocimiento y gestión del sMiriamEsteban
 
Curso de software03
Curso de software03Curso de software03
Curso de software03enriqueaco
 
Iv arquitectura del computador. ppt. (fase ii)
Iv arquitectura del computador. ppt. (fase ii)Iv arquitectura del computador. ppt. (fase ii)
Iv arquitectura del computador. ppt. (fase ii)diomarmedina2
 
Manual de hacking basico por taskkill#3
Manual de hacking basico por taskkill#3Manual de hacking basico por taskkill#3
Manual de hacking basico por taskkill#3Brat Stell
 
Administración y Comando Básicos
Administración y Comando BásicosAdministración y Comando Básicos
Administración y Comando BásicosAbrilRojasMedina
 
Conocimiento y gestión del s
Conocimiento y gestión del sConocimiento y gestión del s
Conocimiento y gestión del sAliciaEsteban
 

Similar a Trabajo de Sistemas Operativos. (20)

Curso básico linux
Curso básico linuxCurso básico linux
Curso básico linux
 
Practica procesosy servicios
Practica procesosy serviciosPractica procesosy servicios
Practica procesosy servicios
 
trabajo sistemas :
trabajo sistemas :trabajo sistemas :
trabajo sistemas :
 
Gnu linux programacion-de-sistemas
Gnu linux programacion-de-sistemasGnu linux programacion-de-sistemas
Gnu linux programacion-de-sistemas
 
Programaciongnulinux
ProgramaciongnulinuxProgramaciongnulinux
Programaciongnulinux
 
Ataque win xp
Ataque win xpAtaque win xp
Ataque win xp
 
Tarea 3_individual_Nelis Rivero
Tarea 3_individual_Nelis RiveroTarea 3_individual_Nelis Rivero
Tarea 3_individual_Nelis Rivero
 
SisOpera.pdf
SisOpera.pdfSisOpera.pdf
SisOpera.pdf
 
Ejercicios completos
Ejercicios completosEjercicios completos
Ejercicios completos
 
Ejercicios completos
Ejercicios completosEjercicios completos
Ejercicios completos
 
Conocimiento y gestión del s
Conocimiento y gestión del sConocimiento y gestión del s
Conocimiento y gestión del s
 
Curso de software03
Curso de software03Curso de software03
Curso de software03
 
Iv arquitectura del computador. ppt. (fase ii)
Iv arquitectura del computador. ppt. (fase ii)Iv arquitectura del computador. ppt. (fase ii)
Iv arquitectura del computador. ppt. (fase ii)
 
Guia de procesos
Guia de procesosGuia de procesos
Guia de procesos
 
Guia de procesos
Guia de procesosGuia de procesos
Guia de procesos
 
Manual de hacking basico por taskkill#3
Manual de hacking basico por taskkill#3Manual de hacking basico por taskkill#3
Manual de hacking basico por taskkill#3
 
Administración y Comando Básicos
Administración y Comando BásicosAdministración y Comando Básicos
Administración y Comando Básicos
 
Presentacion
PresentacionPresentacion
Presentacion
 
Conocimiento y gestión del s
Conocimiento y gestión del sConocimiento y gestión del s
Conocimiento y gestión del s
 
Manual Bàsic PS Tools
Manual Bàsic PS ToolsManual Bàsic PS Tools
Manual Bàsic PS Tools
 

Trabajo de Sistemas Operativos.

  • 1. República Bolivariana de Venezuela Ministerio del Poder Popular para la Educación Superior Universidad “Valle del Momboy” Valera, Estado Trujillo Informe de Sistemas Operativos Alumno: Asdrúbal Iván Suárez Rivera Cédula de Identidad: 20.655.970
  • 2. Para el informe se utilizó la distribución OpenSUSE. La cual está basada en Linux. Para el primer ejercicio se pide lo siguiente: Genere un vector aleatorio de n elementos. Sume los elementos del mismo e imprima el resultado de esta suma. Podemos dividir el programa en 3 etapas: 1. Entrada 2. Proceso 3. Salida Para la Entrada tenemos: • N (Siendo “N” el tamaño del vector) En cuanto al proceso tenemos: • Generación del vector de acuerdo al tamaño proporcionado • Suma de los elementos del mismo. Para finalmente tener en la salida: • Resultado de la suma
  • 3. Para implementar el ejercicio se usó el siguiente código: Archivo vector.cpp #include <iostream> #include <cstdlib> long int sumar_vector(int *,size_t); void generar_vector(int *,size_t); void impr_vector(int *,size_t); int main() {     size_t tamano;     int *vectorcito;     long int suma;     std::cout<<"Tamaño del vector: ";     std::cin>>tamano;     vectorcito = new int[tamano];     generar_vector(vectorcito,tamano);     suma = sumar_vector(vectorcito,tamano);     impr_vector(vectorcito,tamano);     std::cout<<"La suma es: "<<suma<<'n';     delete vectorcito;     return 0; } long int sumar_vector(int *vector,size_t tam) {     long int ret_val = 0;     for(int x=0;x<tam;x++)         ret_val += vector[x];     return ret_val; } void generar_vector(int *vector,size_t tam) {     for(int x=0;x<tam;x++)         vector[x] = std::rand() % 100; } void impr_vector(int *vector,size_t tam) {     std::cout<<"Elementos del vectorn";     for(int x=0;x<tam;x++)         std::cout<<vector[x]<<"n"; }
  • 4. Luego, se compiló usando el siguiente comando g++ vector.cpp -g -o vector.out Generando un ejecutable llamado “vector.out”. Éste ejecutable se corre usando el comando ./vector.out Generando la siguiente salida [asdrubal@localhost sistemasoperativos]$ ./vector.out Tamaño del vector: 5 Elementos del vector 83 86 77 15 93 La suma es: 354 Es de hacer notar que ésta salida puede ser distinta al correr otra vez el programa. Ya que en el mismo se puede observar que hay generación de números aleatorios.
  • 5. Kernel 1 Actualmente OpenSUSE usa el kernel de Linux versión 3.4 . Esto se puede comprobar usando el comando “uname -r”, dando como resultado: [asdrubal@localhost sistemasoperativos]$ uname -r 3.4.25 ¿Qué pasa al abrir cualquier programa? En cónsola podemos abrir cualquier programa. Supongamos que queremos abrir el editor vectorial “Inkscape”. Mediante la cónsola ejecutamos: [asdrubal@localhost sistemasoperativos]$ inkscape Al presionar la tecla ENTER, éste de una vez se aparece, tal y como lo podemos ver en la siguiente imagen: 1   http://es.opensuse.org/Caracter%C3%ADsticas_m%C3%A1s_destacadas_del_producto 
  • 6. En el administrador de tareas se puede observar el proceso abierto: Se pueden observar entre otras cosas el consumo de CPU, ID de proceso, memoria virtual. Al ejecutar en la cónsola [asdrubal@localhost sistemasoperativos]$ gimp Sucede algo similar, con la salvedad de que en este caso, no es “Inkscape”, sino “Gimp” el programa a ejecutar.
  • 7. En Linux se pueden usar varias maneras de ejecutar procesos. Una forma es por 2 cónsola, otra es mediante llamadas al sistema desde cualquier proceso padre . Anteriormente vimos como era la carga de procesos por cónsola. Ahora bien, es posible hacerlo también mediante llamadas desde lenguaje C usando librerías que pertenecen al estándar POSIX. 3 Éstas llamadas son : • Fork: Para crear un proceso hijo a partir de uno padre. • Wait: Para esperar hasta el momento en el que un proceso externo le mande una señal al proceso que ha ejecutado ésta llamada. • Exit: Para salir del proceso. • Signal: Para llamar a otro proceso. • Kill: Para matar un proceso. Es posible matar un proceso a través de cónsola, supóngase que se abre “Inkscape” mediante los comandos ya mencionados anteriormente. Podemos “matar” el proceso “Inkscape” (Suponiendo que el ID del proceso es 999) usando la siguiente llamada: [asdrubal@localhost sistemasoperativos]$ kill 999 En caso de haber sido otro el ID del proceso, sencillamente se coloca este ID. 2 “Sistemas Operativos Modernos” Andrew Tanenbaum 3   http://www.softpanorama.org/Internals/unix_system_calls.shtml  
  • 8. Sistema de Archivos OpenSUSE, al igual que otras distribuciones Linux usa el sistema de archivos 4 ext4. 5 Según Wikipedia “Las principales mejoras son: •Soporte de volúmenes de hasta 1024 PiB. •Soporte añadido de extent. •Menor uso del CPU. •Mejoras en la velocidad de lectura y escritura.” Intento de borrado del /home/ Al ejecutar: [asdrubal@localhost sistemasoperativos]$ rm /home/ El sistema devuelve Error al eliminar el archivo. Permiso denegado. Esto debido a que /home/ pertenece a “root”. 4   https://ext4.wiki.kernel.org/index.php/Ext4_Howto#For_people_who_are_running_openSuSE  5   http://es.wikipedia.org/wiki/Ext4 
  • 9. Cambio de privilegios Se está usando LXDE como administrador de ventanas. Es posible acceder al administrador del sistema como root mediante el comando [asdrubal@localhost sistemasoperativos]$ sudo lxtask Se puede cambiar la prioridad de los procesos de la forma mostrada en la imagen: